@series-inc/rundot-game-sdk 5.18.0 → 5.20.0-beta.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.
@@ -1,4 +1,4 @@
1
- import { H as LeaderboardApi, I as ImageGenApi, A as AudioGenApi, V as VideoGenApi, q as SpriteGenApi, T as ThreeDGenApi } from './LeaderboardApi-BKte9LP0.js';
1
+ import { H as LeaderboardApi, I as ImageGenApi, A as AudioGenApi, V as VideoGenApi, q as SpriteGenApi, T as ThreeDGenApi } from './LeaderboardApi-CBSE1wBb.js';
2
2
 
3
3
  interface StorageApi {
4
4
  key(index: number): Promise<string | null>;
@@ -1705,7 +1705,7 @@ interface UgcRangeFilter {
1705
1705
  }
1706
1706
  type UgcFilterValue = string | number | UgcRangeFilter;
1707
1707
  interface UgcBrowseParams {
1708
- contentType?: string;
1708
+ contentType?: string | string[];
1709
1709
  authorId?: string;
1710
1710
  cursor?: string;
1711
1711
  limit?: number;
@@ -1722,7 +1722,7 @@ interface UgcGetManyResponse {
1722
1722
  }>;
1723
1723
  }
1724
1724
  interface UgcCountParams {
1725
- contentType?: string;
1725
+ contentType?: string | string[];
1726
1726
  filters?: Record<string, UgcFilterValue>;
1727
1727
  }
1728
1728
  interface UgcCrossAppBrowseParams extends UgcBrowseParams {
@@ -2309,9 +2309,24 @@ interface StorageQuota {
2309
2309
  usedBytes: number;
2310
2310
  capBytes: number;
2311
2311
  availableBytes: number;
2312
+ /** Per-file cap for normal (allowlisted content-type) uploads. */
2312
2313
  maxFileBytes: number;
2313
- tier: number;
2314
+ /** Larger per-file cap for gated `application/zip` archive uploads. */
2315
+ maxArchiveBytes: number;
2316
+ /** Creator entitlement tier driving the storage cap. */
2317
+ tier: 'free' | 'creator' | 'plus' | 'pro' | 'power' | 'max';
2314
2318
  }
2319
+ /**
2320
+ * Extract a ZIP archive (uploaded to `input`) into individual Files entries
2321
+ * under `outputPrefix`. Unlike the single-output transforms, this fans out to
2322
+ * MANY keys, so it returns an {@link ArchiveExtractResult} manifest rather than
2323
+ * a single `entry`. Gated server-side (allowlisted app + entitlement). */
2324
+ type ArchiveExtractParams = {
2325
+ op: 'unzip';
2326
+ input: string;
2327
+ outputPrefix: string;
2328
+ clientRef?: string;
2329
+ };
2315
2330
  type TransformParams = {
2316
2331
  op: 'concat';
2317
2332
  inputs: string[];
@@ -2389,11 +2404,34 @@ type TransformParams = {
2389
2404
  outputKey: string;
2390
2405
  maxDurationSec: number;
2391
2406
  clientRef?: string;
2392
- };
2407
+ } | ArchiveExtractParams;
2393
2408
  interface TransformResult {
2394
2409
  jobId: string;
2395
2410
  entry: FileEntry;
2396
2411
  }
2412
+ /** One file extracted from an archive into the Files namespace. */
2413
+ interface ArchiveExtractEntry {
2414
+ /** Relative path inside the archive (POSIX, containment-checked server-side). */
2415
+ path: string;
2416
+ /** The Files key it was written to (`<outputPrefix>/<path>`). */
2417
+ key: string;
2418
+ sizeBytes: number;
2419
+ contentType: string;
2420
+ }
2421
+ /** A file the extractor intentionally did NOT write (e.g. over the per-file
2422
+ * cap, disallowed type, or an unsafe path). */
2423
+ interface ArchiveSkippedEntry {
2424
+ path: string;
2425
+ reason: 'oversize' | 'unsupported' | 'invalid-path';
2426
+ bytes?: number;
2427
+ }
2428
+ /** Manifest returned by an `unzip` transform: what landed + what didn't. */
2429
+ interface ArchiveExtractResult {
2430
+ /** Files keys created under `outputPrefix`. */
2431
+ created: ArchiveExtractEntry[];
2432
+ /** Entries skipped, with reasons (surface as "N media skipped"). */
2433
+ skipped: ArchiveSkippedEntry[];
2434
+ }
2397
2435
  interface ConfirmUploadOptions {
2398
2436
  clientRef?: string;
2399
2437
  }
@@ -2427,11 +2465,11 @@ interface CloudinaryExportResult {
2427
2465
  }
2428
2466
  interface FilesJobEvent {
2429
2467
  jobId: string;
2430
- type: 'fileConfirm' | 'upscale' | 'transform' | 'fileExportCloudinary';
2468
+ type: 'fileConfirm' | 'upscale' | 'transform' | 'fileExportCloudinary' | 'archiveExtract';
2431
2469
  status: 'completed' | 'failed';
2432
2470
  clientRef?: string;
2433
2471
  params: Record<string, unknown>;
2434
- result?: FileEntry | TransformResult | CloudinaryExportResult;
2472
+ result?: FileEntry | TransformResult | CloudinaryExportResult | ArchiveExtractResult;
2435
2473
  error?: string | {
2436
2474
  code: string;
2437
2475
  message: string;
@@ -2451,8 +2489,14 @@ interface FilesApi {
2451
2489
  delete(key: string): Promise<void>;
2452
2490
  list(params?: ListParams): Promise<ListResult>;
2453
2491
  getQuota(): Promise<StorageQuota>;
2454
- hasStorageAvailable(sizeBytes: number): Promise<boolean>;
2492
+ /**
2493
+ * Whether `sizeBytes` fits both the remaining quota AND the relevant per-file
2494
+ * cap. Pass `contentType` for archive uploads (`application/zip`) so the
2495
+ * larger archive cap is used instead of the normal per-file cap.
2496
+ */
2497
+ hasStorageAvailable(sizeBytes: number, contentType?: string): Promise<boolean>;
2455
2498
  setVisibility(key: string, visibility: 'private' | 'public'): Promise<FileEntry>;
2499
+ transform(params: ArchiveExtractParams): Promise<ArchiveExtractResult>;
2456
2500
  transform(params: TransformParams): Promise<TransformResult>;
2457
2501
  exportToCloudinary(params: ExportToCloudinaryParams): Promise<CloudinaryExportResult>;
2458
2502
  getCompletedJobs(): Promise<FilesJobEvent[]>;
@@ -2898,7 +2942,7 @@ interface AdminGenApi<TEntry, TReport> {
2898
2942
 
2899
2943
  type AppRole = 'owner' | 'editor' | 'none';
2900
2944
  interface AdminUgcBrowseParams {
2901
- contentType?: string;
2945
+ contentType?: string | string[];
2902
2946
  authorId?: string;
2903
2947
  cursor?: string;
2904
2948
  limit?: number;
@@ -501,7 +501,10 @@ interface RemeshResult {
501
501
  provider: 'meshy';
502
502
  }
503
503
  interface RigParams {
504
- modelUrl: string;
504
+ /** URL of the GLB model to rig. Provide this or `modelFileKey`. */
505
+ modelUrl?: string;
506
+ /** Resolve a Files SDK key as the source model (alternative to modelUrl) */
507
+ modelFileKey?: string;
505
508
  heightMeters?: number;
506
509
  clientRef?: string;
507
510
  }
@@ -1842,21 +1842,22 @@ var RpcLoggingApi = class {
1842
1842
  logDebug(message, ...args) {
1843
1843
  if (!this.host.isInitialized) {
1844
1844
  console.log(message, args);
1845
- } else {
1846
- message = this.buildMessage(message, ...args);
1847
- this.rpcClient.call("H5_DEBUG" /* DEBUG */, { level: "log", message });
1845
+ return;
1848
1846
  }
1847
+ this.rpcClient.notify(
1848
+ "H5_DEBUG" /* DEBUG */,
1849
+ { level: "log", message: this.buildMessage(message, ...args) }
1850
+ );
1849
1851
  }
1850
1852
  logError(message, ...args) {
1851
1853
  if (!this.host.isInitialized) {
1852
1854
  console.error(message, ...args);
1853
- } else {
1854
- message = this.buildMessage(message, ...args);
1855
- this.rpcClient.call("H5_DEBUG" /* DEBUG */, {
1856
- level: "error",
1857
- message
1858
- });
1855
+ return;
1859
1856
  }
1857
+ this.rpcClient.notify(
1858
+ "H5_DEBUG" /* DEBUG */,
1859
+ { level: "error", message: this.buildMessage(message, ...args) }
1860
+ );
1860
1861
  }
1861
1862
  buildMessage(message, ...args) {
1862
1863
  if (args && args.length > 0) {
@@ -6656,5 +6657,5 @@ var MockMultiplayerApi = class {
6656
6657
  };
6657
6658
 
6658
6659
  export { AccessDeniedError, BaseCdnApi, BrowserCaptureConsent, CLIP_CONTENT_TYPE, ClipRecorder, ClipsApiImpl, 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, 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, PER_APP_SUBDOMAIN_HOST_PATTERN, ROOM_GAME_PHASES, RpcAccessGateApi, RpcAdsApi, RpcAnalyticsApi, RpcAttributionApi, RpcAvatarApi, RpcEntitlementApi, RpcFeaturesApi, RpcHapticsApi, RpcInboundStorageApi, RpcLifecycleApi, RpcLoggingApi, RpcNavigationApi, RpcNotificationsApi, RpcPopupsApi, RpcPreloaderApi, RpcRoomsApi, RpcSharedAssetsApi, RpcShopApi, RpcStorageApi, RpcVideoApi, RundotGameMessageId, RundotGameRoom, SHARE_FILE_ALLOWED_MIME_TYPES, SHARE_FILE_MAX_SIZE_BYTES, SandboxAppApi, SandboxProfileApi, WsMultiplayerApi, applyAccessGates, base64ToArrayBuffer, base64ToUtf8, buildFunctionsBaseUrl, createAccessGatedApi, createMockAdminGenApi, createMockStorageApi, createRpcAdminGenApi, exchangeForCustomToken, generateId, getCloudRunUrl, getFirebaseClient, getLibraryDefinition, getSandboxConfig, hasHostedUrlStructure, initializeAccessGate, initializeAds, initializeAnalytics, initializeAttribution, initializeAvatar3d, initializeCdn, initializeEntitlements, initializeFeaturesApi, initializeHaptics, initializeLifecycleApi, initializeLocalNotifications, initializeLoggingApi, initializePopups, initializePreloader, initializeProfile, initializeRoomsApi, initializeShop, initializeStackNavigation, initializeStorage, initializeSystem, initializeTime, initializeVideo, isPacificDaylightTime, isPerAppSubdomain, isSandboxEnabled, mockLog, observeFirestoreCollection, observeFirestoreDocument, parseCdnLocationFromUrl, parseCdnLocationFromWindow, parseCdnPathSegments, resolveCollectionItemPrice, setStoredAppRole, setupRoomNotifications, signInWithGoogle };
6659
- //# sourceMappingURL=chunk-2OT27YOG.js.map
6660
- //# sourceMappingURL=chunk-2OT27YOG.js.map
6660
+ //# sourceMappingURL=chunk-BXGNMZKL.js.map
6661
+ //# sourceMappingURL=chunk-BXGNMZKL.js.map