@sendoracloud/sdk-react-native 1.32.0 → 1.33.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.cjs CHANGED
@@ -202,7 +202,7 @@ var Storage = class {
202
202
  // package.json
203
203
  var package_default = {
204
204
  name: "@sendoracloud/sdk-react-native",
205
- version: "1.32.0",
205
+ version: "1.33.0",
206
206
  description: "Sendora Cloud React Native + Expo SDK \u2014 analytics, identity, push-token registration, auth (incl. Game Center / Play Games), deep links (Branch / Firebase Dynamic Links parity). Auth + analytics + deep links work in Expo Go; push-token registration and the no-arg Game Center / Play Games sign-in require a Dev Client (EAS Build or `npx expo prebuild`).",
207
207
  type: "module",
208
208
  main: "./dist/index.cjs",
@@ -614,6 +614,7 @@ var Auth = class {
614
614
  this.deletionCancelledListeners = /* @__PURE__ */ new Set();
615
615
  this.authStateListeners = /* @__PURE__ */ new Set();
616
616
  this.lastDeletionCancelled = null;
617
+ this.lastAnonRetirement = null;
617
618
  this.lastTakeover = null;
618
619
  /**
619
620
  * Anon refresh token captured at `signIn()` time, stashed keyed to the
@@ -807,6 +808,19 @@ var Auth = class {
807
808
  getLastDeletionCancelled() {
808
809
  return this.lastDeletionCancelled;
809
810
  }
811
+ /**
812
+ * What the last sign-in did with this device's guest account, or null if no
813
+ * sign-in has happened this session (s58.278).
814
+ *
815
+ * The one worth acting on is `"preserved"`: a guest account was presented,
816
+ * was NOT retired, and is therefore still alive server-side — so "recover
817
+ * your other account" is a real offer rather than a guess. `"retired"` means
818
+ * migrate from `onDeviceTakeover`'s id; `"none"` means there was nothing to
819
+ * reconcile. Cleared on signOut.
820
+ */
821
+ getLastAnonRetirement() {
822
+ return this.lastAnonRetirement;
823
+ }
810
824
  /** Internal — fan out deletion-cancelled to subscribers + cache the latest. */
811
825
  fireDeletionCancelled(userId) {
812
826
  const evt = { userId, at: /* @__PURE__ */ new Date() };
@@ -1889,6 +1903,7 @@ var Auth = class {
1889
1903
  retiredAnonUserId: data.retiredAnonUserId
1890
1904
  });
1891
1905
  }
1906
+ if (data.anonRetirement) this.lastAnonRetirement = data.anonRetirement;
1892
1907
  if (data.reactivatedFromDeletion) {
1893
1908
  this.fireDeletionCancelled(data.user.id);
1894
1909
  this.emitAuthState({ event: "deletion_cancelled", user: data.user });
@@ -1925,6 +1940,7 @@ var Auth = class {
1925
1940
  this.accessExpiresAt = 0;
1926
1941
  this.lastTakeover = null;
1927
1942
  this.lastDeletionCancelled = null;
1943
+ this.lastAnonRetirement = null;
1928
1944
  this.pendingAnonTakeover = null;
1929
1945
  this.hooks.storage.remove(USER_KEY);
1930
1946
  this.hooks.storage.remove(TOKEN_KEY);
package/dist/index.d.cts CHANGED
@@ -298,6 +298,8 @@ interface GameCenterPayload {
298
298
  teamPlayerId: string;
299
299
  bundleId: string;
300
300
  }
301
+ /** @see AuthApiResponse.anonRetirement */
302
+ type AnonRetirementOutcome = "retired" | "preserved" | "none";
301
303
  declare class EmailAlreadyTakenError extends Error {
302
304
  constructor(message?: string);
303
305
  }
@@ -534,6 +536,7 @@ declare class Auth {
534
536
  private deletionCancelledListeners;
535
537
  private authStateListeners;
536
538
  private lastDeletionCancelled;
539
+ private lastAnonRetirement;
537
540
  private lastTakeover;
538
541
  /**
539
542
  * Anon refresh token captured at `signIn()` time, stashed keyed to the
@@ -656,6 +659,17 @@ declare class Auth {
656
659
  onDeletionCancelled(listener: (evt: DeletionCancelledEvent) => void): () => void;
657
660
  /** The most recent deletion-cancelled event this session, or null. Cleared on signOut. */
658
661
  getLastDeletionCancelled(): DeletionCancelledEvent | null;
662
+ /**
663
+ * What the last sign-in did with this device's guest account, or null if no
664
+ * sign-in has happened this session (s58.278).
665
+ *
666
+ * The one worth acting on is `"preserved"`: a guest account was presented,
667
+ * was NOT retired, and is therefore still alive server-side — so "recover
668
+ * your other account" is a real offer rather than a guess. `"retired"` means
669
+ * migrate from `onDeviceTakeover`'s id; `"none"` means there was nothing to
670
+ * reconcile. Cleared on signOut.
671
+ */
672
+ getLastAnonRetirement(): AnonRetirementOutcome | null;
659
673
  /** Internal — fan out deletion-cancelled to subscribers + cache the latest. */
660
674
  private fireDeletionCancelled;
661
675
  /**
@@ -1904,4 +1918,4 @@ declare class SendoraSDK {
1904
1918
  }
1905
1919
  declare const SendoraCloud: SendoraSDK;
1906
1920
 
1907
- export { AlreadyIdentifiedError, type AttachLinkingApiOptions, Auth, AuthError, type AuthErrorKind, type AuthSignedOutReason, type AuthStateChange, type AuthTokens, type AuthUser, type CredentialCollisionPolicy, CredentialInUseError, type DeletionCancelledEvent, type DeviceTakeoverEvent, EmailAlreadyTakenError, type GameSignInOptions, type IdentifyTraits, type LinkCreateInput, type LinkCreateResult, type LinkData, LinkError, type LinkErrorCode, type LinkMatchInput, type LinkOpenedEvent, type LinkOpenedHandler, type LinkStats, type LinkedIdentitiesResponse, type LinkedIdentity, Links, type PushTokenReceipt, type PushTokenRegistration, SendoraCloud, type SendoraConfig, type TrackProperties, computeDeviceFingerprint, SendoraCloud as default, extractShortcodeFromUrl, getPlayInstallReferrer };
1921
+ export { AlreadyIdentifiedError, type AnonRetirementOutcome, type AttachLinkingApiOptions, Auth, AuthError, type AuthErrorKind, type AuthSignedOutReason, type AuthStateChange, type AuthTokens, type AuthUser, type CredentialCollisionPolicy, CredentialInUseError, type DeletionCancelledEvent, type DeviceTakeoverEvent, EmailAlreadyTakenError, type GameSignInOptions, type IdentifyTraits, type LinkCreateInput, type LinkCreateResult, type LinkData, LinkError, type LinkErrorCode, type LinkMatchInput, type LinkOpenedEvent, type LinkOpenedHandler, type LinkStats, type LinkedIdentitiesResponse, type LinkedIdentity, Links, type PushTokenReceipt, type PushTokenRegistration, SendoraCloud, type SendoraConfig, type TrackProperties, computeDeviceFingerprint, SendoraCloud as default, extractShortcodeFromUrl, getPlayInstallReferrer };
package/dist/index.d.ts CHANGED
@@ -298,6 +298,8 @@ interface GameCenterPayload {
298
298
  teamPlayerId: string;
299
299
  bundleId: string;
300
300
  }
301
+ /** @see AuthApiResponse.anonRetirement */
302
+ type AnonRetirementOutcome = "retired" | "preserved" | "none";
301
303
  declare class EmailAlreadyTakenError extends Error {
302
304
  constructor(message?: string);
303
305
  }
@@ -534,6 +536,7 @@ declare class Auth {
534
536
  private deletionCancelledListeners;
535
537
  private authStateListeners;
536
538
  private lastDeletionCancelled;
539
+ private lastAnonRetirement;
537
540
  private lastTakeover;
538
541
  /**
539
542
  * Anon refresh token captured at `signIn()` time, stashed keyed to the
@@ -656,6 +659,17 @@ declare class Auth {
656
659
  onDeletionCancelled(listener: (evt: DeletionCancelledEvent) => void): () => void;
657
660
  /** The most recent deletion-cancelled event this session, or null. Cleared on signOut. */
658
661
  getLastDeletionCancelled(): DeletionCancelledEvent | null;
662
+ /**
663
+ * What the last sign-in did with this device's guest account, or null if no
664
+ * sign-in has happened this session (s58.278).
665
+ *
666
+ * The one worth acting on is `"preserved"`: a guest account was presented,
667
+ * was NOT retired, and is therefore still alive server-side — so "recover
668
+ * your other account" is a real offer rather than a guess. `"retired"` means
669
+ * migrate from `onDeviceTakeover`'s id; `"none"` means there was nothing to
670
+ * reconcile. Cleared on signOut.
671
+ */
672
+ getLastAnonRetirement(): AnonRetirementOutcome | null;
659
673
  /** Internal — fan out deletion-cancelled to subscribers + cache the latest. */
660
674
  private fireDeletionCancelled;
661
675
  /**
@@ -1904,4 +1918,4 @@ declare class SendoraSDK {
1904
1918
  }
1905
1919
  declare const SendoraCloud: SendoraSDK;
1906
1920
 
1907
- export { AlreadyIdentifiedError, type AttachLinkingApiOptions, Auth, AuthError, type AuthErrorKind, type AuthSignedOutReason, type AuthStateChange, type AuthTokens, type AuthUser, type CredentialCollisionPolicy, CredentialInUseError, type DeletionCancelledEvent, type DeviceTakeoverEvent, EmailAlreadyTakenError, type GameSignInOptions, type IdentifyTraits, type LinkCreateInput, type LinkCreateResult, type LinkData, LinkError, type LinkErrorCode, type LinkMatchInput, type LinkOpenedEvent, type LinkOpenedHandler, type LinkStats, type LinkedIdentitiesResponse, type LinkedIdentity, Links, type PushTokenReceipt, type PushTokenRegistration, SendoraCloud, type SendoraConfig, type TrackProperties, computeDeviceFingerprint, SendoraCloud as default, extractShortcodeFromUrl, getPlayInstallReferrer };
1921
+ export { AlreadyIdentifiedError, type AnonRetirementOutcome, type AttachLinkingApiOptions, Auth, AuthError, type AuthErrorKind, type AuthSignedOutReason, type AuthStateChange, type AuthTokens, type AuthUser, type CredentialCollisionPolicy, CredentialInUseError, type DeletionCancelledEvent, type DeviceTakeoverEvent, EmailAlreadyTakenError, type GameSignInOptions, type IdentifyTraits, type LinkCreateInput, type LinkCreateResult, type LinkData, LinkError, type LinkErrorCode, type LinkMatchInput, type LinkOpenedEvent, type LinkOpenedHandler, type LinkStats, type LinkedIdentitiesResponse, type LinkedIdentity, Links, type PushTokenReceipt, type PushTokenRegistration, SendoraCloud, type SendoraConfig, type TrackProperties, computeDeviceFingerprint, SendoraCloud as default, extractShortcodeFromUrl, getPlayInstallReferrer };
package/dist/index.js CHANGED
@@ -157,7 +157,7 @@ var Storage = class {
157
157
  // package.json
158
158
  var package_default = {
159
159
  name: "@sendoracloud/sdk-react-native",
160
- version: "1.32.0",
160
+ version: "1.33.0",
161
161
  description: "Sendora Cloud React Native + Expo SDK \u2014 analytics, identity, push-token registration, auth (incl. Game Center / Play Games), deep links (Branch / Firebase Dynamic Links parity). Auth + analytics + deep links work in Expo Go; push-token registration and the no-arg Game Center / Play Games sign-in require a Dev Client (EAS Build or `npx expo prebuild`).",
162
162
  type: "module",
163
163
  main: "./dist/index.cjs",
@@ -569,6 +569,7 @@ var Auth = class {
569
569
  this.deletionCancelledListeners = /* @__PURE__ */ new Set();
570
570
  this.authStateListeners = /* @__PURE__ */ new Set();
571
571
  this.lastDeletionCancelled = null;
572
+ this.lastAnonRetirement = null;
572
573
  this.lastTakeover = null;
573
574
  /**
574
575
  * Anon refresh token captured at `signIn()` time, stashed keyed to the
@@ -762,6 +763,19 @@ var Auth = class {
762
763
  getLastDeletionCancelled() {
763
764
  return this.lastDeletionCancelled;
764
765
  }
766
+ /**
767
+ * What the last sign-in did with this device's guest account, or null if no
768
+ * sign-in has happened this session (s58.278).
769
+ *
770
+ * The one worth acting on is `"preserved"`: a guest account was presented,
771
+ * was NOT retired, and is therefore still alive server-side — so "recover
772
+ * your other account" is a real offer rather than a guess. `"retired"` means
773
+ * migrate from `onDeviceTakeover`'s id; `"none"` means there was nothing to
774
+ * reconcile. Cleared on signOut.
775
+ */
776
+ getLastAnonRetirement() {
777
+ return this.lastAnonRetirement;
778
+ }
765
779
  /** Internal — fan out deletion-cancelled to subscribers + cache the latest. */
766
780
  fireDeletionCancelled(userId) {
767
781
  const evt = { userId, at: /* @__PURE__ */ new Date() };
@@ -1844,6 +1858,7 @@ var Auth = class {
1844
1858
  retiredAnonUserId: data.retiredAnonUserId
1845
1859
  });
1846
1860
  }
1861
+ if (data.anonRetirement) this.lastAnonRetirement = data.anonRetirement;
1847
1862
  if (data.reactivatedFromDeletion) {
1848
1863
  this.fireDeletionCancelled(data.user.id);
1849
1864
  this.emitAuthState({ event: "deletion_cancelled", user: data.user });
@@ -1880,6 +1895,7 @@ var Auth = class {
1880
1895
  this.accessExpiresAt = 0;
1881
1896
  this.lastTakeover = null;
1882
1897
  this.lastDeletionCancelled = null;
1898
+ this.lastAnonRetirement = null;
1883
1899
  this.pendingAnonTakeover = null;
1884
1900
  this.hooks.storage.remove(USER_KEY);
1885
1901
  this.hooks.storage.remove(TOKEN_KEY);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sendoracloud/sdk-react-native",
3
- "version": "1.32.0",
3
+ "version": "1.33.0",
4
4
  "description": "Sendora Cloud React Native + Expo SDK — analytics, identity, push-token registration, auth (incl. Game Center / Play Games), deep links (Branch / Firebase Dynamic Links parity). Auth + analytics + deep links work in Expo Go; push-token registration and the no-arg Game Center / Play Games sign-in require a Dev Client (EAS Build or `npx expo prebuild`).",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",