2018-05-15 06:18:50 +02:00
( function webpackUniversalModuleDefinition ( root , factory ) {
if ( typeof exports === 'object' && typeof module === 'object' )
module . exports = factory ( ) ;
else if ( typeof define === 'function' && define . amd )
define ( [ ] , factory ) ;
else {
var a = factory ( ) ;
for ( var i in a ) ( typeof exports === 'object' ? exports : root ) [ i ] = a [ i ] ;
}
} ) ( window , function ( ) {
return /******/ ( function ( modules ) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = { } ;
/******/
/******/ // The require function
/******/ function _ _webpack _require _ _ ( moduleId ) {
/******/
/******/ // Check if module is in cache
/******/ if ( installedModules [ moduleId ] ) {
/******/ return installedModules [ moduleId ] . exports ;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules [ moduleId ] = {
/******/ i : moduleId ,
/******/ l : false ,
/******/ exports : { }
/******/ } ;
/******/
/******/ // Execute the module function
/******/ modules [ moduleId ] . call ( module . exports , module , module . exports , _ _webpack _require _ _ ) ;
/******/
/******/ // Flag the module as loaded
/******/ module . l = true ;
/******/
/******/ // Return the exports of the module
/******/ return module . exports ;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ _ _webpack _require _ _ . m = modules ;
/******/
/******/ // expose the module cache
/******/ _ _webpack _require _ _ . c = installedModules ;
/******/
/******/ // define getter function for harmony exports
/******/ _ _webpack _require _ _ . d = function ( exports , name , getter ) {
/******/ if ( ! _ _webpack _require _ _ . o ( exports , name ) ) {
/******/ Object . defineProperty ( exports , name , {
/******/ configurable : false ,
/******/ enumerable : true ,
/******/ get : getter
/******/ } ) ;
/******/ }
/******/ } ;
/******/
/******/ // define __esModule on exports
/******/ _ _webpack _require _ _ . r = function ( exports ) {
/******/ Object . defineProperty ( exports , '__esModule' , { value : true } ) ;
/******/ } ;
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ _ _webpack _require _ _ . n = function ( module ) {
/******/ var getter = module && module . _ _esModule ?
/******/ function getDefault ( ) { return module [ 'default' ] ; } :
/******/ function getModuleExports ( ) { return module ; } ;
/******/ _ _webpack _require _ _ . d ( getter , 'a' , getter ) ;
/******/ return getter ;
/******/ } ;
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ _ _webpack _require _ _ . o = function ( object , property ) { return Object . prototype . hasOwnProperty . call ( object , property ) ; } ;
/******/
/******/ // __webpack_public_path__
/******/ _ _webpack _require _ _ . p = "" ;
/******/
/******/
/******/ // Load entry module and return exports
/******/ return _ _webpack _require _ _ ( _ _webpack _require _ _ . s = 0 ) ;
/******/ } )
/************************************************************************/
/******/ ( [
/* 0 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . selectBlocks = exports . selectDraftTransactionError = exports . selectDraftTransactionAddress = exports . selectDraftTransactionAmount = exports . selectDraftTransaction = exports . selectGettingNewAddress = exports . selectReceiveAddress = exports . selectIsSendingSupport = exports . selectIsFetchingTransactions = exports . selectHasTransactions = exports . selectRecentTransactions = exports . selectTransactionItems = exports . selectTransactionsById = exports . selectBalance = exports . makeSelectBlockDate = exports . selectSearchBarFocused = exports . selectWunderBarAddress = exports . selectSearchUrisByQuery = exports . selectIsSearching = exports . selectSearchValue = exports . selectSearchQuery = exports . makeSelectSearchUris = exports . selectSearchState = exports . selectNavLinks = exports . selectActiveHistoryEntry = exports . selectHistoryStack = exports . selectHistoryIndex = exports . selectIsForwardDisabled = exports . selectIsBackDisabled = exports . selectPathAfterAuth = exports . selectPageTitle = exports . selectHeaderLinks = exports . selectCurrentParams = exports . selectCurrentPage = exports . selectCurrentPath = exports . makeSelectCurrentParam = exports . computePageFromPath = exports . selectSearchDownloadUris = exports . selectTotalDownloadProgress = exports . selectDownloadingFileInfos = exports . selectFileInfosDownloaded = exports . selectUrisLoading = undefined ;
exports . selectDownloadingByOutpoint = exports . selectIsFetchingFileListDownloadedOrPublished = exports . selectIsFetchingFileList = exports . selectFileInfosByOutpoint = exports . makeSelectLoadingForUri = exports . makeSelectDownloadingForUri = exports . makeSelectFileInfoForUri = exports . selectFetchingCostInfo = exports . selectCostForCurrentPageUri = exports . selectAllCostInfoByUri = exports . makeSelectCostInfoForUri = exports . makeSelectFetchingCostInfoForUri = exports . selectRewardContentClaimIds = exports . selectChannelClaimCounts = exports . selectPlayingUri = exports . selectFetchingFeaturedUris = exports . selectFeaturedUris = exports . selectResolvingUris = exports . selectMyChannelClaims = exports . selectFetchingMyChannels = exports . selectMyClaimsOutpoints = exports . selectAllMyClaimsByOutpoint = exports . selectMyClaimsWithoutChannels = exports . selectMyClaims = exports . selectPendingClaims = exports . selectIsFetchingClaimListMine = exports . selectAllFetchingChannelClaims = exports . selectMyActiveClaims = exports . selectAbandoningIds = exports . selectMyClaimsRaw = exports . selectAllClaimsByChannel = exports . selectClaimsByUri = exports . selectClaimsById = exports . makeSelectTotalPagesForChannel = exports . makeSelectTotalItemsForChannel = exports . makeSelectIsUriResolving = exports . makeSelectContentTypeForUri = exports . makeSelectTitleForUri = exports . makeSelectMetadataForUri = exports . makeSelectClaimsInChannelForCurrentPage = exports . makeSelectFetchingChannelClaims = exports . makeSelectClaimIsMine = exports . makeSelectClaimForUri = exports . selectSnack = exports . selectNotificationProps = exports . selectNotification = exports . selectBlackListedOutpoints = exports . blacklistReducer = exports . walletReducer = exports . searchReducer = exports . notificationsReducer = exports . fileInfoReducer = exports . costInfoReducer = exports . claimsReducer = exports . formatFullPrice = exports . formatCredits = exports . toQueryString = exports . parseQueryParams = exports . batchActions = exports . doSendSupport = exports . doSetDraftTransactionAddress = exports . doSetDraftTransactionAmount = exports . doSendDraftTransaction = exports . doCheckAddressIsMine = exports . doGetNewAddress = exports . doFetchBlock = exports . doFetchTransactions = exports . doBalanceSubscribe = exports . doUpdateBalance = exports . doBlackListedOutpointsSubscribe = exports . doBlurSearchInput = exports . doFocusSearchInput = exports . doUpdateSearchQuery = exports . doSearch = exports . doFetchFileInfosAndPublishedClaims = exports . doFileList = exports . doFetchFileInfo = exports . doFetchCostInfoForUri = exports . doFetchRewardedContent = exports . doFetchFeaturedUris = exports . doResolveUri = exports . doResolveUris = exports . doAbandonClaim = exports . doFetchClaimListMine = exports . doHideNotification = exports . doNotify = exports . isNameValid = exports . isURIClaimable = exports . isURIValid = exports . normalizeURI = exports . buildURI = exports . parseURI = exports . regexAddress = exports . regexInvalidURI = exports . Lbryapi = exports . Lbry = exports . MODALS = exports . SETTINGS = exports . ACTIONS = exports . Notification = undefined ;
var _Notification = _ _webpack _require _ _ ( 1 ) ;
Object . defineProperty ( exports , 'Notification' , {
enumerable : true ,
get : function get ( ) {
return _Notification . Notification ;
}
} ) ;
var _lbryURI = _ _webpack _require _ _ ( 2 ) ;
Object . defineProperty ( exports , 'regexInvalidURI' , {
enumerable : true ,
get : function get ( ) {
return _lbryURI . regexInvalidURI ;
}
} ) ;
Object . defineProperty ( exports , 'regexAddress' , {
enumerable : true ,
get : function get ( ) {
return _lbryURI . regexAddress ;
}
} ) ;
Object . defineProperty ( exports , 'parseURI' , {
enumerable : true ,
get : function get ( ) {
return _lbryURI . parseURI ;
}
} ) ;
Object . defineProperty ( exports , 'buildURI' , {
enumerable : true ,
get : function get ( ) {
return _lbryURI . buildURI ;
}
} ) ;
Object . defineProperty ( exports , 'normalizeURI' , {
enumerable : true ,
get : function get ( ) {
return _lbryURI . normalizeURI ;
}
} ) ;
Object . defineProperty ( exports , 'isURIValid' , {
enumerable : true ,
get : function get ( ) {
return _lbryURI . isURIValid ;
}
} ) ;
Object . defineProperty ( exports , 'isURIClaimable' , {
enumerable : true ,
get : function get ( ) {
return _lbryURI . isURIClaimable ;
}
} ) ;
Object . defineProperty ( exports , 'isNameValid' , {
enumerable : true ,
get : function get ( ) {
return _lbryURI . isNameValid ;
}
} ) ;
var _notifications = _ _webpack _require _ _ ( 3 ) ;
Object . defineProperty ( exports , 'doNotify' , {
enumerable : true ,
get : function get ( ) {
return _notifications . doNotify ;
}
} ) ;
Object . defineProperty ( exports , 'doHideNotification' , {
enumerable : true ,
get : function get ( ) {
return _notifications . doHideNotification ;
}
} ) ;
var _claims = _ _webpack _require _ _ ( 5 ) ;
Object . defineProperty ( exports , 'doFetchClaimListMine' , {
enumerable : true ,
get : function get ( ) {
return _claims . doFetchClaimListMine ;
}
} ) ;
Object . defineProperty ( exports , 'doAbandonClaim' , {
enumerable : true ,
get : function get ( ) {
return _claims . doAbandonClaim ;
}
} ) ;
Object . defineProperty ( exports , 'doResolveUris' , {
enumerable : true ,
get : function get ( ) {
return _claims . doResolveUris ;
}
} ) ;
Object . defineProperty ( exports , 'doResolveUri' , {
enumerable : true ,
get : function get ( ) {
return _claims . doResolveUri ;
}
} ) ;
Object . defineProperty ( exports , 'doFetchFeaturedUris' , {
enumerable : true ,
get : function get ( ) {
return _claims . doFetchFeaturedUris ;
}
} ) ;
Object . defineProperty ( exports , 'doFetchRewardedContent' , {
enumerable : true ,
get : function get ( ) {
return _claims . doFetchRewardedContent ;
}
} ) ;
var _cost _info = _ _webpack _require _ _ ( 19 ) ;
Object . defineProperty ( exports , 'doFetchCostInfoForUri' , {
enumerable : true ,
get : function get ( ) {
return _cost _info . doFetchCostInfoForUri ;
}
} ) ;
var _file _info = _ _webpack _require _ _ ( 20 ) ;
Object . defineProperty ( exports , 'doFetchFileInfo' , {
enumerable : true ,
get : function get ( ) {
return _file _info . doFetchFileInfo ;
}
} ) ;
Object . defineProperty ( exports , 'doFileList' , {
enumerable : true ,
get : function get ( ) {
return _file _info . doFileList ;
}
} ) ;
Object . defineProperty ( exports , 'doFetchFileInfosAndPublishedClaims' , {
enumerable : true ,
get : function get ( ) {
return _file _info . doFetchFileInfosAndPublishedClaims ;
}
} ) ;
var _search = _ _webpack _require _ _ ( 22 ) ;
Object . defineProperty ( exports , 'doSearch' , {
enumerable : true ,
get : function get ( ) {
return _search . doSearch ;
}
} ) ;
Object . defineProperty ( exports , 'doUpdateSearchQuery' , {
enumerable : true ,
get : function get ( ) {
return _search . doUpdateSearchQuery ;
}
} ) ;
Object . defineProperty ( exports , 'doFocusSearchInput' , {
enumerable : true ,
get : function get ( ) {
return _search . doFocusSearchInput ;
}
} ) ;
Object . defineProperty ( exports , 'doBlurSearchInput' , {
enumerable : true ,
get : function get ( ) {
return _search . doBlurSearchInput ;
}
} ) ;
var _blacklist = _ _webpack _require _ _ ( 26 ) ;
Object . defineProperty ( exports , 'doBlackListedOutpointsSubscribe' , {
enumerable : true ,
get : function get ( ) {
return _blacklist . doBlackListedOutpointsSubscribe ;
}
} ) ;
var _wallet = _ _webpack _require _ _ ( 27 ) ;
Object . defineProperty ( exports , 'doUpdateBalance' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doUpdateBalance ;
}
} ) ;
Object . defineProperty ( exports , 'doBalanceSubscribe' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doBalanceSubscribe ;
}
} ) ;
Object . defineProperty ( exports , 'doFetchTransactions' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doFetchTransactions ;
}
} ) ;
Object . defineProperty ( exports , 'doFetchBlock' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doFetchBlock ;
}
} ) ;
Object . defineProperty ( exports , 'doGetNewAddress' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doGetNewAddress ;
}
} ) ;
Object . defineProperty ( exports , 'doCheckAddressIsMine' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doCheckAddressIsMine ;
}
} ) ;
Object . defineProperty ( exports , 'doSendDraftTransaction' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doSendDraftTransaction ;
}
} ) ;
Object . defineProperty ( exports , 'doSetDraftTransactionAmount' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doSetDraftTransactionAmount ;
}
} ) ;
Object . defineProperty ( exports , 'doSetDraftTransactionAddress' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doSetDraftTransactionAddress ;
}
} ) ;
Object . defineProperty ( exports , 'doSendSupport' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doSendSupport ;
}
} ) ;
var _batchActions = _ _webpack _require _ _ ( 18 ) ;
Object . defineProperty ( exports , 'batchActions' , {
enumerable : true ,
get : function get ( ) {
return _batchActions . batchActions ;
}
} ) ;
var _query _params = _ _webpack _require _ _ ( 17 ) ;
Object . defineProperty ( exports , 'parseQueryParams' , {
enumerable : true ,
get : function get ( ) {
return _query _params . parseQueryParams ;
}
} ) ;
Object . defineProperty ( exports , 'toQueryString' , {
enumerable : true ,
get : function get ( ) {
return _query _params . toQueryString ;
}
} ) ;
var _formatCredits = _ _webpack _require _ _ ( 29 ) ;
Object . defineProperty ( exports , 'formatCredits' , {
enumerable : true ,
get : function get ( ) {
return _formatCredits . formatCredits ;
}
} ) ;
Object . defineProperty ( exports , 'formatFullPrice' , {
enumerable : true ,
get : function get ( ) {
return _formatCredits . formatFullPrice ;
}
} ) ;
var _claims2 = _ _webpack _require _ _ ( 30 ) ;
Object . defineProperty ( exports , 'claimsReducer' , {
enumerable : true ,
get : function get ( ) {
return _claims2 . claimsReducer ;
}
} ) ;
var _cost _info2 = _ _webpack _require _ _ ( 31 ) ;
Object . defineProperty ( exports , 'costInfoReducer' , {
enumerable : true ,
get : function get ( ) {
return _cost _info2 . costInfoReducer ;
}
} ) ;
var _file _info2 = _ _webpack _require _ _ ( 32 ) ;
Object . defineProperty ( exports , 'fileInfoReducer' , {
enumerable : true ,
get : function get ( ) {
return _file _info2 . fileInfoReducer ;
}
} ) ;
var _notifications2 = _ _webpack _require _ _ ( 33 ) ;
Object . defineProperty ( exports , 'notificationsReducer' , {
enumerable : true ,
get : function get ( ) {
return _notifications2 . notificationsReducer ;
}
} ) ;
var _search2 = _ _webpack _require _ _ ( 35 ) ;
Object . defineProperty ( exports , 'searchReducer' , {
enumerable : true ,
get : function get ( ) {
return _search2 . searchReducer ;
}
} ) ;
var _wallet2 = _ _webpack _require _ _ ( 37 ) ;
Object . defineProperty ( exports , 'walletReducer' , {
enumerable : true ,
get : function get ( ) {
return _wallet2 . walletReducer ;
}
} ) ;
var _blacklist2 = _ _webpack _require _ _ ( 38 ) ;
Object . defineProperty ( exports , 'blacklistReducer' , {
enumerable : true ,
get : function get ( ) {
return _blacklist2 . blacklistReducer ;
}
} ) ;
var _blacklist3 = _ _webpack _require _ _ ( 39 ) ;
Object . defineProperty ( exports , 'selectBlackListedOutpoints' , {
enumerable : true ,
get : function get ( ) {
return _blacklist3 . selectBlackListedOutpoints ;
}
} ) ;
var _notifications3 = _ _webpack _require _ _ ( 40 ) ;
Object . defineProperty ( exports , 'selectNotification' , {
enumerable : true ,
get : function get ( ) {
return _notifications3 . selectNotification ;
}
} ) ;
Object . defineProperty ( exports , 'selectNotificationProps' , {
enumerable : true ,
get : function get ( ) {
return _notifications3 . selectNotificationProps ;
}
} ) ;
Object . defineProperty ( exports , 'selectSnack' , {
enumerable : true ,
get : function get ( ) {
return _notifications3 . selectSnack ;
}
} ) ;
var _claims3 = _ _webpack _require _ _ ( 14 ) ;
Object . defineProperty ( exports , 'makeSelectClaimForUri' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectClaimForUri ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectClaimIsMine' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectClaimIsMine ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectFetchingChannelClaims' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectFetchingChannelClaims ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectClaimsInChannelForCurrentPage' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectClaimsInChannelForCurrentPage ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectMetadataForUri' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectMetadataForUri ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectTitleForUri' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectTitleForUri ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectContentTypeForUri' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectContentTypeForUri ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectIsUriResolving' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectIsUriResolving ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectTotalItemsForChannel' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectTotalItemsForChannel ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectTotalPagesForChannel' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectTotalPagesForChannel ;
}
} ) ;
Object . defineProperty ( exports , 'selectClaimsById' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectClaimsById ;
}
} ) ;
Object . defineProperty ( exports , 'selectClaimsByUri' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectClaimsByUri ;
}
} ) ;
Object . defineProperty ( exports , 'selectAllClaimsByChannel' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectAllClaimsByChannel ;
}
} ) ;
Object . defineProperty ( exports , 'selectMyClaimsRaw' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectMyClaimsRaw ;
}
} ) ;
Object . defineProperty ( exports , 'selectAbandoningIds' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectAbandoningIds ;
}
} ) ;
Object . defineProperty ( exports , 'selectMyActiveClaims' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectMyActiveClaims ;
}
} ) ;
Object . defineProperty ( exports , 'selectAllFetchingChannelClaims' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectAllFetchingChannelClaims ;
}
} ) ;
Object . defineProperty ( exports , 'selectIsFetchingClaimListMine' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectIsFetchingClaimListMine ;
}
} ) ;
Object . defineProperty ( exports , 'selectPendingClaims' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectPendingClaims ;
}
} ) ;
Object . defineProperty ( exports , 'selectMyClaims' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectMyClaims ;
}
} ) ;
Object . defineProperty ( exports , 'selectMyClaimsWithoutChannels' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectMyClaimsWithoutChannels ;
}
} ) ;
Object . defineProperty ( exports , 'selectAllMyClaimsByOutpoint' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectAllMyClaimsByOutpoint ;
}
} ) ;
Object . defineProperty ( exports , 'selectMyClaimsOutpoints' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectMyClaimsOutpoints ;
}
} ) ;
Object . defineProperty ( exports , 'selectFetchingMyChannels' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectFetchingMyChannels ;
}
} ) ;
Object . defineProperty ( exports , 'selectMyChannelClaims' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectMyChannelClaims ;
}
} ) ;
Object . defineProperty ( exports , 'selectResolvingUris' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectResolvingUris ;
}
} ) ;
Object . defineProperty ( exports , 'selectFeaturedUris' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectFeaturedUris ;
}
} ) ;
Object . defineProperty ( exports , 'selectFetchingFeaturedUris' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectFetchingFeaturedUris ;
}
} ) ;
Object . defineProperty ( exports , 'selectPlayingUri' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectPlayingUri ;
}
} ) ;
Object . defineProperty ( exports , 'selectChannelClaimCounts' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectChannelClaimCounts ;
}
} ) ;
Object . defineProperty ( exports , 'selectRewardContentClaimIds' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectRewardContentClaimIds ;
}
} ) ;
var _cost _info3 = _ _webpack _require _ _ ( 41 ) ;
Object . defineProperty ( exports , 'makeSelectFetchingCostInfoForUri' , {
enumerable : true ,
get : function get ( ) {
return _cost _info3 . makeSelectFetchingCostInfoForUri ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectCostInfoForUri' , {
enumerable : true ,
get : function get ( ) {
return _cost _info3 . makeSelectCostInfoForUri ;
}
} ) ;
Object . defineProperty ( exports , 'selectAllCostInfoByUri' , {
enumerable : true ,
get : function get ( ) {
return _cost _info3 . selectAllCostInfoByUri ;
}
} ) ;
Object . defineProperty ( exports , 'selectCostForCurrentPageUri' , {
enumerable : true ,
get : function get ( ) {
return _cost _info3 . selectCostForCurrentPageUri ;
}
} ) ;
Object . defineProperty ( exports , 'selectFetchingCostInfo' , {
enumerable : true ,
get : function get ( ) {
return _cost _info3 . selectFetchingCostInfo ;
}
} ) ;
var _file _info3 = _ _webpack _require _ _ ( 21 ) ;
Object . defineProperty ( exports , 'makeSelectFileInfoForUri' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . makeSelectFileInfoForUri ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectDownloadingForUri' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . makeSelectDownloadingForUri ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectLoadingForUri' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . makeSelectLoadingForUri ;
}
} ) ;
Object . defineProperty ( exports , 'selectFileInfosByOutpoint' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . selectFileInfosByOutpoint ;
}
} ) ;
Object . defineProperty ( exports , 'selectIsFetchingFileList' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . selectIsFetchingFileList ;
}
} ) ;
Object . defineProperty ( exports , 'selectIsFetchingFileListDownloadedOrPublished' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . selectIsFetchingFileListDownloadedOrPublished ;
}
} ) ;
Object . defineProperty ( exports , 'selectDownloadingByOutpoint' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . selectDownloadingByOutpoint ;
}
} ) ;
Object . defineProperty ( exports , 'selectUrisLoading' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . selectUrisLoading ;
}
} ) ;
Object . defineProperty ( exports , 'selectFileInfosDownloaded' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . selectFileInfosDownloaded ;
}
} ) ;
Object . defineProperty ( exports , 'selectDownloadingFileInfos' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . selectDownloadingFileInfos ;
}
} ) ;
Object . defineProperty ( exports , 'selectTotalDownloadProgress' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . selectTotalDownloadProgress ;
}
} ) ;
Object . defineProperty ( exports , 'selectSearchDownloadUris' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . selectSearchDownloadUris ;
}
} ) ;
var _navigation = _ _webpack _require _ _ ( 15 ) ;
Object . defineProperty ( exports , 'computePageFromPath' , {
enumerable : true ,
get : function get ( ) {
return _navigation . computePageFromPath ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectCurrentParam' , {
enumerable : true ,
get : function get ( ) {
return _navigation . makeSelectCurrentParam ;
}
} ) ;
Object . defineProperty ( exports , 'selectCurrentPath' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectCurrentPath ;
}
} ) ;
Object . defineProperty ( exports , 'selectCurrentPage' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectCurrentPage ;
}
} ) ;
Object . defineProperty ( exports , 'selectCurrentParams' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectCurrentParams ;
}
} ) ;
Object . defineProperty ( exports , 'selectHeaderLinks' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectHeaderLinks ;
}
} ) ;
Object . defineProperty ( exports , 'selectPageTitle' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectPageTitle ;
}
} ) ;
Object . defineProperty ( exports , 'selectPathAfterAuth' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectPathAfterAuth ;
}
} ) ;
Object . defineProperty ( exports , 'selectIsBackDisabled' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectIsBackDisabled ;
}
} ) ;
Object . defineProperty ( exports , 'selectIsForwardDisabled' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectIsForwardDisabled ;
}
} ) ;
Object . defineProperty ( exports , 'selectHistoryIndex' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectHistoryIndex ;
}
} ) ;
Object . defineProperty ( exports , 'selectHistoryStack' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectHistoryStack ;
}
} ) ;
Object . defineProperty ( exports , 'selectActiveHistoryEntry' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectActiveHistoryEntry ;
}
} ) ;
Object . defineProperty ( exports , 'selectNavLinks' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectNavLinks ;
}
} ) ;
var _search3 = _ _webpack _require _ _ ( 24 ) ;
Object . defineProperty ( exports , 'makeSelectSearchUris' , {
enumerable : true ,
get : function get ( ) {
return _search3 . makeSelectSearchUris ;
}
} ) ;
Object . defineProperty ( exports , 'selectSearchQuery' , {
enumerable : true ,
get : function get ( ) {
return _search3 . selectSearchQuery ;
}
} ) ;
Object . defineProperty ( exports , 'selectSearchValue' , {
enumerable : true ,
get : function get ( ) {
return _search3 . selectSearchValue ;
}
} ) ;
Object . defineProperty ( exports , 'selectIsSearching' , {
enumerable : true ,
get : function get ( ) {
return _search3 . selectIsSearching ;
}
} ) ;
Object . defineProperty ( exports , 'selectSearchUrisByQuery' , {
enumerable : true ,
get : function get ( ) {
return _search3 . selectSearchUrisByQuery ;
}
} ) ;
Object . defineProperty ( exports , 'selectWunderBarAddress' , {
enumerable : true ,
get : function get ( ) {
return _search3 . selectWunderBarAddress ;
}
} ) ;
Object . defineProperty ( exports , 'selectSearchBarFocused' , {
enumerable : true ,
get : function get ( ) {
return _search3 . selectSearchBarFocused ;
}
} ) ;
var _wallet3 = _ _webpack _require _ _ ( 28 ) ;
Object . defineProperty ( exports , 'makeSelectBlockDate' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . makeSelectBlockDate ;
}
} ) ;
Object . defineProperty ( exports , 'selectBalance' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectBalance ;
}
} ) ;
Object . defineProperty ( exports , 'selectTransactionsById' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectTransactionsById ;
}
} ) ;
Object . defineProperty ( exports , 'selectTransactionItems' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectTransactionItems ;
}
} ) ;
Object . defineProperty ( exports , 'selectRecentTransactions' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectRecentTransactions ;
}
} ) ;
Object . defineProperty ( exports , 'selectHasTransactions' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectHasTransactions ;
}
} ) ;
Object . defineProperty ( exports , 'selectIsFetchingTransactions' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectIsFetchingTransactions ;
}
} ) ;
Object . defineProperty ( exports , 'selectIsSendingSupport' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectIsSendingSupport ;
}
} ) ;
Object . defineProperty ( exports , 'selectReceiveAddress' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectReceiveAddress ;
}
} ) ;
Object . defineProperty ( exports , 'selectGettingNewAddress' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectGettingNewAddress ;
}
} ) ;
Object . defineProperty ( exports , 'selectDraftTransaction' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectDraftTransaction ;
}
} ) ;
Object . defineProperty ( exports , 'selectDraftTransactionAmount' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectDraftTransactionAmount ;
}
} ) ;
Object . defineProperty ( exports , 'selectDraftTransactionAddress' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectDraftTransactionAddress ;
}
} ) ;
Object . defineProperty ( exports , 'selectDraftTransactionError' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectDraftTransactionError ;
}
} ) ;
Object . defineProperty ( exports , 'selectBlocks' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectBlocks ;
}
} ) ;
var _action _types = _ _webpack _require _ _ ( 4 ) ;
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
var _settings = _ _webpack _require _ _ ( 42 ) ;
var SETTINGS = _interopRequireWildcard ( _settings ) ;
var _modal _types = _ _webpack _require _ _ ( 34 ) ;
var MODALS = _interopRequireWildcard ( _modal _types ) ;
var _lbry = _ _webpack _require _ _ ( 6 ) ;
var _lbry2 = _interopRequireDefault ( _lbry ) ;
var _lbryapi = _ _webpack _require _ _ ( 9 ) ;
var _lbryapi2 = _interopRequireDefault ( _lbryapi ) ;
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { default : obj } ; }
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
// constants
exports . ACTIONS = ACTIONS ;
exports . SETTINGS = SETTINGS ;
exports . MODALS = MODALS ;
// common
exports . Lbry = _lbry2 . default ;
exports . Lbryapi = _lbryapi2 . default ;
exports . selectSearchState = _search3 . selectState ;
/***/ } ) ,
/* 1 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
// @flow
// Used for retreiving data from redux store
/ * : : e x p o r t t y p e N o t i f i c a t i o n = {
id : ? string ,
title : ? string ,
message : string ,
type : string ,
error : ? string ,
displayType : mixed ,
// additional properties for SnackBar
linkText : ? string ,
linkTarget : ? string ,
} ; * /
/ * : : e x p o r t t y p e N o t i f i c a t i o n P r o p s = {
uri : ? string ,
} ; * /
/***/ } ) ,
/* 2 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var _extends = Object . assign || function ( target ) { for ( var i = 1 ; i < arguments . length ; i ++ ) { var source = arguments [ i ] ; for ( var key in source ) { if ( Object . prototype . hasOwnProperty . call ( source , key ) ) { target [ key ] = source [ key ] ; } } } return target ; } ;
var _slicedToArray = function ( ) { function sliceIterator ( arr , i ) { var _arr = [ ] ; var _n = true ; var _d = false ; var _e = undefined ; try { for ( var _i = arr [ Symbol . iterator ] ( ) , _s ; ! ( _n = ( _s = _i . next ( ) ) . done ) ; _n = true ) { _arr . push ( _s . value ) ; if ( i && _arr . length === i ) break ; } } catch ( err ) { _d = true ; _e = err ; } finally { try { if ( ! _n && _i [ "return" ] ) _i [ "return" ] ( ) ; } finally { if ( _d ) throw _e ; } } return _arr ; } return function ( arr , i ) { if ( Array . isArray ( arr ) ) { return arr ; } else if ( Symbol . iterator in Object ( arr ) ) { return sliceIterator ( arr , i ) ; } else { throw new TypeError ( "Invalid attempt to destructure non-iterable instance" ) ; } } ; } ( ) ;
exports . parseURI = parseURI ;
exports . buildURI = buildURI ;
exports . normalizeURI = normalizeURI ;
exports . isURIValid = isURIValid ;
exports . isNameValid = isNameValid ;
exports . isURIClaimable = isURIClaimable ;
var channelNameMinLength = 1 ;
var claimIdMaxLength = 40 ;
var regexInvalidURI = exports . regexInvalidURI = /[^A-Za-z0-9-]/g ;
var regexAddress = exports . regexAddress = /^b(?=[^0OIl]{32,33})[0-9A-Za-z]{32,33}$/ ;
/ * *
* Parses a LBRY name into its component parts . Throws errors with user - friendly
* messages for invalid names .
*
* N . B . that "name" indicates the value in the name position of the URI . For
* claims for channel content , this will actually be the channel name , and
* the content name is in the path ( e . g . lbry : //@channel/content)
*
* In most situations , you ' ll want to use the contentName and channelName keys
* and ignore the name key .
*
* Returns a dictionary with keys :
* - name ( string ) : The value in the "name" position in the URI . Note that this
* could be either content name or channel name ; see above .
* - path ( string , if persent )
* - claimSequence ( int , if present )
* - bidPosition ( int , if present )
* - claimId ( string , if present )
* - isChannel ( boolean )
* - contentName ( string ) : For anon claims , the name ; for channel claims , the path
* - channelName ( string , if present ) : Channel name without @
* /
function parseURI ( URI ) {
var requireProto = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : false ;
// Break into components. Empty sub-matches are converted to null
var componentsRegex = new RegExp ( '^((?:lbry://)?)' + // protocol
'([^:$#/]*)' + // claim name (stops at the first separator or end)
'([:$#]?)([^/]*)' + // modifier separator, modifier (stops at the first path separator or end)
'(/?)(.*)' // path separator, path
) ;
var _componentsRegex$exec = componentsRegex . exec ( URI ) . slice ( 1 ) . map ( function ( match ) {
return match || null ;
} ) ,
_componentsRegex$exec2 = _slicedToArray ( _componentsRegex$exec , 6 ) ,
proto = _componentsRegex$exec2 [ 0 ] ,
claimName = _componentsRegex$exec2 [ 1 ] ,
modSep = _componentsRegex$exec2 [ 2 ] ,
modVal = _componentsRegex$exec2 [ 3 ] ,
pathSep = _componentsRegex$exec2 [ 4 ] ,
path = _componentsRegex$exec2 [ 5 ] ;
var contentName = void 0 ;
// Validate protocol
if ( requireProto && ! proto ) {
throw new Error ( _ _ ( 'LBRY URIs must include a protocol prefix (lbry://).' ) ) ;
}
// Validate and process name
if ( ! claimName ) {
throw new Error ( _ _ ( 'URI does not include name.' ) ) ;
}
var isChannel = claimName . startsWith ( '@' ) ;
var channelName = isChannel ? claimName . slice ( 1 ) : claimName ;
if ( isChannel ) {
if ( ! channelName ) {
throw new Error ( _ _ ( 'No channel name after @.' ) ) ;
}
if ( channelName . length < channelNameMinLength ) {
throw new Error ( _ _ ( 'Channel names must be at least %s characters.' , channelNameMinLength ) ) ;
}
contentName = path ;
}
var nameBadChars = ( channelName || claimName ) . match ( regexInvalidURI ) ;
if ( nameBadChars ) {
throw new Error ( _ _ ( 'Invalid character %s in name: %s.' , nameBadChars . length === 1 ? '' : 's' , nameBadChars . join ( ', ' ) ) ) ;
}
// Validate and process modifier (claim ID, bid position or claim sequence)
var claimId = void 0 ;
var claimSequence = void 0 ;
var bidPosition = void 0 ;
if ( modSep ) {
if ( ! modVal ) {
throw new Error ( _ _ ( 'No modifier provided after separator %s.' , modSep ) ) ;
}
if ( modSep === '#' ) {
claimId = modVal ;
} else if ( modSep === ':' ) {
claimSequence = modVal ;
} else if ( modSep === '$' ) {
bidPosition = modVal ;
}
}
if ( claimId && ( claimId . length > claimIdMaxLength || ! claimId . match ( /^[0-9a-f]+$/ ) ) && ! claimId . match ( /^pending/ ) // ought to be dropped when savePendingPublish drops hack
) {
throw new Error ( _ _ ( 'Invalid claim ID %s.' , claimId ) ) ;
}
if ( claimSequence && ! claimSequence . match ( /^-?[1-9][0-9]*$/ ) ) {
throw new Error ( _ _ ( 'Claim sequence must be a number.' ) ) ;
}
if ( bidPosition && ! bidPosition . match ( /^-?[1-9][0-9]*$/ ) ) {
throw new Error ( _ _ ( 'Bid position must be a number.' ) ) ;
}
// Validate and process path
if ( path ) {
if ( ! isChannel ) {
throw new Error ( _ _ ( 'Only channel URIs may have a path.' ) ) ;
}
var pathBadChars = path . match ( regexInvalidURI ) ;
if ( pathBadChars ) {
throw new Error ( _ _ ( 'Invalid character in path: %s' , pathBadChars . join ( ', ' ) ) ) ;
}
contentName = path ;
} else if ( pathSep ) {
throw new Error ( _ _ ( 'No path provided after /' ) ) ;
}
return _extends ( {
claimName : claimName ,
path : path ,
isChannel : isChannel
} , contentName ? { contentName : contentName } : { } , channelName ? { channelName : channelName } : { } , claimSequence ? { claimSequence : parseInt ( claimSequence , 10 ) } : { } , bidPosition ? { bidPosition : parseInt ( bidPosition , 10 ) } : { } , claimId ? { claimId : claimId } : { } , path ? { path : path } : { } ) ;
}
/ * *
* Takes an object in the same format returned by parse ( ) and builds a URI .
*
* The channelName key will accept names with or without the @ prefix .
* /
function buildURI ( URIObj ) {
var includeProto = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : true ;
var claimId = URIObj . claimId ,
claimSequence = URIObj . claimSequence ,
bidPosition = URIObj . bidPosition ,
contentName = URIObj . contentName ,
channelName = URIObj . channelName ;
var claimName = URIObj . claimName ,
path = URIObj . path ;
if ( channelName ) {
var channelNameFormatted = channelName . startsWith ( '@' ) ? channelName : '@' + channelName ;
if ( ! claimName ) {
claimName = channelNameFormatted ;
} else if ( claimName !== channelNameFormatted ) {
throw new Error ( _ _ ( 'Received a channel content URI, but claim name and channelName do not match. "name" represents the value in the name position of the URI (lbry://name...), which for channel content will be the channel name. In most cases, to construct a channel URI you should just pass channelName and contentName.' ) ) ;
}
}
if ( contentName ) {
if ( ! claimName ) {
claimName = contentName ;
} else if ( ! path ) {
path = contentName ;
}
if ( path && path !== contentName ) {
throw new Error ( _ _ ( 'Path and contentName do not match. Only one is required; most likely you wanted contentName.' ) ) ;
}
}
return ( includeProto ? 'lbry://' : '' ) + claimName + ( claimId ? '#' + claimId : '' ) + ( claimSequence ? ':' + claimSequence : '' ) + ( bidPosition ? '' + bidPosition : '' ) + ( path ? '/' + path : '' ) ;
}
/* Takes a parseable LBRY URI and converts it to standard, canonical format */
function normalizeURI ( URI ) {
if ( URI . match ( /pending_claim/ ) ) return URI ;
var _parseURI = parseURI ( URI ) ,
claimName = _parseURI . claimName ,
path = _parseURI . path ,
bidPosition = _parseURI . bidPosition ,
claimSequence = _parseURI . claimSequence ,
claimId = _parseURI . claimId ;
return buildURI ( { claimName : claimName , path : path , claimSequence : claimSequence , bidPosition : bidPosition , claimId : claimId } ) ;
}
function isURIValid ( URI ) {
var parts = void 0 ;
try {
parts = parseURI ( normalizeURI ( URI ) ) ;
} catch ( error ) {
return false ;
}
return parts && parts . claimName ;
}
function isNameValid ( claimName ) {
var checkCase = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : true ;
var regexp = new RegExp ( '^[a-z0-9-]+$' , checkCase ? '' : 'i' ) ;
return regexp . test ( claimName ) ;
}
function isURIClaimable ( URI ) {
var parts = void 0 ;
try {
parts = parseURI ( normalizeURI ( URI ) ) ;
} catch ( error ) {
return false ;
}
return parts && parts . claimName && ! parts . claimId && ! parts . bidPosition && ! parts . claimSequence && ! parts . isChannel && ! parts . path ;
}
/***/ } ) ,
/* 3 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var _extends = Object . assign || function ( target ) { for ( var i = 1 ; i < arguments . length ; i ++ ) { var source = arguments [ i ] ; for ( var key in source ) { if ( Object . prototype . hasOwnProperty . call ( source , key ) ) { target [ key ] = source [ key ] ; } } } return target ; } ; // @flow
exports . doNotify = doNotify ;
exports . doHideNotification = doHideNotification ;
var _action _types = _ _webpack _require _ _ ( 4 ) ;
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
var _Notification = _ _webpack _require _ _ ( 1 ) ;
var _Notification2 = _interopRequireDefault ( _Notification ) ;
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { default : obj } ; }
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
function doNotify ( notification /*: Notification*/ , notificationProps /*: NotificationProps*/ ) {
return {
type : ACTIONS . CREATE _NOTIFICATION ,
data : {
notification : notification ,
// using this syntax to create an object if notificationProps is undefined
notificationProps : _extends ( { } , notificationProps )
}
} ;
}
function doHideNotification ( ) {
return {
type : ACTIONS . DISMISS _NOTIFICATION
} ;
}
/***/ } ) ,
/* 4 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var WINDOW _FOCUSED = exports . WINDOW _FOCUSED = 'WINDOW_FOCUSED' ;
var DAEMON _READY = exports . DAEMON _READY = 'DAEMON_READY' ;
var DAEMON _VERSION _MATCH = exports . DAEMON _VERSION _MATCH = 'DAEMON_VERSION_MATCH' ;
var DAEMON _VERSION _MISMATCH = exports . DAEMON _VERSION _MISMATCH = 'DAEMON_VERSION_MISMATCH' ;
var VOLUME _CHANGED = exports . VOLUME _CHANGED = 'VOLUME_CHANGED' ;
// Navigation
var CHANGE _AFTER _AUTH _PATH = exports . CHANGE _AFTER _AUTH _PATH = 'CHANGE_AFTER_AUTH_PATH' ;
var WINDOW _SCROLLED = exports . WINDOW _SCROLLED = 'WINDOW_SCROLLED' ;
var HISTORY _NAVIGATE = exports . HISTORY _NAVIGATE = 'HISTORY_NAVIGATE' ;
// Upgrades
var UPGRADE _CANCELLED = exports . UPGRADE _CANCELLED = 'UPGRADE_CANCELLED' ;
var DOWNLOAD _UPGRADE = exports . DOWNLOAD _UPGRADE = 'DOWNLOAD_UPGRADE' ;
var UPGRADE _DOWNLOAD _STARTED = exports . UPGRADE _DOWNLOAD _STARTED = 'UPGRADE_DOWNLOAD_STARTED' ;
var UPGRADE _DOWNLOAD _COMPLETED = exports . UPGRADE _DOWNLOAD _COMPLETED = 'UPGRADE_DOWNLOAD_COMPLETED' ;
var UPGRADE _DOWNLOAD _PROGRESSED = exports . UPGRADE _DOWNLOAD _PROGRESSED = 'UPGRADE_DOWNLOAD_PROGRESSED' ;
var CHECK _UPGRADE _AVAILABLE = exports . CHECK _UPGRADE _AVAILABLE = 'CHECK_UPGRADE_AVAILABLE' ;
var CHECK _UPGRADE _START = exports . CHECK _UPGRADE _START = 'CHECK_UPGRADE_START' ;
var CHECK _UPGRADE _SUCCESS = exports . CHECK _UPGRADE _SUCCESS = 'CHECK_UPGRADE_SUCCESS' ;
var CHECK _UPGRADE _FAIL = exports . CHECK _UPGRADE _FAIL = 'CHECK_UPGRADE_FAIL' ;
var CHECK _UPGRADE _SUBSCRIBE = exports . CHECK _UPGRADE _SUBSCRIBE = 'CHECK_UPGRADE_SUBSCRIBE' ;
var UPDATE _VERSION = exports . UPDATE _VERSION = 'UPDATE_VERSION' ;
var UPDATE _REMOTE _VERSION = exports . UPDATE _REMOTE _VERSION = 'UPDATE_REMOTE_VERSION' ;
var SKIP _UPGRADE = exports . SKIP _UPGRADE = 'SKIP_UPGRADE' ;
var START _UPGRADE = exports . START _UPGRADE = 'START_UPGRADE' ;
var AUTO _UPDATE _DECLINED = exports . AUTO _UPDATE _DECLINED = 'AUTO_UPDATE_DECLINED' ;
var AUTO _UPDATE _DOWNLOADED = exports . AUTO _UPDATE _DOWNLOADED = 'AUTO_UPDATE_DOWNLOADED' ;
// Wallet
var GET _NEW _ADDRESS _STARTED = exports . GET _NEW _ADDRESS _STARTED = 'GET_NEW_ADDRESS_STARTED' ;
var GET _NEW _ADDRESS _COMPLETED = exports . GET _NEW _ADDRESS _COMPLETED = 'GET_NEW_ADDRESS_COMPLETED' ;
var FETCH _TRANSACTIONS _STARTED = exports . FETCH _TRANSACTIONS _STARTED = 'FETCH_TRANSACTIONS_STARTED' ;
var FETCH _TRANSACTIONS _COMPLETED = exports . FETCH _TRANSACTIONS _COMPLETED = 'FETCH_TRANSACTIONS_COMPLETED' ;
var UPDATE _BALANCE = exports . UPDATE _BALANCE = 'UPDATE_BALANCE' ;
var CHECK _ADDRESS _IS _MINE _STARTED = exports . CHECK _ADDRESS _IS _MINE _STARTED = 'CHECK_ADDRESS_IS_MINE_STARTED' ;
var CHECK _ADDRESS _IS _MINE _COMPLETED = exports . CHECK _ADDRESS _IS _MINE _COMPLETED = 'CHECK_ADDRESS_IS_MINE_COMPLETED' ;
var SEND _TRANSACTION _STARTED = exports . SEND _TRANSACTION _STARTED = 'SEND_TRANSACTION_STARTED' ;
var SEND _TRANSACTION _COMPLETED = exports . SEND _TRANSACTION _COMPLETED = 'SEND_TRANSACTION_COMPLETED' ;
var SEND _TRANSACTION _FAILED = exports . SEND _TRANSACTION _FAILED = 'SEND_TRANSACTION_FAILED' ;
var FETCH _BLOCK _SUCCESS = exports . FETCH _BLOCK _SUCCESS = 'FETCH_BLOCK_SUCCESS' ;
var SUPPORT _TRANSACTION _STARTED = exports . SUPPORT _TRANSACTION _STARTED = 'SUPPORT_TRANSACTION_STARTED' ;
var SUPPORT _TRANSACTION _COMPLETED = exports . SUPPORT _TRANSACTION _COMPLETED = 'SUPPORT_TRANSACTION_COMPLETED' ;
var SUPPORT _TRANSACTION _FAILED = exports . SUPPORT _TRANSACTION _FAILED = 'SUPPORT_TRANSACTION_FAILED' ;
// Claims
var FETCH _FEATURED _CONTENT _STARTED = exports . FETCH _FEATURED _CONTENT _STARTED = 'FETCH_FEATURED_CONTENT_STARTED' ;
var FETCH _FEATURED _CONTENT _COMPLETED = exports . FETCH _FEATURED _CONTENT _COMPLETED = 'FETCH_FEATURED_CONTENT_COMPLETED' ;
var RESOLVE _URIS _STARTED = exports . RESOLVE _URIS _STARTED = 'RESOLVE_URIS_STARTED' ;
var RESOLVE _URIS _COMPLETED = exports . RESOLVE _URIS _COMPLETED = 'RESOLVE_URIS_COMPLETED' ;
var FETCH _CHANNEL _CLAIMS _STARTED = exports . FETCH _CHANNEL _CLAIMS _STARTED = 'FETCH_CHANNEL_CLAIMS_STARTED' ;
var FETCH _CHANNEL _CLAIMS _COMPLETED = exports . FETCH _CHANNEL _CLAIMS _COMPLETED = 'FETCH_CHANNEL_CLAIMS_COMPLETED' ;
var FETCH _CHANNEL _CLAIM _COUNT _STARTED = exports . FETCH _CHANNEL _CLAIM _COUNT _STARTED = 'FETCH_CHANNEL_CLAIM_COUNT_STARTED' ;
var FETCH _CHANNEL _CLAIM _COUNT _COMPLETED = exports . FETCH _CHANNEL _CLAIM _COUNT _COMPLETED = 'FETCH_CHANNEL_CLAIM_COUNT_COMPLETED' ;
var FETCH _CLAIM _LIST _MINE _STARTED = exports . FETCH _CLAIM _LIST _MINE _STARTED = 'FETCH_CLAIM_LIST_MINE_STARTED' ;
var FETCH _CLAIM _LIST _MINE _COMPLETED = exports . FETCH _CLAIM _LIST _MINE _COMPLETED = 'FETCH_CLAIM_LIST_MINE_COMPLETED' ;
var ABANDON _CLAIM _STARTED = exports . ABANDON _CLAIM _STARTED = 'ABANDON_CLAIM_STARTED' ;
var ABANDON _CLAIM _SUCCEEDED = exports . ABANDON _CLAIM _SUCCEEDED = 'ABANDON_CLAIM_SUCCEEDED' ;
var FETCH _CHANNEL _LIST _STARTED = exports . FETCH _CHANNEL _LIST _STARTED = 'FETCH_CHANNEL_LIST_STARTED' ;
var FETCH _CHANNEL _LIST _COMPLETED = exports . FETCH _CHANNEL _LIST _COMPLETED = 'FETCH_CHANNEL_LIST_COMPLETED' ;
var CREATE _CHANNEL _STARTED = exports . CREATE _CHANNEL _STARTED = 'CREATE_CHANNEL_STARTED' ;
var CREATE _CHANNEL _COMPLETED = exports . CREATE _CHANNEL _COMPLETED = 'CREATE_CHANNEL_COMPLETED' ;
var PUBLISH _STARTED = exports . PUBLISH _STARTED = 'PUBLISH_STARTED' ;
var PUBLISH _COMPLETED = exports . PUBLISH _COMPLETED = 'PUBLISH_COMPLETED' ;
var PUBLISH _FAILED = exports . PUBLISH _FAILED = 'PUBLISH_FAILED' ;
var SET _PLAYING _URI = exports . SET _PLAYING _URI = 'PLAY_URI' ;
var FETCH _BLACK _LISTED _CONTENT _STARTED = exports . FETCH _BLACK _LISTED _CONTENT _STARTED = 'FETCH_BLACK_LISTED_CONTENT_STARTED' ;
var FETCH _BLACK _LISTED _CONTENT _COMPLETED = exports . FETCH _BLACK _LISTED _CONTENT _COMPLETED = 'FETCH_BLACK_LISTED_CONTENT_COMPLETED' ;
var FETCH _BLACK _LISTED _CONTENT _FAILED = exports . FETCH _BLACK _LISTED _CONTENT _FAILED = 'FETCH_BLACK_LISTED_CONTENT_FAILED' ;
var BLACK _LISTED _CONTENT _SUBSCRIBE = exports . BLACK _LISTED _CONTENT _SUBSCRIBE = 'BLACK_LISTED_CONTENT_SUBSCRIBE' ;
// Files
var FILE _LIST _STARTED = exports . FILE _LIST _STARTED = 'FILE_LIST_STARTED' ;
var FILE _LIST _SUCCEEDED = exports . FILE _LIST _SUCCEEDED = 'FILE_LIST_SUCCEEDED' ;
var FETCH _FILE _INFO _STARTED = exports . FETCH _FILE _INFO _STARTED = 'FETCH_FILE_INFO_STARTED' ;
var FETCH _FILE _INFO _COMPLETED = exports . FETCH _FILE _INFO _COMPLETED = 'FETCH_FILE_INFO_COMPLETED' ;
var FETCH _COST _INFO _STARTED = exports . FETCH _COST _INFO _STARTED = 'FETCH_COST_INFO_STARTED' ;
var FETCH _COST _INFO _COMPLETED = exports . FETCH _COST _INFO _COMPLETED = 'FETCH_COST_INFO_COMPLETED' ;
var LOADING _VIDEO _STARTED = exports . LOADING _VIDEO _STARTED = 'LOADING_VIDEO_STARTED' ;
var LOADING _VIDEO _COMPLETED = exports . LOADING _VIDEO _COMPLETED = 'LOADING_VIDEO_COMPLETED' ;
var LOADING _VIDEO _FAILED = exports . LOADING _VIDEO _FAILED = 'LOADING_VIDEO_FAILED' ;
var DOWNLOADING _STARTED = exports . DOWNLOADING _STARTED = 'DOWNLOADING_STARTED' ;
var DOWNLOADING _PROGRESSED = exports . DOWNLOADING _PROGRESSED = 'DOWNLOADING_PROGRESSED' ;
var DOWNLOADING _COMPLETED = exports . DOWNLOADING _COMPLETED = 'DOWNLOADING_COMPLETED' ;
var DOWNLOADING _CANCELED = exports . DOWNLOADING _CANCELED = 'DOWNLOADING_CANCELED' ;
var PLAY _VIDEO _STARTED = exports . PLAY _VIDEO _STARTED = 'PLAY_VIDEO_STARTED' ;
var FETCH _AVAILABILITY _STARTED = exports . FETCH _AVAILABILITY _STARTED = 'FETCH_AVAILABILITY_STARTED' ;
var FETCH _AVAILABILITY _COMPLETED = exports . FETCH _AVAILABILITY _COMPLETED = 'FETCH_AVAILABILITY_COMPLETED' ;
var FILE _DELETE = exports . FILE _DELETE = 'FILE_DELETE' ;
// Search
var SEARCH _START = exports . SEARCH _START = 'SEARCH_START' ;
var SEARCH _SUCCESS = exports . SEARCH _SUCCESS = 'SEARCH_SUCCESS' ;
var SEARCH _FAIL = exports . SEARCH _FAIL = 'SEARCH_FAIL' ;
var UPDATE _SEARCH _QUERY = exports . UPDATE _SEARCH _QUERY = 'UPDATE_SEARCH_QUERY' ;
var UPDATE _SEARCH _SUGGESTIONS = exports . UPDATE _SEARCH _SUGGESTIONS = 'UPDATE_SEARCH_SUGGESTIONS' ;
var SEARCH _FOCUS = exports . SEARCH _FOCUS = 'SEARCH_FOCUS' ;
var SEARCH _BLUR = exports . SEARCH _BLUR = 'SEARCH_BLUR' ;
// Settings
var DAEMON _SETTINGS _RECEIVED = exports . DAEMON _SETTINGS _RECEIVED = 'DAEMON_SETTINGS_RECEIVED' ;
var CLIENT _SETTING _CHANGED = exports . CLIENT _SETTING _CHANGED = 'CLIENT_SETTING_CHANGED' ;
var UPDATE _IS _NIGHT = exports . UPDATE _IS _NIGHT = 'UPDATE_IS_NIGHT' ;
// User
var AUTHENTICATION _STARTED = exports . AUTHENTICATION _STARTED = 'AUTHENTICATION_STARTED' ;
var AUTHENTICATION _SUCCESS = exports . AUTHENTICATION _SUCCESS = 'AUTHENTICATION_SUCCESS' ;
var AUTHENTICATION _FAILURE = exports . AUTHENTICATION _FAILURE = 'AUTHENTICATION_FAILURE' ;
var USER _EMAIL _DECLINE = exports . USER _EMAIL _DECLINE = 'USER_EMAIL_DECLINE' ;
var USER _EMAIL _NEW _STARTED = exports . USER _EMAIL _NEW _STARTED = 'USER_EMAIL_NEW_STARTED' ;
var USER _EMAIL _NEW _SUCCESS = exports . USER _EMAIL _NEW _SUCCESS = 'USER_EMAIL_NEW_SUCCESS' ;
var USER _EMAIL _NEW _EXISTS = exports . USER _EMAIL _NEW _EXISTS = 'USER_EMAIL_NEW_EXISTS' ;
var USER _EMAIL _NEW _FAILURE = exports . USER _EMAIL _NEW _FAILURE = 'USER_EMAIL_NEW_FAILURE' ;
var USER _EMAIL _VERIFY _STARTED = exports . USER _EMAIL _VERIFY _STARTED = 'USER_EMAIL_VERIFY_STARTED' ;
var USER _EMAIL _VERIFY _SUCCESS = exports . USER _EMAIL _VERIFY _SUCCESS = 'USER_EMAIL_VERIFY_SUCCESS' ;
var USER _EMAIL _VERIFY _FAILURE = exports . USER _EMAIL _VERIFY _FAILURE = 'USER_EMAIL_VERIFY_FAILURE' ;
var USER _PHONE _RESET = exports . USER _PHONE _RESET = 'USER_PHONE_RESET' ;
var USER _PHONE _NEW _STARTED = exports . USER _PHONE _NEW _STARTED = 'USER_PHONE_NEW_STARTED' ;
var USER _PHONE _NEW _SUCCESS = exports . USER _PHONE _NEW _SUCCESS = 'USER_PHONE_NEW_SUCCESS' ;
var USER _PHONE _NEW _FAILURE = exports . USER _PHONE _NEW _FAILURE = 'USER_PHONE_NEW_FAILURE' ;
var USER _PHONE _VERIFY _STARTED = exports . USER _PHONE _VERIFY _STARTED = 'USER_PHONE_VERIFY_STARTED' ;
var USER _PHONE _VERIFY _SUCCESS = exports . USER _PHONE _VERIFY _SUCCESS = 'USER_PHONE_VERIFY_SUCCESS' ;
var USER _PHONE _VERIFY _FAILURE = exports . USER _PHONE _VERIFY _FAILURE = 'USER_PHONE_VERIFY_FAILURE' ;
var USER _IDENTITY _VERIFY _STARTED = exports . USER _IDENTITY _VERIFY _STARTED = 'USER_IDENTITY_VERIFY_STARTED' ;
var USER _IDENTITY _VERIFY _SUCCESS = exports . USER _IDENTITY _VERIFY _SUCCESS = 'USER_IDENTITY_VERIFY_SUCCESS' ;
var USER _IDENTITY _VERIFY _FAILURE = exports . USER _IDENTITY _VERIFY _FAILURE = 'USER_IDENTITY_VERIFY_FAILURE' ;
var USER _FETCH _STARTED = exports . USER _FETCH _STARTED = 'USER_FETCH_STARTED' ;
var USER _FETCH _SUCCESS = exports . USER _FETCH _SUCCESS = 'USER_FETCH_SUCCESS' ;
var USER _FETCH _FAILURE = exports . USER _FETCH _FAILURE = 'USER_FETCH_FAILURE' ;
var USER _INVITE _STATUS _FETCH _STARTED = exports . USER _INVITE _STATUS _FETCH _STARTED = 'USER_INVITE_STATUS_FETCH_STARTED' ;
var USER _INVITE _STATUS _FETCH _SUCCESS = exports . USER _INVITE _STATUS _FETCH _SUCCESS = 'USER_INVITE_STATUS_FETCH_SUCCESS' ;
var USER _INVITE _STATUS _FETCH _FAILURE = exports . USER _INVITE _STATUS _FETCH _FAILURE = 'USER_INVITE_STATUS_FETCH_FAILURE' ;
var USER _INVITE _NEW _STARTED = exports . USER _INVITE _NEW _STARTED = 'USER_INVITE_NEW_STARTED' ;
var USER _INVITE _NEW _SUCCESS = exports . USER _INVITE _NEW _SUCCESS = 'USER_INVITE_NEW_SUCCESS' ;
var USER _INVITE _NEW _FAILURE = exports . USER _INVITE _NEW _FAILURE = 'USER_INVITE_NEW_FAILURE' ;
var FETCH _ACCESS _TOKEN _SUCCESS = exports . FETCH _ACCESS _TOKEN _SUCCESS = 'FETCH_ACCESS_TOKEN_SUCCESS' ;
// Rewards
var FETCH _REWARDS _STARTED = exports . FETCH _REWARDS _STARTED = 'FETCH_REWARDS_STARTED' ;
var FETCH _REWARDS _COMPLETED = exports . FETCH _REWARDS _COMPLETED = 'FETCH_REWARDS_COMPLETED' ;
var CLAIM _REWARD _STARTED = exports . CLAIM _REWARD _STARTED = 'CLAIM_REWARD_STARTED' ;
var CLAIM _REWARD _SUCCESS = exports . CLAIM _REWARD _SUCCESS = 'CLAIM_REWARD_SUCCESS' ;
var CLAIM _REWARD _FAILURE = exports . CLAIM _REWARD _FAILURE = 'CLAIM_REWARD_FAILURE' ;
var CLAIM _REWARD _CLEAR _ERROR = exports . CLAIM _REWARD _CLEAR _ERROR = 'CLAIM_REWARD_CLEAR_ERROR' ;
var FETCH _REWARD _CONTENT _COMPLETED = exports . FETCH _REWARD _CONTENT _COMPLETED = 'FETCH_REWARD_CONTENT_COMPLETED' ;
// Language
var DOWNLOAD _LANGUAGE _SUCCEEDED = exports . DOWNLOAD _LANGUAGE _SUCCEEDED = 'DOWNLOAD_LANGUAGE_SUCCEEDED' ;
var DOWNLOAD _LANGUAGE _FAILED = exports . DOWNLOAD _LANGUAGE _FAILED = 'DOWNLOAD_LANGUAGE_FAILED' ;
// ShapeShift
var GET _SUPPORTED _COINS _START = exports . GET _SUPPORTED _COINS _START = 'GET_SUPPORTED_COINS_START' ;
var GET _SUPPORTED _COINS _SUCCESS = exports . GET _SUPPORTED _COINS _SUCCESS = 'GET_SUPPORTED_COINS_SUCCESS' ;
var GET _SUPPORTED _COINS _FAIL = exports . GET _SUPPORTED _COINS _FAIL = 'GET_SUPPORTED_COINS_FAIL' ;
var GET _COIN _STATS _START = exports . GET _COIN _STATS _START = 'GET_COIN_STATS_START' ;
var GET _COIN _STATS _SUCCESS = exports . GET _COIN _STATS _SUCCESS = 'GET_COIN_STATS_SUCCESS' ;
var GET _COIN _STATS _FAIL = exports . GET _COIN _STATS _FAIL = 'GET_COIN_STATS_FAIL' ;
var PREPARE _SHAPE _SHIFT _START = exports . PREPARE _SHAPE _SHIFT _START = 'PREPARE_SHAPE_SHIFT_START' ;
var PREPARE _SHAPE _SHIFT _SUCCESS = exports . PREPARE _SHAPE _SHIFT _SUCCESS = 'PREPARE_SHAPE_SHIFT_SUCCESS' ;
var PREPARE _SHAPE _SHIFT _FAIL = exports . PREPARE _SHAPE _SHIFT _FAIL = 'PREPARE_SHAPE_SHIFT_FAIL' ;
var GET _ACTIVE _SHIFT _START = exports . GET _ACTIVE _SHIFT _START = 'GET_ACTIVE_SHIFT_START' ;
var GET _ACTIVE _SHIFT _SUCCESS = exports . GET _ACTIVE _SHIFT _SUCCESS = 'GET_ACTIVE_SHIFT_SUCCESS' ;
var GET _ACTIVE _SHIFT _FAIL = exports . GET _ACTIVE _SHIFT _FAIL = 'GET_ACTIVE_SHIFT_FAIL' ;
var CLEAR _SHAPE _SHIFT = exports . CLEAR _SHAPE _SHIFT = 'CLEAR_SHAPE_SHIFT' ;
// Subscriptions
var CHANNEL _SUBSCRIBE = exports . CHANNEL _SUBSCRIBE = 'CHANNEL_SUBSCRIBE' ;
var CHANNEL _UNSUBSCRIBE = exports . CHANNEL _UNSUBSCRIBE = 'CHANNEL_UNSUBSCRIBE' ;
var HAS _FETCHED _SUBSCRIPTIONS = exports . HAS _FETCHED _SUBSCRIPTIONS = 'HAS_FETCHED_SUBSCRIPTIONS' ;
var SET _SUBSCRIPTION _LATEST = exports . SET _SUBSCRIPTION _LATEST = 'SET_SUBSCRIPTION_LATEST' ;
var SET _SUBSCRIPTION _NOTIFICATION = exports . SET _SUBSCRIPTION _NOTIFICATION = 'SET_SUBSCRIPTION_NOTIFICATION' ;
var SET _SUBSCRIPTION _NOTIFICATIONS = exports . SET _SUBSCRIPTION _NOTIFICATIONS = 'SET_SUBSCRIPTION_NOTIFICATIONS' ;
var CHECK _SUBSCRIPTION _STARTED = exports . CHECK _SUBSCRIPTION _STARTED = 'CHECK_SUBSCRIPTION_STARTED' ;
var CHECK _SUBSCRIPTION _COMPLETED = exports . CHECK _SUBSCRIPTION _COMPLETED = 'CHECK_SUBSCRIPTION_COMPLETED' ;
var CHECK _SUBSCRIPTIONS _SUBSCRIBE = exports . CHECK _SUBSCRIPTIONS _SUBSCRIBE = 'CHECK_SUBSCRIPTIONS_SUBSCRIBE' ;
// Video controls
var SET _VIDEO _PAUSE = exports . SET _VIDEO _PAUSE = 'SET_VIDEO_PAUSE' ;
// Media controls
var MEDIA _PLAY = exports . MEDIA _PLAY = 'MEDIA_PLAY' ;
var MEDIA _PAUSE = exports . MEDIA _PAUSE = 'MEDIA_PAUSE' ;
var MEDIA _POSITION = exports . MEDIA _POSITION = 'MEDIA_POSITION' ;
// Publishing
var CLEAR _PUBLISH = exports . CLEAR _PUBLISH = 'CLEAR_PUBLISH' ;
var UPDATE _PUBLISH _FORM = exports . UPDATE _PUBLISH _FORM = 'UPDATE_PUBLISH_FORM' ;
var PUBLISH _START = exports . PUBLISH _START = 'PUBLISH_START' ;
var PUBLISH _SUCCESS = exports . PUBLISH _SUCCESS = 'PUBLISH_SUCCESS' ;
var PUBLISH _FAIL = exports . PUBLISH _FAIL = 'PUBLISH_FAIL' ;
var CLEAR _PUBLISH _ERROR = exports . CLEAR _PUBLISH _ERROR = 'CLEAR_PUBLISH_ERROR' ;
var REMOVE _PENDING _PUBLISH = exports . REMOVE _PENDING _PUBLISH = 'REMOVE_PENDING_PUBLISH' ;
var DO _PREPARE _EDIT = exports . DO _PREPARE _EDIT = 'DO_PREPARE_EDIT' ;
// Notifications
var CREATE _NOTIFICATION = exports . CREATE _NOTIFICATION = 'CREATE_NOTIFICATION' ;
var DISMISS _NOTIFICATION = exports . DISMISS _NOTIFICATION = 'DISMISS_NOTIFICATION' ;
/***/ } ) ,
/* 5 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var _slicedToArray = function ( ) { function sliceIterator ( arr , i ) { var _arr = [ ] ; var _n = true ; var _d = false ; var _e = undefined ; try { for ( var _i = arr [ Symbol . iterator ] ( ) , _s ; ! ( _n = ( _s = _i . next ( ) ) . done ) ; _n = true ) { _arr . push ( _s . value ) ; if ( i && _arr . length === i ) break ; } } catch ( err ) { _d = true ; _e = err ; } finally { try { if ( ! _n && _i [ "return" ] ) _i [ "return" ] ( ) ; } finally { if ( _d ) throw _e ; } } return _arr ; } return function ( arr , i ) { if ( Array . isArray ( arr ) ) { return arr ; } else if ( Symbol . iterator in Object ( arr ) ) { return sliceIterator ( arr , i ) ; } else { throw new TypeError ( "Invalid attempt to destructure non-iterable instance" ) ; } } ; } ( ) ;
exports . doResolveUris = doResolveUris ;
exports . doResolveUri = doResolveUri ;
exports . doFetchClaimListMine = doFetchClaimListMine ;
exports . doAbandonClaim = doAbandonClaim ;
exports . doFetchFeaturedUris = doFetchFeaturedUris ;
exports . doFetchRewardedContent = doFetchRewardedContent ;
var _action _types = _ _webpack _require _ _ ( 4 ) ;
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
var _lbry = _ _webpack _require _ _ ( 6 ) ;
var _lbry2 = _interopRequireDefault ( _lbry ) ;
var _lbryapi = _ _webpack _require _ _ ( 9 ) ;
var _lbryapi2 = _interopRequireDefault ( _lbryapi ) ;
var _lbryURI = _ _webpack _require _ _ ( 2 ) ;
var _notifications = _ _webpack _require _ _ ( 3 ) ;
var _claims = _ _webpack _require _ _ ( 14 ) ;
var _batchActions = _ _webpack _require _ _ ( 18 ) ;
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { default : obj } ; }
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
function _toConsumableArray ( arr ) { if ( Array . isArray ( arr ) ) { for ( var i = 0 , arr2 = Array ( arr . length ) ; i < arr . length ; i ++ ) { arr2 [ i ] = arr [ i ] ; } return arr2 ; } else { return Array . from ( arr ) ; } }
function doResolveUris ( uris ) {
return function ( dispatch , getState ) {
var normalizedUris = uris . map ( _lbryURI . normalizeURI ) ;
var state = getState ( ) ;
// Filter out URIs that are already resolving
var resolvingUris = ( 0 , _claims . selectResolvingUris ) ( state ) ;
var urisToResolve = normalizedUris . filter ( function ( uri ) {
return ! resolvingUris . includes ( uri ) ;
} ) ;
if ( urisToResolve . length === 0 ) {
return ;
}
dispatch ( {
type : ACTIONS . RESOLVE _URIS _STARTED ,
data : { uris : normalizedUris }
} ) ;
var resolveInfo = { } ;
_lbry2 . default . resolve ( { uris : urisToResolve } ) . then ( function ( result ) {
Object . entries ( result ) . forEach ( function ( _ref ) {
var _ref2 = _slicedToArray ( _ref , 2 ) ,
uri = _ref2 [ 0 ] ,
uriResolveInfo = _ref2 [ 1 ] ;
var fallbackResolveInfo = {
claim : null ,
claimsInChannel : null ,
certificate : null
} ;
var _ref3 = uriResolveInfo && ! uriResolveInfo . error ? uriResolveInfo : fallbackResolveInfo ,
claim = _ref3 . claim ,
certificate = _ref3 . certificate ,
claimsInChannel = _ref3 . claims _in _channel ;
resolveInfo [ uri ] = { claim : claim , certificate : certificate , claimsInChannel : claimsInChannel } ;
} ) ;
dispatch ( {
type : ACTIONS . RESOLVE _URIS _COMPLETED ,
data : { resolveInfo : resolveInfo }
} ) ;
} ) ;
} ;
}
function doResolveUri ( uri ) {
return doResolveUris ( [ uri ] ) ;
}
function doFetchClaimListMine ( ) {
return function ( dispatch ) {
dispatch ( {
type : ACTIONS . FETCH _CLAIM _LIST _MINE _STARTED
} ) ;
_lbry2 . default . claim _list _mine ( ) . then ( function ( claims ) {
dispatch ( {
type : ACTIONS . FETCH _CLAIM _LIST _MINE _COMPLETED ,
data : {
claims : claims
}
} ) ;
} ) ;
} ;
}
function doAbandonClaim ( txid , nout ) {
return function ( dispatch , getState ) {
var state = getState ( ) ;
var myClaims = ( 0 , _claims . selectMyClaimsRaw ) ( state ) ;
var _myClaims$find = myClaims . find ( function ( claim ) {
return claim . txid === txid && claim . nout === nout ;
} ) ,
claimId = _myClaims$find . claim _id ,
name = _myClaims$find . name ;
dispatch ( {
type : ACTIONS . ABANDON _CLAIM _STARTED ,
data : {
claimId : claimId
}
} ) ;
var errorCallback = function errorCallback ( ) {
dispatch ( ( 0 , _notifications . doNotify ) ( {
title : 'Transaction failed' ,
message : 'Transaction failed' ,
type : 'error' ,
displayType : [ 'modal' , 'toast' ]
} ) ) ;
} ;
var successCallback = function successCallback ( results ) {
if ( results . txid ) {
dispatch ( {
type : ACTIONS . ABANDON _CLAIM _SUCCEEDED ,
data : {
claimId : claimId
}
} ) ;
dispatch ( doResolveUri ( ( 0 , _lbryURI . buildURI ) ( { name : name , claimId : claimId } ) ) ) ;
dispatch ( doFetchClaimListMine ( ) ) ;
} else {
dispatch ( ( 0 , _notifications . doNotify ) ( {
title : 'Transaction failed' ,
message : 'Transaction failed' ,
type : 'error' ,
displayType : [ 'modal' , 'toast' ]
} ) ) ;
}
} ;
_lbry2 . default . claim _abandon ( {
txid : txid ,
nout : nout
} ) . then ( successCallback , errorCallback ) ;
} ;
}
function doFetchFeaturedUris ( ) {
return function ( dispatch ) {
dispatch ( {
type : ACTIONS . FETCH _FEATURED _CONTENT _STARTED
} ) ;
var success = function success ( _ref4 ) {
var Uris = _ref4 . Uris ;
var urisToResolve = [ ] ;
Object . keys ( Uris ) . forEach ( function ( category ) {
urisToResolve = [ ] . concat ( _toConsumableArray ( urisToResolve ) , _toConsumableArray ( Uris [ category ] ) ) ;
} ) ;
var actions = [ doResolveUris ( urisToResolve ) , {
type : ACTIONS . FETCH _FEATURED _CONTENT _COMPLETED ,
data : {
uris : Uris ,
success : true
}
} ] ;
dispatch ( _batchActions . batchActions . apply ( undefined , actions ) ) ;
} ;
var failure = function failure ( ) {
dispatch ( {
type : ACTIONS . FETCH _FEATURED _CONTENT _COMPLETED ,
data : {
uris : { }
}
} ) ;
} ;
_lbryapi2 . default . call ( 'file' , 'list_homepage' ) . then ( success , failure ) ;
} ;
}
function doFetchRewardedContent ( ) {
return function ( dispatch ) {
var success = function success ( nameToClaimId ) {
dispatch ( {
type : ACTIONS . FETCH _REWARD _CONTENT _COMPLETED ,
data : {
claimIds : Object . values ( nameToClaimId ) ,
success : true
}
} ) ;
} ;
var failure = function failure ( ) {
dispatch ( {
type : ACTIONS . FETCH _REWARD _CONTENT _COMPLETED ,
data : {
claimIds : [ ] ,
success : false
}
} ) ;
} ;
_lbryapi2 . default . call ( 'reward' , 'list_featured' ) . then ( success , failure ) ;
} ;
}
/***/ } ) ,
/* 6 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
_ _webpack _require _ _ ( 7 ) ;
var CHECK _DAEMON _STARTED _TRY _NUMBER = 200 ; // @flow
var Lbry = {
isConnected : false ,
daemonConnectionString : 'http://localhost:5279' ,
pendingPublishTimeout : 20 * 60 * 1000
} ;
function checkAndParse ( response ) {
if ( response . status >= 200 && response . status < 300 ) {
return response . json ( ) ;
}
return response . json ( ) . then ( function ( json ) {
var error = void 0 ;
if ( json . error ) {
error = new Error ( json . error ) ;
} else {
error = new Error ( 'Protocol error with unknown response signature' ) ;
}
return Promise . reject ( error ) ;
} ) ;
}
function apiCall ( method /*: string*/ , params /*: ?{}*/ , resolve /*: Function*/ , reject /*: Function*/ ) {
var counter = new Date ( ) . getTime ( ) ;
var options = {
method : 'POST' ,
body : JSON . stringify ( {
jsonrpc : '2.0' ,
method : method ,
params : params ,
id : counter
} )
} ;
return fetch ( Lbry . daemonConnectionString , options ) . then ( checkAndParse ) . then ( function ( response ) {
var error = response . error || response . result && response . result . error ;
if ( error ) {
return reject ( error ) ;
}
return resolve ( response . result ) ;
} ) . catch ( reject ) ;
}
var daemonCallWithResult = function daemonCallWithResult ( name ) {
var params = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : { } ;
return new Promise ( function ( resolve , reject ) {
apiCall ( name , params , function ( result ) {
resolve ( result ) ;
} , reject ) ;
} ) ;
} ;
// core
Lbry . status = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'status' , params ) ;
} ;
Lbry . version = function ( ) {
return daemonCallWithResult ( 'version' , { } ) ;
} ;
Lbry . file _delete = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'file_delete' , params ) ;
} ;
Lbry . file _set _status = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'file_set_status' , params ) ;
} ;
// wallet
Lbry . wallet _balance = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'wallet_balance' , params ) ;
} ;
Lbry . wallet _is _address _mine = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'wallet_is_address_mine' , params ) ;
} ;
Lbry . wallet _new _address = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'wallet_new_address' , params ) ;
} ;
Lbry . wallet _send = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'wallet_send' , params ) ;
} ;
Lbry . wallet _encrypt = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'wallet_encrypt' , params ) ;
} ;
Lbry . wallet _decrypt = function ( ) {
return daemonCallWithResult ( 'wallet_decrypt' , { } ) ;
} ;
Lbry . wallet _unlock = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'wallet_unlock' , params ) ;
} ;
// transactions
Lbry . transaction _list = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'transaction_list' , params ) ;
} ;
Lbry . connectPromise = null ;
Lbry . connect = function ( ) {
if ( Lbry . connectPromise === null ) {
Lbry . connectPromise = new Promise ( function ( resolve , reject ) {
var tryNum = 0 ;
// Check every half second to see if the daemon is accepting connections
function checkDaemonStarted ( ) {
tryNum += 1 ;
Lbry . status ( ) . then ( resolve ) . catch ( function ( ) {
if ( tryNum <= CHECK _DAEMON _STARTED _TRY _NUMBER ) {
setTimeout ( checkDaemonStarted , tryNum < 50 ? 400 : 1000 ) ;
} else {
reject ( new Error ( 'Unable to connect to LBRY' ) ) ;
}
} ) ;
}
checkDaemonStarted ( ) ;
} ) ;
}
return Lbry . connectPromise ;
} ;
Lbry . getMediaType = function ( contentType , fileName ) {
if ( contentType ) {
return ( /^[^/]+/ . exec ( contentType ) [ 0 ]
) ;
} else if ( fileName ) {
var formats = [ [ /^.+\.(mp4|m4v|webm|flv|f4v|ogv)$/i , 'video' ] , [ /^.+\.(mp3|m4a|aac|wav|flac|ogg|opus)$/i , 'audio' ] , [ /^.+\.(html|htm|xml|pdf|odf|doc|docx|md|markdown|txt|epub|org)$/i , 'document' ] ] ;
var res = formats . reduce ( function ( ret , testpair ) {
switch ( testpair [ 0 ] . test ( ret ) ) {
case true :
return testpair [ 1 ] ;
default :
return ret ;
}
} , fileName ) ;
return res === fileName ? 'unknown' : res ;
}
return 'unknown' ;
} ;
/ * *
* Wrappers for API methods to simulate missing or future behavior . Unlike the old - style stubs ,
* these are designed to be transparent wrappers around the corresponding API methods .
* /
/ * *
* Returns results from the file _list API method , plus dummy entries for pending publishes .
* ( If a real publish with the same name is found , the pending publish will be ignored and removed . )
* /
Lbry . file _list = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return new Promise ( function ( resolve , reject ) {
apiCall ( 'file_list' , params , function ( fileInfos ) {
resolve ( fileInfos ) ;
} , reject ) ;
} ) ;
} ;
Lbry . claim _list _mine = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return new Promise ( function ( resolve , reject ) {
apiCall ( 'claim_list_mine' , params , function ( claims ) {
resolve ( claims ) ;
} , reject ) ;
} ) ;
} ;
Lbry . get = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return new Promise ( function ( resolve , reject ) {
apiCall ( 'get' , params , function ( streamInfo ) {
resolve ( streamInfo ) ;
} , reject ) ;
} ) ;
} ;
Lbry . resolve = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return new Promise ( function ( resolve , reject ) {
apiCall ( 'resolve' , params , function ( data ) {
if ( 'uri' in params ) {
// If only a single URI was requested, don't nest the results in an object
resolve ( data && data [ params . uri ] ? data [ params . uri ] : { } ) ;
} else {
resolve ( data || { } ) ;
}
} , reject ) ;
} ) ;
} ;
var lbryProxy = new Proxy ( Lbry , {
get : function get ( target , name ) {
if ( name in target ) {
return target [ name ] ;
}
return function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return new Promise ( function ( resolve , reject ) {
apiCall ( name , params , resolve , reject ) ;
} ) ;
} ;
}
} ) ;
exports . default = lbryProxy ;
/***/ } ) ,
/* 7 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
/* WEBPACK VAR INJECTION */ ( function ( global ) { / *
* Copyright 2016 Google Inc . All rights reserved .
*
* Licensed under the Apache License , Version 2.0 ( the "License" ) ; you may not
* use this file except in compliance with the License . You may obtain a copy of
* the License at
*
* http : //www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing , software
* distributed under the License is distributed on an "AS IS" BASIS , WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied . See the
* License for the specific language governing permissions and limitations under
* the License .
* /
( function ( scope ) {
if ( scope [ 'Proxy' ] ) {
return ;
}
let lastRevokeFn = null ;
/ * *
* @ param { * } o
* @ return { boolean } whether this is probably a ( non - null ) Object
* /
function isObject ( o ) {
return o ? ( typeof o == 'object' || typeof o == 'function' ) : false ;
}
/ * *
* @ constructor
* @ param { ! Object } target
* @ param { { apply , construct , get , set } } handler
* /
scope . Proxy = function ( target , handler ) {
if ( ! isObject ( target ) || ! isObject ( handler ) ) {
throw new TypeError ( 'Cannot create proxy with a non-object as target or handler' ) ;
}
// Construct revoke function, and set lastRevokeFn so that Proxy.revocable can steal it.
// The caller might get the wrong revoke function if a user replaces or wraps scope.Proxy
// to call itself, but that seems unlikely especially when using the polyfill.
let throwRevoked = function ( ) { } ;
lastRevokeFn = function ( ) {
throwRevoked = function ( trap ) {
throw new TypeError ( ` Cannot perform ' ${ trap } ' on a proxy that has been revoked ` ) ;
} ;
} ;
// Fail on unsupported traps: Chrome doesn't do this, but ensure that users of the polyfill
// are a bit more careful. Copy the internal parts of handler to prevent user changes.
let unsafeHandler = handler ;
handler = { 'get' : null , 'set' : null , 'apply' : null , 'construct' : null } ;
for ( let k in unsafeHandler ) {
if ( ! ( k in handler ) ) {
throw new TypeError ( ` Proxy polyfill does not support trap ' ${ k } ' ` ) ;
}
handler [ k ] = unsafeHandler [ k ] ;
}
if ( typeof unsafeHandler == 'function' ) {
// Allow handler to be a function (which has an 'apply' method). This matches what is
// probably a bug in native versions. It treats the apply call as a trap to be configured.
handler . apply = unsafeHandler . apply . bind ( unsafeHandler ) ;
}
// Define proxy as this, or a Function (if either it's callable, or apply is set).
// TODO(samthor): Closure compiler doesn't know about 'construct', attempts to rename it.
let proxy = this ;
let isMethod = false ;
let targetIsFunction = typeof target == 'function' ;
if ( handler . apply || handler [ 'construct' ] || targetIsFunction ) {
proxy = function Proxy ( ) {
let usingNew = ( this && this . constructor === proxy ) ;
throwRevoked ( usingNew ? 'construct' : 'apply' ) ;
if ( usingNew && handler [ 'construct' ] ) {
return handler [ 'construct' ] . call ( this , target , arguments ) ;
} else if ( ! usingNew && handler . apply ) {
return handler . apply ( target , this , arguments ) ;
} else if ( targetIsFunction ) {
// since the target was a function, fallback to calling it directly.
if ( usingNew ) {
// inspired by answers to https://stackoverflow.com/q/1606797
let all = Array . prototype . slice . call ( arguments ) ;
all . unshift ( target ) ; // pass class as first arg to constructor, although irrelevant
// nb. cast to convince Closure compiler that this is a constructor
let f = /** @type {!Function} */ ( target . bind . apply ( target , all ) ) ;
return new f ( ) ;
}
return target . apply ( this , arguments ) ;
}
throw new TypeError ( usingNew ? 'not a constructor' : 'not a function' ) ;
} ;
isMethod = true ;
}
// Create default getters/setters. Create different code paths as handler.get/handler.set can't
// change after creation.
let getter = handler . get ? function ( prop ) {
throwRevoked ( 'get' ) ;
return handler . get ( this , prop , proxy ) ;
} : function ( prop ) {
throwRevoked ( 'get' ) ;
return this [ prop ] ;
} ;
let setter = handler . set ? function ( prop , value ) {
throwRevoked ( 'set' ) ;
let status = handler . set ( this , prop , value , proxy ) ;
if ( ! status ) {
// TODO(samthor): If the calling code is in strict mode, throw TypeError.
// It's (sometimes) possible to work this out, if this code isn't strict- try to load the
// callee, and if it's available, that code is non-strict. However, this isn't exhaustive.
}
} : function ( prop , value ) {
throwRevoked ( 'set' ) ;
this [ prop ] = value ;
} ;
// Clone direct properties (i.e., not part of a prototype).
let propertyNames = Object . getOwnPropertyNames ( target ) ;
let propertyMap = { } ;
propertyNames . forEach ( function ( prop ) {
if ( isMethod && prop in proxy ) {
return ; // ignore properties already here, e.g. 'bind', 'prototype' etc
}
let real = Object . getOwnPropertyDescriptor ( target , prop ) ;
let desc = {
enumerable : ! ! real . enumerable ,
get : getter . bind ( target , prop ) ,
set : setter . bind ( target , prop ) ,
} ;
Object . defineProperty ( proxy , prop , desc ) ;
propertyMap [ prop ] = true ;
} ) ;
// Set the prototype, or clone all prototype methods (always required if a getter is provided).
// TODO(samthor): We don't allow prototype methods to be set. It's (even more) awkward.
// An alternative here would be to _just_ clone methods to keep behavior consistent.
let prototypeOk = true ;
if ( Object . setPrototypeOf ) {
Object . setPrototypeOf ( proxy , Object . getPrototypeOf ( target ) ) ;
} else if ( proxy . _ _proto _ _ ) {
proxy . _ _proto _ _ = target . _ _proto _ _ ;
} else {
prototypeOk = false ;
}
if ( handler . get || ! prototypeOk ) {
for ( let k in target ) {
if ( propertyMap [ k ] ) {
continue ;
}
Object . defineProperty ( proxy , k , { get : getter . bind ( target , k ) } ) ;
}
}
// The Proxy polyfill cannot handle adding new properties. Seal the target and proxy.
Object . seal ( target ) ;
Object . seal ( proxy ) ;
return proxy ; // nb. if isMethod is true, proxy != this
} ;
scope . Proxy . revocable = function ( target , handler ) {
let p = new scope . Proxy ( target , handler ) ;
return { 'proxy' : p , 'revoke' : lastRevokeFn } ;
} ;
scope . Proxy [ 'revocable' ] = scope . Proxy . revocable ;
scope [ 'Proxy' ] = scope . Proxy ;
} ) ( typeof module !== 'undefined' && module [ 'exports' ] ? global : window ) ;
/* WEBPACK VAR INJECTION */ } . call ( this , _ _webpack _require _ _ ( 8 ) ) )
/***/ } ) ,
/* 8 */
/***/ ( function ( module , exports ) {
var g ;
// This works in non-strict mode
g = ( function ( ) {
return this ;
} ) ( ) ;
try {
// This works if eval is allowed (see CSP)
g = g || Function ( "return this" ) ( ) || ( 1 , eval ) ( "this" ) ;
} catch ( e ) {
// This works if the window reference is available
if ( typeof window === "object" ) g = window ;
}
// g can still be undefined, but nothing to do about it...
// We return undefined, instead of nothing here, so it's
// easier to handle this case. if(!global) { ...}
module . exports = g ;
/***/ } ) ,
/* 9 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
/* WEBPACK VAR INJECTION */ ( function ( process ) {
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var _extends = Object . assign || function ( target ) { for ( var i = 1 ; i < arguments . length ; i ++ ) { var source = arguments [ i ] ; for ( var key in source ) { if ( Object . prototype . hasOwnProperty . call ( source , key ) ) { target [ key ] = source [ key ] ; } } } return target ; } ;
var _querystring = _ _webpack _require _ _ ( 11 ) ;
var _querystring2 = _interopRequireDefault ( _querystring ) ;
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { default : obj } ; }
var Lbryapi = {
enabled : true ,
exchangePromise : null ,
exchangeLastFetched : null
} ;
var CONNECTION _STRING = process . env . LBRY _APP _API _URL ? process . env . LBRY _APP _API _URL . replace ( /\/*$/ , '/' ) // exactly one slash at the end
: 'https://api.lbry.io/' ;
var EXCHANGE _RATE _TIMEOUT = 20 * 60 * 1000 ;
Lbryapi . getExchangeRates = function ( ) {
if ( ! Lbryapi . exchangeLastFetched || Date . now ( ) - Lbryapi . exchangeLastFetched > EXCHANGE _RATE _TIMEOUT ) {
Lbryapi . exchangePromise = new Promise ( function ( resolve , reject ) {
Lbryapi . call ( 'lbc' , 'exchange_rate' , { } , 'get' , true ) . then ( function ( _ref ) {
var LBC _USD = _ref . lbc _usd ,
LBC _BTC = _ref . lbc _btc ,
BTC _USD = _ref . btc _usd ;
var rates = { LBC _USD : LBC _USD , LBC _BTC : LBC _BTC , BTC _USD : BTC _USD } ;
resolve ( rates ) ;
} ) . catch ( reject ) ;
} ) ;
Lbryapi . exchangeLastFetched = Date . now ( ) ;
}
return Lbryapi . exchangePromise ;
} ;
Lbryapi . call = function ( resource , action ) {
var params = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : { } ;
var method = arguments . length > 3 && arguments [ 3 ] !== undefined ? arguments [ 3 ] : 'get' ;
if ( ! Lbryapi . enabled ) {
return Promise . reject ( new Error ( _ _ ( 'LBRY internal API is disabled' ) ) ) ;
}
if ( ! ( method === 'get' || method === 'post' ) ) {
return Promise . reject ( new Error ( _ _ ( 'Invalid method' ) ) ) ;
}
function checkAndParse ( response ) {
if ( response . status >= 200 && response . status < 300 ) {
return response . json ( ) ;
}
return response . json ( ) . then ( function ( json ) {
var error = void 0 ;
if ( json . error ) {
error = new Error ( json . error ) ;
} else {
error = new Error ( 'Unknown API error signature' ) ;
}
error . response = response ; // This is primarily a hack used in actions/user.js
return Promise . reject ( error ) ;
} ) ;
}
function makeRequest ( url , options ) {
return fetch ( url , options ) . then ( checkAndParse ) ;
}
var fullParams = _extends ( { } , params ) ;
var qs = _querystring2 . default . stringify ( fullParams ) ;
var url = '' + CONNECTION _STRING + resource + '/' + action + '?' + qs ;
var options = {
method : 'GET'
} ;
if ( method === 'post' ) {
options = {
method : 'POST' ,
headers : {
'Content-Type' : 'application/x-www-form-urlencoded'
} ,
body : qs
} ;
url = '' + CONNECTION _STRING + resource + '/' + action ;
}
return makeRequest ( url , options ) . then ( function ( response ) {
return response . data ;
} ) ;
} ;
exports . default = Lbryapi ;
/* WEBPACK VAR INJECTION */ } . call ( this , _ _webpack _require _ _ ( 10 ) ) )
/***/ } ) ,
/* 10 */
/***/ ( function ( module , exports ) {
// shim for using process in browser
var process = module . exports = { } ;
// cached from whatever global is present so that test runners that stub it
// don't break things. But we need to wrap it in a try catch in case it is
// wrapped in strict mode code which doesn't define any globals. It's inside a
// function because try/catches deoptimize in certain engines.
var cachedSetTimeout ;
var cachedClearTimeout ;
function defaultSetTimout ( ) {
throw new Error ( 'setTimeout has not been defined' ) ;
}
function defaultClearTimeout ( ) {
throw new Error ( 'clearTimeout has not been defined' ) ;
}
( function ( ) {
try {
if ( typeof setTimeout === 'function' ) {
cachedSetTimeout = setTimeout ;
} else {
cachedSetTimeout = defaultSetTimout ;
}
} catch ( e ) {
cachedSetTimeout = defaultSetTimout ;
}
try {
if ( typeof clearTimeout === 'function' ) {
cachedClearTimeout = clearTimeout ;
} else {
cachedClearTimeout = defaultClearTimeout ;
}
} catch ( e ) {
cachedClearTimeout = defaultClearTimeout ;
}
} ( ) )
function runTimeout ( fun ) {
if ( cachedSetTimeout === setTimeout ) {
//normal enviroments in sane situations
return setTimeout ( fun , 0 ) ;
}
// if setTimeout wasn't available but was latter defined
if ( ( cachedSetTimeout === defaultSetTimout || ! cachedSetTimeout ) && setTimeout ) {
cachedSetTimeout = setTimeout ;
return setTimeout ( fun , 0 ) ;
}
try {
// when when somebody has screwed with setTimeout but no I.E. maddness
return cachedSetTimeout ( fun , 0 ) ;
} catch ( e ) {
try {
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
return cachedSetTimeout . call ( null , fun , 0 ) ;
} catch ( e ) {
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
return cachedSetTimeout . call ( this , fun , 0 ) ;
}
}
}
function runClearTimeout ( marker ) {
if ( cachedClearTimeout === clearTimeout ) {
//normal enviroments in sane situations
return clearTimeout ( marker ) ;
}
// if clearTimeout wasn't available but was latter defined
if ( ( cachedClearTimeout === defaultClearTimeout || ! cachedClearTimeout ) && clearTimeout ) {
cachedClearTimeout = clearTimeout ;
return clearTimeout ( marker ) ;
}
try {
// when when somebody has screwed with setTimeout but no I.E. maddness
return cachedClearTimeout ( marker ) ;
} catch ( e ) {
try {
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
return cachedClearTimeout . call ( null , marker ) ;
} catch ( e ) {
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
// Some versions of I.E. have different rules for clearTimeout vs setTimeout
return cachedClearTimeout . call ( this , marker ) ;
}
}
}
var queue = [ ] ;
var draining = false ;
var currentQueue ;
var queueIndex = - 1 ;
function cleanUpNextTick ( ) {
if ( ! draining || ! currentQueue ) {
return ;
}
draining = false ;
if ( currentQueue . length ) {
queue = currentQueue . concat ( queue ) ;
} else {
queueIndex = - 1 ;
}
if ( queue . length ) {
drainQueue ( ) ;
}
}
function drainQueue ( ) {
if ( draining ) {
return ;
}
var timeout = runTimeout ( cleanUpNextTick ) ;
draining = true ;
var len = queue . length ;
while ( len ) {
currentQueue = queue ;
queue = [ ] ;
while ( ++ queueIndex < len ) {
if ( currentQueue ) {
currentQueue [ queueIndex ] . run ( ) ;
}
}
queueIndex = - 1 ;
len = queue . length ;
}
currentQueue = null ;
draining = false ;
runClearTimeout ( timeout ) ;
}
process . nextTick = function ( fun ) {
var args = new Array ( arguments . length - 1 ) ;
if ( arguments . length > 1 ) {
for ( var i = 1 ; i < arguments . length ; i ++ ) {
args [ i - 1 ] = arguments [ i ] ;
}
}
queue . push ( new Item ( fun , args ) ) ;
if ( queue . length === 1 && ! draining ) {
runTimeout ( drainQueue ) ;
}
} ;
// v8 likes predictible objects
function Item ( fun , array ) {
this . fun = fun ;
this . array = array ;
}
Item . prototype . run = function ( ) {
this . fun . apply ( null , this . array ) ;
} ;
process . title = 'browser' ;
process . browser = true ;
process . env = { } ;
process . argv = [ ] ;
process . version = '' ; // empty string to avoid regexp issues
process . versions = { } ;
function noop ( ) { }
process . on = noop ;
process . addListener = noop ;
process . once = noop ;
process . off = noop ;
process . removeListener = noop ;
process . removeAllListeners = noop ;
process . emit = noop ;
process . prependListener = noop ;
process . prependOnceListener = noop ;
process . listeners = function ( name ) { return [ ] }
process . binding = function ( name ) {
throw new Error ( 'process.binding is not supported' ) ;
} ;
process . cwd = function ( ) { return '/' } ;
process . chdir = function ( dir ) {
throw new Error ( 'process.chdir is not supported' ) ;
} ;
process . umask = function ( ) { return 0 ; } ;
/***/ } ) ,
/* 11 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
exports . decode = exports . parse = _ _webpack _require _ _ ( 12 ) ;
exports . encode = exports . stringify = _ _webpack _require _ _ ( 13 ) ;
/***/ } ) ,
/* 12 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// If obj.hasOwnProperty has been overridden, then calling
// obj.hasOwnProperty(prop) will break.
// See: https://github.com/joyent/node/issues/1707
function hasOwnProperty ( obj , prop ) {
return Object . prototype . hasOwnProperty . call ( obj , prop ) ;
}
module . exports = function ( qs , sep , eq , options ) {
sep = sep || '&' ;
eq = eq || '=' ;
var obj = { } ;
if ( typeof qs !== 'string' || qs . length === 0 ) {
return obj ;
}
var regexp = /\+/g ;
qs = qs . split ( sep ) ;
var maxKeys = 1000 ;
if ( options && typeof options . maxKeys === 'number' ) {
maxKeys = options . maxKeys ;
}
var len = qs . length ;
// maxKeys <= 0 means that we should not limit keys count
if ( maxKeys > 0 && len > maxKeys ) {
len = maxKeys ;
}
for ( var i = 0 ; i < len ; ++ i ) {
var x = qs [ i ] . replace ( regexp , '%20' ) ,
idx = x . indexOf ( eq ) ,
kstr , vstr , k , v ;
if ( idx >= 0 ) {
kstr = x . substr ( 0 , idx ) ;
vstr = x . substr ( idx + 1 ) ;
} else {
kstr = x ;
vstr = '' ;
}
k = decodeURIComponent ( kstr ) ;
v = decodeURIComponent ( vstr ) ;
if ( ! hasOwnProperty ( obj , k ) ) {
obj [ k ] = v ;
} else if ( isArray ( obj [ k ] ) ) {
obj [ k ] . push ( v ) ;
} else {
obj [ k ] = [ obj [ k ] , v ] ;
}
}
return obj ;
} ;
var isArray = Array . isArray || function ( xs ) {
return Object . prototype . toString . call ( xs ) === '[object Array]' ;
} ;
/***/ } ) ,
/* 13 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
var stringifyPrimitive = function ( v ) {
switch ( typeof v ) {
case 'string' :
return v ;
case 'boolean' :
return v ? 'true' : 'false' ;
case 'number' :
return isFinite ( v ) ? v : '' ;
default :
return '' ;
}
} ;
module . exports = function ( obj , sep , eq , name ) {
sep = sep || '&' ;
eq = eq || '=' ;
if ( obj === null ) {
obj = undefined ;
}
if ( typeof obj === 'object' ) {
return map ( objectKeys ( obj ) , function ( k ) {
var ks = encodeURIComponent ( stringifyPrimitive ( k ) ) + eq ;
if ( isArray ( obj [ k ] ) ) {
return map ( obj [ k ] , function ( v ) {
return ks + encodeURIComponent ( stringifyPrimitive ( v ) ) ;
} ) . join ( sep ) ;
} else {
return ks + encodeURIComponent ( stringifyPrimitive ( obj [ k ] ) ) ;
}
} ) . join ( sep ) ;
}
if ( ! name ) return '' ;
return encodeURIComponent ( stringifyPrimitive ( name ) ) + eq +
encodeURIComponent ( stringifyPrimitive ( obj ) ) ;
} ;
var isArray = Array . isArray || function ( xs ) {
return Object . prototype . toString . call ( xs ) === '[object Array]' ;
} ;
function map ( xs , f ) {
if ( xs . map ) return xs . map ( f ) ;
var res = [ ] ;
for ( var i = 0 ; i < xs . length ; i ++ ) {
res . push ( f ( xs [ i ] , i ) ) ;
}
return res ;
}
var objectKeys = Object . keys || function ( obj ) {
var res = [ ] ;
for ( var key in obj ) {
if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) res . push ( key ) ;
}
return res ;
} ;
/***/ } ) ,
/* 14 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . selectRewardContentClaimIds = exports . makeSelectTotalPagesForChannel = exports . makeSelectTotalItemsForChannel = exports . selectChannelClaimCounts = exports . selectPlayingUri = exports . selectFetchingFeaturedUris = exports . selectFeaturedUris = exports . makeSelectIsUriResolving = exports . selectResolvingUris = exports . selectMyChannelClaims = exports . selectFetchingMyChannels = exports . selectMyClaimsOutpoints = exports . selectAllMyClaimsByOutpoint = exports . selectMyClaimsWithoutChannels = exports . selectMyClaims = exports . selectPendingClaims = exports . selectIsFetchingClaimListMine = exports . makeSelectContentTypeForUri = exports . makeSelectTitleForUri = exports . makeSelectMetadataForUri = exports . makeSelectClaimsInChannelForCurrentPage = exports . makeSelectFetchingChannelClaims = exports . selectAllFetchingChannelClaims = exports . makeSelectClaimIsMine = exports . selectMyActiveClaims = exports . selectAbandoningIds = exports . selectMyClaimsRaw = exports . makeSelectClaimForUri = exports . selectAllClaimsByChannel = exports . selectClaimsByUri = exports . selectClaimsById = undefined ;
var _lbryURI = _ _webpack _require _ _ ( 2 ) ;
var _navigation = _ _webpack _require _ _ ( 15 ) ;
var _reselect = _ _webpack _require _ _ ( 16 ) ;
function _toConsumableArray ( arr ) { if ( Array . isArray ( arr ) ) { for ( var i = 0 , arr2 = Array ( arr . length ) ; i < arr . length ; i ++ ) { arr2 [ i ] = arr [ i ] ; } return arr2 ; } else { return Array . from ( arr ) ; } }
var selectState = function selectState ( state ) {
return state . claims || { } ;
} ;
var selectClaimsById = exports . selectClaimsById = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . byId || { } ;
} ) ;
var selectClaimsByUri = exports . selectClaimsByUri = ( 0 , _reselect . createSelector ) ( selectState , selectClaimsById , function ( state , byId ) {
var byUri = state . claimsByUri || { } ;
var claims = { } ;
Object . keys ( byUri ) . forEach ( function ( uri ) {
var claimId = byUri [ uri ] ;
// NOTE returning a null claim allows us to differentiate between an
// undefined (never fetched claim) and one which just doesn't exist. Not
// the cleanest solution but couldn't think of anything better right now
if ( claimId === null ) {
claims [ uri ] = null ;
} else {
claims [ uri ] = byId [ claimId ] ;
}
} ) ;
return claims ;
} ) ;
var selectAllClaimsByChannel = exports . selectAllClaimsByChannel = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . claimsByChannel || { } ;
} ) ;
var makeSelectClaimForUri = exports . makeSelectClaimForUri = function makeSelectClaimForUri ( uri ) {
return ( 0 , _reselect . createSelector ) ( selectClaimsByUri , function ( claims ) {
return claims && claims [ ( 0 , _lbryURI . normalizeURI ) ( uri ) ] ;
} ) ;
} ;
var selectMyClaimsRaw = exports . selectMyClaimsRaw = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . myClaims ;
} ) ;
var selectAbandoningIds = exports . selectAbandoningIds = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return Object . keys ( state . abandoningById || { } ) ;
} ) ;
var selectMyActiveClaims = exports . selectMyActiveClaims = ( 0 , _reselect . createSelector ) ( selectMyClaimsRaw , selectAbandoningIds , function ( claims , abandoningIds ) {
return new Set ( claims && claims . map ( function ( claim ) {
return claim . claim _id ;
} ) . filter ( function ( claimId ) {
return Object . keys ( abandoningIds ) . indexOf ( claimId ) === - 1 ;
} ) ) ;
} ) ;
var makeSelectClaimIsMine = exports . makeSelectClaimIsMine = function makeSelectClaimIsMine ( rawUri ) {
var uri = ( 0 , _lbryURI . normalizeURI ) ( rawUri ) ;
return ( 0 , _reselect . createSelector ) ( selectClaimsByUri , selectMyActiveClaims , function ( claims , myClaims ) {
return claims && claims [ uri ] && claims [ uri ] . claim _id && myClaims . has ( claims [ uri ] . claim _id ) ;
} ) ;
} ;
var selectAllFetchingChannelClaims = exports . selectAllFetchingChannelClaims = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . fetchingChannelClaims || { } ;
} ) ;
var makeSelectFetchingChannelClaims = exports . makeSelectFetchingChannelClaims = function makeSelectFetchingChannelClaims ( uri ) {
return ( 0 , _reselect . createSelector ) ( selectAllFetchingChannelClaims , function ( fetching ) {
return fetching && fetching [ uri ] ;
} ) ;
} ;
var makeSelectClaimsInChannelForCurrentPage = exports . makeSelectClaimsInChannelForCurrentPage = function makeSelectClaimsInChannelForCurrentPage ( uri ) {
var pageSelector = ( 0 , _navigation . makeSelectCurrentParam ) ( 'page' ) ;
return ( 0 , _reselect . createSelector ) ( selectClaimsById , selectAllClaimsByChannel , pageSelector , function ( byId , allClaims , page ) {
var byChannel = allClaims [ uri ] || { } ;
var claimIds = byChannel [ page || 1 ] ;
if ( ! claimIds ) return claimIds ;
return claimIds . map ( function ( claimId ) {
return byId [ claimId ] ;
} ) ;
} ) ;
} ;
var makeSelectMetadataForUri = exports . makeSelectMetadataForUri = function makeSelectMetadataForUri ( uri ) {
return ( 0 , _reselect . createSelector ) ( makeSelectClaimForUri ( uri ) , function ( claim ) {
var metadata = claim && claim . value && claim . value . stream && claim . value . stream . metadata ;
return metadata || ( claim === undefined ? undefined : null ) ;
} ) ;
} ;
var makeSelectTitleForUri = exports . makeSelectTitleForUri = function makeSelectTitleForUri ( uri ) {
return ( 0 , _reselect . createSelector ) ( makeSelectMetadataForUri ( uri ) , function ( metadata ) {
return metadata && metadata . title ;
} ) ;
} ;
var makeSelectContentTypeForUri = exports . makeSelectContentTypeForUri = function makeSelectContentTypeForUri ( uri ) {
return ( 0 , _reselect . createSelector ) ( makeSelectClaimForUri ( uri ) , function ( claim ) {
var source = claim && claim . value && claim . value . stream && claim . value . stream . source ;
return source ? source . contentType : undefined ;
} ) ;
} ;
var selectIsFetchingClaimListMine = exports . selectIsFetchingClaimListMine = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . isFetchingClaimListMine ;
} ) ;
var selectPendingClaims = exports . selectPendingClaims = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return Object . values ( state . pendingById || { } ) ;
} ) ;
var selectMyClaims = exports . selectMyClaims = ( 0 , _reselect . createSelector ) ( selectMyActiveClaims , selectClaimsById , selectAbandoningIds , selectPendingClaims , function ( myClaimIds , byId , abandoningIds , pendingClaims ) {
var claims = [ ] ;
myClaimIds . forEach ( function ( id ) {
var claim = byId [ id ] ;
if ( claim && abandoningIds . indexOf ( id ) === - 1 ) claims . push ( claim ) ;
} ) ;
return [ ] . concat ( claims , _toConsumableArray ( pendingClaims ) ) ;
} ) ;
var selectMyClaimsWithoutChannels = exports . selectMyClaimsWithoutChannels = ( 0 , _reselect . createSelector ) ( selectMyClaims , function ( myClaims ) {
return myClaims . filter ( function ( claim ) {
return ! claim . name . match ( /^@/ ) ;
} ) ;
} ) ;
var selectAllMyClaimsByOutpoint = exports . selectAllMyClaimsByOutpoint = ( 0 , _reselect . createSelector ) ( selectMyClaimsRaw , function ( claims ) {
return new Set ( claims && claims . length ? claims . map ( function ( claim ) {
return claim . txid + ':' + claim . nout ;
} ) : null ) ;
} ) ;
var selectMyClaimsOutpoints = exports . selectMyClaimsOutpoints = ( 0 , _reselect . createSelector ) ( selectMyClaims , function ( myClaims ) {
var outpoints = [ ] ;
myClaims . forEach ( function ( claim ) {
return outpoints . push ( claim . txid + ':' + claim . nout ) ;
} ) ;
return outpoints ;
} ) ;
var selectFetchingMyChannels = exports . selectFetchingMyChannels = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . fetchingMyChannels ;
} ) ;
var selectMyChannelClaims = exports . selectMyChannelClaims = ( 0 , _reselect . createSelector ) ( selectState , selectClaimsById , function ( state , byId ) {
var ids = state . myChannelClaims || [ ] ;
var claims = [ ] ;
ids . forEach ( function ( id ) {
if ( byId [ id ] ) {
// I'm not sure why this check is necessary, but it ought to be a quick fix for https://github.com/lbryio/lbry-app/issues/544
claims . push ( byId [ id ] ) ;
}
} ) ;
return claims ;
} ) ;
var selectResolvingUris = exports . selectResolvingUris = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . resolvingUris || [ ] ;
} ) ;
var makeSelectIsUriResolving = exports . makeSelectIsUriResolving = function makeSelectIsUriResolving ( uri ) {
return ( 0 , _reselect . createSelector ) ( selectResolvingUris , function ( resolvingUris ) {
return resolvingUris && resolvingUris . indexOf ( uri ) !== - 1 ;
} ) ;
} ;
var selectFeaturedUris = exports . selectFeaturedUris = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . featuredUris ;
} ) ;
var selectFetchingFeaturedUris = exports . selectFetchingFeaturedUris = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . fetchingFeaturedContent ;
} ) ;
var selectPlayingUri = exports . selectPlayingUri = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . playingUri ;
} ) ;
var selectChannelClaimCounts = exports . selectChannelClaimCounts = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . channelClaimCounts || { } ;
} ) ;
var makeSelectTotalItemsForChannel = exports . makeSelectTotalItemsForChannel = function makeSelectTotalItemsForChannel ( uri ) {
return ( 0 , _reselect . createSelector ) ( selectChannelClaimCounts , function ( byUri ) {
return byUri && byUri [ uri ] ;
} ) ;
} ;
var makeSelectTotalPagesForChannel = exports . makeSelectTotalPagesForChannel = function makeSelectTotalPagesForChannel ( uri ) {
return ( 0 , _reselect . createSelector ) ( selectChannelClaimCounts , function ( byUri ) {
return byUri && byUri [ uri ] && Math . ceil ( byUri [ uri ] / 10 ) ;
} ) ;
} ;
var selectRewardContentClaimIds = exports . selectRewardContentClaimIds = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . rewardedContentClaimIds ;
} ) ;
/***/ } ) ,
/* 15 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . selectNavLinks = exports . selectPageTitle = exports . selectActiveHistoryEntry = exports . selectHistoryStack = exports . selectHistoryIndex = exports . selectIsHome = exports . selectIsForwardDisabled = exports . selectIsBackDisabled = exports . selectPathAfterAuth = exports . makeSelectCurrentParam = exports . selectCurrentParams = exports . selectCurrentPage = exports . computePageFromPath = exports . selectCurrentPath = exports . selectState = undefined ;
var _reselect = _ _webpack _require _ _ ( 16 ) ;
var _query _params = _ _webpack _require _ _ ( 17 ) ;
var selectState = exports . selectState = function selectState ( state ) {
return state . navigation || { } ;
} ;
var selectCurrentPath = exports . selectCurrentPath = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . currentPath ;
} ) ;
var computePageFromPath = exports . computePageFromPath = function computePageFromPath ( path ) {
return path . replace ( /^\// , '' ) . split ( '?' ) [ 0 ] ;
} ;
var selectCurrentPage = exports . selectCurrentPage = ( 0 , _reselect . createSelector ) ( selectCurrentPath , function ( path ) {
return computePageFromPath ( path ) ;
} ) ;
var selectCurrentParams = exports . selectCurrentParams = ( 0 , _reselect . createSelector ) ( selectCurrentPath , function ( path ) {
if ( path === undefined ) return { } ;
if ( ! path . match ( /\?/ ) ) return { } ;
return ( 0 , _query _params . parseQueryParams ) ( path . split ( '?' ) [ 1 ] ) ;
} ) ;
var makeSelectCurrentParam = exports . makeSelectCurrentParam = function makeSelectCurrentParam ( param ) {
return ( 0 , _reselect . createSelector ) ( selectCurrentParams , function ( params ) {
return params ? params [ param ] : undefined ;
} ) ;
} ;
var selectPathAfterAuth = exports . selectPathAfterAuth = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . pathAfterAuth ;
} ) ;
var selectIsBackDisabled = exports . selectIsBackDisabled = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . index === 0 ;
} ) ;
var selectIsForwardDisabled = exports . selectIsForwardDisabled = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . index === state . stack . length - 1 ;
} ) ;
var selectIsHome = exports . selectIsHome = ( 0 , _reselect . createSelector ) ( selectCurrentPage , function ( page ) {
return page === 'discover' ;
} ) ;
var selectHistoryIndex = exports . selectHistoryIndex = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . index ;
} ) ;
var selectHistoryStack = exports . selectHistoryStack = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . stack ;
} ) ;
// returns current page attributes (scrollY, path)
var selectActiveHistoryEntry = exports . selectActiveHistoryEntry = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . stack [ state . index ] ;
} ) ;
var selectPageTitle = exports . selectPageTitle = ( 0 , _reselect . createSelector ) ( selectCurrentPage , function ( page ) {
switch ( page ) {
default :
return '' ;
}
} ) ;
var selectNavLinks = exports . selectNavLinks = ( 0 , _reselect . createSelector ) ( selectCurrentPage , selectHistoryStack , function ( currentPage , historyStack ) {
var isWalletPage = function isWalletPage ( page ) {
return page === 'wallet' || page === 'send' || page === 'getcredits' || page === 'rewards' || page === 'history' || page === 'invite' ;
} ;
var isMyLbryPage = function isMyLbryPage ( page ) {
return page === 'downloaded' || page === 'published' || page === 'settings' ;
} ;
var previousStack = historyStack . slice ( ) . reverse ( ) ;
var getPreviousSubLinkPath = function getPreviousSubLinkPath ( checkIfValidPage ) {
for ( var i = 0 ; i < previousStack . length ; i += 1 ) {
var currentStackItem = previousStack [ i ] ;
// Trim off the "/" from the path
var pageInStack = currentStackItem . path . slice ( 1 ) ;
if ( checkIfValidPage ( pageInStack ) ) {
return currentStackItem . path ;
}
}
return undefined ;
} ;
// Gets the last active sublink in a section
var getActiveSublink = function getActiveSublink ( category ) {
if ( category === 'wallet' ) {
var previousPath = getPreviousSubLinkPath ( isWalletPage ) ;
return previousPath || '/wallet' ;
} else if ( category === 'myLbry' ) {
var _previousPath = getPreviousSubLinkPath ( isMyLbryPage ) ;
return _previousPath || '/downloaded' ;
}
return undefined ;
} ;
var isCurrentlyWalletPage = isWalletPage ( currentPage ) ;
var isCurrentlyMyLbryPage = isMyLbryPage ( currentPage ) ;
var walletSubLinks = [ {
label : 'Overview' ,
path : '/wallet' ,
active : currentPage === 'wallet'
} , {
label : 'Send & Recieve' ,
path : '/send' ,
active : currentPage === 'send'
} , {
label : 'Get Credits' ,
path : '/getcredits' ,
active : currentPage === 'getcredits'
} , {
label : 'Rewards' ,
path : '/rewards' ,
active : currentPage === 'rewards'
} , {
label : 'Invites' ,
path : '/invite' ,
active : currentPage === 'invite'
} , {
label : 'Transactions' ,
path : '/history' ,
active : currentPage === 'history'
} ] ;
var myLbrySubLinks = [ {
label : 'Downloads' ,
path : '/downloaded' ,
active : currentPage === 'downloaded'
} , {
label : 'Publishes' ,
path : '/published' ,
active : currentPage === 'published'
} , {
label : 'Settings' ,
path : '/settings' ,
active : currentPage === 'settings'
} , {
label : 'Backup' ,
path : '/backup' ,
active : currentPage === 'backup'
} ] ;
var navLinks = {
primary : [ {
label : 'Explore' ,
path : '/discover' ,
active : currentPage === 'discover' ,
icon : 'Compass'
} , {
label : 'Subscriptions' ,
path : '/subscriptions' ,
active : currentPage === 'subscriptions' ,
icon : 'AtSign'
} ] ,
secondary : [ {
label : 'Wallet' ,
icon : 'CreditCard' ,
subLinks : walletSubLinks ,
path : isCurrentlyWalletPage ? '/wallet' : getActiveSublink ( 'wallet' ) ,
active : isWalletPage ( currentPage )
} , {
label : 'My LBRY' ,
icon : 'Settings' ,
subLinks : myLbrySubLinks ,
path : isCurrentlyMyLbryPage ? '/downloaded' : getActiveSublink ( 'myLbry' ) ,
active : isMyLbryPage ( currentPage )
} , {
label : 'Publish' ,
icon : 'UploadCloud' ,
path : '/publish' ,
active : currentPage === 'publish'
} , {
label : 'Help' ,
path : '/help' ,
active : currentPage === 'help' ,
icon : 'HelpCircle'
} ]
} ;
return navLinks ;
} ) ;
/***/ } ) ,
/* 16 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
exports . _ _esModule = true ;
exports . defaultMemoize = defaultMemoize ;
exports . createSelectorCreator = createSelectorCreator ;
exports . createStructuredSelector = createStructuredSelector ;
function defaultEqualityCheck ( a , b ) {
return a === b ;
}
function areArgumentsShallowlyEqual ( equalityCheck , prev , next ) {
if ( prev === null || next === null || prev . length !== next . length ) {
return false ;
}
// Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.
var length = prev . length ;
for ( var i = 0 ; i < length ; i ++ ) {
if ( ! equalityCheck ( prev [ i ] , next [ i ] ) ) {
return false ;
}
}
return true ;
}
function defaultMemoize ( func ) {
var equalityCheck = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : defaultEqualityCheck ;
var lastArgs = null ;
var lastResult = null ;
// we reference arguments instead of spreading them for performance reasons
return function ( ) {
if ( ! areArgumentsShallowlyEqual ( equalityCheck , lastArgs , arguments ) ) {
// apply arguments instead of spreading for performance.
lastResult = func . apply ( null , arguments ) ;
}
lastArgs = arguments ;
return lastResult ;
} ;
}
function getDependencies ( funcs ) {
var dependencies = Array . isArray ( funcs [ 0 ] ) ? funcs [ 0 ] : funcs ;
if ( ! dependencies . every ( function ( dep ) {
return typeof dep === 'function' ;
} ) ) {
var dependencyTypes = dependencies . map ( function ( dep ) {
return typeof dep ;
} ) . join ( ', ' ) ;
throw new Error ( 'Selector creators expect all input-selectors to be functions, ' + ( 'instead received the following types: [' + dependencyTypes + ']' ) ) ;
}
return dependencies ;
}
function createSelectorCreator ( memoize ) {
for ( var _len = arguments . length , memoizeOptions = Array ( _len > 1 ? _len - 1 : 0 ) , _key = 1 ; _key < _len ; _key ++ ) {
memoizeOptions [ _key - 1 ] = arguments [ _key ] ;
}
return function ( ) {
for ( var _len2 = arguments . length , funcs = Array ( _len2 ) , _key2 = 0 ; _key2 < _len2 ; _key2 ++ ) {
funcs [ _key2 ] = arguments [ _key2 ] ;
}
var recomputations = 0 ;
var resultFunc = funcs . pop ( ) ;
var dependencies = getDependencies ( funcs ) ;
var memoizedResultFunc = memoize . apply ( undefined , [ function ( ) {
recomputations ++ ;
// apply arguments instead of spreading for performance.
return resultFunc . apply ( null , arguments ) ;
} ] . concat ( memoizeOptions ) ) ;
// If a selector is called with the exact same arguments we don't need to traverse our dependencies again.
var selector = defaultMemoize ( function ( ) {
var params = [ ] ;
var length = dependencies . length ;
for ( var i = 0 ; i < length ; i ++ ) {
// apply arguments instead of spreading and mutate a local list of params for performance.
params . push ( dependencies [ i ] . apply ( null , arguments ) ) ;
}
// apply arguments instead of spreading for performance.
return memoizedResultFunc . apply ( null , params ) ;
} ) ;
selector . resultFunc = resultFunc ;
selector . recomputations = function ( ) {
return recomputations ;
} ;
selector . resetRecomputations = function ( ) {
return recomputations = 0 ;
} ;
return selector ;
} ;
}
var createSelector = exports . createSelector = createSelectorCreator ( defaultMemoize ) ;
function createStructuredSelector ( selectors ) {
var selectorCreator = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : createSelector ;
if ( typeof selectors !== 'object' ) {
throw new Error ( 'createStructuredSelector expects first argument to be an object ' + ( 'where each property is a selector, instead received a ' + typeof selectors ) ) ;
}
var objectKeys = Object . keys ( selectors ) ;
return selectorCreator ( objectKeys . map ( function ( key ) {
return selectors [ key ] ;
} ) , function ( ) {
for ( var _len3 = arguments . length , values = Array ( _len3 ) , _key3 = 0 ; _key3 < _len3 ; _key3 ++ ) {
values [ _key3 ] = arguments [ _key3 ] ;
}
return values . reduce ( function ( composition , value , index ) {
composition [ objectKeys [ index ] ] = value ;
return composition ;
} , { } ) ;
} ) ;
}
/***/ } ) ,
/* 17 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var _slicedToArray = function ( ) { function sliceIterator ( arr , i ) { var _arr = [ ] ; var _n = true ; var _d = false ; var _e = undefined ; try { for ( var _i = arr [ Symbol . iterator ] ( ) , _s ; ! ( _n = ( _s = _i . next ( ) ) . done ) ; _n = true ) { _arr . push ( _s . value ) ; if ( i && _arr . length === i ) break ; } } catch ( err ) { _d = true ; _e = err ; } finally { try { if ( ! _n && _i [ "return" ] ) _i [ "return" ] ( ) ; } finally { if ( _d ) throw _e ; } } return _arr ; } return function ( arr , i ) { if ( Array . isArray ( arr ) ) { return arr ; } else if ( Symbol . iterator in Object ( arr ) ) { return sliceIterator ( arr , i ) ; } else { throw new TypeError ( "Invalid attempt to destructure non-iterable instance" ) ; } } ; } ( ) ;
exports . parseQueryParams = parseQueryParams ;
exports . toQueryString = toQueryString ;
function parseQueryParams ( queryString ) {
if ( queryString === '' ) return { } ;
var parts = queryString . split ( '?' ) . pop ( ) . split ( '&' ) . map ( function ( p ) {
return p . split ( '=' ) ;
} ) ;
var params = { } ;
parts . forEach ( function ( array ) {
var _array = _slicedToArray ( array , 2 ) ,
first = _array [ 0 ] ,
second = _array [ 1 ] ;
params [ first ] = second ;
} ) ;
return params ;
}
function toQueryString ( params ) {
if ( ! params ) return '' ;
var parts = [ ] ;
Object . keys ( params ) . forEach ( function ( key ) {
if ( Object . prototype . hasOwnProperty . call ( params , key ) && params [ key ] ) {
parts . push ( key + '=' + params [ key ] ) ;
}
} ) ;
return parts . join ( '&' ) ;
}
/***/ } ) ,
/* 18 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . batchActions = batchActions ;
// https://github.com/reactjs/redux/issues/911
function batchActions ( ) {
for ( var _len = arguments . length , actions = Array ( _len ) , _key = 0 ; _key < _len ; _key ++ ) {
actions [ _key ] = arguments [ _key ] ;
}
return {
type : 'BATCH_ACTIONS' ,
actions : actions
} ;
}
/***/ } ) ,
/* 19 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . doFetchCostInfoForUri = doFetchCostInfoForUri ;
var _action _types = _ _webpack _require _ _ ( 4 ) ;
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
var _lbryapi = _ _webpack _require _ _ ( 9 ) ;
var _lbryapi2 = _interopRequireDefault ( _lbryapi ) ;
var _claims = _ _webpack _require _ _ ( 14 ) ;
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { default : obj } ; }
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
// eslint-disable-next-line import/prefer-default-export
function doFetchCostInfoForUri ( uri ) {
return function ( dispatch , getState ) {
var state = getState ( ) ;
var claim = ( 0 , _claims . selectClaimsByUri ) ( state ) [ uri ] ;
if ( ! claim ) return ;
function resolve ( costInfo ) {
dispatch ( {
type : ACTIONS . FETCH _COST _INFO _COMPLETED ,
data : {
uri : uri ,
costInfo : costInfo
}
} ) ;
}
var fee = claim . value && claim . value . stream && claim . value . stream . metadata ? claim . value . stream . metadata . fee : undefined ;
if ( fee === undefined ) {
resolve ( { cost : 0 , includesData : true } ) ;
} else if ( fee . currency === 'LBC' ) {
resolve ( { cost : fee . amount , includesData : true } ) ;
} else {
_lbryapi2 . default . getExchangeRates ( ) . then ( function ( _ref ) {
var LBC _USD = _ref . LBC _USD ;
resolve ( { cost : fee . amount / LBC _USD , includesData : true } ) ;
} ) ;
}
} ;
}
/***/ } ) ,
/* 20 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . doFetchFileInfo = doFetchFileInfo ;
exports . doFileList = doFileList ;
exports . doFetchFileInfosAndPublishedClaims = doFetchFileInfosAndPublishedClaims ;
var _action _types = _ _webpack _require _ _ ( 4 ) ;
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
var _lbry = _ _webpack _require _ _ ( 6 ) ;
var _lbry2 = _interopRequireDefault ( _lbry ) ;
var _claims = _ _webpack _require _ _ ( 5 ) ;
var _claims2 = _ _webpack _require _ _ ( 14 ) ;
var _file _info = _ _webpack _require _ _ ( 21 ) ;
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { default : obj } ; }
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
function doFetchFileInfo ( uri ) {
return function ( dispatch , getState ) {
var state = getState ( ) ;
var claim = ( 0 , _claims2 . selectClaimsByUri ) ( state ) [ uri ] ;
var outpoint = claim ? claim . txid + ':' + claim . nout : null ;
var alreadyFetching = ! ! ( 0 , _file _info . selectUrisLoading ) ( state ) [ uri ] ;
if ( ! alreadyFetching ) {
dispatch ( {
type : ACTIONS . FETCH _FILE _INFO _STARTED ,
data : {
outpoint : outpoint
}
} ) ;
_lbry2 . default . file _list ( { outpoint : outpoint , full _status : true } ) . then ( function ( fileInfos ) {
dispatch ( {
type : ACTIONS . FETCH _FILE _INFO _COMPLETED ,
data : {
outpoint : outpoint ,
fileInfo : fileInfos && fileInfos . length ? fileInfos [ 0 ] : null
}
} ) ;
} ) ;
}
} ;
}
function doFileList ( ) {
return function ( dispatch , getState ) {
var state = getState ( ) ;
var isFetching = ( 0 , _file _info . selectIsFetchingFileList ) ( state ) ;
if ( ! isFetching ) {
dispatch ( {
type : ACTIONS . FILE _LIST _STARTED
} ) ;
_lbry2 . default . file _list ( ) . then ( function ( fileInfos ) {
dispatch ( {
type : ACTIONS . FILE _LIST _SUCCEEDED ,
data : {
fileInfos : fileInfos
}
} ) ;
} ) ;
}
} ;
}
function doFetchFileInfosAndPublishedClaims ( ) {
return function ( dispatch , getState ) {
var state = getState ( ) ;
var isFetchingClaimListMine = ( 0 , _claims2 . selectIsFetchingClaimListMine ) ( state ) ;
var isFetchingFileInfo = ( 0 , _file _info . selectIsFetchingFileList ) ( state ) ;
if ( ! isFetchingClaimListMine ) dispatch ( ( 0 , _claims . doFetchClaimListMine ) ( ) ) ;
if ( ! isFetchingFileInfo ) dispatch ( doFileList ( ) ) ;
} ;
}
/***/ } ) ,
/* 21 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . selectSearchDownloadUris = exports . selectTotalDownloadProgress = exports . selectDownloadingFileInfos = exports . selectFileInfosDownloaded = exports . makeSelectLoadingForUri = exports . selectUrisLoading = exports . makeSelectDownloadingForUri = exports . selectDownloadingByOutpoint = exports . makeSelectFileInfoForUri = exports . selectIsFetchingFileListDownloadedOrPublished = exports . selectIsFetchingFileList = exports . selectFileInfosByOutpoint = exports . selectState = undefined ;
var _claims = _ _webpack _require _ _ ( 14 ) ;
var _reselect = _ _webpack _require _ _ ( 16 ) ;
var _lbryURI = _ _webpack _require _ _ ( 2 ) ;
var selectState = exports . selectState = function selectState ( state ) {
return state . fileInfo || { } ;
} ;
var selectFileInfosByOutpoint = exports . selectFileInfosByOutpoint = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . byOutpoint || { } ;
} ) ;
var selectIsFetchingFileList = exports . selectIsFetchingFileList = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . isFetchingFileList ;
} ) ;
var selectIsFetchingFileListDownloadedOrPublished = exports . selectIsFetchingFileListDownloadedOrPublished = ( 0 , _reselect . createSelector ) ( selectIsFetchingFileList , _claims . selectIsFetchingClaimListMine , function ( isFetchingFileList , isFetchingClaimListMine ) {
return isFetchingFileList || isFetchingClaimListMine ;
} ) ;
var makeSelectFileInfoForUri = exports . makeSelectFileInfoForUri = function makeSelectFileInfoForUri ( uri ) {
return ( 0 , _reselect . createSelector ) ( _claims . selectClaimsByUri , selectFileInfosByOutpoint , function ( claims , byOutpoint ) {
var claim = claims [ uri ] ;
var outpoint = claim ? claim . txid + ':' + claim . nout : undefined ;
return outpoint ? byOutpoint [ outpoint ] : undefined ;
} ) ;
} ;
var selectDownloadingByOutpoint = exports . selectDownloadingByOutpoint = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . downloadingByOutpoint || { } ;
} ) ;
var makeSelectDownloadingForUri = exports . makeSelectDownloadingForUri = function makeSelectDownloadingForUri ( uri ) {
return ( 0 , _reselect . createSelector ) ( selectDownloadingByOutpoint , makeSelectFileInfoForUri ( uri ) , function ( byOutpoint , fileInfo ) {
if ( ! fileInfo ) return false ;
return byOutpoint [ fileInfo . outpoint ] ;
} ) ;
} ;
var selectUrisLoading = exports . selectUrisLoading = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . urisLoading || { } ;
} ) ;
var makeSelectLoadingForUri = exports . makeSelectLoadingForUri = function makeSelectLoadingForUri ( uri ) {
return ( 0 , _reselect . createSelector ) ( selectUrisLoading , function ( byUri ) {
return byUri && byUri [ uri ] ;
} ) ;
} ;
var selectFileInfosDownloaded = exports . selectFileInfosDownloaded = ( 0 , _reselect . createSelector ) ( selectFileInfosByOutpoint , _claims . selectMyClaims , function ( byOutpoint , myClaims ) {
return Object . values ( byOutpoint ) . filter ( function ( fileInfo ) {
var myClaimIds = myClaims . map ( function ( claim ) {
return claim . claim _id ;
} ) ;
return fileInfo && myClaimIds . indexOf ( fileInfo . claim _id ) === - 1 && ( fileInfo . completed || fileInfo . written _bytes ) ;
} ) ;
} ) ;
// export const selectFileInfoForUri = (state, props) => {
// const claims = selectClaimsByUri(state),
// claim = claims[props.uri],
// fileInfos = selectAllFileInfos(state),
// outpoint = claim ? `${claim.txid}:${claim.nout}` : undefined;
// return outpoint && fileInfos ? fileInfos[outpoint] : undefined;
// };
var selectDownloadingFileInfos = exports . selectDownloadingFileInfos = ( 0 , _reselect . createSelector ) ( selectDownloadingByOutpoint , selectFileInfosByOutpoint , function ( downloadingByOutpoint , fileInfosByOutpoint ) {
var outpoints = Object . keys ( downloadingByOutpoint ) ;
var fileInfos = [ ] ;
outpoints . forEach ( function ( outpoint ) {
var fileInfo = fileInfosByOutpoint [ outpoint ] ;
if ( fileInfo ) fileInfos . push ( fileInfo ) ;
} ) ;
return fileInfos ;
} ) ;
var selectTotalDownloadProgress = exports . selectTotalDownloadProgress = ( 0 , _reselect . createSelector ) ( selectDownloadingFileInfos , function ( fileInfos ) {
var progress = [ ] ;
fileInfos . forEach ( function ( fileInfo ) {
progress . push ( fileInfo . written _bytes / fileInfo . total _bytes * 100 ) ;
} ) ;
var totalProgress = progress . reduce ( function ( a , b ) {
return a + b ;
} , 0 ) ;
if ( fileInfos . length > 0 ) return totalProgress / fileInfos . length / 100.0 ;
return - 1 ;
} ) ;
var selectSearchDownloadUris = exports . selectSearchDownloadUris = function selectSearchDownloadUris ( query ) {
return ( 0 , _reselect . createSelector ) ( selectFileInfosDownloaded , _claims . selectClaimsById , function ( fileInfos , claimsById ) {
if ( ! query || ! fileInfos . length ) {
return null ;
}
var queryParts = query . toLowerCase ( ) . split ( ' ' ) ;
var searchQueryDictionary = { } ;
queryParts . forEach ( function ( subQuery ) {
searchQueryDictionary [ subQuery ] = subQuery ;
} ) ;
var arrayContainsQueryPart = function arrayContainsQueryPart ( array ) {
for ( var i = 0 ; i < array . length ; i += 1 ) {
var subQuery = array [ i ] ;
if ( searchQueryDictionary [ subQuery ] ) {
return true ;
}
}
return false ;
} ;
var downloadResultsFromQuery = [ ] ;
fileInfos . forEach ( function ( fileInfo ) {
var channelName = fileInfo . channel _name ,
claimName = fileInfo . claim _name ,
metadata = fileInfo . metadata ;
var author = metadata . author ,
description = metadata . description ,
title = metadata . title ;
if ( channelName ) {
var lowerCaseChannel = channelName . toLowerCase ( ) ;
var strippedOutChannelName = lowerCaseChannel . slice ( 1 ) ; // trim off the @
if ( searchQueryDictionary [ channelName ] || searchQueryDictionary [ strippedOutChannelName ] ) {
downloadResultsFromQuery . push ( fileInfo ) ;
return ;
}
}
var nameParts = claimName . toLowerCase ( ) . split ( '-' ) ;
if ( arrayContainsQueryPart ( nameParts ) ) {
downloadResultsFromQuery . push ( fileInfo ) ;
return ;
}
var titleParts = title . toLowerCase ( ) . split ( ' ' ) ;
if ( arrayContainsQueryPart ( titleParts ) ) {
downloadResultsFromQuery . push ( fileInfo ) ;
return ;
}
if ( author ) {
var authorParts = author . toLowerCase ( ) . split ( ' ' ) ;
if ( arrayContainsQueryPart ( authorParts ) ) {
downloadResultsFromQuery . push ( fileInfo ) ;
return ;
}
}
if ( description ) {
var descriptionParts = description . toLowerCase ( ) . split ( ' ' ) ;
if ( arrayContainsQueryPart ( descriptionParts ) ) {
downloadResultsFromQuery . push ( fileInfo ) ;
}
}
} ) ;
return downloadResultsFromQuery . length ? downloadResultsFromQuery . map ( function ( fileInfo ) {
var channelName = fileInfo . channel _name ,
claimId = fileInfo . claim _id ,
claimName = fileInfo . claim _name ;
var uriParams = { } ;
if ( channelName ) {
var claim = claimsById [ claimId ] ;
if ( claim && claim . value ) {
uriParams . claimId = claim . value . publisherSignature . certificateId ;
} else {
uriParams . claimId = claimId ;
}
uriParams . channelName = channelName ;
uriParams . contentName = claimName ;
} else {
uriParams . claimId = claimId ;
uriParams . claimName = claimName ;
}
var uri = ( 0 , _lbryURI . buildURI ) ( uriParams ) ;
return uri ;
} ) : null ;
} ) ;
} ;
/***/ } ) ,
/* 22 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . doBlurSearchInput = exports . doFocusSearchInput = exports . doUpdateSearchQuery = exports . getSearchSuggestions = exports . doSearch = undefined ;
var _action _types = _ _webpack _require _ _ ( 4 ) ;
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
var _search = _ _webpack _require _ _ ( 23 ) ;
var SEARCH _TYPES = _interopRequireWildcard ( _search ) ;
var _lbryURI = _ _webpack _require _ _ ( 2 ) ;
var _claims = _ _webpack _require _ _ ( 5 ) ;
var _search2 = _ _webpack _require _ _ ( 24 ) ;
var _batchActions = _ _webpack _require _ _ ( 18 ) ;
var _handleFetch = _ _webpack _require _ _ ( 25 ) ;
var _handleFetch2 = _interopRequireDefault ( _handleFetch ) ;
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { default : obj } ; }
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
var doSearch = exports . doSearch = function doSearch ( rawQuery ) {
return function ( dispatch , getState ) {
var state = getState ( ) ;
var query = rawQuery . replace ( /^lbry:\/\//i , '' ) ;
if ( ! query ) {
dispatch ( {
type : ACTIONS . SEARCH _FAIL
} ) ;
return ;
}
// If we have already searched for something, we don't need to do anything
var urisForQuery = ( 0 , _search2 . makeSelectSearchUris ) ( query ) ( state ) ;
if ( urisForQuery && ! ! urisForQuery . length ) {
return ;
}
dispatch ( {
type : ACTIONS . SEARCH _START
} ) ;
// If the user is on the file page with a pre-populated uri and they select
// the search option without typing anything, searchQuery will be empty
// We need to populate it so the input is filled on the search page
if ( ! state . search . searchQuery ) {
dispatch ( {
type : ACTIONS . UPDATE _SEARCH _QUERY ,
data : { searchQuery : query }
} ) ;
}
fetch ( 'https://lighthouse.lbry.io/search?s=' + query ) . then ( _handleFetch2 . default ) . then ( function ( data ) {
var uris = [ ] ;
var actions = [ ] ;
data . forEach ( function ( result ) {
var uri = ( 0 , _lbryURI . buildURI ) ( {
claimName : result . name ,
claimId : result . claimId
} ) ;
actions . push ( ( 0 , _claims . doResolveUri ) ( uri ) ) ;
uris . push ( uri ) ;
} ) ;
actions . push ( {
type : ACTIONS . SEARCH _SUCCESS ,
data : {
query : query ,
uris : uris
}
} ) ;
dispatch ( _batchActions . batchActions . apply ( undefined , actions ) ) ;
} ) . catch ( function ( ) {
dispatch ( {
type : ACTIONS . SEARCH _FAIL
} ) ;
} ) ;
} ;
} ; // @flow
var getSearchSuggestions = exports . getSearchSuggestions = function getSearchSuggestions ( value /*: string*/ ) {
return function ( dispatch ) {
var query = value . trim ( ) ;
var isPrefix = function isPrefix ( ) {
return query === '@' || query === 'lbry:' || query === 'lbry:/' || query === 'lbry://' ;
} ;
if ( ! query || isPrefix ( ) ) {
dispatch ( {
type : ACTIONS . UPDATE _SEARCH _SUGGESTIONS ,
data : { suggestions : [ ] }
} ) ;
return ;
}
var suggestions = [ ] ;
try {
// If the user is about to manually add the claim id ignore it until they
// actually add one. This would hardly ever happen, but then the search
// suggestions won't change just from adding a '#' after a uri
var uriQuery = query ;
if ( uriQuery . endsWith ( '#' ) ) {
uriQuery = uriQuery . slice ( 0 , - 1 ) ;
}
var uri = ( 0 , _lbryURI . normalizeURI ) ( uriQuery ) ;
var _parseURI = ( 0 , _lbryURI . parseURI ) ( uri ) ,
claimName = _parseURI . claimName ,
isChannel = _parseURI . isChannel ;
suggestions . push ( {
value : uri ,
shorthand : isChannel ? claimName . slice ( 1 ) : claimName ,
type : isChannel ? SEARCH _TYPES . CHANNEL : SEARCH _TYPES . FILE
} , {
value : claimName ,
type : SEARCH _TYPES . SEARCH
} ) ;
// If it's a valid url, don't fetch any extra search results
dispatch ( {
type : ACTIONS . UPDATE _SEARCH _SUGGESTIONS ,
data : { suggestions : suggestions }
} ) ;
} catch ( e ) {
suggestions . push ( {
value : query ,
type : SEARCH _TYPES . SEARCH
} ) ;
}
// Populate the current search query suggestion before fetching results
dispatch ( {
type : ACTIONS . UPDATE _SEARCH _SUGGESTIONS ,
data : { suggestions : suggestions }
} ) ;
// strip out any basic stuff for more accurate search results
var searchValue = value . replace ( /lbry:\/\//g , '' ) . replace ( /-/g , ' ' ) ;
if ( searchValue . includes ( '#' ) ) {
// This should probably be more robust, but I think it's fine for now
// Remove everything after # to get rid of the claim id
searchValue = searchValue . substring ( 0 , searchValue . indexOf ( '#' ) ) ;
}
fetch ( 'https://lighthouse.lbry.io/autocomplete?s=' + searchValue ) . then ( _handleFetch2 . default ) . then ( function ( apiSuggestions ) {
2018-05-16 05:10:06 +02:00
// Suggestion could be a channel, uri, or search term
2018-05-15 06:18:50 +02:00
var formattedSuggestions = apiSuggestions . slice ( 0 , 6 ) . map ( function ( suggestion ) {
2018-05-16 05:10:06 +02:00
if ( suggestion . includes ( ' ' ) ) {
return {
value : suggestion ,
type : SEARCH _TYPES . SEARCH
} ;
}
2018-05-15 06:18:50 +02:00
2018-05-16 05:10:06 +02:00
try {
var _uri = ( 0 , _lbryURI . normalizeURI ) ( suggestion ) ;
var _parseURI2 = ( 0 , _lbryURI . parseURI ) ( _uri ) ,
_claimName = _parseURI2 . claimName ,
_isChannel = _parseURI2 . isChannel ;
return {
value : _uri ,
shorthand : _isChannel ? _claimName . slice ( 1 ) : _claimName ,
type : _isChannel ? SEARCH _TYPES . CHANNEL : SEARCH _TYPES . FILE
} ;
} catch ( e ) {
// search result includes some character that isn't valid in claim names
return {
value : suggestion ,
type : SEARCH _TYPES . SEARCH
} ;
}
2018-05-15 06:18:50 +02:00
} ) ;
suggestions = suggestions . concat ( formattedSuggestions ) ;
dispatch ( {
type : ACTIONS . UPDATE _SEARCH _SUGGESTIONS ,
data : { suggestions : suggestions }
} ) ;
} ) . catch ( function ( ) {
// If the fetch fails, do nothing
// Basic search suggestions are already populated at this point
} ) ;
} ;
} ;
var doUpdateSearchQuery = exports . doUpdateSearchQuery = function doUpdateSearchQuery ( query /*: string*/ , shouldSkipSuggestions /*: ?boolean*/ ) {
return function ( dispatch ) {
dispatch ( {
type : ACTIONS . UPDATE _SEARCH _QUERY ,
data : { query : query }
} ) ;
// Don't fetch new suggestions if the user just added a space
if ( ! query . endsWith ( ' ' ) || ! shouldSkipSuggestions ) {
dispatch ( getSearchSuggestions ( query ) ) ;
}
} ;
} ;
var doFocusSearchInput = exports . doFocusSearchInput = function doFocusSearchInput ( ) {
return function ( dispatch ) {
return dispatch ( {
type : ACTIONS . SEARCH _FOCUS
} ) ;
} ;
} ;
var doBlurSearchInput = exports . doBlurSearchInput = function doBlurSearchInput ( ) {
return function ( dispatch ) {
return dispatch ( {
type : ACTIONS . SEARCH _BLUR
} ) ;
} ;
} ;
/***/ } ) ,
/* 23 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var FILE = exports . FILE = 'file' ;
var CHANNEL = exports . CHANNEL = 'channel' ;
var SEARCH = exports . SEARCH = 'search' ;
/***/ } ) ,
/* 24 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . selectSearchBarFocused = exports . selectWunderBarAddress = exports . makeSelectSearchUris = exports . selectSearchUrisByQuery = exports . selectIsSearching = exports . selectSearchQuery = exports . selectSearchValue = exports . selectState = undefined ;
var _navigation = _ _webpack _require _ _ ( 15 ) ;
var _reselect = _ _webpack _require _ _ ( 16 ) ;
var selectState = exports . selectState = function selectState ( state ) {
return state . search || { } ;
} ;
var selectSearchValue = exports . selectSearchValue = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . searchQuery ;
} ) ;
var selectSearchQuery = exports . selectSearchQuery = ( 0 , _reselect . createSelector ) ( _navigation . selectCurrentPage , _navigation . selectCurrentParams , function ( page , params ) {
return page === 'search' ? params && params . query : null ;
} ) ;
var selectIsSearching = exports . selectIsSearching = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . searching ;
} ) ;
var selectSearchUrisByQuery = exports . selectSearchUrisByQuery = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . urisByQuery ;
} ) ;
var makeSelectSearchUris = exports . makeSelectSearchUris = function makeSelectSearchUris ( query ) {
return (
// replace statement below is kind of ugly, and repeated in doSearch action
( 0 , _reselect . createSelector ) ( selectSearchUrisByQuery , function ( byQuery ) {
return byQuery [ query ? query . replace ( /^lbry:\/\//i , '' ) : query ] ;
} )
) ;
} ;
var selectWunderBarAddress = exports . selectWunderBarAddress = ( 0 , _reselect . createSelector ) ( _navigation . selectCurrentPage , selectSearchQuery , _navigation . selectCurrentParams , function ( page , query , params ) {
// only populate the wunderbar address if we are on the file/channel pages
// or show the search query
if ( page === 'show' ) {
return params . uri ;
}
return query ;
} ) ;
var selectSearchBarFocused = exports . selectSearchBarFocused = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . focused ;
} ) ;
/***/ } ) ,
/* 25 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . default = handleFetchResponse ;
function handleFetchResponse ( response ) {
return response . status === 200 ? Promise . resolve ( response . json ( ) ) : Promise . reject ( new Error ( response . statusText ) ) ;
}
/***/ } ) ,
/* 26 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var _slicedToArray = function ( ) { function sliceIterator ( arr , i ) { var _arr = [ ] ; var _n = true ; var _d = false ; var _e = undefined ; try { for ( var _i = arr [ Symbol . iterator ] ( ) , _s ; ! ( _n = ( _s = _i . next ( ) ) . done ) ; _n = true ) { _arr . push ( _s . value ) ; if ( i && _arr . length === i ) break ; } } catch ( err ) { _d = true ; _e = err ; } finally { try { if ( ! _n && _i [ "return" ] ) _i [ "return" ] ( ) ; } finally { if ( _d ) throw _e ; } } return _arr ; } return function ( arr , i ) { if ( Array . isArray ( arr ) ) { return arr ; } else if ( Symbol . iterator in Object ( arr ) ) { return sliceIterator ( arr , i ) ; } else { throw new TypeError ( "Invalid attempt to destructure non-iterable instance" ) ; } } ; } ( ) ;
exports . doFetchBlackListedOutpoints = doFetchBlackListedOutpoints ;
exports . doBlackListedOutpointsSubscribe = doBlackListedOutpointsSubscribe ;
var _lbryapi = _ _webpack _require _ _ ( 9 ) ;
var _lbryapi2 = _interopRequireDefault ( _lbryapi ) ;
var _action _types = _ _webpack _require _ _ ( 4 ) ;
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { default : obj } ; }
var CHECK _BLACK _LISTED _CONTENT _INTERVAL = 60 * 60 * 1000 ;
function doFetchBlackListedOutpoints ( ) {
return function ( dispatch ) {
dispatch ( {
type : ACTIONS . FETCH _BLACK _LISTED _CONTENT _STARTED
} ) ;
var success = function success ( _ref ) {
var outpoints = _ref . outpoints ;
var splitedOutpoints = [ ] ;
outpoints . forEach ( function ( outpoint , index ) {
var _outpoint$split = outpoint . split ( ':' ) ,
_outpoint$split2 = _slicedToArray ( _outpoint$split , 2 ) ,
txid = _outpoint$split2 [ 0 ] ,
nout = _outpoint$split2 [ 1 ] ;
splitedOutpoints [ index ] = { txid : txid , nout : Number . parseInt ( nout , 10 ) } ;
} ) ;
dispatch ( {
type : ACTIONS . FETCH _BLACK _LISTED _CONTENT _COMPLETED ,
data : {
outpoints : splitedOutpoints ,
success : true
}
} ) ;
} ;
var failure = function failure ( _ref2 ) {
var error = _ref2 . error ;
dispatch ( {
type : ACTIONS . FETCH _BLACK _LISTED _CONTENT _FAILED ,
data : {
error : error ,
success : false
}
} ) ;
} ;
_lbryapi2 . default . call ( 'file' , 'list_blocked' ) . then ( success , failure ) ;
} ;
}
function doBlackListedOutpointsSubscribe ( ) {
return function ( dispatch ) {
dispatch ( doFetchBlackListedOutpoints ( ) ) ;
setInterval ( function ( ) {
return dispatch ( doFetchBlackListedOutpoints ( ) ) ;
} , CHECK _BLACK _LISTED _CONTENT _INTERVAL ) ;
} ;
}
/***/ } ) ,
/* 27 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . doUpdateBalance = doUpdateBalance ;
exports . doBalanceSubscribe = doBalanceSubscribe ;
exports . doFetchTransactions = doFetchTransactions ;
exports . doFetchBlock = doFetchBlock ;
exports . doGetNewAddress = doGetNewAddress ;
exports . doCheckAddressIsMine = doCheckAddressIsMine ;
exports . doSendDraftTransaction = doSendDraftTransaction ;
exports . doSetDraftTransactionAmount = doSetDraftTransactionAmount ;
exports . doSetDraftTransactionAddress = doSetDraftTransactionAddress ;
exports . doSendSupport = doSendSupport ;
var _action _types = _ _webpack _require _ _ ( 4 ) ;
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
var _lbry = _ _webpack _require _ _ ( 6 ) ;
var _lbry2 = _interopRequireDefault ( _lbry ) ;
var _notifications = _ _webpack _require _ _ ( 3 ) ;
var _wallet = _ _webpack _require _ _ ( 28 ) ;
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { default : obj } ; }
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
function doUpdateBalance ( ) {
return function ( dispatch , getState ) {
var _getState = getState ( ) ,
balanceInStore = _getState . wallet . balance ;
_lbry2 . default . wallet _balance ( ) . then ( function ( balance ) {
if ( balanceInStore !== balance ) {
dispatch ( {
type : ACTIONS . UPDATE _BALANCE ,
data : {
balance : balance
}
} ) ;
}
} ) ;
} ;
}
function doBalanceSubscribe ( ) {
return function ( dispatch ) {
dispatch ( doUpdateBalance ( ) ) ;
setInterval ( function ( ) {
return dispatch ( doUpdateBalance ( ) ) ;
} , 5000 ) ;
} ;
}
function doFetchTransactions ( ) {
return function ( dispatch ) {
dispatch ( {
type : ACTIONS . FETCH _TRANSACTIONS _STARTED
} ) ;
_lbry2 . default . transaction _list ( ) . then ( function ( results ) {
dispatch ( {
type : ACTIONS . FETCH _TRANSACTIONS _COMPLETED ,
data : {
transactions : results
}
} ) ;
} ) ;
} ;
}
function doFetchBlock ( height ) {
return function ( dispatch ) {
_lbry2 . default . block _show ( { height : height } ) . then ( function ( block ) {
dispatch ( {
type : ACTIONS . FETCH _BLOCK _SUCCESS ,
data : { block : block }
} ) ;
} ) ;
} ;
}
function doGetNewAddress ( ) {
return function ( dispatch ) {
dispatch ( {
type : ACTIONS . GET _NEW _ADDRESS _STARTED
} ) ;
// Removed localStorage use, since address is expected to be stored in redux store
_lbry2 . default . wallet _new _address ( ) . then ( function ( address ) {
dispatch ( {
type : ACTIONS . GET _NEW _ADDRESS _COMPLETED ,
data : { address : address }
} ) ;
} ) ;
} ;
}
function doCheckAddressIsMine ( address ) {
return function ( dispatch ) {
dispatch ( {
type : ACTIONS . CHECK _ADDRESS _IS _MINE _STARTED
} ) ;
_lbry2 . default . wallet _is _address _mine ( { address : address } ) . then ( function ( isMine ) {
if ( ! isMine ) dispatch ( doGetNewAddress ( ) ) ;
dispatch ( {
type : ACTIONS . CHECK _ADDRESS _IS _MINE _COMPLETED
} ) ;
} ) ;
} ;
}
function doSendDraftTransaction ( address , amount ) {
return function ( dispatch , getState ) {
var state = getState ( ) ;
var balance = ( 0 , _wallet . selectBalance ) ( state ) ;
if ( balance - amount <= 0 ) {
dispatch ( ( 0 , _notifications . doNotify ) ( {
title : 'Insufficient credits' ,
message : 'Insufficient credits' ,
type : 'error' ,
displayType : [ 'modal' , 'toast' ]
} ) ) ;
return ;
}
dispatch ( {
type : ACTIONS . SEND _TRANSACTION _STARTED
} ) ;
var successCallback = function successCallback ( results ) {
if ( results === true ) {
dispatch ( {
type : ACTIONS . SEND _TRANSACTION _COMPLETED
} ) ;
dispatch ( ( 0 , _notifications . doNotify ) ( {
title : 'Credits sent' ,
message : 'You sent ' + amount + ' LBC' ,
type : 'error' ,
displayType : [ 'snackbar' , 'toast' ] ,
linkText : 'History' ,
linkTarget : '/wallet'
} ) ) ;
} else {
dispatch ( {
type : ACTIONS . SEND _TRANSACTION _FAILED ,
data : { error : results }
} ) ;
dispatch ( ( 0 , _notifications . doNotify ) ( {
title : 'Transaction failed' ,
message : 'Transaction failed' ,
type : 'error' ,
displayType : [ 'snackbar' , 'toast' ]
} ) ) ;
}
} ;
var errorCallback = function errorCallback ( error ) {
dispatch ( {
type : ACTIONS . SEND _TRANSACTION _FAILED ,
data : { error : error . message }
} ) ;
dispatch ( ( 0 , _notifications . doNotify ) ( {
title : 'Transaction failed' ,
message : 'Transaction failed' ,
type : 'error' ,
displayType : [ 'snackbar' , 'toast' ]
} ) ) ;
} ;
_lbry2 . default . wallet _send ( {
amount : amount ,
address : address
} ) . then ( successCallback , errorCallback ) ;
} ;
}
function doSetDraftTransactionAmount ( amount ) {
return {
type : ACTIONS . SET _DRAFT _TRANSACTION _AMOUNT ,
data : { amount : amount }
} ;
}
function doSetDraftTransactionAddress ( address ) {
return {
type : ACTIONS . SET _DRAFT _TRANSACTION _ADDRESS ,
data : { address : address }
} ;
}
function doSendSupport ( amount , claimId , uri , successCallback , errorCallback ) {
return function ( dispatch , getState ) {
var state = getState ( ) ;
var balance = ( 0 , _wallet . selectBalance ) ( state ) ;
if ( balance - amount <= 0 ) {
dispatch ( ( 0 , _notifications . doNotify ) ( {
title : 'Insufficient credits' ,
message : 'Insufficient credits' ,
type : 'error' ,
displayType : [ 'modal' , 'toast' ]
} ) ) ;
return ;
}
var success = function success ( ) {
dispatch ( ( 0 , _notifications . doNotify ) ( {
message : _ _ ( 'You sent ' + amount + ' LBC as support, Mahalo!' ) ,
linkText : _ _ ( 'History' ) ,
linkTarget : _ _ ( '/wallet' ) ,
displayType : [ 'snackbar' ]
} ) ) ;
dispatch ( {
type : ACTIONS . SUPPORT _TRANSACTION _COMPLETED
} ) ;
if ( successCallback ) {
successCallback ( ) ;
}
} ;
var error = function error ( err ) {
dispatch ( ( 0 , _notifications . doNotify ) ( {
message : _ _ ( 'There was an error sending support funds.' ) ,
displayType : [ 'snackbar' ]
} ) ) ;
dispatch ( {
type : ACTIONS . SUPPORT _TRANSACTION _FAILED ,
data : {
error : err
}
} ) ;
if ( errorCallback ) {
errorCallback ( ) ;
}
} ;
dispatch ( {
type : ACTIONS . SUPPORT _TRANSACTION _STARTED
} ) ;
_lbry2 . default . wallet _send ( {
claim _id : claimId ,
amount : amount
} ) . then ( success , error ) ;
} ;
}
/***/ } ) ,
/* 28 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . makeSelectBlockDate = exports . selectBlocks = exports . selectDraftTransactionError = exports . selectDraftTransactionAddress = exports . selectDraftTransactionAmount = exports . selectDraftTransaction = exports . selectGettingNewAddress = exports . selectReceiveAddress = exports . selectIsSendingSupport = exports . selectIsFetchingTransactions = exports . selectHasTransactions = exports . selectRecentTransactions = exports . selectTransactionItems = exports . selectTransactionsById = exports . selectBalance = exports . selectState = undefined ;
var _reselect = _ _webpack _require _ _ ( 16 ) ;
function _toConsumableArray ( arr ) { if ( Array . isArray ( arr ) ) { for ( var i = 0 , arr2 = Array ( arr . length ) ; i < arr . length ; i ++ ) { arr2 [ i ] = arr [ i ] ; } return arr2 ; } else { return Array . from ( arr ) ; } }
var selectState = exports . selectState = function selectState ( state ) {
return state . wallet || { } ;
} ;
var selectBalance = exports . selectBalance = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . balance ;
} ) ;
var selectTransactionsById = exports . selectTransactionsById = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . transactions ;
} ) ;
var selectTransactionItems = exports . selectTransactionItems = ( 0 , _reselect . createSelector ) ( selectTransactionsById , function ( byId ) {
var items = [ ] ;
Object . keys ( byId ) . forEach ( function ( txid ) {
var tx = byId [ txid ] ;
// ignore dust/fees
// it is fee only txn if all infos are also empty
if ( Math . abs ( tx . value ) === Math . abs ( tx . fee ) && tx . claim _info . length === 0 && tx . support _info . length === 0 && tx . update _info . length === 0 ) {
return ;
}
var append = [ ] ;
append . push . apply ( append , _toConsumableArray ( tx . claim _info . map ( function ( item ) {
return Object . assign ( { } , tx , item , {
type : item . claim _name [ 0 ] === '@' ? 'channel' : 'publish'
} ) ;
} ) ) ) ;
append . push . apply ( append , _toConsumableArray ( tx . support _info . map ( function ( item ) {
return Object . assign ( { } , tx , item , {
type : ! item . is _tip ? 'support' : 'tip'
} ) ;
} ) ) ) ;
append . push . apply ( append , _toConsumableArray ( tx . update _info . map ( function ( item ) {
return Object . assign ( { } , tx , item , { type : 'update' } ) ;
} ) ) ) ;
if ( ! append . length ) {
append . push ( Object . assign ( { } , tx , {
type : tx . value < 0 ? 'spend' : 'receive'
} ) ) ;
}
items . push . apply ( items , _toConsumableArray ( append . map ( function ( item ) {
// value on transaction, amount on outpoint
// amount is always positive, but should match sign of value
var amount = parseFloat ( item . balance _delta ? item . balance _delta : item . value ) ;
return {
txid : txid ,
date : tx . timestamp ? new Date ( Number ( tx . timestamp ) * 1000 ) : null ,
amount : amount ,
fee : amount < 0 ? - 1 * tx . fee / append . length : 0 ,
claim _id : item . claim _id ,
claim _name : item . claim _name ,
type : item . type || 'send' ,
nout : item . nout
} ;
} ) ) ) ;
} ) ;
return items . reverse ( ) ;
} ) ;
var selectRecentTransactions = exports . selectRecentTransactions = ( 0 , _reselect . createSelector ) ( selectTransactionItems , function ( transactions ) {
var threshold = new Date ( ) ;
threshold . setDate ( threshold . getDate ( ) - 7 ) ;
return transactions . filter ( function ( transaction ) {
return transaction . date > threshold ;
} ) ;
} ) ;
var selectHasTransactions = exports . selectHasTransactions = ( 0 , _reselect . createSelector ) ( selectTransactionItems , function ( transactions ) {
return transactions && transactions . length > 0 ;
} ) ;
var selectIsFetchingTransactions = exports . selectIsFetchingTransactions = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . fetchingTransactions ;
} ) ;
var selectIsSendingSupport = exports . selectIsSendingSupport = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . sendingSupport ;
} ) ;
var selectReceiveAddress = exports . selectReceiveAddress = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . receiveAddress ;
} ) ;
var selectGettingNewAddress = exports . selectGettingNewAddress = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . gettingNewAddress ;
} ) ;
var selectDraftTransaction = exports . selectDraftTransaction = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . draftTransaction || { } ;
} ) ;
var selectDraftTransactionAmount = exports . selectDraftTransactionAmount = ( 0 , _reselect . createSelector ) ( selectDraftTransaction , function ( draft ) {
return draft . amount ;
} ) ;
var selectDraftTransactionAddress = exports . selectDraftTransactionAddress = ( 0 , _reselect . createSelector ) ( selectDraftTransaction , function ( draft ) {
return draft . address ;
} ) ;
var selectDraftTransactionError = exports . selectDraftTransactionError = ( 0 , _reselect . createSelector ) ( selectDraftTransaction , function ( draft ) {
return draft . error ;
} ) ;
var selectBlocks = exports . selectBlocks = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . blocks ;
} ) ;
var makeSelectBlockDate = exports . makeSelectBlockDate = function makeSelectBlockDate ( block ) {
return ( 0 , _reselect . createSelector ) ( selectBlocks , function ( blocks ) {
return blocks && blocks [ block ] ? new Date ( blocks [ block ] . time * 1000 ) : undefined ;
} ) ;
} ;
/***/ } ) ,
/* 29 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . formatCredits = formatCredits ;
exports . formatFullPrice = formatFullPrice ;
function formatCredits ( amount , precision ) {
return amount . toFixed ( precision || 1 ) . replace ( /\.?0+$/ , '' ) ;
}
function formatFullPrice ( amount ) {
var precision = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : 1 ;
var formated = '' ;
var quantity = amount . toString ( ) . split ( '.' ) ;
var fraction = quantity [ 1 ] ;
if ( fraction ) {
var decimals = fraction . split ( '' ) ;
var first = decimals . filter ( function ( number ) {
return number !== '0' ;
} ) [ 0 ] ;
var index = decimals . indexOf ( first ) ;
// Set format fraction
formated = '.' + fraction . substring ( 0 , index + precision ) ;
}
return parseFloat ( quantity [ 0 ] + formated ) ;
}
/***/ } ) ,
/* 30 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var _slicedToArray = function ( ) { function sliceIterator ( arr , i ) { var _arr = [ ] ; var _n = true ; var _d = false ; var _e = undefined ; try { for ( var _i = arr [ Symbol . iterator ] ( ) , _s ; ! ( _n = ( _s = _i . next ( ) ) . done ) ; _n = true ) { _arr . push ( _s . value ) ; if ( i && _arr . length === i ) break ; } } catch ( err ) { _d = true ; _e = err ; } finally { try { if ( ! _n && _i [ "return" ] ) _i [ "return" ] ( ) ; } finally { if ( _d ) throw _e ; } } return _arr ; } return function ( arr , i ) { if ( Array . isArray ( arr ) ) { return arr ; } else if ( Symbol . iterator in Object ( arr ) ) { return sliceIterator ( arr , i ) ; } else { throw new TypeError ( "Invalid attempt to destructure non-iterable instance" ) ; } } ; } ( ) ;
exports . claimsReducer = claimsReducer ;
var _action _types = _ _webpack _require _ _ ( 4 ) ;
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
var reducers = { } ;
var defaultState = {
rewardedContentClaimIds : [ ] ,
channelClaimCounts : { }
} ;
reducers [ ACTIONS . RESOLVE _URIS _COMPLETED ] = function ( state , action ) {
var resolveInfo = action . data . resolveInfo ;
var byUri = Object . assign ( { } , state . claimsByUri ) ;
var byId = Object . assign ( { } , state . byId ) ;
var channelClaimCounts = Object . assign ( { } , state . channelClaimCounts ) ;
Object . entries ( resolveInfo ) . forEach ( function ( _ref ) {
var _ref2 = _slicedToArray ( _ref , 2 ) ,
uri = _ref2 [ 0 ] ,
_ref2$ = _ref2 [ 1 ] ,
certificate = _ref2$ . certificate ,
claimsInChannel = _ref2$ . claimsInChannel ;
if ( certificate && ! Number . isNaN ( claimsInChannel ) ) {
channelClaimCounts [ uri ] = claimsInChannel ;
}
} ) ;
Object . entries ( resolveInfo ) . forEach ( function ( _ref3 ) {
var _ref4 = _slicedToArray ( _ref3 , 2 ) ,
uri = _ref4 [ 0 ] ,
_ref4$ = _ref4 [ 1 ] ,
certificate = _ref4$ . certificate ,
claim = _ref4$ . claim ;
if ( claim ) {
byId [ claim . claim _id ] = claim ;
byUri [ uri ] = claim . claim _id ;
} else if ( claim === undefined && certificate !== undefined ) {
byId [ certificate . claim _id ] = certificate ;
// Don't point URI at the channel certificate unless it actually is
// a channel URI. This is brittle.
if ( ! uri . split ( certificate . name ) [ 1 ] . match ( /\// ) ) {
byUri [ uri ] = certificate . claim _id ;
} else {
byUri [ uri ] = null ;
}
} else {
byUri [ uri ] = null ;
}
} ) ;
return Object . assign ( { } , state , {
byId : byId ,
claimsByUri : byUri ,
channelClaimCounts : channelClaimCounts ,
resolvingUris : ( state . resolvingUris || [ ] ) . filter ( function ( uri ) {
return ! resolveInfo [ uri ] ;
} )
} ) ;
} ;
reducers [ ACTIONS . FETCH _CLAIM _LIST _MINE _STARTED ] = function ( state ) {
return Object . assign ( { } , state , {
isFetchingClaimListMine : true
} ) ;
} ;
reducers [ ACTIONS . FETCH _CLAIM _LIST _MINE _COMPLETED ] = function ( state , action ) {
var claims = action . data . claims ;
var byId = Object . assign ( { } , state . byId ) ;
var pendingById = Object . assign ( { } , state . pendingById ) ;
claims . filter ( function ( claim ) {
return claim . category && claim . category . match ( /claim/ ) ;
} ) . forEach ( function ( claim ) {
byId [ claim . claim _id ] = claim ;
var pending = Object . values ( pendingById ) . find ( function ( pendingClaim ) {
return pendingClaim . name === claim . name && pendingClaim . channel _name === claim . channel _name ;
} ) ;
if ( pending ) {
delete pendingById [ pending . claim _id ] ;
}
} ) ;
// Remove old timed out pending publishes
Object . values ( pendingById ) . filter ( function ( pendingClaim ) {
return Date . now ( ) - pendingClaim . time >= 20 * 60 * 1000 ;
} ) . forEach ( function ( pendingClaim ) {
delete pendingById [ pendingClaim . claim _id ] ;
} ) ;
return Object . assign ( { } , state , {
isFetchingClaimListMine : false ,
myClaims : claims ,
byId : byId ,
pendingById : pendingById
} ) ;
} ;
2018-05-16 05:26:31 +02:00
reducers [ ACTIONS . FETCH _CHANNEL _LIST _STARTED ] = function ( state ) {
2018-05-15 06:18:50 +02:00
return Object . assign ( { } , state , { fetchingMyChannels : true } ) ;
} ;
2018-05-16 05:26:31 +02:00
reducers [ ACTIONS . FETCH _CHANNEL _LIST _COMPLETED ] = function ( state , action ) {
2018-05-15 06:18:50 +02:00
var claims = action . data . claims ;
var myChannelClaims = new Set ( state . myChannelClaims ) ;
var byId = Object . assign ( { } , state . byId ) ;
claims . forEach ( function ( claim ) {
myChannelClaims . add ( claim . claim _id ) ;
byId [ claims . claim _id ] = claim ;
} ) ;
return Object . assign ( { } , state , {
byId : byId ,
fetchingMyChannels : false ,
myChannelClaims : myChannelClaims
} ) ;
} ;
reducers [ ACTIONS . FETCH _CHANNEL _CLAIMS _STARTED ] = function ( state , action ) {
var _action$data = action . data ,
uri = _action$data . uri ,
page = _action$data . page ;
var fetchingChannelClaims = Object . assign ( { } , state . fetchingChannelClaims ) ;
fetchingChannelClaims [ uri ] = page ;
return Object . assign ( { } , state , {
fetchingChannelClaims : fetchingChannelClaims
} ) ;
} ;
reducers [ ACTIONS . FETCH _CHANNEL _CLAIMS _COMPLETED ] = function ( state , action ) {
var _action$data2 = action . data ,
uri = _action$data2 . uri ,
claims = _action$data2 . claims ,
page = _action$data2 . page ;
var claimsByChannel = Object . assign ( { } , state . claimsByChannel ) ;
var byChannel = Object . assign ( { } , claimsByChannel [ uri ] ) ;
var allClaimIds = new Set ( byChannel . all ) ;
var currentPageClaimIds = [ ] ;
var byId = Object . assign ( { } , state . byId ) ;
var fetchingChannelClaims = Object . assign ( { } , state . fetchingChannelClaims ) ;
if ( claims !== undefined ) {
claims . forEach ( function ( claim ) {
allClaimIds . add ( claim . claim _id ) ;
currentPageClaimIds . push ( claim . claim _id ) ;
byId [ claim . claim _id ] = claim ;
} ) ;
}
byChannel . all = allClaimIds ;
byChannel [ page ] = currentPageClaimIds ;
claimsByChannel [ uri ] = byChannel ;
delete fetchingChannelClaims [ uri ] ;
return Object . assign ( { } , state , {
claimsByChannel : claimsByChannel ,
byId : byId ,
fetchingChannelClaims : fetchingChannelClaims
} ) ;
} ;
reducers [ ACTIONS . ABANDON _CLAIM _STARTED ] = function ( state , action ) {
var claimId = action . data . claimId ;
var abandoningById = Object . assign ( { } , state . abandoningById ) ;
abandoningById [ claimId ] = true ;
return Object . assign ( { } , state , {
abandoningById : abandoningById
} ) ;
} ;
reducers [ ACTIONS . ABANDON _CLAIM _SUCCEEDED ] = function ( state , action ) {
var claimId = action . data . claimId ;
var byId = Object . assign ( { } , state . byId ) ;
var claimsByUri = Object . assign ( { } , state . claimsByUri ) ;
Object . keys ( claimsByUri ) . forEach ( function ( uri ) {
if ( claimsByUri [ uri ] === claimId ) {
delete claimsByUri [ uri ] ;
}
} ) ;
delete byId [ claimId ] ;
return Object . assign ( { } , state , {
byId : byId ,
claimsByUri : claimsByUri
} ) ;
} ;
reducers [ ACTIONS . CREATE _CHANNEL _COMPLETED ] = function ( state , action ) {
var channelClaim = action . data . channelClaim ;
var byId = Object . assign ( { } , state . byId ) ;
var myChannelClaims = new Set ( state . myChannelClaims ) ;
byId [ channelClaim . claim _id ] = channelClaim ;
myChannelClaims . add ( channelClaim . claim _id ) ;
return Object . assign ( { } , state , {
byId : byId ,
myChannelClaims : myChannelClaims
} ) ;
} ;
reducers [ ACTIONS . FETCH _FEATURED _CONTENT _STARTED ] = function ( state ) {
return Object . assign ( { } , state , {
fetchingFeaturedContent : true
} ) ;
} ;
reducers [ ACTIONS . FETCH _FEATURED _CONTENT _COMPLETED ] = function ( state , action ) {
var _action$data3 = action . data ,
uris = _action$data3 . uris ,
success = _action$data3 . success ;
return Object . assign ( { } , state , {
fetchingFeaturedContent : false ,
fetchingFeaturedContentFailed : ! success ,
featuredUris : uris
} ) ;
} ;
reducers [ ACTIONS . FETCH _REWARD _CONTENT _COMPLETED ] = function ( state , action ) {
var claimIds = action . data . claimIds ;
return Object . assign ( { } , state , {
rewardedContentClaimIds : claimIds
} ) ;
} ;
reducers [ ACTIONS . RESOLVE _URIS _STARTED ] = function ( state , action ) {
var uris = action . data . uris ;
var oldResolving = state . resolvingUris || [ ] ;
var newResolving = Object . assign ( [ ] , oldResolving ) ;
uris . forEach ( function ( uri ) {
if ( ! newResolving . includes ( uri ) ) {
newResolving . push ( uri ) ;
}
} ) ;
return Object . assign ( { } , state , {
resolvingUris : newResolving
} ) ;
} ;
reducers [ ACTIONS . FETCH _CHANNEL _CLAIM _COUNT _COMPLETED ] = function ( state , action ) {
var channelClaimCounts = Object . assign ( { } , state . channelClaimCounts ) ;
var _action$data4 = action . data ,
uri = _action$data4 . uri ,
totalClaims = _action$data4 . totalClaims ;
channelClaimCounts [ uri ] = totalClaims ;
return Object . assign ( { } , state , {
channelClaimCounts : channelClaimCounts
} ) ;
} ;
function claimsReducer ( ) {
var state = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : defaultState ;
var action = arguments [ 1 ] ;
var handler = reducers [ action . type ] ;
if ( handler ) return handler ( state , action ) ;
return state ;
}
/***/ } ) ,
/* 31 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . costInfoReducer = costInfoReducer ;
var _action _types = _ _webpack _require _ _ ( 4 ) ;
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
var reducers = { } ;
var defaultState = { } ;
reducers [ ACTIONS . FETCH _COST _INFO _STARTED ] = function ( state , action ) {
var uri = action . data . uri ;
var newFetching = Object . assign ( { } , state . fetching ) ;
newFetching [ uri ] = true ;
return Object . assign ( { } , state , {
fetching : newFetching
} ) ;
} ;
reducers [ ACTIONS . FETCH _COST _INFO _COMPLETED ] = function ( state , action ) {
var _action$data = action . data ,
uri = _action$data . uri ,
costInfo = _action$data . costInfo ;
var newByUri = Object . assign ( { } , state . byUri ) ;
var newFetching = Object . assign ( { } , state . fetching ) ;
newByUri [ uri ] = costInfo ;
delete newFetching [ uri ] ;
return Object . assign ( { } , state , {
byUri : newByUri ,
fetching : newFetching
} ) ;
} ;
function costInfoReducer ( ) {
var state = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : defaultState ;
var action = arguments [ 1 ] ;
var handler = reducers [ action . type ] ;
if ( handler ) return handler ( state , action ) ;
return state ;
}
/***/ } ) ,
/* 32 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . fileInfoReducer = fileInfoReducer ;
var _action _types = _ _webpack _require _ _ ( 4 ) ;
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
var reducers = { } ;
var defaultState = { } ;
reducers [ ACTIONS . FILE _LIST _STARTED ] = function ( state ) {
return Object . assign ( { } , state , {
isFetchingFileList : true
} ) ;
} ;
reducers [ ACTIONS . FILE _LIST _SUCCEEDED ] = function ( state , action ) {
var fileInfos = action . data . fileInfos ;
var newByOutpoint = Object . assign ( { } , state . byOutpoint ) ;
var pendingByOutpoint = Object . assign ( { } , state . pendingByOutpoint ) ;
fileInfos . forEach ( function ( fileInfo ) {
var outpoint = fileInfo . outpoint ;
if ( outpoint ) newByOutpoint [ fileInfo . outpoint ] = fileInfo ;
} ) ;
return Object . assign ( { } , state , {
isFetchingFileList : false ,
byOutpoint : newByOutpoint ,
pendingByOutpoint : pendingByOutpoint
} ) ;
} ;
reducers [ ACTIONS . FETCH _FILE _INFO _STARTED ] = function ( state , action ) {
var outpoint = action . data . outpoint ;
var newFetching = Object . assign ( { } , state . fetching ) ;
newFetching [ outpoint ] = true ;
return Object . assign ( { } , state , {
fetching : newFetching
} ) ;
} ;
reducers [ ACTIONS . FETCH _FILE _INFO _COMPLETED ] = function ( state , action ) {
var _action$data = action . data ,
fileInfo = _action$data . fileInfo ,
outpoint = _action$data . outpoint ;
var newByOutpoint = Object . assign ( { } , state . byOutpoint ) ;
var newFetching = Object . assign ( { } , state . fetching ) ;
newByOutpoint [ outpoint ] = fileInfo ;
delete newFetching [ outpoint ] ;
return Object . assign ( { } , state , {
byOutpoint : newByOutpoint ,
fetching : newFetching
} ) ;
} ;
reducers [ ACTIONS . DOWNLOADING _STARTED ] = function ( state , action ) {
var _action$data2 = action . data ,
uri = _action$data2 . uri ,
outpoint = _action$data2 . outpoint ,
fileInfo = _action$data2 . fileInfo ;
var newByOutpoint = Object . assign ( { } , state . byOutpoint ) ;
var newDownloading = Object . assign ( { } , state . downloadingByOutpoint ) ;
var newLoading = Object . assign ( { } , state . urisLoading ) ;
newDownloading [ outpoint ] = true ;
newByOutpoint [ outpoint ] = fileInfo ;
delete newLoading [ uri ] ;
return Object . assign ( { } , state , {
downloadingByOutpoint : newDownloading ,
urisLoading : newLoading ,
byOutpoint : newByOutpoint
} ) ;
} ;
reducers [ ACTIONS . DOWNLOADING _PROGRESSED ] = function ( state , action ) {
var _action$data3 = action . data ,
outpoint = _action$data3 . outpoint ,
fileInfo = _action$data3 . fileInfo ;
var newByOutpoint = Object . assign ( { } , state . byOutpoint ) ;
var newDownloading = Object . assign ( { } , state . downloadingByOutpoint ) ;
newByOutpoint [ outpoint ] = fileInfo ;
newDownloading [ outpoint ] = true ;
return Object . assign ( { } , state , {
byOutpoint : newByOutpoint ,
downloadingByOutpoint : newDownloading
} ) ;
} ;
reducers [ ACTIONS . DOWNLOADING _COMPLETED ] = function ( state , action ) {
var _action$data4 = action . data ,
outpoint = _action$data4 . outpoint ,
fileInfo = _action$data4 . fileInfo ;
var newByOutpoint = Object . assign ( { } , state . byOutpoint ) ;
var newDownloading = Object . assign ( { } , state . downloadingByOutpoint ) ;
newByOutpoint [ outpoint ] = fileInfo ;
delete newDownloading [ outpoint ] ;
return Object . assign ( { } , state , {
byOutpoint : newByOutpoint ,
downloadingByOutpoint : newDownloading
} ) ;
} ;
reducers [ ACTIONS . FILE _DELETE ] = function ( state , action ) {
var outpoint = action . data . outpoint ;
var newByOutpoint = Object . assign ( { } , state . byOutpoint ) ;
var downloadingByOutpoint = Object . assign ( { } , state . downloadingByOutpoint ) ;
delete newByOutpoint [ outpoint ] ;
delete downloadingByOutpoint [ outpoint ] ;
return Object . assign ( { } , state , {
byOutpoint : newByOutpoint ,
downloadingByOutpoint : downloadingByOutpoint
} ) ;
} ;
reducers [ ACTIONS . LOADING _VIDEO _STARTED ] = function ( state , action ) {
var uri = action . data . uri ;
var newLoading = Object . assign ( { } , state . urisLoading ) ;
newLoading [ uri ] = true ;
return Object . assign ( { } , state , {
urisLoading : newLoading
} ) ;
} ;
reducers [ ACTIONS . LOADING _VIDEO _FAILED ] = function ( state , action ) {
var uri = action . data . uri ;
var newLoading = Object . assign ( { } , state . urisLoading ) ;
delete newLoading [ uri ] ;
return Object . assign ( { } , state , {
urisLoading : newLoading
} ) ;
} ;
reducers [ ACTIONS . FETCH _DATE ] = function ( state , action ) {
var time = action . data . time ;
if ( time ) {
return Object . assign ( { } , state , {
publishedDate : time
} ) ;
}
return null ;
} ;
function fileInfoReducer ( ) {
var state = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : defaultState ;
var action = arguments [ 1 ] ;
var handler = reducers [ action . type ] ;
if ( handler ) return handler ( state , action ) ;
return state ;
}
/***/ } ) ,
/* 33 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . notificationsReducer = notificationsReducer ;
var _action _types = _ _webpack _require _ _ ( 4 ) ;
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
var _modal _types = _ _webpack _require _ _ ( 34 ) ;
var MODALS = _interopRequireWildcard ( _modal _types ) ;
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
var reducers = { } ;
var defaultState = {
// First-in, first-out
queue : [ ]
} ;
reducers [ ACTIONS . CREATE _NOTIFICATION ] = function ( state , action ) {
var _action$data = action . data ,
notification = _action$data . notification ,
notificationProps = _action$data . notificationProps ;
var title = notification . title ,
message = notification . message ,
type = notification . type ,
error = notification . error ,
displayType = notification . displayType ,
id = notification . id ;
var uri = notificationProps . uri ,
nout = notificationProps . nout ,
txid = notificationProps . txid ;
var queue = Object . assign ( [ ] , state . queue ) ;
queue . push ( {
notification : {
id : id ,
title : title ,
message : message ,
type : type ,
error : error ,
displayType : displayType
} ,
notificationProps : {
uri : uri ,
txid : txid ,
nout : nout
}
} ) ;
return Object . assign ( { } , state , {
queue : queue
} ) ;
} ;
reducers [ ACTIONS . DISMISS _NOTIFICATION ] = function ( state ) {
var queue = Object . assign ( [ ] , state . queue ) ;
queue . shift ( ) ;
return Object . assign ( { } , state , {
queue : queue
} ) ;
} ;
reducers [ ACTIONS . HISTORY _NAVIGATE ] = function ( state ) {
var queue = Object . assign ( [ ] , state . queue ) ;
if ( queue [ 0 ] && queue [ 0 ] . notification . id === MODALS . SEARCH ) {
queue . shift ( ) ;
return Object . assign ( { } , state , { queue : queue } ) ;
}
return state ;
} ;
function notificationsReducer ( ) {
var state = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : defaultState ;
var action = arguments [ 1 ] ;
var handler = reducers [ action . type ] ;
if ( handler ) return handler ( state , action ) ;
return state ;
}
/***/ } ) ,
/* 34 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var CONFIRM _FILE _REMOVE = exports . CONFIRM _FILE _REMOVE = 'confirm_file_remove' ;
var CONFIRM _EXTERNAL _LINK = exports . CONFIRM _EXTERNAL _LINK = 'confirm_external_link' ;
var INCOMPATIBLE _DAEMON = exports . INCOMPATIBLE _DAEMON = 'incompatible_daemon' ;
var FILE _TIMEOUT = exports . FILE _TIMEOUT = 'file_timeout' ;
var DOWNLOADING = exports . DOWNLOADING = 'downloading' ;
var AUTO _UPDATE _DOWNLOADED = exports . AUTO _UPDATE _DOWNLOADED = 'auto_update_downloaded' ;
var AUTO _UPDATE _CONFIRM = exports . AUTO _UPDATE _CONFIRM = 'auto_update_confirm' ;
var ERROR = exports . ERROR = 'error' ;
var INSUFFICIENT _CREDITS = exports . INSUFFICIENT _CREDITS = 'insufficient_credits' ;
var UPGRADE = exports . UPGRADE = 'upgrade' ;
var WELCOME = exports . WELCOME = 'welcome' ;
var EMAIL _COLLECTION = exports . EMAIL _COLLECTION = 'email_collection' ;
var PHONE _COLLECTION = exports . PHONE _COLLECTION = 'phone_collection' ;
var FIRST _REWARD = exports . FIRST _REWARD = 'first_reward' ;
var AUTHENTICATION _FAILURE = exports . AUTHENTICATION _FAILURE = 'auth_failure' ;
var TRANSACTION _FAILED = exports . TRANSACTION _FAILED = 'transaction_failed' ;
var REWARD _APPROVAL _REQUIRED = exports . REWARD _APPROVAL _REQUIRED = 'reward_approval_required' ;
var AFFIRM _PURCHASE = exports . AFFIRM _PURCHASE = 'affirm_purchase' ;
var CONFIRM _CLAIM _REVOKE = exports . CONFIRM _CLAIM _REVOKE = 'confirm_claim_revoke' ;
var FIRST _SUBSCRIPTION = exports . FIRST _SUBSCRIPTION = 'firstSubscription' ;
var SEND _TIP = exports . SEND _TIP = 'send_tip' ;
var PUBLISH = exports . PUBLISH = 'publish' ;
var SEARCH = exports . SEARCH = 'search' ;
/***/ } ) ,
/* 35 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . searchReducer = undefined ;
var _handleActions ;
var _extends = Object . assign || function ( target ) { for ( var i = 1 ; i < arguments . length ; i ++ ) { var source = arguments [ i ] ; for ( var key in source ) { if ( Object . prototype . hasOwnProperty . call ( source , key ) ) { target [ key ] = source [ key ] ; } } } return target ; } ; // @flow
var _action _types = _ _webpack _require _ _ ( 4 ) ;
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
var _reduxUtils = _ _webpack _require _ _ ( 36 ) ;
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
function _defineProperty ( obj , key , value ) { if ( key in obj ) { Object . defineProperty ( obj , key , { value : value , enumerable : true , configurable : true , writable : true } ) ; } else { obj [ key ] = value ; } return obj ; }
/ * : : t y p e S e a r c h S u c c e s s = {
type : ACTIONS . SEARCH _SUCCESS ,
data : {
query : string ,
uris : Array < string > ,
} ,
} ; * /
/ * : : t y p e U p d a t e S e a r c h Q u e r y = {
type : ACTIONS . UPDATE _SEARCH _QUERY ,
data : {
query : string ,
} ,
} ; * /
/ * : : t y p e S e a r c h S u g g e s t i o n = {
value : string ,
shorthand : string ,
type : string ,
} ; * /
/ * : : t y p e U p d a t e S e a r c h S u g g e s t i o n s = {
type : ACTIONS . UPDATE _SEARCH _SUGGESTIONS ,
data : {
suggestions : Array < SearchSuggestion > ,
} ,
} ; * /
/ * : : t y p e S e a r c h S t a t e = {
isActive : boolean ,
searchQuery : string ,
suggestions : Array < SearchSuggestion > ,
urisByQuery : { } ,
} ; * /
var defaultState = {
isActive : false , // does the user have any typed text in the search input
focused : false , // is the search input focused
searchQuery : '' , // needs to be an empty string for input focusing
suggestions : [ ] ,
urisByQuery : { }
} ;
var searchReducer = exports . searchReducer = ( 0 , _reduxUtils . handleActions ) ( ( _handleActions = { } , _defineProperty ( _handleActions , ACTIONS . SEARCH _START , function ( state /*: SearchState*/ ) /*: SearchState*/ {
return _extends ( { } , state , {
searching : true
} ) ;
} ) , _defineProperty ( _handleActions , ACTIONS . SEARCH _SUCCESS , function ( state /*: SearchState*/ , action /*: SearchSuccess*/ ) /*: SearchState*/ {
var _action$data = action . data ,
query = _action$data . query ,
uris = _action$data . uris ;
return _extends ( { } , state , {
searching : false ,
urisByQuery : Object . assign ( { } , state . urisByQuery , _defineProperty ( { } , query , uris ) )
} ) ;
} ) , _defineProperty ( _handleActions , ACTIONS . SEARCH _FAIL , function ( state /*: SearchState*/ ) /*: SearchState*/ {
return _extends ( { } , state , {
searching : false
} ) ;
} ) , _defineProperty ( _handleActions , ACTIONS . UPDATE _SEARCH _QUERY , function ( state /*: SearchState*/ , action /*: UpdateSearchQuery*/ ) /*: SearchState*/ {
return _extends ( { } , state , {
searchQuery : action . data . query ,
isActive : true
} ) ;
} ) , _defineProperty ( _handleActions , ACTIONS . UPDATE _SEARCH _SUGGESTIONS , function ( state /*: SearchState*/ , action /*: UpdateSearchSuggestions*/ ) /*: SearchState*/ {
return _extends ( { } , state , {
suggestions : action . data . suggestions
} ) ;
} ) , _defineProperty ( _handleActions , ACTIONS . HISTORY _NAVIGATE , function ( state /*: SearchState*/ ) /*: SearchState*/ {
return _extends ( { } , state , {
searchQuery : '' ,
suggestions : [ ] ,
isActive : false
} ) ;
} ) , _defineProperty ( _handleActions , ACTIONS . DISMISS _NOTIFICATION , function ( state /*: SearchState*/ ) /*: SearchState*/ {
return _extends ( { } , state , {
isActive : false
} ) ;
} ) , _defineProperty ( _handleActions , ACTIONS . SEARCH _FOCUS , function ( state /*: SearchState*/ ) /*: SearchState*/ {
return _extends ( { } , state , {
focused : true
} ) ;
} ) , _defineProperty ( _handleActions , ACTIONS . SEARCH _BLUR , function ( state /*: SearchState*/ ) /*: SearchState*/ {
return _extends ( { } , state , {
focused : false
} ) ;
} ) , _handleActions ) , defaultState ) ;
/***/ } ) ,
/* 36 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
// util for creating reducers
// based off of redux-actions
// https://redux-actions.js.org/docs/api/handleAction.html#handleactions
// eslint-disable-next-line import/prefer-default-export
var handleActions = exports . handleActions = function handleActions ( actionMap , defaultState ) {
return function ( ) {
var state = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : defaultState ;
var action = arguments [ 1 ] ;
var handler = actionMap [ action . type ] ;
if ( handler ) {
var newState = handler ( state , action ) ;
return Object . assign ( { } , state , newState ) ;
}
// just return the original state if no handler
// returning a copy here breaks redux-persist
return state ;
} ;
} ;
/***/ } ) ,
/* 37 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . walletReducer = walletReducer ;
var _action _types = _ _webpack _require _ _ ( 4 ) ;
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
var reducers = { } ;
var buildDraftTransaction = function buildDraftTransaction ( ) {
return {
amount : undefined ,
address : undefined
} ;
} ;
var defaultState = {
balance : undefined ,
blocks : { } ,
transactions : { } ,
fetchingTransactions : false ,
gettingNewAddress : false ,
draftTransaction : buildDraftTransaction ( ) ,
sendingSupport : false
} ;
reducers [ ACTIONS . FETCH _TRANSACTIONS _STARTED ] = function ( state ) {
return Object . assign ( { } , state , {
fetchingTransactions : true
} ) ;
} ;
reducers [ ACTIONS . FETCH _TRANSACTIONS _COMPLETED ] = function ( state , action ) {
var byId = Object . assign ( { } , state . transactions ) ;
var transactions = action . data . transactions ;
transactions . forEach ( function ( transaction ) {
byId [ transaction . txid ] = transaction ;
} ) ;
return Object . assign ( { } , state , {
transactions : byId ,
fetchingTransactions : false
} ) ;
} ;
reducers [ ACTIONS . GET _NEW _ADDRESS _STARTED ] = function ( state ) {
return Object . assign ( { } , state , {
gettingNewAddress : true
} ) ;
} ;
reducers [ ACTIONS . GET _NEW _ADDRESS _COMPLETED ] = function ( state , action ) {
var address = action . data . address ;
// Say no to localStorage!
return Object . assign ( { } , state , {
gettingNewAddress : false ,
receiveAddress : address
} ) ;
} ;
reducers [ ACTIONS . UPDATE _BALANCE ] = function ( state , action ) {
return Object . assign ( { } , state , {
balance : action . data . balance
} ) ;
} ;
reducers [ ACTIONS . CHECK _ADDRESS _IS _MINE _STARTED ] = function ( state ) {
return Object . assign ( { } , state , {
checkingAddressOwnership : true
} ) ;
} ;
reducers [ ACTIONS . CHECK _ADDRESS _IS _MINE _COMPLETED ] = function ( state ) {
return Object . assign ( { } , state , {
checkingAddressOwnership : false
} ) ;
} ;
reducers [ ACTIONS . SET _DRAFT _TRANSACTION _AMOUNT ] = function ( state , action ) {
var oldDraft = state . draftTransaction ;
var newDraft = Object . assign ( { } , oldDraft , {
amount : parseFloat ( action . data . amount )
} ) ;
return Object . assign ( { } , state , {
draftTransaction : newDraft
} ) ;
} ;
reducers [ ACTIONS . SET _DRAFT _TRANSACTION _ADDRESS ] = function ( state , action ) {
var oldDraft = state . draftTransaction ;
var newDraft = Object . assign ( { } , oldDraft , {
address : action . data . address
} ) ;
return Object . assign ( { } , state , {
draftTransaction : newDraft
} ) ;
} ;
reducers [ ACTIONS . SEND _TRANSACTION _STARTED ] = function ( state ) {
var newDraftTransaction = Object . assign ( { } , state . draftTransaction , {
sending : true
} ) ;
return Object . assign ( { } , state , {
draftTransaction : newDraftTransaction
} ) ;
} ;
reducers [ ACTIONS . SEND _TRANSACTION _COMPLETED ] = function ( state ) {
return Object . assign ( { } , state , {
draftTransaction : buildDraftTransaction ( )
} ) ;
} ;
reducers [ ACTIONS . SEND _TRANSACTION _FAILED ] = function ( state , action ) {
var newDraftTransaction = Object . assign ( { } , state . draftTransaction , {
sending : false ,
error : action . data . error
} ) ;
return Object . assign ( { } , state , {
draftTransaction : newDraftTransaction
} ) ;
} ;
reducers [ ACTIONS . SUPPORT _TRANSACTION _STARTED ] = function ( state ) {
return Object . assign ( { } , state , {
sendingSupport : true
} ) ;
} ;
reducers [ ACTIONS . SUPPORT _TRANSACTION _COMPLETED ] = function ( state ) {
return Object . assign ( { } , state , {
sendingSupport : false
} ) ;
} ;
reducers [ ACTIONS . SUPPORT _TRANSACTION _FAILED ] = function ( state , action ) {
return Object . assign ( { } , state , {
error : action . data . error ,
sendingSupport : false
} ) ;
} ;
reducers [ ACTIONS . FETCH _BLOCK _SUCCESS ] = function ( state , action ) {
var _action$data = action . data ,
block = _action$data . block ,
height = _action$data . block . height ;
var blocks = Object . assign ( { } , state . blocks ) ;
blocks [ height ] = block ;
return Object . assign ( { } , state , { blocks : blocks } ) ;
} ;
function walletReducer ( ) {
var state = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : defaultState ;
var action = arguments [ 1 ] ;
var handler = reducers [ action . type ] ;
if ( handler ) return handler ( state , action ) ;
return state ;
}
/***/ } ) ,
/* 38 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . blacklistReducer = undefined ;
var _handleActions ;
var _extends = Object . assign || function ( target ) { for ( var i = 1 ; i < arguments . length ; i ++ ) { var source = arguments [ i ] ; for ( var key in source ) { if ( Object . prototype . hasOwnProperty . call ( source , key ) ) { target [ key ] = source [ key ] ; } } } return target ; } ;
var _action _types = _ _webpack _require _ _ ( 4 ) ;
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
var _reduxUtils = _ _webpack _require _ _ ( 36 ) ;
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
function _defineProperty ( obj , key , value ) { if ( key in obj ) { Object . defineProperty ( obj , key , { value : value , enumerable : true , configurable : true , writable : true } ) ; } else { obj [ key ] = value ; } return obj ; }
var defaultState = {
fetchingBlackListedOutpoints : false ,
fetchingBlackListedOutpointsSucceed : undefined ,
blackListedOutpoints : undefined
} ;
var blacklistReducer = exports . blacklistReducer = ( 0 , _reduxUtils . handleActions ) ( ( _handleActions = { } , _defineProperty ( _handleActions , ACTIONS . FETCH _BLACK _LISTED _CONTENT _STARTED , function ( state ) {
return _extends ( { } , state , {
fetchingBlackListedOutpoints : true
} ) ;
} ) , _defineProperty ( _handleActions , ACTIONS . FETCH _BLACK _LISTED _CONTENT _COMPLETED , function ( state , action ) {
var _action$data = action . data ,
outpoints = _action$data . outpoints ,
success = _action$data . success ;
return _extends ( { } , state , {
fetchingBlackListedOutpoints : false ,
fetchingBlackListedOutpointsSucceed : success ,
blackListedOutpoints : outpoints
} ) ;
} ) , _defineProperty ( _handleActions , ACTIONS . FETCH _BLACK _LISTED _CONTENT _FAILED , function ( state , action ) {
var _action$data2 = action . data ,
error = _action$data2 . error ,
success = _action$data2 . success ;
return _extends ( { } , state , {
fetchingBlackListedOutpoints : false ,
fetchingBlackListedOutpointsSucceed : success ,
fetchingBlackListedOutpointsError : error
} ) ;
} ) , _handleActions ) , defaultState ) ;
/***/ } ) ,
/* 39 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . selectBlackListedOutpoints = exports . selectState = undefined ;
var _reselect = _ _webpack _require _ _ ( 16 ) ;
var selectState = exports . selectState = function selectState ( state ) {
return state . blacklist || { } ;
} ;
var selectBlackListedOutpoints = exports . selectBlackListedOutpoints = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . blackListedOutpoints ;
} ) ;
/***/ } ) ,
/* 40 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . selectSnack = exports . selectNotificationProps = exports . selectNotification = exports . selectNotificationData = exports . selectState = undefined ;
var _reselect = _ _webpack _require _ _ ( 16 ) ;
var selectState = exports . selectState = function selectState ( state ) {
return state . notifications || { } ;
} ;
var selectNotificationData = exports . selectNotificationData = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . queue . length > 0 ? state . queue [ 0 ] : { } ;
} ) ;
var selectNotification = exports . selectNotification = ( 0 , _reselect . createSelector ) ( selectNotificationData , function ( notificationData ) {
return notificationData . notification ;
} ) ;
var selectNotificationProps = exports . selectNotificationProps = ( 0 , _reselect . createSelector ) ( selectNotificationData , function ( notificationData ) {
return notificationData . notificationProps ;
} ) ;
var selectSnack = exports . selectSnack = ( 0 , _reselect . createSelector ) (
// No props for snackbar
selectNotification , function ( notification ) {
if ( notification && notification . displayType ) {
return notification . displayType . indexOf ( 'snackbar' ) > - 1 ? notification : undefined ;
}
return undefined ;
} ) ;
/***/ } ) ,
/* 41 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . makeSelectFetchingCostInfoForUri = exports . selectFetchingCostInfo = exports . selectCostForCurrentPageUri = exports . makeSelectCostInfoForUri = exports . selectAllCostInfoByUri = exports . selectState = undefined ;
var _reselect = _ _webpack _require _ _ ( 16 ) ;
var _navigation = _ _webpack _require _ _ ( 15 ) ;
var selectState = exports . selectState = function selectState ( state ) {
return state . costInfo || { } ;
} ;
var selectAllCostInfoByUri = exports . selectAllCostInfoByUri = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . byUri || { } ;
} ) ;
var makeSelectCostInfoForUri = exports . makeSelectCostInfoForUri = function makeSelectCostInfoForUri ( uri ) {
return ( 0 , _reselect . createSelector ) ( selectAllCostInfoByUri , function ( costInfos ) {
return costInfos && costInfos [ uri ] ;
} ) ;
} ;
var selectCostForCurrentPageUri = exports . selectCostForCurrentPageUri = ( 0 , _reselect . createSelector ) ( selectAllCostInfoByUri , _navigation . selectCurrentParams , function ( costInfo , params ) {
return params . uri && costInfo [ params . uri ] ? costInfo [ params . uri ] . cost : undefined ;
} ) ;
var selectFetchingCostInfo = exports . selectFetchingCostInfo = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . fetching || { } ;
} ) ;
var makeSelectFetchingCostInfoForUri = exports . makeSelectFetchingCostInfoForUri = function makeSelectFetchingCostInfoForUri ( uri ) {
return ( 0 , _reselect . createSelector ) ( selectFetchingCostInfo , function ( fetchingByUri ) {
return fetchingByUri && fetchingByUri [ uri ] ;
} ) ;
} ;
/***/ } ) ,
/* 42 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
/* hardcoded names still exist for these in reducers/settings.js - only discovered when debugging */
/ * M a n y S E T T I N G S a r e s t o r e d i n t h e l o c a l S t o r a g e b y t h e i r n a m e -
be careful about changing the value of a SETTINGS constant , as doing so can invalidate existing SETTINGS * /
var CREDIT _REQUIRED _ACKNOWLEDGED = exports . CREDIT _REQUIRED _ACKNOWLEDGED = 'credit_required_acknowledged' ;
var NEW _USER _ACKNOWLEDGED = exports . NEW _USER _ACKNOWLEDGED = 'welcome_acknowledged' ;
var EMAIL _COLLECTION _ACKNOWLEDGED = exports . EMAIL _COLLECTION _ACKNOWLEDGED = 'email_collection_acknowledged' ;
var LANGUAGE = exports . LANGUAGE = 'language' ;
var SHOW _NSFW = exports . SHOW _NSFW = 'showNsfw' ;
var SHOW _UNAVAILABLE = exports . SHOW _UNAVAILABLE = 'showUnavailable' ;
var INSTANT _PURCHASE _ENABLED = exports . INSTANT _PURCHASE _ENABLED = 'instantPurchaseEnabled' ;
var INSTANT _PURCHASE _MAX = exports . INSTANT _PURCHASE _MAX = 'instantPurchaseMax' ;
var THEME = exports . THEME = 'theme' ;
var THEMES = exports . THEMES = 'themes' ;
var AUTOMATIC _DARK _MODE _ENABLED = exports . AUTOMATIC _DARK _MODE _ENABLED = 'automaticDarkModeEnabled' ;
// mobile settings
var BACKGROUND _PLAY _ENABLED = exports . BACKGROUND _PLAY _ENABLED = 'backgroundPlayEnabled' ;
var FOREGROUND _NOTIFICATION _ENABLED = exports . FOREGROUND _NOTIFICATION _ENABLED = 'foregroundNotificationEnabled' ;
var KEEP _DAEMON _RUNNING = exports . KEEP _DAEMON _RUNNING = 'keepDaemonRunning' ;
/***/ } )
/******/ ] ) ;
} ) ;