UNPKG

@peerme/core-ts

Version:
476 lines (473 loc) 13.4 kB
import { BillingConfig, BountyConfig, Constants, ContractsConfig, CreditsConfig, EarnConfig, EntityConfig, ForumConfig, KnowConfig, MobileConfig, MultisigContractInfos, OrganizationContractInfos, PermissionConfig, TicketConfig, UserConfig, abbreviateNumber, capMaxMiniBlockGasLimit, capitalizeFirstLetter, convertActionToTx, createAction, deleteForumReplyRequest, deleteForumThreadRequest, destoryApiTokenRequest, getAnalyticsRequest, getApiTokensRequest, getAppNetworkRequest, getAppNetworksRequest, getBillingAddressRequest, getBountiesRequest, getBountyApplicationsRequest, getBountyCommentsRequest, getBountyRequest, getBountyRewards, getBountySubmissionCommentsRequest, getBountySubmissionsRequest, getBrandEntityRequest, getConnectedUsername, getContractRequest, getContractsCallableRequest, getContractsRequest, getEntitiesByAddressesRequest, getEntitiesRequest, getEntityActionExecutionsRequest, getEntityAvatarPlaceholder, getEntityBoostersGlobalRequest, getEntityBoostersRecentRequest, getEntityBoostersTopRequest, getEntityFavoritesRequest, getEntityFeatures, getEntityMemberRolesRequest, getEntityMembersRequest, getEntityPermissionEntitlementsRequest, getEntityPermissionMeRequest, getEntityPermissionRolesRequest, getEntityPermissionUsersRequest, getEntityPermissionsRequest, getEntityRequest, getEntityVaultRequest, getEsdtTokenPaymentType, getEventRequest, getEventsRequest, getEventsUpcomingRequest, getExploreEntitiesDataRequest, getExploreUsersDataRequest, getForumChannels, getForumRepliesRequest, getForumThreadRequest, getForumThreadsRequest, getIdentityEntitiesRequest, getIdentityProposalsRequest, getIdentityRequest, getKycRequest, getMeRequest, getNotificationSettingsRequest, getNotificationsRequest, getOrderRequest, getOrdersRequest, getPayoutsPendingRequest, getProductRequest, getProductsRequest, getProfessionsRequest, getProfileFollowersRequest, getProfileFollowingsRequest, getProposalCommentsRequest, getProposalExecutablesRequest, getProposalRequest, getProposalsRequest, getRawUsername, getStrategiesRequest, getTagsRequest, getTicketRequest, getTicketsRequest, getTimelineEntityRequest, getTimelineMeRequest, getTimelineUserRequest, getUnreadNotificationsRequest, getVotesProposalRequest, getVotesWithdrawableRequest, hasConnectedProvider, isEntityMultisig, isFileFormatAudio, isFileFormatImage, isFileFormatVideo, isUserBlockchainId, isValidBlockchainAddress, needsUserOnboarding, numberToPaddedHex, sanitizeAlphanumeric, sanitizeNumeric, storeApiTokenRequest, storeAuthLogoutRequest, storeAuthVerifyRequest, storeBillingAddressRequest, storeBountyApplicationApplyRequest, storeBountyApplicationCancelRequest, storeBountyCommentRequest, storeBountyFinalizeRequest, storeBountySubmissionChangeRequest, storeBountySubmissionCommentRequest, storeBountySubmissionRequest, storeBountyTopupRequest, storeContractFavoriteToggleRequest, storeEntityBoostFinalizeRequest, storeEntityBountyRequest, storeEntityFavoriteToggleRequest, storeEntityGovConfigFinalizeRequest, storeEntityMigrationRequest, storeEntityRequest, storeEntitySetup, storeEntityVoteTokenWithdrawRequest, storeExecuteFinalizeRequest, storeFollowRelationToggleRequest, storeForumReplyRequest, storeForumReplyVoteRequest, storeForumThreadRequest, storeForumThreadVoteRequest, storeKycRequest, storeKycRunsRequest, storeMeUserInfoRequest, storeNotificationResponseRequest, storeNotificationSettingToggleRequest, storeOrderPaddleBoostRequest, storeProfessionsRequest, storeProposalCancellationFinalizeRequest, storeProposalCommentRequest, storeProposalFinalizeRequest, storeProposalPredictionRequest, storeProposalRequest, storeProposalSignatureFinalizeRequest, storeProposalVoteFinalizeRequest, storeTicketRequest, storeUserBountyRequest, storeUserEmailAddressRequest, toActionArgBytes, toCurrencyDisplay, toDateDisplay, toDateTimeDisplay, toEsdtTokenPaymentStruct, toFormattedTokenAmount, toFullUnit, toFullUnitFormatted, toHtmlLineBreaks, toPreviewText, toRoleDisplayName, toSerializableAction, toSerializableTokenPayment, toTicketTypePrettyName, toTokenPaymentFromProposalPayment, toTypedMultisigAction, toUserChainId, toUserDisplayName, toVotingPeriodDisplayInDays, transformActionToMultisigProposeCall, transformActionToMultisigProposeCallV1, transformActionToMultisigProposeCallV2, transformScInfoIntoAction, trimHash, updateForumReplyRequest, updateForumThreadRequest } from "./chunk-SNYKEVN4.mjs"; // src/services/http.ts var defaultReferrer = "https://peerme.io"; var HttpService = class { baseUrl; authToken; cookies; onNetworkError; onUnauthorized; onSuccessfulResponse; onMaintenanceMode; onTooManyRequests; constructor(baseUrl, cookies, authToken) { this.baseUrl = baseUrl; this.authToken = authToken || null; this.onNetworkError = () => { }; this.onSuccessfulResponse = () => { }; this.onUnauthorized = () => { }; this.onMaintenanceMode = () => { }; this.onTooManyRequests = () => { }; this.cookies = cookies || []; } get = async (url, options) => await this.request("GET", url, void 0, options); post = async (url, data, options) => await this.request("POST", url, data, options); put = async (url, data, options) => await this.request("PUT", url, data, options); delete = async (url, options) => await this.request("DELETE", url, void 0, options); request = async (httpMethod, url, data, options) => { const requestUrl = url.startsWith("http") ? url : `${this.baseUrl}/${url}`; const requestInfo = this.getRequestInfo(httpMethod, data, options); const response = await this.convertResponse(fetch(requestUrl, requestInfo)); if (response.original.status === 401) this.onUnauthorized(response); if (response.original.status === 429) this.onTooManyRequests(response); if (response.original.status === 503) this.onMaintenanceMode(response); if (response.ok) this.onSuccessfulResponse(response); return response; }; convertResponse = async (apiRes) => { try { const response = await apiRes; const body = response.status === 204 ? {} : await response.json(); return { data: body.data || null, meta: body.meta, body, errors: body.errors || [], ok: response.ok && !(body.errors && body.errors.length > 0), noContent: response.status === 204, paymentRequired: response.status === 402, original: response }; } catch (error) { this.onNetworkError(error); const anyError = error; return { data: {}, errors: anyError.response && (anyError.response.data || {}).errors, body: {}, ok: false, noContent: false, paymentRequired: false, original: anyError }; } }; getRequestInfo = (httpMethod = "GET", data, options) => { const isJson = !options || options.isJson; const situationalHeaders = options?.headers || {}; const csrfToken = this.cookies.find((c) => c.name === "XSRF-TOKEN"); if (isJson) { situationalHeaders["Content-Type"] = "application/json"; } if (this.cookies.length > 0) { situationalHeaders.Cookie = this.cookies.map((c) => `${c.name}=${decodeURIComponent(c.value)}`).join("; "); } return { method: httpMethod, credentials: "include", headers: { "X-XSRF-TOKEN": csrfToken ? decodeURIComponent(csrfToken.value) : "", Accept: "application/json", Authorization: this.authToken ? `Bearer ${this.authToken}` : "", Referer: typeof window !== "undefined" ? window.location.origin : defaultReferrer, ...situationalHeaders }, body: httpMethod !== "GET" ? isJson ? JSON.stringify(data || {}) : data : void 0 }; }; }; // src/services/search.ts var SearchService = class { hostUrl; apiKey; index; constructor(hostUrl, apiKey, index) { this.hostUrl = hostUrl; this.apiKey = apiKey; this.index = index; } query = async (query, filter) => { const { instantMeiliSearch } = await import("@meilisearch/instant-meilisearch"); const { searchClient } = instantMeiliSearch(this.hostUrl, this.apiKey); const searchResponse = await searchClient.search([{ indexName: this.index, params: { query, filters: filter } }]); return searchResponse.results[0].hits; }; }; export { BillingConfig, BountyConfig, Constants, ContractsConfig, CreditsConfig, EarnConfig, EntityConfig, ForumConfig, HttpService, KnowConfig, MobileConfig, MultisigContractInfos, OrganizationContractInfos, PermissionConfig, SearchService, TicketConfig, UserConfig, abbreviateNumber, capMaxMiniBlockGasLimit, capitalizeFirstLetter, convertActionToTx, createAction, deleteForumReplyRequest, deleteForumThreadRequest, destoryApiTokenRequest, getAnalyticsRequest, getApiTokensRequest, getAppNetworkRequest, getAppNetworksRequest, getBillingAddressRequest, getBountiesRequest, getBountyApplicationsRequest, getBountyCommentsRequest, getBountyRequest, getBountyRewards, getBountySubmissionCommentsRequest, getBountySubmissionsRequest, getBrandEntityRequest, getConnectedUsername, getContractRequest, getContractsCallableRequest, getContractsRequest, getEntitiesByAddressesRequest, getEntitiesRequest, getEntityActionExecutionsRequest, getEntityAvatarPlaceholder, getEntityBoostersGlobalRequest, getEntityBoostersRecentRequest, getEntityBoostersTopRequest, getEntityFavoritesRequest, getEntityFeatures, getEntityMemberRolesRequest, getEntityMembersRequest, getEntityPermissionEntitlementsRequest, getEntityPermissionMeRequest, getEntityPermissionRolesRequest, getEntityPermissionUsersRequest, getEntityPermissionsRequest, getEntityRequest, getEntityVaultRequest, getEsdtTokenPaymentType, getEventRequest, getEventsRequest, getEventsUpcomingRequest, getExploreEntitiesDataRequest, getExploreUsersDataRequest, getForumChannels, getForumRepliesRequest, getForumThreadRequest, getForumThreadsRequest, getIdentityEntitiesRequest, getIdentityProposalsRequest, getIdentityRequest, getKycRequest, getMeRequest, getNotificationSettingsRequest, getNotificationsRequest, getOrderRequest, getOrdersRequest, getPayoutsPendingRequest, getProductRequest, getProductsRequest, getProfessionsRequest, getProfileFollowersRequest, getProfileFollowingsRequest, getProposalCommentsRequest, getProposalExecutablesRequest, getProposalRequest, getProposalsRequest, getRawUsername, getStrategiesRequest, getTagsRequest, getTicketRequest, getTicketsRequest, getTimelineEntityRequest, getTimelineMeRequest, getTimelineUserRequest, getUnreadNotificationsRequest, getVotesProposalRequest, getVotesWithdrawableRequest, hasConnectedProvider, isEntityMultisig, isFileFormatAudio, isFileFormatImage, isFileFormatVideo, isUserBlockchainId, isValidBlockchainAddress, needsUserOnboarding, numberToPaddedHex, sanitizeAlphanumeric, sanitizeNumeric, storeApiTokenRequest, storeAuthLogoutRequest, storeAuthVerifyRequest, storeBillingAddressRequest, storeBountyApplicationApplyRequest, storeBountyApplicationCancelRequest, storeBountyCommentRequest, storeBountyFinalizeRequest, storeBountySubmissionChangeRequest, storeBountySubmissionCommentRequest, storeBountySubmissionRequest, storeBountyTopupRequest, storeContractFavoriteToggleRequest, storeEntityBoostFinalizeRequest, storeEntityBountyRequest, storeEntityFavoriteToggleRequest, storeEntityGovConfigFinalizeRequest, storeEntityMigrationRequest, storeEntityRequest, storeEntitySetup, storeEntityVoteTokenWithdrawRequest, storeExecuteFinalizeRequest, storeFollowRelationToggleRequest, storeForumReplyRequest, storeForumReplyVoteRequest, storeForumThreadRequest, storeForumThreadVoteRequest, storeKycRequest, storeKycRunsRequest, storeMeUserInfoRequest, storeNotificationResponseRequest, storeNotificationSettingToggleRequest, storeOrderPaddleBoostRequest, storeProfessionsRequest, storeProposalCancellationFinalizeRequest, storeProposalCommentRequest, storeProposalFinalizeRequest, storeProposalPredictionRequest, storeProposalRequest, storeProposalSignatureFinalizeRequest, storeProposalVoteFinalizeRequest, storeTicketRequest, storeUserBountyRequest, storeUserEmailAddressRequest, toActionArgBytes, toCurrencyDisplay, toDateDisplay, toDateTimeDisplay, toEsdtTokenPaymentStruct, toFormattedTokenAmount, toFullUnit, toFullUnitFormatted, toHtmlLineBreaks, toPreviewText, toRoleDisplayName, toSerializableAction, toSerializableTokenPayment, toTicketTypePrettyName, toTokenPaymentFromProposalPayment, toTypedMultisigAction, toUserChainId, toUserDisplayName, toVotingPeriodDisplayInDays, transformActionToMultisigProposeCall, transformActionToMultisigProposeCallV1, transformActionToMultisigProposeCallV2, transformScInfoIntoAction, trimHash, updateForumReplyRequest, updateForumThreadRequest };