@sudobility/components-rn 1.0.19 → 1.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +2898 -77
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +2900 -79
- package/dist/index.esm.js.map +1 -1
- package/dist/ui/Banner/Banner.d.ts +97 -0
- package/dist/ui/Banner/Banner.d.ts.map +1 -0
- package/dist/ui/Banner/index.d.ts +2 -0
- package/dist/ui/Banner/index.d.ts.map +1 -0
- package/dist/ui/Button/Button.d.ts +2 -2
- package/package.json +5 -3
- package/src/index.ts +1 -0
- package/src/ui/Banner/Banner.tsx +315 -0
- package/src/ui/Banner/index.ts +7 -0
package/dist/index.esm.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { clsx } from "clsx";
|
|
2
2
|
import * as React from "react";
|
|
3
|
-
import React__default, { useState,
|
|
4
|
-
import {
|
|
3
|
+
import React__default, { useState, useRef, useCallback, useEffect, createContext, useContext } from "react";
|
|
4
|
+
import { Animated, View, Text as Text$1, Pressable, ActivityIndicator, TextInput, Dimensions, Modal as Modal$1, SafeAreaView, FlatList, Image, KeyboardAvoidingView, ScrollView, Platform, PanResponder, Linking, TouchableWithoutFeedback, useWindowDimensions, StyleSheet, RefreshControl, UIManager, LayoutAnimation, Alert as Alert$1 } from "react-native";
|
|
5
5
|
import { cva } from "class-variance-authority";
|
|
6
6
|
import { variants, getCardVariantColors, textVariants } from "@sudobility/design";
|
|
7
7
|
import { colors, designTokens, textVariants as textVariants2, variants as variants2 } from "@sudobility/design";
|
|
@@ -936,6 +936,2825 @@ function requireJsxRuntime() {
|
|
|
936
936
|
return jsxRuntime.exports;
|
|
937
937
|
}
|
|
938
938
|
var jsxRuntimeExports = requireJsxRuntime();
|
|
939
|
+
var dist = {};
|
|
940
|
+
var enums = {};
|
|
941
|
+
var hasRequiredEnums;
|
|
942
|
+
function requireEnums() {
|
|
943
|
+
if (hasRequiredEnums) return enums;
|
|
944
|
+
hasRequiredEnums = 1;
|
|
945
|
+
Object.defineProperty(enums, "__esModule", { value: true });
|
|
946
|
+
enums.Currency = enums.ErrorType = enums.FeatureFlag = enums.EmailValidationState = enums.PlatformType = enums.ConnectionState = enums.ConnectionType = enums.EmailSortCriteria = enums.SortOrder = enums.EmailAddressType = enums.InfoType = enums.NotificationType = enums.RequestStatus = enums.SubscriptionAction = enums.EmailAction = enums.MediumView = enums.MobileView = enums.EmailComposeType = enums.FontSize = enums.Theme = enums.Chain = enums.ChainType = enums.AuthStatus = void 0;
|
|
947
|
+
var AuthStatus;
|
|
948
|
+
(function(AuthStatus2) {
|
|
949
|
+
AuthStatus2["CONNECTED"] = "connected";
|
|
950
|
+
AuthStatus2["DISCONNECTED"] = "disconnected";
|
|
951
|
+
AuthStatus2["VERIFIED"] = "verified";
|
|
952
|
+
})(AuthStatus || (enums.AuthStatus = AuthStatus = {}));
|
|
953
|
+
var ChainType;
|
|
954
|
+
(function(ChainType2) {
|
|
955
|
+
ChainType2["EVM"] = "evm";
|
|
956
|
+
ChainType2["SOLANA"] = "solana";
|
|
957
|
+
})(ChainType || (enums.ChainType = ChainType = {}));
|
|
958
|
+
var Chain;
|
|
959
|
+
(function(Chain2) {
|
|
960
|
+
Chain2["ETH_MAINNET"] = "eth-mainnet";
|
|
961
|
+
Chain2["ETH_SEPOLIA"] = "eth-sepolia";
|
|
962
|
+
Chain2["ETH_GOERLI"] = "eth-goerli";
|
|
963
|
+
Chain2["POLYGON_MAINNET"] = "polygon-mainnet";
|
|
964
|
+
Chain2["POLYGON_MUMBAI"] = "polygon-mumbai";
|
|
965
|
+
Chain2["POLYGON_AMOY"] = "polygon-amoy";
|
|
966
|
+
Chain2["OPTIMISM_MAINNET"] = "optimism-mainnet";
|
|
967
|
+
Chain2["OPTIMISM_SEPOLIA"] = "optimism-sepolia";
|
|
968
|
+
Chain2["OPTIMISM_GOERLI"] = "optimism-goerli";
|
|
969
|
+
Chain2["ARBITRUM_MAINNET"] = "arbitrum-mainnet";
|
|
970
|
+
Chain2["ARBITRUM_SEPOLIA"] = "arbitrum-sepolia";
|
|
971
|
+
Chain2["ARBITRUM_GOERLI"] = "arbitrum-goerli";
|
|
972
|
+
Chain2["BASE_MAINNET"] = "base-mainnet";
|
|
973
|
+
Chain2["BASE_SEPOLIA"] = "base-sepolia";
|
|
974
|
+
Chain2["BASE_GOERLI"] = "base-goerli";
|
|
975
|
+
Chain2["AVALANCHE_MAINNET"] = "avalanche-mainnet";
|
|
976
|
+
Chain2["AVALANCHE_FUJI"] = "avalanche-fuji";
|
|
977
|
+
Chain2["BNB_MAINNET"] = "bnb-mainnet";
|
|
978
|
+
Chain2["BNB_TESTNET"] = "bnb-testnet";
|
|
979
|
+
Chain2["GNOSIS_MAINNET"] = "gnosis-mainnet";
|
|
980
|
+
Chain2["GNOSIS_CHIADO"] = "gnosis-chiado";
|
|
981
|
+
Chain2["CELO_MAINNET"] = "celo-mainnet";
|
|
982
|
+
Chain2["CELO_ALFAJORES"] = "celo-alfajores";
|
|
983
|
+
Chain2["ZKSYNC_MAINNET"] = "zksync-mainnet";
|
|
984
|
+
Chain2["ZKSYNC_SEPOLIA"] = "zksync-sepolia";
|
|
985
|
+
Chain2["LINEA_MAINNET"] = "linea-mainnet";
|
|
986
|
+
Chain2["LINEA_SEPOLIA"] = "linea-sepolia";
|
|
987
|
+
Chain2["SCROLL_MAINNET"] = "scroll-mainnet";
|
|
988
|
+
Chain2["SCROLL_SEPOLIA"] = "scroll-sepolia";
|
|
989
|
+
Chain2["MONAD_MAINNET"] = "monad-mainnet";
|
|
990
|
+
Chain2["MONAD_TESTNET"] = "monad-testnet";
|
|
991
|
+
Chain2["STORY_MAINNET"] = "story-mainnet";
|
|
992
|
+
Chain2["STORY_TESTNET"] = "story-testnet";
|
|
993
|
+
Chain2["PLUME_MAINNET"] = "plume-mainnet";
|
|
994
|
+
Chain2["PLUME_TESTNET"] = "plume-testnet";
|
|
995
|
+
Chain2["NEXUS_MAINNET"] = "nexus-mainnet";
|
|
996
|
+
Chain2["NEXUS_TESTNET"] = "nexus-testnet";
|
|
997
|
+
Chain2["HYPEREVM_MAINNET"] = "hyperevm-mainnet";
|
|
998
|
+
Chain2["HYPEREVM_TESTNET"] = "hyperevm-testnet";
|
|
999
|
+
Chain2["SONIC_MAINNET"] = "sonic-mainnet";
|
|
1000
|
+
Chain2["SONIC_TESTNET"] = "sonic-testnet";
|
|
1001
|
+
Chain2["SONIC_BLAZE"] = "sonic-blaze";
|
|
1002
|
+
Chain2["UNICHAIN_MAINNET"] = "unichain-mainnet";
|
|
1003
|
+
Chain2["UNICHAIN_SEPOLIA"] = "unichain-sepolia";
|
|
1004
|
+
Chain2["WORLD_MAINNET"] = "world-mainnet";
|
|
1005
|
+
Chain2["XDC_MAINNET"] = "xdc-mainnet";
|
|
1006
|
+
Chain2["INK_TESTNET"] = "ink-testnet";
|
|
1007
|
+
Chain2["FETCH_MAINNET"] = "fetch-mainnet";
|
|
1008
|
+
Chain2["FETCH_TESTNET"] = "fetch-testnet";
|
|
1009
|
+
Chain2["GENSYN_MAINNET"] = "gensyn-mainnet";
|
|
1010
|
+
Chain2["GENSYN_TESTNET"] = "gensyn-testnet";
|
|
1011
|
+
Chain2["RITUAL_MAINNET"] = "ritual-mainnet";
|
|
1012
|
+
Chain2["RITUAL_TESTNET"] = "ritual-testnet";
|
|
1013
|
+
Chain2["SOLANA_MAINNET"] = "solana-mainnet";
|
|
1014
|
+
Chain2["SOLANA_DEVNET"] = "solana-devnet";
|
|
1015
|
+
Chain2["SOLANA_TESTNET"] = "solana-testnet";
|
|
1016
|
+
Chain2["EVM_LOCAL"] = "evm-local";
|
|
1017
|
+
Chain2["SOLANA_LOCAL"] = "solana-local";
|
|
1018
|
+
})(Chain || (enums.Chain = Chain = {}));
|
|
1019
|
+
var Theme;
|
|
1020
|
+
(function(Theme2) {
|
|
1021
|
+
Theme2["LIGHT"] = "light";
|
|
1022
|
+
Theme2["DARK"] = "dark";
|
|
1023
|
+
Theme2["SYSTEM"] = "system";
|
|
1024
|
+
})(Theme || (enums.Theme = Theme = {}));
|
|
1025
|
+
var FontSize;
|
|
1026
|
+
(function(FontSize2) {
|
|
1027
|
+
FontSize2["SMALL"] = "small";
|
|
1028
|
+
FontSize2["MEDIUM"] = "medium";
|
|
1029
|
+
FontSize2["LARGE"] = "large";
|
|
1030
|
+
})(FontSize || (enums.FontSize = FontSize = {}));
|
|
1031
|
+
var EmailComposeType;
|
|
1032
|
+
(function(EmailComposeType2) {
|
|
1033
|
+
EmailComposeType2["NEW"] = "new";
|
|
1034
|
+
EmailComposeType2["REPLY"] = "reply";
|
|
1035
|
+
EmailComposeType2["REPLY_ALL"] = "replyAll";
|
|
1036
|
+
EmailComposeType2["FORWARD"] = "forward";
|
|
1037
|
+
})(EmailComposeType || (enums.EmailComposeType = EmailComposeType = {}));
|
|
1038
|
+
var MobileView;
|
|
1039
|
+
(function(MobileView2) {
|
|
1040
|
+
MobileView2["EMAIL_ADDRESSES"] = "emailAddresses";
|
|
1041
|
+
MobileView2["FOLDERS"] = "folders";
|
|
1042
|
+
MobileView2["EMAILS"] = "emails";
|
|
1043
|
+
MobileView2["EMAIL_BODY"] = "emailBody";
|
|
1044
|
+
})(MobileView || (enums.MobileView = MobileView = {}));
|
|
1045
|
+
var MediumView;
|
|
1046
|
+
(function(MediumView2) {
|
|
1047
|
+
MediumView2["LEFT"] = "left";
|
|
1048
|
+
MediumView2["RIGHT"] = "right";
|
|
1049
|
+
})(MediumView || (enums.MediumView = MediumView = {}));
|
|
1050
|
+
var EmailAction;
|
|
1051
|
+
(function(EmailAction2) {
|
|
1052
|
+
EmailAction2["OPEN"] = "open";
|
|
1053
|
+
EmailAction2["REPLY"] = "reply";
|
|
1054
|
+
EmailAction2["FORWARD"] = "forward";
|
|
1055
|
+
EmailAction2["DELETE"] = "delete";
|
|
1056
|
+
EmailAction2["STAR"] = "star";
|
|
1057
|
+
EmailAction2["UNSTAR"] = "unstar";
|
|
1058
|
+
EmailAction2["MARK_READ"] = "mark_read";
|
|
1059
|
+
EmailAction2["MARK_UNREAD"] = "mark_unread";
|
|
1060
|
+
})(EmailAction || (enums.EmailAction = EmailAction = {}));
|
|
1061
|
+
var SubscriptionAction;
|
|
1062
|
+
(function(SubscriptionAction2) {
|
|
1063
|
+
SubscriptionAction2["VIEW"] = "view";
|
|
1064
|
+
SubscriptionAction2["PURCHASE"] = "purchase";
|
|
1065
|
+
SubscriptionAction2["CANCEL"] = "cancel";
|
|
1066
|
+
SubscriptionAction2["RESTORE"] = "restore";
|
|
1067
|
+
})(SubscriptionAction || (enums.SubscriptionAction = SubscriptionAction = {}));
|
|
1068
|
+
var RequestStatus;
|
|
1069
|
+
(function(RequestStatus2) {
|
|
1070
|
+
RequestStatus2["IDLE"] = "idle";
|
|
1071
|
+
RequestStatus2["LOADING"] = "loading";
|
|
1072
|
+
RequestStatus2["SUCCESS"] = "success";
|
|
1073
|
+
RequestStatus2["ERROR"] = "error";
|
|
1074
|
+
})(RequestStatus || (enums.RequestStatus = RequestStatus = {}));
|
|
1075
|
+
var NotificationType;
|
|
1076
|
+
(function(NotificationType2) {
|
|
1077
|
+
NotificationType2["INFO"] = "info";
|
|
1078
|
+
NotificationType2["SUCCESS"] = "success";
|
|
1079
|
+
NotificationType2["WARNING"] = "warning";
|
|
1080
|
+
NotificationType2["ERROR"] = "error";
|
|
1081
|
+
})(NotificationType || (enums.NotificationType = NotificationType = {}));
|
|
1082
|
+
var InfoType;
|
|
1083
|
+
(function(InfoType2) {
|
|
1084
|
+
InfoType2["INFO"] = "info";
|
|
1085
|
+
InfoType2["SUCCESS"] = "success";
|
|
1086
|
+
InfoType2["WARNING"] = "warning";
|
|
1087
|
+
InfoType2["ERROR"] = "error";
|
|
1088
|
+
})(InfoType || (enums.InfoType = InfoType = {}));
|
|
1089
|
+
var EmailAddressType;
|
|
1090
|
+
(function(EmailAddressType2) {
|
|
1091
|
+
EmailAddressType2["DIRECT"] = "direct";
|
|
1092
|
+
EmailAddressType2["ENS"] = "ens";
|
|
1093
|
+
EmailAddressType2["SNS"] = "sns";
|
|
1094
|
+
EmailAddressType2["CUSTOM"] = "custom";
|
|
1095
|
+
})(EmailAddressType || (enums.EmailAddressType = EmailAddressType = {}));
|
|
1096
|
+
var SortOrder;
|
|
1097
|
+
(function(SortOrder2) {
|
|
1098
|
+
SortOrder2["ASC"] = "asc";
|
|
1099
|
+
SortOrder2["DESC"] = "desc";
|
|
1100
|
+
})(SortOrder || (enums.SortOrder = SortOrder = {}));
|
|
1101
|
+
var EmailSortCriteria;
|
|
1102
|
+
(function(EmailSortCriteria2) {
|
|
1103
|
+
EmailSortCriteria2["DATE"] = "date";
|
|
1104
|
+
EmailSortCriteria2["SUBJECT"] = "subject";
|
|
1105
|
+
EmailSortCriteria2["FROM"] = "from";
|
|
1106
|
+
EmailSortCriteria2["SIZE"] = "size";
|
|
1107
|
+
})(EmailSortCriteria || (enums.EmailSortCriteria = EmailSortCriteria = {}));
|
|
1108
|
+
var ConnectionType;
|
|
1109
|
+
(function(ConnectionType2) {
|
|
1110
|
+
ConnectionType2["UNKNOWN"] = "unknown";
|
|
1111
|
+
ConnectionType2["NONE"] = "none";
|
|
1112
|
+
ConnectionType2["WIFI"] = "wifi";
|
|
1113
|
+
ConnectionType2["CELLULAR_2G"] = "2g";
|
|
1114
|
+
ConnectionType2["CELLULAR_3G"] = "3g";
|
|
1115
|
+
ConnectionType2["CELLULAR_4G"] = "4g";
|
|
1116
|
+
ConnectionType2["CELLULAR_5G"] = "5g";
|
|
1117
|
+
ConnectionType2["ETHERNET"] = "ethernet";
|
|
1118
|
+
})(ConnectionType || (enums.ConnectionType = ConnectionType = {}));
|
|
1119
|
+
var ConnectionState;
|
|
1120
|
+
(function(ConnectionState2) {
|
|
1121
|
+
ConnectionState2["UNKNOWN"] = "unknown";
|
|
1122
|
+
ConnectionState2["DISCONNECTED"] = "disconnected";
|
|
1123
|
+
ConnectionState2["CONNECTING"] = "connecting";
|
|
1124
|
+
ConnectionState2["CONNECTED"] = "connected";
|
|
1125
|
+
ConnectionState2["RECONNECTING"] = "reconnecting";
|
|
1126
|
+
ConnectionState2["VERIFIED"] = "verified";
|
|
1127
|
+
ConnectionState2["LIMITED"] = "limited";
|
|
1128
|
+
ConnectionState2["ERROR"] = "error";
|
|
1129
|
+
})(ConnectionState || (enums.ConnectionState = ConnectionState = {}));
|
|
1130
|
+
var PlatformType;
|
|
1131
|
+
(function(PlatformType2) {
|
|
1132
|
+
PlatformType2["WEB"] = "web";
|
|
1133
|
+
PlatformType2["REACT_NATIVE"] = "react_native";
|
|
1134
|
+
PlatformType2["DESKTOP"] = "desktop";
|
|
1135
|
+
})(PlatformType || (enums.PlatformType = PlatformType = {}));
|
|
1136
|
+
var EmailValidationState;
|
|
1137
|
+
(function(EmailValidationState2) {
|
|
1138
|
+
EmailValidationState2["VALID"] = "valid";
|
|
1139
|
+
EmailValidationState2["INVALID"] = "invalid";
|
|
1140
|
+
EmailValidationState2["PENDING"] = "pending";
|
|
1141
|
+
EmailValidationState2["UNKNOWN"] = "unknown";
|
|
1142
|
+
})(EmailValidationState || (enums.EmailValidationState = EmailValidationState = {}));
|
|
1143
|
+
var FeatureFlag;
|
|
1144
|
+
(function(FeatureFlag2) {
|
|
1145
|
+
FeatureFlag2["AI_SEARCH"] = "ai_search";
|
|
1146
|
+
FeatureFlag2["SMART_COMPOSE"] = "smart_compose";
|
|
1147
|
+
FeatureFlag2["ADVANCED_FILTERS"] = "advanced_filters";
|
|
1148
|
+
FeatureFlag2["DARK_MODE"] = "dark_mode";
|
|
1149
|
+
FeatureFlag2["NOTIFICATIONS"] = "notifications";
|
|
1150
|
+
FeatureFlag2["ANALYTICS"] = "analytics";
|
|
1151
|
+
})(FeatureFlag || (enums.FeatureFlag = FeatureFlag = {}));
|
|
1152
|
+
var ErrorType;
|
|
1153
|
+
(function(ErrorType2) {
|
|
1154
|
+
ErrorType2["NETWORK"] = "network";
|
|
1155
|
+
ErrorType2["AUTH"] = "auth";
|
|
1156
|
+
ErrorType2["VALIDATION"] = "validation";
|
|
1157
|
+
ErrorType2["PERMISSION"] = "permission";
|
|
1158
|
+
ErrorType2["UNKNOWN"] = "unknown";
|
|
1159
|
+
})(ErrorType || (enums.ErrorType = ErrorType = {}));
|
|
1160
|
+
var Currency;
|
|
1161
|
+
(function(Currency2) {
|
|
1162
|
+
Currency2["USD"] = "USD";
|
|
1163
|
+
Currency2["EUR"] = "EUR";
|
|
1164
|
+
Currency2["GBP"] = "GBP";
|
|
1165
|
+
Currency2["CAD"] = "CAD";
|
|
1166
|
+
Currency2["AUD"] = "AUD";
|
|
1167
|
+
})(Currency || (enums.Currency = Currency = {}));
|
|
1168
|
+
return enums;
|
|
1169
|
+
}
|
|
1170
|
+
var walletStatus = {};
|
|
1171
|
+
var hasRequiredWalletStatus;
|
|
1172
|
+
function requireWalletStatus() {
|
|
1173
|
+
if (hasRequiredWalletStatus) return walletStatus;
|
|
1174
|
+
hasRequiredWalletStatus = 1;
|
|
1175
|
+
(function(exports$1) {
|
|
1176
|
+
Object.defineProperty(exports$1, "__esModule", { value: true });
|
|
1177
|
+
exports$1.getWalletConnectionState = exports$1.isWalletVerified = exports$1.isWalletConnected = void 0;
|
|
1178
|
+
const enums_1 = requireEnums();
|
|
1179
|
+
const isWalletConnected = (status) => {
|
|
1180
|
+
return status !== void 0 && status !== null && Boolean(status.walletAddress);
|
|
1181
|
+
};
|
|
1182
|
+
exports$1.isWalletConnected = isWalletConnected;
|
|
1183
|
+
const isWalletVerified = (status) => {
|
|
1184
|
+
return (0, exports$1.isWalletConnected)(status) && Boolean(status.message) && Boolean(status.signature);
|
|
1185
|
+
};
|
|
1186
|
+
exports$1.isWalletVerified = isWalletVerified;
|
|
1187
|
+
const getWalletConnectionState = (status) => {
|
|
1188
|
+
if (!(0, exports$1.isWalletConnected)(status)) {
|
|
1189
|
+
return enums_1.ConnectionState.DISCONNECTED;
|
|
1190
|
+
}
|
|
1191
|
+
if ((0, exports$1.isWalletVerified)(status)) {
|
|
1192
|
+
return enums_1.ConnectionState.VERIFIED;
|
|
1193
|
+
}
|
|
1194
|
+
return enums_1.ConnectionState.CONNECTED;
|
|
1195
|
+
};
|
|
1196
|
+
exports$1.getWalletConnectionState = getWalletConnectionState;
|
|
1197
|
+
})(walletStatus);
|
|
1198
|
+
return walletStatus;
|
|
1199
|
+
}
|
|
1200
|
+
var common = {};
|
|
1201
|
+
var hasRequiredCommon;
|
|
1202
|
+
function requireCommon() {
|
|
1203
|
+
if (hasRequiredCommon) return common;
|
|
1204
|
+
hasRequiredCommon = 1;
|
|
1205
|
+
Object.defineProperty(common, "__esModule", { value: true });
|
|
1206
|
+
common.PROTOCOL_CONSTANTS = common.TransactionStatus = common.MessageType = void 0;
|
|
1207
|
+
common.isSolanaAddress = isSolanaAddress;
|
|
1208
|
+
common.isEvmAddress = isEvmAddress;
|
|
1209
|
+
common.isSolanaRecipient = isSolanaRecipient;
|
|
1210
|
+
common.isEvmRecipient = isEvmRecipient;
|
|
1211
|
+
var MessageType;
|
|
1212
|
+
(function(MessageType2) {
|
|
1213
|
+
MessageType2["STANDARD"] = "standard";
|
|
1214
|
+
MessageType2["PRIORITY"] = "priority";
|
|
1215
|
+
MessageType2["PREPARED_STANDARD"] = "prepared_standard";
|
|
1216
|
+
MessageType2["PREPARED_PRIORITY"] = "prepared_priority";
|
|
1217
|
+
})(MessageType || (common.MessageType = MessageType = {}));
|
|
1218
|
+
var TransactionStatus;
|
|
1219
|
+
(function(TransactionStatus2) {
|
|
1220
|
+
TransactionStatus2["SUCCESS"] = "success";
|
|
1221
|
+
TransactionStatus2["FAILED"] = "failed";
|
|
1222
|
+
TransactionStatus2["PENDING"] = "pending";
|
|
1223
|
+
})(TransactionStatus || (common.TransactionStatus = TransactionStatus = {}));
|
|
1224
|
+
function isSolanaAddress(address2) {
|
|
1225
|
+
try {
|
|
1226
|
+
if (address2.length < 32 || address2.length > 44) {
|
|
1227
|
+
return false;
|
|
1228
|
+
}
|
|
1229
|
+
const base58Regex = /^[1-9A-HJ-NP-Za-km-z]+$/;
|
|
1230
|
+
if (!base58Regex.test(address2)) {
|
|
1231
|
+
return false;
|
|
1232
|
+
}
|
|
1233
|
+
try {
|
|
1234
|
+
const bs58 = require("bs58");
|
|
1235
|
+
const decoded = bs58.decode(address2);
|
|
1236
|
+
return decoded.length === 32;
|
|
1237
|
+
} catch {
|
|
1238
|
+
return true;
|
|
1239
|
+
}
|
|
1240
|
+
} catch {
|
|
1241
|
+
return false;
|
|
1242
|
+
}
|
|
1243
|
+
}
|
|
1244
|
+
function isEvmAddress(address2) {
|
|
1245
|
+
return /^0x[a-fA-F0-9]{40}$/.test(address2);
|
|
1246
|
+
}
|
|
1247
|
+
function isSolanaRecipient(recipient) {
|
|
1248
|
+
return isSolanaAddress(recipient);
|
|
1249
|
+
}
|
|
1250
|
+
function isEvmRecipient(recipient) {
|
|
1251
|
+
return isEvmAddress(recipient);
|
|
1252
|
+
}
|
|
1253
|
+
common.PROTOCOL_CONSTANTS = {
|
|
1254
|
+
/** Base send fee: 0.1 USDC (100,000 with 6 decimals) */
|
|
1255
|
+
SEND_FEE: 100000n,
|
|
1256
|
+
/** Claim period: 60 days in seconds */
|
|
1257
|
+
CLAIM_PERIOD: 60 * 24 * 60 * 60,
|
|
1258
|
+
/** Revenue share percentages */
|
|
1259
|
+
REVENUE_SHARES: {
|
|
1260
|
+
SENDER: 90,
|
|
1261
|
+
OWNER: 10
|
|
1262
|
+
},
|
|
1263
|
+
/** USDC token decimals */
|
|
1264
|
+
USDC_DECIMALS: 6,
|
|
1265
|
+
/** Maximum message lengths */
|
|
1266
|
+
MAX_LENGTHS: {
|
|
1267
|
+
SUBJECT: 200,
|
|
1268
|
+
BODY: 2e3,
|
|
1269
|
+
MAIL_ID: 100
|
|
1270
|
+
}
|
|
1271
|
+
};
|
|
1272
|
+
return common;
|
|
1273
|
+
}
|
|
1274
|
+
var validation = {};
|
|
1275
|
+
var address = {};
|
|
1276
|
+
var hasRequiredAddress;
|
|
1277
|
+
function requireAddress() {
|
|
1278
|
+
if (hasRequiredAddress) return address;
|
|
1279
|
+
hasRequiredAddress = 1;
|
|
1280
|
+
Object.defineProperty(address, "__esModule", { value: true });
|
|
1281
|
+
address.AddressType = void 0;
|
|
1282
|
+
address.isENSName = isENSName;
|
|
1283
|
+
address.isSNSName = isSNSName;
|
|
1284
|
+
address.getAddressType = getAddressType;
|
|
1285
|
+
address.isValidWalletAddress = isValidWalletAddress;
|
|
1286
|
+
address.isValidSignature = isValidSignature;
|
|
1287
|
+
address.parseEmailAddress = parseEmailAddress;
|
|
1288
|
+
address.formatWalletAddress = formatWalletAddress;
|
|
1289
|
+
address.getChainDisplayName = getChainDisplayName;
|
|
1290
|
+
const enums_1 = requireEnums();
|
|
1291
|
+
const common_1 = requireCommon();
|
|
1292
|
+
var AddressType;
|
|
1293
|
+
(function(AddressType2) {
|
|
1294
|
+
AddressType2["EVMAddress"] = "EVMAddress";
|
|
1295
|
+
AddressType2["SolanaAddress"] = "SolanaAddress";
|
|
1296
|
+
AddressType2["ENSName"] = "ENSName";
|
|
1297
|
+
AddressType2["SNSName"] = "SNSName";
|
|
1298
|
+
})(AddressType || (address.AddressType = AddressType = {}));
|
|
1299
|
+
function isENSName(address2) {
|
|
1300
|
+
const lowerAddress = address2.toLowerCase();
|
|
1301
|
+
if (!lowerAddress.endsWith(".eth") && !lowerAddress.endsWith(".box")) {
|
|
1302
|
+
return false;
|
|
1303
|
+
}
|
|
1304
|
+
const nameWithoutTLD = lowerAddress.endsWith(".eth") ? lowerAddress.slice(0, -4) : lowerAddress.slice(0, -4);
|
|
1305
|
+
if (nameWithoutTLD.length === 0) {
|
|
1306
|
+
return false;
|
|
1307
|
+
}
|
|
1308
|
+
const labels = nameWithoutTLD.split(".");
|
|
1309
|
+
const validLabelRegex = /^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/;
|
|
1310
|
+
for (const label of labels) {
|
|
1311
|
+
if (label.length === 0 || !validLabelRegex.test(label)) {
|
|
1312
|
+
return false;
|
|
1313
|
+
}
|
|
1314
|
+
if (label.includes("--")) {
|
|
1315
|
+
return false;
|
|
1316
|
+
}
|
|
1317
|
+
}
|
|
1318
|
+
return true;
|
|
1319
|
+
}
|
|
1320
|
+
function isSNSName(address2) {
|
|
1321
|
+
const lowerAddress = address2.toLowerCase();
|
|
1322
|
+
const snsExtensions = [
|
|
1323
|
+
".sol",
|
|
1324
|
+
".abc",
|
|
1325
|
+
".bonk",
|
|
1326
|
+
".poor",
|
|
1327
|
+
".gm",
|
|
1328
|
+
".dao",
|
|
1329
|
+
".defi",
|
|
1330
|
+
".web3"
|
|
1331
|
+
];
|
|
1332
|
+
const matchingExtension = snsExtensions.find((ext) => lowerAddress.endsWith(ext));
|
|
1333
|
+
if (!matchingExtension) {
|
|
1334
|
+
return false;
|
|
1335
|
+
}
|
|
1336
|
+
const nameWithoutTLD = lowerAddress.slice(0, -matchingExtension.length);
|
|
1337
|
+
if (nameWithoutTLD.length === 0) {
|
|
1338
|
+
return false;
|
|
1339
|
+
}
|
|
1340
|
+
const labels = nameWithoutTLD.split(".");
|
|
1341
|
+
const validLabelRegex = /^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/;
|
|
1342
|
+
for (const label of labels) {
|
|
1343
|
+
if (label.length === 0 || !validLabelRegex.test(label)) {
|
|
1344
|
+
return false;
|
|
1345
|
+
}
|
|
1346
|
+
if (label.includes("--")) {
|
|
1347
|
+
return false;
|
|
1348
|
+
}
|
|
1349
|
+
}
|
|
1350
|
+
return true;
|
|
1351
|
+
}
|
|
1352
|
+
function getAddressType(address2, parentAddressType = void 0) {
|
|
1353
|
+
if ((0, common_1.isEvmAddress)(address2)) {
|
|
1354
|
+
return AddressType.EVMAddress;
|
|
1355
|
+
}
|
|
1356
|
+
if ((0, common_1.isSolanaAddress)(address2)) {
|
|
1357
|
+
return AddressType.SolanaAddress;
|
|
1358
|
+
}
|
|
1359
|
+
if (parentAddressType && address2.includes(".")) {
|
|
1360
|
+
if (parentAddressType === AddressType.EVMAddress) {
|
|
1361
|
+
return AddressType.ENSName;
|
|
1362
|
+
}
|
|
1363
|
+
if (parentAddressType === AddressType.SolanaAddress) {
|
|
1364
|
+
return AddressType.SNSName;
|
|
1365
|
+
}
|
|
1366
|
+
}
|
|
1367
|
+
return void 0;
|
|
1368
|
+
}
|
|
1369
|
+
function isValidWalletAddress(address2, chainType) {
|
|
1370
|
+
if (!address2 || typeof address2 !== "string") {
|
|
1371
|
+
return false;
|
|
1372
|
+
}
|
|
1373
|
+
const addressType = getAddressType(address2);
|
|
1374
|
+
switch (chainType) {
|
|
1375
|
+
case enums_1.ChainType.EVM:
|
|
1376
|
+
return addressType === AddressType.EVMAddress || addressType === AddressType.ENSName;
|
|
1377
|
+
case enums_1.ChainType.SOLANA:
|
|
1378
|
+
return addressType === AddressType.SolanaAddress || addressType === AddressType.SNSName;
|
|
1379
|
+
default:
|
|
1380
|
+
return !!addressType;
|
|
1381
|
+
}
|
|
1382
|
+
}
|
|
1383
|
+
function isValidSignature(signature, chainType) {
|
|
1384
|
+
if (!signature || typeof signature !== "string") {
|
|
1385
|
+
return false;
|
|
1386
|
+
}
|
|
1387
|
+
switch (chainType) {
|
|
1388
|
+
case enums_1.ChainType.EVM:
|
|
1389
|
+
return /^0x[a-fA-F0-9]{130}$/.test(signature);
|
|
1390
|
+
case enums_1.ChainType.SOLANA:
|
|
1391
|
+
return /^[1-9A-HJ-NP-Za-km-z]{87,88}$/.test(signature);
|
|
1392
|
+
default:
|
|
1393
|
+
return signature.length > 50;
|
|
1394
|
+
}
|
|
1395
|
+
}
|
|
1396
|
+
function parseEmailAddress(email) {
|
|
1397
|
+
if (!email || typeof email !== "string") {
|
|
1398
|
+
return void 0;
|
|
1399
|
+
}
|
|
1400
|
+
const parts = email.split("@");
|
|
1401
|
+
if (parts.length !== 2) {
|
|
1402
|
+
return void 0;
|
|
1403
|
+
}
|
|
1404
|
+
const [address2, domain] = parts;
|
|
1405
|
+
if (!address2 || !domain) {
|
|
1406
|
+
return void 0;
|
|
1407
|
+
}
|
|
1408
|
+
const type = getAddressType(address2);
|
|
1409
|
+
return {
|
|
1410
|
+
address: address2,
|
|
1411
|
+
domain,
|
|
1412
|
+
type
|
|
1413
|
+
};
|
|
1414
|
+
}
|
|
1415
|
+
function formatWalletAddress(address2) {
|
|
1416
|
+
if (!address2 || address2.length < 10) {
|
|
1417
|
+
return address2;
|
|
1418
|
+
}
|
|
1419
|
+
const addressType = getAddressType(address2);
|
|
1420
|
+
if ((addressType === AddressType.ENSName || addressType === AddressType.SNSName) && address2.length <= 20) {
|
|
1421
|
+
return address2;
|
|
1422
|
+
}
|
|
1423
|
+
return `${address2.slice(0, 6)}...${address2.slice(-4)}`;
|
|
1424
|
+
}
|
|
1425
|
+
function getChainDisplayName(chainType) {
|
|
1426
|
+
if (!chainType) {
|
|
1427
|
+
return "Unknown Chain";
|
|
1428
|
+
}
|
|
1429
|
+
switch (chainType) {
|
|
1430
|
+
case enums_1.ChainType.EVM:
|
|
1431
|
+
return "EVM Chain";
|
|
1432
|
+
case enums_1.ChainType.SOLANA:
|
|
1433
|
+
return "Solana";
|
|
1434
|
+
default:
|
|
1435
|
+
return "Blockchain";
|
|
1436
|
+
}
|
|
1437
|
+
}
|
|
1438
|
+
return address;
|
|
1439
|
+
}
|
|
1440
|
+
var hasRequiredValidation;
|
|
1441
|
+
function requireValidation() {
|
|
1442
|
+
if (hasRequiredValidation) return validation;
|
|
1443
|
+
hasRequiredValidation = 1;
|
|
1444
|
+
Object.defineProperty(validation, "__esModule", { value: true });
|
|
1445
|
+
validation.validateDomain = validateDomain;
|
|
1446
|
+
validation.validateMessage = validateMessage;
|
|
1447
|
+
validation.validateAddress = validateAddress;
|
|
1448
|
+
validation.validateAmount = validateAmount;
|
|
1449
|
+
const address_1 = requireAddress();
|
|
1450
|
+
function validateDomain(domain) {
|
|
1451
|
+
if (!domain || domain.length === 0) {
|
|
1452
|
+
throw new Error("Domain cannot be empty");
|
|
1453
|
+
}
|
|
1454
|
+
if (domain.length > 100) {
|
|
1455
|
+
throw new Error("Domain cannot exceed 100 characters");
|
|
1456
|
+
}
|
|
1457
|
+
const domainRegex = /^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
|
|
1458
|
+
if (!domainRegex.test(domain)) {
|
|
1459
|
+
throw new Error("Invalid domain format");
|
|
1460
|
+
}
|
|
1461
|
+
return true;
|
|
1462
|
+
}
|
|
1463
|
+
function validateMessage(subject, body) {
|
|
1464
|
+
if (!subject || subject.length === 0) {
|
|
1465
|
+
throw new Error("Message subject cannot be empty");
|
|
1466
|
+
}
|
|
1467
|
+
if (subject.length > 200) {
|
|
1468
|
+
throw new Error("Message subject cannot exceed 200 characters");
|
|
1469
|
+
}
|
|
1470
|
+
if (!body || body.length === 0) {
|
|
1471
|
+
throw new Error("Message body cannot be empty");
|
|
1472
|
+
}
|
|
1473
|
+
if (body.length > 1e4) {
|
|
1474
|
+
throw new Error("Message body cannot exceed 10000 characters");
|
|
1475
|
+
}
|
|
1476
|
+
return true;
|
|
1477
|
+
}
|
|
1478
|
+
function validateAddress(address2, chainType) {
|
|
1479
|
+
if (!address2 || address2.length === 0) {
|
|
1480
|
+
throw new Error("Address cannot be empty");
|
|
1481
|
+
}
|
|
1482
|
+
if (!(0, address_1.isValidWalletAddress)(address2, chainType)) {
|
|
1483
|
+
throw new Error(`Invalid ${chainType} address format`);
|
|
1484
|
+
}
|
|
1485
|
+
return true;
|
|
1486
|
+
}
|
|
1487
|
+
function validateAmount(amount) {
|
|
1488
|
+
if (amount === null || amount === void 0 || amount === "" || typeof amount === "string" && amount.trim() === "") {
|
|
1489
|
+
throw new Error("Invalid amount format");
|
|
1490
|
+
}
|
|
1491
|
+
let amountBigInt;
|
|
1492
|
+
try {
|
|
1493
|
+
if (typeof amount === "string") {
|
|
1494
|
+
if (!/^-?\d+$/.test(amount.trim())) {
|
|
1495
|
+
throw new Error("Invalid amount format");
|
|
1496
|
+
}
|
|
1497
|
+
amountBigInt = BigInt(amount);
|
|
1498
|
+
} else if (typeof amount === "number") {
|
|
1499
|
+
if (!Number.isFinite(amount)) {
|
|
1500
|
+
throw new Error("Invalid amount format");
|
|
1501
|
+
}
|
|
1502
|
+
amountBigInt = BigInt(Math.floor(amount));
|
|
1503
|
+
} else if (typeof amount === "bigint") {
|
|
1504
|
+
amountBigInt = amount;
|
|
1505
|
+
} else {
|
|
1506
|
+
throw new Error("Invalid amount format");
|
|
1507
|
+
}
|
|
1508
|
+
} catch {
|
|
1509
|
+
throw new Error("Invalid amount format");
|
|
1510
|
+
}
|
|
1511
|
+
if (amountBigInt < 0n) {
|
|
1512
|
+
throw new Error("Amount cannot be negative");
|
|
1513
|
+
}
|
|
1514
|
+
return amountBigInt;
|
|
1515
|
+
}
|
|
1516
|
+
return validation;
|
|
1517
|
+
}
|
|
1518
|
+
var environment = {};
|
|
1519
|
+
var hasRequiredEnvironment;
|
|
1520
|
+
function requireEnvironment() {
|
|
1521
|
+
if (hasRequiredEnvironment) return environment;
|
|
1522
|
+
hasRequiredEnvironment = 1;
|
|
1523
|
+
Object.defineProperty(environment, "__esModule", { value: true });
|
|
1524
|
+
environment.StorageType = void 0;
|
|
1525
|
+
var StorageType;
|
|
1526
|
+
(function(StorageType2) {
|
|
1527
|
+
StorageType2["LOCAL_STORAGE"] = "localStorage";
|
|
1528
|
+
StorageType2["SESSION_STORAGE"] = "sessionStorage";
|
|
1529
|
+
StorageType2["ASYNC_STORAGE"] = "asyncStorage";
|
|
1530
|
+
StorageType2["MEMORY"] = "memory";
|
|
1531
|
+
})(StorageType || (environment.StorageType = StorageType = {}));
|
|
1532
|
+
return environment;
|
|
1533
|
+
}
|
|
1534
|
+
var analytics = {};
|
|
1535
|
+
var hasRequiredAnalytics;
|
|
1536
|
+
function requireAnalytics() {
|
|
1537
|
+
if (hasRequiredAnalytics) return analytics;
|
|
1538
|
+
hasRequiredAnalytics = 1;
|
|
1539
|
+
Object.defineProperty(analytics, "__esModule", { value: true });
|
|
1540
|
+
analytics.AnalyticsEventBuilder = analytics.AnalyticsEvent = void 0;
|
|
1541
|
+
var AnalyticsEvent;
|
|
1542
|
+
(function(AnalyticsEvent2) {
|
|
1543
|
+
AnalyticsEvent2["USER_LOGIN"] = "user_login";
|
|
1544
|
+
AnalyticsEvent2["USER_LOGOUT"] = "user_logout";
|
|
1545
|
+
AnalyticsEvent2["USER_SIGNUP"] = "user_signup";
|
|
1546
|
+
AnalyticsEvent2["EMAIL_SENT"] = "email_sent";
|
|
1547
|
+
AnalyticsEvent2["EMAIL_RECEIVED"] = "email_received";
|
|
1548
|
+
AnalyticsEvent2["EMAIL_OPENED"] = "email_opened";
|
|
1549
|
+
AnalyticsEvent2["EMAIL_REPLY"] = "email_reply";
|
|
1550
|
+
AnalyticsEvent2["EMAIL_FORWARD"] = "email_forward";
|
|
1551
|
+
AnalyticsEvent2["EMAIL_DELETE"] = "email_delete";
|
|
1552
|
+
AnalyticsEvent2["EMAIL_STAR"] = "email_star";
|
|
1553
|
+
AnalyticsEvent2["EMAIL_COMPOSE"] = "email_compose";
|
|
1554
|
+
AnalyticsEvent2["EMAIL_CLICKED"] = "email_clicked";
|
|
1555
|
+
AnalyticsEvent2["PAGE_VIEW"] = "page_view";
|
|
1556
|
+
AnalyticsEvent2["SCREEN_VIEW"] = "screen_view";
|
|
1557
|
+
AnalyticsEvent2["FOLDER_SWITCH"] = "folder_switch";
|
|
1558
|
+
AnalyticsEvent2["SUBSCRIPTION_VIEW"] = "subscription_view";
|
|
1559
|
+
AnalyticsEvent2["SUBSCRIPTION_PURCHASE"] = "subscription_purchase";
|
|
1560
|
+
AnalyticsEvent2["SUBSCRIPTION_CANCEL"] = "subscription_cancel";
|
|
1561
|
+
AnalyticsEvent2["SEARCH_PERFORMED"] = "search_performed";
|
|
1562
|
+
AnalyticsEvent2["SETTINGS_CHANGED"] = "settings_changed";
|
|
1563
|
+
AnalyticsEvent2["ERROR_OCCURRED"] = "error_occurred";
|
|
1564
|
+
AnalyticsEvent2["AB_TEST_VIEWED"] = "ab_test_viewed";
|
|
1565
|
+
AnalyticsEvent2["AB_TEST_CONVERTED"] = "ab_test_converted";
|
|
1566
|
+
AnalyticsEvent2["CUSTOM_EVENT"] = "custom_event";
|
|
1567
|
+
})(AnalyticsEvent || (analytics.AnalyticsEvent = AnalyticsEvent = {}));
|
|
1568
|
+
class AnalyticsEventBuilder {
|
|
1569
|
+
/**
|
|
1570
|
+
* Build properties for email action events.
|
|
1571
|
+
*
|
|
1572
|
+
* @param action Email action performed (read, sent, archived, etc.)
|
|
1573
|
+
* @param emailId Unique identifier for the email
|
|
1574
|
+
* @param folder Email folder context (inbox, sent, trash, etc.)
|
|
1575
|
+
* @returns Standardized event properties object
|
|
1576
|
+
*
|
|
1577
|
+
* @ai-builder Email action properties
|
|
1578
|
+
* @ai-standardization Consistent email event tracking
|
|
1579
|
+
*/
|
|
1580
|
+
static emailAction(action, emailId, folder) {
|
|
1581
|
+
return {
|
|
1582
|
+
action,
|
|
1583
|
+
email_id: emailId,
|
|
1584
|
+
folder,
|
|
1585
|
+
timestamp: Date.now()
|
|
1586
|
+
};
|
|
1587
|
+
}
|
|
1588
|
+
/**
|
|
1589
|
+
* Build properties for page/screen view events.
|
|
1590
|
+
*
|
|
1591
|
+
* @param pageName Human-readable page name
|
|
1592
|
+
* @param pagePath URL path or screen identifier
|
|
1593
|
+
* @returns Standardized page view properties
|
|
1594
|
+
*
|
|
1595
|
+
* @ai-builder Navigation tracking properties
|
|
1596
|
+
* @ai-cross-platform Works for web pages and mobile screens
|
|
1597
|
+
*/
|
|
1598
|
+
static pageView(pageName, pagePath) {
|
|
1599
|
+
return {
|
|
1600
|
+
page_name: pageName,
|
|
1601
|
+
page_path: pagePath,
|
|
1602
|
+
timestamp: Date.now()
|
|
1603
|
+
};
|
|
1604
|
+
}
|
|
1605
|
+
/**
|
|
1606
|
+
* Build properties for error tracking events.
|
|
1607
|
+
*
|
|
1608
|
+
* @param errorType Category of error (network, validation, runtime, etc.)
|
|
1609
|
+
* @param errorMessage Error message or description
|
|
1610
|
+
* @param pageName Page/screen where error occurred
|
|
1611
|
+
* @returns Standardized error event properties
|
|
1612
|
+
*
|
|
1613
|
+
* @ai-builder Error tracking properties
|
|
1614
|
+
* @ai-debugging Consistent error event structure
|
|
1615
|
+
*/
|
|
1616
|
+
static error(errorType, errorMessage, pageName) {
|
|
1617
|
+
return {
|
|
1618
|
+
error_type: errorType,
|
|
1619
|
+
error_message: errorMessage,
|
|
1620
|
+
page_name: pageName,
|
|
1621
|
+
timestamp: Date.now()
|
|
1622
|
+
};
|
|
1623
|
+
}
|
|
1624
|
+
/**
|
|
1625
|
+
* Build properties for subscription/revenue events.
|
|
1626
|
+
*
|
|
1627
|
+
* @param action Subscription action (subscribe, upgrade, cancel, etc.)
|
|
1628
|
+
* @param planType Subscription plan type (free, premium, pro, etc.)
|
|
1629
|
+
* @param amount Monetary amount (for revenue tracking)
|
|
1630
|
+
* @param currency Currency code (USD, EUR, etc.)
|
|
1631
|
+
* @returns Standardized subscription event properties
|
|
1632
|
+
*
|
|
1633
|
+
* @ai-builder Revenue tracking properties
|
|
1634
|
+
* @ai-business-metrics Subscription and revenue analytics
|
|
1635
|
+
*/
|
|
1636
|
+
static subscription(action, planType, amount, currency2) {
|
|
1637
|
+
return {
|
|
1638
|
+
action,
|
|
1639
|
+
plan_type: planType,
|
|
1640
|
+
amount,
|
|
1641
|
+
currency: currency2,
|
|
1642
|
+
timestamp: Date.now()
|
|
1643
|
+
};
|
|
1644
|
+
}
|
|
1645
|
+
/**
|
|
1646
|
+
* Build properties for user engagement events.
|
|
1647
|
+
*
|
|
1648
|
+
* @param feature Feature name or component identifier
|
|
1649
|
+
* @param interaction Type of interaction (click, scroll, hover, etc.)
|
|
1650
|
+
* @param duration Time spent on interaction (milliseconds)
|
|
1651
|
+
* @returns Standardized engagement event properties
|
|
1652
|
+
*
|
|
1653
|
+
* @ai-builder User engagement properties
|
|
1654
|
+
* @ai-ux-analytics User experience and interaction tracking
|
|
1655
|
+
*/
|
|
1656
|
+
static engagement(feature, interaction, duration) {
|
|
1657
|
+
return {
|
|
1658
|
+
feature,
|
|
1659
|
+
interaction,
|
|
1660
|
+
duration,
|
|
1661
|
+
timestamp: Date.now()
|
|
1662
|
+
};
|
|
1663
|
+
}
|
|
1664
|
+
/**
|
|
1665
|
+
* Build properties for performance monitoring events.
|
|
1666
|
+
*
|
|
1667
|
+
* @param metric Performance metric name (load_time, api_response, etc.)
|
|
1668
|
+
* @param value Metric value (usually in milliseconds)
|
|
1669
|
+
* @param context Additional context about the performance event
|
|
1670
|
+
* @returns Standardized performance event properties
|
|
1671
|
+
*
|
|
1672
|
+
* @ai-builder Performance monitoring properties
|
|
1673
|
+
* @ai-performance Application performance tracking
|
|
1674
|
+
*/
|
|
1675
|
+
static performance(metric, value, context) {
|
|
1676
|
+
return {
|
|
1677
|
+
metric,
|
|
1678
|
+
value,
|
|
1679
|
+
context,
|
|
1680
|
+
timestamp: Date.now()
|
|
1681
|
+
};
|
|
1682
|
+
}
|
|
1683
|
+
}
|
|
1684
|
+
analytics.AnalyticsEventBuilder = AnalyticsEventBuilder;
|
|
1685
|
+
return analytics;
|
|
1686
|
+
}
|
|
1687
|
+
var api = {};
|
|
1688
|
+
var hasRequiredApi;
|
|
1689
|
+
function requireApi() {
|
|
1690
|
+
if (hasRequiredApi) return api;
|
|
1691
|
+
hasRequiredApi = 1;
|
|
1692
|
+
(function(exports$1) {
|
|
1693
|
+
Object.defineProperty(exports$1, "__esModule", { value: true });
|
|
1694
|
+
exports$1.ProcessedEventName = exports$1.ContractType = exports$1.ChainType = void 0;
|
|
1695
|
+
var enums_1 = requireEnums();
|
|
1696
|
+
Object.defineProperty(exports$1, "ChainType", { enumerable: true, get: function() {
|
|
1697
|
+
return enums_1.ChainType;
|
|
1698
|
+
} });
|
|
1699
|
+
var ContractType;
|
|
1700
|
+
(function(ContractType2) {
|
|
1701
|
+
ContractType2["Mailer"] = "Mailer";
|
|
1702
|
+
ContractType2["MailService"] = "MailService";
|
|
1703
|
+
})(ContractType || (exports$1.ContractType = ContractType = {}));
|
|
1704
|
+
var ProcessedEventName;
|
|
1705
|
+
(function(ProcessedEventName2) {
|
|
1706
|
+
ProcessedEventName2["MailSent"] = "MailSent";
|
|
1707
|
+
ProcessedEventName2["PreparedMailSent"] = "PreparedMailSent";
|
|
1708
|
+
ProcessedEventName2["DelegationSet"] = "DelegationSet";
|
|
1709
|
+
ProcessedEventName2["DelegationCleared"] = "DelegationCleared";
|
|
1710
|
+
ProcessedEventName2["DomainRegistered"] = "DomainRegistered";
|
|
1711
|
+
ProcessedEventName2["DomainExtended"] = "DomainExtended";
|
|
1712
|
+
ProcessedEventName2["DomainReleased"] = "DomainReleased";
|
|
1713
|
+
ProcessedEventName2["FeeUpdated"] = "FeeUpdated";
|
|
1714
|
+
ProcessedEventName2["SharesRecorded"] = "SharesRecorded";
|
|
1715
|
+
ProcessedEventName2["RecipientClaimed"] = "RecipientClaimed";
|
|
1716
|
+
ProcessedEventName2["OwnerClaimed"] = "OwnerClaimed";
|
|
1717
|
+
ProcessedEventName2["ExpiredSharesClaimed"] = "ExpiredSharesClaimed";
|
|
1718
|
+
})(ProcessedEventName || (exports$1.ProcessedEventName = ProcessedEventName = {}));
|
|
1719
|
+
})(api);
|
|
1720
|
+
return api;
|
|
1721
|
+
}
|
|
1722
|
+
var network = {};
|
|
1723
|
+
var hasRequiredNetwork;
|
|
1724
|
+
function requireNetwork() {
|
|
1725
|
+
if (hasRequiredNetwork) return network;
|
|
1726
|
+
hasRequiredNetwork = 1;
|
|
1727
|
+
Object.defineProperty(network, "__esModule", { value: true });
|
|
1728
|
+
network.NetworkError = void 0;
|
|
1729
|
+
class NetworkError extends Error {
|
|
1730
|
+
constructor(message, status, statusText, response) {
|
|
1731
|
+
super(message);
|
|
1732
|
+
this.name = "NetworkError";
|
|
1733
|
+
this.status = status;
|
|
1734
|
+
this.statusText = statusText;
|
|
1735
|
+
this.response = response;
|
|
1736
|
+
}
|
|
1737
|
+
}
|
|
1738
|
+
network.NetworkError = NetworkError;
|
|
1739
|
+
return network;
|
|
1740
|
+
}
|
|
1741
|
+
var wallet = {};
|
|
1742
|
+
var hasRequiredWallet;
|
|
1743
|
+
function requireWallet() {
|
|
1744
|
+
if (hasRequiredWallet) return wallet;
|
|
1745
|
+
hasRequiredWallet = 1;
|
|
1746
|
+
Object.defineProperty(wallet, "__esModule", { value: true });
|
|
1747
|
+
wallet.WalletType = void 0;
|
|
1748
|
+
var WalletType;
|
|
1749
|
+
(function(WalletType2) {
|
|
1750
|
+
WalletType2["METAMASK"] = "metamask";
|
|
1751
|
+
WalletType2["PHANTOM"] = "phantom";
|
|
1752
|
+
WalletType2["COINBASE"] = "coinbase";
|
|
1753
|
+
WalletType2["WALLETCONNECT"] = "walletconnect";
|
|
1754
|
+
WalletType2["INJECTED"] = "injected";
|
|
1755
|
+
})(WalletType || (wallet.WalletType = WalletType = {}));
|
|
1756
|
+
return wallet;
|
|
1757
|
+
}
|
|
1758
|
+
var rateLimits = {};
|
|
1759
|
+
var hasRequiredRateLimits;
|
|
1760
|
+
function requireRateLimits() {
|
|
1761
|
+
if (hasRequiredRateLimits) return rateLimits;
|
|
1762
|
+
hasRequiredRateLimits = 1;
|
|
1763
|
+
Object.defineProperty(rateLimits, "__esModule", { value: true });
|
|
1764
|
+
rateLimits.RateLimitPeriodType = void 0;
|
|
1765
|
+
var RateLimitPeriodType;
|
|
1766
|
+
(function(RateLimitPeriodType2) {
|
|
1767
|
+
RateLimitPeriodType2["HOUR"] = "hour";
|
|
1768
|
+
RateLimitPeriodType2["DAY"] = "day";
|
|
1769
|
+
RateLimitPeriodType2["MONTH"] = "month";
|
|
1770
|
+
})(RateLimitPeriodType || (rateLimits.RateLimitPeriodType = RateLimitPeriodType = {}));
|
|
1771
|
+
return rateLimits;
|
|
1772
|
+
}
|
|
1773
|
+
var period = {};
|
|
1774
|
+
var hasRequiredPeriod;
|
|
1775
|
+
function requirePeriod() {
|
|
1776
|
+
if (hasRequiredPeriod) return period;
|
|
1777
|
+
hasRequiredPeriod = 1;
|
|
1778
|
+
Object.defineProperty(period, "__esModule", { value: true });
|
|
1779
|
+
period.ALL_PERIODS = period.PERIOD_RANKS = void 0;
|
|
1780
|
+
period.PERIOD_RANKS = {
|
|
1781
|
+
weekly: 1,
|
|
1782
|
+
monthly: 2,
|
|
1783
|
+
quarterly: 3,
|
|
1784
|
+
yearly: 4,
|
|
1785
|
+
lifetime: 5
|
|
1786
|
+
};
|
|
1787
|
+
period.ALL_PERIODS = [
|
|
1788
|
+
"weekly",
|
|
1789
|
+
"monthly",
|
|
1790
|
+
"quarterly",
|
|
1791
|
+
"yearly",
|
|
1792
|
+
"lifetime"
|
|
1793
|
+
];
|
|
1794
|
+
return period;
|
|
1795
|
+
}
|
|
1796
|
+
var entitlements = {};
|
|
1797
|
+
var hasRequiredEntitlements;
|
|
1798
|
+
function requireEntitlements() {
|
|
1799
|
+
if (hasRequiredEntitlements) return entitlements;
|
|
1800
|
+
hasRequiredEntitlements = 1;
|
|
1801
|
+
Object.defineProperty(entitlements, "__esModule", { value: true });
|
|
1802
|
+
entitlements.NONE_ENTITLEMENT = void 0;
|
|
1803
|
+
entitlements.NONE_ENTITLEMENT = "none";
|
|
1804
|
+
return entitlements;
|
|
1805
|
+
}
|
|
1806
|
+
var entity = {};
|
|
1807
|
+
var hasRequiredEntity;
|
|
1808
|
+
function requireEntity() {
|
|
1809
|
+
if (hasRequiredEntity) return entity;
|
|
1810
|
+
hasRequiredEntity = 1;
|
|
1811
|
+
Object.defineProperty(entity, "__esModule", { value: true });
|
|
1812
|
+
entity.InvitationStatus = entity.EntityRole = entity.EntityType = void 0;
|
|
1813
|
+
var EntityType;
|
|
1814
|
+
(function(EntityType2) {
|
|
1815
|
+
EntityType2["PERSONAL"] = "personal";
|
|
1816
|
+
EntityType2["ORGANIZATION"] = "organization";
|
|
1817
|
+
})(EntityType || (entity.EntityType = EntityType = {}));
|
|
1818
|
+
var EntityRole;
|
|
1819
|
+
(function(EntityRole2) {
|
|
1820
|
+
EntityRole2["OWNER"] = "owner";
|
|
1821
|
+
EntityRole2["MANAGER"] = "manager";
|
|
1822
|
+
EntityRole2["MEMBER"] = "member";
|
|
1823
|
+
})(EntityRole || (entity.EntityRole = EntityRole = {}));
|
|
1824
|
+
var InvitationStatus;
|
|
1825
|
+
(function(InvitationStatus2) {
|
|
1826
|
+
InvitationStatus2["PENDING"] = "pending";
|
|
1827
|
+
InvitationStatus2["ACCEPTED"] = "accepted";
|
|
1828
|
+
InvitationStatus2["DECLINED"] = "declined";
|
|
1829
|
+
InvitationStatus2["EXPIRED"] = "expired";
|
|
1830
|
+
})(InvitationStatus || (entity.InvitationStatus = InvitationStatus = {}));
|
|
1831
|
+
return entity;
|
|
1832
|
+
}
|
|
1833
|
+
var permissions = {};
|
|
1834
|
+
var hasRequiredPermissions;
|
|
1835
|
+
function requirePermissions() {
|
|
1836
|
+
if (hasRequiredPermissions) return permissions;
|
|
1837
|
+
hasRequiredPermissions = 1;
|
|
1838
|
+
(function(exports$1) {
|
|
1839
|
+
Object.defineProperty(exports$1, "__esModule", { value: true });
|
|
1840
|
+
exports$1.ROLE_PERMISSIONS = exports$1.MEMBER_PERMISSIONS = exports$1.MANAGER_PERMISSIONS = exports$1.OWNER_PERMISSIONS = void 0;
|
|
1841
|
+
exports$1.getPermissionsForRole = getPermissionsForRole;
|
|
1842
|
+
exports$1.hasPermission = hasPermission;
|
|
1843
|
+
const entity_1 = requireEntity();
|
|
1844
|
+
exports$1.OWNER_PERMISSIONS = {
|
|
1845
|
+
canViewEntity: true,
|
|
1846
|
+
canEditEntity: true,
|
|
1847
|
+
canDeleteEntity: true,
|
|
1848
|
+
canManageMembers: true,
|
|
1849
|
+
canInviteMembers: true,
|
|
1850
|
+
canManageProjects: true,
|
|
1851
|
+
canCreateProjects: true,
|
|
1852
|
+
canViewProjects: true,
|
|
1853
|
+
canManageApiKeys: true,
|
|
1854
|
+
canViewApiKeys: true
|
|
1855
|
+
};
|
|
1856
|
+
exports$1.MANAGER_PERMISSIONS = {
|
|
1857
|
+
canViewEntity: true,
|
|
1858
|
+
canEditEntity: true,
|
|
1859
|
+
canDeleteEntity: false,
|
|
1860
|
+
canManageMembers: false,
|
|
1861
|
+
canInviteMembers: false,
|
|
1862
|
+
canManageProjects: true,
|
|
1863
|
+
canCreateProjects: true,
|
|
1864
|
+
canViewProjects: true,
|
|
1865
|
+
canManageApiKeys: true,
|
|
1866
|
+
canViewApiKeys: true
|
|
1867
|
+
};
|
|
1868
|
+
exports$1.MEMBER_PERMISSIONS = {
|
|
1869
|
+
canViewEntity: true,
|
|
1870
|
+
canEditEntity: false,
|
|
1871
|
+
canDeleteEntity: false,
|
|
1872
|
+
canManageMembers: false,
|
|
1873
|
+
canInviteMembers: false,
|
|
1874
|
+
canManageProjects: false,
|
|
1875
|
+
canCreateProjects: false,
|
|
1876
|
+
canViewProjects: true,
|
|
1877
|
+
canManageApiKeys: false,
|
|
1878
|
+
canViewApiKeys: true
|
|
1879
|
+
};
|
|
1880
|
+
exports$1.ROLE_PERMISSIONS = {
|
|
1881
|
+
[entity_1.EntityRole.OWNER]: exports$1.OWNER_PERMISSIONS,
|
|
1882
|
+
[entity_1.EntityRole.MANAGER]: exports$1.MANAGER_PERMISSIONS,
|
|
1883
|
+
[entity_1.EntityRole.MEMBER]: exports$1.MEMBER_PERMISSIONS
|
|
1884
|
+
};
|
|
1885
|
+
function getPermissionsForRole(role) {
|
|
1886
|
+
return exports$1.ROLE_PERMISSIONS[role];
|
|
1887
|
+
}
|
|
1888
|
+
function hasPermission(role, permission) {
|
|
1889
|
+
return exports$1.ROLE_PERMISSIONS[role][permission];
|
|
1890
|
+
}
|
|
1891
|
+
})(permissions);
|
|
1892
|
+
return permissions;
|
|
1893
|
+
}
|
|
1894
|
+
var web3UsernameValidator = {};
|
|
1895
|
+
var hasRequiredWeb3UsernameValidator;
|
|
1896
|
+
function requireWeb3UsernameValidator() {
|
|
1897
|
+
if (hasRequiredWeb3UsernameValidator) return web3UsernameValidator;
|
|
1898
|
+
hasRequiredWeb3UsernameValidator = 1;
|
|
1899
|
+
Object.defineProperty(web3UsernameValidator, "__esModule", { value: true });
|
|
1900
|
+
web3UsernameValidator.Web3UsernameValidator = void 0;
|
|
1901
|
+
const enums_1 = requireEnums();
|
|
1902
|
+
class Web3UsernameValidator {
|
|
1903
|
+
/**
|
|
1904
|
+
* Comprehensive address validation for API endpoint
|
|
1905
|
+
* Returns AddressValidationResult for valid addresses, undefined for invalid ones
|
|
1906
|
+
*/
|
|
1907
|
+
static validate(address2) {
|
|
1908
|
+
if (!address2) {
|
|
1909
|
+
return void 0;
|
|
1910
|
+
}
|
|
1911
|
+
if (this.EVM_REGEX.test(address2)) {
|
|
1912
|
+
return {
|
|
1913
|
+
name: null,
|
|
1914
|
+
address: address2.toLowerCase(),
|
|
1915
|
+
chainType: enums_1.ChainType.EVM
|
|
1916
|
+
};
|
|
1917
|
+
}
|
|
1918
|
+
if (!address2.startsWith("0x") && address2.length >= 32 && address2.length <= 44 && this.BASE58_REGEX.test(address2)) {
|
|
1919
|
+
return {
|
|
1920
|
+
name: null,
|
|
1921
|
+
address: address2,
|
|
1922
|
+
// Keep case for Solana
|
|
1923
|
+
chainType: enums_1.ChainType.SOLANA
|
|
1924
|
+
};
|
|
1925
|
+
}
|
|
1926
|
+
if ((address2.toLowerCase().endsWith(".eth") || address2.toLowerCase().endsWith(".box")) && address2.length >= 5 && // minimum: "a.eth" = 5 chars
|
|
1927
|
+
this.ENS_REGEX.test(address2)) {
|
|
1928
|
+
return {
|
|
1929
|
+
name: address2.toLowerCase(),
|
|
1930
|
+
address: null,
|
|
1931
|
+
chainType: enums_1.ChainType.EVM
|
|
1932
|
+
// ENS resolves to EVM addresses
|
|
1933
|
+
};
|
|
1934
|
+
}
|
|
1935
|
+
if (address2.toLowerCase().includes(".")) {
|
|
1936
|
+
const parts = address2.toLowerCase().split(".");
|
|
1937
|
+
if (parts.length === 2) {
|
|
1938
|
+
const [name, tld] = parts;
|
|
1939
|
+
if (this.VALID_SNS_TLDS.includes(tld) && this.SNS_NAME_REGEX.test(name) && name.length >= 1) {
|
|
1940
|
+
return {
|
|
1941
|
+
name: address2.toLowerCase(),
|
|
1942
|
+
address: null,
|
|
1943
|
+
chainType: enums_1.ChainType.SOLANA
|
|
1944
|
+
// SNS resolves to Solana addresses
|
|
1945
|
+
};
|
|
1946
|
+
}
|
|
1947
|
+
}
|
|
1948
|
+
}
|
|
1949
|
+
return void 0;
|
|
1950
|
+
}
|
|
1951
|
+
/**
|
|
1952
|
+
* Quick EVM address validation
|
|
1953
|
+
*/
|
|
1954
|
+
static isValidEVMAddress(address2) {
|
|
1955
|
+
return this.EVM_REGEX.test(address2);
|
|
1956
|
+
}
|
|
1957
|
+
/**
|
|
1958
|
+
* Quick Solana address validation
|
|
1959
|
+
*/
|
|
1960
|
+
static isValidSolanaAddress(address2) {
|
|
1961
|
+
return !address2.startsWith("0x") && address2.length >= 32 && address2.length <= 44 && this.BASE58_REGEX.test(address2);
|
|
1962
|
+
}
|
|
1963
|
+
/**
|
|
1964
|
+
* Quick ENS name validation
|
|
1965
|
+
*/
|
|
1966
|
+
static isValidENSName(address2) {
|
|
1967
|
+
return (address2.toLowerCase().endsWith(".eth") || address2.toLowerCase().endsWith(".box")) && address2.length >= 5 && this.ENS_REGEX.test(address2);
|
|
1968
|
+
}
|
|
1969
|
+
/**
|
|
1970
|
+
* Quick SNS name validation
|
|
1971
|
+
*/
|
|
1972
|
+
static isValidSNSName(address2) {
|
|
1973
|
+
if (!address2.toLowerCase().includes("."))
|
|
1974
|
+
return false;
|
|
1975
|
+
const parts = address2.toLowerCase().split(".");
|
|
1976
|
+
if (parts.length !== 2)
|
|
1977
|
+
return false;
|
|
1978
|
+
const [name, tld] = parts;
|
|
1979
|
+
return this.VALID_SNS_TLDS.includes(tld) && this.SNS_NAME_REGEX.test(name) && name.length >= 1;
|
|
1980
|
+
}
|
|
1981
|
+
}
|
|
1982
|
+
web3UsernameValidator.Web3UsernameValidator = Web3UsernameValidator;
|
|
1983
|
+
Web3UsernameValidator.EVM_REGEX = /^0x[a-fA-F0-9]{40}$/;
|
|
1984
|
+
Web3UsernameValidator.BASE58_REGEX = /^[1-9A-HJ-NP-Za-km-z]+$/;
|
|
1985
|
+
Web3UsernameValidator.ENS_REGEX = /^[a-zA-Z0-9]([a-zA-Z0-9]|(-[a-zA-Z0-9]))*\.(eth|box)$/i;
|
|
1986
|
+
Web3UsernameValidator.SNS_NAME_REGEX = /^[a-zA-Z0-9]([a-zA-Z0-9]|(-[a-zA-Z0-9]))*$/;
|
|
1987
|
+
Web3UsernameValidator.VALID_SNS_TLDS = [
|
|
1988
|
+
"sol",
|
|
1989
|
+
"abc",
|
|
1990
|
+
"backpack",
|
|
1991
|
+
"bonk",
|
|
1992
|
+
"coin",
|
|
1993
|
+
"dao",
|
|
1994
|
+
"defi",
|
|
1995
|
+
"gm",
|
|
1996
|
+
"poor",
|
|
1997
|
+
"pump",
|
|
1998
|
+
"shdw",
|
|
1999
|
+
"stepn",
|
|
2000
|
+
"web3"
|
|
2001
|
+
];
|
|
2002
|
+
return web3UsernameValidator;
|
|
2003
|
+
}
|
|
2004
|
+
var typeValidation = {};
|
|
2005
|
+
var hasRequiredTypeValidation;
|
|
2006
|
+
function requireTypeValidation() {
|
|
2007
|
+
if (hasRequiredTypeValidation) return typeValidation;
|
|
2008
|
+
hasRequiredTypeValidation = 1;
|
|
2009
|
+
(function(exports$1) {
|
|
2010
|
+
Object.defineProperty(exports$1, "__esModule", { value: true });
|
|
2011
|
+
exports$1.parseJson = exports$1.createAssertion = exports$1.isUrl = exports$1.isEmail = exports$1.isValidDate = exports$1.isErrorResponse = exports$1.isSuccessResponse = exports$1.isApiResponse = exports$1.optional = exports$1.validateArray = exports$1.hasRequiredProperties = exports$1.isNullish = exports$1.isArray = exports$1.isObject = exports$1.isBoolean = exports$1.isNumber = exports$1.isString = exports$1.createValidator = void 0;
|
|
2012
|
+
const createValidator = (validationFn, typeName) => {
|
|
2013
|
+
return (data) => {
|
|
2014
|
+
try {
|
|
2015
|
+
if (validationFn(data)) {
|
|
2016
|
+
return { isValid: true, data };
|
|
2017
|
+
}
|
|
2018
|
+
return { isValid: false, error: `Invalid ${typeName}`, data: null };
|
|
2019
|
+
} catch (error) {
|
|
2020
|
+
return {
|
|
2021
|
+
isValid: false,
|
|
2022
|
+
error: `Validation error for ${typeName}: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
2023
|
+
data: null
|
|
2024
|
+
};
|
|
2025
|
+
}
|
|
2026
|
+
};
|
|
2027
|
+
};
|
|
2028
|
+
exports$1.createValidator = createValidator;
|
|
2029
|
+
const isString = (value) => typeof value === "string";
|
|
2030
|
+
exports$1.isString = isString;
|
|
2031
|
+
const isNumber = (value) => typeof value === "number" && !isNaN(value);
|
|
2032
|
+
exports$1.isNumber = isNumber;
|
|
2033
|
+
const isBoolean = (value) => typeof value === "boolean";
|
|
2034
|
+
exports$1.isBoolean = isBoolean;
|
|
2035
|
+
const isObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
2036
|
+
exports$1.isObject = isObject;
|
|
2037
|
+
const isArray = (value) => Array.isArray(value);
|
|
2038
|
+
exports$1.isArray = isArray;
|
|
2039
|
+
const isNullish = (value) => value === null || value === void 0;
|
|
2040
|
+
exports$1.isNullish = isNullish;
|
|
2041
|
+
const hasRequiredProperties = (obj, requiredProps) => {
|
|
2042
|
+
if (!(0, exports$1.isObject)(obj))
|
|
2043
|
+
return false;
|
|
2044
|
+
return requiredProps.every((prop) => prop in obj);
|
|
2045
|
+
};
|
|
2046
|
+
exports$1.hasRequiredProperties = hasRequiredProperties;
|
|
2047
|
+
const validateArray = (data, itemValidator) => {
|
|
2048
|
+
if (!(0, exports$1.isArray)(data))
|
|
2049
|
+
return false;
|
|
2050
|
+
return data.every(itemValidator);
|
|
2051
|
+
};
|
|
2052
|
+
exports$1.validateArray = validateArray;
|
|
2053
|
+
const optional = (validator) => (value) => {
|
|
2054
|
+
return value === void 0 || validator(value);
|
|
2055
|
+
};
|
|
2056
|
+
exports$1.optional = optional;
|
|
2057
|
+
const isApiResponse = (data) => {
|
|
2058
|
+
return (0, exports$1.isObject)(data) && (0, exports$1.isBoolean)(data.success);
|
|
2059
|
+
};
|
|
2060
|
+
exports$1.isApiResponse = isApiResponse;
|
|
2061
|
+
const isSuccessResponse = (data, dataValidator) => {
|
|
2062
|
+
if (!(0, exports$1.isApiResponse)(data) || !data.success)
|
|
2063
|
+
return false;
|
|
2064
|
+
if (dataValidator && "data" in data) {
|
|
2065
|
+
return dataValidator(data.data);
|
|
2066
|
+
}
|
|
2067
|
+
return true;
|
|
2068
|
+
};
|
|
2069
|
+
exports$1.isSuccessResponse = isSuccessResponse;
|
|
2070
|
+
const isErrorResponse = (data) => {
|
|
2071
|
+
return (0, exports$1.isApiResponse)(data) && !data.success && "error" in data && (0, exports$1.isString)(data.error);
|
|
2072
|
+
};
|
|
2073
|
+
exports$1.isErrorResponse = isErrorResponse;
|
|
2074
|
+
const isValidDate = (value) => {
|
|
2075
|
+
if (!(0, exports$1.isString)(value))
|
|
2076
|
+
return false;
|
|
2077
|
+
const date2 = new Date(value);
|
|
2078
|
+
return !isNaN(date2.getTime());
|
|
2079
|
+
};
|
|
2080
|
+
exports$1.isValidDate = isValidDate;
|
|
2081
|
+
const isEmail = (value) => {
|
|
2082
|
+
if (!(0, exports$1.isString)(value))
|
|
2083
|
+
return false;
|
|
2084
|
+
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
2085
|
+
return emailRegex.test(value);
|
|
2086
|
+
};
|
|
2087
|
+
exports$1.isEmail = isEmail;
|
|
2088
|
+
const isUrl = (value) => {
|
|
2089
|
+
if (!(0, exports$1.isString)(value))
|
|
2090
|
+
return false;
|
|
2091
|
+
try {
|
|
2092
|
+
new URL(value);
|
|
2093
|
+
return true;
|
|
2094
|
+
} catch {
|
|
2095
|
+
return false;
|
|
2096
|
+
}
|
|
2097
|
+
};
|
|
2098
|
+
exports$1.isUrl = isUrl;
|
|
2099
|
+
const createAssertion = (validator, typeName) => {
|
|
2100
|
+
return (data, context = typeName) => {
|
|
2101
|
+
if (!validator(data)) {
|
|
2102
|
+
throw new TypeError(`Invalid ${context}: expected ${typeName}`);
|
|
2103
|
+
}
|
|
2104
|
+
};
|
|
2105
|
+
};
|
|
2106
|
+
exports$1.createAssertion = createAssertion;
|
|
2107
|
+
const parseJson = (jsonString, validator) => {
|
|
2108
|
+
try {
|
|
2109
|
+
const parsed = JSON.parse(jsonString);
|
|
2110
|
+
if (validator) {
|
|
2111
|
+
if (validator(parsed)) {
|
|
2112
|
+
return { isValid: true, data: parsed };
|
|
2113
|
+
}
|
|
2114
|
+
return {
|
|
2115
|
+
isValid: false,
|
|
2116
|
+
error: "Parsed JSON does not match expected type",
|
|
2117
|
+
data: null
|
|
2118
|
+
};
|
|
2119
|
+
}
|
|
2120
|
+
return { isValid: true, data: parsed };
|
|
2121
|
+
} catch (error) {
|
|
2122
|
+
return {
|
|
2123
|
+
isValid: false,
|
|
2124
|
+
error: `JSON parse error: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
2125
|
+
data: null
|
|
2126
|
+
};
|
|
2127
|
+
}
|
|
2128
|
+
};
|
|
2129
|
+
exports$1.parseJson = parseJson;
|
|
2130
|
+
})(typeValidation);
|
|
2131
|
+
return typeValidation;
|
|
2132
|
+
}
|
|
2133
|
+
var eventHelpers = {};
|
|
2134
|
+
var hasRequiredEventHelpers;
|
|
2135
|
+
function requireEventHelpers() {
|
|
2136
|
+
if (hasRequiredEventHelpers) return eventHelpers;
|
|
2137
|
+
hasRequiredEventHelpers = 1;
|
|
2138
|
+
Object.defineProperty(eventHelpers, "__esModule", { value: true });
|
|
2139
|
+
eventHelpers.createMultiChainId = createMultiChainId;
|
|
2140
|
+
eventHelpers.createUserMultiChainId = createUserMultiChainId;
|
|
2141
|
+
eventHelpers.createChainStatsId = createChainStatsId;
|
|
2142
|
+
eventHelpers.createDelegationId = createDelegationId;
|
|
2143
|
+
eventHelpers.normalizeAddress = normalizeAddress;
|
|
2144
|
+
eventHelpers.formatBigInt = formatBigInt;
|
|
2145
|
+
eventHelpers.isZeroAddress = isZeroAddress;
|
|
2146
|
+
eventHelpers.isTestNet = isTestNet;
|
|
2147
|
+
eventHelpers.validateEventArgs = validateEventArgs;
|
|
2148
|
+
function createMultiChainId(chainId, txHash, logIndex) {
|
|
2149
|
+
return `${chainId}-${txHash}-${logIndex}`;
|
|
2150
|
+
}
|
|
2151
|
+
function createUserMultiChainId(chainId, address2) {
|
|
2152
|
+
return `${chainId}-${address2.toLowerCase()}`;
|
|
2153
|
+
}
|
|
2154
|
+
function createChainStatsId(chainId) {
|
|
2155
|
+
return `${chainId}-global`;
|
|
2156
|
+
}
|
|
2157
|
+
function createDelegationId(delegatorAddress, isTestNet2) {
|
|
2158
|
+
return `${delegatorAddress.toLowerCase()}-${isTestNet2}`;
|
|
2159
|
+
}
|
|
2160
|
+
function normalizeAddress(address2) {
|
|
2161
|
+
return address2.toLowerCase();
|
|
2162
|
+
}
|
|
2163
|
+
function formatBigInt(value, decimals = 18) {
|
|
2164
|
+
const divisor = BigInt(10 ** decimals);
|
|
2165
|
+
const whole = value / divisor;
|
|
2166
|
+
const fraction = value % divisor;
|
|
2167
|
+
if (fraction === 0n) {
|
|
2168
|
+
return whole.toString();
|
|
2169
|
+
}
|
|
2170
|
+
return `${whole}.${fraction.toString().padStart(decimals, "0").replace(/0+$/, "")}`;
|
|
2171
|
+
}
|
|
2172
|
+
function isZeroAddress(address2) {
|
|
2173
|
+
return address2.toLowerCase() === "0x0000000000000000000000000000000000000000";
|
|
2174
|
+
}
|
|
2175
|
+
function isTestNet(chainId) {
|
|
2176
|
+
const evmTestnets = /* @__PURE__ */ new Set([
|
|
2177
|
+
31337,
|
|
2178
|
+
// Hardhat (local development)
|
|
2179
|
+
11155111,
|
|
2180
|
+
// Ethereum Sepolia
|
|
2181
|
+
80001,
|
|
2182
|
+
// Polygon Mumbai (if configured)
|
|
2183
|
+
80002,
|
|
2184
|
+
// Polygon Amoy (if configured)
|
|
2185
|
+
421614,
|
|
2186
|
+
// Arbitrum Sepolia (if configured)
|
|
2187
|
+
11155420,
|
|
2188
|
+
// OP Sepolia (if configured)
|
|
2189
|
+
84532,
|
|
2190
|
+
// Base Sepolia (if configured)
|
|
2191
|
+
43113
|
|
2192
|
+
// Avalanche Fuji (if configured)
|
|
2193
|
+
]);
|
|
2194
|
+
const solanaTestnets = /* @__PURE__ */ new Set([
|
|
2195
|
+
-102,
|
|
2196
|
+
// Solana Devnet
|
|
2197
|
+
-103,
|
|
2198
|
+
// Solana Testnet
|
|
2199
|
+
-104
|
|
2200
|
+
// Solana Localnet
|
|
2201
|
+
]);
|
|
2202
|
+
return evmTestnets.has(chainId) || solanaTestnets.has(chainId);
|
|
2203
|
+
}
|
|
2204
|
+
function validateEventArgs(args, requiredFields) {
|
|
2205
|
+
for (const field of requiredFields) {
|
|
2206
|
+
if (args[field] === void 0 || args[field] === null) {
|
|
2207
|
+
console.error(`❌ Missing required field: ${String(field)}`);
|
|
2208
|
+
return false;
|
|
2209
|
+
}
|
|
2210
|
+
}
|
|
2211
|
+
return true;
|
|
2212
|
+
}
|
|
2213
|
+
return eventHelpers;
|
|
2214
|
+
}
|
|
2215
|
+
var auth = {};
|
|
2216
|
+
var hasRequiredAuth;
|
|
2217
|
+
function requireAuth() {
|
|
2218
|
+
if (hasRequiredAuth) return auth;
|
|
2219
|
+
hasRequiredAuth = 1;
|
|
2220
|
+
Object.defineProperty(auth, "__esModule", { value: true });
|
|
2221
|
+
auth.generateAuthMessage = generateAuthMessage;
|
|
2222
|
+
auth.isAuthExpired = isAuthExpired;
|
|
2223
|
+
auth.getAuthStatusText = getAuthStatusText;
|
|
2224
|
+
auth.canAccessProtectedFeatures = canAccessProtectedFeatures;
|
|
2225
|
+
auth.isAuthStatusConnected = isAuthStatusConnected;
|
|
2226
|
+
auth.generateNonce = generateNonce;
|
|
2227
|
+
auth.extractNonceFromMessage = extractNonceFromMessage;
|
|
2228
|
+
auth.isValidNonce = isValidNonce;
|
|
2229
|
+
const enums_1 = requireEnums();
|
|
2230
|
+
function generateAuthMessage(emailDomain, nonce) {
|
|
2231
|
+
const actualNonce = nonce || `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
2232
|
+
return `Authenticate with ${emailDomain}
|
|
2233
|
+
Nonce: ${actualNonce}`;
|
|
2234
|
+
}
|
|
2235
|
+
function isAuthExpired(createdAt, expirationHours = 24) {
|
|
2236
|
+
const expirationTime = new Date(createdAt.getTime() + expirationHours * 60 * 60 * 1e3);
|
|
2237
|
+
return /* @__PURE__ */ new Date() > expirationTime;
|
|
2238
|
+
}
|
|
2239
|
+
function getAuthStatusText(status) {
|
|
2240
|
+
switch (status) {
|
|
2241
|
+
case enums_1.AuthStatus.DISCONNECTED:
|
|
2242
|
+
return "Not connected";
|
|
2243
|
+
case enums_1.AuthStatus.CONNECTED:
|
|
2244
|
+
return "Connected - Please verify";
|
|
2245
|
+
case enums_1.AuthStatus.VERIFIED:
|
|
2246
|
+
return "Authenticated";
|
|
2247
|
+
default:
|
|
2248
|
+
return "Unknown status";
|
|
2249
|
+
}
|
|
2250
|
+
}
|
|
2251
|
+
function canAccessProtectedFeatures(status) {
|
|
2252
|
+
return status === enums_1.AuthStatus.VERIFIED;
|
|
2253
|
+
}
|
|
2254
|
+
function isAuthStatusConnected(status) {
|
|
2255
|
+
return status === enums_1.AuthStatus.CONNECTED || status === enums_1.AuthStatus.VERIFIED;
|
|
2256
|
+
}
|
|
2257
|
+
function generateNonce() {
|
|
2258
|
+
return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
2259
|
+
}
|
|
2260
|
+
function extractNonceFromMessage(message) {
|
|
2261
|
+
const match = message.match(/Nonce:\s*(.+)$/m);
|
|
2262
|
+
return match ? match[1].trim() : void 0;
|
|
2263
|
+
}
|
|
2264
|
+
function isValidNonce(nonce) {
|
|
2265
|
+
if (!nonce || typeof nonce !== "string") {
|
|
2266
|
+
return false;
|
|
2267
|
+
}
|
|
2268
|
+
if (nonce.length < 10) {
|
|
2269
|
+
return false;
|
|
2270
|
+
}
|
|
2271
|
+
const parts = nonce.split("-");
|
|
2272
|
+
if (parts.length >= 2) {
|
|
2273
|
+
const timestamp = parseInt(parts[0], 10);
|
|
2274
|
+
if (!isNaN(timestamp)) {
|
|
2275
|
+
const oneDayAgo = Date.now() - 24 * 60 * 60 * 1e3;
|
|
2276
|
+
if (timestamp < oneDayAgo) {
|
|
2277
|
+
return false;
|
|
2278
|
+
}
|
|
2279
|
+
}
|
|
2280
|
+
}
|
|
2281
|
+
return true;
|
|
2282
|
+
}
|
|
2283
|
+
return auth;
|
|
2284
|
+
}
|
|
2285
|
+
var adminEmails = {};
|
|
2286
|
+
var hasRequiredAdminEmails;
|
|
2287
|
+
function requireAdminEmails() {
|
|
2288
|
+
if (hasRequiredAdminEmails) return adminEmails;
|
|
2289
|
+
hasRequiredAdminEmails = 1;
|
|
2290
|
+
Object.defineProperty(adminEmails, "__esModule", { value: true });
|
|
2291
|
+
adminEmails.parseAdminEmails = parseAdminEmails;
|
|
2292
|
+
adminEmails.isAdminEmail = isAdminEmail;
|
|
2293
|
+
adminEmails.createAdminChecker = createAdminChecker;
|
|
2294
|
+
function parseAdminEmails(input) {
|
|
2295
|
+
if (!input) {
|
|
2296
|
+
return [];
|
|
2297
|
+
}
|
|
2298
|
+
return input.split(",").map((email) => email.trim().toLowerCase()).filter((email) => email.length > 0 && email.includes("@"));
|
|
2299
|
+
}
|
|
2300
|
+
function isAdminEmail(email, adminEmails2) {
|
|
2301
|
+
if (!email) {
|
|
2302
|
+
return false;
|
|
2303
|
+
}
|
|
2304
|
+
return adminEmails2.includes(email.toLowerCase());
|
|
2305
|
+
}
|
|
2306
|
+
function createAdminChecker(input) {
|
|
2307
|
+
const adminEmails2 = parseAdminEmails(input);
|
|
2308
|
+
return (email) => {
|
|
2309
|
+
return isAdminEmail(email, adminEmails2);
|
|
2310
|
+
};
|
|
2311
|
+
}
|
|
2312
|
+
return adminEmails;
|
|
2313
|
+
}
|
|
2314
|
+
var currency = {};
|
|
2315
|
+
var hasRequiredCurrency;
|
|
2316
|
+
function requireCurrency() {
|
|
2317
|
+
if (hasRequiredCurrency) return currency;
|
|
2318
|
+
hasRequiredCurrency = 1;
|
|
2319
|
+
(function(exports$1) {
|
|
2320
|
+
Object.defineProperty(exports$1, "__esModule", { value: true });
|
|
2321
|
+
exports$1.CLAIM_PERIOD_DAYS = exports$1.USDC_DECIMALS = void 0;
|
|
2322
|
+
exports$1.formatUSDC = formatUSDC;
|
|
2323
|
+
exports$1.parseUSDC = parseUSDC;
|
|
2324
|
+
exports$1.USDC_DECIMALS = 6;
|
|
2325
|
+
exports$1.CLAIM_PERIOD_DAYS = 60;
|
|
2326
|
+
function formatUSDC(amount) {
|
|
2327
|
+
return (amount / Math.pow(10, exports$1.USDC_DECIMALS)).toFixed(2);
|
|
2328
|
+
}
|
|
2329
|
+
function parseUSDC(amount) {
|
|
2330
|
+
return Math.floor(parseFloat(amount) * Math.pow(10, exports$1.USDC_DECIMALS));
|
|
2331
|
+
}
|
|
2332
|
+
})(currency);
|
|
2333
|
+
return currency;
|
|
2334
|
+
}
|
|
2335
|
+
var date = {};
|
|
2336
|
+
var hasRequiredDate;
|
|
2337
|
+
function requireDate() {
|
|
2338
|
+
if (hasRequiredDate) return date;
|
|
2339
|
+
hasRequiredDate = 1;
|
|
2340
|
+
Object.defineProperty(date, "__esModule", { value: true });
|
|
2341
|
+
date.formatEmailDate = formatEmailDate;
|
|
2342
|
+
date.formatTimestamp = formatTimestamp;
|
|
2343
|
+
date.formatRelativeTime = formatRelativeTime;
|
|
2344
|
+
date.parseDate = parseDate;
|
|
2345
|
+
date.isDateInRange = isDateInRange;
|
|
2346
|
+
date.addDays = addDays;
|
|
2347
|
+
date.addHours = addHours;
|
|
2348
|
+
function formatEmailDate(date2) {
|
|
2349
|
+
const dateObj = typeof date2 === "string" ? new Date(date2) : date2;
|
|
2350
|
+
if (isNaN(dateObj.getTime())) {
|
|
2351
|
+
return "Invalid date";
|
|
2352
|
+
}
|
|
2353
|
+
const now = /* @__PURE__ */ new Date();
|
|
2354
|
+
const diffMs = now.getTime() - dateObj.getTime();
|
|
2355
|
+
const diffDays = Math.floor(diffMs / (1e3 * 60 * 60 * 24));
|
|
2356
|
+
if (diffDays === 0) {
|
|
2357
|
+
return dateObj.toLocaleTimeString("en-US", {
|
|
2358
|
+
hour: "numeric",
|
|
2359
|
+
minute: "2-digit",
|
|
2360
|
+
hour12: true
|
|
2361
|
+
});
|
|
2362
|
+
}
|
|
2363
|
+
if (diffDays === 1) {
|
|
2364
|
+
return "Yesterday";
|
|
2365
|
+
}
|
|
2366
|
+
if (diffDays < 7) {
|
|
2367
|
+
return dateObj.toLocaleDateString("en-US", {
|
|
2368
|
+
weekday: "long"
|
|
2369
|
+
});
|
|
2370
|
+
}
|
|
2371
|
+
if (dateObj.getFullYear() === now.getFullYear()) {
|
|
2372
|
+
return dateObj.toLocaleDateString("en-US", {
|
|
2373
|
+
month: "short",
|
|
2374
|
+
day: "numeric"
|
|
2375
|
+
});
|
|
2376
|
+
}
|
|
2377
|
+
return dateObj.toLocaleDateString("en-US", {
|
|
2378
|
+
year: "numeric",
|
|
2379
|
+
month: "short",
|
|
2380
|
+
day: "numeric"
|
|
2381
|
+
});
|
|
2382
|
+
}
|
|
2383
|
+
function formatTimestamp(timestamp) {
|
|
2384
|
+
return new Date(timestamp).toISOString();
|
|
2385
|
+
}
|
|
2386
|
+
function formatRelativeTime(date2) {
|
|
2387
|
+
const dateObj = typeof date2 === "string" || typeof date2 === "number" ? new Date(date2) : date2;
|
|
2388
|
+
if (isNaN(dateObj.getTime())) {
|
|
2389
|
+
return "Invalid date";
|
|
2390
|
+
}
|
|
2391
|
+
const now = /* @__PURE__ */ new Date();
|
|
2392
|
+
const diffMs = now.getTime() - dateObj.getTime();
|
|
2393
|
+
const diffSeconds = Math.floor(diffMs / 1e3);
|
|
2394
|
+
const diffMinutes = Math.floor(diffSeconds / 60);
|
|
2395
|
+
const diffHours = Math.floor(diffMinutes / 60);
|
|
2396
|
+
const diffDays = Math.floor(diffHours / 24);
|
|
2397
|
+
const diffWeeks = Math.floor(diffDays / 7);
|
|
2398
|
+
const diffMonths = Math.floor(diffDays / 30);
|
|
2399
|
+
const diffYears = Math.floor(diffDays / 365);
|
|
2400
|
+
if (diffSeconds < 60) {
|
|
2401
|
+
return "just now";
|
|
2402
|
+
}
|
|
2403
|
+
if (diffMinutes < 60) {
|
|
2404
|
+
return diffMinutes === 1 ? "1 minute ago" : `${diffMinutes} minutes ago`;
|
|
2405
|
+
}
|
|
2406
|
+
if (diffHours < 24) {
|
|
2407
|
+
return diffHours === 1 ? "1 hour ago" : `${diffHours} hours ago`;
|
|
2408
|
+
}
|
|
2409
|
+
if (diffDays < 7) {
|
|
2410
|
+
return diffDays === 1 ? "1 day ago" : `${diffDays} days ago`;
|
|
2411
|
+
}
|
|
2412
|
+
if (diffWeeks < 4) {
|
|
2413
|
+
return diffWeeks === 1 ? "1 week ago" : `${diffWeeks} weeks ago`;
|
|
2414
|
+
}
|
|
2415
|
+
if (diffMonths < 12) {
|
|
2416
|
+
return diffMonths === 1 ? "1 month ago" : `${diffMonths} months ago`;
|
|
2417
|
+
}
|
|
2418
|
+
return diffYears === 1 ? "1 year ago" : `${diffYears} years ago`;
|
|
2419
|
+
}
|
|
2420
|
+
function parseDate(dateString) {
|
|
2421
|
+
try {
|
|
2422
|
+
const date2 = new Date(dateString);
|
|
2423
|
+
if (isNaN(date2.getTime())) {
|
|
2424
|
+
return null;
|
|
2425
|
+
}
|
|
2426
|
+
return date2;
|
|
2427
|
+
} catch {
|
|
2428
|
+
return null;
|
|
2429
|
+
}
|
|
2430
|
+
}
|
|
2431
|
+
function isDateInRange(date2, startDate, endDate) {
|
|
2432
|
+
return date2 >= startDate && date2 <= endDate;
|
|
2433
|
+
}
|
|
2434
|
+
function addDays(date2, days) {
|
|
2435
|
+
const result = new Date(date2);
|
|
2436
|
+
result.setDate(result.getDate() + days);
|
|
2437
|
+
return result;
|
|
2438
|
+
}
|
|
2439
|
+
function addHours(date2, hours) {
|
|
2440
|
+
const result = new Date(date2);
|
|
2441
|
+
result.setHours(result.getHours() + hours);
|
|
2442
|
+
return result;
|
|
2443
|
+
}
|
|
2444
|
+
return date;
|
|
2445
|
+
}
|
|
2446
|
+
var string = {};
|
|
2447
|
+
var hasRequiredString;
|
|
2448
|
+
function requireString() {
|
|
2449
|
+
if (hasRequiredString) return string;
|
|
2450
|
+
hasRequiredString = 1;
|
|
2451
|
+
Object.defineProperty(string, "__esModule", { value: true });
|
|
2452
|
+
string.truncate = truncate;
|
|
2453
|
+
string.capitalize = capitalize;
|
|
2454
|
+
string.toTitleCase = toTitleCase;
|
|
2455
|
+
string.toKebabCase = toKebabCase;
|
|
2456
|
+
string.toCamelCase = toCamelCase;
|
|
2457
|
+
string.toSnakeCase = toSnakeCase;
|
|
2458
|
+
string.normalizeWhitespace = normalizeWhitespace;
|
|
2459
|
+
string.isBlank = isBlank;
|
|
2460
|
+
string.isNotBlank = isNotBlank;
|
|
2461
|
+
string.escapeHtml = escapeHtml;
|
|
2462
|
+
string.stripHtml = stripHtml;
|
|
2463
|
+
string.getInitials = getInitials;
|
|
2464
|
+
string.formatBytes = formatBytes;
|
|
2465
|
+
string.randomString = randomString;
|
|
2466
|
+
string.pluralize = pluralize;
|
|
2467
|
+
string.formatNumber = formatNumber;
|
|
2468
|
+
function truncate(str, maxLength, suffix = "...") {
|
|
2469
|
+
if (!str || str.length <= maxLength) {
|
|
2470
|
+
return str;
|
|
2471
|
+
}
|
|
2472
|
+
return str.slice(0, maxLength - suffix.length) + suffix;
|
|
2473
|
+
}
|
|
2474
|
+
function capitalize(str) {
|
|
2475
|
+
if (!str)
|
|
2476
|
+
return str;
|
|
2477
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
2478
|
+
}
|
|
2479
|
+
function toTitleCase(str) {
|
|
2480
|
+
if (!str)
|
|
2481
|
+
return str;
|
|
2482
|
+
return str.toLowerCase().split(" ").map((word) => capitalize(word)).join(" ");
|
|
2483
|
+
}
|
|
2484
|
+
function toKebabCase(str) {
|
|
2485
|
+
if (!str)
|
|
2486
|
+
return str;
|
|
2487
|
+
return str.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[\s_]+/g, "-").toLowerCase();
|
|
2488
|
+
}
|
|
2489
|
+
function toCamelCase(str) {
|
|
2490
|
+
if (!str)
|
|
2491
|
+
return str;
|
|
2492
|
+
return str.replace(/[-_\s]+(.)?/g, (_, char) => char ? char.toUpperCase() : "").replace(/^./, (char) => char.toLowerCase());
|
|
2493
|
+
}
|
|
2494
|
+
function toSnakeCase(str) {
|
|
2495
|
+
if (!str)
|
|
2496
|
+
return str;
|
|
2497
|
+
return str.replace(/([a-z])([A-Z])/g, "$1_$2").replace(/[\s-]+/g, "_").toLowerCase();
|
|
2498
|
+
}
|
|
2499
|
+
function normalizeWhitespace(str) {
|
|
2500
|
+
if (!str)
|
|
2501
|
+
return str;
|
|
2502
|
+
return str.replace(/\s+/g, " ").trim();
|
|
2503
|
+
}
|
|
2504
|
+
function isBlank(str) {
|
|
2505
|
+
return !str || str.trim().length === 0;
|
|
2506
|
+
}
|
|
2507
|
+
function isNotBlank(str) {
|
|
2508
|
+
return !isBlank(str);
|
|
2509
|
+
}
|
|
2510
|
+
function escapeHtml(str) {
|
|
2511
|
+
if (!str)
|
|
2512
|
+
return str;
|
|
2513
|
+
const htmlEscapes = {
|
|
2514
|
+
"&": "&",
|
|
2515
|
+
"<": "<",
|
|
2516
|
+
">": ">",
|
|
2517
|
+
'"': """,
|
|
2518
|
+
"'": "'"
|
|
2519
|
+
};
|
|
2520
|
+
return str.replace(/[&<>"']/g, (char) => htmlEscapes[char]);
|
|
2521
|
+
}
|
|
2522
|
+
function stripHtml(str) {
|
|
2523
|
+
if (!str)
|
|
2524
|
+
return str;
|
|
2525
|
+
return str.replace(/<[^>]*>/g, "");
|
|
2526
|
+
}
|
|
2527
|
+
function getInitials(name, maxInitials = 2) {
|
|
2528
|
+
if (!name)
|
|
2529
|
+
return "";
|
|
2530
|
+
const words = name.trim().split(/\s+/);
|
|
2531
|
+
const initials = words.slice(0, maxInitials).map((word) => word.charAt(0).toUpperCase()).join("");
|
|
2532
|
+
return initials;
|
|
2533
|
+
}
|
|
2534
|
+
function formatBytes(bytes, decimals = 2) {
|
|
2535
|
+
if (bytes === 0)
|
|
2536
|
+
return "0 Bytes";
|
|
2537
|
+
const k = 1024;
|
|
2538
|
+
const dm = decimals < 0 ? 0 : decimals;
|
|
2539
|
+
const sizes = ["Bytes", "KB", "MB", "GB", "TB", "PB"];
|
|
2540
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
2541
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i];
|
|
2542
|
+
}
|
|
2543
|
+
function randomString(length, charset = "alphanumeric") {
|
|
2544
|
+
let chars;
|
|
2545
|
+
switch (charset) {
|
|
2546
|
+
case "alpha":
|
|
2547
|
+
chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
2548
|
+
break;
|
|
2549
|
+
case "numeric":
|
|
2550
|
+
chars = "0123456789";
|
|
2551
|
+
break;
|
|
2552
|
+
case "alphanumeric":
|
|
2553
|
+
chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
|
2554
|
+
break;
|
|
2555
|
+
case "hex":
|
|
2556
|
+
chars = "0123456789abcdef";
|
|
2557
|
+
break;
|
|
2558
|
+
default:
|
|
2559
|
+
chars = charset;
|
|
2560
|
+
}
|
|
2561
|
+
let result = "";
|
|
2562
|
+
for (let i = 0; i < length; i++) {
|
|
2563
|
+
result += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
2564
|
+
}
|
|
2565
|
+
return result;
|
|
2566
|
+
}
|
|
2567
|
+
function pluralize(count, singular, plural) {
|
|
2568
|
+
if (count === 1) {
|
|
2569
|
+
return singular;
|
|
2570
|
+
}
|
|
2571
|
+
return plural || `${singular}s`;
|
|
2572
|
+
}
|
|
2573
|
+
function formatNumber(num) {
|
|
2574
|
+
return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
2575
|
+
}
|
|
2576
|
+
return string;
|
|
2577
|
+
}
|
|
2578
|
+
var application = {};
|
|
2579
|
+
var hasRequiredApplication;
|
|
2580
|
+
function requireApplication() {
|
|
2581
|
+
if (hasRequiredApplication) return application;
|
|
2582
|
+
hasRequiredApplication = 1;
|
|
2583
|
+
Object.defineProperty(application, "__esModule", { value: true });
|
|
2584
|
+
application.Z_INDEX = application.ANIMATION = application.NETWORK_IDS = application.WALLET_NAMES = application.CONTACT_INFO = application.ROUTES = application.SUCCESS_MESSAGES = application.ERROR_MESSAGES = application.TIME_FORMAT = application.SUBSCRIPTION_TIERS = application.EMAIL_CONFIG = application.STORAGE_KEYS = application.CHAIN_TYPE = application.AUTH_STATUS = application.API_RETRY_DELAY = application.API_RETRY_ATTEMPTS = application.API_TIMEOUT = void 0;
|
|
2585
|
+
const API_TIMEOUT = 3e4;
|
|
2586
|
+
application.API_TIMEOUT = API_TIMEOUT;
|
|
2587
|
+
const API_RETRY_ATTEMPTS = 3;
|
|
2588
|
+
application.API_RETRY_ATTEMPTS = API_RETRY_ATTEMPTS;
|
|
2589
|
+
const API_RETRY_DELAY = 1e3;
|
|
2590
|
+
application.API_RETRY_DELAY = API_RETRY_DELAY;
|
|
2591
|
+
const AUTH_STATUS = {
|
|
2592
|
+
DISCONNECTED: "disconnected",
|
|
2593
|
+
CONNECTED: "connected",
|
|
2594
|
+
VERIFIED: "verified"
|
|
2595
|
+
};
|
|
2596
|
+
application.AUTH_STATUS = AUTH_STATUS;
|
|
2597
|
+
const CHAIN_TYPE = {
|
|
2598
|
+
EVM: "evm",
|
|
2599
|
+
SOLANA: "solana",
|
|
2600
|
+
UNKNOWN: "unknown"
|
|
2601
|
+
};
|
|
2602
|
+
application.CHAIN_TYPE = CHAIN_TYPE;
|
|
2603
|
+
const STORAGE_KEYS = {
|
|
2604
|
+
AUTH_TOKEN: "authToken",
|
|
2605
|
+
USER_DATA: "userData",
|
|
2606
|
+
THEME: "theme",
|
|
2607
|
+
EMAIL_CACHE: "emailCache",
|
|
2608
|
+
WALLET_ADDRESS: "walletAddress",
|
|
2609
|
+
CHAIN_TYPE: "chainType"
|
|
2610
|
+
};
|
|
2611
|
+
application.STORAGE_KEYS = STORAGE_KEYS;
|
|
2612
|
+
const EMAIL_CONFIG = {
|
|
2613
|
+
MAX_ATTACHMENT_SIZE: 25 * 1024 * 1024,
|
|
2614
|
+
// 25MB
|
|
2615
|
+
MAX_RECIPIENTS: 100,
|
|
2616
|
+
ITEMS_PER_PAGE: 50,
|
|
2617
|
+
REFRESH_INTERVAL: 6e4,
|
|
2618
|
+
// 1 minute
|
|
2619
|
+
NOTIFICATION_COOLDOWN: 3e5
|
|
2620
|
+
// 5 minutes
|
|
2621
|
+
};
|
|
2622
|
+
application.EMAIL_CONFIG = EMAIL_CONFIG;
|
|
2623
|
+
const SUBSCRIPTION_TIERS = {
|
|
2624
|
+
FREE: "free",
|
|
2625
|
+
BASIC: "basic",
|
|
2626
|
+
PRO: "pro",
|
|
2627
|
+
ENTERPRISE: "enterprise"
|
|
2628
|
+
};
|
|
2629
|
+
application.SUBSCRIPTION_TIERS = SUBSCRIPTION_TIERS;
|
|
2630
|
+
const TIME_FORMAT = {
|
|
2631
|
+
SHORT_DATE: "MMM d",
|
|
2632
|
+
FULL_DATE: "MMM d, yyyy",
|
|
2633
|
+
DATE_TIME: "MMM d, yyyy h:mm a",
|
|
2634
|
+
RELATIVE: "relative"
|
|
2635
|
+
};
|
|
2636
|
+
application.TIME_FORMAT = TIME_FORMAT;
|
|
2637
|
+
const ERROR_MESSAGES = {
|
|
2638
|
+
WALLET_NOT_CONNECTED: "Please connect your wallet first",
|
|
2639
|
+
INVALID_ADDRESS: "Please enter a valid address",
|
|
2640
|
+
NETWORK_ERROR: "Network error. Please try again.",
|
|
2641
|
+
AUTHENTICATION_FAILED: "Authentication failed. Please sign in again.",
|
|
2642
|
+
TRANSACTION_FAILED: "Transaction failed. Please try again.",
|
|
2643
|
+
INSUFFICIENT_FUNDS: "Insufficient funds for this operation",
|
|
2644
|
+
RATE_LIMITED: "Too many requests. Please wait a moment.",
|
|
2645
|
+
SESSION_EXPIRED: "Your session has expired. Please sign in again.",
|
|
2646
|
+
PERMISSION_DENIED: "You do not have permission to perform this action"
|
|
2647
|
+
};
|
|
2648
|
+
application.ERROR_MESSAGES = ERROR_MESSAGES;
|
|
2649
|
+
const SUCCESS_MESSAGES = {
|
|
2650
|
+
EMAIL_SENT: "Email sent successfully",
|
|
2651
|
+
EMAIL_DELETED: "Email deleted successfully",
|
|
2652
|
+
PREFERENCES_SAVED: "Preferences saved successfully",
|
|
2653
|
+
WALLET_CONNECTED: "Wallet connected successfully",
|
|
2654
|
+
AUTHENTICATION_SUCCESS: "Authentication successful",
|
|
2655
|
+
DELEGATION_SUCCESS: "Delegation successful",
|
|
2656
|
+
SUBSCRIPTION_ACTIVATED: "Subscription activated successfully"
|
|
2657
|
+
};
|
|
2658
|
+
application.SUCCESS_MESSAGES = SUCCESS_MESSAGES;
|
|
2659
|
+
const ROUTES = {
|
|
2660
|
+
HOME: "/",
|
|
2661
|
+
ABOUT: "/about",
|
|
2662
|
+
CONNECT: "/connect",
|
|
2663
|
+
MAIL: "/mail",
|
|
2664
|
+
COMPOSE: "/mail/compose",
|
|
2665
|
+
PREFERENCES: "/preferences",
|
|
2666
|
+
TERMS: "/terms",
|
|
2667
|
+
PRIVACY: "/privacy",
|
|
2668
|
+
DOCUMENTATION: "/document",
|
|
2669
|
+
WEB3_USERS: "/web3-users",
|
|
2670
|
+
WEB3_PROJECTS: "/web3-projects"
|
|
2671
|
+
};
|
|
2672
|
+
application.ROUTES = ROUTES;
|
|
2673
|
+
const CONTACT_INFO = {
|
|
2674
|
+
SUPPORT_EMAIL: "support@sudobility.com",
|
|
2675
|
+
CONTACT_EMAIL: "info@sudobility.com"
|
|
2676
|
+
};
|
|
2677
|
+
application.CONTACT_INFO = CONTACT_INFO;
|
|
2678
|
+
const WALLET_NAMES = {
|
|
2679
|
+
METAMASK: "MetaMask",
|
|
2680
|
+
WALLETCONNECT: "WalletConnect",
|
|
2681
|
+
COINBASE: "Coinbase Wallet",
|
|
2682
|
+
PHANTOM: "Phantom",
|
|
2683
|
+
SAFE: "Safe",
|
|
2684
|
+
ARGENT: "Argent",
|
|
2685
|
+
RAINBOW: "Rainbow",
|
|
2686
|
+
TRUST: "Trust Wallet",
|
|
2687
|
+
LEDGER: "Ledger",
|
|
2688
|
+
TREZOR: "Trezor"
|
|
2689
|
+
};
|
|
2690
|
+
application.WALLET_NAMES = WALLET_NAMES;
|
|
2691
|
+
const NETWORK_IDS = {
|
|
2692
|
+
ETHEREUM_MAINNET: 1,
|
|
2693
|
+
POLYGON: 137,
|
|
2694
|
+
ARBITRUM: 42161,
|
|
2695
|
+
OPTIMISM: 10,
|
|
2696
|
+
BASE: 8453,
|
|
2697
|
+
SOLANA_MAINNET: "mainnet-beta",
|
|
2698
|
+
SOLANA_DEVNET: "devnet"
|
|
2699
|
+
};
|
|
2700
|
+
application.NETWORK_IDS = NETWORK_IDS;
|
|
2701
|
+
const ANIMATION = {
|
|
2702
|
+
FAST: 150,
|
|
2703
|
+
NORMAL: 300,
|
|
2704
|
+
SLOW: 500,
|
|
2705
|
+
VERY_SLOW: 1e3
|
|
2706
|
+
};
|
|
2707
|
+
application.ANIMATION = ANIMATION;
|
|
2708
|
+
const Z_INDEX = {
|
|
2709
|
+
DROPDOWN: 10,
|
|
2710
|
+
OVERLAY: 20,
|
|
2711
|
+
MODAL: 30,
|
|
2712
|
+
POPOVER: 40,
|
|
2713
|
+
TOOLTIP: 50,
|
|
2714
|
+
TOAST: 60
|
|
2715
|
+
};
|
|
2716
|
+
application.Z_INDEX = Z_INDEX;
|
|
2717
|
+
return application;
|
|
2718
|
+
}
|
|
2719
|
+
var statusValues = {};
|
|
2720
|
+
var hasRequiredStatusValues;
|
|
2721
|
+
function requireStatusValues() {
|
|
2722
|
+
if (hasRequiredStatusValues) return statusValues;
|
|
2723
|
+
hasRequiredStatusValues = 1;
|
|
2724
|
+
Object.defineProperty(statusValues, "__esModule", { value: true });
|
|
2725
|
+
statusValues.STATUS_VALUES = void 0;
|
|
2726
|
+
statusValues.STATUS_VALUES = {
|
|
2727
|
+
SUCCESS: "success",
|
|
2728
|
+
PENDING: "pending",
|
|
2729
|
+
FAILED: "failed",
|
|
2730
|
+
ERROR: "error"
|
|
2731
|
+
};
|
|
2732
|
+
return statusValues;
|
|
2733
|
+
}
|
|
2734
|
+
var logger = {};
|
|
2735
|
+
var hasRequiredLogger;
|
|
2736
|
+
function requireLogger() {
|
|
2737
|
+
if (hasRequiredLogger) return logger;
|
|
2738
|
+
hasRequiredLogger = 1;
|
|
2739
|
+
Object.defineProperty(logger, "__esModule", { value: true });
|
|
2740
|
+
logger.storageLogger = logger.ensLogger = logger.contractLogger = logger.apiLogger = logger.authLogger = logger.logger = logger.LogLevel = void 0;
|
|
2741
|
+
var LogLevel;
|
|
2742
|
+
(function(LogLevel2) {
|
|
2743
|
+
LogLevel2["ERROR"] = "error";
|
|
2744
|
+
LogLevel2["WARN"] = "warn";
|
|
2745
|
+
LogLevel2["INFO"] = "info";
|
|
2746
|
+
LogLevel2["DEBUG"] = "debug";
|
|
2747
|
+
})(LogLevel || (logger.LogLevel = LogLevel = {}));
|
|
2748
|
+
class Logger {
|
|
2749
|
+
constructor() {
|
|
2750
|
+
this.isDevelopment = process.env.NODE_ENV === "development";
|
|
2751
|
+
}
|
|
2752
|
+
formatTimestamp() {
|
|
2753
|
+
return (/* @__PURE__ */ new Date()).toISOString();
|
|
2754
|
+
}
|
|
2755
|
+
formatMessage(_level, message, context) {
|
|
2756
|
+
const timestamp = this.formatTimestamp();
|
|
2757
|
+
const contextStr = context ? ` [${context}]` : "";
|
|
2758
|
+
return `[${timestamp}]${contextStr} ${message}`;
|
|
2759
|
+
}
|
|
2760
|
+
shouldLog(level) {
|
|
2761
|
+
if (!this.isDevelopment) {
|
|
2762
|
+
return level === LogLevel.ERROR || level === LogLevel.WARN;
|
|
2763
|
+
}
|
|
2764
|
+
return true;
|
|
2765
|
+
}
|
|
2766
|
+
error(message, context, data) {
|
|
2767
|
+
if (this.shouldLog(LogLevel.ERROR)) {
|
|
2768
|
+
console.error(this.formatMessage(LogLevel.ERROR, message, context));
|
|
2769
|
+
if (data) {
|
|
2770
|
+
console.error(data);
|
|
2771
|
+
}
|
|
2772
|
+
}
|
|
2773
|
+
}
|
|
2774
|
+
warn(message, context, data) {
|
|
2775
|
+
if (this.shouldLog(LogLevel.WARN)) {
|
|
2776
|
+
console.warn(this.formatMessage(LogLevel.WARN, message, context));
|
|
2777
|
+
if (data) {
|
|
2778
|
+
console.warn(data);
|
|
2779
|
+
}
|
|
2780
|
+
}
|
|
2781
|
+
}
|
|
2782
|
+
info(message, context, data) {
|
|
2783
|
+
if (this.shouldLog(LogLevel.INFO)) {
|
|
2784
|
+
console.log(this.formatMessage(LogLevel.INFO, message, context));
|
|
2785
|
+
if (data) {
|
|
2786
|
+
console.log(data);
|
|
2787
|
+
}
|
|
2788
|
+
}
|
|
2789
|
+
}
|
|
2790
|
+
debug(message, context, data) {
|
|
2791
|
+
if (this.shouldLog(LogLevel.DEBUG)) {
|
|
2792
|
+
console.log(this.formatMessage(LogLevel.DEBUG, message, context));
|
|
2793
|
+
if (data) {
|
|
2794
|
+
console.log(data);
|
|
2795
|
+
}
|
|
2796
|
+
}
|
|
2797
|
+
}
|
|
2798
|
+
/**
|
|
2799
|
+
* Create a contextual logger that automatically includes context in all calls
|
|
2800
|
+
*/
|
|
2801
|
+
withContext(context) {
|
|
2802
|
+
return {
|
|
2803
|
+
error: (message, data) => this.error(message, context, data),
|
|
2804
|
+
warn: (message, data) => this.warn(message, context, data),
|
|
2805
|
+
info: (message, data) => this.info(message, context, data),
|
|
2806
|
+
debug: (message, data) => this.debug(message, context, data)
|
|
2807
|
+
};
|
|
2808
|
+
}
|
|
2809
|
+
}
|
|
2810
|
+
const logger$1 = new Logger();
|
|
2811
|
+
logger.logger = logger$1;
|
|
2812
|
+
const authLogger = logger$1.withContext("AUTH");
|
|
2813
|
+
logger.authLogger = authLogger;
|
|
2814
|
+
const apiLogger = logger$1.withContext("API");
|
|
2815
|
+
logger.apiLogger = apiLogger;
|
|
2816
|
+
const contractLogger = logger$1.withContext("CONTRACT");
|
|
2817
|
+
logger.contractLogger = contractLogger;
|
|
2818
|
+
const ensLogger = logger$1.withContext("ENS");
|
|
2819
|
+
logger.ensLogger = ensLogger;
|
|
2820
|
+
const storageLogger = logger$1.withContext("STORAGE");
|
|
2821
|
+
logger.storageLogger = storageLogger;
|
|
2822
|
+
return logger;
|
|
2823
|
+
}
|
|
2824
|
+
var urlParams = {};
|
|
2825
|
+
var hasRequiredUrlParams;
|
|
2826
|
+
function requireUrlParams() {
|
|
2827
|
+
if (hasRequiredUrlParams) return urlParams;
|
|
2828
|
+
hasRequiredUrlParams = 1;
|
|
2829
|
+
Object.defineProperty(urlParams, "__esModule", { value: true });
|
|
2830
|
+
urlParams.createURLSearchParams = createURLSearchParams;
|
|
2831
|
+
urlParams.createSearchParams = createSearchParams;
|
|
2832
|
+
urlParams.searchParamsToString = searchParamsToString;
|
|
2833
|
+
urlParams.parseSearchParams = parseSearchParams;
|
|
2834
|
+
class SimpleURLSearchParams {
|
|
2835
|
+
constructor(init) {
|
|
2836
|
+
this.params = /* @__PURE__ */ new Map();
|
|
2837
|
+
if (init) {
|
|
2838
|
+
if (typeof init === "string") {
|
|
2839
|
+
this.parseString(init);
|
|
2840
|
+
} else if (Array.isArray(init)) {
|
|
2841
|
+
for (const [key, value] of init) {
|
|
2842
|
+
this.append(key, value);
|
|
2843
|
+
}
|
|
2844
|
+
} else {
|
|
2845
|
+
for (const [key, value] of Object.entries(init)) {
|
|
2846
|
+
if (value !== void 0) {
|
|
2847
|
+
this.append(key, value);
|
|
2848
|
+
}
|
|
2849
|
+
}
|
|
2850
|
+
}
|
|
2851
|
+
}
|
|
2852
|
+
}
|
|
2853
|
+
parseString(str) {
|
|
2854
|
+
const params = str.startsWith("?") ? str.slice(1) : str;
|
|
2855
|
+
if (!params)
|
|
2856
|
+
return;
|
|
2857
|
+
for (const pair of params.split("&")) {
|
|
2858
|
+
const [key, value = ""] = pair.split("=");
|
|
2859
|
+
if (key) {
|
|
2860
|
+
this.append(decodeURIComponent(key), decodeURIComponent(value));
|
|
2861
|
+
}
|
|
2862
|
+
}
|
|
2863
|
+
}
|
|
2864
|
+
append(name, value) {
|
|
2865
|
+
if (!this.params.has(name)) {
|
|
2866
|
+
this.params.set(name, []);
|
|
2867
|
+
}
|
|
2868
|
+
const existingValues = this.params.get(name);
|
|
2869
|
+
if (existingValues) {
|
|
2870
|
+
existingValues.push(value);
|
|
2871
|
+
}
|
|
2872
|
+
}
|
|
2873
|
+
delete(name) {
|
|
2874
|
+
this.params.delete(name);
|
|
2875
|
+
}
|
|
2876
|
+
get(name) {
|
|
2877
|
+
const values = this.params.get(name);
|
|
2878
|
+
return values && values.length > 0 ? values[0] : null;
|
|
2879
|
+
}
|
|
2880
|
+
getAll(name) {
|
|
2881
|
+
return this.params.get(name) || [];
|
|
2882
|
+
}
|
|
2883
|
+
has(name) {
|
|
2884
|
+
return this.params.has(name);
|
|
2885
|
+
}
|
|
2886
|
+
set(name, value) {
|
|
2887
|
+
this.params.set(name, [value]);
|
|
2888
|
+
}
|
|
2889
|
+
toString() {
|
|
2890
|
+
const pairs = [];
|
|
2891
|
+
this.params.forEach((values, key) => {
|
|
2892
|
+
for (const value of values) {
|
|
2893
|
+
pairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`);
|
|
2894
|
+
}
|
|
2895
|
+
});
|
|
2896
|
+
return pairs.join("&");
|
|
2897
|
+
}
|
|
2898
|
+
forEach(callback) {
|
|
2899
|
+
this.params.forEach((values, key) => {
|
|
2900
|
+
for (const value of values) {
|
|
2901
|
+
callback(value, key);
|
|
2902
|
+
}
|
|
2903
|
+
});
|
|
2904
|
+
}
|
|
2905
|
+
}
|
|
2906
|
+
function createURLSearchParams(init) {
|
|
2907
|
+
if (typeof URLSearchParams !== "undefined") {
|
|
2908
|
+
return new URLSearchParams(init);
|
|
2909
|
+
}
|
|
2910
|
+
return new SimpleURLSearchParams(init);
|
|
2911
|
+
}
|
|
2912
|
+
function createSearchParams(params) {
|
|
2913
|
+
const searchParams = createURLSearchParams(void 0);
|
|
2914
|
+
for (const [key, value] of Object.entries(params)) {
|
|
2915
|
+
if (value !== void 0 && value !== null) {
|
|
2916
|
+
searchParams.append(key, String(value));
|
|
2917
|
+
}
|
|
2918
|
+
}
|
|
2919
|
+
return searchParams;
|
|
2920
|
+
}
|
|
2921
|
+
function searchParamsToString(params) {
|
|
2922
|
+
return params.toString();
|
|
2923
|
+
}
|
|
2924
|
+
function parseSearchParams(queryString) {
|
|
2925
|
+
const params = createURLSearchParams(queryString);
|
|
2926
|
+
const result = {};
|
|
2927
|
+
params.forEach((value, key) => {
|
|
2928
|
+
result[key] = value;
|
|
2929
|
+
});
|
|
2930
|
+
return result;
|
|
2931
|
+
}
|
|
2932
|
+
return urlParams;
|
|
2933
|
+
}
|
|
2934
|
+
var asyncHelpers = {};
|
|
2935
|
+
var hasRequiredAsyncHelpers;
|
|
2936
|
+
function requireAsyncHelpers() {
|
|
2937
|
+
if (hasRequiredAsyncHelpers) return asyncHelpers;
|
|
2938
|
+
hasRequiredAsyncHelpers = 1;
|
|
2939
|
+
Object.defineProperty(asyncHelpers, "__esModule", { value: true });
|
|
2940
|
+
asyncHelpers.debounceAsync = asyncHelpers.clearExpiredCache = asyncHelpers.withCache = asyncHelpers.withTimeout = asyncHelpers.safeParallel = asyncHelpers.withLoadingState = asyncHelpers.safeAsync = void 0;
|
|
2941
|
+
const logger_1 = requireLogger();
|
|
2942
|
+
const safeAsync = async (operation, context) => {
|
|
2943
|
+
try {
|
|
2944
|
+
const data = await operation();
|
|
2945
|
+
return { data, success: true };
|
|
2946
|
+
} catch (error) {
|
|
2947
|
+
const errorObj = error instanceof Error ? error : new Error(String(error));
|
|
2948
|
+
logger_1.logger.error(`Async operation failed: ${errorObj.message}`, context, error);
|
|
2949
|
+
return { error: errorObj, success: false };
|
|
2950
|
+
}
|
|
2951
|
+
};
|
|
2952
|
+
asyncHelpers.safeAsync = safeAsync;
|
|
2953
|
+
const withLoadingState = async (operation, setLoading, setError, context) => {
|
|
2954
|
+
setLoading(true);
|
|
2955
|
+
setError(null);
|
|
2956
|
+
try {
|
|
2957
|
+
const result = await operation();
|
|
2958
|
+
return result;
|
|
2959
|
+
} catch (error) {
|
|
2960
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
2961
|
+
setError(errorMessage);
|
|
2962
|
+
logger_1.logger.error(`Operation failed: ${errorMessage}`, context, error);
|
|
2963
|
+
return void 0;
|
|
2964
|
+
} finally {
|
|
2965
|
+
setLoading(false);
|
|
2966
|
+
}
|
|
2967
|
+
};
|
|
2968
|
+
asyncHelpers.withLoadingState = withLoadingState;
|
|
2969
|
+
const safeParallel = async (operations, context) => {
|
|
2970
|
+
try {
|
|
2971
|
+
const results = await Promise.all(operations.map((op) => op()));
|
|
2972
|
+
return { data: results, success: true };
|
|
2973
|
+
} catch (error) {
|
|
2974
|
+
const errorObj = error instanceof Error ? error : new Error(String(error));
|
|
2975
|
+
logger_1.logger.error(`Parallel operations failed: ${errorObj.message}`, context, error);
|
|
2976
|
+
return { error: errorObj, success: false };
|
|
2977
|
+
}
|
|
2978
|
+
};
|
|
2979
|
+
asyncHelpers.safeParallel = safeParallel;
|
|
2980
|
+
const withTimeout = async (operation, timeoutMs, context) => {
|
|
2981
|
+
const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error(`Operation timed out after ${timeoutMs}ms`)), timeoutMs));
|
|
2982
|
+
try {
|
|
2983
|
+
return await Promise.race([operation(), timeoutPromise]);
|
|
2984
|
+
} catch (error) {
|
|
2985
|
+
logger_1.logger.error(`Timeout operation failed`, context, error);
|
|
2986
|
+
throw error;
|
|
2987
|
+
}
|
|
2988
|
+
};
|
|
2989
|
+
asyncHelpers.withTimeout = withTimeout;
|
|
2990
|
+
const cache = /* @__PURE__ */ new Map();
|
|
2991
|
+
const withCache = async (key, operation, ttlMs = 5 * 60 * 1e3) => {
|
|
2992
|
+
const cached = cache.get(key);
|
|
2993
|
+
const now = Date.now();
|
|
2994
|
+
if (cached && now - cached.timestamp < cached.ttl) {
|
|
2995
|
+
return cached.data;
|
|
2996
|
+
}
|
|
2997
|
+
const result = await operation();
|
|
2998
|
+
cache.set(key, { data: result, timestamp: now, ttl: ttlMs });
|
|
2999
|
+
return result;
|
|
3000
|
+
};
|
|
3001
|
+
asyncHelpers.withCache = withCache;
|
|
3002
|
+
const clearExpiredCache = () => {
|
|
3003
|
+
const now = Date.now();
|
|
3004
|
+
for (const [key, entry] of cache.entries()) {
|
|
3005
|
+
if (now - entry.timestamp >= entry.ttl) {
|
|
3006
|
+
cache.delete(key);
|
|
3007
|
+
}
|
|
3008
|
+
}
|
|
3009
|
+
};
|
|
3010
|
+
asyncHelpers.clearExpiredCache = clearExpiredCache;
|
|
3011
|
+
const debounceMap = /* @__PURE__ */ new Map();
|
|
3012
|
+
const debounceAsync = (fn, delay, key) => {
|
|
3013
|
+
return (...args) => {
|
|
3014
|
+
return new Promise((resolve) => {
|
|
3015
|
+
const existingTimeout = debounceMap.get(key);
|
|
3016
|
+
if (existingTimeout) {
|
|
3017
|
+
clearTimeout(existingTimeout);
|
|
3018
|
+
}
|
|
3019
|
+
const timeout = setTimeout(async () => {
|
|
3020
|
+
debounceMap.delete(key);
|
|
3021
|
+
try {
|
|
3022
|
+
const result = await fn(...args);
|
|
3023
|
+
resolve(result);
|
|
3024
|
+
} catch (error) {
|
|
3025
|
+
logger_1.logger.error(`Debounced operation failed`, key, error);
|
|
3026
|
+
resolve(void 0);
|
|
3027
|
+
}
|
|
3028
|
+
}, delay);
|
|
3029
|
+
debounceMap.set(key, timeout);
|
|
3030
|
+
});
|
|
3031
|
+
};
|
|
3032
|
+
};
|
|
3033
|
+
asyncHelpers.debounceAsync = debounceAsync;
|
|
3034
|
+
return asyncHelpers;
|
|
3035
|
+
}
|
|
3036
|
+
var hasRequiredDist;
|
|
3037
|
+
function requireDist() {
|
|
3038
|
+
if (hasRequiredDist) return dist;
|
|
3039
|
+
hasRequiredDist = 1;
|
|
3040
|
+
(function(exports$1) {
|
|
3041
|
+
/**
|
|
3042
|
+
* @johnqh/types - Common TypeScript types for Web3 email projects
|
|
3043
|
+
*
|
|
3044
|
+
* This package contains all shared TypeScript definitions used across
|
|
3045
|
+
* Web3 email applications including business logic types, blockchain
|
|
3046
|
+
* types, configuration interfaces, infrastructure types, and utility functions.
|
|
3047
|
+
*
|
|
3048
|
+
* @version 1.0.0
|
|
3049
|
+
* @license MIT
|
|
3050
|
+
*/
|
|
3051
|
+
Object.defineProperty(exports$1, "__esModule", { value: true });
|
|
3052
|
+
exports$1.EntityRole = exports$1.EntityType = exports$1.NONE_ENTITLEMENT = exports$1.ALL_PERIODS = exports$1.PERIOD_RANKS = exports$1.RateLimitPeriodType = exports$1.WalletType = exports$1.NetworkError = exports$1.ProcessedEventName = exports$1.ContractType = exports$1.AnalyticsEventBuilder = exports$1.AnalyticsEvent = exports$1.StorageType = exports$1.validateMessage = exports$1.validateDomain = exports$1.validateAmount = exports$1.validateAddress = exports$1.isSolanaRecipient = exports$1.isSolanaAddress = exports$1.isEvmRecipient = exports$1.isEvmAddress = exports$1.TransactionStatus = exports$1.PROTOCOL_CONSTANTS = exports$1.MessageType = exports$1.isWalletVerified = exports$1.isWalletConnected = exports$1.getWalletConnectionState = exports$1.Theme = exports$1.SubscriptionAction = exports$1.SortOrder = exports$1.RequestStatus = exports$1.PlatformType = exports$1.NotificationType = exports$1.MobileView = exports$1.MediumView = exports$1.InfoType = exports$1.FontSize = exports$1.FeatureFlag = exports$1.ErrorType = exports$1.EmailValidationState = exports$1.EmailSortCriteria = exports$1.EmailComposeType = exports$1.EmailAddressType = exports$1.EmailAction = exports$1.Currency = exports$1.ConnectionType = exports$1.ConnectionState = exports$1.ChainType = exports$1.Chain = exports$1.AuthStatus = void 0;
|
|
3053
|
+
exports$1.isAuthStatusConnected = exports$1.isAuthExpired = exports$1.getAuthStatusText = exports$1.generateNonce = exports$1.generateAuthMessage = exports$1.extractNonceFromMessage = exports$1.canAccessProtectedFeatures = exports$1.validateEventArgs = exports$1.normalizeAddress = exports$1.isZeroAddress = exports$1.isTestNet = exports$1.formatBigInt = exports$1.createUserMultiChainId = exports$1.createMultiChainId = exports$1.createDelegationId = exports$1.createChainStatsId = exports$1.parseEmailAddress = exports$1.isValidWalletAddress = exports$1.isValidSignature = exports$1.isSNSName = exports$1.isENSName = exports$1.getChainDisplayName = exports$1.getAddressType = exports$1.formatWalletAddress = exports$1.AddressType = exports$1.validateArray = exports$1.parseJson = exports$1.optional = exports$1.isValidDate = exports$1.isUrl = exports$1.isSuccessResponse = exports$1.isString = exports$1.isObject = exports$1.isNumber = exports$1.isNullish = exports$1.isErrorResponse = exports$1.isEmail = exports$1.isBoolean = exports$1.isArray = exports$1.isApiResponse = exports$1.hasRequiredProperties = exports$1.createValidator = exports$1.createAssertion = exports$1.Web3UsernameValidator = exports$1.hasPermission = exports$1.getPermissionsForRole = exports$1.MEMBER_PERMISSIONS = exports$1.MANAGER_PERMISSIONS = exports$1.OWNER_PERMISSIONS = exports$1.InvitationStatus = void 0;
|
|
3054
|
+
exports$1.LogLevel = exports$1.STATUS_VALUES = exports$1.Z_INDEX = exports$1.ANIMATION = exports$1.NETWORK_IDS = exports$1.WALLET_NAMES = exports$1.CONTACT_INFO = exports$1.ROUTES = exports$1.SUCCESS_MESSAGES = exports$1.ERROR_MESSAGES = exports$1.TIME_FORMAT = exports$1.SUBSCRIPTION_TIERS = exports$1.EMAIL_CONFIG = exports$1.STORAGE_KEYS = exports$1.CHAIN_TYPE = exports$1.AUTH_STATUS = exports$1.API_RETRY_DELAY = exports$1.API_RETRY_ATTEMPTS = exports$1.API_TIMEOUT = exports$1.truncate = exports$1.toTitleCase = exports$1.toSnakeCase = exports$1.toKebabCase = exports$1.toCamelCase = exports$1.stripHtml = exports$1.randomString = exports$1.pluralize = exports$1.normalizeWhitespace = exports$1.isNotBlank = exports$1.isBlank = exports$1.getInitials = exports$1.formatNumber = exports$1.formatBytes = exports$1.escapeHtml = exports$1.capitalize = exports$1.parseDate = exports$1.isDateInRange = exports$1.formatTimestamp = exports$1.formatRelativeTime = exports$1.formatEmailDate = exports$1.addHours = exports$1.addDays = exports$1.parseUSDC = exports$1.formatUSDC = exports$1.USDC_DECIMALS = exports$1.CLAIM_PERIOD_DAYS = exports$1.createAdminChecker = exports$1.isAdminEmail = exports$1.parseAdminEmails = exports$1.isValidNonce = void 0;
|
|
3055
|
+
exports$1.debounceAsync = exports$1.clearExpiredCache = exports$1.withCache = exports$1.withTimeout = exports$1.safeParallel = exports$1.withLoadingState = exports$1.safeAsync = exports$1.parseSearchParams = exports$1.searchParamsToString = exports$1.createSearchParams = exports$1.createURLSearchParams = exports$1.storageLogger = exports$1.ensLogger = exports$1.contractLogger = exports$1.apiLogger = exports$1.authLogger = exports$1.logger = void 0;
|
|
3056
|
+
var enums_1 = requireEnums();
|
|
3057
|
+
Object.defineProperty(exports$1, "AuthStatus", { enumerable: true, get: function() {
|
|
3058
|
+
return enums_1.AuthStatus;
|
|
3059
|
+
} });
|
|
3060
|
+
Object.defineProperty(exports$1, "Chain", { enumerable: true, get: function() {
|
|
3061
|
+
return enums_1.Chain;
|
|
3062
|
+
} });
|
|
3063
|
+
Object.defineProperty(exports$1, "ChainType", { enumerable: true, get: function() {
|
|
3064
|
+
return enums_1.ChainType;
|
|
3065
|
+
} });
|
|
3066
|
+
Object.defineProperty(exports$1, "ConnectionState", { enumerable: true, get: function() {
|
|
3067
|
+
return enums_1.ConnectionState;
|
|
3068
|
+
} });
|
|
3069
|
+
Object.defineProperty(exports$1, "ConnectionType", { enumerable: true, get: function() {
|
|
3070
|
+
return enums_1.ConnectionType;
|
|
3071
|
+
} });
|
|
3072
|
+
Object.defineProperty(exports$1, "Currency", { enumerable: true, get: function() {
|
|
3073
|
+
return enums_1.Currency;
|
|
3074
|
+
} });
|
|
3075
|
+
Object.defineProperty(exports$1, "EmailAction", { enumerable: true, get: function() {
|
|
3076
|
+
return enums_1.EmailAction;
|
|
3077
|
+
} });
|
|
3078
|
+
Object.defineProperty(exports$1, "EmailAddressType", { enumerable: true, get: function() {
|
|
3079
|
+
return enums_1.EmailAddressType;
|
|
3080
|
+
} });
|
|
3081
|
+
Object.defineProperty(exports$1, "EmailComposeType", { enumerable: true, get: function() {
|
|
3082
|
+
return enums_1.EmailComposeType;
|
|
3083
|
+
} });
|
|
3084
|
+
Object.defineProperty(exports$1, "EmailSortCriteria", { enumerable: true, get: function() {
|
|
3085
|
+
return enums_1.EmailSortCriteria;
|
|
3086
|
+
} });
|
|
3087
|
+
Object.defineProperty(exports$1, "EmailValidationState", { enumerable: true, get: function() {
|
|
3088
|
+
return enums_1.EmailValidationState;
|
|
3089
|
+
} });
|
|
3090
|
+
Object.defineProperty(exports$1, "ErrorType", { enumerable: true, get: function() {
|
|
3091
|
+
return enums_1.ErrorType;
|
|
3092
|
+
} });
|
|
3093
|
+
Object.defineProperty(exports$1, "FeatureFlag", { enumerable: true, get: function() {
|
|
3094
|
+
return enums_1.FeatureFlag;
|
|
3095
|
+
} });
|
|
3096
|
+
Object.defineProperty(exports$1, "FontSize", { enumerable: true, get: function() {
|
|
3097
|
+
return enums_1.FontSize;
|
|
3098
|
+
} });
|
|
3099
|
+
Object.defineProperty(exports$1, "InfoType", { enumerable: true, get: function() {
|
|
3100
|
+
return enums_1.InfoType;
|
|
3101
|
+
} });
|
|
3102
|
+
Object.defineProperty(exports$1, "MediumView", { enumerable: true, get: function() {
|
|
3103
|
+
return enums_1.MediumView;
|
|
3104
|
+
} });
|
|
3105
|
+
Object.defineProperty(exports$1, "MobileView", { enumerable: true, get: function() {
|
|
3106
|
+
return enums_1.MobileView;
|
|
3107
|
+
} });
|
|
3108
|
+
Object.defineProperty(exports$1, "NotificationType", { enumerable: true, get: function() {
|
|
3109
|
+
return enums_1.NotificationType;
|
|
3110
|
+
} });
|
|
3111
|
+
Object.defineProperty(exports$1, "PlatformType", { enumerable: true, get: function() {
|
|
3112
|
+
return enums_1.PlatformType;
|
|
3113
|
+
} });
|
|
3114
|
+
Object.defineProperty(exports$1, "RequestStatus", { enumerable: true, get: function() {
|
|
3115
|
+
return enums_1.RequestStatus;
|
|
3116
|
+
} });
|
|
3117
|
+
Object.defineProperty(exports$1, "SortOrder", { enumerable: true, get: function() {
|
|
3118
|
+
return enums_1.SortOrder;
|
|
3119
|
+
} });
|
|
3120
|
+
Object.defineProperty(exports$1, "SubscriptionAction", { enumerable: true, get: function() {
|
|
3121
|
+
return enums_1.SubscriptionAction;
|
|
3122
|
+
} });
|
|
3123
|
+
Object.defineProperty(exports$1, "Theme", { enumerable: true, get: function() {
|
|
3124
|
+
return enums_1.Theme;
|
|
3125
|
+
} });
|
|
3126
|
+
var wallet_status_1 = requireWalletStatus();
|
|
3127
|
+
Object.defineProperty(exports$1, "getWalletConnectionState", { enumerable: true, get: function() {
|
|
3128
|
+
return wallet_status_1.getWalletConnectionState;
|
|
3129
|
+
} });
|
|
3130
|
+
Object.defineProperty(exports$1, "isWalletConnected", { enumerable: true, get: function() {
|
|
3131
|
+
return wallet_status_1.isWalletConnected;
|
|
3132
|
+
} });
|
|
3133
|
+
Object.defineProperty(exports$1, "isWalletVerified", { enumerable: true, get: function() {
|
|
3134
|
+
return wallet_status_1.isWalletVerified;
|
|
3135
|
+
} });
|
|
3136
|
+
var common_1 = requireCommon();
|
|
3137
|
+
Object.defineProperty(exports$1, "MessageType", { enumerable: true, get: function() {
|
|
3138
|
+
return common_1.MessageType;
|
|
3139
|
+
} });
|
|
3140
|
+
Object.defineProperty(exports$1, "PROTOCOL_CONSTANTS", { enumerable: true, get: function() {
|
|
3141
|
+
return common_1.PROTOCOL_CONSTANTS;
|
|
3142
|
+
} });
|
|
3143
|
+
Object.defineProperty(exports$1, "TransactionStatus", { enumerable: true, get: function() {
|
|
3144
|
+
return common_1.TransactionStatus;
|
|
3145
|
+
} });
|
|
3146
|
+
Object.defineProperty(exports$1, "isEvmAddress", { enumerable: true, get: function() {
|
|
3147
|
+
return common_1.isEvmAddress;
|
|
3148
|
+
} });
|
|
3149
|
+
Object.defineProperty(exports$1, "isEvmRecipient", { enumerable: true, get: function() {
|
|
3150
|
+
return common_1.isEvmRecipient;
|
|
3151
|
+
} });
|
|
3152
|
+
Object.defineProperty(exports$1, "isSolanaAddress", { enumerable: true, get: function() {
|
|
3153
|
+
return common_1.isSolanaAddress;
|
|
3154
|
+
} });
|
|
3155
|
+
Object.defineProperty(exports$1, "isSolanaRecipient", { enumerable: true, get: function() {
|
|
3156
|
+
return common_1.isSolanaRecipient;
|
|
3157
|
+
} });
|
|
3158
|
+
var validation_1 = requireValidation();
|
|
3159
|
+
Object.defineProperty(exports$1, "validateAddress", { enumerable: true, get: function() {
|
|
3160
|
+
return validation_1.validateAddress;
|
|
3161
|
+
} });
|
|
3162
|
+
Object.defineProperty(exports$1, "validateAmount", { enumerable: true, get: function() {
|
|
3163
|
+
return validation_1.validateAmount;
|
|
3164
|
+
} });
|
|
3165
|
+
Object.defineProperty(exports$1, "validateDomain", { enumerable: true, get: function() {
|
|
3166
|
+
return validation_1.validateDomain;
|
|
3167
|
+
} });
|
|
3168
|
+
Object.defineProperty(exports$1, "validateMessage", { enumerable: true, get: function() {
|
|
3169
|
+
return validation_1.validateMessage;
|
|
3170
|
+
} });
|
|
3171
|
+
var environment_1 = requireEnvironment();
|
|
3172
|
+
Object.defineProperty(exports$1, "StorageType", { enumerable: true, get: function() {
|
|
3173
|
+
return environment_1.StorageType;
|
|
3174
|
+
} });
|
|
3175
|
+
var analytics_1 = requireAnalytics();
|
|
3176
|
+
Object.defineProperty(exports$1, "AnalyticsEvent", { enumerable: true, get: function() {
|
|
3177
|
+
return analytics_1.AnalyticsEvent;
|
|
3178
|
+
} });
|
|
3179
|
+
Object.defineProperty(exports$1, "AnalyticsEventBuilder", { enumerable: true, get: function() {
|
|
3180
|
+
return analytics_1.AnalyticsEventBuilder;
|
|
3181
|
+
} });
|
|
3182
|
+
var api_1 = requireApi();
|
|
3183
|
+
Object.defineProperty(exports$1, "ContractType", { enumerable: true, get: function() {
|
|
3184
|
+
return api_1.ContractType;
|
|
3185
|
+
} });
|
|
3186
|
+
Object.defineProperty(exports$1, "ProcessedEventName", { enumerable: true, get: function() {
|
|
3187
|
+
return api_1.ProcessedEventName;
|
|
3188
|
+
} });
|
|
3189
|
+
var network_1 = requireNetwork();
|
|
3190
|
+
Object.defineProperty(exports$1, "NetworkError", { enumerable: true, get: function() {
|
|
3191
|
+
return network_1.NetworkError;
|
|
3192
|
+
} });
|
|
3193
|
+
var wallet_1 = requireWallet();
|
|
3194
|
+
Object.defineProperty(exports$1, "WalletType", { enumerable: true, get: function() {
|
|
3195
|
+
return wallet_1.WalletType;
|
|
3196
|
+
} });
|
|
3197
|
+
var rate_limits_1 = requireRateLimits();
|
|
3198
|
+
Object.defineProperty(exports$1, "RateLimitPeriodType", { enumerable: true, get: function() {
|
|
3199
|
+
return rate_limits_1.RateLimitPeriodType;
|
|
3200
|
+
} });
|
|
3201
|
+
var period_1 = requirePeriod();
|
|
3202
|
+
Object.defineProperty(exports$1, "PERIOD_RANKS", { enumerable: true, get: function() {
|
|
3203
|
+
return period_1.PERIOD_RANKS;
|
|
3204
|
+
} });
|
|
3205
|
+
Object.defineProperty(exports$1, "ALL_PERIODS", { enumerable: true, get: function() {
|
|
3206
|
+
return period_1.ALL_PERIODS;
|
|
3207
|
+
} });
|
|
3208
|
+
var entitlements_1 = requireEntitlements();
|
|
3209
|
+
Object.defineProperty(exports$1, "NONE_ENTITLEMENT", { enumerable: true, get: function() {
|
|
3210
|
+
return entitlements_1.NONE_ENTITLEMENT;
|
|
3211
|
+
} });
|
|
3212
|
+
var entity_1 = requireEntity();
|
|
3213
|
+
Object.defineProperty(exports$1, "EntityType", { enumerable: true, get: function() {
|
|
3214
|
+
return entity_1.EntityType;
|
|
3215
|
+
} });
|
|
3216
|
+
Object.defineProperty(exports$1, "EntityRole", { enumerable: true, get: function() {
|
|
3217
|
+
return entity_1.EntityRole;
|
|
3218
|
+
} });
|
|
3219
|
+
Object.defineProperty(exports$1, "InvitationStatus", { enumerable: true, get: function() {
|
|
3220
|
+
return entity_1.InvitationStatus;
|
|
3221
|
+
} });
|
|
3222
|
+
var permissions_1 = requirePermissions();
|
|
3223
|
+
Object.defineProperty(exports$1, "OWNER_PERMISSIONS", { enumerable: true, get: function() {
|
|
3224
|
+
return permissions_1.OWNER_PERMISSIONS;
|
|
3225
|
+
} });
|
|
3226
|
+
Object.defineProperty(exports$1, "MANAGER_PERMISSIONS", { enumerable: true, get: function() {
|
|
3227
|
+
return permissions_1.MANAGER_PERMISSIONS;
|
|
3228
|
+
} });
|
|
3229
|
+
Object.defineProperty(exports$1, "MEMBER_PERMISSIONS", { enumerable: true, get: function() {
|
|
3230
|
+
return permissions_1.MEMBER_PERMISSIONS;
|
|
3231
|
+
} });
|
|
3232
|
+
Object.defineProperty(exports$1, "getPermissionsForRole", { enumerable: true, get: function() {
|
|
3233
|
+
return permissions_1.getPermissionsForRole;
|
|
3234
|
+
} });
|
|
3235
|
+
Object.defineProperty(exports$1, "hasPermission", { enumerable: true, get: function() {
|
|
3236
|
+
return permissions_1.hasPermission;
|
|
3237
|
+
} });
|
|
3238
|
+
var web3_username_validator_1 = requireWeb3UsernameValidator();
|
|
3239
|
+
Object.defineProperty(exports$1, "Web3UsernameValidator", { enumerable: true, get: function() {
|
|
3240
|
+
return web3_username_validator_1.Web3UsernameValidator;
|
|
3241
|
+
} });
|
|
3242
|
+
var type_validation_1 = requireTypeValidation();
|
|
3243
|
+
Object.defineProperty(exports$1, "createAssertion", { enumerable: true, get: function() {
|
|
3244
|
+
return type_validation_1.createAssertion;
|
|
3245
|
+
} });
|
|
3246
|
+
Object.defineProperty(exports$1, "createValidator", { enumerable: true, get: function() {
|
|
3247
|
+
return type_validation_1.createValidator;
|
|
3248
|
+
} });
|
|
3249
|
+
Object.defineProperty(exports$1, "hasRequiredProperties", { enumerable: true, get: function() {
|
|
3250
|
+
return type_validation_1.hasRequiredProperties;
|
|
3251
|
+
} });
|
|
3252
|
+
Object.defineProperty(exports$1, "isApiResponse", { enumerable: true, get: function() {
|
|
3253
|
+
return type_validation_1.isApiResponse;
|
|
3254
|
+
} });
|
|
3255
|
+
Object.defineProperty(exports$1, "isArray", { enumerable: true, get: function() {
|
|
3256
|
+
return type_validation_1.isArray;
|
|
3257
|
+
} });
|
|
3258
|
+
Object.defineProperty(exports$1, "isBoolean", { enumerable: true, get: function() {
|
|
3259
|
+
return type_validation_1.isBoolean;
|
|
3260
|
+
} });
|
|
3261
|
+
Object.defineProperty(exports$1, "isEmail", { enumerable: true, get: function() {
|
|
3262
|
+
return type_validation_1.isEmail;
|
|
3263
|
+
} });
|
|
3264
|
+
Object.defineProperty(exports$1, "isErrorResponse", { enumerable: true, get: function() {
|
|
3265
|
+
return type_validation_1.isErrorResponse;
|
|
3266
|
+
} });
|
|
3267
|
+
Object.defineProperty(exports$1, "isNullish", { enumerable: true, get: function() {
|
|
3268
|
+
return type_validation_1.isNullish;
|
|
3269
|
+
} });
|
|
3270
|
+
Object.defineProperty(exports$1, "isNumber", { enumerable: true, get: function() {
|
|
3271
|
+
return type_validation_1.isNumber;
|
|
3272
|
+
} });
|
|
3273
|
+
Object.defineProperty(exports$1, "isObject", { enumerable: true, get: function() {
|
|
3274
|
+
return type_validation_1.isObject;
|
|
3275
|
+
} });
|
|
3276
|
+
Object.defineProperty(exports$1, "isString", { enumerable: true, get: function() {
|
|
3277
|
+
return type_validation_1.isString;
|
|
3278
|
+
} });
|
|
3279
|
+
Object.defineProperty(exports$1, "isSuccessResponse", { enumerable: true, get: function() {
|
|
3280
|
+
return type_validation_1.isSuccessResponse;
|
|
3281
|
+
} });
|
|
3282
|
+
Object.defineProperty(exports$1, "isUrl", { enumerable: true, get: function() {
|
|
3283
|
+
return type_validation_1.isUrl;
|
|
3284
|
+
} });
|
|
3285
|
+
Object.defineProperty(exports$1, "isValidDate", { enumerable: true, get: function() {
|
|
3286
|
+
return type_validation_1.isValidDate;
|
|
3287
|
+
} });
|
|
3288
|
+
Object.defineProperty(exports$1, "optional", { enumerable: true, get: function() {
|
|
3289
|
+
return type_validation_1.optional;
|
|
3290
|
+
} });
|
|
3291
|
+
Object.defineProperty(exports$1, "parseJson", { enumerable: true, get: function() {
|
|
3292
|
+
return type_validation_1.parseJson;
|
|
3293
|
+
} });
|
|
3294
|
+
Object.defineProperty(exports$1, "validateArray", { enumerable: true, get: function() {
|
|
3295
|
+
return type_validation_1.validateArray;
|
|
3296
|
+
} });
|
|
3297
|
+
var address_1 = requireAddress();
|
|
3298
|
+
Object.defineProperty(exports$1, "AddressType", { enumerable: true, get: function() {
|
|
3299
|
+
return address_1.AddressType;
|
|
3300
|
+
} });
|
|
3301
|
+
Object.defineProperty(exports$1, "formatWalletAddress", { enumerable: true, get: function() {
|
|
3302
|
+
return address_1.formatWalletAddress;
|
|
3303
|
+
} });
|
|
3304
|
+
Object.defineProperty(exports$1, "getAddressType", { enumerable: true, get: function() {
|
|
3305
|
+
return address_1.getAddressType;
|
|
3306
|
+
} });
|
|
3307
|
+
Object.defineProperty(exports$1, "getChainDisplayName", { enumerable: true, get: function() {
|
|
3308
|
+
return address_1.getChainDisplayName;
|
|
3309
|
+
} });
|
|
3310
|
+
Object.defineProperty(exports$1, "isENSName", { enumerable: true, get: function() {
|
|
3311
|
+
return address_1.isENSName;
|
|
3312
|
+
} });
|
|
3313
|
+
Object.defineProperty(exports$1, "isSNSName", { enumerable: true, get: function() {
|
|
3314
|
+
return address_1.isSNSName;
|
|
3315
|
+
} });
|
|
3316
|
+
Object.defineProperty(exports$1, "isValidSignature", { enumerable: true, get: function() {
|
|
3317
|
+
return address_1.isValidSignature;
|
|
3318
|
+
} });
|
|
3319
|
+
Object.defineProperty(exports$1, "isValidWalletAddress", { enumerable: true, get: function() {
|
|
3320
|
+
return address_1.isValidWalletAddress;
|
|
3321
|
+
} });
|
|
3322
|
+
Object.defineProperty(exports$1, "parseEmailAddress", { enumerable: true, get: function() {
|
|
3323
|
+
return address_1.parseEmailAddress;
|
|
3324
|
+
} });
|
|
3325
|
+
var event_helpers_1 = requireEventHelpers();
|
|
3326
|
+
Object.defineProperty(exports$1, "createChainStatsId", { enumerable: true, get: function() {
|
|
3327
|
+
return event_helpers_1.createChainStatsId;
|
|
3328
|
+
} });
|
|
3329
|
+
Object.defineProperty(exports$1, "createDelegationId", { enumerable: true, get: function() {
|
|
3330
|
+
return event_helpers_1.createDelegationId;
|
|
3331
|
+
} });
|
|
3332
|
+
Object.defineProperty(exports$1, "createMultiChainId", { enumerable: true, get: function() {
|
|
3333
|
+
return event_helpers_1.createMultiChainId;
|
|
3334
|
+
} });
|
|
3335
|
+
Object.defineProperty(exports$1, "createUserMultiChainId", { enumerable: true, get: function() {
|
|
3336
|
+
return event_helpers_1.createUserMultiChainId;
|
|
3337
|
+
} });
|
|
3338
|
+
Object.defineProperty(exports$1, "formatBigInt", { enumerable: true, get: function() {
|
|
3339
|
+
return event_helpers_1.formatBigInt;
|
|
3340
|
+
} });
|
|
3341
|
+
Object.defineProperty(exports$1, "isTestNet", { enumerable: true, get: function() {
|
|
3342
|
+
return event_helpers_1.isTestNet;
|
|
3343
|
+
} });
|
|
3344
|
+
Object.defineProperty(exports$1, "isZeroAddress", { enumerable: true, get: function() {
|
|
3345
|
+
return event_helpers_1.isZeroAddress;
|
|
3346
|
+
} });
|
|
3347
|
+
Object.defineProperty(exports$1, "normalizeAddress", { enumerable: true, get: function() {
|
|
3348
|
+
return event_helpers_1.normalizeAddress;
|
|
3349
|
+
} });
|
|
3350
|
+
Object.defineProperty(exports$1, "validateEventArgs", { enumerable: true, get: function() {
|
|
3351
|
+
return event_helpers_1.validateEventArgs;
|
|
3352
|
+
} });
|
|
3353
|
+
var auth_1 = requireAuth();
|
|
3354
|
+
Object.defineProperty(exports$1, "canAccessProtectedFeatures", { enumerable: true, get: function() {
|
|
3355
|
+
return auth_1.canAccessProtectedFeatures;
|
|
3356
|
+
} });
|
|
3357
|
+
Object.defineProperty(exports$1, "extractNonceFromMessage", { enumerable: true, get: function() {
|
|
3358
|
+
return auth_1.extractNonceFromMessage;
|
|
3359
|
+
} });
|
|
3360
|
+
Object.defineProperty(exports$1, "generateAuthMessage", { enumerable: true, get: function() {
|
|
3361
|
+
return auth_1.generateAuthMessage;
|
|
3362
|
+
} });
|
|
3363
|
+
Object.defineProperty(exports$1, "generateNonce", { enumerable: true, get: function() {
|
|
3364
|
+
return auth_1.generateNonce;
|
|
3365
|
+
} });
|
|
3366
|
+
Object.defineProperty(exports$1, "getAuthStatusText", { enumerable: true, get: function() {
|
|
3367
|
+
return auth_1.getAuthStatusText;
|
|
3368
|
+
} });
|
|
3369
|
+
Object.defineProperty(exports$1, "isAuthExpired", { enumerable: true, get: function() {
|
|
3370
|
+
return auth_1.isAuthExpired;
|
|
3371
|
+
} });
|
|
3372
|
+
Object.defineProperty(exports$1, "isAuthStatusConnected", { enumerable: true, get: function() {
|
|
3373
|
+
return auth_1.isAuthStatusConnected;
|
|
3374
|
+
} });
|
|
3375
|
+
Object.defineProperty(exports$1, "isValidNonce", { enumerable: true, get: function() {
|
|
3376
|
+
return auth_1.isValidNonce;
|
|
3377
|
+
} });
|
|
3378
|
+
var admin_emails_1 = requireAdminEmails();
|
|
3379
|
+
Object.defineProperty(exports$1, "parseAdminEmails", { enumerable: true, get: function() {
|
|
3380
|
+
return admin_emails_1.parseAdminEmails;
|
|
3381
|
+
} });
|
|
3382
|
+
Object.defineProperty(exports$1, "isAdminEmail", { enumerable: true, get: function() {
|
|
3383
|
+
return admin_emails_1.isAdminEmail;
|
|
3384
|
+
} });
|
|
3385
|
+
Object.defineProperty(exports$1, "createAdminChecker", { enumerable: true, get: function() {
|
|
3386
|
+
return admin_emails_1.createAdminChecker;
|
|
3387
|
+
} });
|
|
3388
|
+
var currency_1 = requireCurrency();
|
|
3389
|
+
Object.defineProperty(exports$1, "CLAIM_PERIOD_DAYS", { enumerable: true, get: function() {
|
|
3390
|
+
return currency_1.CLAIM_PERIOD_DAYS;
|
|
3391
|
+
} });
|
|
3392
|
+
Object.defineProperty(exports$1, "USDC_DECIMALS", { enumerable: true, get: function() {
|
|
3393
|
+
return currency_1.USDC_DECIMALS;
|
|
3394
|
+
} });
|
|
3395
|
+
Object.defineProperty(exports$1, "formatUSDC", { enumerable: true, get: function() {
|
|
3396
|
+
return currency_1.formatUSDC;
|
|
3397
|
+
} });
|
|
3398
|
+
Object.defineProperty(exports$1, "parseUSDC", { enumerable: true, get: function() {
|
|
3399
|
+
return currency_1.parseUSDC;
|
|
3400
|
+
} });
|
|
3401
|
+
var date_1 = requireDate();
|
|
3402
|
+
Object.defineProperty(exports$1, "addDays", { enumerable: true, get: function() {
|
|
3403
|
+
return date_1.addDays;
|
|
3404
|
+
} });
|
|
3405
|
+
Object.defineProperty(exports$1, "addHours", { enumerable: true, get: function() {
|
|
3406
|
+
return date_1.addHours;
|
|
3407
|
+
} });
|
|
3408
|
+
Object.defineProperty(exports$1, "formatEmailDate", { enumerable: true, get: function() {
|
|
3409
|
+
return date_1.formatEmailDate;
|
|
3410
|
+
} });
|
|
3411
|
+
Object.defineProperty(exports$1, "formatRelativeTime", { enumerable: true, get: function() {
|
|
3412
|
+
return date_1.formatRelativeTime;
|
|
3413
|
+
} });
|
|
3414
|
+
Object.defineProperty(exports$1, "formatTimestamp", { enumerable: true, get: function() {
|
|
3415
|
+
return date_1.formatTimestamp;
|
|
3416
|
+
} });
|
|
3417
|
+
Object.defineProperty(exports$1, "isDateInRange", { enumerable: true, get: function() {
|
|
3418
|
+
return date_1.isDateInRange;
|
|
3419
|
+
} });
|
|
3420
|
+
Object.defineProperty(exports$1, "parseDate", { enumerable: true, get: function() {
|
|
3421
|
+
return date_1.parseDate;
|
|
3422
|
+
} });
|
|
3423
|
+
var string_1 = requireString();
|
|
3424
|
+
Object.defineProperty(exports$1, "capitalize", { enumerable: true, get: function() {
|
|
3425
|
+
return string_1.capitalize;
|
|
3426
|
+
} });
|
|
3427
|
+
Object.defineProperty(exports$1, "escapeHtml", { enumerable: true, get: function() {
|
|
3428
|
+
return string_1.escapeHtml;
|
|
3429
|
+
} });
|
|
3430
|
+
Object.defineProperty(exports$1, "formatBytes", { enumerable: true, get: function() {
|
|
3431
|
+
return string_1.formatBytes;
|
|
3432
|
+
} });
|
|
3433
|
+
Object.defineProperty(exports$1, "formatNumber", { enumerable: true, get: function() {
|
|
3434
|
+
return string_1.formatNumber;
|
|
3435
|
+
} });
|
|
3436
|
+
Object.defineProperty(exports$1, "getInitials", { enumerable: true, get: function() {
|
|
3437
|
+
return string_1.getInitials;
|
|
3438
|
+
} });
|
|
3439
|
+
Object.defineProperty(exports$1, "isBlank", { enumerable: true, get: function() {
|
|
3440
|
+
return string_1.isBlank;
|
|
3441
|
+
} });
|
|
3442
|
+
Object.defineProperty(exports$1, "isNotBlank", { enumerable: true, get: function() {
|
|
3443
|
+
return string_1.isNotBlank;
|
|
3444
|
+
} });
|
|
3445
|
+
Object.defineProperty(exports$1, "normalizeWhitespace", { enumerable: true, get: function() {
|
|
3446
|
+
return string_1.normalizeWhitespace;
|
|
3447
|
+
} });
|
|
3448
|
+
Object.defineProperty(exports$1, "pluralize", { enumerable: true, get: function() {
|
|
3449
|
+
return string_1.pluralize;
|
|
3450
|
+
} });
|
|
3451
|
+
Object.defineProperty(exports$1, "randomString", { enumerable: true, get: function() {
|
|
3452
|
+
return string_1.randomString;
|
|
3453
|
+
} });
|
|
3454
|
+
Object.defineProperty(exports$1, "stripHtml", { enumerable: true, get: function() {
|
|
3455
|
+
return string_1.stripHtml;
|
|
3456
|
+
} });
|
|
3457
|
+
Object.defineProperty(exports$1, "toCamelCase", { enumerable: true, get: function() {
|
|
3458
|
+
return string_1.toCamelCase;
|
|
3459
|
+
} });
|
|
3460
|
+
Object.defineProperty(exports$1, "toKebabCase", { enumerable: true, get: function() {
|
|
3461
|
+
return string_1.toKebabCase;
|
|
3462
|
+
} });
|
|
3463
|
+
Object.defineProperty(exports$1, "toSnakeCase", { enumerable: true, get: function() {
|
|
3464
|
+
return string_1.toSnakeCase;
|
|
3465
|
+
} });
|
|
3466
|
+
Object.defineProperty(exports$1, "toTitleCase", { enumerable: true, get: function() {
|
|
3467
|
+
return string_1.toTitleCase;
|
|
3468
|
+
} });
|
|
3469
|
+
Object.defineProperty(exports$1, "truncate", { enumerable: true, get: function() {
|
|
3470
|
+
return string_1.truncate;
|
|
3471
|
+
} });
|
|
3472
|
+
var application_1 = requireApplication();
|
|
3473
|
+
Object.defineProperty(exports$1, "API_TIMEOUT", { enumerable: true, get: function() {
|
|
3474
|
+
return application_1.API_TIMEOUT;
|
|
3475
|
+
} });
|
|
3476
|
+
Object.defineProperty(exports$1, "API_RETRY_ATTEMPTS", { enumerable: true, get: function() {
|
|
3477
|
+
return application_1.API_RETRY_ATTEMPTS;
|
|
3478
|
+
} });
|
|
3479
|
+
Object.defineProperty(exports$1, "API_RETRY_DELAY", { enumerable: true, get: function() {
|
|
3480
|
+
return application_1.API_RETRY_DELAY;
|
|
3481
|
+
} });
|
|
3482
|
+
Object.defineProperty(exports$1, "AUTH_STATUS", { enumerable: true, get: function() {
|
|
3483
|
+
return application_1.AUTH_STATUS;
|
|
3484
|
+
} });
|
|
3485
|
+
Object.defineProperty(exports$1, "CHAIN_TYPE", { enumerable: true, get: function() {
|
|
3486
|
+
return application_1.CHAIN_TYPE;
|
|
3487
|
+
} });
|
|
3488
|
+
Object.defineProperty(exports$1, "STORAGE_KEYS", { enumerable: true, get: function() {
|
|
3489
|
+
return application_1.STORAGE_KEYS;
|
|
3490
|
+
} });
|
|
3491
|
+
Object.defineProperty(exports$1, "EMAIL_CONFIG", { enumerable: true, get: function() {
|
|
3492
|
+
return application_1.EMAIL_CONFIG;
|
|
3493
|
+
} });
|
|
3494
|
+
Object.defineProperty(exports$1, "SUBSCRIPTION_TIERS", { enumerable: true, get: function() {
|
|
3495
|
+
return application_1.SUBSCRIPTION_TIERS;
|
|
3496
|
+
} });
|
|
3497
|
+
Object.defineProperty(exports$1, "TIME_FORMAT", { enumerable: true, get: function() {
|
|
3498
|
+
return application_1.TIME_FORMAT;
|
|
3499
|
+
} });
|
|
3500
|
+
Object.defineProperty(exports$1, "ERROR_MESSAGES", { enumerable: true, get: function() {
|
|
3501
|
+
return application_1.ERROR_MESSAGES;
|
|
3502
|
+
} });
|
|
3503
|
+
Object.defineProperty(exports$1, "SUCCESS_MESSAGES", { enumerable: true, get: function() {
|
|
3504
|
+
return application_1.SUCCESS_MESSAGES;
|
|
3505
|
+
} });
|
|
3506
|
+
Object.defineProperty(exports$1, "ROUTES", { enumerable: true, get: function() {
|
|
3507
|
+
return application_1.ROUTES;
|
|
3508
|
+
} });
|
|
3509
|
+
Object.defineProperty(exports$1, "CONTACT_INFO", { enumerable: true, get: function() {
|
|
3510
|
+
return application_1.CONTACT_INFO;
|
|
3511
|
+
} });
|
|
3512
|
+
Object.defineProperty(exports$1, "WALLET_NAMES", { enumerable: true, get: function() {
|
|
3513
|
+
return application_1.WALLET_NAMES;
|
|
3514
|
+
} });
|
|
3515
|
+
Object.defineProperty(exports$1, "NETWORK_IDS", { enumerable: true, get: function() {
|
|
3516
|
+
return application_1.NETWORK_IDS;
|
|
3517
|
+
} });
|
|
3518
|
+
Object.defineProperty(exports$1, "ANIMATION", { enumerable: true, get: function() {
|
|
3519
|
+
return application_1.ANIMATION;
|
|
3520
|
+
} });
|
|
3521
|
+
Object.defineProperty(exports$1, "Z_INDEX", { enumerable: true, get: function() {
|
|
3522
|
+
return application_1.Z_INDEX;
|
|
3523
|
+
} });
|
|
3524
|
+
var status_values_1 = requireStatusValues();
|
|
3525
|
+
Object.defineProperty(exports$1, "STATUS_VALUES", { enumerable: true, get: function() {
|
|
3526
|
+
return status_values_1.STATUS_VALUES;
|
|
3527
|
+
} });
|
|
3528
|
+
var logger_1 = requireLogger();
|
|
3529
|
+
Object.defineProperty(exports$1, "LogLevel", { enumerable: true, get: function() {
|
|
3530
|
+
return logger_1.LogLevel;
|
|
3531
|
+
} });
|
|
3532
|
+
Object.defineProperty(exports$1, "logger", { enumerable: true, get: function() {
|
|
3533
|
+
return logger_1.logger;
|
|
3534
|
+
} });
|
|
3535
|
+
Object.defineProperty(exports$1, "authLogger", { enumerable: true, get: function() {
|
|
3536
|
+
return logger_1.authLogger;
|
|
3537
|
+
} });
|
|
3538
|
+
Object.defineProperty(exports$1, "apiLogger", { enumerable: true, get: function() {
|
|
3539
|
+
return logger_1.apiLogger;
|
|
3540
|
+
} });
|
|
3541
|
+
Object.defineProperty(exports$1, "contractLogger", { enumerable: true, get: function() {
|
|
3542
|
+
return logger_1.contractLogger;
|
|
3543
|
+
} });
|
|
3544
|
+
Object.defineProperty(exports$1, "ensLogger", { enumerable: true, get: function() {
|
|
3545
|
+
return logger_1.ensLogger;
|
|
3546
|
+
} });
|
|
3547
|
+
Object.defineProperty(exports$1, "storageLogger", { enumerable: true, get: function() {
|
|
3548
|
+
return logger_1.storageLogger;
|
|
3549
|
+
} });
|
|
3550
|
+
var url_params_1 = requireUrlParams();
|
|
3551
|
+
Object.defineProperty(exports$1, "createURLSearchParams", { enumerable: true, get: function() {
|
|
3552
|
+
return url_params_1.createURLSearchParams;
|
|
3553
|
+
} });
|
|
3554
|
+
Object.defineProperty(exports$1, "createSearchParams", { enumerable: true, get: function() {
|
|
3555
|
+
return url_params_1.createSearchParams;
|
|
3556
|
+
} });
|
|
3557
|
+
Object.defineProperty(exports$1, "searchParamsToString", { enumerable: true, get: function() {
|
|
3558
|
+
return url_params_1.searchParamsToString;
|
|
3559
|
+
} });
|
|
3560
|
+
Object.defineProperty(exports$1, "parseSearchParams", { enumerable: true, get: function() {
|
|
3561
|
+
return url_params_1.parseSearchParams;
|
|
3562
|
+
} });
|
|
3563
|
+
var async_helpers_1 = requireAsyncHelpers();
|
|
3564
|
+
Object.defineProperty(exports$1, "safeAsync", { enumerable: true, get: function() {
|
|
3565
|
+
return async_helpers_1.safeAsync;
|
|
3566
|
+
} });
|
|
3567
|
+
Object.defineProperty(exports$1, "withLoadingState", { enumerable: true, get: function() {
|
|
3568
|
+
return async_helpers_1.withLoadingState;
|
|
3569
|
+
} });
|
|
3570
|
+
Object.defineProperty(exports$1, "safeParallel", { enumerable: true, get: function() {
|
|
3571
|
+
return async_helpers_1.safeParallel;
|
|
3572
|
+
} });
|
|
3573
|
+
Object.defineProperty(exports$1, "withTimeout", { enumerable: true, get: function() {
|
|
3574
|
+
return async_helpers_1.withTimeout;
|
|
3575
|
+
} });
|
|
3576
|
+
Object.defineProperty(exports$1, "withCache", { enumerable: true, get: function() {
|
|
3577
|
+
return async_helpers_1.withCache;
|
|
3578
|
+
} });
|
|
3579
|
+
Object.defineProperty(exports$1, "clearExpiredCache", { enumerable: true, get: function() {
|
|
3580
|
+
return async_helpers_1.clearExpiredCache;
|
|
3581
|
+
} });
|
|
3582
|
+
Object.defineProperty(exports$1, "debounceAsync", { enumerable: true, get: function() {
|
|
3583
|
+
return async_helpers_1.debounceAsync;
|
|
3584
|
+
} });
|
|
3585
|
+
})(dist);
|
|
3586
|
+
return dist;
|
|
3587
|
+
}
|
|
3588
|
+
var distExports = requireDist();
|
|
3589
|
+
const variantConfig = {
|
|
3590
|
+
[distExports.InfoType.INFO]: {
|
|
3591
|
+
icon: "ℹ",
|
|
3592
|
+
container: "bg-blue-50 dark:bg-blue-950 border-blue-200 dark:border-blue-800",
|
|
3593
|
+
iconColor: "text-blue-600 dark:text-blue-400",
|
|
3594
|
+
titleColor: "text-blue-900 dark:text-blue-100",
|
|
3595
|
+
descriptionColor: "text-blue-700 dark:text-blue-300"
|
|
3596
|
+
},
|
|
3597
|
+
[distExports.InfoType.SUCCESS]: {
|
|
3598
|
+
icon: "✓",
|
|
3599
|
+
container: "bg-green-50 dark:bg-green-950 border-green-200 dark:border-green-800",
|
|
3600
|
+
iconColor: "text-green-600 dark:text-green-400",
|
|
3601
|
+
titleColor: "text-green-900 dark:text-green-100",
|
|
3602
|
+
descriptionColor: "text-green-700 dark:text-green-300"
|
|
3603
|
+
},
|
|
3604
|
+
[distExports.InfoType.WARNING]: {
|
|
3605
|
+
icon: "⚠",
|
|
3606
|
+
container: "bg-yellow-50 dark:bg-amber-950 border-yellow-200 dark:border-amber-800",
|
|
3607
|
+
iconColor: "text-yellow-600 dark:text-amber-400",
|
|
3608
|
+
titleColor: "text-yellow-900 dark:text-amber-100",
|
|
3609
|
+
descriptionColor: "text-yellow-700 dark:text-amber-300"
|
|
3610
|
+
},
|
|
3611
|
+
[distExports.InfoType.ERROR]: {
|
|
3612
|
+
icon: "✗",
|
|
3613
|
+
container: "bg-red-50 dark:bg-red-950 border-red-200 dark:border-red-800",
|
|
3614
|
+
iconColor: "text-red-600 dark:text-red-400",
|
|
3615
|
+
titleColor: "text-red-900 dark:text-red-100",
|
|
3616
|
+
descriptionColor: "text-red-700 dark:text-red-300"
|
|
3617
|
+
}
|
|
3618
|
+
};
|
|
3619
|
+
const Banner = ({
|
|
3620
|
+
isVisible,
|
|
3621
|
+
onDismiss,
|
|
3622
|
+
title,
|
|
3623
|
+
description,
|
|
3624
|
+
variant = distExports.InfoType.INFO,
|
|
3625
|
+
duration = 5e3,
|
|
3626
|
+
icon,
|
|
3627
|
+
className,
|
|
3628
|
+
closeAccessibilityLabel = "Dismiss banner"
|
|
3629
|
+
}) => {
|
|
3630
|
+
const [mounted, setMounted] = useState(false);
|
|
3631
|
+
const slideAnim = useRef(new Animated.Value(-100)).current;
|
|
3632
|
+
const opacityAnim = useRef(new Animated.Value(0)).current;
|
|
3633
|
+
const dismissTimeoutRef = useRef(null);
|
|
3634
|
+
const config = variantConfig[variant];
|
|
3635
|
+
const clearDismissTimeout = useCallback(() => {
|
|
3636
|
+
if (dismissTimeoutRef.current) {
|
|
3637
|
+
clearTimeout(dismissTimeoutRef.current);
|
|
3638
|
+
dismissTimeoutRef.current = null;
|
|
3639
|
+
}
|
|
3640
|
+
}, []);
|
|
3641
|
+
const handleDismiss = useCallback(() => {
|
|
3642
|
+
clearDismissTimeout();
|
|
3643
|
+
Animated.parallel([
|
|
3644
|
+
Animated.timing(slideAnim, {
|
|
3645
|
+
toValue: -100,
|
|
3646
|
+
duration: 300,
|
|
3647
|
+
useNativeDriver: true
|
|
3648
|
+
}),
|
|
3649
|
+
Animated.timing(opacityAnim, {
|
|
3650
|
+
toValue: 0,
|
|
3651
|
+
duration: 300,
|
|
3652
|
+
useNativeDriver: true
|
|
3653
|
+
})
|
|
3654
|
+
]).start(() => {
|
|
3655
|
+
setMounted(false);
|
|
3656
|
+
onDismiss();
|
|
3657
|
+
});
|
|
3658
|
+
}, [clearDismissTimeout, slideAnim, opacityAnim, onDismiss]);
|
|
3659
|
+
useEffect(() => {
|
|
3660
|
+
if (isVisible) {
|
|
3661
|
+
setMounted(true);
|
|
3662
|
+
slideAnim.setValue(-100);
|
|
3663
|
+
opacityAnim.setValue(0);
|
|
3664
|
+
Animated.parallel([
|
|
3665
|
+
Animated.spring(slideAnim, {
|
|
3666
|
+
toValue: 0,
|
|
3667
|
+
useNativeDriver: true,
|
|
3668
|
+
friction: 8
|
|
3669
|
+
}),
|
|
3670
|
+
Animated.timing(opacityAnim, {
|
|
3671
|
+
toValue: 1,
|
|
3672
|
+
duration: 300,
|
|
3673
|
+
useNativeDriver: true
|
|
3674
|
+
})
|
|
3675
|
+
]).start(() => {
|
|
3676
|
+
if (duration > 0) {
|
|
3677
|
+
dismissTimeoutRef.current = setTimeout(() => {
|
|
3678
|
+
handleDismiss();
|
|
3679
|
+
}, duration);
|
|
3680
|
+
}
|
|
3681
|
+
});
|
|
3682
|
+
} else if (mounted) {
|
|
3683
|
+
handleDismiss();
|
|
3684
|
+
}
|
|
3685
|
+
return () => clearDismissTimeout();
|
|
3686
|
+
}, [isVisible]);
|
|
3687
|
+
useEffect(() => {
|
|
3688
|
+
return () => clearDismissTimeout();
|
|
3689
|
+
}, [clearDismissTimeout]);
|
|
3690
|
+
if (!mounted) {
|
|
3691
|
+
return null;
|
|
3692
|
+
}
|
|
3693
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3694
|
+
Animated.View,
|
|
3695
|
+
{
|
|
3696
|
+
style: {
|
|
3697
|
+
transform: [{ translateY: slideAnim }],
|
|
3698
|
+
opacity: opacityAnim
|
|
3699
|
+
},
|
|
3700
|
+
className: cn("absolute top-0 left-0 right-0 z-50", className),
|
|
3701
|
+
accessibilityRole: "alert",
|
|
3702
|
+
accessibilityLiveRegion: "polite",
|
|
3703
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
3704
|
+
View,
|
|
3705
|
+
{
|
|
3706
|
+
className: cn(
|
|
3707
|
+
"flex-row items-start gap-3 p-4 border-b",
|
|
3708
|
+
config.container
|
|
3709
|
+
),
|
|
3710
|
+
children: [
|
|
3711
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "flex-shrink-0 mt-0.5", children: icon || /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn("text-lg", config.iconColor), children: config.icon }) }),
|
|
3712
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(View, { className: "flex-1 min-w-0", children: [
|
|
3713
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn("font-semibold", config.titleColor), children: title }),
|
|
3714
|
+
description ? /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn("text-sm mt-1", config.descriptionColor), children: description }) : null
|
|
3715
|
+
] }),
|
|
3716
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3717
|
+
Pressable,
|
|
3718
|
+
{
|
|
3719
|
+
onPress: handleDismiss,
|
|
3720
|
+
className: "flex-shrink-0 p-1 rounded-md",
|
|
3721
|
+
accessibilityRole: "button",
|
|
3722
|
+
accessibilityLabel: closeAccessibilityLabel,
|
|
3723
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn("text-lg", config.iconColor), children: "✗" })
|
|
3724
|
+
}
|
|
3725
|
+
)
|
|
3726
|
+
]
|
|
3727
|
+
}
|
|
3728
|
+
)
|
|
3729
|
+
}
|
|
3730
|
+
);
|
|
3731
|
+
};
|
|
3732
|
+
const useBanner = (options = {}) => {
|
|
3733
|
+
const { defaultDuration = 5e3 } = options;
|
|
3734
|
+
const [isVisible, setIsVisible] = useState(false);
|
|
3735
|
+
const [bannerProps, setBannerProps] = useState(null);
|
|
3736
|
+
const showBanner = useCallback(
|
|
3737
|
+
({
|
|
3738
|
+
title,
|
|
3739
|
+
description,
|
|
3740
|
+
variant = distExports.InfoType.INFO,
|
|
3741
|
+
duration = defaultDuration
|
|
3742
|
+
}) => {
|
|
3743
|
+
setBannerProps({ title, description, variant, duration });
|
|
3744
|
+
setIsVisible(true);
|
|
3745
|
+
},
|
|
3746
|
+
[defaultDuration]
|
|
3747
|
+
);
|
|
3748
|
+
const hideBanner = useCallback(() => {
|
|
3749
|
+
setIsVisible(false);
|
|
3750
|
+
}, []);
|
|
3751
|
+
return {
|
|
3752
|
+
isVisible,
|
|
3753
|
+
bannerProps,
|
|
3754
|
+
showBanner,
|
|
3755
|
+
hideBanner
|
|
3756
|
+
};
|
|
3757
|
+
};
|
|
939
3758
|
const mapSizeToVariantKey = (size) => {
|
|
940
3759
|
if (!size) return "default";
|
|
941
3760
|
const sizeMap2 = {
|
|
@@ -2116,7 +4935,7 @@ const HelperText = ({
|
|
|
2116
4935
|
sm: "w-4 h-4",
|
|
2117
4936
|
base: "w-5 h-5"
|
|
2118
4937
|
};
|
|
2119
|
-
const
|
|
4938
|
+
const variantConfig2 = {
|
|
2120
4939
|
default: {
|
|
2121
4940
|
text: "text-gray-600 dark:text-gray-400",
|
|
2122
4941
|
icon: "ℹ"
|
|
@@ -2134,7 +4953,7 @@ const HelperText = ({
|
|
|
2134
4953
|
icon: "⚠"
|
|
2135
4954
|
}
|
|
2136
4955
|
};
|
|
2137
|
-
const config =
|
|
4956
|
+
const config = variantConfig2[variant];
|
|
2138
4957
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(View, { className: cn("flex flex-row items-start gap-1.5", className), children: [
|
|
2139
4958
|
showIcon && /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn(iconSize[size], config.text, "mt-0.5"), children: config.icon }),
|
|
2140
4959
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn(sizeClasses[size], config.text), ...textProps, children })
|
|
@@ -3276,7 +6095,7 @@ const IconText = ({
|
|
|
3276
6095
|
const FormattedNumber = ({
|
|
3277
6096
|
value,
|
|
3278
6097
|
style = "decimal",
|
|
3279
|
-
currency = "USD",
|
|
6098
|
+
currency: currency2 = "USD",
|
|
3280
6099
|
minimumFractionDigits,
|
|
3281
6100
|
maximumFractionDigits,
|
|
3282
6101
|
locale = "en-US",
|
|
@@ -3292,7 +6111,7 @@ const FormattedNumber = ({
|
|
|
3292
6111
|
maximumFractionDigits
|
|
3293
6112
|
};
|
|
3294
6113
|
if (style === "currency") {
|
|
3295
|
-
options.currency =
|
|
6114
|
+
options.currency = currency2;
|
|
3296
6115
|
}
|
|
3297
6116
|
return new Intl.NumberFormat(locale, options).format(value);
|
|
3298
6117
|
} catch (error) {
|
|
@@ -3348,23 +6167,23 @@ const InfoBox = ({
|
|
|
3348
6167
|
md: "p-4",
|
|
3349
6168
|
lg: "p-6"
|
|
3350
6169
|
};
|
|
3351
|
-
const
|
|
6170
|
+
const variantConfig2 = variantClasses[variant];
|
|
3352
6171
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
3353
6172
|
View,
|
|
3354
6173
|
{
|
|
3355
6174
|
className: cn(
|
|
3356
6175
|
"rounded-lg",
|
|
3357
|
-
|
|
3358
|
-
bordered && `border ${
|
|
6176
|
+
variantConfig2.bg,
|
|
6177
|
+
bordered && `border ${variantConfig2.border}`,
|
|
3359
6178
|
sizeClasses[size],
|
|
3360
6179
|
className
|
|
3361
6180
|
),
|
|
3362
6181
|
children: [
|
|
3363
6182
|
(title || icon) && /* @__PURE__ */ jsxRuntimeExports.jsxs(View, { className: "flex flex-row items-start gap-3 mb-2", children: [
|
|
3364
6183
|
icon,
|
|
3365
|
-
title && /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn("font-semibold",
|
|
6184
|
+
title && /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn("font-semibold", variantConfig2.title), children: title })
|
|
3366
6185
|
] }),
|
|
3367
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: cn(!title && !icon &&
|
|
6186
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: cn(!title && !icon && variantConfig2.text), children })
|
|
3368
6187
|
]
|
|
3369
6188
|
}
|
|
3370
6189
|
);
|
|
@@ -5276,23 +8095,23 @@ const Calendar = ({
|
|
|
5276
8095
|
className
|
|
5277
8096
|
}) => {
|
|
5278
8097
|
const [currentMonth, setCurrentMonth] = useState(value || /* @__PURE__ */ new Date());
|
|
5279
|
-
const getDaysInMonth = (
|
|
5280
|
-
const year =
|
|
5281
|
-
const month =
|
|
8098
|
+
const getDaysInMonth = (date2) => {
|
|
8099
|
+
const year = date2.getFullYear();
|
|
8100
|
+
const month = date2.getMonth();
|
|
5282
8101
|
return new Date(year, month + 1, 0).getDate();
|
|
5283
8102
|
};
|
|
5284
|
-
const getFirstDayOfMonth = (
|
|
5285
|
-
const year =
|
|
5286
|
-
const month =
|
|
8103
|
+
const getFirstDayOfMonth = (date2) => {
|
|
8104
|
+
const year = date2.getFullYear();
|
|
8105
|
+
const month = date2.getMonth();
|
|
5287
8106
|
return new Date(year, month, 1).getDay();
|
|
5288
8107
|
};
|
|
5289
8108
|
const isSameDay = (date1, date2) => {
|
|
5290
8109
|
return date1.getFullYear() === date2.getFullYear() && date1.getMonth() === date2.getMonth() && date1.getDate() === date2.getDate();
|
|
5291
8110
|
};
|
|
5292
|
-
const isDateDisabled = (
|
|
5293
|
-
if (minDate &&
|
|
5294
|
-
if (maxDate &&
|
|
5295
|
-
return disabledDates.some((disabledDate) => isSameDay(
|
|
8111
|
+
const isDateDisabled = (date2) => {
|
|
8112
|
+
if (minDate && date2 < minDate) return true;
|
|
8113
|
+
if (maxDate && date2 > maxDate) return true;
|
|
8114
|
+
return disabledDates.some((disabledDate) => isSameDay(date2, disabledDate));
|
|
5296
8115
|
};
|
|
5297
8116
|
const goToPreviousMonth = () => {
|
|
5298
8117
|
setCurrentMonth(
|
|
@@ -5333,9 +8152,9 @@ const Calendar = ({
|
|
|
5333
8152
|
};
|
|
5334
8153
|
const calendarDays = generateCalendarDays();
|
|
5335
8154
|
const weekDays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
|
|
5336
|
-
const handleDayPress = (
|
|
5337
|
-
if (!
|
|
5338
|
-
onChange(
|
|
8155
|
+
const handleDayPress = (date2) => {
|
|
8156
|
+
if (!date2 || isDateDisabled(date2)) return;
|
|
8157
|
+
onChange(date2);
|
|
5339
8158
|
};
|
|
5340
8159
|
const monthYear = currentMonth.toLocaleDateString("en-US", {
|
|
5341
8160
|
month: "long",
|
|
@@ -5370,8 +8189,8 @@ const Calendar = ({
|
|
|
5370
8189
|
)
|
|
5371
8190
|
] }),
|
|
5372
8191
|
/* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "flex-row mb-2", children: weekDays.map((day) => /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "flex-1 items-center py-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-xs font-medium text-gray-600 dark:text-gray-400", children: day }) }, day)) }),
|
|
5373
|
-
weeks.map((week, weekIndex) => /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "flex-row", children: week.map((
|
|
5374
|
-
if (!
|
|
8192
|
+
weeks.map((week, weekIndex) => /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "flex-row", children: week.map((date2, dayIndex) => {
|
|
8193
|
+
if (!date2) {
|
|
5375
8194
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
5376
8195
|
View,
|
|
5377
8196
|
{
|
|
@@ -5380,14 +8199,14 @@ const Calendar = ({
|
|
|
5380
8199
|
`empty-${dayIndex}`
|
|
5381
8200
|
);
|
|
5382
8201
|
}
|
|
5383
|
-
const isCurrentMonth =
|
|
5384
|
-
const isSelected = value && isSameDay(
|
|
5385
|
-
const isToday = isSameDay(
|
|
5386
|
-
const isDisabled = isDateDisabled(
|
|
8202
|
+
const isCurrentMonth = date2.getMonth() === currentMonth.getMonth();
|
|
8203
|
+
const isSelected = value && isSameDay(date2, value);
|
|
8204
|
+
const isToday = isSameDay(date2, /* @__PURE__ */ new Date());
|
|
8205
|
+
const isDisabled = isDateDisabled(date2);
|
|
5387
8206
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
5388
8207
|
Pressable,
|
|
5389
8208
|
{
|
|
5390
|
-
onPress: () => handleDayPress(
|
|
8209
|
+
onPress: () => handleDayPress(date2),
|
|
5391
8210
|
disabled: isDisabled,
|
|
5392
8211
|
className: cn(
|
|
5393
8212
|
"flex-1 aspect-square items-center justify-center rounded-md m-0.5",
|
|
@@ -5397,7 +8216,7 @@ const Calendar = ({
|
|
|
5397
8216
|
isToday && !isSelected && "border-2 border-blue-600 dark:border-blue-400"
|
|
5398
8217
|
),
|
|
5399
8218
|
accessibilityRole: "button",
|
|
5400
|
-
accessibilityLabel:
|
|
8219
|
+
accessibilityLabel: date2.toLocaleDateString(),
|
|
5401
8220
|
accessibilityState: {
|
|
5402
8221
|
selected: isSelected,
|
|
5403
8222
|
disabled: isDisabled
|
|
@@ -5410,11 +8229,11 @@ const Calendar = ({
|
|
|
5410
8229
|
isCurrentMonth ? "text-gray-900 dark:text-white" : "text-gray-400 dark:text-gray-600",
|
|
5411
8230
|
isSelected && "text-white font-semibold"
|
|
5412
8231
|
),
|
|
5413
|
-
children:
|
|
8232
|
+
children: date2.getDate()
|
|
5414
8233
|
}
|
|
5415
8234
|
)
|
|
5416
8235
|
},
|
|
5417
|
-
`${
|
|
8236
|
+
`${date2.getTime()}-${dayIndex}`
|
|
5418
8237
|
);
|
|
5419
8238
|
}) }, weekIndex))
|
|
5420
8239
|
] });
|
|
@@ -6110,7 +8929,7 @@ const TimePicker = ({
|
|
|
6110
8929
|
const [isOpen, setIsOpen] = useState(false);
|
|
6111
8930
|
const [internalHour, setInternalHour] = useState("12");
|
|
6112
8931
|
const [internalMinute, setInternalMinute] = useState("00");
|
|
6113
|
-
const [
|
|
8932
|
+
const [period2, setPeriod] = useState("AM");
|
|
6114
8933
|
useEffect(() => {
|
|
6115
8934
|
if (value) {
|
|
6116
8935
|
const [hours, minutes] = value.split(":");
|
|
@@ -6204,7 +9023,7 @@ const TimePicker = ({
|
|
|
6204
9023
|
handleTimeChange(
|
|
6205
9024
|
hour,
|
|
6206
9025
|
internalMinute,
|
|
6207
|
-
use12Hour ?
|
|
9026
|
+
use12Hour ? period2 : void 0
|
|
6208
9027
|
);
|
|
6209
9028
|
},
|
|
6210
9029
|
className: cn(
|
|
@@ -6236,7 +9055,7 @@ const TimePicker = ({
|
|
|
6236
9055
|
handleTimeChange(
|
|
6237
9056
|
internalHour,
|
|
6238
9057
|
minute,
|
|
6239
|
-
use12Hour ?
|
|
9058
|
+
use12Hour ? period2 : void 0
|
|
6240
9059
|
);
|
|
6241
9060
|
},
|
|
6242
9061
|
className: cn(
|
|
@@ -6275,14 +9094,14 @@ const TimePicker = ({
|
|
|
6275
9094
|
className: cn(
|
|
6276
9095
|
"px-3 py-2 rounded",
|
|
6277
9096
|
"active:bg-gray-100 dark:active:bg-gray-800",
|
|
6278
|
-
|
|
9097
|
+
period2 === "AM" && "bg-blue-100 dark:bg-blue-900/30"
|
|
6279
9098
|
),
|
|
6280
9099
|
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6281
9100
|
Text$1,
|
|
6282
9101
|
{
|
|
6283
9102
|
className: cn(
|
|
6284
9103
|
"text-sm text-center",
|
|
6285
|
-
|
|
9104
|
+
period2 === "AM" ? "text-blue-700 dark:text-blue-300 font-medium" : "text-gray-900 dark:text-white"
|
|
6286
9105
|
),
|
|
6287
9106
|
children: "AM"
|
|
6288
9107
|
}
|
|
@@ -6303,14 +9122,14 @@ const TimePicker = ({
|
|
|
6303
9122
|
className: cn(
|
|
6304
9123
|
"px-3 py-2 rounded",
|
|
6305
9124
|
"active:bg-gray-100 dark:active:bg-gray-800",
|
|
6306
|
-
|
|
9125
|
+
period2 === "PM" && "bg-blue-100 dark:bg-blue-900/30"
|
|
6307
9126
|
),
|
|
6308
9127
|
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6309
9128
|
Text$1,
|
|
6310
9129
|
{
|
|
6311
9130
|
className: cn(
|
|
6312
9131
|
"text-sm text-center",
|
|
6313
|
-
|
|
9132
|
+
period2 === "PM" ? "text-blue-700 dark:text-blue-300 font-medium" : "text-gray-900 dark:text-white"
|
|
6314
9133
|
),
|
|
6315
9134
|
children: "PM"
|
|
6316
9135
|
}
|
|
@@ -6564,16 +9383,16 @@ const TreeView = ({
|
|
|
6564
9383
|
};
|
|
6565
9384
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: cn("w-full", className), children: data.map((node) => renderNode(node, 0)) });
|
|
6566
9385
|
};
|
|
6567
|
-
const getExplorerUrl = (
|
|
9386
|
+
const getExplorerUrl = (address2, chainId, explorerUrl) => {
|
|
6568
9387
|
if (explorerUrl) {
|
|
6569
|
-
return `${explorerUrl}/address/${
|
|
9388
|
+
return `${explorerUrl}/address/${address2}`;
|
|
6570
9389
|
}
|
|
6571
9390
|
if (!chainId) {
|
|
6572
9391
|
return null;
|
|
6573
9392
|
}
|
|
6574
9393
|
if (chainId < 0) {
|
|
6575
9394
|
const cluster = chainId === -101 ? "" : chainId === -102 ? "?cluster=devnet" : "?cluster=testnet";
|
|
6576
|
-
return `https://explorer.solana.com/address/${
|
|
9395
|
+
return `https://explorer.solana.com/address/${address2}${cluster}`;
|
|
6577
9396
|
}
|
|
6578
9397
|
const explorerMap = {
|
|
6579
9398
|
1: "https://etherscan.io",
|
|
@@ -6592,19 +9411,19 @@ const getExplorerUrl = (address, chainId, explorerUrl) => {
|
|
|
6592
9411
|
if (!baseUrl) {
|
|
6593
9412
|
return null;
|
|
6594
9413
|
}
|
|
6595
|
-
return `${baseUrl}/address/${
|
|
9414
|
+
return `${baseUrl}/address/${address2}`;
|
|
6596
9415
|
};
|
|
6597
|
-
const formatAddress = (
|
|
9416
|
+
const formatAddress = (address2, format) => {
|
|
6598
9417
|
if (format === "full") {
|
|
6599
|
-
return
|
|
9418
|
+
return address2;
|
|
6600
9419
|
}
|
|
6601
9420
|
if (format === "medium") {
|
|
6602
|
-
return `${
|
|
9421
|
+
return `${address2.substring(0, 10)}...${address2.substring(address2.length - 8)}`;
|
|
6603
9422
|
}
|
|
6604
|
-
return `${
|
|
9423
|
+
return `${address2.substring(0, 6)}...${address2.substring(address2.length - 4)}`;
|
|
6605
9424
|
};
|
|
6606
9425
|
const AddressLink = ({
|
|
6607
|
-
address,
|
|
9426
|
+
address: address2,
|
|
6608
9427
|
chainId,
|
|
6609
9428
|
explorerUrl,
|
|
6610
9429
|
label,
|
|
@@ -6615,17 +9434,17 @@ const AddressLink = ({
|
|
|
6615
9434
|
className
|
|
6616
9435
|
}) => {
|
|
6617
9436
|
const [copied, setCopied] = useState(false);
|
|
6618
|
-
const formattedAddress = formatAddress(
|
|
6619
|
-
const explorerLink = getExplorerUrl(
|
|
9437
|
+
const formattedAddress = formatAddress(address2, format);
|
|
9438
|
+
const explorerLink = getExplorerUrl(address2, chainId, explorerUrl);
|
|
6620
9439
|
const handleCopy = useCallback(async () => {
|
|
6621
9440
|
if (!onCopy) return;
|
|
6622
9441
|
try {
|
|
6623
|
-
await onCopy(
|
|
9442
|
+
await onCopy(address2);
|
|
6624
9443
|
setCopied(true);
|
|
6625
9444
|
setTimeout(() => setCopied(false), 2e3);
|
|
6626
9445
|
} catch {
|
|
6627
9446
|
}
|
|
6628
|
-
}, [
|
|
9447
|
+
}, [address2, onCopy]);
|
|
6629
9448
|
const handleOpenExplorer = useCallback(() => {
|
|
6630
9449
|
if (explorerLink) {
|
|
6631
9450
|
Linking.openURL(explorerLink);
|
|
@@ -6779,19 +9598,19 @@ const DateInput = ({
|
|
|
6779
9598
|
lg: "py-3 px-4 text-lg"
|
|
6780
9599
|
};
|
|
6781
9600
|
const dateValue = value instanceof Date ? value : value ? new Date(value) : null;
|
|
6782
|
-
const formatDisplay = (
|
|
6783
|
-
if (!
|
|
6784
|
-
return
|
|
9601
|
+
const formatDisplay = (date2) => {
|
|
9602
|
+
if (!date2) return "";
|
|
9603
|
+
return date2.toLocaleDateString("en-US", {
|
|
6785
9604
|
month: "short",
|
|
6786
9605
|
day: "numeric",
|
|
6787
9606
|
year: "numeric"
|
|
6788
9607
|
});
|
|
6789
9608
|
};
|
|
6790
9609
|
const handleDateChange = useCallback(
|
|
6791
|
-
(
|
|
6792
|
-
const year =
|
|
6793
|
-
const month = String(
|
|
6794
|
-
const day = String(
|
|
9610
|
+
(date2) => {
|
|
9611
|
+
const year = date2.getFullYear();
|
|
9612
|
+
const month = String(date2.getMonth() + 1).padStart(2, "0");
|
|
9613
|
+
const day = String(date2.getDate()).padStart(2, "0");
|
|
6795
9614
|
onChange(`${year}-${month}-${day}`);
|
|
6796
9615
|
setIsOpen(false);
|
|
6797
9616
|
},
|
|
@@ -6877,24 +9696,24 @@ const DateTimePicker = ({
|
|
|
6877
9696
|
}) => {
|
|
6878
9697
|
const [isOpen, setIsOpen] = useState(false);
|
|
6879
9698
|
const [selectedDate, setSelectedDate] = useState(value);
|
|
6880
|
-
const formatDisplay = (
|
|
6881
|
-
const dateStr =
|
|
9699
|
+
const formatDisplay = (date2) => {
|
|
9700
|
+
const dateStr = date2.toLocaleDateString("en-US", {
|
|
6882
9701
|
month: "short",
|
|
6883
9702
|
day: "numeric",
|
|
6884
9703
|
year: "numeric"
|
|
6885
9704
|
});
|
|
6886
|
-
const hours =
|
|
6887
|
-
const minutes =
|
|
9705
|
+
const hours = date2.getHours();
|
|
9706
|
+
const minutes = date2.getMinutes();
|
|
6888
9707
|
if (use12Hour) {
|
|
6889
9708
|
const hour12 = hours === 0 ? 12 : hours > 12 ? hours - 12 : hours;
|
|
6890
|
-
const
|
|
6891
|
-
return `${dateStr}, ${hour12}:${minutes.toString().padStart(2, "0")} ${
|
|
9709
|
+
const period2 = hours >= 12 ? "PM" : "AM";
|
|
9710
|
+
return `${dateStr}, ${hour12}:${minutes.toString().padStart(2, "0")} ${period2}`;
|
|
6892
9711
|
}
|
|
6893
9712
|
return `${dateStr}, ${hours.toString().padStart(2, "0")}:${minutes.toString().padStart(2, "0")}`;
|
|
6894
9713
|
};
|
|
6895
9714
|
const handleDateChange = useCallback(
|
|
6896
|
-
(
|
|
6897
|
-
const newDateTime = new Date(
|
|
9715
|
+
(date2) => {
|
|
9716
|
+
const newDateTime = new Date(date2);
|
|
6898
9717
|
newDateTime.setHours(selectedDate.getHours());
|
|
6899
9718
|
newDateTime.setMinutes(selectedDate.getMinutes());
|
|
6900
9719
|
setSelectedDate(newDateTime);
|
|
@@ -6911,9 +9730,9 @@ const DateTimePicker = ({
|
|
|
6911
9730
|
},
|
|
6912
9731
|
[selectedDate]
|
|
6913
9732
|
);
|
|
6914
|
-
const getTimeString = (
|
|
6915
|
-
const hours =
|
|
6916
|
-
const minutes =
|
|
9733
|
+
const getTimeString = (date2) => {
|
|
9734
|
+
const hours = date2.getHours();
|
|
9735
|
+
const minutes = date2.getMinutes();
|
|
6917
9736
|
return `${hours.toString().padStart(2, "0")}:${minutes.toString().padStart(2, "0")}`;
|
|
6918
9737
|
};
|
|
6919
9738
|
const handleClose = useCallback(() => {
|
|
@@ -9488,7 +12307,7 @@ const StatDisplay = ({
|
|
|
9488
12307
|
center: "items-center",
|
|
9489
12308
|
right: "items-end"
|
|
9490
12309
|
};
|
|
9491
|
-
const
|
|
12310
|
+
const variantConfig2 = variantClasses[variant];
|
|
9492
12311
|
const sizeConfig2 = sizeClasses[size];
|
|
9493
12312
|
if (iconPosition === "left" && icon) {
|
|
9494
12313
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
@@ -9500,25 +12319,25 @@ const StatDisplay = ({
|
|
|
9500
12319
|
className
|
|
9501
12320
|
),
|
|
9502
12321
|
children: [
|
|
9503
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(View, { className:
|
|
12322
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: variantConfig2.value, children: icon }),
|
|
9504
12323
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(View, { children: [
|
|
9505
12324
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
9506
12325
|
Text$1,
|
|
9507
12326
|
{
|
|
9508
|
-
className: cn("font-bold", sizeConfig2.value,
|
|
12327
|
+
className: cn("font-bold", sizeConfig2.value, variantConfig2.value),
|
|
9509
12328
|
children: value
|
|
9510
12329
|
}
|
|
9511
12330
|
),
|
|
9512
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn(sizeConfig2.label,
|
|
12331
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn(sizeConfig2.label, variantConfig2.label), children: label })
|
|
9513
12332
|
] })
|
|
9514
12333
|
]
|
|
9515
12334
|
}
|
|
9516
12335
|
);
|
|
9517
12336
|
}
|
|
9518
12337
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(View, { className: cn(alignClasses[align], className), children: [
|
|
9519
|
-
icon && iconPosition === "top" && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: cn("mb-2",
|
|
9520
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn("font-bold", sizeConfig2.value,
|
|
9521
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn(sizeConfig2.label,
|
|
12338
|
+
icon && iconPosition === "top" && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: cn("mb-2", variantConfig2.value), children: icon }),
|
|
12339
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn("font-bold", sizeConfig2.value, variantConfig2.value), children: value }),
|
|
12340
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn(sizeConfig2.label, variantConfig2.label), children: label })
|
|
9522
12341
|
] });
|
|
9523
12342
|
};
|
|
9524
12343
|
const KeyValuePair = ({
|
|
@@ -10166,6 +12985,7 @@ export {
|
|
|
10166
12985
|
AvatarGroup,
|
|
10167
12986
|
Backdrop,
|
|
10168
12987
|
Badge,
|
|
12988
|
+
Banner,
|
|
10169
12989
|
Box,
|
|
10170
12990
|
Breadcrumb,
|
|
10171
12991
|
BreadcrumbNav,
|
|
@@ -10302,6 +13122,7 @@ export {
|
|
|
10302
13122
|
getButtonVariantClass,
|
|
10303
13123
|
mapSizeToVariantKey,
|
|
10304
13124
|
textVariants2 as textVariants,
|
|
13125
|
+
useBanner,
|
|
10305
13126
|
useButtonState,
|
|
10306
13127
|
useScrollSpy,
|
|
10307
13128
|
useToast,
|