@agg-build/hooks 4.27.0 → 4.28.0
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.d.mts +18 -4
- package/dist/index.d.mts.map +1 -1
- package/dist/index.d.ts +18 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +50 -6
- package/dist/index.mjs +49 -7
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -59,12 +59,51 @@ const parseAuthCallbackCode = (callbackUrl) => {
|
|
|
59
59
|
const parseLinkConfirmToken = (callbackUrl) => {
|
|
60
60
|
return resolveAuthCallbackUrl(callbackUrl)?.searchParams.get("link_confirm_token") ?? null;
|
|
61
61
|
};
|
|
62
|
+
const AUTH_METHOD_IDS = [
|
|
63
|
+
"siwe",
|
|
64
|
+
"siws",
|
|
65
|
+
"google",
|
|
66
|
+
"twitter",
|
|
67
|
+
"apple",
|
|
68
|
+
"email"
|
|
69
|
+
];
|
|
70
|
+
const EXISTING_METHOD_NAMES = {
|
|
71
|
+
email: "an email link",
|
|
72
|
+
google: "Google",
|
|
73
|
+
apple: "Apple"
|
|
74
|
+
};
|
|
75
|
+
var AggIdentityExistsError = class extends Error {
|
|
76
|
+
constructor(message, existingMethod, attemptedMethod) {
|
|
77
|
+
super(message);
|
|
78
|
+
this.existingMethod = existingMethod;
|
|
79
|
+
this.attemptedMethod = attemptedMethod;
|
|
80
|
+
this.code = "identity_exists";
|
|
81
|
+
this.name = "AggIdentityExistsError";
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
const IDENTITY_EXISTS_PARAMS = [
|
|
85
|
+
"error",
|
|
86
|
+
"message",
|
|
87
|
+
"existing_method",
|
|
88
|
+
"attempted_method"
|
|
89
|
+
];
|
|
90
|
+
const parseAuthCallbackIdentityExists = (callbackUrl) => {
|
|
91
|
+
const params = resolveAuthCallbackUrl(callbackUrl)?.searchParams;
|
|
92
|
+
if (params?.get("error") !== "identity_exists") return null;
|
|
93
|
+
const existingMethod = params.get("existing_method");
|
|
94
|
+
if (existingMethod !== "email" && existingMethod !== "google" && existingMethod !== "apple") return null;
|
|
95
|
+
const attemptedMethod = AUTH_METHOD_IDS.find((id) => id === params.get("attempted_method"));
|
|
96
|
+
if (!attemptedMethod) return null;
|
|
97
|
+
const name = EXISTING_METHOD_NAMES[existingMethod];
|
|
98
|
+
return new AggIdentityExistsError(`You've signed in with ${name} before. Please continue with ${name}.`, existingMethod, attemptedMethod);
|
|
99
|
+
};
|
|
62
100
|
const getAuthCallbackCleanupPath = (callbackUrl) => {
|
|
63
101
|
const resolvedUrl = resolveAuthCallbackUrl(callbackUrl);
|
|
64
102
|
if (!resolvedUrl) return null;
|
|
65
103
|
const params = new URLSearchParams(resolvedUrl.search);
|
|
66
104
|
params.delete("code");
|
|
67
105
|
params.delete("link_confirm_token");
|
|
106
|
+
if (params.get("error") === "identity_exists") for (const name of IDENTITY_EXISTS_PARAMS) params.delete(name);
|
|
68
107
|
const search = params.toString();
|
|
69
108
|
return `${resolvedUrl.pathname}${search ? `?${search}` : ""}`;
|
|
70
109
|
};
|
|
@@ -308,6 +347,11 @@ function AggAuthProvider({ children }) {
|
|
|
308
347
|
setIsLoading(true);
|
|
309
348
|
setError(null);
|
|
310
349
|
try {
|
|
350
|
+
const identityError = parseAuthCallbackIdentityExists(callbackUrl);
|
|
351
|
+
if (identityError) {
|
|
352
|
+
if (callbackUrl === void 0) replaceAuthCallbackUrl(getAuthCallbackCleanupPath(callbackUrl));
|
|
353
|
+
throw identityError;
|
|
354
|
+
}
|
|
311
355
|
const exchangedSession = await exchangeAuthCallbackCode(client, callbackUrl);
|
|
312
356
|
if (exchangedSession) {
|
|
313
357
|
const resolvedUser = await refreshCurrentUser(client);
|
|
@@ -2761,9 +2805,9 @@ function useLinkAccount() {
|
|
|
2761
2805
|
//#endregion
|
|
2762
2806
|
//#region src/auth-chooser-events.ts
|
|
2763
2807
|
const AUTH_CHOOSER_OPEN_EVENT = "agg-auth:open-chooser";
|
|
2764
|
-
const requestAggAuthChooserOpen = () => {
|
|
2808
|
+
const requestAggAuthChooserOpen = (detail = {}) => {
|
|
2765
2809
|
if (typeof window === "undefined") return;
|
|
2766
|
-
window.dispatchEvent(new
|
|
2810
|
+
window.dispatchEvent(new CustomEvent(AUTH_CHOOSER_OPEN_EVENT, { detail }));
|
|
2767
2811
|
};
|
|
2768
2812
|
//#endregion
|
|
2769
2813
|
//#region src/use-categories.ts
|
|
@@ -5366,7 +5410,6 @@ function useMarketSearch(options) {
|
|
|
5366
5410
|
status,
|
|
5367
5411
|
limit,
|
|
5368
5412
|
enabled: enableSuggestions && trimmedDebounced.length >= minLength,
|
|
5369
|
-
deep: false,
|
|
5370
5413
|
mode: "instant"
|
|
5371
5414
|
});
|
|
5372
5415
|
const submittedQ = submittedQuery?.trim() ?? "";
|
|
@@ -5376,8 +5419,7 @@ function useMarketSearch(options) {
|
|
|
5376
5419
|
categoryIds,
|
|
5377
5420
|
status,
|
|
5378
5421
|
limit,
|
|
5379
|
-
enabled: submittedQ.length > 0
|
|
5380
|
-
deep: true
|
|
5422
|
+
enabled: submittedQ.length > 0
|
|
5381
5423
|
});
|
|
5382
5424
|
return {
|
|
5383
5425
|
/** Current input value (controlled). */
|
|
@@ -5388,7 +5430,7 @@ function useMarketSearch(options) {
|
|
|
5388
5430
|
}, []),
|
|
5389
5431
|
/** The query value that produced the current `results`, or null if none. */
|
|
5390
5432
|
submittedQuery,
|
|
5391
|
-
/** Fire a
|
|
5433
|
+
/** Fire a full-page search. Use this on Enter / Search button. */
|
|
5392
5434
|
submit: useCallback((q) => {
|
|
5393
5435
|
const target = (q ?? query).trim();
|
|
5394
5436
|
if (target.length === 0) return;
|
|
@@ -7320,6 +7362,6 @@ function useHostedVenueTransfers(accountId, environment) {
|
|
|
7320
7362
|
};
|
|
7321
7363
|
}
|
|
7322
7364
|
//#endregion
|
|
7323
|
-
export { AUTH_CHOOSER_OPEN_EVENT, AggBalanceProvider, AggProvider, AggProvider as AggSdkProvider, AggUiProvider, CHART_TIME_RANGES, CONFIRMED_MATCH_STATUSES, DEFAULT_AGG_ROOT_CLASS_NAME, EventListStateProvider, LEADERBOARD_PERIODS, MAX_ORDER_VENUE_MARKET_IDS_PER_REQUEST, MAX_PRICE_GAP_PCT, MIN_PRICE_GAP_PCT, MarketStatus, MatchStatus, MatchType, QueryClient, QueryClientProvider, RedeemRejectedError, SPORTS_LIVE_POLL_INTERVAL_MS, SPORTS_SCHEDULED_POLL_INTERVAL_MS, TradeSide, TurnstileChallengeError, Venue, appConfigQueryKey, buildLiveBestPriceCandidates, computeClosedPositionTotals, computePriceGaps, defaultAggUiConfig, defaultAggUiConfig as defaultSdkUiConfig, executionKeys, extractOutcomeBestCandidate, fetchRecurringCryptoMarkets, findLivePriceById, getBuilder, getDepositAddress, getOrCreateBuilder, getVenueAvailabilityState, getVisibleVenueIdsByConfig, getVisibleVenuesByConfig, getWalletAddressFromUserProfile, hostedVenueAccountQueryKeys, invalidateBalanceQueries, invalidatePositionQueries, invalidateUserActivityQueries, invalidateUserClaimState, invalidateUserMoneyState, isVenueDisabledByConfig, leaderboardQueryKeys, leaderboardRange, mergeBestPricesPreferringLive, mergeRecurringCryptoWindows, normalizeVenueId, optimizedImageUrl, parseEmail, parseEmailStrict, rangeToSeconds, recurringCryptoTransitionPollInterval, requestAggAuthChooserOpen, resolveAggUiLabels, resolveDefaultMarket as resolveDefaultTradingMarket, resolveEventTradingState, resolveLimitOrderSizeRulesByVenue, resolveMarketTradingState, resolveMarketWinningOutcome, resolveOrderEligibility, resolveRecurringCryptoIdentity, resolveRecurringCryptoTimeline, resolveRollingWindow, resolveTradingStateKind, retinaImageUrl, sharedKycQueryKeys, sortVenues, sportsLiveQueryKey, sportsLiveRefetchInterval, timeRangeToInterval, tradingReducer, useAggAuth, useAggAuthContext, useAggAuthState, useAggBalance, useAggBalanceContext, useAggBalanceState, useAggClient, useAggLabels, useAggUiConfig, useAggWebSocket, useAppConfig, useArbFeed, useBalanceRefillPolicies, useCachedAppConfig, useCancelManagedOrder, useCategories, useCategoryChildren, useDebouncedValue, useDepositAddresses, useEnrichedVenueEvent, useEventListState, useEventOrderbookData, useEventTradingContext, useExecuteManaged, useExecutionOrders, useExecutionOrdersForMarkets, useExecutionPositions, useExecutionProgress, useExternalId, useGeoBlock, useHostedVenueAccount, useHostedVenueActivity, useHostedVenueTransfers, useLabels, useLeaderboard, useLimitOrderVenueQuotes, useLinkAccount, useLiveBestPriceCandidates, useLiveBestPrices, useLiveCandleOverlay, useLiveCandles, useLiveMarket, useLiveMarketStores, useLiveOutcomePrices, useLiveTrades, useManagedBalances, useMarketArb, useMarketChart, useMarketCharts, useMarketOrderbook, useMarketSearch, useMidpoints, useOnBalanceUpdate, useOnOrderEvent, useOnOrderSubmitted, useOnRedeemEvent, useOnWithdrawalLifecycle, useOptionalAggClient, useOrderBook, useOrderbookQuote, useOrders, usePaperOnboarding, usePlaceLimitOrder, usePositions, useQueryClient, useRampQuotes, useRampSession, useRecurringCryptoMarkets, useRedeem, useRedeemEligibleCount, useRedeemLifecycle, useRedeemLifecycles, useResolvedExecutionMode, useRollingChartWindow, useSdkLabels, useSdkUiConfig, useSearch, useSettlementDetailsData, useSharedKyc, useSmartRoute, useSportsLive, useSyncBalances, useUserActivity, useUserHoldings, useVenueEvent, useVenueEvents, useVenueKeyStatus, useVenueMarketMidpoints, useVenueMarkets, useVenueSellQuotes, useViewportMidpoints, useVisibleIds, useWithdrawEstimate, useWithdrawFlow, useWithdrawManaged, useWithdrawPreview, useWithdrawalLifecycle, userActivityQueryKeys, venueKeyQueryKeys };
|
|
7365
|
+
export { AUTH_CHOOSER_OPEN_EVENT, AggBalanceProvider, AggIdentityExistsError, AggProvider, AggProvider as AggSdkProvider, AggUiProvider, CHART_TIME_RANGES, CONFIRMED_MATCH_STATUSES, DEFAULT_AGG_ROOT_CLASS_NAME, EventListStateProvider, LEADERBOARD_PERIODS, MAX_ORDER_VENUE_MARKET_IDS_PER_REQUEST, MAX_PRICE_GAP_PCT, MIN_PRICE_GAP_PCT, MarketStatus, MatchStatus, MatchType, QueryClient, QueryClientProvider, RedeemRejectedError, SPORTS_LIVE_POLL_INTERVAL_MS, SPORTS_SCHEDULED_POLL_INTERVAL_MS, TradeSide, TurnstileChallengeError, Venue, appConfigQueryKey, buildLiveBestPriceCandidates, computeClosedPositionTotals, computePriceGaps, defaultAggUiConfig, defaultAggUiConfig as defaultSdkUiConfig, executionKeys, extractOutcomeBestCandidate, fetchRecurringCryptoMarkets, findLivePriceById, getBuilder, getDepositAddress, getOrCreateBuilder, getVenueAvailabilityState, getVisibleVenueIdsByConfig, getVisibleVenuesByConfig, getWalletAddressFromUserProfile, hostedVenueAccountQueryKeys, invalidateBalanceQueries, invalidatePositionQueries, invalidateUserActivityQueries, invalidateUserClaimState, invalidateUserMoneyState, isVenueDisabledByConfig, leaderboardQueryKeys, leaderboardRange, mergeBestPricesPreferringLive, mergeRecurringCryptoWindows, normalizeVenueId, optimizedImageUrl, parseAuthCallbackIdentityExists, parseEmail, parseEmailStrict, rangeToSeconds, recurringCryptoTransitionPollInterval, requestAggAuthChooserOpen, resolveAggUiLabels, resolveDefaultMarket as resolveDefaultTradingMarket, resolveEventTradingState, resolveLimitOrderSizeRulesByVenue, resolveMarketTradingState, resolveMarketWinningOutcome, resolveOrderEligibility, resolveRecurringCryptoIdentity, resolveRecurringCryptoTimeline, resolveRollingWindow, resolveTradingStateKind, retinaImageUrl, sharedKycQueryKeys, sortVenues, sportsLiveQueryKey, sportsLiveRefetchInterval, timeRangeToInterval, tradingReducer, useAggAuth, useAggAuthContext, useAggAuthState, useAggBalance, useAggBalanceContext, useAggBalanceState, useAggClient, useAggLabels, useAggUiConfig, useAggWebSocket, useAppConfig, useArbFeed, useBalanceRefillPolicies, useCachedAppConfig, useCancelManagedOrder, useCategories, useCategoryChildren, useDebouncedValue, useDepositAddresses, useEnrichedVenueEvent, useEventListState, useEventOrderbookData, useEventTradingContext, useExecuteManaged, useExecutionOrders, useExecutionOrdersForMarkets, useExecutionPositions, useExecutionProgress, useExternalId, useGeoBlock, useHostedVenueAccount, useHostedVenueActivity, useHostedVenueTransfers, useLabels, useLeaderboard, useLimitOrderVenueQuotes, useLinkAccount, useLiveBestPriceCandidates, useLiveBestPrices, useLiveCandleOverlay, useLiveCandles, useLiveMarket, useLiveMarketStores, useLiveOutcomePrices, useLiveTrades, useManagedBalances, useMarketArb, useMarketChart, useMarketCharts, useMarketOrderbook, useMarketSearch, useMidpoints, useOnBalanceUpdate, useOnOrderEvent, useOnOrderSubmitted, useOnRedeemEvent, useOnWithdrawalLifecycle, useOptionalAggClient, useOrderBook, useOrderbookQuote, useOrders, usePaperOnboarding, usePlaceLimitOrder, usePositions, useQueryClient, useRampQuotes, useRampSession, useRecurringCryptoMarkets, useRedeem, useRedeemEligibleCount, useRedeemLifecycle, useRedeemLifecycles, useResolvedExecutionMode, useRollingChartWindow, useSdkLabels, useSdkUiConfig, useSearch, useSettlementDetailsData, useSharedKyc, useSmartRoute, useSportsLive, useSyncBalances, useUserActivity, useUserHoldings, useVenueEvent, useVenueEvents, useVenueKeyStatus, useVenueMarketMidpoints, useVenueMarkets, useVenueSellQuotes, useViewportMidpoints, useVisibleIds, useWithdrawEstimate, useWithdrawFlow, useWithdrawManaged, useWithdrawPreview, useWithdrawalLifecycle, userActivityQueryKeys, venueKeyQueryKeys };
|
|
7324
7366
|
|
|
7325
7367
|
//# sourceMappingURL=index.mjs.map
|