├── .bowerrc ├── .circleci └── config.yml ├── .gitignore ├── .gitmodules ├── .travis.yml ├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── appconfig.default.json ├── appconfig.example.json ├── bower.json ├── docker ├── Dockerfile ├── nginx.conf └── nginx.site.conf ├── docs └── anti-clickjacking │ └── clickjacking.html ├── gulp ├── buildappconfig.js ├── readappconfig.js ├── sri.js └── streamaspromise.js ├── gulpfile.js ├── karma.config.js ├── package.json ├── scripts ├── OSS │ ├── .gitignore │ ├── oss │ │ ├── __init__.py │ │ ├── oss_api.py │ │ ├── oss_sample.py │ │ ├── oss_util.py │ │ ├── oss_xml_handler.py │ │ └── pkg_info.py │ ├── osscmd │ └── setup.py ├── delete_version_from_oss.sh └── upload_to_oss.sh ├── src ├── config.js.template ├── demo.html ├── favicon.ico ├── font │ ├── LICENSE-Lato │ ├── Lato-Bold.woff │ ├── Lato-Bold.woff2 │ ├── Lato-Light.woff │ ├── Lato-Light.woff2 │ ├── Lato-Regular.woff │ ├── Lato-Regular.woff2 │ ├── Neo-Sans-Pro-Bold.ttf │ ├── Neo-Sans-Pro-Medium.ttf │ ├── Neo-Sans-Pro.ttf │ ├── Open-Sans-300.woff │ ├── Open-Sans-400.woff │ ├── Open-Sans-600.woff │ ├── Open-Sans-700.woff │ ├── Roboto-400.woff2 │ └── Roboto-700.woff2 ├── fontello │ ├── config.json │ ├── css │ │ └── _fontello.scss │ └── font │ │ ├── fontello.eot │ │ ├── fontello.svg │ │ ├── fontello.ttf │ │ ├── fontello.woff │ │ └── fontello.woff2 ├── img │ ├── android.png │ ├── appscreen.jpg │ ├── banner-bg.jpg │ ├── bitonic-logo.png │ ├── blank_profile.png │ ├── btc-home-banner.png │ ├── btc-perspective-screen-transparent.png │ ├── btc-showcase-devices.png │ ├── glidera-bright.png │ ├── home-bitcoin-icon.png │ ├── home-key-icon.png │ ├── home-qr-icon.png │ ├── homepage_img.jpg │ ├── ios.png │ ├── logo-btc-reverse.png │ ├── logo-btc.png │ ├── logo-btc2.png │ ├── multidevice.png │ ├── qr-code@2x.png │ ├── simplex-logo.png │ └── wallet3d.png ├── index.html ├── js │ ├── app.js │ ├── modules │ │ ├── core │ │ │ ├── configs │ │ │ │ └── localisation │ │ │ │ │ └── localisation.config.js │ │ │ ├── constants │ │ │ │ └── third-party-libraries │ │ │ │ │ └── third-party-libraries.constant.js │ │ │ ├── controllers │ │ │ │ ├── dialog-alert-modal │ │ │ │ │ ├── dialog-alert-modal.ctrl.js │ │ │ │ │ └── dialog-alert-modal.tpl.html │ │ │ │ ├── dialog-prompt-modal │ │ │ │ │ ├── dialog-prompt-modal.ctrl.js │ │ │ │ │ └── dialog-prompt-modal.tpl.html │ │ │ │ ├── dialog-spinner-modal │ │ │ │ │ ├── dialog-spinner-modal.ctrl.js │ │ │ │ │ └── dialog-spinner-modal.tpl.html │ │ │ │ └── verify-email │ │ │ │ │ └── verify-email.ctrl.js │ │ │ ├── directives │ │ │ │ ├── app-wrapper │ │ │ │ │ ├── app-wrapper.directive.js │ │ │ │ │ └── app-wrapper.tpl.html │ │ │ │ ├── btn-file-data │ │ │ │ │ ├── btn-file-data.directive.js │ │ │ │ │ └── btn-file-data.tpl.html │ │ │ │ ├── caps-on │ │ │ │ │ └── caps-on.directive.js │ │ │ │ ├── click-anywhere-but-here │ │ │ │ │ └── click-anywhere-but-here.directive.js │ │ │ │ ├── loading-spinner │ │ │ │ │ └── loading-spinner.directive.js │ │ │ │ ├── navbar │ │ │ │ │ └── navbar.tpl.html │ │ │ │ ├── network-custom-select │ │ │ │ │ ├── network-custom-select.js │ │ │ │ │ └── network-custom-select.tpl.html │ │ │ │ ├── top-header │ │ │ │ │ ├── top-header.directive.js │ │ │ │ │ └── top-header.tpl.html │ │ │ │ └── wallet-email-verified │ │ │ │ │ ├── wallet-email-verified.directive.js │ │ │ │ │ └── wallet-email-verified.tpl.html │ │ │ ├── filters │ │ │ │ ├── bip39en │ │ │ │ │ └── bip39en.filter.js │ │ │ │ ├── characters │ │ │ │ │ └── characters.filter.js │ │ │ │ ├── confirmations │ │ │ │ │ └── confirmations.filter.js │ │ │ │ ├── contact-initials │ │ │ │ │ └── contact-initials.filter.js │ │ │ │ ├── displayaddr │ │ │ │ │ └── displayaddr.filter.js │ │ │ │ ├── duration │ │ │ │ │ └── duration.filter.js │ │ │ │ ├── language-name │ │ │ │ │ └── language-name.filter.js │ │ │ │ ├── math-abs │ │ │ │ │ └── math-abs.filter.js │ │ │ │ ├── nl2br │ │ │ │ │ └── nl2br.filter.js │ │ │ │ ├── satoshi-to-coin │ │ │ │ │ └── satoshi-to-coin.filter.js │ │ │ │ ├── satoshi-to-currency │ │ │ │ │ └── satoshi-to-currency.filter.js │ │ │ │ ├── to-currency-symbol │ │ │ │ │ └── to-currency-symbol.filter.js │ │ │ │ └── to-currency-ticker │ │ │ │ │ └── to-currency-ticker.filter.js │ │ │ ├── module.js │ │ │ └── services │ │ │ │ ├── account-security-service │ │ │ │ └── account-security.service.js │ │ │ │ ├── bitcoin-link │ │ │ │ └── bitcoin-link.service.js │ │ │ │ ├── dialog │ │ │ │ └── dialog.service.js │ │ │ │ ├── global-lock │ │ │ │ └── global-lock.service.js │ │ │ │ ├── localisation │ │ │ │ └── localisation.provider.js │ │ │ │ ├── notifications │ │ │ │ └── notifications.service.js │ │ │ │ ├── password-recovery │ │ │ │ └── password-recovery.service.js │ │ │ │ ├── password-strength │ │ │ │ └── password-strength.service.js │ │ │ │ ├── powtcha │ │ │ │ └── powtcha.service.js │ │ │ │ ├── sdk │ │ │ │ └── sdk.service.js │ │ │ │ ├── settings │ │ │ │ └── settings.service.js │ │ │ │ ├── sweeper │ │ │ │ └── sweeper.service.js │ │ │ │ ├── wallet │ │ │ │ ├── wallet.service.js │ │ │ │ └── wallet.service.spec.js │ │ │ │ └── wallets-manager │ │ │ │ ├── wallets-manager.service.js │ │ │ │ └── wallets-manager.service.spec.js │ │ ├── setup │ │ │ ├── configs │ │ │ │ └── setup-sate │ │ │ │ │ └── setup-state.config.js │ │ │ ├── controllers │ │ │ │ ├── announcement │ │ │ │ │ └── announcement.tpl.html │ │ │ │ ├── banned-ip │ │ │ │ │ ├── banned-ip.ctrl.js │ │ │ │ │ └── banned-ip.tpl.html │ │ │ │ ├── change-password │ │ │ │ │ ├── change-password.ctrl.js │ │ │ │ │ └── change-password.tpl.html │ │ │ │ ├── forgot-password │ │ │ │ │ ├── forgot-password.ctrl.js │ │ │ │ │ └── forgot-password.tpl.html │ │ │ │ ├── loggedout │ │ │ │ │ ├── loggedout.ctrl.js │ │ │ │ │ └── loggedout.tpl.html │ │ │ │ ├── login │ │ │ │ │ ├── login.ctrl.js │ │ │ │ │ └── login.tpl.html │ │ │ │ ├── logout │ │ │ │ │ └── logout.ctrl.js │ │ │ │ ├── lost-lock │ │ │ │ │ ├── lost-lock.ctrl.js │ │ │ │ │ └── lost-lock.tpl.html │ │ │ │ ├── new-account │ │ │ │ │ ├── new-account.ctrl.js │ │ │ │ │ └── new-account.tpl.html │ │ │ │ ├── rebrand │ │ │ │ │ ├── rebrand.ctrl.js │ │ │ │ │ └── rebrand.tpl.html │ │ │ │ ├── verify-email │ │ │ │ │ └── verify-email.tpl.html │ │ │ │ ├── wallet-backup │ │ │ │ │ ├── wallet-backup.ctrl.js │ │ │ │ │ └── wallet-backup.tpl.html │ │ │ │ ├── wallet-init │ │ │ │ │ ├── wallet-init.ctrl.js │ │ │ │ │ └── wallet-init.tpl.html │ │ │ │ └── wrapper │ │ │ │ │ ├── wrapper.ctrl.js │ │ │ │ │ └── wrapper.tpl.html │ │ │ ├── directives │ │ │ │ └── landing-page │ │ │ │ │ ├── landing-page.directive.js │ │ │ │ │ └── landing-page.tpl.html │ │ │ ├── module.js │ │ │ └── services │ │ │ │ ├── login │ │ │ │ └── login.service.js │ │ │ │ └── new-account │ │ │ │ └── new-account.service.js │ │ └── wallet │ │ │ ├── configs │ │ │ └── wallet-states │ │ │ │ └── wallet-states.config.js │ │ │ ├── controllers │ │ │ ├── address-lookup │ │ │ │ ├── address-lookup.ctrl.js │ │ │ │ └── address-lookup.tpl.html │ │ │ ├── bcha-send-replay-protect-modal │ │ │ │ ├── bcha-send-replay-protect-modal.js │ │ │ │ └── bcha-send-replay-protect-modal.tpl.html │ │ │ ├── buy-btc-broker │ │ │ │ ├── buy-btc-broker.ctrl.js │ │ │ │ └── buy-btc-broker.tpl.html │ │ │ ├── buy-btc-choose │ │ │ │ ├── buy-btc-choose.ctrl.js │ │ │ │ └── buy-btc-choose.tpl.html │ │ │ ├── buy-btc-glidera-oauth-callback │ │ │ │ ├── buy-btc-glidera-oauth-callback.ctrl.js │ │ │ │ └── buy-btc-glidera-oauth-callback.tpl.html │ │ │ ├── modal-crop-image │ │ │ │ ├── modal-crop-image.ctrl.js │ │ │ │ └── modal-crop-image.tpl.html │ │ │ ├── payment-uri │ │ │ │ ├── payment-uri.ctrl.js │ │ │ │ └── payment-uri.tpl.html │ │ │ ├── receive │ │ │ │ ├── receive.ctrl.js │ │ │ │ └── receive.tpl.html │ │ │ ├── send-confirm-modal │ │ │ │ ├── send-confirm-modal.ctrl.js │ │ │ │ └── send-confirm-modal.tpl.html │ │ │ ├── send-replay-protect-modal │ │ │ │ ├── send-replay-protect-modal.js │ │ │ │ └── send-replay-protect-modal.tpl.html │ │ │ ├── send │ │ │ │ ├── send.ctrl.js │ │ │ │ └── send.tpl.html │ │ │ ├── settings-profile │ │ │ │ ├── settings.profile.ctrl.js │ │ │ │ └── settings.profile.tpl.html │ │ │ ├── settings-security │ │ │ │ ├── settings.security.ctrl.js │ │ │ │ └── settings.security.tpl.html │ │ │ ├── settings-tools │ │ │ │ ├── settings.tools.ctrl.js │ │ │ │ └── settings.tools.tpl.html │ │ │ ├── settings │ │ │ │ ├── settings.ctrl.js │ │ │ │ └── settings.tpl.html │ │ │ ├── sweep-coins-modal │ │ │ │ ├── sweep-coins-modal.ctrl.js │ │ │ │ └── sweep-coins-modal.tpl.html │ │ │ ├── verify-email │ │ │ │ └── verify-email.tpl.html │ │ │ ├── wallet-summary │ │ │ │ ├── wallet-summary.ctrl.js │ │ │ │ └── wallet-summary.tpl.html │ │ │ ├── wallet-transaction-info-modal │ │ │ │ ├── wallet-transaction-info-modal.ctrl.js │ │ │ │ └── wallet-transaction-info-modal.tpl.html │ │ │ └── wallet │ │ │ │ ├── wallet.ctrl.js │ │ │ │ └── wallet.tpl.html │ │ │ ├── directives │ │ │ ├── app-bcc-fork-warning │ │ │ │ ├── app-bcc-fork-warning.directive.js │ │ │ │ └── app-bcc-fork-warning.tpl.html │ │ │ ├── app-bcc-sweep-warning │ │ │ │ ├── app-bcc-sweep-warning.directive.js │ │ │ │ └── app-bcc-sweep-warning.tpl.html │ │ │ ├── app-bcha-recovery-warning │ │ │ │ ├── app-bcha-recovery-warning.directive.js │ │ │ │ └── app-bcha-recovery-warning.tpl.html │ │ │ ├── app-bsv-recovery-warning │ │ │ │ ├── app-bsv-recovery-warning.directive.js │ │ │ │ └── app-bsv-recovery-warning.tpl.html │ │ │ ├── app-header │ │ │ │ ├── app-header.directive.js │ │ │ │ └── app-header.tpl.html │ │ │ ├── app-two-factor-warning │ │ │ │ ├── app-two-factor-warning.directive.js │ │ │ │ └── app-two-factor-warning.tpl.html │ │ │ ├── social-media-buttons │ │ │ │ ├── social-media-buttons.directive.js │ │ │ │ └── social-media-buttons.tpl.html │ │ │ ├── wallet-app-store-buttons │ │ │ │ ├── wallet-app-store-buttons.directive.js │ │ │ │ └── wallet-app-store-buttons.tpl.html │ │ │ ├── wallet-no-more-transactions │ │ │ │ ├── wallet-no-more-transactions.directive.js │ │ │ │ └── wallet-no-more-transactions.tpl.html │ │ │ ├── wallet-no-transactions │ │ │ │ ├── wallet-no-transactions.directive.js │ │ │ │ └── wallet-no-transactions.tpl.html │ │ │ ├── wallet-security-progress-bar │ │ │ │ ├── wallet-security-progress-bar.directive.js │ │ │ │ └── wallet-security-progress-bar.tpl.html │ │ │ ├── wallet-side-nav │ │ │ │ ├── wallet-side-nav.directive.js │ │ │ │ └── wallet-side-nav.tpl.html │ │ │ ├── wallet-transaction-avatar │ │ │ │ ├── wallet-transaction-avatar.directive.js │ │ │ │ └── wallet-transaction-avatar.tpl.html │ │ │ ├── wallet-transaction-description │ │ │ │ ├── wallet-transaction-description.directive.js │ │ │ │ └── wallet-transaction-description.tpl.html │ │ │ └── wallet-transaction │ │ │ │ ├── wallet-transaction.directive.js │ │ │ │ └── wallet-transaction.tpl.html │ │ │ └── services │ │ │ └── form-settings.service.js │ │ │ └── form-settings.service.js │ └── services │ │ ├── AppVersionService.js │ │ ├── BuyBTCService.js │ │ ├── ContactsService.js │ │ ├── CurrencyServices.js │ │ ├── FormHelper.js │ │ ├── GlideraService.js │ │ ├── LaunchService.js │ │ ├── QRService.js │ │ ├── SetupService.js │ │ ├── SimplexService.js │ │ ├── StorageService.js │ │ └── TrackingService.js ├── lib │ ├── SHA-1 │ │ ├── .bower.json │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── package.json │ │ └── sha1.js │ ├── angular-bootstrap │ │ ├── .bower.json │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── README.md │ │ ├── bower.json │ │ ├── index.js │ │ ├── package.json │ │ ├── ui-bootstrap-csp.css │ │ ├── ui-bootstrap-tpls.js │ │ ├── ui-bootstrap-tpls.min.js │ │ ├── ui-bootstrap.js │ │ └── ui-bootstrap.min.js │ ├── angular-moment │ │ ├── .bower.json │ │ ├── .editorconfig │ │ ├── .gitignore │ │ ├── .jshintrc │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── CHANGELOG.md │ │ ├── CONTRIBUTING.md │ │ ├── Gruntfile.js │ │ ├── LICENSE │ │ ├── README.md │ │ ├── angular-moment.js │ │ ├── angular-moment.min.js │ │ ├── angular-moment.min.js.map │ │ ├── angular-moment.nuspec │ │ ├── bower.json │ │ ├── karma.conf.js │ │ ├── package.json │ │ └── tests.js │ ├── angular-qr │ │ ├── .bower.json │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── angular-qr.min.js │ │ ├── bower.json │ │ ├── gulpfile.js │ │ ├── karma.conf.js │ │ ├── lib │ │ │ └── qrcode.js │ │ └── src │ │ │ └── angular-qr.js │ ├── angular-sanitize │ │ ├── .bower.json │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── angular-sanitize.js │ │ ├── angular-sanitize.min.js │ │ ├── angular-sanitize.min.js.map │ │ ├── bower.json │ │ ├── index.js │ │ └── package.json │ ├── angular-toggle-switch │ │ ├── .bower.json │ │ ├── LICENSE │ │ ├── README.md │ │ ├── angular-toggle-switch-bootstrap.css │ │ ├── angular-toggle-switch-bootstrap.sass │ │ ├── angular-toggle-switch-bootstrap.scss │ │ ├── angular-toggle-switch.css │ │ ├── angular-toggle-switch.js │ │ ├── angular-toggle-switch.min.js │ │ ├── angular-toggle-switch.sass │ │ ├── angular-toggle-switch.scss │ │ ├── bower.json │ │ └── test │ │ │ └── angular-toggle-switch.spec.js │ ├── angular-translate │ │ ├── .bower.json │ │ ├── README.md │ │ ├── angular-translate.js │ │ ├── angular-translate.min.js │ │ └── bower.json │ ├── angular-ui-router │ │ ├── .bower.json │ │ ├── CHANGELOG.md │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── api │ │ │ └── angular-ui-router.d.ts │ │ ├── bower.json │ │ ├── release │ │ │ ├── angular-ui-router.js │ │ │ └── angular-ui-router.min.js │ │ └── src │ │ │ ├── common.js │ │ │ ├── resolve.js │ │ │ ├── state.js │ │ │ ├── stateDirectives.js │ │ │ ├── stateFilters.js │ │ │ ├── templateFactory.js │ │ │ ├── urlMatcherFactory.js │ │ │ ├── urlRouter.js │ │ │ ├── view.js │ │ │ ├── viewDirective.js │ │ │ └── viewScroll.js │ ├── angular │ │ ├── .bower.json │ │ ├── README.md │ │ ├── angular-csp.css │ │ ├── angular.js │ │ ├── angular.min.js │ │ ├── angular.min.js.gzip │ │ ├── angular.min.js.map │ │ ├── bower.json │ │ ├── index.js │ │ └── package.json │ ├── angulartics-google-analytics │ │ ├── .bower.json │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── dist │ │ │ ├── angulartics-ga.min.js │ │ │ └── angulartics-ga.min.js.map │ │ └── lib │ │ │ └── angulartics-ga.js │ ├── angulartics │ │ ├── .bower.json │ │ ├── .bowerrc │ │ ├── bower.json │ │ ├── dist │ │ │ ├── angulartics-baidu.min.js │ │ │ ├── angulartics-cnzz.min.js │ │ │ ├── angulartics-debug.min.js │ │ │ ├── angulartics-ga-cordova-google-analytics-plugin.min.js │ │ │ ├── angulartics-ga-cordova.min.js │ │ │ ├── angulartics-gosquared.min.js │ │ │ ├── angulartics-gtm-cordova.min.js │ │ │ ├── angulartics-gtm.min.js │ │ │ ├── angulartics-heap.min.js │ │ │ ├── angulartics-hubspot.min.js │ │ │ ├── angulartics-inspectlet.min.js │ │ │ ├── angulartics-intercom.min.js │ │ │ ├── angulartics-loggly.min.js │ │ │ ├── angulartics-marketo.min.js │ │ │ ├── angulartics-newrelic-insights.min.js │ │ │ ├── angulartics-sitespect.min.js │ │ │ ├── angulartics-splunk.min.js │ │ │ ├── angulartics-woopra.min.js │ │ │ ├── angulartics.min.js │ │ │ └── index.min.js │ │ ├── nuget │ │ │ ├── angular.analytics.adobe.nuspec │ │ │ ├── angular.analytics.baidu.nuspec │ │ │ ├── angular.analytics.chartbeat.nuspec │ │ │ ├── angular.analytics.clicky.nuspec │ │ │ ├── angular.analytics.cnzz.nuspec │ │ │ ├── angular.analytics.core.nuspec │ │ │ ├── angular.analytics.debug.nuspec │ │ │ ├── angular.analytics.flurry.nuspec │ │ │ ├── angular.analytics.ga.cordova-google-analytics-plugin.nuspec │ │ │ ├── angular.analytics.ga.cordova.nuspec │ │ │ ├── angular.analytics.ga.nuspec │ │ │ ├── angular.analytics.gtm.nuspec │ │ │ ├── angular.analytics.hubspot.nuspec │ │ │ ├── angular.analytics.intercom.nuspec │ │ │ ├── angular.analytics.kissmetrics.nuspec │ │ │ ├── angular.analytics.localytics.nuspec │ │ │ ├── angular.analytics.loggly.nuspec │ │ │ ├── angular.analytics.marketo.nuspec │ │ │ ├── angular.analytics.mixpanel.nuspec │ │ │ ├── angular.analytics.piwik.nuspec │ │ │ ├── angular.analytics.scroll.nuspec │ │ │ ├── angular.analytics.segmentio.nuspec │ │ │ ├── angular.analytics.splunk.nuspec │ │ │ └── angular.analytics.woopra.nuspec │ │ └── src │ │ │ ├── angulartics-baidu.js │ │ │ ├── angulartics-cnzz.js │ │ │ ├── angulartics-debug.js │ │ │ ├── angulartics-ga-cordova-google-analytics-plugin.js │ │ │ ├── angulartics-ga-cordova.js │ │ │ ├── angulartics-gosquared.js │ │ │ ├── angulartics-gtm-cordova.js │ │ │ ├── angulartics-gtm.js │ │ │ ├── angulartics-heap.js │ │ │ ├── angulartics-hubspot.js │ │ │ ├── angulartics-inspectlet.js │ │ │ ├── angulartics-intercom.js │ │ │ ├── angulartics-loggly.js │ │ │ ├── angulartics-marketo.js │ │ │ ├── angulartics-newrelic-insights.js │ │ │ ├── angulartics-sitespect.js │ │ │ ├── angulartics-splunk.js │ │ │ ├── angulartics-woopra.js │ │ │ ├── angulartics.js │ │ │ └── index.js │ ├── bip70-js │ │ ├── .bower.json │ │ ├── Gruntfile.js │ │ ├── README.md │ │ ├── bin │ │ │ ├── fetch.js │ │ │ └── gentruststore.js │ │ ├── bower.json │ │ ├── build │ │ │ ├── bip70.js │ │ │ ├── bip70.min.js │ │ │ ├── test.js │ │ │ └── test.min.js │ │ ├── lib │ │ │ ├── bip70.js │ │ │ ├── client.js │ │ │ ├── config.js │ │ │ ├── protobuf.js │ │ │ ├── protofile.json │ │ │ ├── request_builder.js │ │ │ └── x509 │ │ │ │ ├── ca-certificates.json │ │ │ │ ├── index.js │ │ │ │ ├── pkitype.js │ │ │ │ ├── truststore.js │ │ │ │ └── validation.jsrsasign.js │ │ ├── main.js │ │ ├── package.json │ │ ├── proto │ │ │ └── bip70.proto │ │ └── test.js │ ├── blocktrail-sdk │ │ ├── .bower.json │ │ ├── Gruntfile.js │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── bower.json │ │ ├── build │ │ │ ├── asmcrypto.js │ │ │ ├── asmcrypto.min.js │ │ │ ├── blocktrail-sdk-full.js │ │ │ ├── blocktrail-sdk-full.min.js │ │ │ ├── blocktrail-sdk-with-backup-generator.js │ │ │ ├── blocktrail-sdk-with-backup-generator.min.js │ │ │ ├── blocktrail-sdk.js │ │ │ ├── blocktrail-sdk.min.js │ │ │ ├── jsPDF.js │ │ │ └── jsPDF.min.js │ │ ├── docs │ │ │ ├── CHANGELOG.md │ │ │ ├── DEV.md │ │ │ ├── KEYS.md │ │ │ ├── RELEASE.md │ │ │ └── keys-pseudocode │ │ │ │ ├── login.js │ │ │ │ ├── recovery.js │ │ │ │ └── register.js │ │ ├── examples │ │ │ ├── backup_info_example.html │ │ │ ├── backup_info_example.js │ │ │ ├── not_so_simple_payment_api_usage.js │ │ │ ├── opreturn_payment_api_usage.js │ │ │ ├── simple_data_api_usage.js │ │ │ ├── simple_payment_api_usage-maxspendable.js │ │ │ ├── simple_payment_api_usage-spenditall.js │ │ │ ├── simple_payment_api_usage.html │ │ │ ├── simple_payment_api_usage.js │ │ │ ├── simple_read_only_wallet_api_usage.js │ │ │ ├── simple_upgrade_example.js │ │ │ ├── wallet_force_fee.js │ │ │ ├── wallet_password_change_example.js │ │ │ ├── wallet_recovery_example.js │ │ │ ├── wallet_recovery_example_v3.js │ │ │ ├── wallet_v1_recovery_example.js │ │ │ ├── wallet_v2_recovery_example.js │ │ │ └── wallet_v3_recovery_example.js │ │ ├── lib │ │ │ ├── api_client.js │ │ │ ├── blocktrail.convert.js │ │ │ ├── blocktrail.js │ │ │ ├── btccom.convert.js │ │ │ ├── encryption.js │ │ │ ├── encryption_mnemonic.js │ │ │ ├── keyderivation.js │ │ │ ├── pbkdf2_sha512-browser.js │ │ │ ├── pbkdf2_sha512-sjcl.js │ │ │ ├── pbkdf2_sha512.js │ │ │ ├── pkginfo-browser.js │ │ │ ├── pkginfo.js │ │ │ ├── request.js │ │ │ ├── rest_client.js │ │ │ ├── services │ │ │ │ ├── blocktrail_bitcoin_service.js │ │ │ │ └── insight_bitcoin_service.js │ │ │ ├── size_estimation.js │ │ │ ├── unspent_output_finder.js │ │ │ ├── use-webworker.js │ │ │ ├── wallet.js │ │ │ ├── wallet_sweeper.js │ │ │ ├── webworker.js │ │ │ └── webworkifier.js │ │ ├── main-with-backup-generator.js │ │ ├── main.js │ │ ├── package.json │ │ ├── test.js │ │ └── tools │ │ │ ├── browserify-debug-size.js │ │ │ ├── clean-test-wallet.js │ │ │ └── release.sh │ ├── bootstrap-sass │ │ ├── .bower.json │ │ ├── CHANGELOG.md │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── assets │ │ │ ├── fonts │ │ │ │ └── bootstrap │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ ├── javascripts │ │ │ │ ├── bootstrap-sprockets.js │ │ │ │ ├── bootstrap.js │ │ │ │ ├── bootstrap.min.js │ │ │ │ └── bootstrap │ │ │ │ │ ├── affix.js │ │ │ │ │ ├── alert.js │ │ │ │ │ ├── button.js │ │ │ │ │ ├── carousel.js │ │ │ │ │ ├── collapse.js │ │ │ │ │ ├── dropdown.js │ │ │ │ │ ├── modal.js │ │ │ │ │ ├── popover.js │ │ │ │ │ ├── scrollspy.js │ │ │ │ │ ├── tab.js │ │ │ │ │ ├── tooltip.js │ │ │ │ │ └── transition.js │ │ │ └── stylesheets │ │ │ │ ├── _bootstrap-compass.scss │ │ │ │ ├── _bootstrap-mincer.scss │ │ │ │ ├── _bootstrap-sprockets.scss │ │ │ │ ├── _bootstrap.scss │ │ │ │ └── bootstrap │ │ │ │ ├── _alerts.scss │ │ │ │ ├── _badges.scss │ │ │ │ ├── _breadcrumbs.scss │ │ │ │ ├── _button-groups.scss │ │ │ │ ├── _buttons.scss │ │ │ │ ├── _carousel.scss │ │ │ │ ├── _close.scss │ │ │ │ ├── _code.scss │ │ │ │ ├── _component-animations.scss │ │ │ │ ├── _dropdowns.scss │ │ │ │ ├── _forms.scss │ │ │ │ ├── _glyphicons.scss │ │ │ │ ├── _grid.scss │ │ │ │ ├── _input-groups.scss │ │ │ │ ├── _jumbotron.scss │ │ │ │ ├── _labels.scss │ │ │ │ ├── _list-group.scss │ │ │ │ ├── _media.scss │ │ │ │ ├── _mixins.scss │ │ │ │ ├── _modals.scss │ │ │ │ ├── _navbar.scss │ │ │ │ ├── _navs.scss │ │ │ │ ├── _normalize.scss │ │ │ │ ├── _pager.scss │ │ │ │ ├── _pagination.scss │ │ │ │ ├── _panels.scss │ │ │ │ ├── _popovers.scss │ │ │ │ ├── _print.scss │ │ │ │ ├── _progress-bars.scss │ │ │ │ ├── _responsive-embed.scss │ │ │ │ ├── _responsive-utilities.scss │ │ │ │ ├── _scaffolding.scss │ │ │ │ ├── _tables.scss │ │ │ │ ├── _theme.scss │ │ │ │ ├── _thumbnails.scss │ │ │ │ ├── _tooltip.scss │ │ │ │ ├── _type.scss │ │ │ │ ├── _utilities.scss │ │ │ │ ├── _variables.scss │ │ │ │ ├── _wells.scss │ │ │ │ └── mixins │ │ │ │ ├── _alerts.scss │ │ │ │ ├── _background-variant.scss │ │ │ │ ├── _border-radius.scss │ │ │ │ ├── _buttons.scss │ │ │ │ ├── _center-block.scss │ │ │ │ ├── _clearfix.scss │ │ │ │ ├── _forms.scss │ │ │ │ ├── _gradients.scss │ │ │ │ ├── _grid-framework.scss │ │ │ │ ├── _grid.scss │ │ │ │ ├── _hide-text.scss │ │ │ │ ├── _image.scss │ │ │ │ ├── _labels.scss │ │ │ │ ├── _list-group.scss │ │ │ │ ├── _nav-divider.scss │ │ │ │ ├── _nav-vertical-align.scss │ │ │ │ ├── _opacity.scss │ │ │ │ ├── _pagination.scss │ │ │ │ ├── _panels.scss │ │ │ │ ├── _progress-bar.scss │ │ │ │ ├── _reset-filter.scss │ │ │ │ ├── _reset-text.scss │ │ │ │ ├── _resize.scss │ │ │ │ ├── _responsive-visibility.scss │ │ │ │ ├── _size.scss │ │ │ │ ├── _tab-focus.scss │ │ │ │ ├── _table-row.scss │ │ │ │ ├── _text-emphasis.scss │ │ │ │ ├── _text-overflow.scss │ │ │ │ └── _vendor-prefixes.scss │ │ ├── bower.json │ │ ├── composer.json │ │ ├── package.json │ │ └── sache.json │ ├── bowser │ │ ├── .bower.json │ │ ├── CHANGELOG.md │ │ ├── ISSUE_TEMPLATE.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── package.json │ │ ├── src │ │ │ ├── bowser.js │ │ │ └── useragents.js │ │ └── typings.d.ts │ ├── browserify-cryptojs │ │ ├── .bower.json │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── components │ │ │ ├── aes-min.js │ │ │ ├── aes.js │ │ │ ├── cipher-core-min.js │ │ │ ├── cipher-core.js │ │ │ ├── core-min.js │ │ │ ├── core.js │ │ │ ├── enc-base64-min.js │ │ │ ├── enc-base64.js │ │ │ ├── enc-utf16-min.js │ │ │ ├── enc-utf16.js │ │ │ ├── evpkdf-min.js │ │ │ ├── evpkdf.js │ │ │ ├── format-hex-min.js │ │ │ ├── format-hex.js │ │ │ ├── hmac-min.js │ │ │ ├── hmac.js │ │ │ ├── lib-typedarrays-min.js │ │ │ ├── lib-typedarrays.js │ │ │ ├── md5-min.js │ │ │ ├── md5.js │ │ │ ├── mode-cfb-min.js │ │ │ ├── mode-cfb.js │ │ │ ├── mode-ctr-gladman-min.js │ │ │ ├── mode-ctr-gladman.js │ │ │ ├── mode-ctr-min.js │ │ │ ├── mode-ctr.js │ │ │ ├── mode-ecb-min.js │ │ │ ├── mode-ecb.js │ │ │ ├── mode-ofb-min.js │ │ │ ├── mode-ofb.js │ │ │ ├── pad-ansix923-min.js │ │ │ ├── pad-ansix923.js │ │ │ ├── pad-iso10126-min.js │ │ │ ├── pad-iso10126.js │ │ │ ├── pad-iso97971-min.js │ │ │ ├── pad-iso97971.js │ │ │ ├── pad-nopadding-min.js │ │ │ ├── pad-nopadding.js │ │ │ ├── pad-zeropadding-min.js │ │ │ ├── pad-zeropadding.js │ │ │ ├── pbkdf2-min.js │ │ │ ├── pbkdf2.js │ │ │ ├── rabbit-legacy-min.js │ │ │ ├── rabbit-legacy.js │ │ │ ├── rabbit-min.js │ │ │ ├── rabbit.js │ │ │ ├── rc4-min.js │ │ │ ├── rc4.js │ │ │ ├── ripemd160-min.js │ │ │ ├── ripemd160.js │ │ │ ├── sha1-min.js │ │ │ ├── sha1.js │ │ │ ├── sha224-min.js │ │ │ ├── sha224.js │ │ │ ├── sha256-min.js │ │ │ ├── sha256.js │ │ │ ├── sha3-min.js │ │ │ ├── sha3.js │ │ │ ├── sha384-min.js │ │ │ ├── sha384.js │ │ │ ├── sha512-min.js │ │ │ ├── sha512.js │ │ │ ├── tripledes-min.js │ │ │ ├── tripledes.js │ │ │ ├── x64-core-min.js │ │ │ └── x64-core.js │ │ ├── gulpfile.js │ │ ├── index.js │ │ ├── package.json │ │ ├── rollups │ │ │ ├── aes.js │ │ │ ├── hmac-md5.js │ │ │ ├── hmac-ripemd160.js │ │ │ ├── hmac-sha1.js │ │ │ ├── hmac-sha224.js │ │ │ ├── hmac-sha256.js │ │ │ ├── hmac-sha3.js │ │ │ ├── hmac-sha384.js │ │ │ ├── hmac-sha512.js │ │ │ ├── md5.js │ │ │ ├── pbkdf2.js │ │ │ ├── rabbit-legacy.js │ │ │ ├── rabbit.js │ │ │ ├── rc4.js │ │ │ ├── ripemd160.js │ │ │ ├── sha1.js │ │ │ ├── sha224.js │ │ │ ├── sha256.js │ │ │ ├── sha3.js │ │ │ ├── sha384.js │ │ │ ├── sha512.js │ │ │ └── tripledes.js │ │ └── src │ │ │ └── core.js │ ├── fingerprintjs2 │ │ ├── .bower.json │ │ ├── CONTRIBUTING.md │ │ ├── FAQ.md │ │ ├── ISSUE_TEMPLATE.md │ │ ├── README.md │ │ ├── bower.json │ │ ├── dist │ │ │ └── fingerprint2.min.js │ │ ├── fingerprint2.js │ │ ├── flash │ │ │ ├── FontList.as │ │ │ ├── Makefile │ │ │ └── compiled │ │ │ │ └── FontList.swf │ │ ├── gulpfile.js │ │ ├── index.html │ │ ├── package.json │ │ ├── specs │ │ │ ├── lib │ │ │ │ └── jasmine-2.3.4 │ │ │ │ │ ├── boot.js │ │ │ │ │ ├── jasmine-html.js │ │ │ │ │ ├── jasmine-matchers.js │ │ │ │ │ ├── jasmine.css │ │ │ │ │ ├── jasmine.js │ │ │ │ │ ├── jasmine_favicon.png │ │ │ │ │ └── terminal.js │ │ │ ├── phantomjs-testrunner.js │ │ │ ├── phantomjs.runner.sh │ │ │ ├── spec_runner.html │ │ │ └── specs.js │ │ └── yarn.lock │ ├── intl-tel-input │ │ ├── .bower.json │ │ ├── .gitignore │ │ ├── .gitmodules │ │ ├── .travis.yml │ │ ├── Gruntfile.js │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── build │ │ │ ├── css │ │ │ │ ├── demo.css │ │ │ │ └── intlTelInput.css │ │ │ ├── img │ │ │ │ ├── flags.png │ │ │ │ └── flags@2x.png │ │ │ └── js │ │ │ │ ├── intlTelInput.js │ │ │ │ └── intlTelInput.min.js │ │ ├── component.json │ │ ├── demo.html │ │ ├── examples │ │ │ ├── css │ │ │ │ ├── countrySync.css │ │ │ │ ├── isValidNumber.css │ │ │ │ └── prism.css │ │ │ ├── gen │ │ │ │ ├── country-sync.html │ │ │ │ ├── default-country-ip.html │ │ │ │ ├── hidden-input.html │ │ │ │ ├── is-valid-number.html │ │ │ │ ├── modify-country-data.html │ │ │ │ ├── national-mode.html │ │ │ │ └── only-countries-europe.html │ │ │ ├── js │ │ │ │ ├── countrySync.js │ │ │ │ ├── defaultCountryIp.js │ │ │ │ ├── hiddenInput.js │ │ │ │ ├── isValidNumber.js │ │ │ │ ├── modifyCountryData.js │ │ │ │ ├── nationalMode.js │ │ │ │ ├── onlyCountriesEurope.js │ │ │ │ └── prism.js │ │ │ ├── partials │ │ │ │ ├── countrySync.html │ │ │ │ ├── hiddenInput.html │ │ │ │ ├── isValidNumber.html │ │ │ │ ├── nationalMode.html │ │ │ │ └── simpleInput.html │ │ │ └── template.html.ejs │ │ ├── grunt │ │ │ ├── bower.js │ │ │ ├── bump.js │ │ │ ├── exec.js │ │ │ ├── jasmine.js │ │ │ ├── jshint.js │ │ │ ├── replace.js │ │ │ ├── responsive_images.js │ │ │ ├── retinafy.js │ │ │ ├── sass.js │ │ │ ├── shell.js │ │ │ ├── sprite.js │ │ │ ├── template.js │ │ │ ├── tmpl │ │ │ │ └── sprite-retina-mustache.scss │ │ │ ├── uglify.js │ │ │ └── watch.js │ │ ├── index.js │ │ ├── intl-tel-input.jquery.json │ │ ├── lib │ │ │ └── libphonenumber │ │ │ │ ├── build │ │ │ │ └── utils.js │ │ │ │ └── src │ │ │ │ └── utils.js │ │ ├── package.json │ │ ├── screenshot.png │ │ ├── spec.html │ │ └── src │ │ │ ├── css │ │ │ ├── demo.scss │ │ │ ├── intlTelInput.scss │ │ │ ├── sprite.scss │ │ │ └── sprite@2x.scss │ │ │ ├── js │ │ │ ├── data.js │ │ │ ├── intlTelInput.js.ejs │ │ │ └── wrapper.js.ejs │ │ │ └── spec │ │ │ ├── helpers │ │ │ └── helpers.js │ │ │ └── tests │ │ │ ├── methods │ │ │ ├── destroy.js │ │ │ ├── getCountryData.js │ │ │ ├── getSelectedCountryData.js │ │ │ ├── isValidNumber.js │ │ │ ├── selectCountry.js │ │ │ └── setNumber.js │ │ │ ├── options │ │ │ ├── autoFormat.js │ │ │ ├── autoHideDialCode.js │ │ │ ├── defaultCountry.js │ │ │ ├── nationalMode.js │ │ │ ├── onlyCountries.js │ │ │ ├── preferredCountries.js │ │ │ └── utilsScript.js │ │ │ └── vanilla │ │ │ ├── core.js │ │ │ ├── keyboardShortcuts.js │ │ │ └── multipleInstances.js │ ├── jquery │ │ ├── .bower.json │ │ ├── MIT-LICENSE.txt │ │ ├── bower.json │ │ ├── dist │ │ │ ├── jquery.js │ │ │ ├── jquery.min.js │ │ │ └── jquery.min.map │ │ └── src │ │ │ ├── ajax.js │ │ │ ├── ajax │ │ │ ├── jsonp.js │ │ │ ├── load.js │ │ │ ├── parseJSON.js │ │ │ ├── parseXML.js │ │ │ ├── script.js │ │ │ ├── var │ │ │ │ ├── nonce.js │ │ │ │ └── rquery.js │ │ │ └── xhr.js │ │ │ ├── attributes.js │ │ │ ├── attributes │ │ │ ├── attr.js │ │ │ ├── classes.js │ │ │ ├── prop.js │ │ │ ├── support.js │ │ │ └── val.js │ │ │ ├── callbacks.js │ │ │ ├── core.js │ │ │ ├── core │ │ │ ├── access.js │ │ │ ├── init.js │ │ │ ├── parseHTML.js │ │ │ ├── ready.js │ │ │ └── var │ │ │ │ └── rsingleTag.js │ │ │ ├── css.js │ │ │ ├── css │ │ │ ├── addGetHookIf.js │ │ │ ├── curCSS.js │ │ │ ├── defaultDisplay.js │ │ │ ├── hiddenVisibleSelectors.js │ │ │ ├── support.js │ │ │ ├── swap.js │ │ │ └── var │ │ │ │ ├── cssExpand.js │ │ │ │ ├── getStyles.js │ │ │ │ ├── isHidden.js │ │ │ │ ├── rmargin.js │ │ │ │ └── rnumnonpx.js │ │ │ ├── data.js │ │ │ ├── data │ │ │ ├── Data.js │ │ │ ├── accepts.js │ │ │ └── var │ │ │ │ ├── data_priv.js │ │ │ │ └── data_user.js │ │ │ ├── deferred.js │ │ │ ├── deprecated.js │ │ │ ├── dimensions.js │ │ │ ├── effects.js │ │ │ ├── effects │ │ │ ├── Tween.js │ │ │ └── animatedSelector.js │ │ │ ├── event.js │ │ │ ├── event │ │ │ ├── ajax.js │ │ │ ├── alias.js │ │ │ └── support.js │ │ │ ├── exports │ │ │ ├── amd.js │ │ │ └── global.js │ │ │ ├── intro.js │ │ │ ├── jquery.js │ │ │ ├── manipulation.js │ │ │ ├── manipulation │ │ │ ├── _evalUrl.js │ │ │ ├── support.js │ │ │ └── var │ │ │ │ └── rcheckableType.js │ │ │ ├── offset.js │ │ │ ├── outro.js │ │ │ ├── queue.js │ │ │ ├── queue │ │ │ └── delay.js │ │ │ ├── selector-native.js │ │ │ ├── selector-sizzle.js │ │ │ ├── selector.js │ │ │ ├── serialize.js │ │ │ ├── sizzle │ │ │ └── dist │ │ │ │ ├── sizzle.js │ │ │ │ ├── sizzle.min.js │ │ │ │ └── sizzle.min.map │ │ │ ├── traversing.js │ │ │ ├── traversing │ │ │ ├── findFilter.js │ │ │ └── var │ │ │ │ └── rneedsContext.js │ │ │ ├── var │ │ │ ├── arr.js │ │ │ ├── class2type.js │ │ │ ├── concat.js │ │ │ ├── hasOwn.js │ │ │ ├── indexOf.js │ │ │ ├── pnum.js │ │ │ ├── push.js │ │ │ ├── rnotwhite.js │ │ │ ├── slice.js │ │ │ ├── strundefined.js │ │ │ ├── support.js │ │ │ └── toString.js │ │ │ └── wrap.js │ ├── libphonenumber │ │ ├── .bower.json │ │ ├── .gitignore │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── bower.json │ │ ├── build.sh │ │ ├── build.xml │ │ ├── dist │ │ │ ├── .gitkeep │ │ │ └── libphonenumber.js │ │ └── libphonenumber.js │ ├── moment │ │ ├── .bower.json │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── locale │ │ │ ├── af.js │ │ │ ├── ar-ma.js │ │ │ ├── ar-sa.js │ │ │ ├── ar-tn.js │ │ │ ├── ar.js │ │ │ ├── az.js │ │ │ ├── be.js │ │ │ ├── bg.js │ │ │ ├── bn.js │ │ │ ├── bo.js │ │ │ ├── br.js │ │ │ ├── bs.js │ │ │ ├── ca.js │ │ │ ├── cs.js │ │ │ ├── cv.js │ │ │ ├── cy.js │ │ │ ├── da.js │ │ │ ├── de-at.js │ │ │ ├── de.js │ │ │ ├── el.js │ │ │ ├── en-au.js │ │ │ ├── en-ca.js │ │ │ ├── en-gb.js │ │ │ ├── eo.js │ │ │ ├── es.js │ │ │ ├── et.js │ │ │ ├── eu.js │ │ │ ├── fa.js │ │ │ ├── fi.js │ │ │ ├── fo.js │ │ │ ├── fr-ca.js │ │ │ ├── fr.js │ │ │ ├── fy.js │ │ │ ├── gl.js │ │ │ ├── he.js │ │ │ ├── hi.js │ │ │ ├── hr.js │ │ │ ├── hu.js │ │ │ ├── hy-am.js │ │ │ ├── id.js │ │ │ ├── is.js │ │ │ ├── it.js │ │ │ ├── ja.js │ │ │ ├── jv.js │ │ │ ├── ka.js │ │ │ ├── km.js │ │ │ ├── ko.js │ │ │ ├── lb.js │ │ │ ├── lt.js │ │ │ ├── lv.js │ │ │ ├── me.js │ │ │ ├── mk.js │ │ │ ├── ml.js │ │ │ ├── mr.js │ │ │ ├── ms-my.js │ │ │ ├── ms.js │ │ │ ├── my.js │ │ │ ├── nb.js │ │ │ ├── ne.js │ │ │ ├── nl.js │ │ │ ├── nn.js │ │ │ ├── pl.js │ │ │ ├── pt-br.js │ │ │ ├── pt.js │ │ │ ├── ro.js │ │ │ ├── ru.js │ │ │ ├── si.js │ │ │ ├── sk.js │ │ │ ├── sl.js │ │ │ ├── sq.js │ │ │ ├── sr-cyrl.js │ │ │ ├── sr.js │ │ │ ├── sv.js │ │ │ ├── ta.js │ │ │ ├── th.js │ │ │ ├── tl-ph.js │ │ │ ├── tr.js │ │ │ ├── tzl.js │ │ │ ├── tzm-latn.js │ │ │ ├── tzm.js │ │ │ ├── uk.js │ │ │ ├── uz.js │ │ │ ├── vi.js │ │ │ ├── zh-cn.js │ │ │ └── zh-tw.js │ │ ├── min │ │ │ ├── locales.js │ │ │ ├── locales.min.js │ │ │ ├── moment-with-locales.js │ │ │ ├── moment-with-locales.min.js │ │ │ ├── moment.min.js │ │ │ └── tests.js │ │ ├── moment.js │ │ ├── src │ │ │ ├── lib │ │ │ │ ├── create │ │ │ │ │ ├── check-overflow.js │ │ │ │ │ ├── date-from-array.js │ │ │ │ │ ├── from-anything.js │ │ │ │ │ ├── from-array.js │ │ │ │ │ ├── from-object.js │ │ │ │ │ ├── from-string-and-array.js │ │ │ │ │ ├── from-string-and-format.js │ │ │ │ │ ├── from-string.js │ │ │ │ │ ├── local.js │ │ │ │ │ ├── parsing-flags.js │ │ │ │ │ ├── utc.js │ │ │ │ │ └── valid.js │ │ │ │ ├── duration │ │ │ │ │ ├── abs.js │ │ │ │ │ ├── add-subtract.js │ │ │ │ │ ├── as.js │ │ │ │ │ ├── bubble.js │ │ │ │ │ ├── constructor.js │ │ │ │ │ ├── create.js │ │ │ │ │ ├── duration.js │ │ │ │ │ ├── get.js │ │ │ │ │ ├── humanize.js │ │ │ │ │ ├── iso-string.js │ │ │ │ │ └── prototype.js │ │ │ │ ├── format │ │ │ │ │ └── format.js │ │ │ │ ├── locale │ │ │ │ │ ├── calendar.js │ │ │ │ │ ├── constructor.js │ │ │ │ │ ├── en.js │ │ │ │ │ ├── formats.js │ │ │ │ │ ├── invalid.js │ │ │ │ │ ├── lists.js │ │ │ │ │ ├── locale.js │ │ │ │ │ ├── locales.js │ │ │ │ │ ├── ordinal.js │ │ │ │ │ ├── pre-post-format.js │ │ │ │ │ ├── prototype.js │ │ │ │ │ ├── relative.js │ │ │ │ │ └── set.js │ │ │ │ ├── moment │ │ │ │ │ ├── add-subtract.js │ │ │ │ │ ├── calendar.js │ │ │ │ │ ├── clone.js │ │ │ │ │ ├── compare.js │ │ │ │ │ ├── constructor.js │ │ │ │ │ ├── diff.js │ │ │ │ │ ├── format.js │ │ │ │ │ ├── from.js │ │ │ │ │ ├── get-set.js │ │ │ │ │ ├── locale.js │ │ │ │ │ ├── min-max.js │ │ │ │ │ ├── moment.js │ │ │ │ │ ├── prototype.js │ │ │ │ │ ├── start-end-of.js │ │ │ │ │ ├── to-type.js │ │ │ │ │ ├── to.js │ │ │ │ │ └── valid.js │ │ │ │ ├── parse │ │ │ │ │ ├── regex.js │ │ │ │ │ └── token.js │ │ │ │ ├── units │ │ │ │ │ ├── aliases.js │ │ │ │ │ ├── constants.js │ │ │ │ │ ├── day-of-month.js │ │ │ │ │ ├── day-of-week.js │ │ │ │ │ ├── day-of-year.js │ │ │ │ │ ├── hour.js │ │ │ │ │ ├── millisecond.js │ │ │ │ │ ├── minute.js │ │ │ │ │ ├── month.js │ │ │ │ │ ├── offset.js │ │ │ │ │ ├── quarter.js │ │ │ │ │ ├── second.js │ │ │ │ │ ├── timestamp.js │ │ │ │ │ ├── timezone.js │ │ │ │ │ ├── units.js │ │ │ │ │ ├── week-year.js │ │ │ │ │ ├── week.js │ │ │ │ │ └── year.js │ │ │ │ └── utils │ │ │ │ │ ├── abs-ceil.js │ │ │ │ │ ├── abs-floor.js │ │ │ │ │ ├── compare-arrays.js │ │ │ │ │ ├── defaults.js │ │ │ │ │ ├── deprecate.js │ │ │ │ │ ├── extend.js │ │ │ │ │ ├── has-own-prop.js │ │ │ │ │ ├── hooks.js │ │ │ │ │ ├── is-array.js │ │ │ │ │ ├── is-date.js │ │ │ │ │ ├── map.js │ │ │ │ │ ├── to-int.js │ │ │ │ │ └── zero-fill.js │ │ │ ├── locale │ │ │ │ ├── af.js │ │ │ │ ├── ar-ma.js │ │ │ │ ├── ar-sa.js │ │ │ │ ├── ar-tn.js │ │ │ │ ├── ar.js │ │ │ │ ├── az.js │ │ │ │ ├── be.js │ │ │ │ ├── bg.js │ │ │ │ ├── bn.js │ │ │ │ ├── bo.js │ │ │ │ ├── br.js │ │ │ │ ├── bs.js │ │ │ │ ├── ca.js │ │ │ │ ├── cs.js │ │ │ │ ├── cv.js │ │ │ │ ├── cy.js │ │ │ │ ├── da.js │ │ │ │ ├── de-at.js │ │ │ │ ├── de.js │ │ │ │ ├── el.js │ │ │ │ ├── en-au.js │ │ │ │ ├── en-ca.js │ │ │ │ ├── en-gb.js │ │ │ │ ├── eo.js │ │ │ │ ├── es.js │ │ │ │ ├── et.js │ │ │ │ ├── eu.js │ │ │ │ ├── fa.js │ │ │ │ ├── fi.js │ │ │ │ ├── fo.js │ │ │ │ ├── fr-ca.js │ │ │ │ ├── fr.js │ │ │ │ ├── fy.js │ │ │ │ ├── gl.js │ │ │ │ ├── he.js │ │ │ │ ├── hi.js │ │ │ │ ├── hr.js │ │ │ │ ├── hu.js │ │ │ │ ├── hy-am.js │ │ │ │ ├── id.js │ │ │ │ ├── is.js │ │ │ │ ├── it.js │ │ │ │ ├── ja.js │ │ │ │ ├── jv.js │ │ │ │ ├── ka.js │ │ │ │ ├── km.js │ │ │ │ ├── ko.js │ │ │ │ ├── lb.js │ │ │ │ ├── lt.js │ │ │ │ ├── lv.js │ │ │ │ ├── me.js │ │ │ │ ├── mk.js │ │ │ │ ├── ml.js │ │ │ │ ├── mr.js │ │ │ │ ├── ms-my.js │ │ │ │ ├── ms.js │ │ │ │ ├── my.js │ │ │ │ ├── nb.js │ │ │ │ ├── ne.js │ │ │ │ ├── nl.js │ │ │ │ ├── nn.js │ │ │ │ ├── pl.js │ │ │ │ ├── pt-br.js │ │ │ │ ├── pt.js │ │ │ │ ├── ro.js │ │ │ │ ├── ru.js │ │ │ │ ├── si.js │ │ │ │ ├── sk.js │ │ │ │ ├── sl.js │ │ │ │ ├── sq.js │ │ │ │ ├── sr-cyrl.js │ │ │ │ ├── sr.js │ │ │ │ ├── sv.js │ │ │ │ ├── ta.js │ │ │ │ ├── th.js │ │ │ │ ├── tl-ph.js │ │ │ │ ├── tr.js │ │ │ │ ├── tzl.js │ │ │ │ ├── tzm-latn.js │ │ │ │ ├── tzm.js │ │ │ │ ├── uk.js │ │ │ │ ├── uz.js │ │ │ │ ├── vi.js │ │ │ │ ├── zh-cn.js │ │ │ │ └── zh-tw.js │ │ │ └── moment.js │ │ └── templates │ │ │ ├── amd-named.js │ │ │ ├── amd.js │ │ │ ├── globals.js │ │ │ ├── locale-header.js │ │ │ └── test-header.js │ ├── ng-file-upload │ │ ├── .bower.json │ │ ├── 161a70d3.favicon.ico │ │ ├── FileAPI.flash.swf │ │ ├── FileAPI.js │ │ ├── FileAPI.min.js │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── ng-file-upload-all.js │ │ ├── ng-file-upload-all.min.js │ │ ├── ng-file-upload-shim.js │ │ ├── ng-file-upload-shim.min.js │ │ ├── ng-file-upload.js │ │ ├── ng-file-upload.min.js │ │ └── robots.txt │ ├── ng-infinite-scroller-origin │ │ ├── .bower.json │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── build │ │ │ ├── ng-infinite-scroll.js │ │ │ └── ng-infinite-scroll.min.js │ │ ├── package.json │ │ └── src │ │ │ └── infinite-scroll.coffee │ ├── ngImgCrop │ │ ├── .bower.json │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── .jshintrc │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── compile │ │ │ ├── minified │ │ │ │ ├── ng-img-crop.css │ │ │ │ └── ng-img-crop.js │ │ │ └── unminified │ │ │ │ ├── ng-img-crop.css │ │ │ │ └── ng-img-crop.js │ │ ├── gulpfile.js │ │ ├── package.json │ │ ├── screenshots │ │ │ ├── circle_1.jpg │ │ │ └── square_1.jpg │ │ └── source │ │ │ ├── js │ │ │ ├── classes │ │ │ │ ├── crop-area-circle.js │ │ │ │ ├── crop-area-square.js │ │ │ │ ├── crop-area.js │ │ │ │ ├── crop-canvas.js │ │ │ │ ├── crop-exif.js │ │ │ │ ├── crop-host.js │ │ │ │ └── crop-pubsub.js │ │ │ ├── init.js │ │ │ └── ng-img-crop.js │ │ │ └── scss │ │ │ └── ng-img-crop.scss │ ├── pouchdb │ │ ├── .bower.json │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── TESTING.md │ │ ├── bin │ │ │ ├── add-license.js │ │ │ ├── build-all-plugins.sh │ │ │ ├── build-site.js │ │ │ ├── dev-server.js │ │ │ ├── es3ify.js │ │ │ ├── get-version.js │ │ │ ├── publish-site.sh │ │ │ ├── release.sh │ │ │ ├── repl.js │ │ │ ├── run-cordova.sh │ │ │ ├── run-couch-master-on-travis.sh │ │ │ ├── run-coverage.js │ │ │ ├── run-csg-on-travis.sh │ │ │ ├── run-test.sh │ │ │ ├── test-browser.js │ │ │ └── test-node.sh │ │ ├── bower.json │ │ ├── component.json │ │ ├── dist │ │ │ ├── pouchdb.idb-alt.js │ │ │ ├── pouchdb.idb-alt.min.js │ │ │ ├── pouchdb.js │ │ │ ├── pouchdb.localstorage.js │ │ │ ├── pouchdb.localstorage.min.js │ │ │ ├── pouchdb.memory.js │ │ │ ├── pouchdb.memory.min.js │ │ │ └── pouchdb.min.js │ │ ├── docs │ │ │ ├── _config.yml │ │ │ ├── _data │ │ │ │ └── authors.yml │ │ │ ├── _guides │ │ │ │ ├── async-code.md │ │ │ │ ├── attachments.md │ │ │ │ ├── bulk-operations.md │ │ │ │ ├── changes.md │ │ │ │ ├── compact-and-destroy.md │ │ │ │ ├── conflicts.md │ │ │ │ ├── databases.md │ │ │ │ ├── documents.md │ │ │ │ ├── index.md │ │ │ │ ├── local-documents.md │ │ │ │ ├── queries.md │ │ │ │ ├── replication.md │ │ │ │ ├── setup-couchdb.md │ │ │ │ ├── setup-pouchdb.md │ │ │ │ └── updating-deleting.md │ │ │ ├── _includes │ │ │ │ ├── alert │ │ │ │ │ ├── end.html │ │ │ │ │ └── start.html │ │ │ │ ├── anchor.html │ │ │ │ ├── api.html │ │ │ │ ├── api │ │ │ │ │ ├── api_overview.html │ │ │ │ │ ├── batch_create.html │ │ │ │ │ ├── batch_fetch.html │ │ │ │ │ ├── changes.html │ │ │ │ │ ├── compaction.html │ │ │ │ │ ├── create_database.html │ │ │ │ │ ├── create_document.html │ │ │ │ │ ├── database_information.html │ │ │ │ │ ├── debug_mode.html │ │ │ │ │ ├── defaults.html │ │ │ │ │ ├── delete_attachment.html │ │ │ │ │ ├── delete_database.html │ │ │ │ │ ├── delete_document.html │ │ │ │ │ ├── events.html │ │ │ │ │ ├── extras.html │ │ │ │ │ ├── fetch_document.html │ │ │ │ │ ├── get_attachment.html │ │ │ │ │ ├── plugins.html │ │ │ │ │ ├── query_database.html │ │ │ │ │ ├── replication.html │ │ │ │ │ ├── revisions_diff.html │ │ │ │ │ ├── save_attachment.html │ │ │ │ │ ├── sync.html │ │ │ │ │ └── view_cleanup.html │ │ │ │ ├── code │ │ │ │ │ ├── end.html │ │ │ │ │ └── start.html │ │ │ │ ├── guides_nav.html │ │ │ │ ├── iframe.html │ │ │ │ ├── img.html │ │ │ │ ├── nav.html │ │ │ │ ├── nav_item.html │ │ │ │ ├── post_details.html │ │ │ │ └── social.html │ │ │ ├── _layouts │ │ │ │ ├── 2ColLeft.html │ │ │ │ ├── default.html │ │ │ │ ├── guide.html │ │ │ │ └── post.html │ │ │ ├── _plugins │ │ │ │ └── markdown.rb │ │ │ ├── _posts │ │ │ │ ├── 2014-04-01-pouchdb-2.1.0.md │ │ │ │ ├── 2014-04-01-welcome-to-the-pouchdb-blog.md │ │ │ │ ├── 2014-04-14-pagination-strategies-with-pouchdb.md │ │ │ │ ├── 2014-05-01-pouchdb-2.2.0.md │ │ │ │ ├── 2014-05-01-secondary-indexes-have-landed-in-pouchdb.md │ │ │ │ ├── 2014-06-01-pouchdb-2.2.3.md │ │ │ │ ├── 2014-06-17-12-pro-tips-for-better-code-with-pouchdb.md │ │ │ │ ├── 2014-07-25-pouchdb-levels-up.md │ │ │ │ ├── 2014-08-12-pouchdb-3.0.0.md │ │ │ │ ├── 2014-08-16-pouchdb-3.0.1.md │ │ │ │ ├── 2014-08-20-pouchdb-3.0.2.md │ │ │ │ ├── 2014-08-29-pouchdb-3.0.3.md │ │ │ │ ├── 2014-09-04-pouchdb-3.0.4.md │ │ │ │ ├── 2014-09-07-pouchdb-3.0.5.md │ │ │ │ ├── 2014-09-22-3.0.6.md │ │ │ │ ├── 2014-10-26-10-things-i-learned-from-reading-and-writing-the-pouchdb-source.md │ │ │ │ ├── 2014-11-10-3.1.0.md │ │ │ │ ├── 2014-11-27-testing-pouchdb.md │ │ │ │ ├── 2014-12-04-3.2.0.md │ │ │ │ ├── 2014-12-11-the-pains-of-being-async-at-heart.md │ │ │ │ ├── 2015-01-05-pouchdb-3.2.1-you-can-always-be-faster.md │ │ │ │ ├── 2015-02-03-fix-up-look-sharp.md │ │ │ │ ├── 2015-02-14-a-quick-one.md │ │ │ │ ├── 2015-02-28-efficiently-managing-ui-state-in-pouchdb.md │ │ │ │ ├── 2015-03-05-taming-the-async-beast-with-es7.md │ │ │ │ ├── 2015-04-05-filtered-replication.md │ │ │ │ ├── 2015-04-07-better-late-than-never.md │ │ │ │ └── 2015-05-07-pouchdb-3.5.0-vote-for-pouchdb.md │ │ │ ├── adapters.md │ │ │ ├── api.html │ │ │ ├── blog │ │ │ │ └── index.html │ │ │ ├── errors.md │ │ │ ├── external.md │ │ │ ├── faq.md │ │ │ ├── feed.xml │ │ │ ├── getting-started.md │ │ │ ├── gql.md │ │ │ ├── index.md │ │ │ ├── learn.md │ │ │ ├── manifest.appcache │ │ │ ├── static │ │ │ │ ├── assets │ │ │ │ │ └── pouchdb-getting-started-todo.zip │ │ │ │ ├── favicon.ico │ │ │ │ ├── img │ │ │ │ │ ├── apple-indexeddb.png │ │ │ │ │ ├── browser-logos │ │ │ │ │ │ ├── android_32x32.png │ │ │ │ │ │ ├── blackberry_32x32.png │ │ │ │ │ │ ├── chrome-android_32x32.png │ │ │ │ │ │ ├── chrome_32x32.png │ │ │ │ │ │ ├── firefox_32x32.png │ │ │ │ │ │ ├── internet-explorer-tile_32x32.png │ │ │ │ │ │ ├── internet-explorer_32x32.png │ │ │ │ │ │ ├── opera_32x32.png │ │ │ │ │ │ ├── safari-ios_32x32.png │ │ │ │ │ │ └── safari_32x32.png │ │ │ │ │ ├── cloudwall.png │ │ │ │ │ ├── cors_in_couchdb.png │ │ │ │ │ ├── cozy.png │ │ │ │ │ ├── debug_mode.png │ │ │ │ │ ├── dev_tools.png │ │ │ │ │ ├── ehealth_africa.png │ │ │ │ │ ├── fauxton.png │ │ │ │ │ ├── icons.svg │ │ │ │ │ ├── kittens.jpg │ │ │ │ │ ├── kittens_small.jpg │ │ │ │ │ ├── logo.svg │ │ │ │ │ ├── mark.svg │ │ │ │ │ ├── mbta_alerts.jpeg │ │ │ │ │ ├── offline_replication.gif │ │ │ │ │ ├── orson_welles_clapping.gif │ │ │ │ │ ├── pepperidge_farm_remembers.png │ │ │ │ │ ├── pouchdb_inspector.png │ │ │ │ │ ├── safari_inspector.png │ │ │ │ │ ├── safari_popup.png │ │ │ │ │ ├── screenshots │ │ │ │ │ │ └── todo-1.png │ │ │ │ │ ├── squarespace_blog.png │ │ │ │ │ └── travis-screenshot.png │ │ │ │ ├── js │ │ │ │ │ ├── code.js │ │ │ │ │ └── code.min.js │ │ │ │ └── less │ │ │ │ │ ├── bootstrap │ │ │ │ │ ├── alerts.less │ │ │ │ │ ├── badges.less │ │ │ │ │ ├── bootstrap.less │ │ │ │ │ ├── breadcrumbs.less │ │ │ │ │ ├── button-groups.less │ │ │ │ │ ├── buttons.less │ │ │ │ │ ├── carousel.less │ │ │ │ │ ├── close.less │ │ │ │ │ ├── code.less │ │ │ │ │ ├── component-animations.less │ │ │ │ │ ├── dropdowns.less │ │ │ │ │ ├── forms.less │ │ │ │ │ ├── glyphicons.less │ │ │ │ │ ├── grid.less │ │ │ │ │ ├── input-groups.less │ │ │ │ │ ├── jumbotron.less │ │ │ │ │ ├── labels.less │ │ │ │ │ ├── list-group.less │ │ │ │ │ ├── media.less │ │ │ │ │ ├── mixins.less │ │ │ │ │ ├── modals.less │ │ │ │ │ ├── navbar.less │ │ │ │ │ ├── navs.less │ │ │ │ │ ├── normalize.less │ │ │ │ │ ├── pager.less │ │ │ │ │ ├── pagination.less │ │ │ │ │ ├── panels.less │ │ │ │ │ ├── popovers.less │ │ │ │ │ ├── print.less │ │ │ │ │ ├── progress-bars.less │ │ │ │ │ ├── responsive-utilities.less │ │ │ │ │ ├── scaffolding.less │ │ │ │ │ ├── tables.less │ │ │ │ │ ├── theme.less │ │ │ │ │ ├── thumbnails.less │ │ │ │ │ ├── tooltip.less │ │ │ │ │ ├── type.less │ │ │ │ │ ├── utilities.less │ │ │ │ │ ├── variables.less │ │ │ │ │ └── wells.less │ │ │ │ │ └── pouchdb │ │ │ │ │ ├── alerts.less │ │ │ │ │ ├── anchors.less │ │ │ │ │ ├── block.less │ │ │ │ │ ├── buttons.less │ │ │ │ │ ├── code.less │ │ │ │ │ ├── header.less │ │ │ │ │ ├── highlight.less │ │ │ │ │ ├── icons.less │ │ │ │ │ ├── logo.less │ │ │ │ │ ├── mixins.less │ │ │ │ │ ├── navs.less │ │ │ │ │ ├── post.less │ │ │ │ │ ├── pouchdb.less │ │ │ │ │ ├── ribbon.less │ │ │ │ │ ├── scaffolding.less │ │ │ │ │ ├── utilities.less │ │ │ │ │ └── variables.less │ │ │ └── users.md │ │ ├── extras │ │ │ ├── ajax.js │ │ │ ├── checkpointer.js │ │ │ ├── idb-alt.js │ │ │ ├── localstorage.js │ │ │ ├── memory.js │ │ │ └── promise.js │ │ ├── lib │ │ │ ├── adapter.js │ │ │ ├── adapters │ │ │ │ ├── http │ │ │ │ │ └── http.js │ │ │ │ ├── idb │ │ │ │ │ ├── idb-all-docs.js │ │ │ │ │ ├── idb-blob-support.js │ │ │ │ │ ├── idb-bulk-docs.js │ │ │ │ │ ├── idb-constants.js │ │ │ │ │ ├── idb-utils.js │ │ │ │ │ └── idb.js │ │ │ │ ├── leveldb │ │ │ │ │ ├── leveldb-transaction.js │ │ │ │ │ └── leveldb.js │ │ │ │ └── websql │ │ │ │ │ ├── websql-bulk-docs.js │ │ │ │ │ ├── websql-constants.js │ │ │ │ │ ├── websql-utils.js │ │ │ │ │ └── websql.js │ │ │ ├── changes.js │ │ │ ├── constructor.js │ │ │ ├── deps │ │ │ │ ├── ajax.js │ │ │ │ ├── base64.js │ │ │ │ ├── blob.js │ │ │ │ ├── buffer-browser.js │ │ │ │ ├── buffer.js │ │ │ │ ├── errors.js │ │ │ │ ├── explain404.js │ │ │ │ ├── md5.js │ │ │ │ ├── migrate-browser.js │ │ │ │ ├── migrate.js │ │ │ │ ├── parse-doc.js │ │ │ │ ├── parse-hex.js │ │ │ │ ├── parse-uri.js │ │ │ │ ├── promise.js │ │ │ │ ├── request-browser.js │ │ │ │ ├── upsert.js │ │ │ │ └── uuid.js │ │ │ ├── evalFilter.js │ │ │ ├── evalView.js │ │ │ ├── index.js │ │ │ ├── merge.js │ │ │ ├── plugins │ │ │ │ ├── base.js │ │ │ │ ├── idb-alt │ │ │ │ │ ├── config.js │ │ │ │ │ └── index.js │ │ │ │ ├── levelalt.js │ │ │ │ ├── localstorage │ │ │ │ │ ├── config.js │ │ │ │ │ └── index.js │ │ │ │ └── memory │ │ │ │ │ ├── config.js │ │ │ │ │ └── index.js │ │ │ ├── replicate │ │ │ │ ├── backoff.js │ │ │ │ ├── checkpointer.js │ │ │ │ ├── gen-replication-id.js │ │ │ │ ├── index.js │ │ │ │ ├── replicate.js │ │ │ │ └── replication.js │ │ │ ├── setup.js │ │ │ ├── sync.js │ │ │ ├── taskqueue.js │ │ │ ├── utils.js │ │ │ ├── version-browser.js │ │ │ └── version.js │ │ ├── package.json │ │ └── scripts │ │ │ ├── baldrick-test.sh │ │ │ ├── bundle-browserify-test.sh │ │ │ ├── jenkins-deploy.sh │ │ │ └── start_standalone_couch.sh │ ├── powtcha │ │ ├── .bower.json │ │ ├── Gruntfile.js │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── bower.json │ │ ├── build │ │ │ ├── powtcha.js │ │ │ └── powtcha.min.js │ │ ├── index.js │ │ ├── lib │ │ │ ├── miner │ │ │ │ ├── miner.js │ │ │ │ ├── sha256.js │ │ │ │ └── util.js │ │ │ ├── powtcha.js │ │ │ ├── webworker.js │ │ │ └── webworkifier.js │ │ ├── package.json │ │ ├── saucelabs-browsers.js │ │ └── test.js │ ├── q │ │ ├── .bower.json │ │ ├── .coverignore │ │ ├── .gitignore │ │ ├── .jshintrc │ │ ├── .mailmap │ │ ├── .travis.yml │ │ ├── CHANGES.md │ │ ├── CONTRIBUTING.md │ │ ├── Gruntfile.js │ │ ├── LICENSE │ │ ├── README.md │ │ ├── VERSIONS.md │ │ ├── benchmark │ │ │ ├── compare-with-callbacks.js │ │ │ └── scenarios.js │ │ ├── design │ │ │ ├── README.js │ │ │ ├── q0.js │ │ │ ├── q1.js │ │ │ ├── q2.js │ │ │ ├── q3.js │ │ │ ├── q4.js │ │ │ ├── q5.js │ │ │ ├── q6.js │ │ │ └── q7.js │ │ ├── examples │ │ │ ├── all.js │ │ │ └── async-generators │ │ │ │ ├── 0.html │ │ │ │ ├── 1-return.js │ │ │ │ ├── 2-error-propagation.js │ │ │ │ ├── 3-spawn.js │ │ │ │ ├── 4-flow-control.js │ │ │ │ └── README.md │ │ ├── package.json │ │ ├── q.js │ │ ├── q.png │ │ ├── q.svg │ │ ├── queue.js │ │ ├── ref_send.md │ │ └── spec │ │ │ ├── aplus-adapter.js │ │ │ ├── lib │ │ │ ├── jasmine-1.2.0 │ │ │ │ ├── MIT.LICENSE │ │ │ │ ├── jasmine-html.js │ │ │ │ ├── jasmine.css │ │ │ │ └── jasmine.js │ │ │ └── jasmine-promise.js │ │ │ ├── q-spec.html │ │ │ ├── q-spec.js │ │ │ └── queue-spec.js │ ├── qrcode │ │ ├── .bower.json │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ └── lib │ │ │ ├── qrcode.js │ │ │ └── qrcode.min.js │ ├── raven-js │ │ ├── .bower.json │ │ ├── LICENSE │ │ ├── bower.json │ │ ├── dist │ │ │ ├── plugins │ │ │ │ ├── angular.js │ │ │ │ ├── angular.min.js │ │ │ │ ├── angular.min.js.map │ │ │ │ ├── console.js │ │ │ │ ├── console.min.js │ │ │ │ ├── console.min.js.map │ │ │ │ ├── ember.js │ │ │ │ ├── ember.min.js │ │ │ │ ├── ember.min.js.map │ │ │ │ ├── require.js │ │ │ │ ├── require.min.js │ │ │ │ ├── require.min.js.map │ │ │ │ ├── vue.js │ │ │ │ ├── vue.min.js │ │ │ │ └── vue.min.js.map │ │ │ ├── raven.js │ │ │ ├── raven.min.js │ │ │ └── raven.min.js.map │ │ ├── plugins │ │ │ ├── angular.js │ │ │ ├── console.js │ │ │ ├── ember.js │ │ │ ├── react-native.js │ │ │ ├── require.js │ │ │ └── vue.js │ │ ├── src │ │ │ ├── configError.js │ │ │ ├── console.js │ │ │ ├── raven.js │ │ │ ├── singleton.js │ │ │ └── utils.js │ │ ├── template │ │ │ └── _copyright.js │ │ ├── typescript │ │ │ ├── raven-tests.ts │ │ │ └── raven.d.ts │ │ └── vendor │ │ │ ├── TraceKit │ │ │ └── tracekit.js │ │ │ └── json-stringify-safe │ │ │ └── stringify.js │ ├── semver │ │ ├── .bower.json │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.md │ │ ├── bin │ │ │ └── semver │ │ ├── bower.json │ │ ├── foot.js.txt │ │ ├── head.js.txt │ │ ├── package.json │ │ ├── semver.browser.js │ │ ├── semver.js │ │ └── semver.min.js │ └── zxcvbn │ │ ├── .bower.json │ │ ├── LICENSE.txt │ │ ├── README.md │ │ ├── bower.json │ │ └── dist │ │ ├── zxcvbn.js │ │ └── zxcvbn.js.map ├── sass │ ├── app.scss │ ├── fonts │ │ ├── lato.scss │ │ ├── neo-sans-pro.scss │ │ ├── open-sans.scss │ │ └── roboto.scss │ ├── helpers │ │ ├── mixins.scss │ │ └── variables.scss │ └── theme │ │ ├── borders.scss │ │ ├── directives │ │ ├── app-header.scss │ │ ├── btn-file-data.scss │ │ ├── index.scss │ │ ├── top-header.scss │ │ ├── wallet-no-more-transactions.scss │ │ ├── wallet-no-transactions.scss │ │ └── wallet-security-progress-bar.scss │ │ ├── indents.scss │ │ ├── index.scss │ │ ├── lodares.scss │ │ ├── pages │ │ ├── buy-broker.scss │ │ ├── index.scss │ │ ├── landing.scss │ │ └── settings.scss │ │ └── reset.scss ├── templates │ └── common │ │ ├── base.html │ │ └── footer.html └── translations.js.template └── www └── .gitignore /.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "src/lib" 3 | } 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | appconfig.json 3 | .appconfig.json 4 | 5 | platforms/android/assets/www/* 6 | platforms/ios/www/* 7 | platforms/ios/cordova/console.log 8 | platforms/android/CordovaLib/build 9 | 10 | tmp/* 11 | 12 | src/fontello/* 13 | !src/fontello/font 14 | !src/fontello/config.json 15 | !src/fontello/css/fontello.scss 16 | /.idea/ 17 | package-lock.json 18 | 19 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "src/translations"] 2 | path = src/translations 3 | url = https://github.com/blocktrail/blocktrail-wallet-translations.git 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | 3 | branches: 4 | only: 5 | - master 6 | 7 | node_js: 8 | - '5.11' 9 | - '6.0.0' 10 | - '6.6.0' 11 | - '7.0.0' 12 | - '7.10.1' 13 | - 'node' 14 | 15 | before_install: 16 | - git submodule update --init --recursive 17 | - npm install -g grunt-cli 18 | - cp appconfig.default.json appconfig.json 19 | 20 | script: 21 | - gulp 22 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | ## Next Version 4 | fixed app rating button on "About" screen 5 | 6 | ## Version 1.0.8 7 | - added support for bitcoin URIs - click on a bitcoin link to launch the app and send to the linked address 8 | - fixed jittery scrolling on receive screen 9 | 10 | ## Version 1.0.7 11 | - complete UI redesign 12 | - wallets V2 13 | - promo code redeem screen 14 | - syncing contacts to web wallet (available soon) 15 | -------------------------------------------------------------------------------- /appconfig.example.json: -------------------------------------------------------------------------------- 1 | { 2 | "DEBUG": true, 3 | "MINIFY": false, 4 | "TESTNET": true, 5 | 6 | // "STATICSDIR": null, // NULL will auto detect, default to DEV 7 | // "CDN": "https://btcstatic.oss-cn-hangzhou.aliyuncs.com/wallet/www/", 8 | 9 | "NULL": null // just here so we can have a trailing , on every line 10 | } 11 | -------------------------------------------------------------------------------- /gulp/readappconfig.js: -------------------------------------------------------------------------------- 1 | var _ = require('lodash'); 2 | var stripJsonComments = require('strip-json-comments'); 3 | var fs = require('fs'); 4 | 5 | var readAppConfig = function(baseConfig) { 6 | var config = {}; 7 | 8 | ['./appconfig.json', './appconfig.default.json'].forEach(function(filename) { 9 | var json = fs.readFileSync(filename); 10 | 11 | if (json) { 12 | var data = JSON.parse(stripJsonComments(json.toString('utf8'))); 13 | config = _.defaults(config, data); 14 | } 15 | }); 16 | 17 | config = _.defaults(config, baseConfig); 18 | 19 | return config; 20 | }; 21 | 22 | module.exports = exports = readAppConfig; 23 | -------------------------------------------------------------------------------- /gulp/streamaspromise.js: -------------------------------------------------------------------------------- 1 | var Q = require('q'); 2 | 3 | /** 4 | * helper to wrap a stream with a promise for easy chaining 5 | * @param stream 6 | * @returns {Q.Promise} 7 | */ 8 | var streamAsPromise = function(stream) { 9 | var def = Q.defer(); 10 | 11 | stream 12 | .on('end', function() { 13 | def.resolve(); 14 | }) 15 | .on('error', function(e) { 16 | def.reject(e); 17 | }) 18 | ; 19 | 20 | return def.promise; 21 | }; 22 | 23 | module.exports = exports = streamAsPromise; 24 | -------------------------------------------------------------------------------- /scripts/OSS/.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | -------------------------------------------------------------------------------- /scripts/OSS/oss/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/scripts/OSS/oss/__init__.py -------------------------------------------------------------------------------- /scripts/OSS/oss/pkg_info.py: -------------------------------------------------------------------------------- 1 | package = "oss" 2 | version = "0.4.2" 3 | url = "http://oss.aliyun.com" 4 | license = "MIT License" 5 | short_description = "Command line tool for managing Aliyun Open Storage Service." 6 | long_description = """ 7 | osscmd lets you create/delete/list bucket and upload/download/copy/delete file from/to 8 | Aliyun OSS (Open Storage Service). 9 | """ 10 | 11 | -------------------------------------------------------------------------------- /src/config.js.template: -------------------------------------------------------------------------------- 1 | angular.module('blocktrail.config', []).constant('CONFIG', <%= APPCONFIG_JSON %>); 2 | -------------------------------------------------------------------------------- /src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/favicon.ico -------------------------------------------------------------------------------- /src/font/Lato-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/font/Lato-Bold.woff -------------------------------------------------------------------------------- /src/font/Lato-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/font/Lato-Bold.woff2 -------------------------------------------------------------------------------- /src/font/Lato-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/font/Lato-Light.woff -------------------------------------------------------------------------------- /src/font/Lato-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/font/Lato-Light.woff2 -------------------------------------------------------------------------------- /src/font/Lato-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/font/Lato-Regular.woff -------------------------------------------------------------------------------- /src/font/Lato-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/font/Lato-Regular.woff2 -------------------------------------------------------------------------------- /src/font/Neo-Sans-Pro-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/font/Neo-Sans-Pro-Bold.ttf -------------------------------------------------------------------------------- /src/font/Neo-Sans-Pro-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/font/Neo-Sans-Pro-Medium.ttf -------------------------------------------------------------------------------- /src/font/Neo-Sans-Pro.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/font/Neo-Sans-Pro.ttf -------------------------------------------------------------------------------- /src/font/Open-Sans-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/font/Open-Sans-300.woff -------------------------------------------------------------------------------- /src/font/Open-Sans-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/font/Open-Sans-400.woff -------------------------------------------------------------------------------- /src/font/Open-Sans-600.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/font/Open-Sans-600.woff -------------------------------------------------------------------------------- /src/font/Open-Sans-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/font/Open-Sans-700.woff -------------------------------------------------------------------------------- /src/font/Roboto-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/font/Roboto-400.woff2 -------------------------------------------------------------------------------- /src/font/Roboto-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/font/Roboto-700.woff2 -------------------------------------------------------------------------------- /src/fontello/font/fontello.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/fontello/font/fontello.eot -------------------------------------------------------------------------------- /src/fontello/font/fontello.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/fontello/font/fontello.ttf -------------------------------------------------------------------------------- /src/fontello/font/fontello.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/fontello/font/fontello.woff -------------------------------------------------------------------------------- /src/fontello/font/fontello.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/fontello/font/fontello.woff2 -------------------------------------------------------------------------------- /src/img/android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/android.png -------------------------------------------------------------------------------- /src/img/appscreen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/appscreen.jpg -------------------------------------------------------------------------------- /src/img/banner-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/banner-bg.jpg -------------------------------------------------------------------------------- /src/img/bitonic-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/bitonic-logo.png -------------------------------------------------------------------------------- /src/img/blank_profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/blank_profile.png -------------------------------------------------------------------------------- /src/img/btc-home-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/btc-home-banner.png -------------------------------------------------------------------------------- /src/img/btc-perspective-screen-transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/btc-perspective-screen-transparent.png -------------------------------------------------------------------------------- /src/img/btc-showcase-devices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/btc-showcase-devices.png -------------------------------------------------------------------------------- /src/img/glidera-bright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/glidera-bright.png -------------------------------------------------------------------------------- /src/img/home-bitcoin-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/home-bitcoin-icon.png -------------------------------------------------------------------------------- /src/img/home-key-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/home-key-icon.png -------------------------------------------------------------------------------- /src/img/home-qr-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/home-qr-icon.png -------------------------------------------------------------------------------- /src/img/homepage_img.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/homepage_img.jpg -------------------------------------------------------------------------------- /src/img/ios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/ios.png -------------------------------------------------------------------------------- /src/img/logo-btc-reverse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/logo-btc-reverse.png -------------------------------------------------------------------------------- /src/img/logo-btc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/logo-btc.png -------------------------------------------------------------------------------- /src/img/logo-btc2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/logo-btc2.png -------------------------------------------------------------------------------- /src/img/multidevice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/multidevice.png -------------------------------------------------------------------------------- /src/img/qr-code@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/qr-code@2x.png -------------------------------------------------------------------------------- /src/img/simplex-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/simplex-logo.png -------------------------------------------------------------------------------- /src/img/wallet3d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/img/wallet3d.png -------------------------------------------------------------------------------- /src/js/modules/core/controllers/dialog-spinner-modal/dialog-spinner-modal.ctrl.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.core") 5 | .controller("DialogSpinnerModalCtrl", DialogSpinnerModalCtrl); 6 | 7 | function DialogSpinnerModalCtrl($scope, $modalInstance, message, dialogId) { 8 | $scope.message = message; 9 | 10 | $scope.dismiss = function() { 11 | $modalInstance.dismiss("dismiss"); 12 | }; 13 | 14 | $scope.$on("dialog:" + dialogId, function(event, message) { 15 | $scope.message = message; 16 | }); 17 | } 18 | })(); 19 | -------------------------------------------------------------------------------- /src/js/modules/core/controllers/dialog-spinner-modal/dialog-spinner-modal.tpl.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | 15 | -------------------------------------------------------------------------------- /src/js/modules/core/directives/app-wrapper/app-wrapper.directive.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.core") 5 | .directive("appWrapper", appWrapper); 6 | 7 | function appWrapper(CONFIG, $state) { 8 | return { 9 | restrict: "E", 10 | transclude: true, 11 | scope: { 12 | title: '=' 13 | }, 14 | templateUrl: "js/modules/core/directives/app-wrapper/app-wrapper.tpl.html", 15 | link: function(scope) { 16 | scope.CONFIG = CONFIG; 17 | scope.$state = $state; 18 | } 19 | }; 20 | } 21 | 22 | })(); 23 | -------------------------------------------------------------------------------- /src/js/modules/core/directives/app-wrapper/app-wrapper.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |

{{ title | translate }}

6 | 7 | 8 |
9 |
10 |
11 |
12 | -------------------------------------------------------------------------------- /src/js/modules/core/directives/btn-file-data/btn-file-data.tpl.html: -------------------------------------------------------------------------------- 1 |
2 | 8 | 9 |
10 | -------------------------------------------------------------------------------- /src/js/modules/core/directives/top-header/top-header.directive.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.core") 5 | .directive("topHeader", topHeader); 6 | 7 | function topHeader(CONFIG, $state) { 8 | return { 9 | restrict: "E", 10 | replace: true, 11 | scope: { 12 | mode: '=' 13 | }, 14 | templateUrl: "js/modules/core/directives/top-header/top-header.tpl.html", 15 | link: function(scope) { 16 | scope.CONFIG = CONFIG; 17 | scope.$state = $state; 18 | } 19 | }; 20 | } 21 | 22 | })(); 23 | -------------------------------------------------------------------------------- /src/js/modules/core/directives/wallet-email-verified/wallet-email-verified.directive.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.core") 5 | .directive("walletEmailVerified", walletEmailVerified); 6 | 7 | function walletEmailVerified() { 8 | return { 9 | restrict: "E", 10 | replace: true, 11 | scope: { 12 | success: "=", 13 | verified: "=" 14 | }, 15 | templateUrl: "js/modules/core/directives/wallet-email-verified/wallet-email-verified.tpl.html" 16 | }; 17 | } 18 | 19 | })(); 20 | -------------------------------------------------------------------------------- /src/js/modules/core/directives/wallet-email-verified/wallet-email-verified.tpl.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |

4 | {{ ( success || verified ? 'EMAIL_VERIFY_SUCCESS' : 'EMAIL_VERIFY_FAILURE') | translate }} 5 |

6 |

7 | 8 | {{ 'SETUP_COMPLETE' | translate }} 9 | 10 |

11 |
-------------------------------------------------------------------------------- /src/js/modules/core/filters/bip39en/bip39en.filter.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.core") 5 | .filter('filterERS', filterERS); 6 | 7 | function filterERS() { 8 | function handler(bip39EN, input) { 9 | var words = input.split(' '); 10 | input = words[words.length - 1]; 11 | 12 | return bip39EN.filter(function (currElement) { 13 | return currElement.indexOf(input) == 0; 14 | }); 15 | } 16 | 17 | return handler; 18 | } 19 | })(); 20 | -------------------------------------------------------------------------------- /src/js/modules/core/filters/confirmations/confirmations.filter.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.core") 5 | .filter("confirmations", confirmations); 6 | 7 | function confirmations(walletsManagerService) { 8 | return function(input) { 9 | if (input) { 10 | var activeWallet = walletsManagerService.getActiveWallet(); 11 | var walletData = activeWallet.getReadOnlyWalletData(); 12 | 13 | return (parseInt(walletData.blockHeight) - parseInt(input)) + 1; 14 | } else { 15 | return 0; 16 | } 17 | }; 18 | } 19 | 20 | })(); 21 | -------------------------------------------------------------------------------- /src/js/modules/core/filters/displayaddr/displayaddr.filter.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.core") 5 | .filter("displayAddr", displayAddr); 6 | 7 | function displayAddr(sdkService) { 8 | return function(input, useCashAddr) { 9 | if (useCashAddr) { 10 | return sdkService.getSdkByActiveNetwork().getCashAddressFromLegacyAddress(input); 11 | } else { 12 | return input; 13 | } 14 | } 15 | } 16 | 17 | })(); 18 | -------------------------------------------------------------------------------- /src/js/modules/core/filters/duration/duration.filter.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.core") 5 | .filter("duration", ["moment", duration]); 6 | 7 | function duration(moment) { 8 | return function (input) { 9 | return moment.duration(input).humanize(); 10 | }; 11 | } 12 | 13 | })(); 14 | -------------------------------------------------------------------------------- /src/js/modules/core/filters/language-name/language-name.filter.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.core") 5 | .filter("languageName", languageName); 6 | 7 | function languageName(blocktrailLocalisation) { 8 | return function(input) { 9 | return blocktrailLocalisation.languageName(input); 10 | }; 11 | } 12 | 13 | })(); 14 | -------------------------------------------------------------------------------- /src/js/modules/core/filters/math-abs/math-abs.filter.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.core") 5 | .filter("mathAbs", mathAbs); 6 | 7 | function mathAbs() { 8 | return function(input) { 9 | return Math.abs(input); 10 | }; 11 | } 12 | 13 | })(); 14 | -------------------------------------------------------------------------------- /src/js/modules/core/filters/nl2br/nl2br.filter.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.core") 5 | .filter("nl2br", nl2br); 6 | 7 | function nl2br($sce) { 8 | return function(msg) { 9 | return $sce.trustAsHtml((msg + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1
$2')); 10 | } 11 | } 12 | 13 | })(); 14 | -------------------------------------------------------------------------------- /src/js/modules/core/filters/to-currency-symbol/to-currency-symbol.filter.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.core") 5 | .filter("toCurrencySymbol", toCurrencySymbol); 6 | 7 | function toCurrencySymbol(Currencies) { 8 | return function(input) { 9 | if (typeof Currencies.currencies[input] === "undefined") { 10 | return input; 11 | } else { 12 | return Currencies.currencies[input].symbol || input; 13 | } 14 | }; 15 | } 16 | 17 | })(); 18 | -------------------------------------------------------------------------------- /src/js/modules/core/filters/to-currency-ticker/to-currency-ticker.filter.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.core") 5 | .filter("toCurrencyTicker", toCurrencyTicker); 6 | 7 | function toCurrencyTicker(Currencies) { 8 | return function(input) { 9 | if (typeof Currencies.currencies[input] === "undefined") { 10 | return input; 11 | } else { 12 | return Currencies.currencies[input].ticker || Currencies.currencies[input].code || input; 13 | } 14 | }; 15 | } 16 | 17 | })(); 18 | -------------------------------------------------------------------------------- /src/js/modules/core/module.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.core", [ 5 | 'pascalprecht.translate', 6 | 'blocktrail.translations', 7 | 'blocktrail.config' 8 | ]); 9 | })(); 10 | -------------------------------------------------------------------------------- /src/js/modules/core/services/password-strength/password-strength.service.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module('blocktrail.wallet') 5 | .factory('passwordStrengthService', function($q, zxcvbn) { 6 | return new PasswordStrengthService($q, zxcvbn) 7 | }); 8 | 9 | function PasswordStrengthService($q) { 10 | var self = this; 11 | 12 | self._$q = $q; 13 | self._zxcvbn = zxcvbn; 14 | } 15 | 16 | 17 | PasswordStrengthService.prototype.checkPassword = function(password, extraWords) { 18 | var self = this; 19 | 20 | return self._$q.when(self._zxcvbn(password, extraWords || [])); 21 | }; 22 | 23 | })(); 24 | -------------------------------------------------------------------------------- /src/js/modules/setup/controllers/loggedout/loggedout.ctrl.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.setup") 5 | .controller("SetupLoggedoutCtrl", SetupLoggedoutCtrl); 6 | 7 | function SetupLoggedoutCtrl($scope, CONFIG) { 8 | $scope.CONFIG = CONFIG; 9 | } 10 | })(); 11 | -------------------------------------------------------------------------------- /src/js/modules/setup/controllers/loggedout/loggedout.tpl.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |
5 |
6 |
7 |

{{'LOGGED_OUT_CONFIRMATION_TITLE' | translate }}

8 |
9 | 10 | 11 |
12 |
13 | 14 |
15 |
16 | -------------------------------------------------------------------------------- /src/js/modules/setup/controllers/lost-lock/lost-lock.ctrl.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.setup") 5 | .controller("LostLockCtrl", LostLockCtrl); 6 | 7 | 8 | function LostLockCtrl($scope, $stateParams, $timeout, $window) { 9 | if ($stateParams.refresh === "1") { 10 | $window.location.replace("/#/lostlock?refresh=0"); 11 | // short timeout to avoid redirect loop 12 | $timeout(function() { 13 | $window.location.reload(); 14 | }, 100); 15 | } 16 | } 17 | 18 | })(); 19 | -------------------------------------------------------------------------------- /src/js/modules/setup/controllers/rebrand/rebrand.ctrl.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.setup") 5 | .controller("SetupRebrandCtrl", SetupRebrandCtrl); 6 | 7 | function SetupRebrandCtrl($scope, $stateParams) { 8 | $scope.goto = $stateParams.goto; 9 | } 10 | })(); 11 | -------------------------------------------------------------------------------- /src/js/modules/setup/controllers/wallet-init/wallet-init.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |

{{progressStatus.title | translate }}

6 | 7 |
8 |
9 |
10 |

{{ progressStatus.body | translate }}

11 |
12 |
13 |
14 |
15 | -------------------------------------------------------------------------------- /src/js/modules/setup/controllers/wrapper/wrapper.tpl.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |
5 | 6 |
7 |
8 | -------------------------------------------------------------------------------- /src/js/modules/setup/directives/landing-page/landing-page.directive.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.core") 5 | .directive("landingPage", landingPage); 6 | 7 | function landingPage(CONFIG, $state) { 8 | return { 9 | restrict: "E", 10 | transclude: true, 11 | scope: {}, 12 | templateUrl: "js/modules/setup/directives/landing-page/landing-page.tpl.html", 13 | link: function(scope) { 14 | scope.CONFIG = CONFIG; 15 | scope.$state = $state; 16 | } 17 | }; 18 | } 19 | 20 | })(); 21 | -------------------------------------------------------------------------------- /src/js/modules/setup/module.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.setup", [ 5 | "ui.router" 6 | ]); 7 | 8 | })(); -------------------------------------------------------------------------------- /src/js/modules/wallet/controllers/buy-btc-glidera-oauth-callback/buy-btc-glidera-oauth-callback.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |

{{ errorMsg | translate}}

3 |
4 | {{ errorDetails }} 5 |
6 |
7 | -------------------------------------------------------------------------------- /src/js/modules/wallet/controllers/modal-crop-image/modal-crop-image.ctrl.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.wallet") 5 | .controller("ModalCropImageCtrl", ModalCropImageCtrl); 6 | 7 | function ModalCropImageCtrl($scope, $modalInstance, imgData) { 8 | $scope.image = imgData; 9 | $scope.croppedImage = ''; 10 | 11 | $scope.dismiss = function() { 12 | $modalInstance.dismiss(); 13 | }; 14 | 15 | $scope.ok = function() { 16 | $modalInstance.close($scope.croppedImage); 17 | }; 18 | } 19 | })(); 20 | -------------------------------------------------------------------------------- /src/js/modules/wallet/controllers/payment-uri/payment-uri.tpl.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | -------------------------------------------------------------------------------- /src/js/modules/wallet/controllers/settings-tools/settings.tools.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 7 |
8 |
9 |
10 |
11 | 14 |
15 |
16 |
-------------------------------------------------------------------------------- /src/js/modules/wallet/controllers/settings/settings.ctrl.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/js/modules/wallet/controllers/settings/settings.ctrl.js -------------------------------------------------------------------------------- /src/js/modules/wallet/controllers/verify-email/verify-email.tpl.html: -------------------------------------------------------------------------------- 1 |
5 | 6 |
7 |
8 |
9 | 10 |
11 |
12 |
13 | 14 | 15 |
19 | 20 |
21 |
-------------------------------------------------------------------------------- /src/js/modules/wallet/controllers/wallet-transaction-info-modal/wallet-transaction-info-modal.ctrl.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.wallet") 5 | .controller("WalletTransactionInfoModalCtrl", WalletTransactionInfoModalCtrl); 6 | 7 | function WalletTransactionInfoModalCtrl($scope, $modalInstance, data) { 8 | $scope.walletData = data.walletData; 9 | $scope.transaction = data.transaction; 10 | $scope.localCurrency = data.localCurrency; 11 | 12 | $scope.dismiss = function() { 13 | $modalInstance.dismiss(); 14 | } 15 | } 16 | 17 | })(); 18 | -------------------------------------------------------------------------------- /src/js/modules/wallet/directives/app-bcc-fork-warning/app-bcc-fork-warning.directive.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.wallet") 5 | .directive("appBccForkWarning", appBccForkWarning); 6 | 7 | function appBccForkWarning() { 8 | return { 9 | restrict: "E", 10 | replace: true, 11 | templateUrl: "js/modules/wallet/directives/app-bcc-fork-warning/app-bcc-fork-warning.tpl.html" 12 | }; 13 | } 14 | 15 | })(); 16 | 17 | -------------------------------------------------------------------------------- /src/js/modules/wallet/directives/app-bcc-sweep-warning/app-bcc-sweep-warning.directive.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.wallet") 5 | .directive("appBccSweepWarning", appBccSweepWarning); 6 | 7 | function appBccSweepWarning() { 8 | return { 9 | restrict: "E", 10 | replace: true, 11 | templateUrl: "js/modules/wallet/directives/app-bcc-sweep-warning/app-bcc-sweep-warning.tpl.html" 12 | }; 13 | } 14 | 15 | })(); 16 | 17 | -------------------------------------------------------------------------------- /src/js/modules/wallet/directives/app-bcc-sweep-warning/app-bcc-sweep-warning.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
5 | × 6 |
7 | {{ 'BCC_SWEEP_NOTICE_TITLE' | translate }} 8 |

9 |
10 |
11 |
12 |
13 | -------------------------------------------------------------------------------- /src/js/modules/wallet/directives/app-header/app-header.directive.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.wallet") 5 | .directive("appHeader", appHeader); 6 | 7 | function appHeader() { 8 | return { 9 | restrict: "E", 10 | replace: true, 11 | scope: { 12 | pageTitle: '=', 13 | walletData: '=', 14 | bitcoinPrices: '=', 15 | settings: '=', 16 | displayPrice: '=' 17 | }, 18 | templateUrl: "js/modules/wallet/directives/app-header/app-header.tpl.html" 19 | }; 20 | } 21 | 22 | })(); 23 | -------------------------------------------------------------------------------- /src/js/modules/wallet/directives/app-two-factor-warning/app-two-factor-warning.directive.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.wallet") 5 | .directive("appTwoFactorWarning", appTwoFactorWarning); 6 | 7 | function appTwoFactorWarning() { 8 | return { 9 | restrict: "E", 10 | replace: true, 11 | scope: {}, 12 | templateUrl: "js/modules/wallet/directives/app-two-factor-warning/app-two-factor-warning.tpl.html" 13 | }; 14 | } 15 | 16 | })(); 17 | -------------------------------------------------------------------------------- /src/js/modules/wallet/directives/app-two-factor-warning/app-two-factor-warning.tpl.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | {{ 'SECURITY_REMINDER' | translate }} 4 |

{{ 'SECURITY_REMINDER_2FA' | translate }}

5 |
6 | -------------------------------------------------------------------------------- /src/js/modules/wallet/directives/social-media-buttons/social-media-buttons.directive.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.wallet") 5 | .directive("socialMediaButtons", socialMediaButtons); 6 | 7 | function socialMediaButtons() { 8 | return { 9 | restrict: "E", 10 | replace: true, 11 | scope: { 12 | language: '=' 13 | }, 14 | templateUrl: "js/modules/wallet/directives/social-media-buttons/social-media-buttons.tpl.html" 15 | }; 16 | } 17 | 18 | })(); 19 | -------------------------------------------------------------------------------- /src/js/modules/wallet/directives/wallet-app-store-buttons/wallet-app-store-buttons.directive.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.wallet") 5 | .directive("walletAppStoreButtons", walletAppStoreButtons); 6 | 7 | function walletAppStoreButtons() { 8 | return { 9 | restrict: "E", 10 | replace: true, 11 | scope: { 12 | language: '=' 13 | }, 14 | templateUrl: "js/modules/wallet/directives/wallet-app-store-buttons/wallet-app-store-buttons.tpl.html" 15 | }; 16 | } 17 | 18 | })(); 19 | -------------------------------------------------------------------------------- /src/js/modules/wallet/directives/wallet-no-more-transactions/wallet-no-more-transactions.directive.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.wallet") 5 | .directive("walletNoMoreTransactions", walletNoMoreTransactions); 6 | 7 | function walletNoMoreTransactions() { 8 | return { 9 | restrict: "E", 10 | replace: true, 11 | scope: {}, 12 | templateUrl: "js/modules/wallet/directives/wallet-no-more-transactions/wallet-no-more-transactions.tpl.html" 13 | }; 14 | } 15 | 16 | })(); 17 | -------------------------------------------------------------------------------- /src/js/modules/wallet/directives/wallet-no-more-transactions/wallet-no-more-transactions.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{ 'WALLET_NO_MORE_TXS' | translate }} 4 |
5 |
-------------------------------------------------------------------------------- /src/js/modules/wallet/directives/wallet-no-transactions/wallet-no-transactions.directive.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.wallet") 5 | .directive("walletNoTransactions", walletNoTransactions); 6 | 7 | function walletNoTransactions() { 8 | return { 9 | restrict: "E", 10 | replace: true, 11 | scope: { 12 | success: "=" 13 | }, 14 | templateUrl: "js/modules/wallet/directives/wallet-no-transactions/wallet-no-transactions.tpl.html" 15 | }; 16 | } 17 | 18 | })(); 19 | -------------------------------------------------------------------------------- /src/js/modules/wallet/directives/wallet-no-transactions/wallet-no-transactions.tpl.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |

4 | {{ 'WALLET_NO_TXS' | translate }} 5 |

6 |

7 | {{ 'WALLET_ACTION_PRE' | translate }} 8 | 9 | {{ 'WALLET_ACTION_LINK' | translate }} 10 | 11 |

12 |
-------------------------------------------------------------------------------- /src/js/modules/wallet/directives/wallet-security-progress-bar/wallet-security-progress-bar.directive.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.wallet") 5 | .directive("walletSecProgressBar", walletSecurityProgressBar); 6 | 7 | function walletSecurityProgressBar() { 8 | return { 9 | restrict: "E", 10 | replace: true, 11 | scope: { 12 | score: '=' 13 | }, 14 | templateUrl: "js/modules/wallet/directives/wallet-security-progress-bar/wallet-security-progress-bar.tpl.html" 15 | }; 16 | } 17 | 18 | })(); 19 | -------------------------------------------------------------------------------- /src/js/modules/wallet/directives/wallet-side-nav/wallet-side-nav.directive.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | "use strict"; 3 | 4 | angular.module("blocktrail.wallet") 5 | .directive("walletSideNav", walletSideNav); 6 | 7 | function walletSideNav() { 8 | return { 9 | restrict: "E", 10 | replace: true, 11 | scope: { 12 | list: '=' 13 | }, 14 | templateUrl: "js/modules/wallet/directives/wallet-side-nav/wallet-side-nav.tpl.html" 15 | }; 16 | } 17 | 18 | })(); 19 | -------------------------------------------------------------------------------- /src/js/modules/wallet/directives/wallet-side-nav/wallet-side-nav.tpl.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/js/modules/wallet/directives/wallet-transaction-avatar/wallet-transaction-avatar.tpl.html: -------------------------------------------------------------------------------- 1 |
5 | 6 |
7 | {{ contactInitials }} 8 |
9 | 10 | 11 | 15 |
16 | -------------------------------------------------------------------------------- /src/lib/SHA-1/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SHA-1", 3 | "version": "0.1.1", 4 | "homepage": "https://github.com/linkgod/SHA-1", 5 | "authors": [ 6 | "linkgod " 7 | ], 8 | "description": "This is a SHA-1 hash generator by JavaScript.", 9 | "main": "sha1.js", 10 | "keywords": [ 11 | "SHA-1", 12 | "sha1", 13 | "hash", 14 | "encryption" 15 | ], 16 | "license": "MIT", 17 | "ignore": [ 18 | "**/.*", 19 | "node_modules", 20 | "bower_components", 21 | "test", 22 | "tests" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /src/lib/SHA-1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sha-1", 3 | "version": "0.1.1", 4 | "description": "This is a SHA-1 hash generator by JavaScript.", 5 | "main": "sha1.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/linkgod/SHA-1.git" 12 | }, 13 | "keywords": [ 14 | "SHA-1", 15 | "sha1", 16 | "hash", 17 | "encryption" 18 | ], 19 | "author": "linkgod (http://www.linkgod.net/)", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/linkgod/SHA-1/issues" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/lib/angular-bootstrap/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store -------------------------------------------------------------------------------- /src/lib/angular-bootstrap/.npmignore: -------------------------------------------------------------------------------- 1 | bower.json -------------------------------------------------------------------------------- /src/lib/angular-bootstrap/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "author": { 3 | "name": "https://github.com/angular-ui/bootstrap/graphs/contributors" 4 | }, 5 | "name": "angular-bootstrap", 6 | "keywords": [ 7 | "angular", 8 | "angular-ui", 9 | "bootstrap" 10 | ], 11 | "license": "MIT", 12 | "ignore": [], 13 | "description": "Native AngularJS (Angular) directives for Bootstrap.", 14 | "version": "0.14.3", 15 | "main": ["./ui-bootstrap-tpls.js"], 16 | "dependencies": { 17 | "angular": ">=1.3.0" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/lib/angular-bootstrap/index.js: -------------------------------------------------------------------------------- 1 | require('./ui-bootstrap-tpls'); 2 | module.exports = 'ui.bootstrap'; 3 | -------------------------------------------------------------------------------- /src/lib/angular-bootstrap/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-ui-bootstrap", 3 | "version": "0.14.3", 4 | "description": "Bootstrap widgets for Angular", 5 | "main": "index.js", 6 | "homepage": "http://angular-ui.github.io/bootstrap/", 7 | "repository": { 8 | "type": "git", 9 | "url": "https://github.com/angular-ui/bootstrap.git" 10 | }, 11 | "keywords": [ 12 | "angular", 13 | "bootstrap", 14 | "angular-ui", 15 | "components", 16 | "client-side" 17 | ], 18 | "author": "https://github.com/angular-ui/bootstrap/graphs/contributors", 19 | "peerDependencies": { 20 | "angular": "^1.3.x || >= 1.4.0-beta.0 || >= 1.5.0-beta.0" 21 | }, 22 | "license": "MIT" 23 | } 24 | -------------------------------------------------------------------------------- /src/lib/angular-bootstrap/ui-bootstrap-csp.css: -------------------------------------------------------------------------------- 1 | /* Include this file in your html if you are using the CSP mode. */ 2 | 3 | .ng-animate.item:not(.left):not(.right) { 4 | -webkit-transition: 0s ease-in-out left; 5 | transition: 0s ease-in-out left 6 | } -------------------------------------------------------------------------------- /src/lib/angular-moment/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | [*] 8 | 9 | # Change these settings to your own preference 10 | indent_style = tab 11 | indent_size = 4 12 | 13 | # We recommend you to keep these unchanged 14 | end_of_line = lf 15 | charset = utf-8 16 | trim_trailing_whitespace = true 17 | insert_final_newline = true 18 | 19 | [{package.json,bower.json}] 20 | indent_style=space 21 | indent_size=2 22 | 23 | [*.md] 24 | trim_trailing_whitespace = false 25 | -------------------------------------------------------------------------------- /src/lib/angular-moment/.gitignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | /bower_components 3 | /node_modules 4 | /coverage -------------------------------------------------------------------------------- /src/lib/angular-moment/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "node": true, 3 | "browser": true, 4 | "esnext": true, 5 | "bitwise": true, 6 | "camelcase": true, 7 | "curly": true, 8 | "eqeqeq": true, 9 | "immed": true, 10 | "indent": 2, 11 | "latedef": true, 12 | "newcap": true, 13 | "noarg": true, 14 | "quotmark": "single", 15 | "regexp": true, 16 | "undef": true, 17 | "unused": true, 18 | "strict": true, 19 | "trailing": true, 20 | "smarttabs": true, 21 | "maxdepth": 2, 22 | "maxcomplexity": 10, 23 | "globals": { 24 | "angular": false 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/lib/angular-moment/.npmignore: -------------------------------------------------------------------------------- 1 | .idea 2 | bower_components 3 | node_modules 4 | coverage 5 | -------------------------------------------------------------------------------- /src/lib/angular-moment/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | sudo: false 3 | node_js: 4 | - "0.10" 5 | before_script: 6 | - npm run bower 7 | after_success: 8 | - cat ./coverage/*/lcov.info | ./node_modules/coveralls/bin/coveralls.js 9 | -------------------------------------------------------------------------------- /src/lib/angular-moment/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-moment", 3 | "description": "Moment.JS directives & filters for AngularJS (timeago alternative)", 4 | "author": "Uri Shaked", 5 | "license": "MIT", 6 | "homepage": "http://github.com/urish/angular-moment", 7 | "main": "./angular-moment.js", 8 | "ignore": [ 9 | ], 10 | "dependencies": { 11 | "angular": ">=1.2.0 <1.5.0", 12 | "moment": ">=2.8.0 <2.11.0" 13 | }, 14 | "devDependencies": { 15 | "angular-mocks": "1.4.x", 16 | "moment-timezone": "0.4.0" 17 | }, 18 | "repository": { 19 | "type": "git", 20 | "url": "git://github.com/urish/angular-moment.git" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/lib/angular-qr/karma.conf.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | config.set({ 3 | basePath: '', 4 | files: [ 5 | // Defined by gulp 6 | ], 7 | frameworks: ['jasmine'], 8 | singleRun: true, 9 | browsers: [ 'Chrome' ] 10 | }); 11 | }; -------------------------------------------------------------------------------- /src/lib/angular-sanitize/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-sanitize", 3 | "version": "1.6.1", 4 | "license": "MIT", 5 | "main": "./angular-sanitize.js", 6 | "ignore": [], 7 | "dependencies": { 8 | "angular": "1.6.1" 9 | }, 10 | "homepage": "https://github.com/angular/bower-angular-sanitize", 11 | "_release": "1.6.1", 12 | "_resolution": { 13 | "type": "version", 14 | "tag": "v1.6.1", 15 | "commit": "4ca638073916d43ad3737eb9d84b9021e5bb5efb" 16 | }, 17 | "_source": "https://github.com/angular/bower-angular-sanitize.git", 18 | "_target": "^1.6.1", 19 | "_originalSource": "angular-sanitize", 20 | "_direct": true 21 | } -------------------------------------------------------------------------------- /src/lib/angular-sanitize/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-sanitize", 3 | "version": "1.6.1", 4 | "license": "MIT", 5 | "main": "./angular-sanitize.js", 6 | "ignore": [], 7 | "dependencies": { 8 | "angular": "1.6.1" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/lib/angular-sanitize/index.js: -------------------------------------------------------------------------------- 1 | require('./angular-sanitize'); 2 | module.exports = 'ngSanitize'; 3 | -------------------------------------------------------------------------------- /src/lib/angular-toggle-switch/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-toggle-switch", 3 | "version": "1.3.0", 4 | "main": [ 5 | "angular-toggle-switch.js", 6 | "angular-toggle-switch.css" 7 | ], 8 | "homepage": "http://cgarvis.github.io/angular-toggle-switch/", 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/cgarvis/angular-toggle-switch.git" 12 | }, 13 | "devDependencies": { 14 | "angular": ">=1.0", 15 | "angular-mocks": ">=1.0" 16 | }, 17 | "ignore": [ 18 | "**/.*", 19 | "Gruntfile.js", 20 | "karma.conf.js", 21 | "package.json", 22 | ".travis.yml" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /src/lib/angular-translate/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-translate", 3 | "description": "A translation module for AngularJS", 4 | "version": "2.7.2", 5 | "main": "./angular-translate.js", 6 | "dependencies": { 7 | "angular": ">=1.2.26 <=1.5" 8 | }, 9 | "ignore": [], 10 | "author": "Pascal Precht", 11 | "licenses": [ 12 | { 13 | "type": "MIT", 14 | "url": "http://www.opensource.org/licenses/MIT" 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /src/lib/angular-ui-router/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-ui-router", 3 | "version": "0.2.15", 4 | "main": "./release/angular-ui-router.js", 5 | "dependencies": { 6 | "angular": ">= 1.0.8" 7 | }, 8 | "ignore": [ 9 | "**/.*", 10 | "node_modules", 11 | "bower_components", 12 | "component.json", 13 | "package.json", 14 | "lib", 15 | "config", 16 | "sample", 17 | "test", 18 | "tests", 19 | "ngdoc_assets", 20 | "Gruntfile.js", 21 | "files.js" 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /src/lib/angular/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.3.17", 4 | "main": "./angular.js", 5 | "ignore": [], 6 | "dependencies": {}, 7 | "homepage": "https://github.com/angular/bower-angular", 8 | "_release": "1.3.17", 9 | "_resolution": { 10 | "type": "version", 11 | "tag": "v1.3.17", 12 | "commit": "a74a28d38edfb835ad0fe6cb1b36d8a2a82024e3" 13 | }, 14 | "_source": "git://github.com/angular/bower-angular.git", 15 | "_target": "~1.3.13", 16 | "_originalSource": "angular" 17 | } -------------------------------------------------------------------------------- /src/lib/angular/angular-csp.css: -------------------------------------------------------------------------------- 1 | /* Include this file in your html if you are using the CSP mode. */ 2 | 3 | @charset "UTF-8"; 4 | 5 | [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], 6 | .ng-cloak, .x-ng-cloak, 7 | .ng-hide:not(.ng-hide-animate) { 8 | display: none !important; 9 | } 10 | 11 | ng\:form { 12 | display: block; 13 | } 14 | -------------------------------------------------------------------------------- /src/lib/angular/angular.min.js.gzip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/angular/angular.min.js.gzip -------------------------------------------------------------------------------- /src/lib/angular/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.3.17", 4 | "main": "./angular.js", 5 | "ignore": [], 6 | "dependencies": { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/lib/angular/index.js: -------------------------------------------------------------------------------- 1 | require('./angular'); 2 | module.exports = angular; 3 | -------------------------------------------------------------------------------- /src/lib/angular/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.3.17", 4 | "description": "HTML enhanced for web apps", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/angular/angular.js.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "framework", 16 | "browser", 17 | "client-side" 18 | ], 19 | "author": "Angular Core Team ", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/angular/angular.js/issues" 23 | }, 24 | "homepage": "http://angularjs.org" 25 | } 26 | -------------------------------------------------------------------------------- /src/lib/angulartics-google-analytics/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angulartics-google-analytics", 3 | "main": "lib/angulartics-ga.js", 4 | "dependencies": { 5 | "angulartics": "^1.2.1" 6 | }, 7 | "ignore": [ 8 | "**/.*", 9 | "bower_components", 10 | "node_modules", 11 | "example", 12 | "package.json", 13 | "lib/index.js" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /src/lib/angulartics/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "components" 3 | } 4 | -------------------------------------------------------------------------------- /src/lib/angulartics/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angulartics", 3 | "main": [ 4 | "src/angulartics.js" 5 | ], 6 | "dependencies": { 7 | "angular": ">= 1.1.5", 8 | "SHA-1": "*" 9 | }, 10 | "devDependencies": { 11 | "angular-mocks": ">= 1.1.5", 12 | "angular-route": "~1.2", 13 | "angular-ui-router": "~0.2" 14 | }, 15 | "ignore": [ 16 | ".gitignore", 17 | "test", 18 | "samples", 19 | "LICENSE", 20 | "*.md", 21 | "Gruntfile.js", 22 | "karma.conf.js", 23 | "package.json" 24 | ], 25 | "resolutions": { 26 | "angular": ">= 1.1.5" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/lib/angulartics/dist/angulartics-cnzz.min.js: -------------------------------------------------------------------------------- 1 | !function(a){"use strict";/** 2 | * @ngdoc overview 3 | * @name angulartics.cnzz 4 | * Enables analytics support for CNZZ (http://www.cnzz.com) 5 | */ 6 | a.module("angulartics.cnzz",["angulartics"]).config(["$analyticsProvider",function(a){window._czc=window._czc||[],_czc.push(["_setAutoPageview",!1]),a.registerPageTrack(function(a){_czc.push(["_trackPageview",a])}),a.registerEventTrack(function(a,b){_czc.push(["_trackEvent",b.category,a,b.label,b.value,b.nodeid])})}])}(angular); -------------------------------------------------------------------------------- /src/lib/angulartics/dist/angulartics-debug.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license Angulartics 3 | * (c) 2014 Luis Farzati http://luisfarzati.github.io/angulartics 4 | * License: MIT 5 | */ 6 | !function(a){"use strict";/** 7 | * @ngdoc overview 8 | * @name angulartics.debug 9 | * Enables analytics debugging to console 10 | */ 11 | a.module("angulartics.debug",["angulartics"]).config(["$analyticsProvider",function(a){a.registerPageTrack(function(a){console.log("Page tracking: ",a)}),/** 12 | * Track Event 13 | * @name eventTrack 14 | */ 15 | a.registerEventTrack(function(a,b){console.log("Event tracking: ",a,b)})}])}(angular); -------------------------------------------------------------------------------- /src/lib/angulartics/dist/angulartics-loggly.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license Angulartics 3 | * (c) 2013 Luis Farzati http://luisfarzati.github.io/angulartics 4 | * Contributed by http://github.com/zoellner 5 | * License: MIT 6 | */ 7 | !function(a){"use strict";/** 8 | * @ngdoc overview 9 | * @name angulartics.loggly 10 | * Enables analytics support for Loggly 11 | */ 12 | a.module("angulartics.loggly",["angulartics"]).config(["$analyticsProvider",function(a){var b=function(){throw"Define _LTracker "},c=function(){return window._LTracker||{push:b}};a.registerPageTrack(function(a){c().push({tag:"pageview",path:a})}),a.registerEventTrack(function(a,b){c().push({action:a,properties:b})})}])}(angular); -------------------------------------------------------------------------------- /src/lib/angulartics/dist/angulartics-woopra.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license Angulartics 3 | * (c) 2013 Luis Farzati http://luisfarzati.github.io/angulartics 4 | * License: MIT 5 | */ 6 | !function(a){"use strict";/** 7 | * @ngdoc overview 8 | * @name angulartics.woopra 9 | * Enables analytics support for Woopra (http://www.woopra.com) 10 | */ 11 | a.module("angulartics.woopra",["angulartics"]).config(["$analyticsProvider",function(a){a.registerPageTrack(function(a){woopra.track("pv",{url:a})}),a.registerEventTrack(function(a,b){woopra.track(a,b)}),a.registerSetUsername(function(a){woopra.identify("email",a).push()}),a.registerSetUserProperties(function(a){a.email&&woopra.identify(a).push()})}])}(angular); -------------------------------------------------------------------------------- /src/lib/angulartics/dist/index.min.js: -------------------------------------------------------------------------------- 1 | require("./angulartics"),module.exports="angulartics"; -------------------------------------------------------------------------------- /src/lib/angulartics/src/index.js: -------------------------------------------------------------------------------- 1 | require('./angulartics'); 2 | module.exports = 'angulartics'; 3 | -------------------------------------------------------------------------------- /src/lib/bip70-js/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bip70-js", 3 | "description": "Javascript library for handling BIP70 payment requests", 4 | "main": "main.js", 5 | "authors": [ 6 | "Thomas Kerin" 7 | ], 8 | "license": "MIT", 9 | "keywords": [ 10 | "bip70", 11 | "bitcoin" 12 | ], 13 | "homepage": "https://github.com/bip70/bip70-js", 14 | "ignore": [ 15 | "**/.*", 16 | "node_modules", 17 | "bower_components", 18 | "test", 19 | "tests" 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /src/lib/bip70-js/lib/bip70.js: -------------------------------------------------------------------------------- 1 | 2 | var RequestBuilder = require('./request_builder'); 3 | var ProtoBuf = require('./protobuf'); 4 | var X509 = require('./x509'); 5 | var NetworkConfig = require('./config'); 6 | 7 | exports = module.exports = { 8 | RequestBuilder: RequestBuilder, 9 | HttpClient: require('./client'), 10 | ProtoBuf: ProtoBuf, 11 | X509: X509, 12 | NetworkConfig: NetworkConfig 13 | }; 14 | -------------------------------------------------------------------------------- /src/lib/bip70-js/lib/protobuf.js: -------------------------------------------------------------------------------- 1 | var protobuf = require("protobufjs"); 2 | 3 | var root = protobuf.Root.fromJSON(require("./protofile.json")); 4 | 5 | module.exports = { 6 | Output: root.lookupType("Output"), 7 | PaymentDetails: root.lookupType("PaymentDetails"), 8 | PaymentRequest: root.lookupType("PaymentRequest"), 9 | Payment: root.lookupType("Payment"), 10 | PaymentACK: root.lookupType("PaymentACK"), 11 | X509Certificates: root.lookupType("X509Certificates") 12 | }; 13 | -------------------------------------------------------------------------------- /src/lib/bip70-js/lib/x509/index.js: -------------------------------------------------------------------------------- 1 | 2 | //Validation: //require('./validation.pkijs') 3 | 4 | var validation = require('./validation.jsrsasign'); 5 | 6 | module.exports = { 7 | PKIType: require('./pkitype'), 8 | TrustStore: require('./truststore'), 9 | GetSignatureAlgorithm: validation.GetSignatureAlgorithm, 10 | ChainPathBuilder: validation.ChainPathBuilder, 11 | ChainPathValidator: validation.ChainPathValidator, 12 | RequestValidator: validation.RequestValidator 13 | }; 14 | -------------------------------------------------------------------------------- /src/lib/bip70-js/lib/x509/pkitype.js: -------------------------------------------------------------------------------- 1 | 2 | var PKIType = {}; 3 | PKIType.NONE = "none"; 4 | PKIType.X509_SHA1 = "x509+sha1"; 5 | PKIType.X509_SHA256 = "x509+sha256"; 6 | 7 | module.exports = PKIType; 8 | -------------------------------------------------------------------------------- /src/lib/bip70-js/lib/x509/truststore.js: -------------------------------------------------------------------------------- 1 | var jsrsasign = require('jsrsasign'); 2 | 3 | function parseCertFrom(string, encoding) { 4 | var cert = new jsrsasign.X509(); 5 | cert.readCertHex(Buffer.from(string, encoding).toString('hex')); 6 | return cert; 7 | } 8 | 9 | function parseCertFromBase64(string) { 10 | return parseCertFrom(string, 'base64'); 11 | } 12 | 13 | var certificates = require('./ca-certificates.json'); 14 | var store = []; 15 | Object.keys(certificates).map(function(key) { 16 | store.push(parseCertFromBase64(certificates[key])); 17 | }); 18 | 19 | module.exports = store; 20 | -------------------------------------------------------------------------------- /src/lib/bip70-js/main.js: -------------------------------------------------------------------------------- 1 | var Bip70 = require("./lib/bip70.js"); 2 | 3 | exports = module.exports = Bip70; 4 | -------------------------------------------------------------------------------- /src/lib/bip70-js/test.js: -------------------------------------------------------------------------------- 1 | exports = module.exports = { 2 | bip70: require('./'), 3 | requestBuilderTest: require('./test/request_builder.test'), 4 | protobufTest: require('./test/protobuf.test'), 5 | validationTest: require('./test/validation.test'), 6 | clientTest: require('./test/client.test') 7 | }; 8 | -------------------------------------------------------------------------------- /src/lib/blocktrail-sdk/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "blocktrail-sdk-nodejs", 3 | "homepage": "https://github.com/blocktrail/blocktrail-sdk-nodejs", 4 | "authors": [ 5 | "Ruben de Vries " 6 | ], 7 | "description": "BlockTrail's Developer Friendly API binding for NodeJS", 8 | "main": "main.js", 9 | "license": "MIT", 10 | "ignore": [ 11 | "**/.*", 12 | "node_modules", 13 | "bower_components", 14 | "test", 15 | "tests" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /src/lib/blocktrail-sdk/docs/RELEASE.md: -------------------------------------------------------------------------------- 1 | BlockTrail NodeJS SDK Release Process 2 | ===================================== 3 | 4 | - update `docs/CHANGELOG.md` to moving 'Next Release' things into `vX` section 5 | 6 | - `./node_modules/jscs/bin/jscs main.js lib/ test/ && ./node_modules/jscs/bin/jscs main.js main.js lib/ test/` 7 | 8 | - `git submodule update --init --recursive` 9 | 10 | - `./tools/release.sh vX.Y.Z` 11 | -------------------------------------------------------------------------------- /src/lib/blocktrail-sdk/lib/pbkdf2_sha512-browser.js: -------------------------------------------------------------------------------- 1 | /* globals window, self */ 2 | 3 | var pbkdf2Sha512 = function(pw, salt, iterations, keySizeBytes) { 4 | // assumes asmCrypto is made available 5 | var asmCrypto = typeof window !== "undefined" ? window.asmCrypto : self.asmCrypto; 6 | 7 | return new Buffer(new asmCrypto.PBKDF2_HMAC_SHA512.bytes(pw, salt, iterations, keySizeBytes).buffer); 8 | }; 9 | 10 | module.exports = { 11 | digest: pbkdf2Sha512 12 | }; 13 | -------------------------------------------------------------------------------- /src/lib/blocktrail-sdk/lib/pbkdf2_sha512-sjcl.js: -------------------------------------------------------------------------------- 1 | var sjcl = require('sjcl'); 2 | 3 | var hmacSha512 = function(key) { 4 | var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512); 5 | this.encrypt = function() { 6 | return hasher.encrypt.apply(hasher, arguments); 7 | }; 8 | }; 9 | 10 | var pbkdf2Sha512 = function(pw, salt, iterations, keySizeBytes) { 11 | salt = sjcl.codec.hex.toBits(salt.toString('hex')); 12 | var data = sjcl.codec.hex.toBits(pw.toString('hex')); 13 | return new Buffer(sjcl.codec.hex.fromBits(sjcl.misc.pbkdf2(data, salt, iterations, keySizeBytes * 8, hmacSha512)), 'hex'); 14 | }; 15 | 16 | module.exports = { 17 | digest: pbkdf2Sha512 18 | }; 19 | -------------------------------------------------------------------------------- /src/lib/blocktrail-sdk/lib/pbkdf2_sha512.js: -------------------------------------------------------------------------------- 1 | var crypto = require('crypto'); 2 | var pbkdf2Sha512 = function(pw, salt, iterations, keySizeBytes) { 3 | return crypto.pbkdf2Sync(pw, salt, iterations, keySizeBytes, 'sha512'); 4 | }; 5 | 6 | module.exports = { 7 | digest: pbkdf2Sha512 8 | }; 9 | -------------------------------------------------------------------------------- /src/lib/blocktrail-sdk/lib/pkginfo-browser.js: -------------------------------------------------------------------------------- 1 | module.exports = exports = { 2 | VERSION: '__VERSION__' 3 | }; 4 | -------------------------------------------------------------------------------- /src/lib/blocktrail-sdk/lib/pkginfo.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = exports = { 3 | VERSION: require('../package.json').version 4 | }; 5 | -------------------------------------------------------------------------------- /src/lib/blocktrail-sdk/lib/use-webworker.js: -------------------------------------------------------------------------------- 1 | /* globals window, navigator */ 2 | var isNodeJS = !process.browser; 3 | var useWebWorker = !isNodeJS && typeof window !== "undefined" && typeof window.Worker !== "undefined"; 4 | 5 | var androidVersion = ((typeof navigator !== "undefined" && navigator.userAgent) || "").match(/Android (\d)\.(\d)(\.(\d))/); 6 | 7 | if (androidVersion) { 8 | if (androidVersion[1] <= 4) { 9 | useWebWorker = false; 10 | } 11 | } 12 | 13 | module.exports = exports = function() { 14 | return useWebWorker; 15 | }; 16 | -------------------------------------------------------------------------------- /src/lib/blocktrail-sdk/main-with-backup-generator.js: -------------------------------------------------------------------------------- 1 | exports = module.exports = require('./main'); 2 | 3 | exports.BackupGenerator = require('blocktrail-sdk-backup-generator'); 4 | -------------------------------------------------------------------------------- /src/lib/blocktrail-sdk/test.js: -------------------------------------------------------------------------------- 1 | exports = module.exports = { 2 | blocktrailSDK: require('./'), 3 | webworkifier: require('./test/webworkifier.test'), 4 | api_client: require('./test/api_client-data.test'), 5 | api_client_other: require('./test/api_client-other.test'), 6 | api_client_promises: require('./test/api_client-promises.test'), 7 | crypto: require('./test/crypto.test'), 8 | size_estimation: require('./test/size_estimation.test'), 9 | wallet: require('./test/wallet.test'), 10 | buffer: require('./test/buffer.test') 11 | }; 12 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/javascripts/bootstrap-sprockets.js: -------------------------------------------------------------------------------- 1 | //= require ./bootstrap/affix 2 | //= require ./bootstrap/alert 3 | //= require ./bootstrap/button 4 | //= require ./bootstrap/carousel 5 | //= require ./bootstrap/collapse 6 | //= require ./bootstrap/dropdown 7 | //= require ./bootstrap/tab 8 | //= require ./bootstrap/transition 9 | //= require ./bootstrap/scrollspy 10 | //= require ./bootstrap/modal 11 | //= require ./bootstrap/tooltip 12 | //= require ./bootstrap/popover 13 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/_bootstrap-compass.scss: -------------------------------------------------------------------------------- 1 | @function twbs-font-path($path) { 2 | @return font-url($path, true); 3 | } 4 | 5 | @function twbs-image-path($path) { 6 | @return image-url($path, true); 7 | } 8 | 9 | $bootstrap-sass-asset-helper: true; 10 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/_bootstrap-sprockets.scss: -------------------------------------------------------------------------------- 1 | @function twbs-font-path($path) { 2 | @return font-path($path); 3 | } 4 | 5 | @function twbs-image-path($path) { 6 | @return image-path($path); 7 | } 8 | 9 | $bootstrap-sass-asset-helper: true; 10 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_alerts.scss: -------------------------------------------------------------------------------- 1 | // Alerts 2 | 3 | @mixin alert-variant($background, $border, $text-color) { 4 | background-color: $background; 5 | border-color: $border; 6 | color: $text-color; 7 | 8 | hr { 9 | border-top-color: darken($border, 5%); 10 | } 11 | .alert-link { 12 | color: darken($text-color, 10%); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_background-variant.scss: -------------------------------------------------------------------------------- 1 | // Contextual backgrounds 2 | 3 | // [converter] $parent hack 4 | @mixin bg-variant($parent, $color) { 5 | #{$parent} { 6 | background-color: $color; 7 | } 8 | a#{$parent}:hover, 9 | a#{$parent}:focus { 10 | background-color: darken($color, 10%); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_border-radius.scss: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | @mixin border-top-radius($radius) { 4 | border-top-right-radius: $radius; 5 | border-top-left-radius: $radius; 6 | } 7 | @mixin border-right-radius($radius) { 8 | border-bottom-right-radius: $radius; 9 | border-top-right-radius: $radius; 10 | } 11 | @mixin border-bottom-radius($radius) { 12 | border-bottom-right-radius: $radius; 13 | border-bottom-left-radius: $radius; 14 | } 15 | @mixin border-left-radius($radius) { 16 | border-bottom-left-radius: $radius; 17 | border-top-left-radius: $radius; 18 | } 19 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_center-block.scss: -------------------------------------------------------------------------------- 1 | // Center-align a block level element 2 | 3 | @mixin center-block() { 4 | display: block; 5 | margin-left: auto; 6 | margin-right: auto; 7 | } 8 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_labels.scss: -------------------------------------------------------------------------------- 1 | // Labels 2 | 3 | @mixin label-variant($color) { 4 | background-color: $color; 5 | 6 | &[href] { 7 | &:hover, 8 | &:focus { 9 | background-color: darken($color, 10%); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_nav-divider.scss: -------------------------------------------------------------------------------- 1 | // Horizontal dividers 2 | // 3 | // Dividers (basically an hr) within dropdowns and nav lists 4 | 5 | @mixin nav-divider($color: #e5e5e5) { 6 | height: 1px; 7 | margin: (($line-height-computed / 2) - 1) 0; 8 | overflow: hidden; 9 | background-color: $color; 10 | } 11 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss: -------------------------------------------------------------------------------- 1 | // Navbar vertical align 2 | // 3 | // Vertically center elements in the navbar. 4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. 5 | 6 | @mixin navbar-vertical-align($element-height) { 7 | margin-top: (($navbar-height - $element-height) / 2); 8 | margin-bottom: (($navbar-height - $element-height) / 2); 9 | } 10 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_opacity.scss: -------------------------------------------------------------------------------- 1 | // Opacity 2 | 3 | @mixin opacity($opacity) { 4 | opacity: $opacity; 5 | // IE8 filter 6 | $opacity-ie: ($opacity * 100); 7 | filter: alpha(opacity=$opacity-ie); 8 | } 9 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_pagination.scss: -------------------------------------------------------------------------------- 1 | // Pagination 2 | 3 | @mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) { 4 | > li { 5 | > a, 6 | > span { 7 | padding: $padding-vertical $padding-horizontal; 8 | font-size: $font-size; 9 | line-height: $line-height; 10 | } 11 | &:first-child { 12 | > a, 13 | > span { 14 | @include border-left-radius($border-radius); 15 | } 16 | } 17 | &:last-child { 18 | > a, 19 | > span { 20 | @include border-right-radius($border-radius); 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_panels.scss: -------------------------------------------------------------------------------- 1 | // Panels 2 | 3 | @mixin panel-variant($border, $heading-text-color, $heading-bg-color, $heading-border) { 4 | border-color: $border; 5 | 6 | & > .panel-heading { 7 | color: $heading-text-color; 8 | background-color: $heading-bg-color; 9 | border-color: $heading-border; 10 | 11 | + .panel-collapse > .panel-body { 12 | border-top-color: $border; 13 | } 14 | .badge { 15 | color: $heading-bg-color; 16 | background-color: $heading-text-color; 17 | } 18 | } 19 | & > .panel-footer { 20 | + .panel-collapse > .panel-body { 21 | border-bottom-color: $border; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_progress-bar.scss: -------------------------------------------------------------------------------- 1 | // Progress bars 2 | 3 | @mixin progress-bar-variant($color) { 4 | background-color: $color; 5 | 6 | // Deprecated parent class requirement as of v3.2.0 7 | .progress-striped & { 8 | @include gradient-striped; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_reset-filter.scss: -------------------------------------------------------------------------------- 1 | // Reset filters for IE 2 | // 3 | // When you need to remove a gradient background, do not forget to use this to reset 4 | // the IE filter for IE9 and below. 5 | 6 | @mixin reset-filter() { 7 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 8 | } 9 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_reset-text.scss: -------------------------------------------------------------------------------- 1 | @mixin reset-text() { 2 | font-family: $font-family-base; 3 | // We deliberately do NOT reset font-size. 4 | font-style: normal; 5 | font-weight: normal; 6 | letter-spacing: normal; 7 | line-break: auto; 8 | line-height: $line-height-base; 9 | text-align: left; // Fallback for where `start` is not supported 10 | text-align: start; 11 | text-decoration: none; 12 | text-shadow: none; 13 | text-transform: none; 14 | white-space: normal; 15 | word-break: normal; 16 | word-spacing: normal; 17 | word-wrap: normal; 18 | } 19 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_resize.scss: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | @mixin resizable($direction) { 4 | resize: $direction; // Options: horizontal, vertical, both 5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 6 | } 7 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss: -------------------------------------------------------------------------------- 1 | // Responsive utilities 2 | 3 | // 4 | // More easily include all the states for responsive-utilities.less. 5 | // [converter] $parent hack 6 | @mixin responsive-visibility($parent) { 7 | #{$parent} { 8 | display: block !important; 9 | } 10 | table#{$parent} { display: table !important; } 11 | tr#{$parent} { display: table-row !important; } 12 | th#{$parent}, 13 | td#{$parent} { display: table-cell !important; } 14 | } 15 | 16 | // [converter] $parent hack 17 | @mixin responsive-invisibility($parent) { 18 | #{$parent} { 19 | display: none !important; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_size.scss: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | @mixin size($width, $height) { 4 | width: $width; 5 | height: $height; 6 | } 7 | 8 | @mixin square($size) { 9 | @include size($size, $size); 10 | } 11 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_tab-focus.scss: -------------------------------------------------------------------------------- 1 | // WebKit-style focus 2 | 3 | @mixin tab-focus() { 4 | // Default 5 | outline: thin dotted; 6 | // WebKit 7 | outline: 5px auto -webkit-focus-ring-color; 8 | outline-offset: -2px; 9 | } 10 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss: -------------------------------------------------------------------------------- 1 | // Typography 2 | 3 | // [converter] $parent hack 4 | @mixin text-emphasis-variant($parent, $color) { 5 | #{$parent} { 6 | color: $color; 7 | } 8 | a#{$parent}:hover, 9 | a#{$parent}:focus { 10 | color: darken($color, 10%); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_text-overflow.scss: -------------------------------------------------------------------------------- 1 | // Text overflow 2 | // Requires inline-block or block for proper styling 3 | 4 | @mixin text-overflow() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /src/lib/bootstrap-sass/sache.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap-sass", 3 | "description": "bootstrap-sass is a Sass-powered version of Bootstrap, ready to drop right into your Sass powered applications", 4 | "tags": ["bootstrap", "grid", "typography", "buttons", "ui", "responsive-web-design"] 5 | } 6 | -------------------------------------------------------------------------------- /src/lib/bowser/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Template to report about browser detection issue 2 | 3 | `window.navigator.userAgent` of the browser is: ... 4 | And it's detected like a ... 5 | But real name of the browser is ... 6 | -------------------------------------------------------------------------------- /src/lib/bowser/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bowser", 3 | "description": "a browser detector", 4 | "keywords": [ 5 | "ender", 6 | "browser", 7 | "sniff", 8 | "detection" 9 | ], 10 | "version": "1.6.0", 11 | "homepage": "https://github.com/ded/bowser", 12 | "scripts": [ 13 | "src/bowser.js" 14 | ], 15 | "authors": [ 16 | "Dustin Diaz (http://dustindiaz.com)" 17 | ], 18 | "moduleType": [], 19 | "license": "MIT", 20 | "main": "src/bowser.js", 21 | "ignore": [ 22 | "node_modules", 23 | "test", 24 | "make", 25 | "**/.*", 26 | "Makefile" 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /src/lib/browserify-cryptojs/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "browserify-cryptojs", 3 | "version": "0.3.1", 4 | "keywords": [ 5 | "browserify", 6 | "cryptojs", 7 | "crypto", 8 | "cipher", 9 | "encrypt", 10 | "decrypt" 11 | ], 12 | "dependencies": {}, 13 | "homepage": "https://github.com/fahad19/crypto-js", 14 | "_release": "0.3.1", 15 | "_resolution": { 16 | "type": "version", 17 | "tag": "0.3.1", 18 | "commit": "2ee7ac19d48b5ccff96596d9c04eea0ef60a2707" 19 | }, 20 | "_source": "git://github.com/fahad19/crypto-js.git", 21 | "_target": "~0.3.1", 22 | "_originalSource": "browserify-cryptojs" 23 | } -------------------------------------------------------------------------------- /src/lib/browserify-cryptojs/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /src/lib/browserify-cryptojs/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "browserify-cryptojs", 3 | "version": "0.3.1", 4 | "keywords": [ 5 | "browserify", 6 | "cryptojs", 7 | "crypto", 8 | "cipher", 9 | "encrypt", 10 | "decrypt" 11 | ], 12 | "dependencies": { 13 | } 14 | } -------------------------------------------------------------------------------- /src/lib/browserify-cryptojs/components/evpkdf-min.js: -------------------------------------------------------------------------------- 1 | /* 2 | CryptoJS v3.1.2 3 | code.google.com/p/crypto-js 4 | (c) 2009-2013 by Jeff Mott. All rights reserved. 5 | code.google.com/p/crypto-js/wiki/License 6 | */ 7 | (function(){var b=CryptoJS,a=b.lib,f=a.Base,k=a.WordArray,a=b.algo,l=a.EvpKDF=f.extend({cfg:f.extend({keySize:4,hasher:a.MD5,iterations:1}),init:function(a){this.cfg=this.cfg.extend(a)},compute:function(a,b){for(var c=this.cfg,d=c.hasher.create(),g=k.create(),f=g.words,h=c.keySize,c=c.iterations;f.length>>2]|=c<<24-8*(b%4);a.sigBytes+=c},unpad:function(a){a.sigBytes-=a.words[a.sigBytes-1>>>2]&255}}; 8 | -------------------------------------------------------------------------------- /src/lib/browserify-cryptojs/components/pad-iso10126-min.js: -------------------------------------------------------------------------------- 1 | /* 2 | CryptoJS v3.1.2 3 | code.google.com/p/crypto-js 4 | (c) 2009-2013 by Jeff Mott. All rights reserved. 5 | code.google.com/p/crypto-js/wiki/License 6 | */ 7 | CryptoJS.pad.Iso10126={pad:function(a,c){var b=4*c,b=b-a.sigBytes%b;a.concat(CryptoJS.lib.WordArray.random(b-1)).concat(CryptoJS.lib.WordArray.create([b<<24],1))},unpad:function(a){a.sigBytes-=a.words[a.sigBytes-1>>>2]&255}}; 8 | -------------------------------------------------------------------------------- /src/lib/browserify-cryptojs/components/pad-iso97971-min.js: -------------------------------------------------------------------------------- 1 | /* 2 | CryptoJS v3.1.2 3 | code.google.com/p/crypto-js 4 | (c) 2009-2013 by Jeff Mott. All rights reserved. 5 | code.google.com/p/crypto-js/wiki/License 6 | */ 7 | CryptoJS.pad.Iso97971={pad:function(a,b){a.concat(CryptoJS.lib.WordArray.create([2147483648],1));CryptoJS.pad.ZeroPadding.pad(a,b)},unpad:function(a){CryptoJS.pad.ZeroPadding.unpad(a);a.sigBytes--}}; 8 | -------------------------------------------------------------------------------- /src/lib/browserify-cryptojs/components/pad-nopadding-min.js: -------------------------------------------------------------------------------- 1 | /* 2 | CryptoJS v3.1.2 3 | code.google.com/p/crypto-js 4 | (c) 2009-2013 by Jeff Mott. All rights reserved. 5 | code.google.com/p/crypto-js/wiki/License 6 | */ 7 | CryptoJS.pad.NoPadding={pad:function(){},unpad:function(){}}; 8 | -------------------------------------------------------------------------------- /src/lib/browserify-cryptojs/components/pad-nopadding.js: -------------------------------------------------------------------------------- 1 | /* 2 | CryptoJS v3.1.2 3 | code.google.com/p/crypto-js 4 | (c) 2009-2013 by Jeff Mott. All rights reserved. 5 | code.google.com/p/crypto-js/wiki/License 6 | */ 7 | /** 8 | * A noop padding strategy. 9 | */ 10 | CryptoJS.pad.NoPadding = { 11 | pad: function () { 12 | }, 13 | 14 | unpad: function () { 15 | } 16 | }; 17 | -------------------------------------------------------------------------------- /src/lib/browserify-cryptojs/components/pad-zeropadding-min.js: -------------------------------------------------------------------------------- 1 | /* 2 | CryptoJS v3.1.2 3 | code.google.com/p/crypto-js 4 | (c) 2009-2013 by Jeff Mott. All rights reserved. 5 | code.google.com/p/crypto-js/wiki/License 6 | */ 7 | CryptoJS.pad.ZeroPadding={pad:function(a,c){var b=4*c;a.clamp();a.sigBytes+=b-(a.sigBytes%b||b)},unpad:function(a){for(var c=a.words,b=a.sigBytes-1;!(c[b>>>2]>>>24-8*(b%4)&255);)b--;a.sigBytes=b+1}}; 8 | -------------------------------------------------------------------------------- /src/lib/browserify-cryptojs/components/sha224-min.js: -------------------------------------------------------------------------------- 1 | /* 2 | CryptoJS v3.1.2 3 | code.google.com/p/crypto-js 4 | (c) 2009-2013 by Jeff Mott. All rights reserved. 5 | code.google.com/p/crypto-js/wiki/License 6 | */ 7 | (function(){var b=CryptoJS,d=b.lib.WordArray,a=b.algo,c=a.SHA256,a=a.SHA224=c.extend({_doReset:function(){this._hash=new d.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var a=c._doFinalize.call(this);a.sigBytes-=4;return a}});b.SHA224=c._createHelper(a);b.HmacSHA224=c._createHmacHelper(a)})(); 8 | -------------------------------------------------------------------------------- /src/lib/browserify-cryptojs/components/x64-core-min.js: -------------------------------------------------------------------------------- 1 | /* 2 | CryptoJS v3.1.2 3 | code.google.com/p/crypto-js 4 | (c) 2009-2013 by Jeff Mott. All rights reserved. 5 | code.google.com/p/crypto-js/wiki/License 6 | */ 7 | (function(g){var a=CryptoJS,f=a.lib,e=f.Base,h=f.WordArray,a=a.x64={};a.Word=e.extend({init:function(b,c){this.high=b;this.low=c}});a.WordArray=e.extend({init:function(b,c){b=this.words=b||[];this.sigBytes=c!=g?c:8*b.length},toX32:function(){for(var b=this.words,c=b.length,a=[],d=0;d=1.7" 12 | }, 13 | "devDependencies": { 14 | "jasmine-jquery": "~2.0.2" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/lib/intl-tel-input/build/img/flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/intl-tel-input/build/img/flags.png -------------------------------------------------------------------------------- /src/lib/intl-tel-input/build/img/flags@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/intl-tel-input/build/img/flags@2x.png -------------------------------------------------------------------------------- /src/lib/intl-tel-input/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "intl-tel-input", 3 | "repo": "Bluefieldscom/intl-tel-input", 4 | "version": "6.0.8", 5 | "scripts": ["index.js"], 6 | "dependencies": { 7 | "jquery": ">=1.7" 8 | }, 9 | "license": "MIT" 10 | } -------------------------------------------------------------------------------- /src/lib/intl-tel-input/examples/css/countrySync.css: -------------------------------------------------------------------------------- 1 | input, label { 2 | display: block; 3 | } 4 | 5 | input, select, label { 6 | margin: 5px 0; 7 | } 8 | .form-item { 9 | margin-bottom: 20px; 10 | } 11 | -------------------------------------------------------------------------------- /src/lib/intl-tel-input/examples/css/isValidNumber.css: -------------------------------------------------------------------------------- 1 | #error-msg { 2 | color: red; 3 | } 4 | #valid-msg { 5 | color: #00C900; 6 | } 7 | input.error { 8 | border: 1px solid #FF7C7C; 9 | } -------------------------------------------------------------------------------- /src/lib/intl-tel-input/examples/js/defaultCountryIp.js: -------------------------------------------------------------------------------- 1 | $("#phone").intlTelInput({ 2 | defaultCountry: "auto", 3 | geoIpLookup: function(callback) { 4 | $.get('http://ipinfo.io', function() {}, "jsonp").always(function(resp) { 5 | var countryCode = (resp && resp.country) ? resp.country : ""; 6 | callback(countryCode); 7 | }); 8 | }, 9 | utilsScript: "../../lib/libphonenumber/build/utils.js" // just for formatting/placeholders etc 10 | }); -------------------------------------------------------------------------------- /src/lib/intl-tel-input/examples/js/hiddenInput.js: -------------------------------------------------------------------------------- 1 | $("#phone").intlTelInput({ 2 | utilsScript: "../../lib/libphonenumber/build/utils.js" // just for formatting/placeholders etc 3 | }); 4 | 5 | // update the hidden input on submit 6 | $("form").submit(function() { 7 | $("#hidden").val($("#phone").intlTelInput("getNumber")); 8 | }); -------------------------------------------------------------------------------- /src/lib/intl-tel-input/examples/js/modifyCountryData.js: -------------------------------------------------------------------------------- 1 | var countryData = $.fn.intlTelInput.getCountryData(); 2 | $.each(countryData, function(i, country) { 3 | country.name = country.name.replace(/.+\((.+)\)/,"$1"); 4 | }); 5 | $("#phone").intlTelInput({ 6 | utilsScript: "../../lib/libphonenumber/build/utils.js" // just for formatting/placeholders etc 7 | }); 8 | -------------------------------------------------------------------------------- /src/lib/intl-tel-input/examples/js/nationalMode.js: -------------------------------------------------------------------------------- 1 | var input = $("#phone"), 2 | output = $("#output"); 3 | 4 | input.intlTelInput({ 5 | nationalMode: true, 6 | utilsScript: "../../lib/libphonenumber/build/utils.js" // just for formatting/placeholders etc 7 | }); 8 | 9 | // listen to "keyup", but also "change" to update when the user selects a country 10 | input.on("keyup change", function() { 11 | var intlNumber = input.intlTelInput("getNumber"); 12 | if (intlNumber) { 13 | output.text("International: " + intlNumber); 14 | } else { 15 | output.text("Please enter a number below"); 16 | } 17 | }); -------------------------------------------------------------------------------- /src/lib/intl-tel-input/examples/js/onlyCountriesEurope.js: -------------------------------------------------------------------------------- 1 | $("#phone").intlTelInput({ 2 | onlyCountries: ["al", "ad", "at", "by", "be", "ba", "bg", "hr", "cz", "dk", 3 | "ee", "fo", "fi", "fr", "de", "gi", "gr", "va", "hu", "is", "ie", "it", "lv", 4 | "li", "lt", "lu", "mk", "mt", "md", "mc", "me", "nl", "no", "pl", "pt", "ro", 5 | "ru", "sm", "rs", "sk", "si", "es", "se", "ch", "ua", "gb"], 6 | utilsScript: "../../lib/libphonenumber/build/utils.js" // just for formatting/placeholders etc 7 | }); -------------------------------------------------------------------------------- /src/lib/intl-tel-input/examples/partials/countrySync.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |
5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
-------------------------------------------------------------------------------- /src/lib/intl-tel-input/examples/partials/hiddenInput.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 |
-------------------------------------------------------------------------------- /src/lib/intl-tel-input/examples/partials/isValidNumber.html: -------------------------------------------------------------------------------- 1 | 2 | ✓ Valid 3 | Invalid number -------------------------------------------------------------------------------- /src/lib/intl-tel-input/examples/partials/nationalMode.html: -------------------------------------------------------------------------------- 1 |

Please enter a number below

2 | -------------------------------------------------------------------------------- /src/lib/intl-tel-input/examples/partials/simpleInput.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/lib/intl-tel-input/grunt/bower.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | return { 3 | install: { 4 | // defaults are fine 5 | } 6 | }; 7 | }; -------------------------------------------------------------------------------- /src/lib/intl-tel-input/grunt/bump.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | return { 3 | options: { 4 | files: ['package.json', 'intl-tel-input.jquery.json', 'component.json'], 5 | updateConfigs: ['package'], 6 | commitFiles: ['-a'], 7 | pushTo: 'origin' 8 | } 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /src/lib/intl-tel-input/grunt/exec.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | return { 3 | evenizer: { 4 | command: "evenizer --resize -i src/img/flags/@2x/*.png" 5 | } 6 | }; 7 | }; 8 | -------------------------------------------------------------------------------- /src/lib/intl-tel-input/grunt/jasmine.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | return { 3 | src: [ 4 | 'src/js/data.js', 5 | 'build/js/intlTelInput.min.js', 6 | 'lib/libphonenumber/build/utils.js' 7 | ], 8 | options: { 9 | vendor: [ 10 | 'lib/jquery/jquery.js', 11 | 'lib/jasmine-jquery/jasmine-jquery.js' 12 | ], 13 | helpers: [ 14 | 'src/spec/helpers/**/*.js' 15 | ], 16 | specs: [ 17 | 'src/spec/tests/**/*.js' 18 | ], 19 | outfile: 'spec.html', 20 | keepRunner: true 21 | } 22 | }; 23 | }; -------------------------------------------------------------------------------- /src/lib/intl-tel-input/grunt/jshint.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | return { 3 | dev: "src/js/**/*.js", 4 | build: "tmp/wrapped.js", 5 | options: { 6 | // this is for data.js which sometimes has commas on the following line 7 | laxcomma: true 8 | } 9 | }; 10 | }; -------------------------------------------------------------------------------- /src/lib/intl-tel-input/grunt/retinafy.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | return { 3 | options: { 4 | sizes: { 5 | '50%': { 6 | suffix: '' 7 | }, 8 | '100%': { 9 | suffix: '@2x' 10 | } 11 | } 12 | }, 13 | files: { 14 | expand: true, 15 | cwd: 'src/img/flags/@2x/', 16 | src: ['*.png'], 17 | dest: 'src/img/flags/' 18 | } 19 | }; 20 | }; 21 | -------------------------------------------------------------------------------- /src/lib/intl-tel-input/grunt/sass.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | return { 3 | main: { 4 | options: { 5 | sourcemap: "none", 6 | style: "compressed" 7 | }, 8 | files: { 9 | 'build/css/intlTelInput.css': 'src/css/intlTelInput.scss' 10 | } 11 | }, 12 | demo: { 13 | options: { 14 | sourcemap: "none" 15 | }, 16 | files: { 17 | 'build/css/demo.css': 'src/css/demo.scss' 18 | } 19 | } 20 | }; 21 | }; -------------------------------------------------------------------------------- /src/lib/intl-tel-input/grunt/shell.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | return { 3 | publish: { 4 | command: 'npm publish' 5 | } 6 | }; 7 | }; -------------------------------------------------------------------------------- /src/lib/intl-tel-input/grunt/uglify.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | return { 3 | options: { 4 | banner: '/*\n' + 5 | 'International Telephone Input v<%= package.version %>\n' + 6 | '<%= package.repository.url %>\n' + 7 | '*/\n' 8 | }, 9 | dev: { 10 | options: { 11 | beautify: true, 12 | compress: false, 13 | mangle: false, 14 | preserveComments: true 15 | }, 16 | files: { 17 | 'build/js/intlTelInput.js': 'tmp/wrapped.js' 18 | } 19 | }, 20 | prod: { 21 | files: { 22 | 'tmp/wrapped.min.js': 'tmp/wrapped.js' 23 | } 24 | } 25 | }; 26 | }; -------------------------------------------------------------------------------- /src/lib/intl-tel-input/grunt/watch.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | return { 3 | js: { 4 | files: "src/js/**/*.js", 5 | tasks: "js" 6 | }, 7 | pluginCss: { 8 | files: ["src/css/flags.scss", "src/css/intlTelInput.scss"], 9 | tasks: "sass:main" 10 | }, 11 | demoCss: { 12 | files: "src/css/demo.scss", 13 | tasks: "sass:demo" 14 | } 15 | }; 16 | }; -------------------------------------------------------------------------------- /src/lib/intl-tel-input/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Exposing intl-tel-input as a component 3 | */ 4 | module.exports = require("./build/js/intlTelInput"); 5 | -------------------------------------------------------------------------------- /src/lib/intl-tel-input/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/intl-tel-input/screenshot.png -------------------------------------------------------------------------------- /src/lib/intl-tel-input/src/css/sprite@2x.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/intl-tel-input/src/css/sprite@2x.scss -------------------------------------------------------------------------------- /src/lib/intl-tel-input/src/js/wrapper.js.ejs: -------------------------------------------------------------------------------- 1 | // wrap in UMD - see https://github.com/umdjs/umd/blob/master/jqueryPlugin.js 2 | (function (factory) { 3 | if (typeof define === "function" && define.amd) { 4 | define(["jquery"], function($) { 5 | factory($, window, document); 6 | }); 7 | } else { 8 | factory(jQuery, window, document); 9 | } 10 | }(function ($, window, document, undefined) { 11 | "use strict"; 12 | 13 | <%- plugin %> 14 | <%- data %> 15 | 16 | })); -------------------------------------------------------------------------------- /src/lib/intl-tel-input/src/spec/tests/methods/getCountryData.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | describe("getCountryData: use static method getCountryData", function() { 4 | 5 | var countryData; 6 | 7 | beforeEach(function() { 8 | intlSetup(); 9 | countryData = $.fn.intlTelInput.getCountryData(); 10 | }); 11 | 12 | afterEach(function() { 13 | countryData = null; 14 | }); 15 | 16 | it("gets the country data object", function() { 17 | expect(countryData.length).toEqual(totalCountries); 18 | }); 19 | 20 | }); -------------------------------------------------------------------------------- /src/lib/jquery/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "version": "2.1.4", 4 | "main": "dist/jquery.js", 5 | "license": "MIT", 6 | "ignore": [ 7 | "**/.*", 8 | "build", 9 | "dist/cdn", 10 | "speed", 11 | "test", 12 | "*.md", 13 | "AUTHORS.txt", 14 | "Gruntfile.js", 15 | "package.json" 16 | ], 17 | "devDependencies": { 18 | "sizzle": "2.1.1-jquery.2.1.2", 19 | "requirejs": "2.1.10", 20 | "qunit": "1.14.0", 21 | "sinon": "1.8.1" 22 | }, 23 | "keywords": [ 24 | "jquery", 25 | "javascript", 26 | "library" 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /src/lib/jquery/src/ajax/parseJSON.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Support: Android 2.3 6 | // Workaround failure to string-cast null input 7 | jQuery.parseJSON = function( data ) { 8 | return JSON.parse( data + "" ); 9 | }; 10 | 11 | return jQuery.parseJSON; 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /src/lib/jquery/src/ajax/parseXML.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Cross-browser xml parsing 6 | jQuery.parseXML = function( data ) { 7 | var xml, tmp; 8 | if ( !data || typeof data !== "string" ) { 9 | return null; 10 | } 11 | 12 | // Support: IE9 13 | try { 14 | tmp = new DOMParser(); 15 | xml = tmp.parseFromString( data, "text/xml" ); 16 | } catch ( e ) { 17 | xml = undefined; 18 | } 19 | 20 | if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { 21 | jQuery.error( "Invalid XML: " + data ); 22 | } 23 | return xml; 24 | }; 25 | 26 | return jQuery.parseXML; 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /src/lib/jquery/src/ajax/var/nonce.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../core" 3 | ], function( jQuery ) { 4 | return jQuery.now(); 5 | }); 6 | -------------------------------------------------------------------------------- /src/lib/jquery/src/ajax/var/rquery.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/\?/); 3 | }); 4 | -------------------------------------------------------------------------------- /src/lib/jquery/src/attributes.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./attributes/attr", 4 | "./attributes/prop", 5 | "./attributes/classes", 6 | "./attributes/val" 7 | ], function( jQuery ) { 8 | 9 | // Return jQuery for attributes-only inclusion 10 | return jQuery; 11 | }); 12 | -------------------------------------------------------------------------------- /src/lib/jquery/src/core/var/rsingleTag.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // Match a standalone tag 3 | return (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); 4 | }); 5 | -------------------------------------------------------------------------------- /src/lib/jquery/src/css/addGetHookIf.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | 3 | function addGetHookIf( conditionFn, hookFn ) { 4 | // Define the hook, we'll check on the first run if it's really needed. 5 | return { 6 | get: function() { 7 | if ( conditionFn() ) { 8 | // Hook not needed (or it's not possible to use it due 9 | // to missing dependency), remove it. 10 | delete this.get; 11 | return; 12 | } 13 | 14 | // Hook needed; redefine it so that the support test is not executed again. 15 | return (this.get = hookFn).apply( this, arguments ); 16 | } 17 | }; 18 | } 19 | 20 | return addGetHookIf; 21 | 22 | }); 23 | -------------------------------------------------------------------------------- /src/lib/jquery/src/css/hiddenVisibleSelectors.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../selector" 4 | ], function( jQuery ) { 5 | 6 | jQuery.expr.filters.hidden = function( elem ) { 7 | // Support: Opera <= 12.12 8 | // Opera reports offsetWidths and offsetHeights less than zero on some elements 9 | return elem.offsetWidth <= 0 && elem.offsetHeight <= 0; 10 | }; 11 | jQuery.expr.filters.visible = function( elem ) { 12 | return !jQuery.expr.filters.hidden( elem ); 13 | }; 14 | 15 | }); 16 | -------------------------------------------------------------------------------- /src/lib/jquery/src/css/swap.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // A method for quickly swapping in/out CSS properties to get correct calculations. 6 | jQuery.swap = function( elem, options, callback, args ) { 7 | var ret, name, 8 | old = {}; 9 | 10 | // Remember the old values, and insert the new ones 11 | for ( name in options ) { 12 | old[ name ] = elem.style[ name ]; 13 | elem.style[ name ] = options[ name ]; 14 | } 15 | 16 | ret = callback.apply( elem, args || [] ); 17 | 18 | // Revert the old values 19 | for ( name in options ) { 20 | elem.style[ name ] = old[ name ]; 21 | } 22 | 23 | return ret; 24 | }; 25 | 26 | return jQuery.swap; 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /src/lib/jquery/src/css/var/cssExpand.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return [ "Top", "Right", "Bottom", "Left" ]; 3 | }); 4 | -------------------------------------------------------------------------------- /src/lib/jquery/src/css/var/getStyles.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return function( elem ) { 3 | // Support: IE<=11+, Firefox<=30+ (#15098, #14150) 4 | // IE throws on elements created in popups 5 | // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" 6 | if ( elem.ownerDocument.defaultView.opener ) { 7 | return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); 8 | } 9 | 10 | return window.getComputedStyle( elem, null ); 11 | }; 12 | }); 13 | -------------------------------------------------------------------------------- /src/lib/jquery/src/css/var/isHidden.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../core", 3 | "../../selector" 4 | // css is assumed 5 | ], function( jQuery ) { 6 | 7 | return function( elem, el ) { 8 | // isHidden might be called from jQuery#filter function; 9 | // in that case, element will be second argument 10 | elem = el || elem; 11 | return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); 12 | }; 13 | }); 14 | -------------------------------------------------------------------------------- /src/lib/jquery/src/css/var/rmargin.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/^margin/); 3 | }); 4 | -------------------------------------------------------------------------------- /src/lib/jquery/src/css/var/rnumnonpx.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../var/pnum" 3 | ], function( pnum ) { 4 | return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); 5 | }); 6 | -------------------------------------------------------------------------------- /src/lib/jquery/src/data/accepts.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | /** 6 | * Determines whether an object can have data 7 | */ 8 | jQuery.acceptData = function( owner ) { 9 | // Accepts only: 10 | // - Node 11 | // - Node.ELEMENT_NODE 12 | // - Node.DOCUMENT_NODE 13 | // - Object 14 | // - Any 15 | /* jshint -W018 */ 16 | return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); 17 | }; 18 | 19 | return jQuery.acceptData; 20 | }); 21 | -------------------------------------------------------------------------------- /src/lib/jquery/src/data/var/data_priv.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../Data" 3 | ], function( Data ) { 4 | return new Data(); 5 | }); 6 | -------------------------------------------------------------------------------- /src/lib/jquery/src/data/var/data_user.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../Data" 3 | ], function( Data ) { 4 | return new Data(); 5 | }); 6 | -------------------------------------------------------------------------------- /src/lib/jquery/src/deprecated.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./traversing" 4 | ], function( jQuery ) { 5 | 6 | // The number of elements contained in the matched element set 7 | jQuery.fn.size = function() { 8 | return this.length; 9 | }; 10 | 11 | jQuery.fn.andSelf = jQuery.fn.addBack; 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /src/lib/jquery/src/effects/animatedSelector.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../selector", 4 | "../effects" 5 | ], function( jQuery ) { 6 | 7 | jQuery.expr.filters.animated = function( elem ) { 8 | return jQuery.grep(jQuery.timers, function( fn ) { 9 | return elem === fn.elem; 10 | }).length; 11 | }; 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /src/lib/jquery/src/event/ajax.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../event" 4 | ], function( jQuery ) { 5 | 6 | // Attach a bunch of functions for handling common AJAX events 7 | jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { 8 | jQuery.fn[ type ] = function( fn ) { 9 | return this.on( type, fn ); 10 | }; 11 | }); 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /src/lib/jquery/src/event/support.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../var/support" 3 | ], function( support ) { 4 | 5 | support.focusinBubbles = "onfocusin" in window; 6 | 7 | return support; 8 | 9 | }); 10 | -------------------------------------------------------------------------------- /src/lib/jquery/src/manipulation/_evalUrl.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../ajax" 3 | ], function( jQuery ) { 4 | 5 | jQuery._evalUrl = function( url ) { 6 | return jQuery.ajax({ 7 | url: url, 8 | type: "GET", 9 | dataType: "script", 10 | async: false, 11 | global: false, 12 | "throws": true 13 | }); 14 | }; 15 | 16 | return jQuery._evalUrl; 17 | 18 | }); 19 | -------------------------------------------------------------------------------- /src/lib/jquery/src/manipulation/var/rcheckableType.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/^(?:checkbox|radio)$/i); 3 | }); 4 | -------------------------------------------------------------------------------- /src/lib/jquery/src/outro.js: -------------------------------------------------------------------------------- 1 | })); 2 | -------------------------------------------------------------------------------- /src/lib/jquery/src/queue/delay.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../queue", 4 | "../effects" // Delay is optional because of this dependency 5 | ], function( jQuery ) { 6 | 7 | // Based off of the plugin by Clint Helfers, with permission. 8 | // http://blindsignals.com/index.php/2009/07/jquery-delay/ 9 | jQuery.fn.delay = function( time, type ) { 10 | time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; 11 | type = type || "fx"; 12 | 13 | return this.queue( type, function( next, hooks ) { 14 | var timeout = setTimeout( next, time ); 15 | hooks.stop = function() { 16 | clearTimeout( timeout ); 17 | }; 18 | }); 19 | }; 20 | 21 | return jQuery.fn.delay; 22 | }); 23 | -------------------------------------------------------------------------------- /src/lib/jquery/src/selector-sizzle.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "sizzle" 4 | ], function( jQuery, Sizzle ) { 5 | 6 | jQuery.find = Sizzle; 7 | jQuery.expr = Sizzle.selectors; 8 | jQuery.expr[":"] = jQuery.expr.pseudos; 9 | jQuery.unique = Sizzle.uniqueSort; 10 | jQuery.text = Sizzle.getText; 11 | jQuery.isXMLDoc = Sizzle.isXML; 12 | jQuery.contains = Sizzle.contains; 13 | 14 | }); 15 | -------------------------------------------------------------------------------- /src/lib/jquery/src/selector.js: -------------------------------------------------------------------------------- 1 | define([ "./selector-sizzle" ]); 2 | -------------------------------------------------------------------------------- /src/lib/jquery/src/traversing/var/rneedsContext.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../core", 3 | "../../selector" 4 | ], function( jQuery ) { 5 | return jQuery.expr.match.needsContext; 6 | }); 7 | -------------------------------------------------------------------------------- /src/lib/jquery/src/var/arr.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return []; 3 | }); 4 | -------------------------------------------------------------------------------- /src/lib/jquery/src/var/class2type.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // [[Class]] -> type pairs 3 | return {}; 4 | }); 5 | -------------------------------------------------------------------------------- /src/lib/jquery/src/var/concat.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.concat; 5 | }); 6 | -------------------------------------------------------------------------------- /src/lib/jquery/src/var/hasOwn.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./class2type" 3 | ], function( class2type ) { 4 | return class2type.hasOwnProperty; 5 | }); 6 | -------------------------------------------------------------------------------- /src/lib/jquery/src/var/indexOf.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.indexOf; 5 | }); 6 | -------------------------------------------------------------------------------- /src/lib/jquery/src/var/pnum.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; 3 | }); 4 | -------------------------------------------------------------------------------- /src/lib/jquery/src/var/push.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.push; 5 | }); 6 | -------------------------------------------------------------------------------- /src/lib/jquery/src/var/rnotwhite.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/\S+/g); 3 | }); 4 | -------------------------------------------------------------------------------- /src/lib/jquery/src/var/slice.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.slice; 5 | }); 6 | -------------------------------------------------------------------------------- /src/lib/jquery/src/var/strundefined.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return typeof undefined; 3 | }); 4 | -------------------------------------------------------------------------------- /src/lib/jquery/src/var/support.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // All support tests are defined in their respective modules. 3 | return {}; 4 | }); 5 | -------------------------------------------------------------------------------- /src/lib/jquery/src/var/toString.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./class2type" 3 | ], function( class2type ) { 4 | return class2type.toString; 5 | }); 6 | -------------------------------------------------------------------------------- /src/lib/libphonenumber/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "libphonenumber", 3 | "main": "dist/libphonenumber.js", 4 | "version": "0.9.2", 5 | "homepage": "https://github.com/nathanhammond/libphonenumber", 6 | "authors": [ 7 | "Nathan Hammond " 8 | ], 9 | "description": "Google's libphonenumber as an easily included JavaScript library.", 10 | "license": "Apache 2", 11 | "_release": "0.9.2", 12 | "_resolution": { 13 | "type": "version", 14 | "tag": "0.9.2", 15 | "commit": "f2791173731f84fcd4aa06fd0a9e2d1fe38c0f3d" 16 | }, 17 | "_source": "git://github.com/nathanhammond/libphonenumber.git", 18 | "_target": "~0.9.0", 19 | "_originalSource": "libphonenumber" 20 | } -------------------------------------------------------------------------------- /src/lib/libphonenumber/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | vendor -------------------------------------------------------------------------------- /src/lib/libphonenumber/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "libphonenumber", 3 | "main": "dist/libphonenumber.js", 4 | "version": "0.9.2", 5 | "homepage": "https://github.com/nathanhammond/libphonenumber", 6 | "authors": [ 7 | "Nathan Hammond " 8 | ], 9 | "description": "Google's libphonenumber as an easily included JavaScript library.", 10 | "license": "Apache 2" 11 | } 12 | -------------------------------------------------------------------------------- /src/lib/libphonenumber/dist/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/libphonenumber/dist/.gitkeep -------------------------------------------------------------------------------- /src/lib/moment/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "moment", 3 | "main": "moment.js", 4 | "ignore": [ 5 | "**/.*", 6 | "benchmarks", 7 | "bower_components", 8 | "meteor", 9 | "node_modules", 10 | "scripts", 11 | "tasks", 12 | "test", 13 | "component.json", 14 | "composer.json", 15 | "CONTRIBUTING.md", 16 | "ender.js", 17 | "Gruntfile.js", 18 | "Moment.js.nuspec", 19 | "package.js", 20 | "package.json" 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/create/date-from-array.js: -------------------------------------------------------------------------------- 1 | export function createDate (y, m, d, h, M, s, ms) { 2 | //can't just apply() to create a date: 3 | //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply 4 | var date = new Date(y, m, d, h, M, s, ms); 5 | 6 | //the date constructor doesn't accept years < 1970 7 | if (y < 1970) { 8 | date.setFullYear(y); 9 | } 10 | return date; 11 | } 12 | 13 | export function createUTCDate (y) { 14 | var date = new Date(Date.UTC.apply(null, arguments)); 15 | if (y < 1970) { 16 | date.setUTCFullYear(y); 17 | } 18 | return date; 19 | } 20 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/create/from-object.js: -------------------------------------------------------------------------------- 1 | import { normalizeObjectUnits } from '../units/aliases'; 2 | import { configFromArray } from './from-array'; 3 | 4 | export function configFromObject(config) { 5 | if (config._d) { 6 | return; 7 | } 8 | 9 | var i = normalizeObjectUnits(config._i); 10 | config._a = [i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond]; 11 | 12 | configFromArray(config); 13 | } 14 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/create/local.js: -------------------------------------------------------------------------------- 1 | import { createLocalOrUTC } from './from-anything'; 2 | 3 | export function createLocal (input, format, locale, strict) { 4 | return createLocalOrUTC(input, format, locale, strict, false); 5 | } 6 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/create/parsing-flags.js: -------------------------------------------------------------------------------- 1 | function defaultParsingFlags() { 2 | // We need to deep clone this object. 3 | return { 4 | empty : false, 5 | unusedTokens : [], 6 | unusedInput : [], 7 | overflow : -2, 8 | charsLeftOver : 0, 9 | nullInput : false, 10 | invalidMonth : null, 11 | invalidFormat : false, 12 | userInvalidated : false, 13 | iso : false 14 | }; 15 | } 16 | 17 | export default function getParsingFlags(m) { 18 | if (m._pf == null) { 19 | m._pf = defaultParsingFlags(); 20 | } 21 | return m._pf; 22 | } 23 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/create/utc.js: -------------------------------------------------------------------------------- 1 | import { createLocalOrUTC } from './from-anything'; 2 | 3 | export function createUTC (input, format, locale, strict) { 4 | return createLocalOrUTC(input, format, locale, strict, true).utc(); 5 | } 6 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/duration/abs.js: -------------------------------------------------------------------------------- 1 | var mathAbs = Math.abs; 2 | 3 | export function abs () { 4 | var data = this._data; 5 | 6 | this._milliseconds = mathAbs(this._milliseconds); 7 | this._days = mathAbs(this._days); 8 | this._months = mathAbs(this._months); 9 | 10 | data.milliseconds = mathAbs(data.milliseconds); 11 | data.seconds = mathAbs(data.seconds); 12 | data.minutes = mathAbs(data.minutes); 13 | data.hours = mathAbs(data.hours); 14 | data.months = mathAbs(data.months); 15 | data.years = mathAbs(data.years); 16 | 17 | return this; 18 | } 19 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/duration/duration.js: -------------------------------------------------------------------------------- 1 | // Side effect imports 2 | import './prototype'; 3 | 4 | import { createDuration } from './create'; 5 | import { isDuration } from './constructor'; 6 | import { getSetRelativeTimeThreshold } from './humanize'; 7 | 8 | export { 9 | createDuration, 10 | isDuration, 11 | getSetRelativeTimeThreshold 12 | }; 13 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/locale/calendar.js: -------------------------------------------------------------------------------- 1 | export var defaultCalendar = { 2 | sameDay : '[Today at] LT', 3 | nextDay : '[Tomorrow at] LT', 4 | nextWeek : 'dddd [at] LT', 5 | lastDay : '[Yesterday at] LT', 6 | lastWeek : '[Last] dddd [at] LT', 7 | sameElse : 'L' 8 | }; 9 | 10 | export function calendar (key, mom, now) { 11 | var output = this._calendar[key]; 12 | return typeof output === 'function' ? output.call(mom, now) : output; 13 | } 14 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/locale/constructor.js: -------------------------------------------------------------------------------- 1 | export function Locale() { 2 | } 3 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/locale/en.js: -------------------------------------------------------------------------------- 1 | import './prototype'; 2 | import { getSetGlobalLocale } from './locales'; 3 | import toInt from '../utils/to-int'; 4 | 5 | getSetGlobalLocale('en', { 6 | ordinalParse: /\d{1,2}(th|st|nd|rd)/, 7 | ordinal : function (number) { 8 | var b = number % 10, 9 | output = (toInt(number % 100 / 10) === 1) ? 'th' : 10 | (b === 1) ? 'st' : 11 | (b === 2) ? 'nd' : 12 | (b === 3) ? 'rd' : 'th'; 13 | return number + output; 14 | } 15 | }); 16 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/locale/invalid.js: -------------------------------------------------------------------------------- 1 | export var defaultInvalidDate = 'Invalid date'; 2 | 3 | export function invalidDate () { 4 | return this._invalidDate; 5 | } 6 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/locale/ordinal.js: -------------------------------------------------------------------------------- 1 | export var defaultOrdinal = '%d'; 2 | export var defaultOrdinalParse = /\d{1,2}/; 3 | 4 | export function ordinal (number) { 5 | return this._ordinal.replace('%d', number); 6 | } 7 | 8 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/locale/pre-post-format.js: -------------------------------------------------------------------------------- 1 | export function preParsePostFormat (string) { 2 | return string; 3 | } 4 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/locale/set.js: -------------------------------------------------------------------------------- 1 | export function set (config) { 2 | var prop, i; 3 | for (i in config) { 4 | prop = config[i]; 5 | if (typeof prop === 'function') { 6 | this[i] = prop; 7 | } else { 8 | this['_' + i] = prop; 9 | } 10 | } 11 | // Lenient ordinal parsing accepts just a number in addition to 12 | // number + (possibly) stuff coming from _ordinalParseLenient. 13 | this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source); 14 | } 15 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/moment/clone.js: -------------------------------------------------------------------------------- 1 | import { Moment } from './constructor'; 2 | 3 | export function clone () { 4 | return new Moment(this); 5 | } 6 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/moment/from.js: -------------------------------------------------------------------------------- 1 | import { createDuration } from '../duration/create'; 2 | import { createLocal } from '../create/local'; 3 | 4 | export function from (time, withoutSuffix) { 5 | if (!this.isValid()) { 6 | return this.localeData().invalidDate(); 7 | } 8 | return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); 9 | } 10 | 11 | export function fromNow (withoutSuffix) { 12 | return this.from(createLocal(), withoutSuffix); 13 | } 14 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/moment/to.js: -------------------------------------------------------------------------------- 1 | import { createDuration } from '../duration/create'; 2 | import { createLocal } from '../create/local'; 3 | 4 | export function to (time, withoutSuffix) { 5 | if (!this.isValid()) { 6 | return this.localeData().invalidDate(); 7 | } 8 | return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); 9 | } 10 | 11 | export function toNow (withoutSuffix) { 12 | return this.to(createLocal(), withoutSuffix); 13 | } 14 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/moment/valid.js: -------------------------------------------------------------------------------- 1 | import { isValid as _isValid } from '../create/valid'; 2 | import extend from '../utils/extend'; 3 | import getParsingFlags from '../create/parsing-flags'; 4 | 5 | export function isValid () { 6 | return _isValid(this); 7 | } 8 | 9 | export function parsingFlags () { 10 | return extend({}, getParsingFlags(this)); 11 | } 12 | 13 | export function invalidAt () { 14 | return getParsingFlags(this).overflow; 15 | } 16 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/units/constants.js: -------------------------------------------------------------------------------- 1 | export var YEAR = 0; 2 | export var MONTH = 1; 3 | export var DATE = 2; 4 | export var HOUR = 3; 5 | export var MINUTE = 4; 6 | export var SECOND = 5; 7 | export var MILLISECOND = 6; 8 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/units/timestamp.js: -------------------------------------------------------------------------------- 1 | import { addFormatToken } from '../format/format'; 2 | import { addRegexToken, matchTimestamp, matchSigned } from '../parse/regex'; 3 | import { addParseToken } from '../parse/token'; 4 | import toInt from '../utils/to-int'; 5 | 6 | // FORMATTING 7 | 8 | addFormatToken('X', 0, 0, 'unix'); 9 | addFormatToken('x', 0, 0, 'valueOf'); 10 | 11 | // PARSING 12 | 13 | addRegexToken('x', matchSigned); 14 | addRegexToken('X', matchTimestamp); 15 | addParseToken('X', function (input, array, config) { 16 | config._d = new Date(parseFloat(input, 10) * 1000); 17 | }); 18 | addParseToken('x', function (input, array, config) { 19 | config._d = new Date(toInt(input)); 20 | }); 21 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/units/timezone.js: -------------------------------------------------------------------------------- 1 | import { addFormatToken } from '../format/format'; 2 | 3 | // FORMATTING 4 | 5 | addFormatToken('z', 0, 0, 'zoneAbbr'); 6 | addFormatToken('zz', 0, 0, 'zoneName'); 7 | 8 | // MOMENTS 9 | 10 | export function getZoneAbbr () { 11 | return this._isUTC ? 'UTC' : ''; 12 | } 13 | 14 | export function getZoneName () { 15 | return this._isUTC ? 'Coordinated Universal Time' : ''; 16 | } 17 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/units/units.js: -------------------------------------------------------------------------------- 1 | // Side effect imports 2 | import './day-of-month'; 3 | import './day-of-week'; 4 | import './day-of-year'; 5 | import './hour'; 6 | import './millisecond'; 7 | import './minute'; 8 | import './month'; 9 | import './offset'; 10 | import './quarter'; 11 | import './second'; 12 | import './timestamp'; 13 | import './timezone'; 14 | import './week-year'; 15 | import './week'; 16 | import './year'; 17 | 18 | import { normalizeUnits } from './aliases'; 19 | 20 | export { normalizeUnits }; 21 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/utils/abs-ceil.js: -------------------------------------------------------------------------------- 1 | export default function absCeil (number) { 2 | if (number < 0) { 3 | return Math.floor(number); 4 | } else { 5 | return Math.ceil(number); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/utils/abs-floor.js: -------------------------------------------------------------------------------- 1 | export default function absFloor (number) { 2 | if (number < 0) { 3 | return Math.ceil(number); 4 | } else { 5 | return Math.floor(number); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/utils/compare-arrays.js: -------------------------------------------------------------------------------- 1 | import toInt from './to-int'; 2 | 3 | // compare two arrays, return the number of differences 4 | export default function compareArrays(array1, array2, dontConvert) { 5 | var len = Math.min(array1.length, array2.length), 6 | lengthDiff = Math.abs(array1.length - array2.length), 7 | diffs = 0, 8 | i; 9 | for (i = 0; i < len; i++) { 10 | if ((dontConvert && array1[i] !== array2[i]) || 11 | (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { 12 | diffs++; 13 | } 14 | } 15 | return diffs + lengthDiff; 16 | } 17 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/utils/defaults.js: -------------------------------------------------------------------------------- 1 | // Pick the first defined of two or three arguments. 2 | export default function defaults(a, b, c) { 3 | if (a != null) { 4 | return a; 5 | } 6 | if (b != null) { 7 | return b; 8 | } 9 | return c; 10 | } 11 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/utils/extend.js: -------------------------------------------------------------------------------- 1 | import hasOwnProp from './has-own-prop'; 2 | 3 | export default function extend(a, b) { 4 | for (var i in b) { 5 | if (hasOwnProp(b, i)) { 6 | a[i] = b[i]; 7 | } 8 | } 9 | 10 | if (hasOwnProp(b, 'toString')) { 11 | a.toString = b.toString; 12 | } 13 | 14 | if (hasOwnProp(b, 'valueOf')) { 15 | a.valueOf = b.valueOf; 16 | } 17 | 18 | return a; 19 | } 20 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/utils/has-own-prop.js: -------------------------------------------------------------------------------- 1 | export default function hasOwnProp(a, b) { 2 | return Object.prototype.hasOwnProperty.call(a, b); 3 | } 4 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/utils/hooks.js: -------------------------------------------------------------------------------- 1 | export { hooks, setHookCallback }; 2 | 3 | var hookCallback; 4 | 5 | function hooks () { 6 | return hookCallback.apply(null, arguments); 7 | } 8 | 9 | // This is done to register the method called with moment() 10 | // without creating circular dependencies. 11 | function setHookCallback (callback) { 12 | hookCallback = callback; 13 | } 14 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/utils/is-array.js: -------------------------------------------------------------------------------- 1 | export default function isArray(input) { 2 | return Object.prototype.toString.call(input) === '[object Array]'; 3 | } 4 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/utils/is-date.js: -------------------------------------------------------------------------------- 1 | export default function isDate(input) { 2 | return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; 3 | } 4 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/utils/map.js: -------------------------------------------------------------------------------- 1 | export default function map(arr, fn) { 2 | var res = [], i; 3 | for (i = 0; i < arr.length; ++i) { 4 | res.push(fn(arr[i], i)); 5 | } 6 | return res; 7 | } 8 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/utils/to-int.js: -------------------------------------------------------------------------------- 1 | import absFloor from './abs-floor'; 2 | 3 | export default function toInt(argumentForCoercion) { 4 | var coercedNumber = +argumentForCoercion, 5 | value = 0; 6 | 7 | if (coercedNumber !== 0 && isFinite(coercedNumber)) { 8 | value = absFloor(coercedNumber); 9 | } 10 | 11 | return value; 12 | } 13 | -------------------------------------------------------------------------------- /src/lib/moment/src/lib/utils/zero-fill.js: -------------------------------------------------------------------------------- 1 | export default function zeroFill(number, targetLength, forceSign) { 2 | var absNumber = '' + Math.abs(number), 3 | zerosToFill = targetLength - absNumber.length, 4 | sign = number >= 0; 5 | return (sign ? (forceSign ? '+' : '') : '-') + 6 | Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; 7 | } 8 | -------------------------------------------------------------------------------- /src/lib/moment/templates/amd-named.js: -------------------------------------------------------------------------------- 1 | /*global define:false*/ 2 | 3 | import moment from "./moment"; 4 | 5 | define("moment", [], function () { 6 | return moment; 7 | }); 8 | -------------------------------------------------------------------------------- /src/lib/moment/templates/amd.js: -------------------------------------------------------------------------------- 1 | /*global define:false*/ 2 | 3 | import moment from "./moment"; 4 | 5 | define([], function () { 6 | return moment; 7 | }); 8 | -------------------------------------------------------------------------------- /src/lib/moment/templates/globals.js: -------------------------------------------------------------------------------- 1 | /*global window:false*/ 2 | 3 | import moment from "./moment"; 4 | 5 | window.moment = moment; 6 | -------------------------------------------------------------------------------- /src/lib/moment/templates/locale-header.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('../moment')) : 3 | typeof define === 'function' && define.amd ? define(['moment'], factory) : 4 | factory(global.moment) 5 | }(this, function (moment) { 'use strict'; 6 | -------------------------------------------------------------------------------- /src/lib/moment/templates/test-header.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('../../moment')) : 3 | typeof define === 'function' && define.amd ? define(['../../moment'], factory) : 4 | factory(global.moment) 5 | }(this, function (moment) { 'use strict'; 6 | -------------------------------------------------------------------------------- /src/lib/ng-file-upload/161a70d3.favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/ng-file-upload/161a70d3.favicon.ico -------------------------------------------------------------------------------- /src/lib/ng-file-upload/FileAPI.flash.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/ng-file-upload/FileAPI.flash.swf -------------------------------------------------------------------------------- /src/lib/ng-file-upload/README.md: -------------------------------------------------------------------------------- 1 | # angular-file-upload-bower 2 | 3 | bower distribution of [angular-file-upload](https://github.com/danialfarid/angular-file-upload). 4 | All issues and pull request must be sumbitted to [angular-file-upload](https://github.com/danialfarid/angular-file-upload) 5 | 6 | -------------------------------------------------------------------------------- /src/lib/ng-file-upload/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ng-file-upload", 3 | "main": "ng-file-upload.js", 4 | "homepage": "https://github.com/danialfarid/ng-file-upload", 5 | "dependencies": { 6 | "angular": ">1.2.0" 7 | }, 8 | "authors": [ 9 | "danialf " 10 | ], 11 | "description": "Lightweight Angular JS directive to upload files. Support drag&drop, paste image, progress and abort", 12 | "ignore": [], 13 | "license": "MIT" 14 | } 15 | -------------------------------------------------------------------------------- /src/lib/ng-file-upload/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/ng-file-upload/favicon.ico -------------------------------------------------------------------------------- /src/lib/ng-file-upload/robots.txt: -------------------------------------------------------------------------------- 1 | # robotstxt.org/ 2 | 3 | User-agent: * 4 | -------------------------------------------------------------------------------- /src/lib/ng-infinite-scroller-origin/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ngInfiniteScroll", 3 | "version": "1.2.0", 4 | "main": "build/ng-infinite-scroll.js", 5 | "ignore": [ 6 | "**/.*", 7 | "_*", 8 | "node_modules", 9 | "compile", 10 | "test", 11 | "Gruntfile.coffee", 12 | ".*" 13 | ], 14 | "dependencies": { 15 | "angular": ">=1.2.0" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/lib/ngImgCrop/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /src/lib/ngImgCrop/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "globalstrict": true, 3 | "curly": true, 4 | "eqeqeq": true, 5 | "immed": true, 6 | "noempty": true, 7 | "noarg": true, 8 | "quotmark": "single", 9 | "undef": true, 10 | "eqnull": true, 11 | "freeze": true, 12 | "indent": 2, 13 | "newcap": true, 14 | "latedef": false, 15 | "trailing": true, 16 | "globals": { 17 | "angular": true, 18 | "require": true, 19 | "console": true, 20 | "process": true, 21 | "crop": true, 22 | "CropHost": true, 23 | "PubSub": true 24 | } 25 | } -------------------------------------------------------------------------------- /src/lib/ngImgCrop/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ng-img-crop", 3 | "version": "0.3.2", 4 | "authors": [ 5 | "Alex Kaul " 6 | ], 7 | "description": "Image crop directive for AngularJS", 8 | "main": [ 9 | "compile/minified/ng-img-crop.js", 10 | "compile/minified/ng-img-crop.css" 11 | ], 12 | "keywords": [ 13 | "angular", 14 | "image", 15 | "crop", 16 | "cropper" 17 | ], 18 | "license": "MIT", 19 | "homepage": "https://github.com/alexk111/ngImgCrop", 20 | "ignore": [ 21 | "node_modules", 22 | "bower_components", 23 | "test" 24 | ], 25 | "devDependencies": { 26 | "angular": "~1.2.19" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/lib/ngImgCrop/compile/minified/ng-img-crop.css: -------------------------------------------------------------------------------- 1 | img-crop{width:100%;height:100%;display:block;position:relative;overflow:hidden}img-crop canvas{display:block;position:absolute;top:50%;left:50%;outline:0;-webkit-tap-highlight-color:transparent} -------------------------------------------------------------------------------- /src/lib/ngImgCrop/compile/unminified/ng-img-crop.css: -------------------------------------------------------------------------------- 1 | /* line 1, ../../source/scss/ng-img-crop.scss */ 2 | img-crop { 3 | width: 100%; 4 | height: 100%; 5 | display: block; 6 | position: relative; 7 | overflow: hidden; 8 | } 9 | /* line 7, ../../source/scss/ng-img-crop.scss */ 10 | img-crop canvas { 11 | display: block; 12 | position: absolute; 13 | top: 50%; 14 | left: 50%; 15 | outline: none; 16 | -webkit-tap-highlight-color: rgba(255, 255, 255, 0); 17 | /* mobile webkit */ 18 | } 19 | -------------------------------------------------------------------------------- /src/lib/ngImgCrop/screenshots/circle_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/ngImgCrop/screenshots/circle_1.jpg -------------------------------------------------------------------------------- /src/lib/ngImgCrop/screenshots/square_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/ngImgCrop/screenshots/square_1.jpg -------------------------------------------------------------------------------- /src/lib/ngImgCrop/source/js/classes/crop-pubsub.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | crop.factory('cropPubSub', [function() { 4 | return function() { 5 | var events = {}; 6 | // Subscribe 7 | this.on = function(names, handler) { 8 | names.split(' ').forEach(function(name) { 9 | if (!events[name]) { 10 | events[name] = []; 11 | } 12 | events[name].push(handler); 13 | }); 14 | return this; 15 | }; 16 | // Publish 17 | this.trigger = function(name, args) { 18 | angular.forEach(events[name], function(handler) { 19 | handler.call(null, args); 20 | }); 21 | return this; 22 | }; 23 | }; 24 | }]); -------------------------------------------------------------------------------- /src/lib/ngImgCrop/source/js/init.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var crop = angular.module('ngImgCrop', []); -------------------------------------------------------------------------------- /src/lib/ngImgCrop/source/scss/ng-img-crop.scss: -------------------------------------------------------------------------------- 1 | img-crop { 2 | width:100%; 3 | height:100%; 4 | display:block; 5 | position:relative; 6 | overflow:hidden; 7 | canvas { 8 | display:block; 9 | position:absolute; 10 | top:50%; 11 | left:50%; 12 | 13 | // Disable Outline 14 | outline: none; 15 | -webkit-tap-highlight-color: rgba(255, 255, 255, 0); /* mobile webkit */ 16 | } 17 | } -------------------------------------------------------------------------------- /src/lib/pouchdb/bin/build-all-plugins.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | DEREQUIRE=./node_modules/.bin/derequire 4 | BROWSERIFY=./node_modules/.bin/browserify 5 | UGLIFY=./node_modules/.bin/uglifyjs 6 | 7 | for plugin in memory localstorage idb-alt; do 8 | $BROWSERIFY ./extras/${plugin} \ 9 | -x pouchdb \ 10 | -p bundle-collapser/plugin \ 11 | | ./bin/es3ify.js \ 12 | | $DEREQUIRE > ./dist/pouchdb.${plugin}.js 13 | $UGLIFY dist/pouchdb.${plugin}.js -mc > dist/pouchdb.${plugin}.min.js 14 | done -------------------------------------------------------------------------------- /src/lib/pouchdb/bin/es3ify.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 'use strict'; 3 | var es3ify = require('es3ify'); 4 | return process.stdin.pipe(es3ify()).pipe(process.stdout); 5 | -------------------------------------------------------------------------------- /src/lib/pouchdb/bin/get-version.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 'use strict'; 3 | var version = require('../package.json').version; 4 | var fs = require('fs'); 5 | var file = 'module.exports = "' + version + '";\n'; 6 | fs.writeFileSync('./lib/version-browser.js', file, { 7 | encoding: 'utf8' 8 | }); 9 | -------------------------------------------------------------------------------- /src/lib/pouchdb/bin/publish-site.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Build the website 4 | BUILD=1 npm run build-site 5 | 6 | # Push the site live, requires credentials, open a bug 7 | # if you need to be able to push the site 8 | scp -r docs/_site/* pouchdb@pouchdb.com:/home/pouchdb/www/pouchdb.com/ 9 | -------------------------------------------------------------------------------- /src/lib/pouchdb/bin/run-csg-on-travis.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | set -x 4 | 5 | CWD=$(pwd) 6 | 7 | # Install CSG 8 | curl -o csg.deb http://packages.couchbase.com/releases/couchbase-sync-gateway/1.0.3/couchbase-sync-gateway-community_1.0.3_x86_64.deb 9 | 10 | sudo dpkg -i csg.deb 11 | 12 | # Run CSG 13 | /opt/couchbase-sync-gateway/bin/sync_gateway ./tests/misc/sync-gateway-config.json >sg.log 2>&1 < /dev/null & 14 | 15 | # Lets get rid of this at some point :) 16 | sleep 2 17 | 18 | cd $CWD 19 | -------------------------------------------------------------------------------- /src/lib/pouchdb/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pouchdb", 3 | "version": "3.5.1-prerelease", 4 | "description": "PouchDB is a pocket-sized database.", 5 | "repo": "daleharvey/pouchdb", 6 | "keywords": [ 7 | "db", 8 | "couchdb", 9 | "pouchdb" 10 | ], 11 | "dependencies": {}, 12 | "development": {}, 13 | "license": "Apache", 14 | "main": "dist/pouchdb.js", 15 | "scripts": [ 16 | "dist/pouchdb.js", 17 | "dist/pouchdb.min.js" 18 | ], 19 | "ignore": [ 20 | "**/.*", 21 | "node_modules", 22 | "bower_components", 23 | "tests", 24 | "vendor", 25 | "npm-debug.log", 26 | "phantomjsdriver.log" 27 | ] 28 | } -------------------------------------------------------------------------------- /src/lib/pouchdb/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pouchdb", 3 | "version": "3.5.1-prerelease", 4 | "description": "PouchDB is a pocket-sized database.", 5 | "repo": "daleharvey/pouchdb", 6 | "keywords": [ 7 | "db", 8 | "couchdb", 9 | "pouchdb" 10 | ], 11 | "dependencies": {}, 12 | "development": {}, 13 | "license": "Apache", 14 | "main": "dist/pouchdb.js", 15 | "scripts": [ 16 | "dist/pouchdb.js" 17 | ] 18 | } -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/_config.yml: -------------------------------------------------------------------------------- 1 | name: PouchDB 2 | description: PouchDB, the JavaScript Database that Syncs! 3 | url: http://pouchdb.com 4 | highlighter: pygments 5 | markdown: redcarpet 6 | baseurl: 7 | version: 3.5.0 8 | paginate: 5 9 | paginate_path: "blog/page:num" 10 | collections: 11 | guides: 12 | output: true 13 | -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/_includes/alert/end.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/_includes/alert/start.html: -------------------------------------------------------------------------------- 1 | {% if include.variant == "success" %} 2 |
3 | {% elsif include.variant == "warning" %} 4 |
5 | {% elsif include.variant == "danger" %} 6 |
7 | {% else %} 8 |
9 | {% endif %} 10 | 11 |
12 | -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/_includes/anchor.html: -------------------------------------------------------------------------------- 1 | {% if include.class %} 2 | {% assign class = include.class %} 3 | {% else %} 4 | {% assign class = 'h2' %} 5 | {% endif %} 6 |
7 | {{ include.title }} 8 | -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/_includes/api/events.html: -------------------------------------------------------------------------------- 1 | {% include anchor.html title="Events" hash="events" %} 2 | 3 | PouchDB is an [event emitter][event emitter] and will emit a `'created'` event when a database is created. A `'destroyed'` event is emitted when a database is destroyed. 4 | 5 | {% highlight js %} 6 | PouchDB.on('created', function (dbName) { 7 | // called whenver a db is created. 8 | }); 9 | PouchDB.on('destroyed', function (dbName) { 10 | // called whenver a db is destroyed. 11 | }); 12 | {% endhighlight %} 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/_includes/code/end.html: -------------------------------------------------------------------------------- 1 |
-------------------------------------------------------------------------------- /src/lib/pouchdb/docs/_includes/code/start.html: -------------------------------------------------------------------------------- 1 | {% if include.type == 'promise' %} 2 | {% assign class = 'active' %} 3 | {% else %} 4 | {% assign class = '' %} 5 | {% endif %} 6 | {{ include.type | capitalize }}: 7 | 8 |
14 | -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/_includes/guides_nav.html: -------------------------------------------------------------------------------- 1 | {% assign guides = (site.guides | sort: 'index') %} 2 | {% for guide in guides %} 3 | {% assign title = guide.title %} 4 | {% if guide.nav %} 5 | {% assign title = guide.nav %} 6 | {% endif %} 7 | {% include nav_item.html path=guide.url text=title %} 8 | {% endfor %} 9 | -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/_includes/iframe.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/_includes/img.html: -------------------------------------------------------------------------------- 1 | {% if include.href %} 2 | {% assign href = include.href %} 3 | {% else %} 4 | {% capture href %}{{ site.baseurl }}/static/img/{{ include.src }}{% endcapture %} 5 | {% endif %} 6 | 7 | 8 | {{ include.alt }} 9 | 10 | -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/_includes/nav.html: -------------------------------------------------------------------------------- 1 | {% include nav_item.html path="/learn.html" text="About PouchDB" %} 2 | {% include nav_item.html path="/users.html" text="Who's using PouchDB?" %} 3 | {% include nav_item.html path="/getting-started.html" text="Get Started Guide" %} 4 | {% include nav_item.html path="/api.html" text="API" %} 5 | {% include nav_item.html path="/adapters.html" text="Adapters" %} 6 | {% include nav_item.html path="/external.html" text="Plugins" %} 7 | {% include nav_item.html path="/faq.html" text="FAQ" %} 8 | {% include nav_item.html path="/errors.html" text="Common Errors" %} 9 | -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/_includes/nav_item.html: -------------------------------------------------------------------------------- 1 |
  • 2 | {{ include.text }} 3 |
  • 4 | -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/_includes/social.html: -------------------------------------------------------------------------------- 1 | {% for author in site.data.authors %} 2 | {% if author.name == page.author %} 3 | {% capture author_twitter %}@{{ author.twitter }}{% endcapture %} 4 | {% endif %} 5 | {% endfor %} 6 | View on GitHub 7 | Tweet this article -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/_layouts/2ColLeft.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 |
    6 |
    7 |
    8 | 15 | 16 |
    17 | {{content}} 18 |
    19 | 20 |
    21 | 22 |
    23 | 24 |
    25 | -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/_layouts/post.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 |
    5 |
    6 |
    7 | {% include post_details.html %} 8 | 9 | {{ content }} 10 |
    11 |
    12 |
    13 | -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/_plugins/markdown.rb: -------------------------------------------------------------------------------- 1 | module Jekyll 2 | class MarkdownBlock < Liquid::Block 3 | def initialize(tag_name, text, tokens) 4 | super 5 | end 6 | require "kramdown" 7 | def render(context) 8 | content = super 9 | "#{Kramdown::Document.new(content).to_html}" 10 | end 11 | end 12 | end 13 | Liquid::Template.register_tag('markdown', Jekyll::MarkdownBlock) -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/_posts/2014-08-16-pouchdb-3.0.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | 4 | title: PouchDB 3.0.1 5 | 6 | author: Nolan Lawson 7 | 8 | --- 9 | 10 | [PouchDB 3.0.1](https://github.com/pouchdb/pouchdb/releases/tag/3.0.1) is a patch release to fix a migration bug in PouchDB 3.0.0 ([#2456](https://github.com/pouchdb/pouchdb/issues/2456)). Please upgrade your existing users directly from 2.2.3 and do not use 3.0.0. 11 | 12 | This release also contains a small performance boost for `bulkDocs()` ([#2553](https://github.com/pouchdb/pouchdb/issues/2553)). -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/assets/pouchdb-getting-started-todo.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/assets/pouchdb-getting-started-todo.zip -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/favicon.ico -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/apple-indexeddb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/apple-indexeddb.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/browser-logos/android_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/browser-logos/android_32x32.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/browser-logos/blackberry_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/browser-logos/blackberry_32x32.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/browser-logos/chrome-android_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/browser-logos/chrome-android_32x32.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/browser-logos/chrome_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/browser-logos/chrome_32x32.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/browser-logos/firefox_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/browser-logos/firefox_32x32.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/browser-logos/internet-explorer-tile_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/browser-logos/internet-explorer-tile_32x32.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/browser-logos/internet-explorer_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/browser-logos/internet-explorer_32x32.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/browser-logos/opera_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/browser-logos/opera_32x32.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/browser-logos/safari-ios_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/browser-logos/safari-ios_32x32.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/browser-logos/safari_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/browser-logos/safari_32x32.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/cloudwall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/cloudwall.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/cors_in_couchdb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/cors_in_couchdb.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/cozy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/cozy.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/debug_mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/debug_mode.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/dev_tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/dev_tools.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/ehealth_africa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/ehealth_africa.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/fauxton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/fauxton.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/kittens.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/kittens.jpg -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/kittens_small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/kittens_small.jpg -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/mbta_alerts.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/mbta_alerts.jpeg -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/offline_replication.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/offline_replication.gif -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/orson_welles_clapping.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/orson_welles_clapping.gif -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/pepperidge_farm_remembers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/pepperidge_farm_remembers.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/pouchdb_inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/pouchdb_inspector.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/safari_inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/safari_inspector.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/safari_popup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/safari_popup.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/screenshots/todo-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/screenshots/todo-1.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/squarespace_blog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/squarespace_blog.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/img/travis-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/pouchdb/docs/static/img/travis-screenshot.png -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/less/bootstrap/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twitter/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | .transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | display: none; 20 | &.in { 21 | display: block; 22 | } 23 | } 24 | .collapsing { 25 | position: relative; 26 | height: 0; 27 | overflow: hidden; 28 | .transition(height .35s ease); 29 | } 30 | -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/less/bootstrap/wells.less: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: @well-bg; 12 | border: 1px solid @well-border; 13 | border-radius: @border-radius-base; 14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-lg { 23 | padding: 24px; 24 | border-radius: @border-radius-large; 25 | } 26 | .well-sm { 27 | padding: 9px; 28 | border-radius: @border-radius-small; 29 | } 30 | -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/less/pouchdb/anchors.less: -------------------------------------------------------------------------------- 1 | .anchor { 2 | &.h1, 3 | &.h2, 4 | &.h3, 5 | &.h4, 6 | &.h5, 7 | &.h6 { 8 | display: inline-block; 9 | text-decoration: none; 10 | } 11 | 12 | &::before { 13 | content: '# '; 14 | opacity: .25; 15 | } 16 | &:focus { outline: none; } 17 | } -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/less/pouchdb/block.less: -------------------------------------------------------------------------------- 1 | .block { 2 | @media (max-width: @screen-md-min) { 3 | > h1, > h2, > h3, > h4, > h5, > h6, 4 | > .h1, > .h2, > .h3, > .h4, > .h5, > .h6, 5 | > p { 6 | text-align: center; 7 | } 8 | > p { 9 | margin: 0 auto; 10 | max-width: 60%; 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/less/pouchdb/code.less: -------------------------------------------------------------------------------- 1 | @import "@{bootstrap}/code.less"; 2 | 3 | pre { 4 | padding-left: @pre-padding; 5 | padding-right: @pre-padding; 6 | } 7 | -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/less/pouchdb/header.less: -------------------------------------------------------------------------------- 1 | header { 2 | overflow-x: hidden; 3 | position: relative; 4 | padding: 25px 0; 5 | border-bottom: 2px solid; 6 | border-color: @header-border-color; 7 | background-color: @header-color; 8 | } -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/less/pouchdb/mixins.less: -------------------------------------------------------------------------------- 1 | @import "@{bootstrap}/mixins.less"; 2 | 3 | // Intrinsic Ratio Helper 4 | // https://github.com/nickcolley/intrinsic-ratio-less 5 | 6 | 7 | // Intrinsic ratio 8 | .ir(@ratio: 16/9, @width: 100%, @margin: auto) { 9 | position: relative; 10 | margin: @margin; 11 | width: unit(@width, ~'%'); 12 | height: 0; 13 | padding-bottom: unit(@width / @ratio, ~'%'); 14 | > iframe { 15 | position: absolute; 16 | width: 100%; 17 | height: 100%; 18 | border: 0; 19 | } 20 | } 21 | 22 | .iframe-responsive { .ir(); } 23 | -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/less/pouchdb/post.less: -------------------------------------------------------------------------------- 1 | .post { 2 | margin-top: 10px; 3 | margin-bottom: 40px; 4 | &:last-of-type { margin-bottom: 10px; } 5 | } -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/less/pouchdb/ribbon.less: -------------------------------------------------------------------------------- 1 | .ribbon { 2 | z-index: 1; 3 | position: absolute; 4 | top: 0; right: 0; 5 | padding: .1em 3em; 6 | border: 1px solid rgba(0,0,0,.1); 7 | background-color: @gray-lighter; 8 | color: @text-color; 9 | font-weight: bold; 10 | -webkit-transform: translateX(75%) rotate(45deg) translateX(-30%); 11 | transform: translateX(75%) rotate(45deg) translateX(-30%); 12 | -webkit-transform-origin: top left; 13 | transform-origin: top left; 14 | } -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/less/pouchdb/scaffolding.less: -------------------------------------------------------------------------------- 1 | @import "@{bootstrap}/scaffolding.less"; 2 | 3 | blockquote { 4 | font-size: 1.1em; 5 | border-left-color: #ddf3e7; 6 | cite { font-size: 1.2em; } 7 | } 8 | 9 | // Temporary fix for Jekyll's P tags all over the place. :/ 10 | p:empty { display: none; } 11 | 12 | .intro, 13 | .infoblocks, 14 | .icons, 15 | .footer { 16 | padding: 20px 0 30px; 17 | } 18 | .page-head { padding: 10px 0 20px; } 19 | 20 | article { padding: 20px 0 75px; } 21 | 22 | .page-head, 23 | .intro, 24 | .blog, 25 | .footer { 26 | background-color: @gray-lighter; 27 | } 28 | 29 | .intro .highlight { margin-top: 2em; } 30 | .icons { border-top: 20px solid @gray-lighter; } 31 | -------------------------------------------------------------------------------- /src/lib/pouchdb/docs/static/less/pouchdb/utilities.less: -------------------------------------------------------------------------------- 1 | @import "@{bootstrap}/utilities.less"; 2 | 3 | .affix { 4 | padding: 1em 0; 5 | position: static; 6 | } 7 | 8 | @media (min-width: @affix-min-width) and (min-height: @affix-min-height) { 9 | 10 | .affix { position: fixed; } 11 | 12 | .affix, 13 | .affix-top { 14 | top: 0; 15 | } 16 | 17 | .affix-top, 18 | .affix-bottom { 19 | position: absolute; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/lib/pouchdb/extras/ajax.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // allow external plugins to require('pouchdb/extras/ajax') 4 | module.exports = require('../lib/deps/ajax'); -------------------------------------------------------------------------------- /src/lib/pouchdb/extras/checkpointer.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // allow external plugins to require('pouchdb/extras/checkpointer') 4 | module.exports = require('../lib/replicate/checkpointer'); -------------------------------------------------------------------------------- /src/lib/pouchdb/extras/idb-alt.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = require('../lib/plugins/idb-alt'); -------------------------------------------------------------------------------- /src/lib/pouchdb/extras/localstorage.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = require('../lib/plugins/localstorage'); -------------------------------------------------------------------------------- /src/lib/pouchdb/extras/memory.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = require('../lib/plugins/memory'); -------------------------------------------------------------------------------- /src/lib/pouchdb/extras/promise.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // allow external plugins to require('pouchdb/extras/promise') 4 | module.exports = require('../lib/deps/promise'); -------------------------------------------------------------------------------- /src/lib/pouchdb/lib/deps/buffer-browser.js: -------------------------------------------------------------------------------- 1 | // hey guess what, we don't need this in the browser 2 | module.exports = {}; -------------------------------------------------------------------------------- /src/lib/pouchdb/lib/deps/buffer.js: -------------------------------------------------------------------------------- 1 | //this soley exists so we can exclude it in browserify 2 | module.exports = Buffer; -------------------------------------------------------------------------------- /src/lib/pouchdb/lib/deps/explain404.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // designed to give info to browser users, who are disturbed 4 | // when they see 404s in the console 5 | function explain404(str) { 6 | if (process.browser && 'console' in global && 'info' in console) { 7 | console.info('The above 404 is totally normal. ' + str); 8 | } 9 | } 10 | 11 | module.exports = explain404; -------------------------------------------------------------------------------- /src/lib/pouchdb/lib/deps/migrate-browser.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | // in the browser, LevelAlt doesn't need the 3 | // pre-2.2.0 LevelDB-specific migrations 4 | exports.toSublevel = function (name, db, callback) { 5 | process.nextTick(function () { 6 | callback(); 7 | }); 8 | }; 9 | 10 | exports.localAndMetaStores = function (db, stores, callback) { 11 | process.nextTick(function () { 12 | callback(); 13 | }); 14 | }; -------------------------------------------------------------------------------- /src/lib/pouchdb/lib/deps/promise.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | if (typeof Promise === 'function') { 4 | module.exports = Promise; 5 | } else { 6 | module.exports = require('bluebird'); 7 | } -------------------------------------------------------------------------------- /src/lib/pouchdb/lib/deps/upsert.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var upsert = require('pouchdb-upsert').upsert; 4 | 5 | module.exports = function (db, doc, diffFun, cb) { 6 | return upsert.call(db, doc, diffFun, cb); 7 | }; 8 | -------------------------------------------------------------------------------- /src/lib/pouchdb/lib/evalFilter.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = evalFilter; 4 | function evalFilter(input) { 5 | /*jshint evil: true */ 6 | return eval([ 7 | '(function () { return ', 8 | input, 9 | ' })()' 10 | ].join('')); 11 | } -------------------------------------------------------------------------------- /src/lib/pouchdb/lib/evalView.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = evalView; 4 | function evalView(input) { 5 | /*jshint evil: true */ 6 | return eval([ 7 | '(function () {', 8 | ' return function (doc) {', 9 | ' var emitted = false;', 10 | ' var emit = function (a, b) {', 11 | ' emitted = true;', 12 | ' };', 13 | ' var view = ' + input + ';', 14 | ' view(doc);', 15 | ' if (emitted) {', 16 | ' return true;', 17 | ' }', 18 | ' }', 19 | '})()' 20 | ].join('\n')); 21 | } -------------------------------------------------------------------------------- /src/lib/pouchdb/lib/plugins/base.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | /* global PouchDB */ 3 | 4 | function pluginBase(adapterConfig, downAdapter) { 5 | var adapterName = adapterConfig.name; 6 | var adapter = require('./levelalt')(adapterConfig, downAdapter); 7 | // use global PouchDB if it's there (e.g. window.PouchDB) 8 | var PDB = (typeof PouchDB !== 'undefined') ? PouchDB : require('pouchdb'); 9 | if (!PDB) { 10 | console.error(adapterConfig.name + ' adapter plugin error: ' + 11 | 'Cannot find global "PouchDB" object! ' + 12 | 'Did you remember to include pouchdb.js?'); 13 | } else { 14 | PDB.adapter(adapterName, adapter, true); 15 | } 16 | } 17 | 18 | module.exports = pluginBase; -------------------------------------------------------------------------------- /src/lib/pouchdb/lib/plugins/idb-alt/config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | name: 'idb-alt', 5 | valid: function () { 6 | var PouchDB = global.PouchDB || require('pouchdb'); 7 | return 'idb' in PouchDB.adapters && 8 | PouchDB.adapters.idb.valid(); 9 | }, 10 | use_prefix: true 11 | }; 12 | -------------------------------------------------------------------------------- /src/lib/pouchdb/lib/plugins/idb-alt/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var pluginBase = require('../base'); 4 | var adapterConfig = require('./config'); 5 | var downAdapter = require('level-js'); 6 | pluginBase(adapterConfig, downAdapter); -------------------------------------------------------------------------------- /src/lib/pouchdb/lib/plugins/localstorage/config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | name: 'localstorage', 5 | valid: function () { 6 | return typeof localStorage !== 'undefined'; 7 | }, 8 | use_prefix: true 9 | }; 10 | -------------------------------------------------------------------------------- /src/lib/pouchdb/lib/plugins/localstorage/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var pluginBase = require('../base'); 4 | var adapterConfig = require('./config'); 5 | var downAdapter = require('localstorage-down'); 6 | pluginBase(adapterConfig, downAdapter); -------------------------------------------------------------------------------- /src/lib/pouchdb/lib/plugins/memory/config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | name: 'memory', 5 | valid: function () { 6 | return true; 7 | }, 8 | use_prefix: false 9 | }; 10 | -------------------------------------------------------------------------------- /src/lib/pouchdb/lib/plugins/memory/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var pluginBase = require('../base'); 4 | var adapterConfig = require('./config'); 5 | var downAdapter = require('memdown'); 6 | pluginBase(adapterConfig, downAdapter); -------------------------------------------------------------------------------- /src/lib/pouchdb/lib/version-browser.js: -------------------------------------------------------------------------------- 1 | module.exports = "3.5.1-prerelease"; 2 | -------------------------------------------------------------------------------- /src/lib/pouchdb/lib/version.js: -------------------------------------------------------------------------------- 1 | module.exports = require('../package.json').version; -------------------------------------------------------------------------------- /src/lib/pouchdb/scripts/bundle-browserify-test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo '' > test.html 4 | echo "" >> test.html 5 | echo "" >> test.html -------------------------------------------------------------------------------- /src/lib/pouchdb/scripts/jenkins-deploy.sh: -------------------------------------------------------------------------------- 1 | ROOT=$(pwd) 2 | 3 | # Build the docs 4 | cd $ROOT/docs 5 | jekyll 6 | 7 | # Publish docs 8 | cp -R $ROOT/docs/_site/* /home/daleharvey/www/pouchdb.com 9 | 10 | # Build 11 | cd $ROOT 12 | npm install 13 | 14 | grunt 15 | grunt spatial 16 | grunt gql 17 | 18 | cp $ROOT/dist/* /home/daleharvey/www/download.pouchdb.com -------------------------------------------------------------------------------- /src/lib/powtcha/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "powtcha", 3 | "description": "", 4 | "main": "index.js", 5 | "authors": [ 6 | "Ruben de Vries " 7 | ], 8 | "license": "MIT", 9 | "homepage": "https://github.com/btccom/powtcha-js", 10 | "ignore": [ 11 | "**/.*", 12 | "node_modules", 13 | "bower_components", 14 | "test", 15 | "tests" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /src/lib/powtcha/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | Buffer: Buffer, 3 | PoWtcha: require('./lib/powtcha') 4 | }; 5 | -------------------------------------------------------------------------------- /src/lib/powtcha/test.js: -------------------------------------------------------------------------------- 1 | exports = module.exports = { 2 | PoWtcha: require('./'), 3 | 4 | // test config which we can modify from external source 5 | config: require('./test/testconfig'), 6 | 7 | // for reading config values from querystring 8 | qs: require('querystring'), 9 | 10 | miner_test: { 11 | util_test: require('./test/miner.util.test'), 12 | sha256_test: require('./test/miner.sha256.test'), 13 | miner_test: require('./test/miner.test') 14 | }, 15 | PoWtcha_test: require('./test/powtcha.test') 16 | }; 17 | -------------------------------------------------------------------------------- /src/lib/q/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "q", 3 | "homepage": "https://github.com/kriskowal/q", 4 | "version": "1.2.0", 5 | "_release": "1.2.0", 6 | "_resolution": { 7 | "type": "version", 8 | "tag": "v1.2.0", 9 | "commit": "94013963bca61d9e965b2d7ac93759c4dd96e225" 10 | }, 11 | "_source": "git://github.com/kriskowal/q.git", 12 | "_target": "1.2.0", 13 | "_originalSource": "q" 14 | } -------------------------------------------------------------------------------- /src/lib/q/.coverignore: -------------------------------------------------------------------------------- 1 | spec/ 2 | -------------------------------------------------------------------------------- /src/lib/q/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | CHANGES.html 4 | README.html 5 | .tmp 6 | q.min.js 7 | 8 | .coverage_data/ 9 | .coverage_debug/ 10 | cover_html/ 11 | 12 | # IntelliJ IDEA project files 13 | .idea 14 | *.iml 15 | -------------------------------------------------------------------------------- /src/lib/q/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "browser": true, 3 | "node": true, 4 | 5 | "curly": true, 6 | "eqeqeq": true, 7 | "es3": true, 8 | "newcap": false, 9 | "noarg": true, 10 | "nonew": true, 11 | "quotmark": "double", 12 | "strict": true, 13 | "trailing": true, 14 | "undef": true, 15 | "unused": true, 16 | 17 | "globals": { 18 | "self": false, 19 | "bootstrap": false, 20 | "cajaVM": false, 21 | "define": false, 22 | "ReturnValue": false, 23 | "ses": false, 24 | "setImmediate": false, 25 | "Q": true 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/lib/q/.mailmap: -------------------------------------------------------------------------------- 1 | Domenic Denicola 2 | Kris Kowal 3 | -------------------------------------------------------------------------------- /src/lib/q/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" 4 | script: 5 | npm run lint && npm test 6 | -------------------------------------------------------------------------------- /src/lib/q/Gruntfile.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | module.exports = function (grunt) { 4 | grunt.loadNpmTasks("grunt-contrib-uglify"); 5 | 6 | grunt.initConfig({ 7 | uglify: { 8 | "q.min.js": ["q.js"], 9 | options: { 10 | report: "gzip" 11 | } 12 | } 13 | }); 14 | 15 | grunt.registerTask("default", ["uglify"]); 16 | }; 17 | -------------------------------------------------------------------------------- /src/lib/q/design/q0.js: -------------------------------------------------------------------------------- 1 | 2 | var defer = function () { 3 | var pending = [], value; 4 | return { 5 | resolve: function (_value) { 6 | value = _value; 7 | for (var i = 0, ii = pending.length; i < ii; i++) { 8 | var callback = pending[i]; 9 | callback(value); 10 | } 11 | pending = undefined; 12 | }, 13 | then: function (callback) { 14 | if (pending) { 15 | pending.push(callback); 16 | } else { 17 | callback(value); 18 | } 19 | } 20 | } 21 | }; 22 | 23 | -------------------------------------------------------------------------------- /src/lib/q/examples/all.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var Q = require("../q"); 4 | 5 | function eventually(value) { 6 | return Q.delay(value, 1000); 7 | } 8 | 9 | Q.all([1, 2, 3].map(eventually)) 10 | .done(function (result) { 11 | console.log(result); 12 | }); 13 | 14 | Q.all([ 15 | eventually(10), 16 | eventually(20) 17 | ]) 18 | .spread(function (x, y) { 19 | console.log(x, y); 20 | }) 21 | .done(); 22 | -------------------------------------------------------------------------------- /src/lib/q/examples/async-generators/1-return.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var Q = require("../../q"); 4 | 5 | var generator = Q.async(function* () { 6 | var ten = yield 10; 7 | console.log(ten, 10); 8 | var twenty = yield ten + 10; 9 | console.log(twenty, 20); 10 | var thirty = yield twenty + 10; 11 | console.log(thirty, 30); 12 | return thirty + 10; 13 | }); 14 | 15 | generator().then(function (forty) { 16 | console.log(forty, 40); 17 | }, function (reason) { 18 | console.log("reason", reason); 19 | }); 20 | -------------------------------------------------------------------------------- /src/lib/q/examples/async-generators/3-spawn.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var Q = require("../../q"); 4 | 5 | function foo() { 6 | return Q.delay(5, 1000); 7 | } 8 | 9 | function bar() { 10 | return Q.delay(10, 1000); 11 | } 12 | 13 | Q.spawn(function* () { 14 | var x = yield foo(); 15 | console.log(x); 16 | 17 | var y = yield bar(); 18 | console.log(y); 19 | 20 | console.log("result", x + y); 21 | }); 22 | -------------------------------------------------------------------------------- /src/lib/q/q.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blocktrail/blocktrail-webwallet/ecb0fb7fb454bb6d766fd701bb890c75764503fe/src/lib/q/q.png -------------------------------------------------------------------------------- /src/lib/q/spec/aplus-adapter.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var Q = require("../q"); 4 | 5 | exports.fulfilled = Q.resolve; 6 | exports.rejected = Q.reject; 7 | exports.pending = function () { 8 | var deferred = Q.defer(); 9 | 10 | return { 11 | promise: deferred.promise, 12 | fulfill: deferred.resolve, 13 | reject: deferred.reject 14 | }; 15 | }; 16 | -------------------------------------------------------------------------------- /src/lib/qrcode/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | 2 | ### v1.0.2 (2013-11-14) 3 | 4 | 5 | #### Features 6 | 7 | * throw invalid character warning ([997f95df](https://github.com/janantala/qrcode.js/commit/997f95df0d8128cce33ddb425882b6279a786632)) 8 | * **Gruntfile:** include conventional-changelog ([14245abd](https://github.com/janantala/qrcode.js/commit/14245abd2bad59590684d4eeec84953c7f7ef20b)) 9 | 10 | -------------------------------------------------------------------------------- /src/lib/raven-js/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "raven-js", 3 | "version": "3.17.0", 4 | "dependencies": {}, 5 | "main": "dist/raven.js", 6 | "ignore": [ 7 | "**/.*", 8 | "AUTHORS", 9 | "CHANGELOG.md", 10 | "CONTRIBUTING.md", 11 | "Gruntfile.js", 12 | "Makefile", 13 | "README.md", 14 | "docs", 15 | "package.json", 16 | "example", 17 | "test", 18 | "dist/sri.json" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /src/lib/raven-js/plugins/require.js: -------------------------------------------------------------------------------- 1 | /*global define*/ 2 | /** 3 | * require.js plugin 4 | * 5 | * Automatically wrap define/require callbacks. (Experimental) 6 | */ 7 | 'use strict'; 8 | 9 | function requirePlugin(Raven) { 10 | if (typeof define === 'function' && define.amd) { 11 | window.define = Raven.wrap({deep: false}, define); 12 | window.require = Raven.wrap({deep: false}, require); 13 | } 14 | } 15 | 16 | module.exports = requirePlugin; 17 | -------------------------------------------------------------------------------- /src/lib/raven-js/src/configError.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | function RavenConfigError(message) { 4 | this.name = 'RavenConfigError'; 5 | this.message = message; 6 | } 7 | RavenConfigError.prototype = new Error(); 8 | RavenConfigError.prototype.constructor = RavenConfigError; 9 | 10 | module.exports = RavenConfigError; 11 | -------------------------------------------------------------------------------- /src/lib/raven-js/template/_copyright.js: -------------------------------------------------------------------------------- 1 | /*! Raven.js <%= pkg.release %> (<%= gitinfo.local.branch.current.shortSHA %>) | github.com/getsentry/raven-js */ 2 | 3 | /* 4 | * Includes TraceKit 5 | * https://github.com/getsentry/TraceKit 6 | * 7 | * Copyright <%= grunt.template.today('yyyy') %> Matt Robenolt and other contributors 8 | * Released under the BSD license 9 | * https://github.com/getsentry/raven-js/blob/master/LICENSE 10 | * 11 | */ 12 | -------------------------------------------------------------------------------- /src/lib/semver/Makefile: -------------------------------------------------------------------------------- 1 | files = semver.browser.js \ 2 | semver.min.js \ 3 | semver.browser.js.gz \ 4 | semver.min.js.gz 5 | 6 | all: $(files) 7 | 8 | clean: 9 | rm -f $(files) 10 | 11 | semver.browser.js: head.js.txt semver.js foot.js.txt 12 | ( cat head.js.txt; \ 13 | cat semver.js | \ 14 | egrep -v '^ *\/\* nomin \*\/' | \ 15 | perl -pi -e 's/debug\([^\)]+\)//g'; \ 16 | cat foot.js.txt ) > semver.browser.js 17 | 18 | semver.min.js: semver.browser.js 19 | uglifyjs -m semver.min.js 20 | 21 | %.gz: % 22 | gzip --stdout -9 <$< >$@ 23 | 24 | .PHONY: all clean 25 | -------------------------------------------------------------------------------- /src/lib/semver/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "semver", 3 | "version": "4.3.4", 4 | "homepage": "https://github.com/hippich/bower-semver", 5 | "authors": [ 6 | "Pavel Karoukin " 7 | ], 8 | "description": "The semver parser - mirroring one for node (the one npm uses)", 9 | "main": "semver.browser.js", 10 | "moduleType": [ 11 | "amd", 12 | "globals" 13 | ], 14 | "keywords": [ 15 | "semver" 16 | ], 17 | "license": "ISC", 18 | "ignore": [ 19 | "**/.*", 20 | "node_modules", 21 | "bower_components", 22 | "test", 23 | "tests" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /src/lib/semver/foot.js.txt: -------------------------------------------------------------------------------- 1 | 2 | })( 3 | typeof exports === 'object' ? exports : 4 | typeof define === 'function' && define.amd ? {} : 5 | semver = {} 6 | ); 7 | -------------------------------------------------------------------------------- /src/lib/semver/head.js.txt: -------------------------------------------------------------------------------- 1 | ;(function(exports) { 2 | 3 | -------------------------------------------------------------------------------- /src/lib/semver/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "semver", 3 | "version": "4.3.4", 4 | "description": "The semantic version parser used by npm.", 5 | "main": "semver.js", 6 | "browser": "semver.browser.js", 7 | "min": "semver.min.js", 8 | "scripts": { 9 | "test": "tap test/*.js", 10 | "prepublish": "make" 11 | }, 12 | "devDependencies": { 13 | "tap": "0.x >=0.0.4", 14 | "uglify-js": "~2.3.6" 15 | }, 16 | "license": "ISC", 17 | "repository": "git://github.com/npm/node-semver.git", 18 | "bin": { 19 | "semver": "./bin/semver" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/sass/app.scss: -------------------------------------------------------------------------------- 1 | @import "helpers/variables"; 2 | 3 | @import "../lib/bootstrap-sass/assets/stylesheets/_bootstrap"; 4 | 5 | // Add our fonts 6 | @import "fonts/lato"; 7 | @import "fonts/neo-sans-pro"; 8 | @import "fonts/open-sans"; 9 | @import "fonts/roboto"; 10 | 11 | // Add fontello icons 12 | @import "../fontello/css/_fontello"; 13 | 14 | // add other libs 15 | @import "../lib/ngImgCrop/source/scss/ng-img-crop.scss"; 16 | @import "../lib/angular-toggle-switch/angular-toggle-switch.scss"; 17 | @import "../lib/angular-toggle-switch/angular-toggle-switch-bootstrap.scss"; 18 | 19 | // import our theme 20 | // TODO Split it 21 | @import "theme/index"; 22 | -------------------------------------------------------------------------------- /src/sass/fonts/roboto.scss: -------------------------------------------------------------------------------- 1 | @import "../helpers/variables"; 2 | 3 | @font-face { 4 | font-family: 'Roboto'; 5 | font-style: normal; 6 | font-weight: 400; 7 | src: local('Roboto'), local('Roboto-Regular'), url(../font/Roboto-400.woff2) format('woff2'); 8 | } 9 | @font-face { 10 | font-family: 'Roboto'; 11 | font-style: normal; 12 | font-weight: 700; 13 | src: local('Roboto Bold'), local('Roboto-Bold'), url(../font/Roboto-700.woff2) format('woff2'); 14 | } 15 | -------------------------------------------------------------------------------- /src/sass/theme/borders.scss: -------------------------------------------------------------------------------- 1 | @import "../helpers/variables"; 2 | 3 | .border-bottom { 4 | border-bottom: 1px solid $border-color; 5 | } -------------------------------------------------------------------------------- /src/sass/theme/directives/app-header.scss: -------------------------------------------------------------------------------- 1 | .app-header { 2 | padding: 20px 40px; 3 | border-bottom: 1px solid $muted; 4 | height: $appHeaderHeight; 5 | 6 | .app-header-right { 7 | overflow: hidden; 8 | white-space: nowrap; 9 | } 10 | 11 | h1 { 12 | margin: 0; 13 | font-size: 1.5vw; 14 | line-height: 40px; 15 | font-weight: $bold; 16 | 17 | small { 18 | color: $text-muted; 19 | font-size: 20px; 20 | } 21 | 22 | &.pageTitle { 23 | @include networkPrimaryBG('color'); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/sass/theme/directives/btn-file-data.scss: -------------------------------------------------------------------------------- 1 | .btn-file-data { 2 | position: relative; 3 | overflow: hidden; 4 | 5 | button { 6 | position: relative; 7 | z-index: 10; 8 | } 9 | 10 | input { 11 | position: absolute; 12 | top: 0; 13 | left: 0; 14 | width: 0; 15 | height: 0; 16 | visibility: hidden; 17 | z-index: 1; 18 | } 19 | } -------------------------------------------------------------------------------- /src/sass/theme/directives/index.scss: -------------------------------------------------------------------------------- 1 | @import "top-header"; 2 | 3 | @import "btn-file-data"; 4 | @import "app-header"; 5 | 6 | @import "wallet-no-transactions"; 7 | @import "wallet-no-more-transactions"; 8 | @import "wallet-security-progress-bar"; 9 | -------------------------------------------------------------------------------- /src/sass/theme/directives/wallet-no-transactions.scss: -------------------------------------------------------------------------------- 1 | .wallet-no-transactions { 2 | padding: 90px 0; 3 | color: $darkgray-light; 4 | text-align: center; 5 | width: 100%; 6 | 7 | i { 8 | font-size: 35px; 9 | } 10 | 11 | h1 { 12 | font-size: 28px; 13 | line-height: 32px; 14 | } 15 | 16 | h2 { 17 | margin-top: 20px; 18 | font-size: 22px; 19 | line-height: 26px; 20 | 21 | a { 22 | font-weight: $semi-bold; 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /src/sass/theme/directives/wallet-security-progress-bar.scss: -------------------------------------------------------------------------------- 1 | 2 | .security-bar { 3 | margin-right: 40px; 4 | background-color: #666; 5 | } 6 | -------------------------------------------------------------------------------- /src/sass/theme/indents.scss: -------------------------------------------------------------------------------- 1 | @import "../helpers/mixins"; 2 | 3 | @include make-inner-indents(); 4 | 5 | @include inner-indent-top(1, 7); -------------------------------------------------------------------------------- /src/sass/theme/index.scss: -------------------------------------------------------------------------------- 1 | @import "reset"; 2 | @import "borders"; 3 | @import "indents"; 4 | @import "lodares"; 5 | // Directive 6 | @import "directives/index"; 7 | // Pages 8 | @import "pages/index"; 9 | -------------------------------------------------------------------------------- /src/sass/theme/lodares.scss: -------------------------------------------------------------------------------- 1 | @import "../helpers/variables"; 2 | 3 | .page-blur { 4 | opacity: 1; 5 | transition: opacity .5s ease-in-out; 6 | -moz-transition: opacity .5s ease-in-out; 7 | -webkit-transition: opacity .5s ease-in-out; 8 | 9 | &.page-blur-active { 10 | opacity: .6; 11 | } 12 | } 13 | 14 | .page-loader { 15 | display: none; 16 | position: absolute; 17 | top: 0; 18 | left: 0; 19 | width: 100%; 20 | height: 100%; 21 | z-index: 100; 22 | 23 | &.active { 24 | display: block; 25 | } 26 | 27 | loading-spinner { 28 | position: absolute; 29 | top: 240px; 30 | left: 50%; 31 | width: 50px; 32 | margin: 0 0 0 -20px; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/sass/theme/pages/buy-broker.scss: -------------------------------------------------------------------------------- 1 | .buy-amount-input { 2 | margin-top: 25px; 3 | //margin-left: 5%; 4 | //margin-right: 5%; 5 | } 6 | 7 | .buy-submit-button { 8 | text-align: right; 9 | margin-top: 5px; 10 | padding-top: 15px; 11 | } 12 | 13 | .buy-fee-information { 14 | text-align: right; 15 | } 16 | 17 | .buy-tos { 18 | padding-top: 15px; 19 | text-align: center; 20 | } 21 | -------------------------------------------------------------------------------- /src/sass/theme/pages/index.scss: -------------------------------------------------------------------------------- 1 | @import "landing"; 2 | @import "settings"; 3 | @import "buy-broker"; 4 | -------------------------------------------------------------------------------- /src/templates/common/base.html: -------------------------------------------------------------------------------- 1 |
    2 | -------------------------------------------------------------------------------- /src/translations.js.template: -------------------------------------------------------------------------------- 1 | angular.module('blocktrail.translations', []).constant('TRANSLATIONS', <%= TRANSLATIONS %>); 2 | -------------------------------------------------------------------------------- /www/.gitignore: -------------------------------------------------------------------------------- 1 | index.html 2 | 3 | # files downloaded from fontello before we copy them to the right dirs 4 | fontello 5 | 6 | # staticdirs 7 | */templates 8 | */css 9 | */img 10 | */favicon.ico 11 | */js 12 | */font 13 | favicon.ico 14 | demo.html 15 | --------------------------------------------------------------------------------