diff --git a/.flowconfig b/.flowconfig index be76a60..268e701 100644 --- a/.flowconfig +++ b/.flowconfig @@ -1,4 +1,5 @@ [ignore] +node_modules/ [include] diff --git a/dist/bundle.js b/dist/bundle.js index ee132fc..801fcbe 100644 --- a/dist/bundle.js +++ b/dist/bundle.js @@ -1,13 +1,13 @@ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); + module.exports = factory(require("lbry-redux")); else if(typeof define === 'function' && define.amd) - define([], factory); + define(["lbry-redux"], factory); else { - var a = factory(); + var a = typeof exports === 'object' ? factory(require("lbry-redux")) : factory(root["lbry-redux"]); for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; } -})(window, function() { +})(window, function(__WEBPACK_EXTERNAL_MODULE__4__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; @@ -353,7 +353,7 @@ Object.defineProperty(exports, 'doUserInviteNew', { } }); -var _cost_info = __webpack_require__(30); +var _cost_info = __webpack_require__(24); Object.defineProperty(exports, 'doFetchCostInfoForUri', { enumerable: true, @@ -362,7 +362,7 @@ Object.defineProperty(exports, 'doFetchCostInfoForUri', { } }); -var _blacklist = __webpack_require__(32); +var _blacklist = __webpack_require__(25); Object.defineProperty(exports, 'doBlackListedOutpointsSubscribe', { enumerable: true, @@ -371,7 +371,7 @@ Object.defineProperty(exports, 'doBlackListedOutpointsSubscribe', { } }); -var _homepage = __webpack_require__(37); +var _homepage = __webpack_require__(26); Object.defineProperty(exports, 'doFetchFeaturedUris', { enumerable: true, @@ -386,7 +386,7 @@ Object.defineProperty(exports, 'doFetchTrendingUris', { } }); -var _auth2 = __webpack_require__(24); +var _auth2 = __webpack_require__(27); Object.defineProperty(exports, 'authReducer', { enumerable: true, @@ -395,7 +395,7 @@ Object.defineProperty(exports, 'authReducer', { } }); -var _rewards2 = __webpack_require__(25); +var _rewards2 = __webpack_require__(28); Object.defineProperty(exports, 'rewardsReducer', { enumerable: true, @@ -404,7 +404,7 @@ Object.defineProperty(exports, 'rewardsReducer', { } }); -var _user2 = __webpack_require__(26); +var _user2 = __webpack_require__(29); Object.defineProperty(exports, 'userReducer', { enumerable: true, @@ -413,7 +413,7 @@ Object.defineProperty(exports, 'userReducer', { } }); -var _cost_info2 = __webpack_require__(34); +var _cost_info2 = __webpack_require__(30); Object.defineProperty(exports, 'costInfoReducer', { enumerable: true, @@ -422,7 +422,7 @@ Object.defineProperty(exports, 'costInfoReducer', { } }); -var _blacklist2 = __webpack_require__(33); +var _blacklist2 = __webpack_require__(32); Object.defineProperty(exports, 'blacklistReducer', { enumerable: true, @@ -431,7 +431,7 @@ Object.defineProperty(exports, 'blacklistReducer', { } }); -var _homepage2 = __webpack_require__(38); +var _homepage2 = __webpack_require__(33); Object.defineProperty(exports, 'homepageReducer', { enumerable: true, @@ -440,7 +440,7 @@ Object.defineProperty(exports, 'homepageReducer', { } }); -var _auth3 = __webpack_require__(27); +var _auth3 = __webpack_require__(34); Object.defineProperty(exports, 'selectAuthToken', { enumerable: true, @@ -884,7 +884,7 @@ Object.defineProperty(exports, 'selectBlackListedOutpoints', { } }); -var _homepage3 = __webpack_require__(39); +var _homepage3 = __webpack_require__(37); Object.defineProperty(exports, 'selectFeaturedUris', { enumerable: true, @@ -923,7 +923,7 @@ var _rewards4 = __webpack_require__(11); var _rewards5 = _interopRequireDefault(_rewards4); -var _subscriptions3 = __webpack_require__(28); +var _subscriptions3 = __webpack_require__(38); var _subscriptions4 = _interopRequireDefault(_subscriptions3); @@ -1310,7130 +1310,9 @@ exports.default = Lbryio; /***/ }), /* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -(function webpackUniversalModuleDefinition(root, factory) { - if(true) - module.exports = factory(); - else { var i, a; } -})((typeof self !== 'undefined' ? self : this), 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.selectTransactionListFilter = exports.selectWalletUnlockResult = exports.selectWalletUnlockSucceeded = exports.selectWalletUnlockPending = exports.selectWalletDecryptResult = exports.selectWalletDecryptSucceeded = exports.selectWalletDecryptPending = exports.selectWalletEncryptResult = exports.selectWalletEncryptSucceeded = exports.selectWalletEncryptPending = exports.selectWalletState = exports.selectWalletIsEncrypted = 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.makeSelectQueryWithOptions = exports.selectSearchSuggestions = exports.selectSearchBarFocused = exports.selectWunderBarAddress = exports.selectSearchUrisByQuery = exports.selectIsSearching = exports.selectSearchOptions = exports.selectSearchValue = exports.selectSearchQuery = exports.makeSelectSearchUris = exports.selectSearchState = 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.selectFileListPublishedSort = exports.selectFileListDownloadedSort = exports.selectSearchDownloadUris = exports.selectTotalDownloadProgress = exports.selectDownloadingFileInfos = exports.selectFileInfosDownloaded = exports.selectUrisLoading = 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.selectCurrentChannelPage = exports.selectChannelClaimCounts = exports.selectPlayingUri = exports.selectFetchingTrendingUris = exports.selectTrendingUris = 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 = undefined; -exports.selectMyClaimsRaw = exports.selectAllClaimsByChannel = exports.selectClaimsByUri = exports.selectClaimsById = exports.selectPendingById = exports.makeSelectClaimsInChannelForCurrentPageState = exports.makeSelectPendingByUri = exports.makeSelectClaimIsPending = exports.makeSelectChannelForClaimUri = exports.makeSelectFirstRecommendedFileForUri = exports.makeSelectRecommendedContentForUri = exports.makeSelectNsfwCountForChannel = exports.makeSelectNsfwCountFromUris = exports.makeSelectTotalPagesForChannel = exports.makeSelectTotalItemsForChannel = exports.makeSelectIsUriResolving = exports.makeSelectContentTypeForUri = exports.makeSelectTitleForUri = exports.makeSelectMetadataForUri = exports.makeSelectClaimsInChannelForPage = exports.makeSelectClaimsInChannelForCurrentPage = exports.makeSelectFetchingChannelClaims = exports.makeSelectClaimIsMine = exports.makeSelectClaimForUri = exports.selectError = exports.selectToast = exports.selectBlackListedOutpoints = exports.blacklistReducer = exports.walletReducer = exports.searchReducer = exports.notificationsReducer = exports.fileInfoReducer = exports.costInfoReducer = exports.claimsReducer = exports.creditsToString = exports.formatFullPrice = exports.formatCredits = exports.toQueryString = exports.parseQueryParams = exports.batchActions = exports.doUpdateBlockHeight = exports.doSetTransactionListFilter = exports.doWalletStatus = exports.doWalletUnlock = exports.doWalletDecrypt = exports.doWalletEncrypt = exports.doSendTip = exports.doSetDraftTransactionAddress = exports.doSetDraftTransactionAmount = exports.doSendDraftTransaction = exports.doCheckAddressIsMine = exports.doGetNewAddress = exports.doFetchBlock = exports.doFetchTransactions = exports.doBalanceSubscribe = exports.doUpdateBalance = exports.doBlackListedOutpointsSubscribe = exports.doUpdateSearchOptions = exports.setSearchApi = exports.doBlurSearchInput = exports.doFocusSearchInput = exports.doUpdateSearchQuery = exports.doSearch = exports.doSetFileListSort = exports.doFetchFileInfosAndPublishedClaims = exports.doFileList = exports.doFetchFileInfo = exports.doFetchCostInfoForUri = exports.doFetchTrendingUris = exports.doFetchFeaturedUris = exports.doResolveUri = exports.doResolveUris = exports.doAbandonClaim = exports.doFetchClaimListMine = exports.doFetchClaimCountByChannel = exports.doFetchClaimsByChannel = exports.doDismissError = exports.doError = exports.doDismissToast = exports.doToast = exports.convertToShareLink = exports.isNameValid = exports.isURIClaimable = exports.isURIValid = exports.normalizeURI = exports.buildURI = exports.parseURI = exports.regexAddress = exports.regexInvalidURI = exports.Lbryapi = exports.Lbry = exports.PAGES = exports.SORT_OPTIONS = exports.TRANSACTIONS = exports.SETTINGS = exports.SEARCH_OPTIONS = exports.SEARCH_TYPES = exports.THUMBNAIL_STATUSES = exports.ACTIONS = exports.Toast = undefined; - -var _Notification = __webpack_require__(1); - -Object.defineProperty(exports, 'Toast', { - enumerable: true, - get: function get() { - return _Notification.Toast; - } -}); - -var _lbryURI = __webpack_require__(3); - -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; - } -}); -Object.defineProperty(exports, 'convertToShareLink', { - enumerable: true, - get: function get() { - return _lbryURI.convertToShareLink; - } -}); - -var _notifications = __webpack_require__(4); - -Object.defineProperty(exports, 'doToast', { - enumerable: true, - get: function get() { - return _notifications.doToast; - } -}); -Object.defineProperty(exports, 'doDismissToast', { - enumerable: true, - get: function get() { - return _notifications.doDismissToast; - } -}); -Object.defineProperty(exports, 'doError', { - enumerable: true, - get: function get() { - return _notifications.doError; - } -}); -Object.defineProperty(exports, 'doDismissError', { - enumerable: true, - get: function get() { - return _notifications.doDismissError; - } -}); - -var _claims = __webpack_require__(8); - -Object.defineProperty(exports, 'doFetchClaimsByChannel', { - enumerable: true, - get: function get() { - return _claims.doFetchClaimsByChannel; - } -}); -Object.defineProperty(exports, 'doFetchClaimCountByChannel', { - enumerable: true, - get: function get() { - return _claims.doFetchClaimCountByChannel; - } -}); -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, 'doFetchTrendingUris', { - enumerable: true, - get: function get() { - return _claims.doFetchTrendingUris; - } -}); - -var _cost_info = __webpack_require__(29); - -Object.defineProperty(exports, 'doFetchCostInfoForUri', { - enumerable: true, - get: function get() { - return _cost_info.doFetchCostInfoForUri; - } -}); - -var _file_info = __webpack_require__(30); - -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; - } -}); -Object.defineProperty(exports, 'doSetFileListSort', { - enumerable: true, - get: function get() { - return _file_info.doSetFileListSort; - } -}); - -var _search = __webpack_require__(32); - -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; - } -}); -Object.defineProperty(exports, 'setSearchApi', { - enumerable: true, - get: function get() { - return _search.setSearchApi; - } -}); -Object.defineProperty(exports, 'doUpdateSearchOptions', { - enumerable: true, - get: function get() { - return _search.doUpdateSearchOptions; - } -}); - -var _blacklist = __webpack_require__(35); - -Object.defineProperty(exports, 'doBlackListedOutpointsSubscribe', { - enumerable: true, - get: function get() { - return _blacklist.doBlackListedOutpointsSubscribe; - } -}); - -var _wallet = __webpack_require__(25); - -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, 'doSendTip', { - enumerable: true, - get: function get() { - return _wallet.doSendTip; - } -}); -Object.defineProperty(exports, 'doWalletEncrypt', { - enumerable: true, - get: function get() { - return _wallet.doWalletEncrypt; - } -}); -Object.defineProperty(exports, 'doWalletDecrypt', { - enumerable: true, - get: function get() { - return _wallet.doWalletDecrypt; - } -}); -Object.defineProperty(exports, 'doWalletUnlock', { - enumerable: true, - get: function get() { - return _wallet.doWalletUnlock; - } -}); -Object.defineProperty(exports, 'doWalletStatus', { - enumerable: true, - get: function get() { - return _wallet.doWalletStatus; - } -}); -Object.defineProperty(exports, 'doSetTransactionListFilter', { - enumerable: true, - get: function get() { - return _wallet.doSetTransactionListFilter; - } -}); -Object.defineProperty(exports, 'doUpdateBlockHeight', { - enumerable: true, - get: function get() { - return _wallet.doUpdateBlockHeight; - } -}); - -var _batchActions = __webpack_require__(24); - -Object.defineProperty(exports, 'batchActions', { - enumerable: true, - get: function get() { - return _batchActions.batchActions; - } -}); - -var _query_params = __webpack_require__(20); - -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__(28); - -Object.defineProperty(exports, 'formatCredits', { - enumerable: true, - get: function get() { - return _formatCredits.formatCredits; - } -}); -Object.defineProperty(exports, 'formatFullPrice', { - enumerable: true, - get: function get() { - return _formatCredits.formatFullPrice; - } -}); -Object.defineProperty(exports, 'creditsToString', { - enumerable: true, - get: function get() { - return _formatCredits.creditsToString; - } -}); - -var _claims2 = __webpack_require__(36); - -Object.defineProperty(exports, 'claimsReducer', { - enumerable: true, - get: function get() { - return _claims2.claimsReducer; - } -}); - -var _cost_info2 = __webpack_require__(37); - -Object.defineProperty(exports, 'costInfoReducer', { - enumerable: true, - get: function get() { - return _cost_info2.costInfoReducer; - } -}); - -var _file_info2 = __webpack_require__(38); - -Object.defineProperty(exports, 'fileInfoReducer', { - enumerable: true, - get: function get() { - return _file_info2.fileInfoReducer; - } -}); - -var _notifications2 = __webpack_require__(41); - -Object.defineProperty(exports, 'notificationsReducer', { - enumerable: true, - get: function get() { - return _notifications2.notificationsReducer; - } -}); - -var _search2 = __webpack_require__(43); - -Object.defineProperty(exports, 'searchReducer', { - enumerable: true, - get: function get() { - return _search2.searchReducer; - } -}); - -var _wallet2 = __webpack_require__(44); - -Object.defineProperty(exports, 'walletReducer', { - enumerable: true, - get: function get() { - return _wallet2.walletReducer; - } -}); - -var _blacklist2 = __webpack_require__(45); - -Object.defineProperty(exports, 'blacklistReducer', { - enumerable: true, - get: function get() { - return _blacklist2.blacklistReducer; - } -}); - -var _blacklist3 = __webpack_require__(46); - -Object.defineProperty(exports, 'selectBlackListedOutpoints', { - enumerable: true, - get: function get() { - return _blacklist3.selectBlackListedOutpoints; - } -}); - -var _notifications3 = __webpack_require__(47); - -Object.defineProperty(exports, 'selectToast', { - enumerable: true, - get: function get() { - return _notifications3.selectToast; - } -}); -Object.defineProperty(exports, 'selectError', { - enumerable: true, - get: function get() { - return _notifications3.selectError; - } -}); - -var _claims3 = __webpack_require__(17); - -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, 'makeSelectClaimsInChannelForPage', { - enumerable: true, - get: function get() { - return _claims3.makeSelectClaimsInChannelForPage; - } -}); -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, 'makeSelectNsfwCountFromUris', { - enumerable: true, - get: function get() { - return _claims3.makeSelectNsfwCountFromUris; - } -}); -Object.defineProperty(exports, 'makeSelectNsfwCountForChannel', { - enumerable: true, - get: function get() { - return _claims3.makeSelectNsfwCountForChannel; - } -}); -Object.defineProperty(exports, 'makeSelectRecommendedContentForUri', { - enumerable: true, - get: function get() { - return _claims3.makeSelectRecommendedContentForUri; - } -}); -Object.defineProperty(exports, 'makeSelectFirstRecommendedFileForUri', { - enumerable: true, - get: function get() { - return _claims3.makeSelectFirstRecommendedFileForUri; - } -}); -Object.defineProperty(exports, 'makeSelectChannelForClaimUri', { - enumerable: true, - get: function get() { - return _claims3.makeSelectChannelForClaimUri; - } -}); -Object.defineProperty(exports, 'makeSelectClaimIsPending', { - enumerable: true, - get: function get() { - return _claims3.makeSelectClaimIsPending; - } -}); -Object.defineProperty(exports, 'makeSelectPendingByUri', { - enumerable: true, - get: function get() { - return _claims3.makeSelectPendingByUri; - } -}); -Object.defineProperty(exports, 'makeSelectClaimsInChannelForCurrentPageState', { - enumerable: true, - get: function get() { - return _claims3.makeSelectClaimsInChannelForCurrentPageState; - } -}); -Object.defineProperty(exports, 'selectPendingById', { - enumerable: true, - get: function get() { - return _claims3.selectPendingById; - } -}); -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, 'selectTrendingUris', { - enumerable: true, - get: function get() { - return _claims3.selectTrendingUris; - } -}); -Object.defineProperty(exports, 'selectFetchingTrendingUris', { - enumerable: true, - get: function get() { - return _claims3.selectFetchingTrendingUris; - } -}); -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, 'selectCurrentChannelPage', { - enumerable: true, - get: function get() { - return _claims3.selectCurrentChannelPage; - } -}); - -var _cost_info3 = __webpack_require__(48); - -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__(31); - -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; - } -}); -Object.defineProperty(exports, 'selectFileListDownloadedSort', { - enumerable: true, - get: function get() { - return _file_info3.selectFileListDownloadedSort; - } -}); -Object.defineProperty(exports, 'selectFileListPublishedSort', { - enumerable: true, - get: function get() { - return _file_info3.selectFileListPublishedSort; - } -}); - -var _navigation = __webpack_require__(18); - -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; - } -}); - -var _search3 = __webpack_require__(22); - -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, 'selectSearchOptions', { - enumerable: true, - get: function get() { - return _search3.selectSearchOptions; - } -}); -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; - } -}); -Object.defineProperty(exports, 'selectSearchSuggestions', { - enumerable: true, - get: function get() { - return _search3.selectSearchSuggestions; - } -}); -Object.defineProperty(exports, 'makeSelectQueryWithOptions', { - enumerable: true, - get: function get() { - return _search3.makeSelectQueryWithOptions; - } -}); - -var _wallet3 = __webpack_require__(26); - -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; - } -}); -Object.defineProperty(exports, 'selectWalletIsEncrypted', { - enumerable: true, - get: function get() { - return _wallet3.selectWalletIsEncrypted; - } -}); -Object.defineProperty(exports, 'selectWalletState', { - enumerable: true, - get: function get() { - return _wallet3.selectWalletState; - } -}); -Object.defineProperty(exports, 'selectWalletEncryptPending', { - enumerable: true, - get: function get() { - return _wallet3.selectWalletEncryptPending; - } -}); -Object.defineProperty(exports, 'selectWalletEncryptSucceeded', { - enumerable: true, - get: function get() { - return _wallet3.selectWalletEncryptSucceeded; - } -}); -Object.defineProperty(exports, 'selectWalletEncryptResult', { - enumerable: true, - get: function get() { - return _wallet3.selectWalletEncryptResult; - } -}); -Object.defineProperty(exports, 'selectWalletDecryptPending', { - enumerable: true, - get: function get() { - return _wallet3.selectWalletDecryptPending; - } -}); -Object.defineProperty(exports, 'selectWalletDecryptSucceeded', { - enumerable: true, - get: function get() { - return _wallet3.selectWalletDecryptSucceeded; - } -}); -Object.defineProperty(exports, 'selectWalletDecryptResult', { - enumerable: true, - get: function get() { - return _wallet3.selectWalletDecryptResult; - } -}); -Object.defineProperty(exports, 'selectWalletUnlockPending', { - enumerable: true, - get: function get() { - return _wallet3.selectWalletUnlockPending; - } -}); -Object.defineProperty(exports, 'selectWalletUnlockSucceeded', { - enumerable: true, - get: function get() { - return _wallet3.selectWalletUnlockSucceeded; - } -}); -Object.defineProperty(exports, 'selectWalletUnlockResult', { - enumerable: true, - get: function get() { - return _wallet3.selectWalletUnlockResult; - } -}); -Object.defineProperty(exports, 'selectTransactionListFilter', { - enumerable: true, - get: function get() { - return _wallet3.selectTransactionListFilter; - } -}); - -var _action_types = __webpack_require__(2); - -var ACTIONS = _interopRequireWildcard(_action_types); - -var _thumbnail_upload_statuses = __webpack_require__(49); - -var THUMBNAIL_STATUSES = _interopRequireWildcard(_thumbnail_upload_statuses); - -var _settings = __webpack_require__(50); - -var SETTINGS = _interopRequireWildcard(_settings); - -var _transaction_types = __webpack_require__(27); - -var TRANSACTIONS = _interopRequireWildcard(_transaction_types); - -var _sort_options = __webpack_require__(39); - -var SORT_OPTIONS = _interopRequireWildcard(_sort_options); - -var _pages = __webpack_require__(40); - -var PAGES = _interopRequireWildcard(_pages); - -var _search4 = __webpack_require__(21); - -var _lbry = __webpack_require__(9); - -var _lbry2 = _interopRequireDefault(_lbry); - -var _lbryapi = __webpack_require__(12); - -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.THUMBNAIL_STATUSES = THUMBNAIL_STATUSES; -exports.SEARCH_TYPES = _search4.SEARCH_TYPES; -exports.SEARCH_OPTIONS = _search4.SEARCH_OPTIONS; -exports.SETTINGS = SETTINGS; -exports.TRANSACTIONS = TRANSACTIONS; -exports.SORT_OPTIONS = SORT_OPTIONS; -exports.PAGES = PAGES; - -// common - -exports.Lbry = _lbry2.default; -exports.Lbryapi = _lbryapi2.default; -exports.selectSearchState = _search3.selectState; - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _action_types = __webpack_require__(2); - -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; } } - -/* - Toasts: - - First-in, first-out queue - - Simple messages that are shown in response to user interactions - - Never saved - - If they are the result of errors, use the isError flag when creating - - For errors that should interrupt user behavior, use Error -*/ -/*:: export type ToastParams = { - message: string, - title?: string, - linkText?: string, - linkTarget?: string, - isError?: boolean, -};*/ // @flow - -/*:: export type Toast = { - id: string, - params: ToastParams, -};*/ - - -/* - Notifications: - - List of notifications based on user interactions/app notifications - - Always saved, but can be manually deleted - - Can happen in the background, or because of user interaction (ex: publish confirmed) -*/ -/*:: export type DoToast = { - type: ACTIONS.CREATE_TOAST, - data: Toast, -};*/ -/*:: export type Notification = { - id: string, // Unique id - dateCreated: number, - isRead: boolean, // Used to display "new" notifications that a user hasn't seen yet - source?: string, // The type/area an notification is from. Used for sorting (ex: publishes, transactions) - // We may want to use priority/isDismissed in the future to specify how urgent a notification is - // and if the user should see it immediately - // isDissmied: boolean, - // priority?: number -};*/ -/*:: export type DoNotification = { - type: ACTIONS.CREATE_NOTIFICATION, - data: Notification, -};*/ -/*:: export type DoEditNotification = { - type: ACTIONS.EDIT_NOTIFICATION, - data: { - id: string, - isRead: boolean, - // In the future we can add `isDismissed` if we decide to show notifications as they come in - // Similar to Facebook's notifications in the corner of the screen - // isDismissed: boolean, - }, -};*/ - - -/* - Errors: - - First-in, first-out queue - - Errors that should interupt user behavior - - For errors that can be shown without interrupting a user, use Toast with the isError flag -*/ -/*:: export type DoDeleteNotification = { - type: ACTIONS.DELETE_NOTIFICATION, - data: { - id: string, // The id to delete - }, -};*/ -/*:: export type Error = { - title: string, - text: string, -};*/ -/*:: export type DoError = { - type: ACTIONS.CREATE_ERROR, - data: Error, -};*/ - - -/* - NotificationState -*/ -/*:: export type DoDismissError = { - type: ACTIONS.DISMISS_ERROR, -};*/ -/*:: export type NotificationState = { - notifications: Array, - errors: Array, - toasts: Array, -};*/ - -/***/ }), -/* 2 */ -/***/ (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'; -var CLEAR_UPGRADE_TIMER = exports.CLEAR_UPGRADE_TIMER = 'CLEAR_UPGRADE_TIMER'; - -// 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'; -var WALLET_ENCRYPT_START = exports.WALLET_ENCRYPT_START = 'WALLET_ENCRYPT_START'; -var WALLET_ENCRYPT_COMPLETED = exports.WALLET_ENCRYPT_COMPLETED = 'WALLET_ENCRYPT_COMPLETED'; -var WALLET_ENCRYPT_FAILED = exports.WALLET_ENCRYPT_FAILED = 'WALLET_ENCRYPT_FAILED'; -var WALLET_UNLOCK_START = exports.WALLET_UNLOCK_START = 'WALLET_UNLOCK_START'; -var WALLET_UNLOCK_COMPLETED = exports.WALLET_UNLOCK_COMPLETED = 'WALLET_UNLOCK_COMPLETED'; -var WALLET_UNLOCK_FAILED = exports.WALLET_UNLOCK_FAILED = 'WALLET_UNLOCK_FAILED'; -var WALLET_DECRYPT_START = exports.WALLET_DECRYPT_START = 'WALLET_DECRYPT_START'; -var WALLET_DECRYPT_COMPLETED = exports.WALLET_DECRYPT_COMPLETED = 'WALLET_DECRYPT_COMPLETED'; -var WALLET_DECRYPT_FAILED = exports.WALLET_DECRYPT_FAILED = 'WALLET_DECRYPT_FAILED'; -var WALLET_LOCK_START = exports.WALLET_LOCK_START = 'WALLET_LOCK_START'; -var WALLET_LOCK_COMPLETED = exports.WALLET_LOCK_COMPLETED = 'WALLET_LOCK_COMPLETED'; -var WALLET_LOCK_FAILED = exports.WALLET_LOCK_FAILED = 'WALLET_LOCK_FAILED'; -var WALLET_STATUS_START = exports.WALLET_STATUS_START = 'WALLET_STATUS_START'; -var WALLET_STATUS_COMPLETED = exports.WALLET_STATUS_COMPLETED = 'WALLET_STATUS_COMPLETED'; -var SET_TRANSACTION_LIST_FILTER = exports.SET_TRANSACTION_LIST_FILTER = 'SET_TRANSACTION_LIST_FILTER'; -var UPDATE_CURRENT_HEIGHT = exports.UPDATE_CURRENT_HEIGHT = 'UPDATE_CURRENT_HEIGHT'; - -// 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 FETCH_TRENDING_CONTENT_STARTED = exports.FETCH_TRENDING_CONTENT_STARTED = 'FETCH_TRENDING_CONTENT_STARTED'; -var FETCH_TRENDING_CONTENT_COMPLETED = exports.FETCH_TRENDING_CONTENT_COMPLETED = 'FETCH_TRENDING_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 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'; -var SET_PLAYING_URI = exports.SET_PLAYING_URI = 'SET_PLAYING_URI'; -var SET_CONTENT_POSITION = exports.SET_CONTENT_POSITION = 'SET_CONTENT_POSITION'; -var SET_CONTENT_LAST_VIEWED = exports.SET_CONTENT_LAST_VIEWED = 'SET_CONTENT_LAST_VIEWED'; -var CLEAR_CONTENT_HISTORY_URI = exports.CLEAR_CONTENT_HISTORY_URI = 'CLEAR_CONTENT_HISTORY_URI'; -var CLEAR_CONTENT_HISTORY_ALL = exports.CLEAR_CONTENT_HISTORY_ALL = 'CLEAR_CONTENT_HISTORY_ALL'; - -// 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'; -var SET_FILE_LIST_SORT = exports.SET_FILE_LIST_SORT = 'SET_FILE_LIST_SORT'; - -// 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_OPTIONS = exports.UPDATE_SEARCH_OPTIONS = 'UPDATE_SEARCH_OPTIONS'; -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_SET = exports.USER_EMAIL_VERIFY_SET = 'USER_EMAIL_VERIFY_SET'; -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_EMAIL_VERIFY_RETRY = exports.USER_EMAIL_VERIFY_RETRY = 'USER_EMAIL_VERIFY_RETRY'; -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'; - -// 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 EDIT_NOTIFICATION = exports.EDIT_NOTIFICATION = 'EDIT_NOTIFICATION'; -var DELETE_NOTIFICATION = exports.DELETE_NOTIFICATION = 'DELETE_NOTIFICATION'; -var CREATE_TOAST = exports.CREATE_TOAST = 'CREATE_TOAST'; -var DISMISS_TOAST = exports.DISMISS_TOAST = 'DISMISS_TOAST'; -var CREATE_ERROR = exports.CREATE_ERROR = 'CREATE_ERROR'; -var DISMISS_ERROR = exports.DISMISS_ERROR = 'DISMISS_ERROR'; - -/***/ }), -/* 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; }; - -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; -exports.convertToShareLink = convertToShareLink; -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]+$/))) { - 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 protoDefault = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'lbry://'; - 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 ? protoDefault : '') + claimName + (claimId ? '#' + claimId : '') + (claimSequence ? ':' + claimSequence : '') + (bidPosition ? '' + bidPosition : '') + (path ? '/' + path : ''); -} - -/* Takes a parseable LBRY URI and converts it to standard, canonical format */ -function normalizeURI(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; -} - -function convertToShareLink(URI) { - var _parseURI2 = parseURI(URI), - claimName = _parseURI2.claimName, - path = _parseURI2.path, - bidPosition = _parseURI2.bidPosition, - claimSequence = _parseURI2.claimSequence, - claimId = _parseURI2.claimId; - - return buildURI({ claimName: claimName, path: path, claimSequence: claimSequence, bidPosition: bidPosition, claimId: claimId }, true, 'https://open.lbry.io/'); -} - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.doToast = doToast; -exports.doDismissToast = doDismissToast; -exports.doError = doError; -exports.doDismissError = doDismissError; - -var _action_types = __webpack_require__(2); - -var ACTIONS = _interopRequireWildcard(_action_types); - -var _v = __webpack_require__(5); - -var _v2 = _interopRequireDefault(_v); - -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; } } - -// @flow -/*:: import type { ToastParams } from 'types/Notification';*/ -function doToast(params /*: ToastParams*/) { - if (!params) { - throw Error("'params' object is required to create a toast notification"); - } - - return { - type: ACTIONS.CREATE_TOAST, - data: { - id: (0, _v2.default)(), - params: params - } - }; -} - -function doDismissToast() { - return { - type: ACTIONS.DISMISS_TOAST - }; -} - -function doError(error /*: string | {}*/) { - return { - type: ACTIONS.CREATE_ERROR, - data: { - error: error - } - }; -} - -function doDismissError() { - return { - type: ACTIONS.DISMISS_ERROR - }; -} - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -var rng = __webpack_require__(6); -var bytesToUuid = __webpack_require__(7); - -function v4(options, buf, offset) { - var i = buf && offset || 0; - - if (typeof(options) == 'string') { - buf = options === 'binary' ? new Array(16) : null; - options = null; - } - options = options || {}; - - var rnds = options.random || (options.rng || rng)(); - - // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - rnds[6] = (rnds[6] & 0x0f) | 0x40; - rnds[8] = (rnds[8] & 0x3f) | 0x80; - - // Copy bytes to buffer, if provided - if (buf) { - for (var ii = 0; ii < 16; ++ii) { - buf[i + ii] = rnds[ii]; - } - } - - return buf || bytesToUuid(rnds); -} - -module.exports = v4; - - -/***/ }), -/* 6 */ /***/ (function(module, exports) { -// Unique ID creation requires a high quality random # generator. In the -// browser this is a little complicated due to unknown quality of Math.random() -// and inconsistent support for the `crypto` API. We do the best we can via -// feature-detection - -// getRandomValues needs to be invoked in a context where "this" is a Crypto -// implementation. Also, find the complete implementation of crypto on IE11. -var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) || - (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto)); - -if (getRandomValues) { - // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto - var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef - - module.exports = function whatwgRNG() { - getRandomValues(rnds8); - return rnds8; - }; -} else { - // Math.random()-based (RNG) - // - // If all else fails, use Math.random(). It's fast, but is of unspecified - // quality. - var rnds = new Array(16); - - module.exports = function mathRNG() { - for (var i = 0, r; i < 16; i++) { - if ((i & 0x03) === 0) r = Math.random() * 0x100000000; - rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; - } - - return rnds; - }; -} - - -/***/ }), -/* 7 */ -/***/ (function(module, exports) { - -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -var byteToHex = []; -for (var i = 0; i < 256; ++i) { - byteToHex[i] = (i + 0x100).toString(16).substr(1); -} - -function bytesToUuid(buf, offset) { - var i = offset || 0; - var bth = byteToHex; - // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 - return ([bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]]]).join(''); -} - -module.exports = bytesToUuid; - - -/***/ }), -/* 8 */ -/***/ (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.doFetchTrendingUris = doFetchTrendingUris; -exports.doFetchClaimsByChannel = doFetchClaimsByChannel; -exports.doFetchClaimCountByChannel = doFetchClaimCountByChannel; - -var _action_types = __webpack_require__(2); - -var ACTIONS = _interopRequireWildcard(_action_types); - -var _lbry = __webpack_require__(9); - -var _lbry2 = _interopRequireDefault(_lbry); - -var _lbryapi = __webpack_require__(12); - -var _lbryapi2 = _interopRequireDefault(_lbryapi); - -var _lbryURI = __webpack_require__(3); - -var _notifications = __webpack_require__(4); - -var _claims = __webpack_require__(17); - -var _batchActions = __webpack_require__(24); - -var _wallet = __webpack_require__(25); - -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) { - var returnCachedClaims = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - return function (dispatch, getState) { - var normalizedUris = uris.map(_lbryURI.normalizeURI); - var state = getState(); - - var resolvingUris = (0, _claims.selectResolvingUris)(state); - var claimsByUri = (0, _claims.selectClaimsByUri)(state); - var urisToResolve = normalizedUris.filter(function (uri) { - if (resolvingUris.includes(uri)) { - return false; - } - - return returnCachedClaims ? !claimsByUri[uri] : true; - }); - - if (urisToResolve.length === 0) { - return; - } - - dispatch({ - type: ACTIONS.RESOLVE_URIS_STARTED, - data: { uris: normalizedUris } - }); - - var resolveInfo = {}; - _lbry2.default.resolve({ urls: 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; - - dispatch({ - type: ACTIONS.ABANDON_CLAIM_STARTED, - data: { - claimId: claimId - } - }); - - var errorCallback = function errorCallback() { - dispatch((0, _notifications.doToast)({ - message: 'Transaction failed', - isError: true - })); - }; - - var successCallback = function successCallback(results) { - if (results.success === true) { - dispatch({ - type: ACTIONS.ABANDON_CLAIM_SUCCEEDED, - data: { - claimId: claimId - } - }); - dispatch((0, _notifications.doToast)({ - message: 'Successfully abandoned your claim' - })); - - // After abandoning, call claim_list_mine to show the claim as abandoned - // Also fetch transactions to show the new abandon transaction - dispatch(doFetchClaimListMine()); - dispatch((0, _wallet.doFetchTransactions)()); - } else { - dispatch((0, _notifications.doToast)({ - message: 'Error abandoning claim', - isError: true - })); - } - }; - - _lbry2.default.claim_abandon({ - txid: txid, - nout: nout - }).then(successCallback, errorCallback); - }; -} - -function doFetchFeaturedUris() { - var offloadResolve = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - 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 = [{ - type: ACTIONS.FETCH_FEATURED_CONTENT_COMPLETED, - data: { - uris: Uris, - success: true - } - }]; - if (urisToResolve.length && !offloadResolve) { - actions.push(doResolveUris(urisToResolve)); - } - - 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 doFetchTrendingUris() { - return function (dispatch) { - dispatch({ - type: ACTIONS.FETCH_TRENDING_CONTENT_STARTED - }); - - var success = function success(data) { - var urisToResolve = data.map(function (uri) { - return uri.url; - }); - var actions = [doResolveUris(urisToResolve), { - type: ACTIONS.FETCH_TRENDING_CONTENT_COMPLETED, - data: { - uris: data, - success: true - } - }]; - dispatch(_batchActions.batchActions.apply(undefined, actions)); - }; - - var failure = function failure() { - dispatch({ - type: ACTIONS.FETCH_TRENDING_CONTENT_COMPLETED, - data: { - uris: [] - } - }); - }; - - _lbryapi2.default.call('file', 'list_trending').then(success, failure); - }; -} - -function doFetchClaimsByChannel(uri, page) { - return function (dispatch) { - dispatch({ - type: ACTIONS.FETCH_CHANNEL_CLAIMS_STARTED, - data: { uri: uri, page: page } - }); - - _lbry2.default.claim_list_by_channel({ uri: uri, page: page || 1 }).then(function (result) { - var claimResult = result[uri] || {}; - var claimsInChannel = claimResult.claims_in_channel, - returnedPage = claimResult.returned_page; - - - dispatch({ - type: ACTIONS.FETCH_CHANNEL_CLAIMS_COMPLETED, - data: { - uri: uri, - claims: claimsInChannel || [], - page: returnedPage || undefined - } - }); - }); - }; -} - -function doFetchClaimCountByChannel(uri) { - return function (dispatch) { - dispatch({ - type: ACTIONS.FETCH_CHANNEL_CLAIM_COUNT_STARTED, - data: { uri: uri } - }); - - _lbry2.default.claim_list_by_channel({ uri: uri }).then(function (result) { - var claimResult = result[uri]; - var totalClaims = claimResult ? claimResult.claims_in_channel : 0; - - dispatch({ - type: ACTIONS.FETCH_CHANNEL_CLAIM_COUNT_COMPLETED, - data: { - uri: uri, - totalClaims: totalClaims - } - }); - }); - }; -} - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -__webpack_require__(10); - -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); - }); -}; - -// blobs -Lbry.blob_delete = function () { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return daemonCallWithResult('blob_delete', params); -}; -Lbry.blob_list = function () { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return daemonCallWithResult('blob_list', params); -}; - -// 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); -}; -Lbry.stop = function () { - return daemonCallWithResult('stop', {}); -}; - -// claims -Lbry.claim_list_by_channel = function () { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return daemonCallWithResult('claim_list_by_channel', params); -}; - -// wallet -Lbry.account_balance = function () { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return daemonCallWithResult('account_balance', params); -}; -Lbry.account_decrypt = function () { - return daemonCallWithResult('account_decrypt', {}); -}; -Lbry.account_encrypt = function () { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return daemonCallWithResult('account_encrypt', params); -}; -Lbry.account_list = function () { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return daemonCallWithResult('account_list', params); -}; -Lbry.address_is_mine = function () { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return daemonCallWithResult('address_is_mine', params); -}; -Lbry.wallet_lock = function () { - return daemonCallWithResult('wallet_lock', {}); -}; -Lbry.address_unused = function () { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return daemonCallWithResult('address_unused', params); -}; -Lbry.wallet_send = function () { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return daemonCallWithResult('wallet_send', params); -}; -Lbry.account_unlock = function () { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return daemonCallWithResult('account_unlock', params); -}; -Lbry.address_unused = function () { - return daemonCallWithResult('address_unused', {}); -}; -Lbry.claim_tip = function () { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return daemonCallWithResult('claim_tip', params); -}; - -// transactions -Lbry.transaction_list = function () { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return daemonCallWithResult('transaction_list', params); -}; -Lbry.utxo_release = function () { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return daemonCallWithResult('utxo_release', 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, extname) { - if (extname) { - 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'], [/^(stl|obj|fbx|gcode)$/i, '3D-file']]; - var res = formats.reduce(function (ret, testpair) { - switch (testpair[0].test(ret)) { - case true: - return testpair[1]; - default: - return ret; - } - }, extname); - return res === extname ? 'unknown' : res; - } else if (contentType) { - return (/^[^/]+/.exec(contentType)[0] - ); - } - 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) { - resolve(data || {}); - }, reject); - }); -}; - -Lbry.publish = function () { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return new Promise(function (resolve, reject) { - if (Lbry.overrides.publish) { - Lbry.overrides.publish(params).then(resolve, reject); - } else { - apiCall('publish', params, resolve, reject); - } - }); -}; - -// Allow overriding Lbry methods -Lbry.overrides = {}; -Lbry.setOverride = function (methodName, newMethod) { - Lbry.overrides[methodName] = newMethod; -}; - -// Allow overriding daemon connection string (e.g. to `/api/proxy` for lbryweb) -Lbry.setDaemonConnectionString = function (value) { - Lbry.daemonConnectionString = value; -}; - -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; - -/***/ }), -/* 10 */ -/***/ (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__(11))) - -/***/ }), -/* 11 */ -/***/ (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; - - -/***/ }), -/* 12 */ -/***/ (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__(14); - -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__(13))) - -/***/ }), -/* 13 */ -/***/ (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; }; - - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.decode = exports.parse = __webpack_require__(15); -exports.encode = exports.stringify = __webpack_require__(16); - - -/***/ }), -/* 15 */ -/***/ (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]'; -}; - - -/***/ }), -/* 16 */ -/***/ (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; -}; - - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.makeSelectChannelForClaimUri = exports.makeSelectFirstRecommendedFileForUri = exports.makeSelectRecommendedContentForUri = exports.makeSelectNsfwCountForChannel = exports.makeSelectNsfwCountFromUris = exports.makeSelectTotalPagesForChannel = exports.makeSelectTotalItemsForChannel = exports.selectChannelClaimCounts = exports.selectPlayingUri = exports.selectFetchingTrendingUris = exports.selectTrendingUris = exports.selectFetchingFeaturedUris = exports.selectFeaturedUris = exports.makeSelectIsUriResolving = exports.selectResolvingUris = exports.selectMyChannelClaims = exports.selectFetchingMyChannels = exports.selectMyClaimsOutpoints = exports.selectAllMyClaimsByOutpoint = exports.selectMyClaimsWithoutChannels = exports.selectMyClaims = exports.selectIsFetchingClaimListMine = exports.makeSelectContentTypeForUri = exports.makeSelectTitleForUri = exports.makeSelectMetadataForUri = exports.makeSelectClaimsInChannelForCurrentPageState = exports.makeSelectClaimsInChannelForCurrentPage = exports.makeSelectClaimsInChannelForPage = exports.makeSelectFetchingChannelClaims = exports.selectAllFetchingChannelClaims = exports.makeSelectClaimIsMine = exports.selectMyActiveClaims = exports.selectAbandoningIds = exports.selectMyClaimsRaw = exports.makeSelectClaimForUri = exports.makeSelectPendingByUri = exports.makeSelectClaimIsPending = exports.selectPendingClaims = exports.selectPendingById = exports.selectAllClaimsByChannel = exports.selectClaimsByUri = exports.selectCurrentChannelPage = exports.selectClaimsById = undefined; - -var _lbryURI = __webpack_require__(3); - -var _navigation = __webpack_require__(18); - -var _search = __webpack_require__(22); - -var _reselect = __webpack_require__(19); - -var _claim = __webpack_require__(23); - -var _query_params = __webpack_require__(20); - -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 selectCurrentChannelPage = exports.selectCurrentChannelPage = (0, _reselect.createSelector)(selectState, function (state) { - return state.currentChannelPage || 1; -}); - -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 selectPendingById = exports.selectPendingById = (0, _reselect.createSelector)(selectState, function (state) { - return state.pendingById || {}; -}); - -var selectPendingClaims = exports.selectPendingClaims = (0, _reselect.createSelector)(selectState, function (state) { - return Object.values(state.pendingById || []); -}); - -var makeSelectClaimIsPending = exports.makeSelectClaimIsPending = function makeSelectClaimIsPending(uri) { - return (0, _reselect.createSelector)(selectPendingById, function (pendingById) { - var _parseURI = (0, _lbryURI.parseURI)(uri), - claimId = _parseURI.claimId; - - return Boolean(pendingById[claimId]); - }); -}; - -var makeSelectPendingByUri = exports.makeSelectPendingByUri = function makeSelectPendingByUri(uri) { - return (0, _reselect.createSelector)(selectPendingById, function (pendingById) { - var _parseURI2 = (0, _lbryURI.parseURI)(uri), - claimId = _parseURI2.claimId; - - return pendingById[claimId]; - }); -}; - -var makeSelectClaimForUri = exports.makeSelectClaimForUri = function makeSelectClaimForUri(uri) { - return (0, _reselect.createSelector)(selectClaimsByUri, selectPendingById, function (byUri, pendingById) { - // Check if a claim is pending first - // It won't be in claimsByUri because resolving it will return nothing - var _parseURI3 = (0, _lbryURI.parseURI)(uri), - claimId = _parseURI3.claimId; - - var pendingClaim = pendingById[claimId]; - if (pendingClaim) { - return pendingClaim; - } - - return byUri && byUri[(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 makeSelectClaimsInChannelForPage = exports.makeSelectClaimsInChannelForPage = function makeSelectClaimsInChannelForPage(uri, page) { - return (0, _reselect.createSelector)(selectClaimsById, selectAllClaimsByChannel, function (byId, allClaims) { - var byChannel = allClaims[uri] || {}; - var claimIds = byChannel[page || 1]; - - if (!claimIds) return claimIds; - - return claimIds.map(function (claimId) { - return byId[claimId]; - }); - }); -}; - -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 makeSelectClaimsInChannelForCurrentPageState = exports.makeSelectClaimsInChannelForCurrentPageState = function makeSelectClaimsInChannelForCurrentPageState(uri) { - return (0, _reselect.createSelector)(selectClaimsById, selectAllClaimsByChannel, selectCurrentChannelPage, 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 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-desktop/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 selectTrendingUris = exports.selectTrendingUris = (0, _reselect.createSelector)(selectState, function (state) { - return state.trendingUris; -}); - -var selectFetchingTrendingUris = exports.selectFetchingTrendingUris = (0, _reselect.createSelector)(selectState, function (state) { - return state.fetchingTrendingContent; -}); - -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) { - var pageSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10; - return (0, _reselect.createSelector)(selectChannelClaimCounts, function (byUri) { - return byUri && byUri[uri] && Math.ceil(byUri[uri] / pageSize); - }); -}; - -var makeSelectNsfwCountFromUris = exports.makeSelectNsfwCountFromUris = function makeSelectNsfwCountFromUris(uris) { - return (0, _reselect.createSelector)(selectClaimsByUri, function (claims) { - return uris.reduce(function (acc, uri) { - var claim = claims[uri]; - if ((0, _claim.isClaimNsfw)(claim)) { - return acc + 1; - } - return acc; - }, 0); - }); -}; - -var makeSelectNsfwCountForChannel = exports.makeSelectNsfwCountForChannel = function makeSelectNsfwCountForChannel(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 0; - - return claimIds.reduce(function (acc, claimId) { - var claim = byId[claimId]; - if ((0, _claim.isClaimNsfw)(claim)) { - return acc + 1; - } - return acc; - }, 0); - }); -}; - -var makeSelectRecommendedContentForUri = exports.makeSelectRecommendedContentForUri = function makeSelectRecommendedContentForUri(uri) { - return (0, _reselect.createSelector)(makeSelectClaimForUri(uri), _search.selectSearchUrisByQuery, function (claim, searchUrisByQuery) { - var atVanityURI = !uri.includes('#'); - - var recommendedContent = void 0; - if (claim) { - // If we are at a vanity uri, build the full uri so we can properly filter - var currentUri = atVanityURI ? (0, _lbryURI.buildURI)({ claimId: claim.claim_id, claimName: claim.name }) : uri; - - var title = claim.value.stream.metadata.title; - - - var searchQuery = (0, _query_params.getSearchQueryString)(title.replace(/\//, ' ')); - - var searchUris = searchUrisByQuery[searchQuery]; - if (searchUris) { - searchUris = searchUris.filter(function (searchUri) { - return searchUri !== currentUri; - }); - recommendedContent = searchUris; - } - } - - return recommendedContent; - }); -}; - -var makeSelectFirstRecommendedFileForUri = exports.makeSelectFirstRecommendedFileForUri = function makeSelectFirstRecommendedFileForUri(uri) { - return (0, _reselect.createSelector)(makeSelectRecommendedContentForUri(uri), function (recommendedContent) { - return recommendedContent ? recommendedContent[0] : null; - }); -}; - -// Returns the associated channel uri for a given claim uri -var makeSelectChannelForClaimUri = exports.makeSelectChannelForClaimUri = function makeSelectChannelForClaimUri(uri) { - var includePrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - return (0, _reselect.createSelector)(makeSelectClaimForUri(uri), function (claim) { - if (!claim) { - return null; - } - - var channelName = claim.channel_name, - value = claim.value; - - var channelClaimId = value && value.publisherSignature && value.publisherSignature.certificateId; - - return channelName && channelClaimId ? (0, _lbryURI.buildURI)({ channelName: channelName, claimId: channelClaimId }, includePrefix) : null; - }); -}; - -/***/ }), -/* 18 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -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__(19); - -var _query_params = __webpack_require__(20); - -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 ? 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 ''; - } -}); - -/***/ }), -/* 19 */ -/***/ (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; - }, {}); - }); -} - -/***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getSearchQueryString = undefined; - -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"); } }; }(); // @flow - - -exports.parseQueryParams = parseQueryParams; -exports.toQueryString = toQueryString; - -var _search = __webpack_require__(21); - -var DEFAULT_SEARCH_RESULT_FROM = 0; -var DEFAULT_SEARCH_SIZE = 20; - -function parseQueryParams(queryString /*: string*/) { - 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 /*: { [string]: string | number }*/) { - 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('&'); -} - -var getSearchQueryString = exports.getSearchQueryString = function getSearchQueryString(query /*: string*/) { - var options /*: any*/ = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var includeUserOptions /*: boolean*/ = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - var encodedQuery = encodeURIComponent(query); - var queryParams = ['s=' + encodedQuery, 'size=' + (options.size || DEFAULT_SEARCH_SIZE), 'from=' + (options.from || DEFAULT_SEARCH_RESULT_FROM)]; - - if (includeUserOptions) { - queryParams.push('claimType=' + options[_search.SEARCH_OPTIONS.CLAIM_TYPE]); - - // If they are only searching for channels, strip out the media info - if (options[_search.SEARCH_OPTIONS.CLAIM_TYPE] !== _search.SEARCH_OPTIONS.INCLUDE_CHANNELS) { - queryParams.push('mediaType=' + [_search.SEARCH_OPTIONS.MEDIA_FILE, _search.SEARCH_OPTIONS.MEDIA_AUDIO, _search.SEARCH_OPTIONS.MEDIA_VIDEO, _search.SEARCH_OPTIONS.MEDIA_TEXT, _search.SEARCH_OPTIONS.MEDIA_IMAGE, _search.SEARCH_OPTIONS.MEDIA_APPLICATION].reduce(function (acc, currentOption) { - return options[currentOption] ? '' + acc + currentOption + ',' : acc; - }, '')); - } - } - - return queryParams.join('&'); -}; - -/***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var SEARCH_TYPES = exports.SEARCH_TYPES = { - FILE: 'file', - CHANNEL: 'channel', - SEARCH: 'search' -}; - -var SEARCH_OPTIONS = exports.SEARCH_OPTIONS = { - RESULT_COUNT: 'size', - CLAIM_TYPE: 'claimType', - INCLUDE_FILES: 'file', - INCLUDE_CHANNELS: 'channel', - INCLUDE_FILES_AND_CHANNELS: 'file,channel', - MEDIA_AUDIO: 'audio', - MEDIA_VIDEO: 'video', - MEDIA_TEXT: 'text', - MEDIA_IMAGE: 'image', - MEDIA_APPLICATION: 'application' -}; - -/***/ }), -/* 22 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.makeSelectQueryWithOptions = exports.selectSearchSuggestions = exports.selectSearchBarFocused = exports.selectWunderBarAddress = exports.makeSelectSearchUris = exports.selectSearchUrisByQuery = exports.selectIsSearching = exports.selectSearchQuery = exports.selectSuggestions = exports.selectSearchOptions = exports.selectSearchValue = exports.selectState = undefined; - -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 _search = __webpack_require__(21); - -var _query_params = __webpack_require__(20); - -var _lbryURI = __webpack_require__(3); - -var _navigation = __webpack_require__(18); - -var _reselect = __webpack_require__(19); - -// @flow -/*:: import type { SearchState, SearchOptions, SearchSuggestion } from 'types/Search';*/ -/*:: type State = { search: SearchState };*/ -var selectState = exports.selectState = function selectState(state /*: State*/) /*: SearchState*/ { - return state.search; -}; - -var selectSearchValue /*: (state: State) => string*/ = exports.selectSearchValue = (0, _reselect.createSelector)(selectState, function (state) { - return state.searchQuery; -}); - -var selectSearchOptions /*: (state: State) => SearchOptions*/ = exports.selectSearchOptions = (0, _reselect.createSelector)(selectState, function (state) { - return state.options; -}); - -var selectSuggestions /*: ( - state: State - ) => { [string]: Array }*/ = exports.selectSuggestions = (0, _reselect.createSelector)(selectState, function (state) { - return state.suggestions; -}); - -var selectSearchQuery /*: (state: State) => ?string*/ = exports.selectSearchQuery = (0, _reselect.createSelector)(_navigation.selectCurrentPage, _navigation.selectCurrentParams, function (page /*: string*/, params /*: ?{ query: string }*/) { - return page === 'search' ? params && params.query : null; -}); - -var selectIsSearching /*: (state: State) => boolean*/ = exports.selectIsSearching = (0, _reselect.createSelector)(selectState, function (state) { - return state.searching; -}); - -var selectSearchUrisByQuery /*: ( - state: State - ) => { [string]: Array }*/ = exports.selectSearchUrisByQuery = (0, _reselect.createSelector)(selectState, function (state) { - return state.urisByQuery; -}); - -var makeSelectSearchUris = exports.makeSelectSearchUris = function makeSelectSearchUris(query -// replace statement below is kind of ugly, and repeated in doSearch action -/*: string*/) /*: ((state: State) => Array)*/ { - return (0, _reselect.createSelector)(selectSearchUrisByQuery, function (byQuery) { - return byQuery[query ? query.replace(/^lbry:\/\//i, '').replace(/\//, ' ') : query]; - }); -}; - -var selectWunderBarAddress = exports.selectWunderBarAddress = (0, _reselect.createSelector)(_navigation.selectCurrentPage, selectSearchQuery, _navigation.selectCurrentParams, function (page /*: string*/, query /*: string*/, params /*: { uri: string }*/) { - // 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 /*: boolean*/ = exports.selectSearchBarFocused = (0, _reselect.createSelector)(selectState, function (state) { - return state.focused; -}); - -var selectSearchSuggestions /*: Array*/ = exports.selectSearchSuggestions = (0, _reselect.createSelector)(selectSearchValue, selectSuggestions, function (query /*: string*/, suggestions /*: { [string]: Array }*/) { - if (!query) { - return []; - } - - var queryIsPrefix = query === 'lbry:' || query === 'lbry:/' || query === 'lbry://'; - - if (query.startsWith('lbry://') && query !== 'lbry://') { - // If it starts with a prefix, don't show any autocomplete results - // They are probably typing/pasting in a lbry uri - return [{ - value: query, - type: _search.SEARCH_TYPES.FILE - }]; - } else if (queryIsPrefix) { - // If it is a prefix, wait until something else comes to figure out what to do - return []; - } - - var searchSuggestions = []; - try { - var _uri = (0, _lbryURI.normalizeURI)(query); - - var _parseURI = (0, _lbryURI.parseURI)(_uri), - claimName = _parseURI.claimName, - isChannel = _parseURI.isChannel; - - searchSuggestions.push({ - value: claimName, - type: _search.SEARCH_TYPES.SEARCH - }, { - value: _uri, - shorthand: isChannel ? claimName.slice(1) : claimName, - type: isChannel ? _search.SEARCH_TYPES.CHANNEL : _search.SEARCH_TYPES.FILE - }); - } catch (e) { - searchSuggestions.push({ - value: query, - type: _search.SEARCH_TYPES.SEARCH - }); - } - - var apiSuggestions = suggestions[query] || []; - if (apiSuggestions.length) { - searchSuggestions = searchSuggestions.concat(apiSuggestions.filter(function (suggestion) { - return suggestion !== query; - }).map(function (suggestion) { - // determine if it's a channel - try { - var _uri2 = (0, _lbryURI.normalizeURI)(suggestion); - - var _parseURI2 = (0, _lbryURI.parseURI)(_uri2), - _claimName = _parseURI2.claimName, - _isChannel = _parseURI2.isChannel; - - return { - value: _uri2, - shorthand: _isChannel ? _claimName.slice(1) : _claimName, - type: _isChannel ? _search.SEARCH_TYPES.CHANNEL : _search.SEARCH_TYPES.FILE - }; - } catch (e) { - // search result includes some character that isn't valid in claim names - return { - value: suggestion, - type: _search.SEARCH_TYPES.SEARCH - }; - } - })); - } - - return searchSuggestions; -}); - -// Creates a query string based on the state in the search reducer -// Can be overrided by passing in custom sizes/from values for other areas pagination -var makeSelectQueryWithOptions = exports.makeSelectQueryWithOptions = function makeSelectQueryWithOptions(customQuery /*: ?string*/, customSize /*: ?number*/, customFrom // If it's a background search, don't use the users settings -/*: ?number*/) { - var isBackgroundSearch /*: boolean*/ = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - return (0, _reselect.createSelector)(selectSearchQuery, selectSearchOptions, function (query, options) { - var size = customSize || options[_search.SEARCH_OPTIONS.RESULT_COUNT]; - - var queryString = (0, _query_params.getSearchQueryString)(customQuery || query, _extends({}, options, { size: size, from: customFrom }), !isBackgroundSearch); - - return queryString; - }); -}; - -/***/ }), -/* 23 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var isClaimNsfw = exports.isClaimNsfw = function isClaimNsfw(claim) { - return claim && claim.value && claim.value.stream && claim.value.stream.metadata.nsfw; -}; - -/***/ }), -/* 24 */ -/***/ (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 - }; -} - -/***/ }), -/* 25 */ -/***/ (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.doSendTip = doSendTip; -exports.doWalletEncrypt = doWalletEncrypt; -exports.doWalletUnlock = doWalletUnlock; -exports.doWalletLock = doWalletLock; -exports.doWalletDecrypt = doWalletDecrypt; -exports.doWalletStatus = doWalletStatus; -exports.doSetTransactionListFilter = doSetTransactionListFilter; -exports.doUpdateBlockHeight = doUpdateBlockHeight; - -var _action_types = __webpack_require__(2); - -var ACTIONS = _interopRequireWildcard(_action_types); - -var _lbry = __webpack_require__(9); - -var _lbry2 = _interopRequireDefault(_lbry); - -var _notifications = __webpack_require__(4); - -var _wallet = __webpack_require__(26); - -var _formatCredits = __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.account_balance().then(function (balanceAsString) { - var balance = parseFloat(balanceAsString); - - 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.utxo_release().then(function () { - return _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.address_unused().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.address_is_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.doToast)({ - title: 'Insufficient credits', - message: 'Insufficient credits' - })); - return; - } - - dispatch({ - type: ACTIONS.SEND_TRANSACTION_STARTED - }); - - var successCallback = function successCallback(response) { - if (response.txid) { - dispatch({ - type: ACTIONS.SEND_TRANSACTION_COMPLETED - }); - dispatch((0, _notifications.doToast)({ - message: 'You sent ' + amount + ' LBC', - linkText: 'History', - linkTarget: '/wallet' - })); - } else { - dispatch({ - type: ACTIONS.SEND_TRANSACTION_FAILED, - data: { error: response } - }); - dispatch((0, _notifications.doToast)({ - message: 'Transaction failed', - isError: true - })); - } - }; - - var errorCallback = function errorCallback(error) { - dispatch({ - type: ACTIONS.SEND_TRANSACTION_FAILED, - data: { error: error.message } - }); - dispatch((0, _notifications.doToast)({ - message: 'Transaction failed', - isError: true - })); - }; - - _lbry2.default.wallet_send({ - address: address, - amount: (0, _formatCredits.creditsToString)(amount) - }).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 doSendTip(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.doToast)({ - message: 'Insufficient credits', - isError: true - })); - return; - } - - var success = function success() { - dispatch((0, _notifications.doToast)({ - message: __('You sent ' + amount + ' LBC as a tip, Mahalo!'), - linkText: __('History'), - linkTarget: __('/wallet') - })); - - dispatch({ - type: ACTIONS.SUPPORT_TRANSACTION_COMPLETED - }); - - if (successCallback) { - successCallback(); - } - }; - - var error = function error(err) { - dispatch((0, _notifications.doToast)({ - message: __('There was an error sending support funds.'), - isError: true - })); - - dispatch({ - type: ACTIONS.SUPPORT_TRANSACTION_FAILED, - data: { - error: err - } - }); - - if (errorCallback) { - errorCallback(); - } - }; - - dispatch({ - type: ACTIONS.SUPPORT_TRANSACTION_STARTED - }); - - _lbry2.default.claim_tip({ - claim_id: claimId, - amount: (0, _formatCredits.creditsToString)(amount) - }).then(success, error); - }; -} - -function doWalletEncrypt(newPassword) { - return function (dispatch) { - dispatch({ - type: ACTIONS.WALLET_ENCRYPT_START - }); - - _lbry2.default.account_encrypt({ new_password: newPassword }).then(function (result) { - if (result === true) { - dispatch({ - type: ACTIONS.WALLET_ENCRYPT_COMPLETED, - result: result - }); - } else { - dispatch({ - type: ACTIONS.WALLET_ENCRYPT_FAILED, - result: result - }); - } - }); - }; -} - -function doWalletUnlock(password) { - return function (dispatch) { - dispatch({ - type: ACTIONS.WALLET_UNLOCK_START - }); - - _lbry2.default.account_unlock({ password: password }).then(function (result) { - if (result === true) { - dispatch({ - type: ACTIONS.WALLET_UNLOCK_COMPLETED, - result: result - }); - } else { - dispatch({ - type: ACTIONS.WALLET_UNLOCK_FAILED, - result: result - }); - } - }); - }; -} - -function doWalletLock() { - return function (dispatch) { - dispatch({ - type: ACTIONS.WALLET_LOCK_START - }); - - _lbry2.default.wallet_lock().then(function (result) { - if (result === true) { - dispatch({ - type: ACTIONS.WALLET_LOCK_COMPLETED, - result: result - }); - } else { - dispatch({ - type: ACTIONS.WALLET_LOCK_FAILED, - result: result - }); - } - }); - }; -} - -function doWalletDecrypt() { - return function (dispatch) { - dispatch({ - type: ACTIONS.WALLET_DECRYPT_START - }); - - _lbry2.default.account_decrypt().then(function (result) { - if (result === true) { - dispatch({ - type: ACTIONS.WALLET_DECRYPT_COMPLETED, - result: result - }); - } else { - dispatch({ - type: ACTIONS.WALLET_DECRYPT_FAILED, - result: result - }); - } - }); - }; -} - -function doWalletStatus() { - return function (dispatch) { - dispatch({ - type: ACTIONS.WALLET_STATUS_START - }); - - _lbry2.default.status().then(function (status) { - if (status && status.wallet) { - dispatch({ - type: ACTIONS.WALLET_STATUS_COMPLETED, - result: status.wallet.is_encrypted - }); - } - }); - }; -} - -function doSetTransactionListFilter(filterOption) { - return { - type: ACTIONS.SET_TRANSACTION_LIST_FILTER, - data: filterOption - }; -} - -function doUpdateBlockHeight() { - return function (dispatch) { - return _lbry2.default.status().then(function (status) { - if (status.wallet) { - dispatch({ - type: ACTIONS.UPDATE_CURRENT_HEIGHT, - data: status.wallet.blocks - }); - } - }); - }; -} - -/***/ }), -/* 26 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.selectTransactionListFilter = exports.makeSelectBlockDate = exports.selectCurrentHeight = 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.selectWalletLockResult = exports.selectWalletLockSucceeded = exports.selectWalletLockPending = exports.selectWalletUnlockResult = exports.selectWalletUnlockSucceeded = exports.selectWalletUnlockPending = exports.selectWalletDecryptResult = exports.selectWalletDecryptSucceeded = exports.selectWalletDecryptPending = exports.selectWalletEncryptResult = exports.selectWalletEncryptSucceeded = exports.selectWalletEncryptPending = exports.selectWalletIsEncrypted = exports.selectWalletState = exports.selectState = undefined; - -var _reselect = __webpack_require__(19); - -var _transaction_types = __webpack_require__(27); - -var TRANSACTIONS = _interopRequireWildcard(_transaction_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 _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 selectWalletState = exports.selectWalletState = selectState; - -var selectWalletIsEncrypted = exports.selectWalletIsEncrypted = (0, _reselect.createSelector)(selectState, function (state) { - return state.walletIsEncrypted; -}); - -var selectWalletEncryptPending = exports.selectWalletEncryptPending = (0, _reselect.createSelector)(selectState, function (state) { - return state.walletEncryptPending; -}); - -var selectWalletEncryptSucceeded = exports.selectWalletEncryptSucceeded = (0, _reselect.createSelector)(selectState, function (state) { - return state.walletEncryptSucceded; -}); - -var selectWalletEncryptResult = exports.selectWalletEncryptResult = (0, _reselect.createSelector)(selectState, function (state) { - return state.walletEncryptResult; -}); - -var selectWalletDecryptPending = exports.selectWalletDecryptPending = (0, _reselect.createSelector)(selectState, function (state) { - return state.walletDecryptPending; -}); - -var selectWalletDecryptSucceeded = exports.selectWalletDecryptSucceeded = (0, _reselect.createSelector)(selectState, function (state) { - return state.walletDecryptSucceded; -}); - -var selectWalletDecryptResult = exports.selectWalletDecryptResult = (0, _reselect.createSelector)(selectState, function (state) { - return state.walletDecryptResult; -}); - -var selectWalletUnlockPending = exports.selectWalletUnlockPending = (0, _reselect.createSelector)(selectState, function (state) { - return state.walletUnlockPending; -}); - -var selectWalletUnlockSucceeded = exports.selectWalletUnlockSucceeded = (0, _reselect.createSelector)(selectState, function (state) { - return state.walletUnlockSucceded; -}); - -var selectWalletUnlockResult = exports.selectWalletUnlockResult = (0, _reselect.createSelector)(selectState, function (state) { - return state.walletUnlockResult; -}); - -var selectWalletLockPending = exports.selectWalletLockPending = (0, _reselect.createSelector)(selectState, function (state) { - return state.walletLockPending; -}); - -var selectWalletLockSucceeded = exports.selectWalletLockSucceeded = (0, _reselect.createSelector)(selectState, function (state) { - return state.walletLockSucceded; -}); - -var selectWalletLockResult = exports.selectWalletLockResult = (0, _reselect.createSelector)(selectState, function (state) { - return state.walletLockResult; -}); - -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 && tx.abandon_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] === '@' ? TRANSACTIONS.CHANNEL : TRANSACTIONS.PUBLISH - }); - }))); - append.push.apply(append, _toConsumableArray(tx.support_info.map(function (item) { - return Object.assign({}, tx, item, { - type: !item.is_tip ? TRANSACTIONS.SUPPORT : TRANSACTIONS.TIP - }); - }))); - append.push.apply(append, _toConsumableArray(tx.update_info.map(function (item) { - return Object.assign({}, tx, item, { type: TRANSACTIONS.UPDATE }); - }))); - append.push.apply(append, _toConsumableArray(tx.abandon_info.map(function (item) { - return Object.assign({}, tx, item, { type: TRANSACTIONS.ABANDON }); - }))); - - if (!append.length) { - append.push(Object.assign({}, tx, { - type: tx.value < 0 ? TRANSACTIONS.SPEND : TRANSACTIONS.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 balanceDelta = parseFloat(item.balance_delta); - var value = parseFloat(item.value); - var amount = balanceDelta || value; - var fee = parseFloat(tx.fee); - - return { - txid: txid, - timestamp: tx.timestamp, - date: tx.timestamp ? new Date(Number(tx.timestamp) * 1000) : null, - amount: amount, - fee: fee, - claim_id: item.claim_id, - claim_name: item.claim_name, - type: item.type || TRANSACTIONS.SPEND, - nout: item.nout, - confirmations: tx.confirmations - }; - }))); - }); - - return items.sort(function (tx1, tx2) { - if (!tx1.timestamp && !tx2.timestamp) { - return 0; - } else if (!tx1.timestamp && tx2.timestamp) { - return -1; - } else if (tx1.timestamp && !tx2.timestamp) { - return 1; - } - - return tx2.timestamp - tx1.timestamp; - }); -}); - -var selectRecentTransactions = exports.selectRecentTransactions = (0, _reselect.createSelector)(selectTransactionItems, function (transactions) { - var threshold = new Date(); - threshold.setDate(threshold.getDate() - 7); - return transactions.filter(function (transaction) { - if (!transaction.date) { - return true; // pending 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 selectCurrentHeight = exports.selectCurrentHeight = (0, _reselect.createSelector)(selectState, function (state) { - return state.latestBlock; -}); - -var makeSelectBlockDate = exports.makeSelectBlockDate = function makeSelectBlockDate(block) { - return (0, _reselect.createSelector)(selectBlocks, selectCurrentHeight, function (blocks, latestBlock) { - // If we have the block data, look at the actual date, - // If not, try to simulate it based on 2.5 minute blocks - // Adding this on 11/7/2018 because caling block_show for every claim is causing - // performance issues. - if (blocks && blocks[block]) { - return new Date(blocks[block].time * 1000); - } - - // Pending claim - if (block < 1) { - return null; - } - - var difference = latestBlock - block; - var msSincePublish = difference * 2.5 * 60 * 1000; // Number of blocks * 2.5 minutes in ms - var publishDate = Date.now() - msSincePublish; - return new Date(publishDate); - }); -}; - -var selectTransactionListFilter = exports.selectTransactionListFilter = (0, _reselect.createSelector)(selectState, function (state) { - return state.transactionListFilter || ''; -}); - -/***/ }), -/* 27 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -// eslint-disable-next-line import/prefer-default-export -var ALL = exports.ALL = 'all'; -var SPEND = exports.SPEND = 'spend'; -var RECEIVE = exports.RECEIVE = 'receive'; -var PUBLISH = exports.PUBLISH = 'publish'; -var CHANNEL = exports.CHANNEL = 'channel'; -var TIP = exports.TIP = 'tip'; -var SUPPORT = exports.SUPPORT = 'support'; -var UPDATE = exports.UPDATE = 'update'; -var ABANDON = exports.ABANDON = 'abandon'; - -/***/ }), -/* 28 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.formatCredits = formatCredits; -exports.formatFullPrice = formatFullPrice; -exports.creditsToString = creditsToString; -function formatCredits(amount, precision) { - if (Number.isNaN(parseFloat(amount))) return '0'; - return parseFloat(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); -} - -function creditsToString(amount) { - var creditString = parseFloat(amount).toFixed(8); - return creditString; -} - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.doFetchCostInfoForUri = doFetchCostInfoForUri; - -var _action_types = __webpack_require__(2); - -var ACTIONS = _interopRequireWildcard(_action_types); - -var _lbryapi = __webpack_require__(12); - -var _lbryapi2 = _interopRequireDefault(_lbryapi); - -var _claims = __webpack_require__(17); - -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 }); - }); - } - }; -} - -/***/ }), -/* 30 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.doFetchFileInfo = doFetchFileInfo; -exports.doFileList = doFileList; -exports.doFetchFileInfosAndPublishedClaims = doFetchFileInfosAndPublishedClaims; -exports.doSetFileListSort = doSetFileListSort; - -var _action_types = __webpack_require__(2); - -var ACTIONS = _interopRequireWildcard(_action_types); - -var _lbry = __webpack_require__(9); - -var _lbry2 = _interopRequireDefault(_lbry); - -var _claims = __webpack_require__(8); - -var _claims2 = __webpack_require__(17); - -var _file_info = __webpack_require__(31); - -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()); - }; -} - -function doSetFileListSort(page, value) { - return { - type: ACTIONS.SET_FILE_LIST_SORT, - data: { page: page, value: value } - }; -} - -/***/ }), -/* 31 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.selectFileListDownloadedSort = exports.selectFileListPublishedSort = 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__(17); - -var _reselect = __webpack_require__(19); - -var _lbryURI = __webpack_require__(3); - -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; - }); -}; - -var selectFileListPublishedSort = exports.selectFileListPublishedSort = (0, _reselect.createSelector)(selectState, function (state) { - return state.fileListPublishedSort; -}); - -var selectFileListDownloadedSort = exports.selectFileListDownloadedSort = (0, _reselect.createSelector)(selectState, function (state) { - return state.fileListDownloadedSort; -}); - -/***/ }), -/* 32 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.doUpdateSearchOptions = exports.doBlurSearchInput = exports.doFocusSearchInput = exports.doUpdateSearchQuery = exports.getSearchSuggestions = exports.doSearch = exports.setSearchApi = undefined; - -var _action_types = __webpack_require__(2); - -var ACTIONS = _interopRequireWildcard(_action_types); - -var _lbryURI = __webpack_require__(3); - -var _claims = __webpack_require__(8); - -var _search = __webpack_require__(22); - -var _batchActions = __webpack_require__(24); - -var _debounce = __webpack_require__(33); - -var _debounce2 = _interopRequireDefault(_debounce); - -var _handleFetch = __webpack_require__(34); - -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; } } - -// @flow -/*:: import type { SearchState, SearchOptions } from 'types/Search';*/ - - -var DEBOUNCED_SEARCH_SUGGESTION_MS = 300; -/*:: type Dispatch = (action: any) => any;*/ - - -// We can't use env's because they aren't passed into node_modules -/*:: type GetState = () => { search: SearchState };*/ -var CONNECTION_STRING = 'https://lighthouse.lbry.io/'; - -var setSearchApi = exports.setSearchApi = function setSearchApi(endpoint /*: string*/) { - CONNECTION_STRING = endpoint.replace(/\/*$/, '/'); // exactly one slash at the end; -}; - -var doSearch = exports.doSearch = function doSearch(rawQuery /*: string*/, size /*: ?number*/, from /*: ?number*/) { - var isBackgroundSearch /*: boolean*/ = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - return function (dispatch /*: Dispatch*/, getState /*: GetState*/) { - var query = rawQuery.replace(/^lbry:\/\//i, '').replace(/\//, ' '); - - if (!query) { - dispatch({ - type: ACTIONS.SEARCH_FAIL - }); - return; - } - - var state = getState(); - var queryWithOptions = (0, _search.makeSelectQueryWithOptions)(query, size, from, isBackgroundSearch)(state); - - // If we have already searched for something, we don't need to do anything - var urisForQuery = (0, _search.makeSelectSearchUris)(queryWithOptions)(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 - // isBackgroundSearch means the search is happening in the background, don't update the search query - if (!state.search.searchQuery && !isBackgroundSearch) { - dispatch({ - type: ACTIONS.UPDATE_SEARCH_QUERY, - data: { searchQuery: query } - }); - } - - fetch(CONNECTION_STRING + 'search?' + queryWithOptions).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: queryWithOptions, - uris: uris - } - }); - dispatch(_batchActions.batchActions.apply(undefined, actions)); - }).catch(function () { - dispatch({ - type: ACTIONS.SEARCH_FAIL - }); - }); - }; -}; - -var getSearchSuggestions = exports.getSearchSuggestions = function getSearchSuggestions(value /*: string*/) { - return function (dispatch /*: Dispatch*/, getState /*: GetState*/) { - var query = value.trim(); - - // strip out any basic stuff for more accurate search results - var searchValue = query.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('#')); - } - - var suggestions = (0, _search.selectSuggestions)(getState()); - if (suggestions[searchValue]) { - return; - } - - fetch(CONNECTION_STRING + 'autocomplete?s=' + searchValue).then(_handleFetch2.default).then(function (apiSuggestions) { - dispatch({ - type: ACTIONS.UPDATE_SEARCH_SUGGESTIONS, - data: { - query: searchValue, - suggestions: apiSuggestions - } - }); - }).catch(function () { - // If the fetch fails, do nothing - // Basic search suggestions are already populated at this point - }); - }; -}; - -var throttledSearchSuggestions = (0, _debounce2.default)(function (dispatch, query) { - dispatch(getSearchSuggestions(query)); -}, DEBOUNCED_SEARCH_SUGGESTION_MS); - -var doUpdateSearchQuery = exports.doUpdateSearchQuery = function doUpdateSearchQuery(query /*: string*/, shouldSkipSuggestions /*: ?boolean*/) { - return function (dispatch /*: 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) { - throttledSearchSuggestions(dispatch, query); - } - }; -}; - -var doFocusSearchInput = exports.doFocusSearchInput = function doFocusSearchInput() { - return function (dispatch /*: Dispatch*/) { - return dispatch({ - type: ACTIONS.SEARCH_FOCUS - }); - }; -}; - -var doBlurSearchInput = exports.doBlurSearchInput = function doBlurSearchInput() { - return function (dispatch /*: Dispatch*/) { - return dispatch({ - type: ACTIONS.SEARCH_BLUR - }); - }; -}; - -var doUpdateSearchOptions = exports.doUpdateSearchOptions = function doUpdateSearchOptions(newOptions /*: SearchOptions*/) { - return function (dispatch /*: Dispatch*/, getState /*: GetState*/) { - var state = getState(); - var searchQuery = (0, _search.selectSearchQuery)(state); - - dispatch({ - type: ACTIONS.UPDATE_SEARCH_OPTIONS, - data: newOptions - }); - - if (searchQuery) { - // After updating, perform a search with the new options - dispatch(doSearch(searchQuery)); - } - }; -}; - -/***/ }), -/* 33 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = debouce; -// Returns a function, that, as long as it continues to be invoked, will not -// be triggered. The function will be called after it stops being called for -// N milliseconds. If `immediate` is passed, trigger the function on the -// leading edge, instead of the trailing. -function debouce(func, wait, immediate) { - var timeout = void 0; - - return function () { - var context = this; - var args = arguments; - var later = function later() { - timeout = null; - if (!immediate) func.apply(context, args); - }; - - var callNow = immediate && !timeout; - clearTimeout(timeout); - timeout = setTimeout(later, wait); - if (callNow) func.apply(context, args); - }; -} - -/***/ }), -/* 34 */ -/***/ (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)); -} - -/***/ }), -/* 35 */ -/***/ (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__(12); - -var _lbryapi2 = _interopRequireDefault(_lbryapi); - -var _action_types = __webpack_require__(2); - -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); - }; -} - -/***/ }), -/* 36 */ -/***/ (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__(2); - -var ACTIONS = _interopRequireWildcard(_action_types); - -var _lbryURI = __webpack_require__(3); - -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 = { - 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 byUri = Object.assign({}, state.claimsByUri); - var pendingById = Object.assign({}, state.pendingById); - - claims.forEach(function (claim) { - var uri = (0, _lbryURI.buildURI)({ claimName: claim.name, claimId: claim.claim_id }); - - if (claim.type && claim.type.match(/claim|update/)) { - if (claim.confirmations < 1) { - pendingById[claim.claim_id] = claim; - delete byId[claim.claim_id]; - delete byUri[claim.claim_id]; - } else { - byId[claim.claim_id] = claim; - byUri[uri] = claim.claim_id; - } - } - }); - - // Remove old pending publishes - Object.values(pendingById).filter(function (pendingClaim) { - return byId[pendingClaim.claim_id]; - }).forEach(function (pendingClaim) { - delete pendingById[pendingClaim.claim_id]; - }); - - return Object.assign({}, state, { - isFetchingClaimListMine: false, - myClaims: claims, - byId: byId, - claimsByUri: byUri, - pendingById: pendingById - }); -}; - -reducers[ACTIONS.FETCH_CHANNEL_LIST_STARTED] = function (state) { - return Object.assign({}, state, { fetchingMyChannels: true }); -}; - -reducers[ACTIONS.FETCH_CHANNEL_LIST_COMPLETED] = function (state, action) { - 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[claim.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, - currentChannelPage: page - }); -}; - -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); - var claimsByUri = Object.assign({}, state.claimsByUri); - - if (claims !== undefined) { - claims.forEach(function (claim) { - allClaimIds.add(claim.claim_id); - currentPageClaimIds.push(claim.claim_id); - byId[claim.claim_id] = claim; - claimsByUri['lbry://' + claim.name + '#' + claim.claim_id] = claim.claim_id; - }); - } - - byChannel.all = allClaimIds; - byChannel[page] = currentPageClaimIds; - claimsByChannel[uri] = byChannel; - delete fetchingChannelClaims[uri]; - - return Object.assign({}, state, { - claimsByChannel: claimsByChannel, - byId: byId, - fetchingChannelClaims: fetchingChannelClaims, - claimsByUri: claimsByUri, - currentChannelPage: page - }); -}; - -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_TRENDING_CONTENT_STARTED] = function (state) { - return Object.assign({}, state, { - fetchingTrendingContent: true - }); -}; - -reducers[ACTIONS.FETCH_TRENDING_CONTENT_COMPLETED] = function (state, action) { - var _action$data4 = action.data, - uris = _action$data4.uris, - success = _action$data4.success; - - - return Object.assign({}, state, { - fetchingTrendingContent: false, - fetchingTrendingContentFailed: !success, - trendingUris: uris - }); -}; - -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$data5 = action.data, - uri = _action$data5.uri, - totalClaims = _action$data5.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; -} - -/***/ }), -/* 37 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.costInfoReducer = costInfoReducer; - -var _action_types = __webpack_require__(2); - -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; -} - -/***/ }), -/* 38 */ -/***/ (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; }; - -exports.fileInfoReducer = fileInfoReducer; - -var _action_types = __webpack_require__(2); - -var ACTIONS = _interopRequireWildcard(_action_types); - -var _sort_options = __webpack_require__(39); - -var SORT_OPTIONS = _interopRequireWildcard(_sort_options); - -var _pages = __webpack_require__(40); - -var PAGES = _interopRequireWildcard(_pages); - -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 reducers = {}; -var defaultState = { - fileListPublishedSort: SORT_OPTIONS.DATE_NEW, - fileListDownloadedSort: SORT_OPTIONS.DATE_NEW -}; - -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_CANCELED] = function (state, action) { - var outpoint = action.data.outpoint; - - - var newDownloading = Object.assign({}, state.downloadingByOutpoint); - delete newDownloading[outpoint]; - - return Object.assign({}, state, { - 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; - - var newErrors = _extends({}, state.errors); - if (uri in newErrors) delete newErrors[uri]; - - return Object.assign({}, state, { - urisLoading: newLoading, - errors: _extends({}, newErrors) - }); -}; - -reducers[ACTIONS.LOADING_VIDEO_FAILED] = function (state, action) { - var uri = action.data.uri; - - - var newLoading = Object.assign({}, state.urisLoading); - delete newLoading[uri]; - - var newErrors = _extends({}, state.errors); - newErrors[uri] = true; - - return Object.assign({}, state, { - urisLoading: newLoading, - errors: _extends({}, newErrors) - }); -}; - -reducers[ACTIONS.FETCH_DATE] = function (state, action) { - var time = action.data.time; - - if (time) { - return Object.assign({}, state, { - publishedDate: time - }); - } - return null; -}; - -reducers[ACTIONS.SET_FILE_LIST_SORT] = function (state, action) { - var _pageSortStates; - - var pageSortStates = (_pageSortStates = {}, _defineProperty(_pageSortStates, PAGES.PUBLISHED, 'fileListPublishedSort'), _defineProperty(_pageSortStates, PAGES.DOWNLOADED, 'fileListDownloadedSort'), _pageSortStates); - var pageSortState = pageSortStates[action.data.page]; - var value = action.data.value; - - - return Object.assign({}, state, _defineProperty({}, pageSortState, value)); -}; - -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; -} - -/***/ }), -/* 39 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var DATE_NEW = exports.DATE_NEW = 'dateNew'; -var DATE_OLD = exports.DATE_OLD = 'dateOld'; -var TITLE = exports.TITLE = 'title'; -var FILENAME = exports.FILENAME = 'filename'; - -/***/ }), -/* 40 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var AUTH = exports.AUTH = 'auth'; -var BACKUP = exports.BACKUP = 'backup'; -var CHANNEL = exports.CHANNEL = 'channel'; -var DISCOVER = exports.DISCOVER = 'discover'; -var FILE = exports.FILE = 'file'; -var DOWNLOADED = exports.DOWNLOADED = 'downloaded'; -var PUBLISHED = exports.PUBLISHED = 'published'; -var GET_CREDITS = exports.GET_CREDITS = 'getcredits'; -var HELP = exports.HELP = 'help'; -var INVITE = exports.INVITE = 'invite'; -var PUBLISH = exports.PUBLISH = 'publish'; -var REPORT = exports.REPORT = 'report'; -var REWARDS = exports.REWARDS = 'rewards'; -var SEARCH = exports.SEARCH = 'search'; -var SEND_CREDITS = exports.SEND_CREDITS = 'send'; -var SETTINGS = exports.SETTINGS = 'settings'; -var SHOW = exports.SHOW = 'show'; -var SUBSCRIPTIONS = exports.SUBSCRIPTIONS = 'subscriptions'; -var TRANSACTION_HISTORY = exports.TRANSACTION_HISTORY = 'history'; -var HISTORY = exports.HISTORY = 'user_history'; -var WALLET = exports.WALLET = 'wallet'; - -/***/ }), -/* 41 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.notificationsReducer = 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__(2); - -var ACTIONS = _interopRequireWildcard(_action_types); - -var _reduxUtils = __webpack_require__(42); - -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; } - -// @flow -/*:: import type { - NotificationState, - DoToast, - DoError, - DoNotification, - DoEditNotification, - DoDeleteNotification, -} from 'types/Notification';*/ - - -var defaultState /*: NotificationState*/ = { - notifications: [], - toasts: [], - errors: [] -}; - -var notificationsReducer = (0, _reduxUtils.handleActions)((_handleActions = {}, _defineProperty(_handleActions, ACTIONS.CREATE_TOAST, function (state /*: NotificationState*/, action /*: DoToast*/) { - var toast = action.data; - var newToasts = state.toasts.slice(); - newToasts.push(toast); - - return _extends({}, state, { - toasts: newToasts - }); -}), _defineProperty(_handleActions, ACTIONS.DISMISS_TOAST, function (state /*: NotificationState*/) { - var newToasts = state.toasts.slice(); - newToasts.shift(); - - return _extends({}, state, { - toasts: newToasts - }); -}), _defineProperty(_handleActions, ACTIONS.CREATE_NOTIFICATION, function (state /*: NotificationState*/, action /*: DoNotification*/) { - var notification = action.data; - var newNotifications = state.notifications.slice(); - newNotifications.push(notification); - - return _extends({}, state, { - notifications: newNotifications - }); -}), _defineProperty(_handleActions, ACTIONS.EDIT_NOTIFICATION, function (state /*: NotificationState*/, action /*: DoEditNotification*/) { - var notification = action.data.notification; - - var notifications = state.notifications.slice(); - - notifications = notifications.map(function (pastNotification) { - return pastNotification.id === notification.id ? notification : pastNotification; - }); - - return _extends({}, state, { - notifications: notifications - }); -}), _defineProperty(_handleActions, ACTIONS.DELETE_NOTIFICATION, function (state /*: NotificationState*/, action /*: DoDeleteNotification*/) { - var id = action.data.id; - - var newNotifications = state.notifications.slice(); - newNotifications = newNotifications.filter(function (notification) { - return notification.id !== id; - }); - - return _extends({}, state, { - notifications: newNotifications - }); -}), _defineProperty(_handleActions, ACTIONS.CREATE_ERROR, function (state /*: NotificationState*/, action /*: DoError*/) { - var error = action.data; - var newErrors = state.errors.slice(); - newErrors.push(error); - - return _extends({}, state, { - errors: newErrors - }); -}), _defineProperty(_handleActions, ACTIONS.DISMISS_ERROR, function (state /*: NotificationState*/) { - var newErrors = state.errors.slice(); - newErrors.shift(); - - return _extends({}, state, { - errors: newErrors - }); -}), _handleActions), defaultState); - -exports.notificationsReducer = notificationsReducer; - -/***/ }), -/* 42 */ -/***/ (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; - }; -}; - -/***/ }), -/* 43 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.searchReducer = undefined; - -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 _options, _handleActions; - -var _action_types = __webpack_require__(2); - -var ACTIONS = _interopRequireWildcard(_action_types); - -var _reduxUtils = __webpack_require__(42); - -var _search = __webpack_require__(21); - -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; } // @flow - - -/*:: import type { - SearchState, - SearchSuccess, - UpdateSearchQuery, - UpdateSearchSuggestions, - HistoryNavigate, - UpdateSearchOptions, -} from 'types/Search';*/ - - -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 - options: (_options = {}, _defineProperty(_options, _search.SEARCH_OPTIONS.RESULT_COUNT, 30), _defineProperty(_options, _search.SEARCH_OPTIONS.CLAIM_TYPE, _search.SEARCH_OPTIONS.INCLUDE_FILES_AND_CHANNELS), _defineProperty(_options, _search.SEARCH_OPTIONS.MEDIA_AUDIO, true), _defineProperty(_options, _search.SEARCH_OPTIONS.MEDIA_VIDEO, true), _defineProperty(_options, _search.SEARCH_OPTIONS.MEDIA_TEXT, true), _defineProperty(_options, _search.SEARCH_OPTIONS.MEDIA_IMAGE, true), _defineProperty(_options, _search.SEARCH_OPTIONS.MEDIA_APPLICATION, true), _options), - 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: _extends({}, state.suggestions, _defineProperty({}, action.data.query, action.data.suggestions)) - }); -}), _defineProperty(_handleActions, ACTIONS.HISTORY_NAVIGATE, function (state /*: SearchState*/, action /*: HistoryNavigate*/) /*: SearchState*/ { - var url = action.data.url; - - return _extends({}, state, { - searchQuery: url.indexOf('/search') === 0 ? url.slice(14) : '', - isActive: url.indexOf('/search') === 0, - suggestions: {} - }); -}), _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 - }); -}), _defineProperty(_handleActions, ACTIONS.UPDATE_SEARCH_OPTIONS, function (state /*: SearchState*/, action /*: UpdateSearchOptions*/) /*: SearchState*/ { - var oldOptions = state.options; - - var newOptions = action.data; - var options = _extends({}, oldOptions, newOptions); - return _extends({}, state, { - options: options - }); -}), _handleActions), defaultState); - -/***/ }), -/* 44 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.walletReducer = walletReducer; - -var _action_types = __webpack_require__(2); - -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 = {}; // @flow - -var buildDraftTransaction = function buildDraftTransaction() { - return { - amount: undefined, - address: undefined - }; -}; - -// TODO: Split into common success and failure types -// See details in https://github.com/lbryio/lbry/issues/1307 -/*:: type ActionResult = { - type: any, - result: any, -};*/ -/*:: type WalletState = { - balance: any, - blocks: any, - latestBlock: ?number, - transactions: any, - fetchingTransactions: boolean, - gettingNewAddress: boolean, - draftTransaction: any, - sendingSupport: boolean, - walletIsEncrypted: boolean, - walletEncryptPending: boolean, - walletEncryptSucceded: ?boolean, - walletEncryptResult: ?boolean, - walletDecryptPending: boolean, - walletDecryptSucceded: ?boolean, - walletDecryptResult: ?boolean, - walletUnlockPending: boolean, - walletUnlockSucceded: ?boolean, - walletUnlockResult: ?boolean, - walletLockPending: boolean, - walletLockSucceded: ?boolean, - walletLockResult: ?boolean, -};*/ - - -var defaultState = { - balance: undefined, - blocks: {}, - latestBlock: undefined, - transactions: {}, - fetchingTransactions: false, - gettingNewAddress: false, - draftTransaction: buildDraftTransaction(), - sendingSupport: false, - walletIsEncrypted: false, - walletEncryptPending: false, - walletEncryptSucceded: null, - walletEncryptResult: null, - walletDecryptPending: false, - walletDecryptSucceded: null, - walletDecryptResult: null, - walletUnlockPending: false, - walletUnlockSucceded: null, - walletUnlockResult: null, - walletLockPending: false, - walletLockSucceded: null, - walletLockResult: null, - transactionListFilter: 'all' -}; - -reducers[ACTIONS.FETCH_TRANSACTIONS_STARTED] = function (state /*: WalletState*/) { - return Object.assign({}, state, { - fetchingTransactions: true - }); -}; - -reducers[ACTIONS.FETCH_TRANSACTIONS_COMPLETED] = function (state /*: WalletState*/, 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 /*: WalletState*/) { - return Object.assign({}, state, { - gettingNewAddress: true - }); -}; - -reducers[ACTIONS.GET_NEW_ADDRESS_COMPLETED] = function (state /*: WalletState*/, action) { - var address = action.data.address; - - // Say no to localStorage! - - return Object.assign({}, state, { - gettingNewAddress: false, - receiveAddress: address - }); -}; - -reducers[ACTIONS.UPDATE_BALANCE] = function (state /*: WalletState*/, action) { - return Object.assign({}, state, { - balance: action.data.balance - }); -}; - -reducers[ACTIONS.CHECK_ADDRESS_IS_MINE_STARTED] = function (state /*: WalletState*/) { - return Object.assign({}, state, { - checkingAddressOwnership: true - }); -}; - -reducers[ACTIONS.CHECK_ADDRESS_IS_MINE_COMPLETED] = function (state /*: WalletState*/) { - return Object.assign({}, state, { - checkingAddressOwnership: false - }); -}; - -reducers[ACTIONS.SET_DRAFT_TRANSACTION_AMOUNT] = function (state /*: WalletState*/, 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 /*: WalletState*/, 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 /*: WalletState*/) { - var newDraftTransaction = Object.assign({}, state.draftTransaction, { - sending: true - }); - - return Object.assign({}, state, { - draftTransaction: newDraftTransaction - }); -}; - -reducers[ACTIONS.SEND_TRANSACTION_COMPLETED] = function (state /*: WalletState*/) { - return Object.assign({}, state, { - draftTransaction: buildDraftTransaction() - }); -}; - -reducers[ACTIONS.SEND_TRANSACTION_FAILED] = function (state /*: WalletState*/, 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 /*: WalletState*/) { - return Object.assign({}, state, { - sendingSupport: true - }); -}; - -reducers[ACTIONS.SUPPORT_TRANSACTION_COMPLETED] = function (state /*: WalletState*/) { - return Object.assign({}, state, { - sendingSupport: false - }); -}; - -reducers[ACTIONS.SUPPORT_TRANSACTION_FAILED] = function (state /*: WalletState*/, action) { - return Object.assign({}, state, { - error: action.data.error, - sendingSupport: false - }); -}; - -reducers[ACTIONS.FETCH_BLOCK_SUCCESS] = function (state /*: WalletState*/, 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 }); -}; - -reducers[ACTIONS.WALLET_STATUS_COMPLETED] = function (state /*: WalletState*/, action) { - return Object.assign({}, state, { - walletIsEncrypted: action.result - }); -}; - -reducers[ACTIONS.WALLET_ENCRYPT_START] = function (state /*: WalletState*/) { - return Object.assign({}, state, { - walletEncryptPending: true, - walletEncryptSucceded: null, - walletEncryptResult: null - }); -}; - -reducers[ACTIONS.WALLET_ENCRYPT_COMPLETED] = function (state /*: WalletState*/, action /*: ActionResult*/) { - return Object.assign({}, state, { - walletEncryptPending: false, - walletEncryptSucceded: true, - walletEncryptResult: action.result - }); -}; - -reducers[ACTIONS.WALLET_ENCRYPT_FAILED] = function (state /*: WalletState*/, action /*: ActionResult*/) { - return Object.assign({}, state, { - walletEncryptPending: false, - walletEncryptSucceded: false, - walletEncryptResult: action.result - }); -}; - -reducers[ACTIONS.WALLET_DECRYPT_START] = function (state /*: WalletState*/) { - return Object.assign({}, state, { - walletDecryptPending: true, - walletDecryptSucceded: null, - walletDecryptResult: null - }); -}; - -reducers[ACTIONS.WALLET_DECRYPT_COMPLETED] = function (state /*: WalletState*/, action /*: ActionResult*/) { - return Object.assign({}, state, { - walletDecryptPending: false, - walletDecryptSucceded: true, - walletDecryptResult: action.result - }); -}; - -reducers[ACTIONS.WALLET_DECRYPT_FAILED] = function (state /*: WalletState*/, action /*: ActionResult*/) { - return Object.assign({}, state, { - walletDecryptPending: false, - walletDecryptSucceded: false, - walletDecryptResult: action.result - }); -}; - -reducers[ACTIONS.WALLET_UNLOCK_START] = function (state /*: WalletState*/) { - return Object.assign({}, state, { - walletUnlockPending: true, - walletUnlockSucceded: null, - walletUnlockResult: null - }); -}; - -reducers[ACTIONS.WALLET_UNLOCK_COMPLETED] = function (state /*: WalletState*/, action /*: ActionResult*/) { - return Object.assign({}, state, { - walletUnlockPending: false, - walletUnlockSucceded: true, - walletUnlockResult: action.result - }); -}; - -reducers[ACTIONS.WALLET_UNLOCK_FAILED] = function (state /*: WalletState*/, action /*: ActionResult*/) { - return Object.assign({}, state, { - walletUnlockPending: false, - walletUnlockSucceded: false, - walletUnlockResult: action.result - }); -}; - -reducers[ACTIONS.WALLET_LOCK_START] = function (state /*: WalletState*/) { - return Object.assign({}, state, { - walletLockPending: false, - walletLockSucceded: null, - walletLockResult: null - }); -}; - -reducers[ACTIONS.WALLET_LOCK_COMPLETED] = function (state /*: WalletState*/, action /*: ActionResult*/) { - return Object.assign({}, state, { - walletLockPending: false, - walletLockSucceded: true, - walletLockResult: action.result - }); -}; - -reducers[ACTIONS.WALLET_LOCK_FAILED] = function (state /*: WalletState*/, action /*: ActionResult*/) { - return Object.assign({}, state, { - walletLockPending: false, - walletLockSucceded: false, - walletLockResult: action.result - }); -}; - -reducers[ACTIONS.SET_TRANSACTION_LIST_FILTER] = function (state /*: WalletState*/, action /*: {}*/) { - return Object.assign({}, state, { - transactionListFilter: action.data - }); -}; - -reducers[ACTIONS.UPDATE_CURRENT_HEIGHT] = function (state /*: WalletState*/, action /*: { data: number }*/) { - return Object.assign({}, state, { - latestBlock: action.data - }); -}; - -function walletReducer() { - var state /*: WalletState*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultState; - var action /*: ActionResult*/ = arguments[1]; - - var handler = reducers[action.type]; - if (handler) return handler(state, action); - return state; -} - -/***/ }), -/* 45 */ -/***/ (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__(2); - -var ACTIONS = _interopRequireWildcard(_action_types); - -var _reduxUtils = __webpack_require__(42); - -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); - -/***/ }), -/* 46 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.selectBlackListedOutpoints = exports.selectState = undefined; - -var _reselect = __webpack_require__(19); - -var selectState = exports.selectState = function selectState(state) { - return state.blacklist || {}; -}; - -var selectBlackListedOutpoints = exports.selectBlackListedOutpoints = (0, _reselect.createSelector)(selectState, function (state) { - return state.blackListedOutpoints; -}); - -/***/ }), -/* 47 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.selectError = exports.selectToast = exports.selectState = undefined; - -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 _reselect = __webpack_require__(19); - -var selectState = exports.selectState = function selectState(state) { - return state.notifications || {}; -}; - -var selectToast = exports.selectToast = (0, _reselect.createSelector)(selectState, function (state) { - if (state.toasts.length) { - var _state$toasts$ = state.toasts[0], - id = _state$toasts$.id, - params = _state$toasts$.params; - - return _extends({ - id: id - }, params); - } - - return null; -}); - -var selectError = exports.selectError = (0, _reselect.createSelector)(selectState, function (state) { - if (state.errors.length) { - var error = state.errors[0].error; - - return { - error: error - }; - } - - return null; -}); - -/***/ }), -/* 48 */ -/***/ (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__(19); - -var _navigation = __webpack_require__(18); - -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]; - }); -}; - -/***/ }), -/* 49 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var API_DOWN = exports.API_DOWN = 'apiDown'; -var READY = exports.READY = 'ready'; -var IN_PROGRESS = exports.IN_PROGRESS = 'inProgress'; -var COMPLETE = exports.COMPLETE = 'complete'; -var MANUAL = exports.MANUAL = 'manual'; - -/***/ }), -/* 50 */ -/***/ (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 */ -/* Many SETTINGS are stored in the localStorage by their name - - 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'; - -/***/ }) -/******/ ]); -}); +module.exports = __WEBPACK_EXTERNAL_MODULE__4__; /***/ }), /* 5 */ @@ -16345,6 +9224,254 @@ function swapKeyAndValue(dict) { "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.doFetchCostInfoForUri = doFetchCostInfoForUri; + +var _action_types = __webpack_require__(2); + +var ACTIONS = _interopRequireWildcard(_action_types); + +var _lbryio = __webpack_require__(3); + +var _lbryio2 = _interopRequireDefault(_lbryio); + +var _lbryRedux = __webpack_require__(4); + +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, _lbryRedux.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 { + _lbryio2.default.getExchangeRates().then(function (_ref) { + var LBC_USD = _ref.LBC_USD; + + resolve({ cost: fee.amount / LBC_USD, includesData: true }); + }); + } + }; +} + +/***/ }), +/* 25 */ +/***/ (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 _lbryio = __webpack_require__(3); + +var _lbryio2 = _interopRequireDefault(_lbryio); + +var _action_types = __webpack_require__(2); + +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 + } + }); + }; + + _lbryio2.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); + }; +} + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.doFetchFeaturedUris = doFetchFeaturedUris; +exports.doFetchTrendingUris = doFetchTrendingUris; + +var _lbryio = __webpack_require__(3); + +var _lbryio2 = _interopRequireDefault(_lbryio); + +var _lbryRedux = __webpack_require__(4); + +var _action_types = __webpack_require__(2); + +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 }; } + +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 doFetchFeaturedUris() { + var offloadResolve = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + return function (dispatch) { + dispatch({ + type: ACTIONS.FETCH_FEATURED_CONTENT_STARTED + }); + + var success = function success(_ref) { + var Uris = _ref.Uris; + + var urisToResolve = []; + Object.keys(Uris).forEach(function (category) { + urisToResolve = [].concat(_toConsumableArray(urisToResolve), _toConsumableArray(Uris[category])); + }); + + var actions = [{ + type: ACTIONS.FETCH_FEATURED_CONTENT_COMPLETED, + data: { + uris: Uris, + success: true + } + }]; + if (urisToResolve.length && !offloadResolve) { + actions.push((0, _lbryRedux.doResolveUris)(urisToResolve)); + } + + dispatch(_lbryRedux.batchActions.apply(undefined, actions)); + }; + + var failure = function failure() { + dispatch({ + type: ACTIONS.FETCH_FEATURED_CONTENT_COMPLETED, + data: { + uris: {} + } + }); + }; + + _lbryio2.default.call('file', 'list_homepage').then(success, failure); + }; +} + +function doFetchTrendingUris() { + return function (dispatch) { + dispatch({ + type: ACTIONS.FETCH_TRENDING_CONTENT_STARTED + }); + + var success = function success(data) { + var urisToResolve = data.map(function (uri) { + return uri.url; + }); + var actions = [(0, _lbryRedux.doResolveUris)(urisToResolve), { + type: ACTIONS.FETCH_TRENDING_CONTENT_COMPLETED, + data: { + uris: data, + success: true + } + }]; + dispatch(_lbryRedux.batchActions.apply(undefined, actions)); + }; + + var failure = function failure() { + dispatch({ + type: ACTIONS.FETCH_TRENDING_CONTENT_COMPLETED, + data: { + uris: [] + } + }); + }; + + _lbryio2.default.call('file', 'list_trending').then(success, failure); + }; +} + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); @@ -16391,7 +9518,7 @@ function authReducer() { } /***/ }), -/* 25 */ +/* 28 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16535,7 +9662,7 @@ function rewardsReducer() { } /***/ }), -/* 26 */ +/* 29 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16807,7 +9934,223 @@ function userReducer() { } /***/ }), -/* 27 */ +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.costInfoReducer = 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 _reduxUtils = __webpack_require__(31); + +var _action_types = __webpack_require__(2); + +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 _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 = { + fetching: {}, + byUri: {} +}; + +var costInfoReducer = exports.costInfoReducer = (0, _reduxUtils.handleActions)((_handleActions = {}, _defineProperty(_handleActions, ACTIONS.FETCH_COST_INFO_STARTED, function (state, action) { + var uri = action.data.uri; + + var newFetching = Object.assign({}, state.fetching); + newFetching[uri] = true; + + return _extends({}, state, { + fetching: newFetching + }); +}), _defineProperty(_handleActions, 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 _extends({}, state, { + byUri: newByUri, + fetching: newFetching + }); +}), _handleActions), defaultState); + +/***/ }), +/* 31 */ +/***/ (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; + }; +}; + +/***/ }), +/* 32 */ +/***/ (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__(2); + +var ACTIONS = _interopRequireWildcard(_action_types); + +var _reduxUtils = __webpack_require__(31); + +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); + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.homepageReducer = 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 _reduxUtils = __webpack_require__(31); + +var _action_types = __webpack_require__(2); + +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 _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 = { + fetchingFeaturedContent: false, + fetchingFeaturedContentFailed: false, + featuredUris: undefined, + fetchingTrendingContent: false, + fetchingTrendingContentFailed: false, + trendingUris: undefined +}; + +var homepageReducer = exports.homepageReducer = (0, _reduxUtils.handleActions)((_handleActions = {}, _defineProperty(_handleActions, ACTIONS.FETCH_FEATURED_CONTENT_STARTED, function (state) { + return _extends({}, state, { + fetchingFeaturedContent: true + }); +}), _defineProperty(_handleActions, ACTIONS.FETCH_FEATURED_CONTENT_COMPLETED, function (state, action) { + var _action$data = action.data, + uris = _action$data.uris, + success = _action$data.success; + + + return _extends({}, state, { + fetchingFeaturedContent: false, + fetchingFeaturedContentFailed: !success, + featuredUris: uris + }); +}), _defineProperty(_handleActions, ACTIONS.FETCH_TRENDING_CONTENT_STARTED, function (state) { + return _extends({}, state, { + fetchingTrendingContent: true + }); +}), _defineProperty(_handleActions, ACTIONS.FETCH_TRENDING_CONTENT_COMPLETED, function (state, action) { + var _action$data2 = action.data, + uris = _action$data2.uris, + success = _action$data2.success; + + + return _extends({}, state, { + fetchingTrendingContent: false, + fetchingTrendingContentFailed: !success, + trendingUris: uris + }); +}), _handleActions), defaultState); + +/***/ }), +/* 34 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16833,7 +10176,107 @@ var selectIsAuthenticating = exports.selectIsAuthenticating = (0, _reselect.crea }); /***/ }), -/* 28 */ +/* 35 */ +/***/ (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__(10); + +var _lbryRedux = __webpack_require__(4); + +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, _lbryRedux.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]; + }); +}; + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.selectBlackListedOutpoints = exports.selectState = undefined; + +var _reselect = __webpack_require__(10); + +var selectState = exports.selectState = function selectState(state) { + return state.blacklist || {}; +}; + +var selectBlackListedOutpoints = exports.selectBlackListedOutpoints = (0, _reselect.createSelector)(selectState, function (state) { + return state.blackListedOutpoints; +}); + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.selectFetchingTrendingUris = exports.selectTrendingUris = exports.selectFetchingFeaturedUris = exports.selectFeaturedUris = undefined; + +var _reselect = __webpack_require__(10); + +var selectState = function selectState(state) { + return state.homepage || {}; +}; + +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 selectTrendingUris = exports.selectTrendingUris = (0, _reselect.createSelector)(selectState, function (state) { + return state.trendingUris; +}); + +var selectFetchingTrendingUris = exports.selectFetchingTrendingUris = (0, _reselect.createSelector)(selectState, function (state) { + return state.fetchingTrendingContent; +}); + +/***/ }), +/* 38 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16854,7 +10297,7 @@ var ACTIONS = _interopRequireWildcard(_action_types); var _subscriptions = __webpack_require__(22); -var _reduxUtils = __webpack_require__(29); +var _reduxUtils = __webpack_require__(31); 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; } } @@ -17021,571 +10464,6 @@ exports.default = (0, _reduxUtils.handleActions)((_handleActions = {}, _definePr }); }), _handleActions), defaultState); -/***/ }), -/* 29 */ -/***/ (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; - }; -}; - -/***/ }), -/* 30 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.doFetchCostInfoForUri = doFetchCostInfoForUri; - -var _action_types = __webpack_require__(2); - -var ACTIONS = _interopRequireWildcard(_action_types); - -var _lbryio = __webpack_require__(3); - -var _lbryio2 = _interopRequireDefault(_lbryio); - -var _lbryRedux = __webpack_require__(4); - -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, _lbryRedux.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 { - _lbryio2.default.getExchangeRates().then(function (_ref) { - var LBC_USD = _ref.LBC_USD; - - resolve({ cost: fee.amount / LBC_USD, includesData: true }); - }); - } - }; -} - -/***/ }), -/* 31 */, -/* 32 */ -/***/ (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 _lbryio = __webpack_require__(3); - -var _lbryio2 = _interopRequireDefault(_lbryio); - -var _action_types = __webpack_require__(2); - -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 - } - }); - }; - - _lbryio2.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); - }; -} - -/***/ }), -/* 33 */ -/***/ (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__(2); - -var ACTIONS = _interopRequireWildcard(_action_types); - -var _reduxUtils = __webpack_require__(29); - -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); - -/***/ }), -/* 34 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.costInfoReducer = 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 _reduxUtils = __webpack_require__(29); - -var _action_types = __webpack_require__(2); - -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 _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 = { - fetching: {}, - byUri: {} -}; - -var costInfoReducer = exports.costInfoReducer = (0, _reduxUtils.handleActions)((_handleActions = {}, _defineProperty(_handleActions, ACTIONS.FETCH_COST_INFO_STARTED, function (state, action) { - var uri = action.data.uri; - - var newFetching = Object.assign({}, state.fetching); - newFetching[uri] = true; - - return _extends({}, state, { - fetching: newFetching - }); -}), _defineProperty(_handleActions, 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 _extends({}, state, { - byUri: newByUri, - fetching: newFetching - }); -}), _handleActions), defaultState); - -/***/ }), -/* 35 */ -/***/ (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__(10); - -var _lbryRedux = __webpack_require__(4); - -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, _lbryRedux.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]; - }); -}; - -/***/ }), -/* 36 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.selectBlackListedOutpoints = exports.selectState = undefined; - -var _reselect = __webpack_require__(10); - -var selectState = exports.selectState = function selectState(state) { - return state.blacklist || {}; -}; - -var selectBlackListedOutpoints = exports.selectBlackListedOutpoints = (0, _reselect.createSelector)(selectState, function (state) { - return state.blackListedOutpoints; -}); - -/***/ }), -/* 37 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.doFetchFeaturedUris = doFetchFeaturedUris; -exports.doFetchTrendingUris = doFetchTrendingUris; - -var _lbryio = __webpack_require__(3); - -var _lbryio2 = _interopRequireDefault(_lbryio); - -var _lbryRedux = __webpack_require__(4); - -var _action_types = __webpack_require__(2); - -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 }; } - -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 doFetchFeaturedUris() { - var offloadResolve = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - return function (dispatch) { - dispatch({ - type: ACTIONS.FETCH_FEATURED_CONTENT_STARTED - }); - - var success = function success(_ref) { - var Uris = _ref.Uris; - - var urisToResolve = []; - Object.keys(Uris).forEach(function (category) { - urisToResolve = [].concat(_toConsumableArray(urisToResolve), _toConsumableArray(Uris[category])); - }); - - var actions = [{ - type: ACTIONS.FETCH_FEATURED_CONTENT_COMPLETED, - data: { - uris: Uris, - success: true - } - }]; - if (urisToResolve.length && !offloadResolve) { - actions.push((0, _lbryRedux.doResolveUris)(urisToResolve)); - } - - dispatch(_lbryRedux.batchActions.apply(undefined, actions)); - }; - - var failure = function failure() { - dispatch({ - type: ACTIONS.FETCH_FEATURED_CONTENT_COMPLETED, - data: { - uris: {} - } - }); - }; - - _lbryio2.default.call('file', 'list_homepage').then(success, failure); - }; -} - -function doFetchTrendingUris() { - return function (dispatch) { - dispatch({ - type: ACTIONS.FETCH_TRENDING_CONTENT_STARTED - }); - - var success = function success(data) { - var urisToResolve = data.map(function (uri) { - return uri.url; - }); - var actions = [(0, _lbryRedux.doResolveUris)(urisToResolve), { - type: ACTIONS.FETCH_TRENDING_CONTENT_COMPLETED, - data: { - uris: data, - success: true - } - }]; - dispatch(_lbryRedux.batchActions.apply(undefined, actions)); - }; - - var failure = function failure() { - dispatch({ - type: ACTIONS.FETCH_TRENDING_CONTENT_COMPLETED, - data: { - uris: [] - } - }); - }; - - _lbryio2.default.call('file', 'list_trending').then(success, failure); - }; -} - -/***/ }), -/* 38 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.homepageReducer = 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 _reduxUtils = __webpack_require__(29); - -var _action_types = __webpack_require__(2); - -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 _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 = { - fetchingFeaturedContent: false, - fetchingFeaturedContentFailed: false, - featuredUris: undefined, - fetchingTrendingContent: false, - fetchingTrendingContentFailed: false, - trendingUris: undefined -}; - -var homepageReducer = exports.homepageReducer = (0, _reduxUtils.handleActions)((_handleActions = {}, _defineProperty(_handleActions, ACTIONS.FETCH_FEATURED_CONTENT_STARTED, function (state) { - return _extends({}, state, { - fetchingFeaturedContent: true - }); -}), _defineProperty(_handleActions, ACTIONS.FETCH_FEATURED_CONTENT_COMPLETED, function (state, action) { - var _action$data = action.data, - uris = _action$data.uris, - success = _action$data.success; - - - return _extends({}, state, { - fetchingFeaturedContent: false, - fetchingFeaturedContentFailed: !success, - featuredUris: uris - }); -}), _defineProperty(_handleActions, ACTIONS.FETCH_TRENDING_CONTENT_STARTED, function (state) { - return _extends({}, state, { - fetchingTrendingContent: true - }); -}), _defineProperty(_handleActions, ACTIONS.FETCH_TRENDING_CONTENT_COMPLETED, function (state, action) { - var _action$data2 = action.data, - uris = _action$data2.uris, - success = _action$data2.success; - - - return _extends({}, state, { - fetchingTrendingContent: false, - fetchingTrendingContentFailed: !success, - trendingUris: uris - }); -}), _handleActions), defaultState); - -/***/ }), -/* 39 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.selectFetchingTrendingUris = exports.selectTrendingUris = exports.selectFetchingFeaturedUris = exports.selectFeaturedUris = undefined; - -var _reselect = __webpack_require__(10); - -var selectState = function selectState(state) { - return state.homepage || {}; -}; - -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 selectTrendingUris = exports.selectTrendingUris = (0, _reselect.createSelector)(selectState, function (state) { - return state.trendingUris; -}); - -var selectFetchingTrendingUris = exports.selectFetchingTrendingUris = (0, _reselect.createSelector)(selectState, function (state) { - return state.fetchingTrendingContent; -}); - /***/ }) /******/ ]); }); \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index b805cf7..aba5377 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -8,7 +8,7 @@ module.exports = { output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist'), - libraryTarget: 'umd' + libraryTarget: 'umd', }, module: { rules: [ @@ -23,4 +23,5 @@ module.exports = { modules: [path.resolve(__dirname, 'src'), 'node_modules'], }, plugins: [new FlowBabelWebpackPlugin()], + externals: 'lbry-redux', }; diff --git a/yarn.lock b/yarn.lock index 0d90ad8..0018142 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3360,7 +3360,7 @@ kind-of@^6.0.0, kind-of@^6.0.2: lbry-redux@lbryio/lbry-redux: version "0.0.1" - resolved "https://codeload.github.com/lbryio/lbry-redux/tar.gz/d4e4e71ab15fb33e9f167e8a20ecfa5c85590560" + resolved "https://codeload.github.com/lbryio/lbry-redux/tar.gz/f140db38dd73cead9e87549340fa9434da62ba8a" dependencies: proxy-polyfill "0.1.6" reselect "^3.0.0"