@series-inc/rundot-game-sdk 5.14.4 → 5.15.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.
@@ -1363,6 +1363,8 @@ interface SubmitScoreResult {
1363
1363
  rank?: number | null;
1364
1364
  zScore?: number | null;
1365
1365
  isAnomaly?: boolean;
1366
+ /** Human-readable explanation when `accepted` is false (e.g., keep-best rejection). */
1367
+ reason?: string | null;
1366
1368
  }
1367
1369
  interface GetPagedScoresOptions {
1368
1370
  mode?: string;
@@ -1531,6 +1533,116 @@ interface UgcFollowCounts {
1531
1533
  followerCount: number;
1532
1534
  followingCount: number;
1533
1535
  }
1536
+ interface UgcVoteTotals {
1537
+ budget: number;
1538
+ used: number;
1539
+ remaining: number;
1540
+ }
1541
+ interface UgcVoteMutationResult {
1542
+ entryId: string;
1543
+ userEntryCount: number;
1544
+ entryTotalCount: number;
1545
+ totals: UgcVoteTotals;
1546
+ }
1547
+ interface UgcVoteParams {
1548
+ entryId: string;
1549
+ /** Votes to cast in this call. Defaults to 1. Min 1, max 15 (the Ultimate weekly budget). */
1550
+ count?: number;
1551
+ clientRequestId?: string;
1552
+ }
1553
+ interface UgcUnvoteParams {
1554
+ entryId: string;
1555
+ /** Votes to remove in this call. Defaults to 1. Min 1, max 15. */
1556
+ count?: number;
1557
+ }
1558
+ interface UgcMyVotesResponse {
1559
+ weekKey: string;
1560
+ totals: UgcVoteTotals;
1561
+ byEntry: Array<{
1562
+ entryId: string;
1563
+ count: number;
1564
+ }>;
1565
+ }
1566
+ interface UgcVoteLeaderboardItem {
1567
+ entryId: string;
1568
+ count: number;
1569
+ firstVotedAt: number;
1570
+ }
1571
+ interface UgcVoteLeaderboardResponse {
1572
+ weekKey: string;
1573
+ items: UgcVoteLeaderboardItem[];
1574
+ nextCursor: string | null;
1575
+ }
1576
+ interface UgcVoteWinnerSnapshot {
1577
+ title?: string;
1578
+ authorId: string;
1579
+ authorName: string;
1580
+ authorAvatarUrl: string | null;
1581
+ contentType: string;
1582
+ }
1583
+ interface UgcVoteWinnerEntry {
1584
+ rank: number;
1585
+ entryId: string;
1586
+ count: number;
1587
+ firstVotedAt: number;
1588
+ snapshot: UgcVoteWinnerSnapshot;
1589
+ }
1590
+ interface UgcVoteWinnersSnapshot {
1591
+ weekKey: string;
1592
+ weekStartUtc: number;
1593
+ weekEndUtc: number;
1594
+ winners: UgcVoteWinnerEntry[];
1595
+ }
1596
+ interface UgcVoteWinnersResponse {
1597
+ items: UgcVoteWinnersSnapshot[];
1598
+ nextCursor: string | null;
1599
+ }
1600
+ interface UgcVoteListParams {
1601
+ /** Page size. Defaults vary per endpoint; max 25. */
1602
+ limit?: number;
1603
+ cursor?: string;
1604
+ }
1605
+ interface UgcVoteWinnersListParams extends UgcVoteListParams {
1606
+ /**
1607
+ * How many ranked entries to return per week (1..25). Defaults to 3.
1608
+ * Snapshots always persist up to 25; this trims the response.
1609
+ */
1610
+ topN?: number;
1611
+ }
1612
+ interface UgcVotingApi {
1613
+ /**
1614
+ * Cast votes on a UGC entry within the current ISO week.
1615
+ * Each user has a weekly vote budget (3 for free, 15 for Ultimate subscribers).
1616
+ * @param params Vote parameters
1617
+ * @returns Updated tallies and remaining budget
1618
+ */
1619
+ vote(params: UgcVoteParams): Promise<UgcVoteMutationResult>;
1620
+ /**
1621
+ * Remove previously cast votes from a UGC entry.
1622
+ * @param params Unvote parameters
1623
+ * @returns Updated tallies and remaining budget
1624
+ */
1625
+ unvote(params: UgcUnvoteParams): Promise<UgcVoteMutationResult>;
1626
+ /**
1627
+ * Get the current user's voting state for this week.
1628
+ * @returns Per-entry votes cast and remaining budget
1629
+ */
1630
+ getMyVotes(): Promise<UgcMyVotesResponse>;
1631
+ /**
1632
+ * Read the current week's leaderboard (top-voted entries).
1633
+ * Page size defaults to 5 and is capped at 25.
1634
+ * @param params Pagination parameters
1635
+ * @returns Paginated leaderboard items
1636
+ */
1637
+ getLeaderboard(params?: UgcVoteListParams): Promise<UgcVoteLeaderboardResponse>;
1638
+ /**
1639
+ * Read historical weekly winners (newest first). Each week returns up to `topN`
1640
+ * ranked entries (default 3, max 25). Page size defaults to 4 and is capped at 25.
1641
+ * @param params Pagination + topN parameters
1642
+ * @returns Paginated weekly winner snapshots
1643
+ */
1644
+ getWinners(params?: UgcVoteWinnersListParams): Promise<UgcVoteWinnersResponse>;
1645
+ }
1534
1646
  interface UgcApi {
1535
1647
  /**
1536
1648
  * Create new user-generated content
@@ -1635,6 +1747,11 @@ interface UgcApi {
1635
1747
  * @returns The follower and following counts
1636
1748
  */
1637
1749
  getFollowCounts(targetProfileId: string): Promise<UgcFollowCounts>;
1750
+ /**
1751
+ * Weekly voting API. Vote on UGC entries within the current ISO week,
1752
+ * read live leaderboards, and read paginated historical winners.
1753
+ */
1754
+ readonly voting: UgcVotingApi;
1638
1755
  }
1639
1756
 
1640
1757
  interface PreloaderApi {
@@ -177,6 +177,11 @@ var RundotGameMessageId = /* @__PURE__ */ ((RundotGameMessageId2) => {
177
177
  RundotGameMessageId2["H5_UGC_UNFOLLOW"] = "H5_UGC_UNFOLLOW";
178
178
  RundotGameMessageId2["H5_UGC_IS_FOLLOWING"] = "H5_UGC_IS_FOLLOWING";
179
179
  RundotGameMessageId2["H5_UGC_GET_FOLLOW_COUNTS"] = "H5_UGC_GET_FOLLOW_COUNTS";
180
+ RundotGameMessageId2["H5_UGC_VOTING_VOTE"] = "H5_UGC_VOTING_VOTE";
181
+ RundotGameMessageId2["H5_UGC_VOTING_UNVOTE"] = "H5_UGC_VOTING_UNVOTE";
182
+ RundotGameMessageId2["H5_UGC_VOTING_GET_MY_VOTES"] = "H5_UGC_VOTING_GET_MY_VOTES";
183
+ RundotGameMessageId2["H5_UGC_VOTING_GET_LEADERBOARD"] = "H5_UGC_VOTING_GET_LEADERBOARD";
184
+ RundotGameMessageId2["H5_UGC_VOTING_GET_WINNERS"] = "H5_UGC_VOTING_GET_WINNERS";
180
185
  RundotGameMessageId2["H5_IMAGE_GEN_GENERATE"] = "H5_IMAGE_GEN_GENERATE";
181
186
  RundotGameMessageId2["H5_PROMPT_LOGIN"] = "H5_PROMPT_LOGIN";
182
187
  RundotGameMessageId2["H5_ENTITLEMENT_LIST"] = "H5_ENTITLEMENT_LIST";
@@ -3523,7 +3528,8 @@ var EMBEDDED_LIBRARIES = [
3523
3528
  cdnPath: "phaser/3.90.0/phaser.min.js",
3524
3529
  moduleSpecifiers: [{ match: "exact", value: "phaser" }],
3525
3530
  loadStage: 0,
3526
- enabled: true
3531
+ enabled: true,
3532
+ sha384: "sha384-Fi7F0CYQBHYa+s2vvYJeiqvOQf3tuZ28vafRGXvMt7ijxNTVf3+eXPkNRIUi9JD2"
3527
3533
  },
3528
3534
  {
3529
3535
  libraryKey: "react@18.3.1",
@@ -3543,7 +3549,8 @@ var EMBEDDED_LIBRARIES = [
3543
3549
  ],
3544
3550
  loadStage: 0,
3545
3551
  // Must load before ReactDOM
3546
- enabled: true
3552
+ enabled: true,
3553
+ sha384: "sha384-DGyLxAyjq0f9SPpVevD6IgztCFlnMF6oW/XQGmfe+IsZ8TqEiDrcHkMLKI6fiB/Z"
3547
3554
  },
3548
3555
  {
3549
3556
  libraryKey: "react-dom@18.3.1",
@@ -3558,7 +3565,8 @@ var EMBEDDED_LIBRARIES = [
3558
3565
  ],
3559
3566
  loadStage: 1,
3560
3567
  // Depends on React (stage 0)
3561
- enabled: true
3568
+ enabled: true,
3569
+ sha384: "sha384-gTGxhz21lVGYNMcdJOyq01Edg0jhn/c22nsx0kyqP0TxaV5WVdsSH1fSDUf5YJj1"
3562
3570
  },
3563
3571
  {
3564
3572
  libraryKey: "react@19.2.4",
@@ -3577,7 +3585,8 @@ var EMBEDDED_LIBRARIES = [
3577
3585
  }
3578
3586
  ],
3579
3587
  loadStage: 0,
3580
- enabled: true
3588
+ enabled: true,
3589
+ sha384: "sha384-8TkCbSOgofgjSE0OOifjZ5+r2NAV5g6BKvoEZwDU9O/xKL/TXRC09alkbdtKMor1"
3581
3590
  },
3582
3591
  {
3583
3592
  libraryKey: "react-dom@19.2.4",
@@ -3591,7 +3600,8 @@ var EMBEDDED_LIBRARIES = [
3591
3600
  { match: "exact", value: "react-dom/client", behavior: "namespace" }
3592
3601
  ],
3593
3602
  loadStage: 1,
3594
- enabled: true
3603
+ enabled: true,
3604
+ sha384: "sha384-K8Ud9uS+B5cudnJG4B8QvXCOch6TVxmFwyo5I30ZkLAuXtuNGyP6XFoY4kRBt67C"
3595
3605
  },
3596
3606
  {
3597
3607
  libraryKey: "three@0.170.0",
@@ -3604,7 +3614,8 @@ var EMBEDDED_LIBRARIES = [
3604
3614
  { match: "exact", value: "three", behavior: "namespace" }
3605
3615
  ],
3606
3616
  loadStage: 0,
3607
- enabled: true
3617
+ enabled: true,
3618
+ sha384: "sha384-x6G0n+1pQmOpeke5EcTTpGX9XhLRpukt9fqgE/56XeFyk/KQGJoEWIAWvTA5z6Hx"
3608
3619
  },
3609
3620
  {
3610
3621
  libraryKey: "three@0.183.2",
@@ -3617,7 +3628,8 @@ var EMBEDDED_LIBRARIES = [
3617
3628
  { match: "exact", value: "three", behavior: "namespace" }
3618
3629
  ],
3619
3630
  loadStage: 0,
3620
- enabled: true
3631
+ enabled: true,
3632
+ sha384: "sha384-qeAovMiAAbBeXlBZKbnt7ZyMbv57Uzj+9MJEjLlb/VrZDhfss9Pwe27P2G24CWgz"
3621
3633
  },
3622
3634
  {
3623
3635
  libraryKey: "matter-js@0.19.0",
@@ -3628,7 +3640,8 @@ var EMBEDDED_LIBRARIES = [
3628
3640
  cdnPath: "matter-js/0.19.0/matter.min.js",
3629
3641
  moduleSpecifiers: [{ match: "exact", value: "matter-js" }],
3630
3642
  loadStage: 0,
3631
- enabled: true
3643
+ enabled: true,
3644
+ sha384: "sha384-OqQP3UcU7efkEYDRjGmQou2uEvzGFGRtwdYXTjnupeB9cWogSgQ4BOhyklFBYbBR"
3632
3645
  },
3633
3646
  {
3634
3647
  libraryKey: "inkjs@2.2.0",
@@ -3642,7 +3655,8 @@ var EMBEDDED_LIBRARIES = [
3642
3655
  { match: "exact", value: "inkjs/full", behavior: "namespace" }
3643
3656
  ],
3644
3657
  loadStage: 0,
3645
- enabled: true
3658
+ enabled: true,
3659
+ sha384: "sha384-vCtiM63EhiADRQPG1Z+ZTu47GpM69knpj/YZTHbnpNU539BD0yCSUx+3x5k1ZJlU"
3646
3660
  },
3647
3661
  {
3648
3662
  libraryKey: "inkjs@2.3.2",
@@ -3656,7 +3670,8 @@ var EMBEDDED_LIBRARIES = [
3656
3670
  { match: "exact", value: "inkjs/full", behavior: "namespace" }
3657
3671
  ],
3658
3672
  loadStage: 0,
3659
- enabled: true
3673
+ enabled: true,
3674
+ sha384: "sha384-pMC1d/5lwvaWRu/KWeqZMZPLhvf69CDNNCW5viyAW2+m78bVF+OUTPlaILfuH3DE"
3660
3675
  },
3661
3676
  {
3662
3677
  libraryKey: "zustand@5.0.3",
@@ -3671,7 +3686,8 @@ var EMBEDDED_LIBRARIES = [
3671
3686
  ],
3672
3687
  loadStage: 1,
3673
3688
  // Depends on React (stage 0)
3674
- enabled: true
3689
+ enabled: true,
3690
+ sha384: "sha384-dOaRa/FSD3ckw1ovPQ2TDv9aBiRCTiCTO12xgjTt0eHmpDFamMyxZb2+pDp0o62a"
3675
3691
  }
3676
3692
  ];
3677
3693
  var EMBEDDED_LIBRARY_BY_KEY = EMBEDDED_LIBRARIES.reduce(
@@ -5894,5 +5910,5 @@ var MockMultiplayerApi = class {
5894
5910
  };
5895
5911
 
5896
5912
  export { AccessDeniedError, BaseCdnApi, DEFAULT_SHARED_LIB_CDN_BASE, DualEmitStorageApi, EMBEDDED_LIBRARIES, EMBEDDED_LIBRARY_BY_KEY, FILE_EXTENSION_PATTERN, HapticFeedbackStyle, HostCdnApi, HostDeviceApi, HostEnvironmentApi, HostProfileApi, HostSystemApi, HostTimeApi, MIN_CDN_PATH_SEGMENTS, MODULE_TO_LIBRARY_SPECIFIERS, MockAccessGateApi, MockAdminImageGenApi, MockAdminUgcApi, MockAdsApi, MockAnalyticsApi, MockAttributionApi, MockAvatarApi, MockCdnApi, MockDebug, MockDeviceApi, MockEntitlementApi, MockEnvironmentApi, MockFeaturesApi, MockHapticsApi, MockIapApi, MockLifecycleApi, MockLoggingApi, MockMultiplayerApi, MockNavigationApi, MockNotificationsApi, MockPopupsApi, MockPreloaderApi, MockProfileApi, MockSharedAssetsApi, MockShopApi, MockStorageApi, MockSystemApi, MockTimeApi, MockVideoApi, ROOM_GAME_PHASES, RpcAccessGateApi, RpcAdsApi, RpcAnalyticsApi, RpcAttributionApi, RpcAvatarApi, RpcEntitlementApi, RpcFeaturesApi, RpcHapticsApi, RpcIapApi, RpcInboundStorageApi, RpcLifecycleApi, RpcLoggingApi, RpcNavigationApi, RpcNotificationsApi, RpcPopupsApi, RpcPreloaderApi, RpcRoomsApi, RpcSharedAssetsApi, RpcShopApi, RpcStorageApi, RpcVideoApi, RundotGameMessageId, RundotGameRoom, SandboxAppApi, SandboxProfileApi, WsMultiplayerApi, applyAccessGates, base64ToArrayBuffer, base64ToUtf8, buildFunctionsBaseUrl, createAccessGatedApi, createMockStorageApi, exchangeForCustomToken, generateId, getCloudRunUrl, getFirebaseClient, getLibraryDefinition, getSandboxConfig, hasHostedUrlStructure, initializeAccessGate, initializeAds, initializeAnalytics, initializeAttribution, initializeAvatar3d, initializeCdn, initializeEntitlements, initializeFeaturesApi, initializeHaptics, initializeIap, initializeLifecycleApi, initializeLocalNotifications, initializeLoggingApi, initializePopups, initializePreloader, initializeProfile, initializeRoomsApi, initializeShop, initializeStackNavigation, initializeStorage, initializeSystem, initializeTime, initializeVideo, isPacificDaylightTime, isSandboxEnabled, mockLog, observeFirestoreCollection, observeFirestoreDocument, parseCdnPathSegments, resolveCollectionItemPrice, setStoredAppRole, setupRoomNotifications, signInWithGoogle };
5897
- //# sourceMappingURL=chunk-E3Z7DTKN.js.map
5898
- //# sourceMappingURL=chunk-E3Z7DTKN.js.map
5913
+ //# sourceMappingURL=chunk-44QXQD5L.js.map
5914
+ //# sourceMappingURL=chunk-44QXQD5L.js.map