@peerme/core-ts
Version:
Core ts library
476 lines (473 loc) • 13.4 kB
JavaScript
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
};