@clerk/backend 3.0.0-snapshot.v20260113135251 → 3.0.0-snapshot.v20260114095952

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.
@@ -192,7 +192,7 @@ var require_dist = __commonJS({
192
192
  // src/constants.ts
193
193
  var API_URL = "https://api.clerk.com";
194
194
  var API_VERSION = "v1";
195
- var USER_AGENT = `${"@clerk/backend"}@${"3.0.0-snapshot.v20260113135251"}`;
195
+ var USER_AGENT = `${"@clerk/backend"}@${"3.0.0-snapshot.v20260114095952"}`;
196
196
  var MAX_CACHE_LAST_UPDATED_AT_SECONDS = 5 * 60;
197
197
  var SUPPORTED_BAPI_VERSION = "2025-11-10";
198
198
  var Attributes = {
@@ -213,7 +213,9 @@ var Cookies = {
213
213
  HandshakeNonce: "__clerk_handshake_nonce"
214
214
  };
215
215
  var QueryParameters = {
216
+ /** @deprecated Use ClerkSync with ClerkSyncStatus instead */
216
217
  ClerkSynced: "__clerk_synced",
218
+ ClerkSync: "__clerk_sync",
217
219
  SuffixedCookies: "suffixed_cookies",
218
220
  ClerkRedirectUrl: "__clerk_redirect_url",
219
221
  // use the reference to Cookies to indicate that it's the same value
@@ -259,12 +261,19 @@ var Headers2 = {
259
261
  var ContentTypes = {
260
262
  Json: "application/json"
261
263
  };
264
+ var ClerkSyncStatus = {
265
+ /** Trigger sync - satellite needs to handshake after returning from primary sign-in */
266
+ NeedsSync: "1",
267
+ /** Sync completed - prevents re-sync loop after handshake completes */
268
+ Completed: "2"
269
+ };
262
270
  var constants = {
263
271
  Attributes,
264
272
  Cookies,
265
273
  Headers: Headers2,
266
274
  ContentTypes,
267
- QueryParameters
275
+ QueryParameters,
276
+ ClerkSyncStatus
268
277
  };
269
278
 
270
279
  // src/createRedirect.ts
@@ -5499,17 +5508,46 @@ var authenticateRequest = (async (request, options) => {
5499
5508
  }
5500
5509
  }
5501
5510
  const isRequestEligibleForMultiDomainSync = authenticateContext.isSatellite && authenticateContext.secFetchDest === "document";
5502
- if (authenticateContext.instanceType === "production" && isRequestEligibleForMultiDomainSync) {
5503
- return handleMaybeHandshakeStatus(authenticateContext, AuthErrorReason.SatelliteCookieNeedsSyncing, "");
5504
- }
5505
- if (authenticateContext.instanceType === "development" && isRequestEligibleForMultiDomainSync && !authenticateContext.clerkUrl.searchParams.has(constants.QueryParameters.ClerkSynced)) {
5506
- const redirectURL = new URL(authenticateContext.signInUrl);
5507
- redirectURL.searchParams.append(
5508
- constants.QueryParameters.ClerkRedirectUrl,
5509
- authenticateContext.clerkUrl.toString()
5510
- );
5511
- const headers = new Headers({ [constants.Headers.Location]: redirectURL.toString() });
5512
- return handleMaybeHandshakeStatus(authenticateContext, AuthErrorReason.SatelliteCookieNeedsSyncing, "", headers);
5511
+ const syncStatus = authenticateContext.clerkUrl.searchParams.get(constants.QueryParameters.ClerkSync);
5512
+ const needsSync = syncStatus === constants.ClerkSyncStatus.NeedsSync;
5513
+ const legacySynced = authenticateContext.clerkUrl.searchParams.get(constants.QueryParameters.ClerkSynced) === "true";
5514
+ const syncCompleted = syncStatus === constants.ClerkSyncStatus.Completed || legacySynced;
5515
+ const hasCookies = hasSessionToken || hasActiveClient;
5516
+ const shouldSkipSatelliteHandshake = authenticateContext.satelliteAutoSync === false && !hasCookies && !needsSync;
5517
+ if (authenticateContext.instanceType === "production" && isRequestEligibleForMultiDomainSync && !syncCompleted) {
5518
+ if (shouldSkipSatelliteHandshake) {
5519
+ return signedOut({
5520
+ tokenType: TokenType.SessionToken,
5521
+ authenticateContext,
5522
+ reason: AuthErrorReason.SessionTokenAndUATMissing
5523
+ });
5524
+ }
5525
+ if (!hasCookies || needsSync) {
5526
+ return handleMaybeHandshakeStatus(authenticateContext, AuthErrorReason.SatelliteCookieNeedsSyncing, "");
5527
+ }
5528
+ }
5529
+ if (authenticateContext.instanceType === "development" && isRequestEligibleForMultiDomainSync && !syncCompleted) {
5530
+ if (shouldSkipSatelliteHandshake) {
5531
+ return signedOut({
5532
+ tokenType: TokenType.SessionToken,
5533
+ authenticateContext,
5534
+ reason: AuthErrorReason.SessionTokenAndUATMissing
5535
+ });
5536
+ }
5537
+ if (!hasCookies || needsSync) {
5538
+ const redirectURL = new URL(authenticateContext.signInUrl);
5539
+ redirectURL.searchParams.append(
5540
+ constants.QueryParameters.ClerkRedirectUrl,
5541
+ authenticateContext.clerkUrl.toString()
5542
+ );
5543
+ const headers = new Headers({ [constants.Headers.Location]: redirectURL.toString() });
5544
+ return handleMaybeHandshakeStatus(
5545
+ authenticateContext,
5546
+ AuthErrorReason.SatelliteCookieNeedsSyncing,
5547
+ "",
5548
+ headers
5549
+ );
5550
+ }
5513
5551
  }
5514
5552
  const redirectUrl = new URL(authenticateContext.clerkUrl).searchParams.get(
5515
5553
  constants.QueryParameters.ClerkRedirectUrl
@@ -5522,7 +5560,10 @@ var authenticateRequest = (async (request, options) => {
5522
5560
  authenticateContext.devBrowserToken
5523
5561
  );
5524
5562
  }
5525
- redirectBackToSatelliteUrl.searchParams.append(constants.QueryParameters.ClerkSynced, "true");
5563
+ redirectBackToSatelliteUrl.searchParams.set(
5564
+ constants.QueryParameters.ClerkSync,
5565
+ constants.ClerkSyncStatus.Completed
5566
+ );
5526
5567
  const headers = new Headers({ [constants.Headers.Location]: redirectBackToSatelliteUrl.toString() });
5527
5568
  return handleMaybeHandshakeStatus(authenticateContext, AuthErrorReason.PrimaryRespondsToSyncing, "", headers);
5528
5569
  }
@@ -5870,4 +5911,4 @@ export {
5870
5911
  debugRequestState,
5871
5912
  createAuthenticateRequest
5872
5913
  };
5873
- //# sourceMappingURL=chunk-LJ7TIBGO.mjs.map
5914
+ //# sourceMappingURL=chunk-DSCJUJ44.mjs.map