@dendotdev/grunt 1.0.3 → 1.0.5

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 CHANGED
@@ -1162,6 +1162,13 @@ interface FlightedFeatureFlags {
1162
1162
  /** Feature flags */
1163
1163
  flags?: Record<string, boolean>;
1164
1164
  }
1165
+ /**
1166
+ * Player clearance/flight configuration ID.
1167
+ */
1168
+ interface PlayerClearance {
1169
+ /** Flight configuration identifier */
1170
+ flightConfigurationId?: string;
1171
+ }
1165
1172
 
1166
1173
  /**
1167
1174
  * News article.
@@ -2091,6 +2098,28 @@ declare class EconomyModule extends ModuleBase {
2091
2098
  * @returns Appearance configuration
2092
2099
  */
2093
2100
  playerAppearanceCustomization(player: string): Promise<HaloApiResult<AppearanceCustomization>>;
2101
+ /**
2102
+ * Get customization for multiple players.
2103
+ *
2104
+ * @param playerIds - List of player XUIDs
2105
+ * @returns Player customization collection
2106
+ */
2107
+ getMultiplePlayersCustomization(playerIds: string[]): Promise<HaloApiResult<CustomizationData>>;
2108
+ /**
2109
+ * Get details about all owned cores for a player.
2110
+ *
2111
+ * @param player - Player's numeric XUID
2112
+ * @returns All player cores
2113
+ */
2114
+ getAllOwnedCoresDetails(player: string): Promise<HaloApiResult<Record<string, unknown>>>;
2115
+ /**
2116
+ * Get details about a specific owned core.
2117
+ *
2118
+ * @param player - Player's numeric XUID
2119
+ * @param coreId - Core identifier
2120
+ * @returns Core details
2121
+ */
2122
+ getOwnedCoreDetails(player: string, coreId: string): Promise<HaloApiResult<Record<string, unknown>>>;
2094
2123
  /**
2095
2124
  * Get the main store offerings.
2096
2125
  *
@@ -2133,6 +2162,42 @@ declare class EconomyModule extends ModuleBase {
2133
2162
  * @returns Store items
2134
2163
  */
2135
2164
  getOperationsStore(player: string): Promise<HaloApiResult<StoreItem>>;
2165
+ /**
2166
+ * Get the operation reward levels store.
2167
+ *
2168
+ * @param player - Player's numeric XUID
2169
+ * @returns Store items
2170
+ */
2171
+ getOperationRewardLevelsStore(player: string): Promise<HaloApiResult<StoreItem>>;
2172
+ /**
2173
+ * Get the XP grants store.
2174
+ *
2175
+ * @param player - Player's numeric XUID
2176
+ * @returns Store items
2177
+ */
2178
+ getXpGrantsStore(player: string): Promise<HaloApiResult<StoreItem>>;
2179
+ /**
2180
+ * Get items from a credit sub-store.
2181
+ *
2182
+ * Credit sub-stores (0-5) contain different categories of items
2183
+ * purchasable with credits.
2184
+ *
2185
+ * @param player - Player's numeric XUID
2186
+ * @param storeIndex - Sub-store index (0-5)
2187
+ * @returns Store items
2188
+ */
2189
+ getCreditSubStore(player: string, storeIndex: number): Promise<HaloApiResult<StoreItem>>;
2190
+ /**
2191
+ * Get items from a soft currency (Spartan Points) sub-store.
2192
+ *
2193
+ * Soft currency sub-stores (0-15) contain different categories of items
2194
+ * purchasable with Spartan Points on The Exchange.
2195
+ *
2196
+ * @param player - Player's numeric XUID
2197
+ * @param storeIndex - Sub-store index (0-15)
2198
+ * @returns Store items
2199
+ */
2200
+ getSoftCurrencySubStore(player: string, storeIndex: number): Promise<HaloApiResult<StoreItem>>;
2136
2201
  /**
2137
2202
  * Get scheduled storefront offerings.
2138
2203
  *
@@ -2408,6 +2473,149 @@ declare class GameCmsModule extends ModuleBase {
2408
2473
  * @returns Typed file contents
2409
2474
  */
2410
2475
  getProgressionFile<T>(filePath: string): Promise<HaloApiResult<T>>;
2476
+ /**
2477
+ * Get all available achievements.
2478
+ *
2479
+ * @returns Achievement collection
2480
+ */
2481
+ getAchievements(): Promise<HaloApiResult<Record<string, unknown>>>;
2482
+ /**
2483
+ * Get the Play Now button settings (fallback playlist).
2484
+ *
2485
+ * @returns Fallback playlist settings
2486
+ */
2487
+ getPlayNowButtonSettings(): Promise<HaloApiResult<Record<string, unknown>>>;
2488
+ /**
2489
+ * Get custom game default settings.
2490
+ *
2491
+ * @returns Custom game definition
2492
+ */
2493
+ getCustomGameDefaults(): Promise<HaloApiResult<Record<string, unknown>>>;
2494
+ /**
2495
+ * Get lobby error messages.
2496
+ *
2497
+ * @param flightId - Flight ID
2498
+ * @returns Lobby error message list
2499
+ */
2500
+ getLobbyErrorMessages(flightId: string): Promise<HaloApiResult<Record<string, unknown>>>;
2501
+ /**
2502
+ * Get network configuration.
2503
+ *
2504
+ * @param flightId - Flight ID
2505
+ * @returns Network configuration
2506
+ */
2507
+ getNetworkConfiguration(flightId: string): Promise<HaloApiResult<Record<string, unknown>>>;
2508
+ /**
2509
+ * Get a multiplayer playlist configuration.
2510
+ *
2511
+ * @param playlistFile - Playlist file name (e.g., "uuid.json")
2512
+ * @returns Playlist configuration
2513
+ */
2514
+ getMultiplayerPlaylistConfiguration(playlistFile: string): Promise<HaloApiResult<Record<string, unknown>>>;
2515
+ /**
2516
+ * Get async compute overrides.
2517
+ *
2518
+ * @returns Async compute override configuration
2519
+ */
2520
+ getAsyncComputeOverrides(): Promise<HaloApiResult<Record<string, unknown>>>;
2521
+ /**
2522
+ * Get CPU presets.
2523
+ *
2524
+ * @returns CPU preset configuration
2525
+ */
2526
+ getCpuPresets(): Promise<HaloApiResult<Record<string, unknown>>>;
2527
+ /**
2528
+ * Get device preset overrides.
2529
+ *
2530
+ * @returns Device preset overrides
2531
+ */
2532
+ getDevicePresetOverrides(): Promise<HaloApiResult<Record<string, unknown>>>;
2533
+ /**
2534
+ * Get graphics spec control overrides.
2535
+ *
2536
+ * @returns Graphics spec control overrides
2537
+ */
2538
+ getGraphicsSpecControlOverrides(): Promise<HaloApiResult<Record<string, unknown>>>;
2539
+ /**
2540
+ * Get graphics specs/overrides.
2541
+ *
2542
+ * @returns Graphics overrides
2543
+ */
2544
+ getGraphicSpecs(): Promise<HaloApiResult<string>>;
2545
+ /**
2546
+ * Get recommended drivers.
2547
+ *
2548
+ * @returns Driver manifest
2549
+ */
2550
+ getRecommendedDrivers(): Promise<HaloApiResult<Record<string, unknown>>>;
2551
+ /**
2552
+ * Get claw (clawback) access list.
2553
+ *
2554
+ * @param flightId - Flight ID
2555
+ * @returns Claw access snapshot
2556
+ */
2557
+ getClawAccess(flightId: string): Promise<HaloApiResult<Record<string, unknown>>>;
2558
+ /**
2559
+ * Get not allowed in title message.
2560
+ *
2561
+ * @returns OE configuration message
2562
+ */
2563
+ getNotAllowedInTitleMessage(): Promise<HaloApiResult<Record<string, unknown>>>;
2564
+ /**
2565
+ * Get guide for images files.
2566
+ *
2567
+ * @param flightId - Flight ID
2568
+ * @returns Guide container with file listings
2569
+ */
2570
+ getGuideImages(flightId: string): Promise<HaloApiResult<Record<string, unknown>>>;
2571
+ /**
2572
+ * Get guide for multiplayer files.
2573
+ *
2574
+ * @param flightId - Flight ID
2575
+ * @returns Guide container with file listings
2576
+ */
2577
+ getGuideMultiplayer(flightId: string): Promise<HaloApiResult<Record<string, unknown>>>;
2578
+ /**
2579
+ * Get guide for news files.
2580
+ *
2581
+ * @param flightId - Flight ID
2582
+ * @returns Guide container with file listings
2583
+ */
2584
+ getGuideNews(flightId: string): Promise<HaloApiResult<Record<string, unknown>>>;
2585
+ /**
2586
+ * Get guide for progression files.
2587
+ *
2588
+ * @param flightId - Flight ID
2589
+ * @returns Guide container with file listings
2590
+ */
2591
+ getGuideProgression(flightId: string): Promise<HaloApiResult<Record<string, unknown>>>;
2592
+ /**
2593
+ * Get guide for spec files.
2594
+ *
2595
+ * @param flightId - Flight ID
2596
+ * @returns Guide container with file listings
2597
+ */
2598
+ getGuideSpecs(flightId: string): Promise<HaloApiResult<Record<string, unknown>>>;
2599
+ /**
2600
+ * Get guide for title authorization files.
2601
+ *
2602
+ * @param flightId - Flight ID
2603
+ * @returns Guide container with file listings
2604
+ */
2605
+ getGuideTitleAuthorization(flightId: string): Promise<HaloApiResult<Record<string, unknown>>>;
2606
+ /**
2607
+ * Get emblem mapping configuration.
2608
+ *
2609
+ * @returns Emblem mapping dictionary
2610
+ */
2611
+ getEmblemMapping(): Promise<HaloApiResult<Record<string, unknown>>>;
2612
+ /**
2613
+ * Get a generic file from Waypoint service.
2614
+ *
2615
+ * @param filePath - Path to the file
2616
+ * @returns File data as bytes
2617
+ */
2618
+ getGenericWaypointFile(filePath: string): Promise<HaloApiResult<Uint8Array>>;
2411
2619
  }
2412
2620
 
2413
2621
  /**
@@ -2468,6 +2676,12 @@ declare class LobbyModule extends ModuleBase {
2468
2676
  * ```typescript
2469
2677
  * // Get clearance level
2470
2678
  * const clearance = await client.settings.getClearanceLevel();
2679
+ *
2680
+ * // Get flighted feature flags
2681
+ * const flags = await client.settings.getFlightedFeatureFlags('flight-id');
2682
+ *
2683
+ * // Get active clearance
2684
+ * const active = await client.settings.getActiveClearance('1.6');
2471
2685
  * ```
2472
2686
  */
2473
2687
  declare class SettingsModule extends ModuleBase {
@@ -2480,6 +2694,60 @@ declare class SettingsModule extends ModuleBase {
2480
2694
  * @returns Flighted feature flags
2481
2695
  */
2482
2696
  getClearanceLevel(): Promise<HaloApiResult<FlightedFeatureFlags>>;
2697
+ /**
2698
+ * Get a list of features enabled for a given flight.
2699
+ *
2700
+ * @param flightId - Clearance ID/flight that is being used
2701
+ * @returns Flighted feature flags
2702
+ */
2703
+ getFlightedFeatureFlags(flightId: string): Promise<HaloApiResult<FlightedFeatureFlags>>;
2704
+ /**
2705
+ * Get the currently active clearance.
2706
+ *
2707
+ * @param release - Release identifier (e.g., "1.4", "1.5", "1.6")
2708
+ * @returns Player clearance data
2709
+ */
2710
+ getActiveClearance(release: string): Promise<HaloApiResult<PlayerClearance>>;
2711
+ /**
2712
+ * Get the currently active flight.
2713
+ *
2714
+ * @param sandbox - Sandbox identifier (typically "UNUSED")
2715
+ * @param buildNumber - Game build number (e.g., "211755.22.01.23.0549-0")
2716
+ * @param release - Release identifier (e.g., "1.4", "1.5")
2717
+ * @returns Player clearance data
2718
+ */
2719
+ getActiveFlight(sandbox: string, buildNumber: string, release: string): Promise<HaloApiResult<PlayerClearance>>;
2720
+ /**
2721
+ * Get the clearance/flight ID for a specific audience.
2722
+ *
2723
+ * @param audience - Audience targeting (e.g., "RETAIL")
2724
+ * @param sandbox - Sandbox identifier (typically "UNUSED")
2725
+ * @param buildNumber - Game build number
2726
+ * @param release - Release identifier
2727
+ * @returns Player clearance data
2728
+ */
2729
+ getClearance(audience: string, sandbox: string, buildNumber: string, release: string): Promise<HaloApiResult<PlayerClearance>>;
2730
+ /**
2731
+ * Get the player clearance/flight ID for a specific audience.
2732
+ *
2733
+ * @param audience - Audience targeting (e.g., "RETAIL")
2734
+ * @param player - Player XUID
2735
+ * @param sandbox - Sandbox identifier (typically "UNUSED")
2736
+ * @param buildNumber - Game build number
2737
+ * @param release - Release identifier
2738
+ * @returns Player clearance data
2739
+ */
2740
+ getPlayerClearance(audience: string, player: string, sandbox: string, buildNumber: string, release: string): Promise<HaloApiResult<PlayerClearance>>;
2741
+ /**
2742
+ * Get the player clearance/flight ID for RETAIL audience.
2743
+ *
2744
+ * @param player - Player XUID
2745
+ * @param sandbox - Sandbox identifier (typically "UNUSED")
2746
+ * @param buildNumber - Game build number
2747
+ * @param release - Release identifier
2748
+ * @returns Player clearance data
2749
+ */
2750
+ getPlayerClearanceRetail(player: string, sandbox: string, buildNumber: string, release: string): Promise<HaloApiResult<PlayerClearance>>;
2483
2751
  }
2484
2752
 
2485
2753
  /**
@@ -3401,6 +3669,30 @@ interface ModerationKey {
3401
3669
  /** Expiration time (ISO 8601) */
3402
3670
  expiresAt?: string;
3403
3671
  }
3672
+ /**
3673
+ * Signing key for moderation proofs.
3674
+ */
3675
+ interface SigningKey {
3676
+ /** Key type */
3677
+ kty?: string;
3678
+ /** Key use */
3679
+ use?: string;
3680
+ /** Key ID */
3681
+ kid?: string;
3682
+ /** Key modulus (RSA) */
3683
+ n?: string;
3684
+ /** Key exponent (RSA) */
3685
+ e?: string;
3686
+ /** X.509 certificate chain */
3687
+ x5c?: string[];
3688
+ }
3689
+ /**
3690
+ * Container for moderation proof signing keys.
3691
+ */
3692
+ interface ModerationProofKeys {
3693
+ /** List of signing keys */
3694
+ keys?: SigningKey[];
3695
+ }
3404
3696
  /**
3405
3697
  * Text Moderation module for moderation-related APIs.
3406
3698
  *
@@ -3408,6 +3700,12 @@ interface ModerationKey {
3408
3700
  * ```typescript
3409
3701
  * // Get moderation key
3410
3702
  * const key = await client.textModeration.getModerationKey();
3703
+ *
3704
+ * // Get all signing keys
3705
+ * const keys = await client.textModeration.getSigningKeys();
3706
+ *
3707
+ * // Get a specific signing key
3708
+ * const key = await client.textModeration.getSigningKey('key-id');
3411
3709
  * ```
3412
3710
  */
3413
3711
  declare class TextModerationModule extends ModuleBase {
@@ -3418,6 +3716,19 @@ declare class TextModerationModule extends ModuleBase {
3418
3716
  * @returns Moderation key
3419
3717
  */
3420
3718
  getModerationKey(): Promise<HaloApiResult<ModerationKey>>;
3719
+ /**
3720
+ * Get a specific moderation proof signing key.
3721
+ *
3722
+ * @param keyId - Key ID (can be obtained from getSigningKeys)
3723
+ * @returns Signing key data
3724
+ */
3725
+ getSigningKey(keyId: string): Promise<HaloApiResult<SigningKey>>;
3726
+ /**
3727
+ * Get all available moderation proof signing keys.
3728
+ *
3729
+ * @returns Container with all signing keys
3730
+ */
3731
+ getSigningKeys(): Promise<HaloApiResult<ModerationProofKeys>>;
3421
3732
  }
3422
3733
 
3423
3734
  /**
@@ -3819,7 +4130,7 @@ declare class UgcModule extends ModuleBase {
3819
4130
  * @param assetId - Asset GUID
3820
4131
  * @returns Asset details
3821
4132
  */
3822
- getAsset(title: string, assetType: AssetKind, assetId: string): Promise<HaloApiResult<AuthoringAsset>>;
4133
+ getAsset(title: string, assetType: string, assetId: string): Promise<HaloApiResult<AuthoringAsset>>;
3823
4134
  /**
3824
4135
  * Get the latest version of an asset.
3825
4136
  *
@@ -3828,7 +4139,15 @@ declare class UgcModule extends ModuleBase {
3828
4139
  * @param assetId - Asset GUID
3829
4140
  * @returns Latest asset version
3830
4141
  */
3831
- getLatestAssetVersion(title: string, assetType: AssetKind, assetId: string): Promise<HaloApiResult<AuthoringAssetVersion>>;
4142
+ getLatestAssetVersion(title: string, assetType: string, assetId: string): Promise<HaloApiResult<AuthoringAssetVersion>>;
4143
+ /**
4144
+ * Get the latest version of a film asset.
4145
+ *
4146
+ * @param title - Game title
4147
+ * @param assetId - Film asset GUID
4148
+ * @returns Latest film asset version
4149
+ */
4150
+ getLatestAssetVersionFilm(title: string, assetId: string): Promise<HaloApiResult<AuthoringAssetVersion>>;
3832
4151
  /**
3833
4152
  * Get a specific version of an asset.
3834
4153
  *
@@ -3838,7 +4157,7 @@ declare class UgcModule extends ModuleBase {
3838
4157
  * @param versionId - Version GUID
3839
4158
  * @returns Asset version
3840
4159
  */
3841
- getSpecificAssetVersion(title: string, assetType: AssetKind, assetId: string, versionId: string): Promise<HaloApiResult<AuthoringAssetVersion>>;
4160
+ getSpecificAssetVersion(title: string, assetType: string, assetId: string, versionId: string): Promise<HaloApiResult<AuthoringAssetVersion>>;
3842
4161
  /**
3843
4162
  * Get the published version of an asset.
3844
4163
  *
@@ -3847,7 +4166,7 @@ declare class UgcModule extends ModuleBase {
3847
4166
  * @param assetId - Asset GUID
3848
4167
  * @returns Published asset version
3849
4168
  */
3850
- getPublishedVersion(title: string, assetType: AssetKind, assetId: string): Promise<HaloApiResult<AuthoringAssetVersion>>;
4169
+ getPublishedVersion(title: string, assetType: string, assetId: string): Promise<HaloApiResult<AuthoringAssetVersion>>;
3851
4170
  /**
3852
4171
  * List all versions of an asset.
3853
4172
  *
@@ -3856,7 +4175,7 @@ declare class UgcModule extends ModuleBase {
3856
4175
  * @param assetId - Asset GUID
3857
4176
  * @returns All asset versions
3858
4177
  */
3859
- listAllVersions(title: string, assetType: AssetKind, assetId: string): Promise<HaloApiResult<AuthoringAssetVersionContainer>>;
4178
+ listAllVersions(title: string, assetType: string, assetId: string): Promise<HaloApiResult<AuthoringAssetVersionContainer>>;
3860
4179
  /**
3861
4180
  * List assets created by a player.
3862
4181
  *
@@ -3867,7 +4186,7 @@ declare class UgcModule extends ModuleBase {
3867
4186
  * @param count - Number of results
3868
4187
  * @returns Player's assets
3869
4188
  */
3870
- listPlayerAssets(title: string, player: string, assetType: AssetKind, start?: number, count?: number): Promise<HaloApiResult<AuthoringAssetContainer>>;
4189
+ listPlayerAssets(title: string, player: string, assetType: string, start?: number, count?: number): Promise<HaloApiResult<AuthoringAssetContainer>>;
3871
4190
  /**
3872
4191
  * Favorite an asset.
3873
4192
  *
@@ -3876,7 +4195,7 @@ declare class UgcModule extends ModuleBase {
3876
4195
  * @param assetId - Asset GUID
3877
4196
  * @returns Favorite result
3878
4197
  */
3879
- favoriteAnAsset(player: string, assetType: AssetKind, assetId: string): Promise<HaloApiResult<FavoriteAsset>>;
4198
+ favoriteAnAsset(player: string, assetType: string, assetId: string): Promise<HaloApiResult<FavoriteAsset>>;
3880
4199
  /**
3881
4200
  * Check if a player has bookmarked an asset.
3882
4201
  *
@@ -3886,7 +4205,7 @@ declare class UgcModule extends ModuleBase {
3886
4205
  * @param assetId - Asset GUID
3887
4206
  * @returns Favorite status
3888
4207
  */
3889
- checkAssetPlayerBookmark(title: string, player: string, assetType: AssetKind, assetId: string): Promise<HaloApiResult<FavoriteAsset>>;
4208
+ checkAssetPlayerBookmark(title: string, player: string, assetType: string, assetId: string): Promise<HaloApiResult<FavoriteAsset>>;
3890
4209
  /**
3891
4210
  * List player's favorite assets of a specific type.
3892
4211
  *
@@ -3894,7 +4213,7 @@ declare class UgcModule extends ModuleBase {
3894
4213
  * @param assetType - Type of asset
3895
4214
  * @returns Favorites container
3896
4215
  */
3897
- listPlayerFavorites(player: string, assetType: AssetKind): Promise<HaloApiResult<AuthoringFavoritesContainer>>;
4216
+ listPlayerFavorites(player: string, assetType: string): Promise<HaloApiResult<AuthoringFavoritesContainer>>;
3898
4217
  /**
3899
4218
  * List all of a player's favorite assets.
3900
4219
  *
@@ -3910,7 +4229,7 @@ declare class UgcModule extends ModuleBase {
3910
4229
  * @param assetId - Asset GUID
3911
4230
  * @returns Rating info
3912
4231
  */
3913
- getAssetRatings(player: string, assetType: AssetKind, assetId: string): Promise<HaloApiResult<AuthoringAssetRating>>;
4232
+ getAssetRatings(player: string, assetType: string, assetId: string): Promise<HaloApiResult<AuthoringAssetRating>>;
3914
4233
  /**
3915
4234
  * Rate an asset.
3916
4235
  *
@@ -3920,7 +4239,7 @@ declare class UgcModule extends ModuleBase {
3920
4239
  * @param rating - Rating to submit
3921
4240
  * @returns Updated rating
3922
4241
  */
3923
- rateAnAsset(player: string, assetType: AssetKind, assetId: string, rating: AuthoringAssetRating): Promise<HaloApiResult<AuthoringAssetRating>>;
4242
+ rateAnAsset(player: string, assetType: string, assetId: string, rating: AuthoringAssetRating): Promise<HaloApiResult<AuthoringAssetRating>>;
3924
4243
  /**
3925
4244
  * Report an asset for moderation.
3926
4245
  *
@@ -3930,16 +4249,25 @@ declare class UgcModule extends ModuleBase {
3930
4249
  * @param report - Report details
3931
4250
  * @returns Report result
3932
4251
  */
3933
- reportAnAsset(player: string, assetType: AssetKind, assetId: string, report: AssetReport): Promise<HaloApiResult<AssetReport>>;
4252
+ reportAnAsset(player: string, assetType: string, assetId: string, report: AssetReport): Promise<HaloApiResult<AssetReport>>;
3934
4253
  /**
3935
- * Delete an asset and all its versions.
4254
+ * Delete an asset.
3936
4255
  *
3937
4256
  * @param title - Game title
3938
4257
  * @param assetType - Type of asset
3939
4258
  * @param assetId - Asset GUID
3940
4259
  * @returns Success status
3941
4260
  */
3942
- deleteAllVersions(title: string, assetType: AssetKind, assetId: string): Promise<HaloApiResult<boolean>>;
4261
+ deleteAsset(title: string, assetType: string, assetId: string): Promise<HaloApiResult<boolean>>;
4262
+ /**
4263
+ * Delete all versions of an asset.
4264
+ *
4265
+ * @param title - Game title
4266
+ * @param assetType - Type of asset
4267
+ * @param assetId - Asset GUID
4268
+ * @returns Success status
4269
+ */
4270
+ deleteAllVersions(title: string, assetType: string, assetId: string): Promise<HaloApiResult<boolean>>;
3943
4271
  /**
3944
4272
  * Delete a specific version of an asset.
3945
4273
  *
@@ -3949,7 +4277,26 @@ declare class UgcModule extends ModuleBase {
3949
4277
  * @param versionId - Version GUID
3950
4278
  * @returns Success status
3951
4279
  */
3952
- deleteVersion(title: string, assetType: AssetKind, assetId: string, versionId: string): Promise<HaloApiResult<boolean>>;
4280
+ deleteVersion(title: string, assetType: string, assetId: string, versionId: string): Promise<HaloApiResult<boolean>>;
4281
+ /**
4282
+ * Undelete a previously deleted asset.
4283
+ *
4284
+ * @param title - Game title
4285
+ * @param assetType - Type of asset
4286
+ * @param assetId - Asset GUID
4287
+ * @returns Success status
4288
+ */
4289
+ undeleteAsset(title: string, assetType: string, assetId: string): Promise<HaloApiResult<boolean>>;
4290
+ /**
4291
+ * Undelete a previously deleted asset version.
4292
+ *
4293
+ * @param title - Game title
4294
+ * @param assetType - Type of asset
4295
+ * @param assetId - Asset GUID
4296
+ * @param versionId - Version GUID
4297
+ * @returns Success status
4298
+ */
4299
+ undeleteVersion(title: string, assetType: string, assetId: string, versionId: string): Promise<HaloApiResult<boolean>>;
3953
4300
  /**
3954
4301
  * Publish an asset version.
3955
4302
  *
@@ -3959,7 +4306,7 @@ declare class UgcModule extends ModuleBase {
3959
4306
  * @param clearanceId - Clearance ID
3960
4307
  * @returns Success status
3961
4308
  */
3962
- publishAssetVersion(assetType: AssetKind, assetId: string, versionId: string, clearanceId: string): Promise<HaloApiResult<boolean>>;
4309
+ publishAssetVersion(assetType: string, assetId: string, versionId: string, clearanceId: string): Promise<HaloApiResult<boolean>>;
3963
4310
  /**
3964
4311
  * Unpublish an asset.
3965
4312
  *
@@ -3967,7 +4314,7 @@ declare class UgcModule extends ModuleBase {
3967
4314
  * @param assetId - Asset GUID
3968
4315
  * @returns Success status
3969
4316
  */
3970
- unpublishAsset(assetType: AssetKind, assetId: string): Promise<HaloApiResult<boolean>>;
4317
+ unpublishAsset(assetType: string, assetId: string): Promise<HaloApiResult<boolean>>;
3971
4318
  /**
3972
4319
  * Grant or revoke permissions for an asset.
3973
4320
  *
@@ -3978,7 +4325,7 @@ declare class UgcModule extends ModuleBase {
3978
4325
  * @param permission - Permission details
3979
4326
  * @returns Updated permission
3980
4327
  */
3981
- grantOrRevokePermissions(title: string, assetType: AssetKind, assetId: string, player: string, permission: Permission): Promise<HaloApiResult<Permission>>;
4328
+ grantOrRevokePermissions(title: string, assetType: string, assetId: string, player: string, permission: Permission): Promise<HaloApiResult<Permission>>;
3982
4329
  /**
3983
4330
  * Start an authoring session for an asset.
3984
4331
  *
@@ -3988,7 +4335,7 @@ declare class UgcModule extends ModuleBase {
3988
4335
  * @param includeContainerSas - Include container SAS URL
3989
4336
  * @returns Session details
3990
4337
  */
3991
- startSession(title: string, assetType: AssetKind, assetId: string, includeContainerSas?: boolean): Promise<HaloApiResult<AssetAuthoringSession>>;
4338
+ startSession(title: string, assetType: string, assetId: string, includeContainerSas?: boolean): Promise<HaloApiResult<AssetAuthoringSession>>;
3992
4339
  /**
3993
4340
  * Extend an authoring session.
3994
4341
  *
@@ -3998,7 +4345,7 @@ declare class UgcModule extends ModuleBase {
3998
4345
  * @param includeContainerSas - Include container SAS URL
3999
4346
  * @returns Extended session
4000
4347
  */
4001
- extendSession(title: string, assetType: AssetKind, assetId: string, includeContainerSas?: boolean): Promise<HaloApiResult<AssetAuthoringSession>>;
4348
+ extendSession(title: string, assetType: string, assetId: string, includeContainerSas?: boolean): Promise<HaloApiResult<AssetAuthoringSession>>;
4002
4349
  /**
4003
4350
  * End an authoring session.
4004
4351
  *
@@ -4007,7 +4354,16 @@ declare class UgcModule extends ModuleBase {
4007
4354
  * @param assetId - Asset GUID
4008
4355
  * @returns Success status
4009
4356
  */
4010
- endSession(title: string, assetType: AssetKind, assetId: string): Promise<HaloApiResult<boolean>>;
4357
+ endSession(title: string, assetType: string, assetId: string): Promise<HaloApiResult<boolean>>;
4358
+ /**
4359
+ * Spawn (create) a new asset.
4360
+ *
4361
+ * @param title - Game title
4362
+ * @param assetType - Type of asset (e.g., "UgcGameVariants", "Maps", "Prefabs")
4363
+ * @param asset - Asset definition
4364
+ * @returns Created asset
4365
+ */
4366
+ spawnAsset(title: string, assetType: string, asset: Record<string, unknown>): Promise<HaloApiResult<AuthoringAsset>>;
4011
4367
  /**
4012
4368
  * Create a new asset version.
4013
4369
  *
@@ -4017,7 +4373,7 @@ declare class UgcModule extends ModuleBase {
4017
4373
  * @param starter - Source asset to clone from
4018
4374
  * @returns New asset version
4019
4375
  */
4020
- createAssetVersion(title: string, assetType: AssetKind, assetId: string, starter: AuthoringSessionSourceStarter): Promise<HaloApiResult<AuthoringAssetVersion>>;
4376
+ createAssetVersion(title: string, assetType: string, assetId: string, starter: AuthoringSessionSourceStarter): Promise<HaloApiResult<AuthoringAssetVersion>>;
4021
4377
  /**
4022
4378
  * Patch an asset version.
4023
4379
  *
@@ -4028,7 +4384,7 @@ declare class UgcModule extends ModuleBase {
4028
4384
  * @param patchedAsset - Updated asset data
4029
4385
  * @returns Updated asset version
4030
4386
  */
4031
- patchAssetVersion(title: string, assetType: AssetKind, assetId: string, versionId: string, patchedAsset: Partial<AuthoringAssetVersion>): Promise<HaloApiResult<AuthoringAssetVersion>>;
4387
+ patchAssetVersion(title: string, assetType: string, assetId: string, versionId: string, patchedAsset: Partial<AuthoringAssetVersion>): Promise<HaloApiResult<AuthoringAssetVersion>>;
4032
4388
  /**
4033
4389
  * Get a blob from UGC storage.
4034
4390
  *
@@ -4045,16 +4401,20 @@ declare class UgcModule extends ModuleBase {
4045
4401
  * - Searching for maps, game variants, and other content
4046
4402
  * - Browsing featured and popular content
4047
4403
  * - Getting recommended content
4404
+ * - Getting specific asset types (maps, playlists, prefabs, etc.)
4048
4405
  *
4049
4406
  * @example
4050
4407
  * ```typescript
4051
4408
  * // Search for maps
4052
4409
  * const maps = await client.ugcDiscovery.search({
4053
- * assetKinds: [AssetKind.Map],
4410
+ * assetKinds: ['Map'],
4054
4411
  * term: 'blood gulch',
4055
4412
  * count: 10,
4056
4413
  * });
4057
4414
  *
4415
+ * // Get a specific map
4416
+ * const map = await client.ugcDiscovery.getMap('asset-id', 'version-id');
4417
+ *
4058
4418
  * // Get featured maps
4059
4419
  * const featured = await client.ugcDiscovery.getFeatured('Map');
4060
4420
  * ```
@@ -4071,7 +4431,7 @@ declare class UgcDiscoveryModule extends ModuleBase {
4071
4431
  /** Search term */
4072
4432
  term?: string;
4073
4433
  /** Asset kinds to include */
4074
- assetKinds?: AssetKind[];
4434
+ assetKinds?: string[];
4075
4435
  /** Tags to filter by */
4076
4436
  tags?: string[];
4077
4437
  /** Author XUID */
@@ -4084,6 +4444,20 @@ declare class UgcDiscoveryModule extends ModuleBase {
4084
4444
  count?: number;
4085
4445
  /** Starting offset */
4086
4446
  start?: number;
4447
+ /** Minimum average rating between 0 and 5 */
4448
+ averageRatingMin?: number;
4449
+ /** Minimum date created */
4450
+ fromDateCreatedUtc?: Date;
4451
+ /** Maximum date created */
4452
+ toDateCreatedUtc?: Date;
4453
+ /** Minimum date modified */
4454
+ fromDateModifiedUtc?: Date;
4455
+ /** Maximum date modified */
4456
+ toDateModifiedUtc?: Date;
4457
+ /** Minimum date published */
4458
+ fromDatePublishedUtc?: Date;
4459
+ /** Maximum date published */
4460
+ toDatePublishedUtc?: Date;
4087
4461
  }): Promise<HaloApiResult<UgcSearchResult>>;
4088
4462
  /**
4089
4463
  * Get featured content of a specific type.
@@ -4091,7 +4465,7 @@ declare class UgcDiscoveryModule extends ModuleBase {
4091
4465
  * @param assetKind - Type of asset
4092
4466
  * @returns Featured assets
4093
4467
  */
4094
- getFeatured(assetKind: AssetKind): Promise<HaloApiResult<UgcSearchResult>>;
4468
+ getFeatured(assetKind: string): Promise<HaloApiResult<UgcSearchResult>>;
4095
4469
  /**
4096
4470
  * Get popular content of a specific type.
4097
4471
  *
@@ -4100,7 +4474,7 @@ declare class UgcDiscoveryModule extends ModuleBase {
4100
4474
  * @param count - Number of results
4101
4475
  * @returns Popular assets
4102
4476
  */
4103
- getPopular(assetKind: AssetKind, start?: number, count?: number): Promise<HaloApiResult<UgcSearchResult>>;
4477
+ getPopular(assetKind: string, start?: number, count?: number): Promise<HaloApiResult<UgcSearchResult>>;
4104
4478
  /**
4105
4479
  * Get recent content of a specific type.
4106
4480
  *
@@ -4109,7 +4483,7 @@ declare class UgcDiscoveryModule extends ModuleBase {
4109
4483
  * @param count - Number of results
4110
4484
  * @returns Recent assets
4111
4485
  */
4112
- getRecent(assetKind: AssetKind, start?: number, count?: number): Promise<HaloApiResult<UgcSearchResult>>;
4486
+ getRecent(assetKind: string, start?: number, count?: number): Promise<HaloApiResult<UgcSearchResult>>;
4113
4487
  /**
4114
4488
  * Get recommended content for a player.
4115
4489
  *
@@ -4118,7 +4492,7 @@ declare class UgcDiscoveryModule extends ModuleBase {
4118
4492
  * @param count - Number of results
4119
4493
  * @returns Recommended assets
4120
4494
  */
4121
- getRecommended(player: string, assetKind: AssetKind, count?: number): Promise<HaloApiResult<UgcSearchResult>>;
4495
+ getRecommended(player: string, assetKind: string, count?: number): Promise<HaloApiResult<UgcSearchResult>>;
4122
4496
  /**
4123
4497
  * Browse content by tag.
4124
4498
  *
@@ -4128,7 +4502,7 @@ declare class UgcDiscoveryModule extends ModuleBase {
4128
4502
  * @param count - Number of results
4129
4503
  * @returns Tagged assets
4130
4504
  */
4131
- browseByTag(assetKind: AssetKind, tag: string, start?: number, count?: number): Promise<HaloApiResult<UgcSearchResult>>;
4505
+ browseByTag(assetKind: string, tag: string, start?: number, count?: number): Promise<HaloApiResult<UgcSearchResult>>;
4132
4506
  /**
4133
4507
  * Get asset details for discovery purposes.
4134
4508
  *
@@ -4136,12 +4510,187 @@ declare class UgcDiscoveryModule extends ModuleBase {
4136
4510
  * @param assetId - Asset GUID
4137
4511
  * @returns Asset details
4138
4512
  */
4139
- getAssetDetails(assetKind: AssetKind, assetId: string): Promise<HaloApiResult<AuthoringAsset>>;
4513
+ getAssetDetails(assetKind: string, assetId: string): Promise<HaloApiResult<AuthoringAsset>>;
4514
+ /**
4515
+ * Get tags information.
4516
+ *
4517
+ * @returns Available tags info
4518
+ */
4519
+ getTagsInfo(): Promise<HaloApiResult<AuthoringAsset>>;
4520
+ /**
4521
+ * Get the game manifest by build GUID.
4522
+ *
4523
+ * @param buildGuid - Build GUID
4524
+ * @returns Manifest data
4525
+ */
4526
+ getManifestByBuildGuid(buildGuid: string): Promise<HaloApiResult<AuthoringAsset>>;
4527
+ /**
4528
+ * Get the game manifest by build number.
4529
+ *
4530
+ * @param buildNumber - Build number (e.g., "6.10022.10499")
4531
+ * @returns Manifest data
4532
+ */
4533
+ getManifestByBuild(buildNumber: string): Promise<HaloApiResult<AuthoringAsset>>;
4534
+ /**
4535
+ * Get a specific manifest version.
4536
+ *
4537
+ * @param assetId - Manifest asset ID
4538
+ * @param versionId - Manifest version ID
4539
+ * @param clearanceId - Active flight clearance ID
4540
+ * @returns Manifest data
4541
+ */
4542
+ getManifest(assetId: string, versionId: string, clearanceId: string): Promise<HaloApiResult<AuthoringAsset>>;
4543
+ /**
4544
+ * Get a specific map version.
4545
+ *
4546
+ * @param assetId - Map asset ID
4547
+ * @param versionId - Map version ID
4548
+ * @returns Map data
4549
+ */
4550
+ getMap(assetId: string, versionId: string): Promise<HaloApiResult<AuthoringAsset>>;
4551
+ /**
4552
+ * Get a map without specifying version (returns latest).
4553
+ *
4554
+ * @param assetId - Map asset ID
4555
+ * @returns Map data
4556
+ */
4557
+ getMapWithoutVersion(assetId: string): Promise<HaloApiResult<AuthoringAsset>>;
4558
+ /**
4559
+ * Get a specific map mode pair version.
4560
+ *
4561
+ * @param assetId - Map mode pair asset ID
4562
+ * @param versionId - Version ID
4563
+ * @param clearanceId - Active flight clearance ID
4564
+ * @returns Map mode pair data
4565
+ */
4566
+ getMapModePair(assetId: string, versionId: string, clearanceId: string): Promise<HaloApiResult<AuthoringAsset>>;
4567
+ /**
4568
+ * Get a map mode pair without specifying version.
4569
+ *
4570
+ * @param assetId - Map mode pair asset ID
4571
+ * @returns Map mode pair data
4572
+ */
4573
+ getMapModePairWithoutVersion(assetId: string): Promise<HaloApiResult<AuthoringAsset>>;
4574
+ /**
4575
+ * Get a specific playlist version.
4576
+ *
4577
+ * @param assetId - Playlist asset ID
4578
+ * @param versionId - Version ID
4579
+ * @param clearanceId - Active flight clearance ID
4580
+ * @returns Playlist data
4581
+ */
4582
+ getPlaylist(assetId: string, versionId: string, clearanceId: string): Promise<HaloApiResult<AuthoringAsset>>;
4583
+ /**
4584
+ * Get a playlist without specifying version.
4585
+ *
4586
+ * @param assetId - Playlist asset ID
4587
+ * @returns Playlist data
4588
+ */
4589
+ getPlaylistWithoutVersion(assetId: string): Promise<HaloApiResult<AuthoringAsset>>;
4590
+ /**
4591
+ * Get a specific prefab version.
4592
+ *
4593
+ * @param assetId - Prefab asset ID
4594
+ * @param versionId - Version ID
4595
+ * @returns Prefab data
4596
+ */
4597
+ getPrefab(assetId: string, versionId: string): Promise<HaloApiResult<AuthoringAsset>>;
4598
+ /**
4599
+ * Get a prefab without specifying version.
4600
+ *
4601
+ * @param assetId - Prefab asset ID
4602
+ * @returns Prefab data
4603
+ */
4604
+ getPrefabWithoutVersion(assetId: string): Promise<HaloApiResult<AuthoringAsset>>;
4605
+ /**
4606
+ * Get a specific project version.
4607
+ *
4608
+ * @param assetId - Project asset ID
4609
+ * @param versionId - Version ID
4610
+ * @returns Project data
4611
+ */
4612
+ getProject(assetId: string, versionId: string): Promise<HaloApiResult<AuthoringAsset>>;
4613
+ /**
4614
+ * Get a project without specifying version.
4615
+ *
4616
+ * @param assetId - Project asset ID
4617
+ * @returns Project data
4618
+ */
4619
+ getProjectWithoutVersion(assetId: string): Promise<HaloApiResult<AuthoringAsset>>;
4620
+ /**
4621
+ * Get the Forge templates (canvases).
4622
+ *
4623
+ * @returns Forge templates project
4624
+ */
4625
+ getForgeTemplates(): Promise<HaloApiResult<AuthoringAsset>>;
4626
+ /**
4627
+ * Get the Forge mode categories.
4628
+ *
4629
+ * @returns Forge mode categories project
4630
+ */
4631
+ getForgeModeCategories(): Promise<HaloApiResult<AuthoringAsset>>;
4632
+ /**
4633
+ * Get the community tab assets.
4634
+ *
4635
+ * @returns Community tab project
4636
+ */
4637
+ getCommunityTab(): Promise<HaloApiResult<AuthoringAsset>>;
4638
+ /**
4639
+ * Get 343 recommended assets.
4640
+ *
4641
+ * @returns 343 recommended project
4642
+ */
4643
+ get343Recommended(): Promise<HaloApiResult<AuthoringAsset>>;
4644
+ /**
4645
+ * Get a specific engine game variant version.
4646
+ *
4647
+ * @param assetId - Engine game variant asset ID
4648
+ * @param versionId - Version ID
4649
+ * @returns Engine game variant data
4650
+ */
4651
+ getEngineGameVariant(assetId: string, versionId: string): Promise<HaloApiResult<AuthoringAsset>>;
4652
+ /**
4653
+ * Get an engine game variant without specifying version.
4654
+ *
4655
+ * @param assetId - Engine game variant asset ID
4656
+ * @returns Engine game variant data
4657
+ */
4658
+ getEngineGameVariantWithoutVersion(assetId: string): Promise<HaloApiResult<AuthoringAsset>>;
4659
+ /**
4660
+ * Get a specific UGC game variant version.
4661
+ *
4662
+ * @param assetId - UGC game variant asset ID
4663
+ * @param versionId - Version ID
4664
+ * @returns UGC game variant data
4665
+ */
4666
+ getUgcGameVariant(assetId: string, versionId: string): Promise<HaloApiResult<AuthoringAsset>>;
4667
+ /**
4668
+ * Get a UGC game variant without specifying version.
4669
+ *
4670
+ * @param assetId - UGC game variant asset ID
4671
+ * @returns UGC game variant data
4672
+ */
4673
+ getUgcGameVariantWithoutVersion(assetId: string): Promise<HaloApiResult<AuthoringAsset>>;
4674
+ /**
4675
+ * Get a film by asset ID.
4676
+ *
4677
+ * @param assetId - Film asset ID
4678
+ * @returns Film data
4679
+ */
4680
+ getFilm(assetId: string): Promise<HaloApiResult<AuthoringAsset>>;
4681
+ /**
4682
+ * Get film asset for a match (spectate).
4683
+ *
4684
+ * @param matchId - Match GUID
4685
+ * @returns Film asset if available
4686
+ */
4687
+ spectateByMatchId(matchId: string): Promise<HaloApiResult<AuthoringAsset>>;
4140
4688
  /**
4141
4689
  * Get film asset for a match.
4142
4690
  *
4143
4691
  * @param matchId - Match GUID
4144
4692
  * @returns Film asset if available
4693
+ * @deprecated Use spectateByMatchId instead
4145
4694
  */
4146
4695
  getFilmByMatchId(matchId: string): Promise<HaloApiResult<AuthoringAsset>>;
4147
4696
  }