@indiegems/gem-web-sdk 7.3.0 → 7.4.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/sdk.d.ts CHANGED
@@ -205,6 +205,7 @@ type GameConfigSnapshot = {
205
205
  "async_opponent_types"?: SnapshotAsyncOpponentType[];
206
206
  "catalogs": SnapshotCatalog[];
207
207
  "currencies": SnapshotCurrency[];
208
+ "friend_challenge_templates"?: SnapshotFriendChallengeTemplate[];
208
209
  "game_room_templates": SnapshotGameRoomTemplate[];
209
210
  "hash": string;
210
211
  "items": SnapshotItem[];
@@ -212,6 +213,7 @@ type GameConfigSnapshot = {
212
213
  "leaderboards"?: SnapshotLeaderboard[];
213
214
  "loot_tables": SnapshotLootTable[];
214
215
  "progressions": SnapshotProgression[];
216
+ "rewarded_placements"?: SnapshotRewardedPlacement[];
215
217
  "run_types"?: SnapshotRunType[];
216
218
  "version": number;
217
219
  };
@@ -419,6 +421,21 @@ type SnapshotCurrency = {
419
421
  "min_balance": number;
420
422
  "slug"?: string | null;
421
423
  };
424
+ type SnapshotFriendChallengeParam = {
425
+ "key": string;
426
+ "localized"?: Record<string, unknown> | null;
427
+ "max"?: unknown;
428
+ "min"?: unknown;
429
+ "pattern"?: string | null;
430
+ "type": string;
431
+ "values"?: Record<string, unknown> | null;
432
+ };
433
+ type SnapshotFriendChallengeTemplate = {
434
+ "key": string;
435
+ "localized"?: Record<string, unknown>;
436
+ "params"?: SnapshotFriendChallengeParam[];
437
+ "text": string;
438
+ };
422
439
  type SnapshotGameRoomTemplate = {
423
440
  "allow_host_transfer": boolean;
424
441
  "allow_join_in_progress"?: boolean;
@@ -526,6 +543,25 @@ type SnapshotRecipe = {
526
543
  "slug"?: string | null;
527
544
  "sort_order": number;
528
545
  };
546
+ type SnapshotRewardGrant = {
547
+ "item_definition_id": string;
548
+ "quantity": number;
549
+ "type": "item_grant";
550
+ } | {
551
+ "amount": number;
552
+ "currency_id": string;
553
+ "type": "currency_grant";
554
+ };
555
+ type SnapshotRewardedPlacement = {
556
+ "allowance_currency_id"?: string | null;
557
+ "cooldown_seconds": number;
558
+ "grants": SnapshotRewardGrant[];
559
+ "max_held"?: number | null;
560
+ "max_per_day": number;
561
+ "placement": string;
562
+ "reward_class": string;
563
+ "without_ads": string;
564
+ };
529
565
  type SnapshotRunType = {
530
566
  "bucket_1_allowed_values"?: string[] | null;
531
567
  "bucket_1_name"?: string | null;
@@ -1211,10 +1247,35 @@ interface ListFriendsOptions {
1211
1247
  readonly cursor?: string;
1212
1248
  readonly signal?: AbortSignal;
1213
1249
  }
1250
+ interface FriendChallengeRequest {
1251
+ readonly playerId: string;
1252
+ readonly template: string;
1253
+ readonly params?: Readonly<Record<string, string | number>>;
1254
+ }
1255
+ type FriendChallengeOutcomeKind = "accepted" | "cancelled" | "refused" | "unavailable";
1256
+ interface FriendChallengeOutcome {
1257
+ readonly outcome: FriendChallengeOutcomeKind;
1258
+ }
1259
+ type FriendChallengeErrorCode = "unknown_template" | "template_not_on_channel" | "param_invalid" | "param_undeclared" | "recipient_invalid" | (string & {});
1260
+ declare class FriendChallengeError extends GemApiError {
1261
+ readonly code?: FriendChallengeErrorCode;
1262
+ readonly param?: string;
1263
+ readonly channel?: string;
1264
+ readonly configVersion?: number;
1265
+ constructor(source: GemApiError, extra?: {
1266
+ readonly param?: string;
1267
+ readonly channel?: string;
1268
+ readonly configVersion?: number;
1269
+ });
1270
+ }
1271
+ interface FriendsApiDependencies {
1272
+ readonly challenge?: (request: FriendChallengeRequest) => Promise<FriendChallengeOutcome>;
1273
+ }
1214
1274
  declare class FriendsApi {
1215
1275
  #private;
1216
- constructor(api: GameApi$1);
1276
+ constructor(api: GameApi$1, dependencies?: FriendsApiDependencies);
1217
1277
  list(options?: ListFriendsOptions): Promise<FriendsPage>;
1278
+ challenge(request: FriendChallengeRequest): Promise<FriendChallengeOutcome>;
1218
1279
  }
1219
1280
  type PlatformCurrencyAccess = "read" | "spend";
1220
1281
  interface PlatformCurrency {
@@ -1231,9 +1292,35 @@ declare class PlatformCurrenciesApi {
1231
1292
  constructor(api: GameApi$1);
1232
1293
  get(options?: PlatformCurrencyReadOptions): Promise<readonly PlatformCurrency[]>;
1233
1294
  }
1295
+ type EarnAllowancePeriod = "day" | "window";
1296
+ interface EarnAllowance {
1297
+ readonly currencySlug: string;
1298
+ readonly currencyId: string;
1299
+ readonly limit: number;
1300
+ readonly earned: number;
1301
+ readonly remaining: number;
1302
+ readonly period: EarnAllowancePeriod;
1303
+ readonly periodDays: number;
1304
+ readonly resetsAt?: number;
1305
+ }
1306
+ interface EarnAllowanceReadOptions {
1307
+ readonly signal?: AbortSignal;
1308
+ }
1309
+ interface EarnAllowanceSignal {
1310
+ on(listener: () => void): () => void;
1311
+ emit(): void;
1312
+ }
1313
+ type EarnAllowanceEvent = "changed";
1314
+ declare class PlatformEarnAllowanceApi {
1315
+ #private;
1316
+ constructor(api: GameApi$1, signal?: EarnAllowanceSignal, log?: ((line: string) => void) | null);
1317
+ get(options?: EarnAllowanceReadOptions): Promise<readonly EarnAllowance[]>;
1318
+ on(event: EarnAllowanceEvent, listener: () => void): () => void;
1319
+ }
1234
1320
  declare class PlatformApi {
1235
1321
  readonly currencies: PlatformCurrenciesApi;
1236
- constructor(api: GameApi$1);
1322
+ readonly earnAllowance: PlatformEarnAllowanceApi;
1323
+ constructor(api: GameApi$1, earnAllowanceSignal?: EarnAllowanceSignal, log?: ((line: string) => void) | null);
1237
1324
  }
1238
1325
  interface ProfileShowcaseEntry$1 {
1239
1326
  readonly key: string;
@@ -1856,6 +1943,12 @@ interface GemViewport$1 {
1856
1943
  bottom: number;
1857
1944
  left: number;
1858
1945
  };
1946
+ readonly reserved?: {
1947
+ x: number;
1948
+ y: number;
1949
+ width: number;
1950
+ height: number;
1951
+ }[];
1859
1952
  }
1860
1953
  interface GemDeviceSettings {
1861
1954
  readonly gem: typeof PROTOCOL;
@@ -1977,6 +2070,18 @@ interface GemSignInResult {
1977
2070
  readonly requestId: string;
1978
2071
  readonly outcome: "signed_in" | "declined" | "unavailable";
1979
2072
  }
2073
+ interface GemFriendChallengeResult {
2074
+ readonly gem: typeof PROTOCOL;
2075
+ readonly type: "gem.friendChallengeResult";
2076
+ readonly requestId: string;
2077
+ readonly outcome: "accepted" | "cancelled" | "refused" | "unavailable" | "rate_limited" | "invalid";
2078
+ readonly code?: string;
2079
+ readonly param?: string;
2080
+ readonly channel?: string;
2081
+ readonly configVersion?: number;
2082
+ readonly retryAfterMs?: number;
2083
+ readonly detail?: string;
2084
+ }
1980
2085
  interface ConnectOptions {
1981
2086
  readonly clusterTargetId?: ClusterTargetLike;
1982
2087
  readonly retry?: StartMatchRetryOptions;
@@ -3967,25 +4072,6 @@ interface SignInOutcome {
3967
4072
  interface AccountApi {
3968
4073
  requestSignIn(): Promise<SignInOutcome>;
3969
4074
  }
3970
- type AdFormat = "interstitial" | "rewarded";
3971
- interface AdRequest {
3972
- placement: string;
3973
- format: AdFormat;
3974
- }
3975
- type AdOutcomeKind = "shown" | "no_ad" | "unavailable";
3976
- interface AdOutcome {
3977
- readonly outcome: AdOutcomeKind;
3978
- }
3979
- interface AdsApi {
3980
- requestAd(req: AdRequest): Promise<AdOutcome>;
3981
- }
3982
- type DeviceSettings = Readonly<Record<string, unknown>>;
3983
- type DeviceSettingsPutOutcome = "stored" | "too_large" | "unavailable";
3984
- interface DeviceSettingsApi {
3985
- readonly current: DeviceSettings | null;
3986
- wait(timeoutMs?: number): Promise<DeviceSettings | null>;
3987
- put(settings: DeviceSettings): Promise<DeviceSettingsPutOutcome>;
3988
- }
3989
4075
  interface PlayerBoostMultiplier {
3990
4076
  readonly currencyId: string;
3991
4077
  readonly currencySlug: string;
@@ -4016,6 +4102,7 @@ interface FrameCallbacks {
4016
4102
  onPause?(msg: GemPause): void;
4017
4103
  onPrefs?(msg: GemPrefs$1): void;
4018
4104
  onCohorts?(msg: GemCohorts$1): void;
4105
+ onEarnAllowanceChanged?(): void;
4019
4106
  onViewport?(msg: GemViewport$1): void;
4020
4107
  onWillTerminate?(msg: GemWillTerminate): void;
4021
4108
  onDevtools?(action: "open" | "close" | "toggle"): void;
@@ -4041,6 +4128,7 @@ interface FrameCallbacks {
4041
4128
  onDeviceSettingsResult?(msg: GemDeviceSettingsResult): void;
4042
4129
  onAdResult?(msg: GemAdResult): void;
4043
4130
  onSignInResult?(msg: GemSignInResult): void;
4131
+ onFriendChallengeResult?(msg: GemFriendChallengeResult): void;
4044
4132
  onError?(code: GemErrorCode, message?: string): void;
4045
4133
  onDropped?(code: GemErrorCode, message?: string): void;
4046
4134
  onStateChange?(state: FrameState): void;
@@ -4082,6 +4170,13 @@ declare class GemFrame {
4082
4170
  requestFullscreen(enabled: boolean): void;
4083
4171
  reportMuted(muted: boolean): boolean;
4084
4172
  cueReward(cue: RewardCue): boolean;
4173
+ setWalletVisible(visible: boolean, options?: {
4174
+ only?: readonly string[];
4175
+ }): boolean;
4176
+ requestShare(params: ReadonlyArray<{
4177
+ readonly key: string;
4178
+ readonly value: string;
4179
+ }>): boolean;
4085
4180
  reportFrameStats(stats: {
4086
4181
  fps: number;
4087
4182
  frameTimeP95Ms: number;
@@ -4094,6 +4189,7 @@ declare class GemFrame {
4094
4189
  putDeviceSettings(requestId: string, settings: Readonly<Record<string, unknown>>): boolean;
4095
4190
  requestAd(requestId: string, placement: string, format: "interstitial" | "rewarded"): boolean;
4096
4191
  requestSignIn(requestId: string): boolean;
4192
+ requestFriendChallenge(requestId: string, playerId: string, template: string, params?: Readonly<Record<string, string | number>>): boolean;
4097
4193
  close(): void;
4098
4194
  private transition;
4099
4195
  private refuseMalformed;
@@ -4105,6 +4201,32 @@ declare class GemFrame {
4105
4201
  private dispatchInbound;
4106
4202
  private screenshotDenied;
4107
4203
  }
4204
+ interface ShareRequest {
4205
+ readonly params?: Readonly<Record<string, string>>;
4206
+ }
4207
+ interface ShareApi {
4208
+ readonly available: boolean;
4209
+ request(request?: ShareRequest): void;
4210
+ }
4211
+ type AdFormat = "interstitial" | "rewarded";
4212
+ interface AdRequest {
4213
+ placement: string;
4214
+ format: AdFormat;
4215
+ }
4216
+ type AdOutcomeKind = "shown" | "no_ad" | "unavailable";
4217
+ interface AdOutcome {
4218
+ readonly outcome: AdOutcomeKind;
4219
+ }
4220
+ interface AdsApi {
4221
+ requestAd(req: AdRequest): Promise<AdOutcome>;
4222
+ }
4223
+ type DeviceSettings = Readonly<Record<string, unknown>>;
4224
+ type DeviceSettingsPutOutcome = "stored" | "too_large" | "unavailable";
4225
+ interface DeviceSettingsApi {
4226
+ readonly current: DeviceSettings | null;
4227
+ wait(timeoutMs?: number): Promise<DeviceSettings | null>;
4228
+ put(settings: DeviceSettings): Promise<DeviceSettingsPutOutcome>;
4229
+ }
4108
4230
  declare const DEVICE_SETTINGS_MAX_BYTES = 16384;
4109
4231
  declare const ARCADE_EMBEDDERS: readonly string[];
4110
4232
  interface GemOptions {
@@ -4165,6 +4287,16 @@ interface GemInsets {
4165
4287
  }
4166
4288
  interface GemViewport {
4167
4289
  readonly insets: GemInsets;
4290
+ readonly reserved: readonly GemReservedArea[];
4291
+ }
4292
+ interface GemReservedArea {
4293
+ readonly x: number;
4294
+ readonly y: number;
4295
+ readonly width: number;
4296
+ readonly height: number;
4297
+ }
4298
+ interface WalletVisibleOptions {
4299
+ readonly only?: readonly string[];
4168
4300
  }
4169
4301
  interface GemTerminationNotice {
4170
4302
  readonly reason: GemWillTerminate["reason"];
@@ -4189,6 +4321,7 @@ interface Gem {
4189
4321
  readonly deviceSettings: DeviceSettingsApi;
4190
4322
  readonly ads: AdsApi;
4191
4323
  readonly account: AccountApi;
4324
+ readonly share: ShareApi;
4192
4325
  readonly analytics: AnalyticsApi;
4193
4326
  readonly leaderboards: LeaderboardsApi;
4194
4327
  readonly challenges: ChallengesApi;
@@ -4204,6 +4337,7 @@ interface Gem {
4204
4337
  awaitCohorts(timeoutMs?: number): Promise<GemCohorts | null>;
4205
4338
  reportMuted(muted: boolean): void;
4206
4339
  cueReward(cue: RewardCue): boolean;
4340
+ setWalletVisible(visible: boolean, options?: WalletVisibleOptions): boolean;
4207
4341
  exit(reason?: string): Promise<void>;
4208
4342
  readonly boot: BootTimeline;
4209
4343
  readonly frame: GemFrame;
@@ -4229,4 +4363,4 @@ interface ExitAnalytics {
4229
4363
  }
4230
4364
  declare function leaveAndExit(rooms: ExitRooms, bridge: ExitBridge | null, reason?: string, analytics?: ExitAnalytics): Promise<void>;
4231
4365
  declare function createGem(options?: GemOptions): Gem;
4232
- export { ARCADE_EMBEDDERS, type AccountApi, type AdFormat, type AdOutcome, type AdOutcomeKind, type AdRequest, type AdsApi, AnalyticsApi, type AnalyticsFlushOptions, type AnalyticsFlushResult, type AnalyticsOptions, type AnalyticsRejection$1 as AnalyticsRejection, type AnalyticsValue, AuthError, type AuthFailure, type AuthState, type Base64String, type BootMark, type BootTimeline, type BroadcastOptions, type BytesResponse, CONDITIONAL_HEADERS, type Challenge, type ChallengeWindow, ChallengesApi, type ClientOptions, type Clock, type ConditionalRequestHeaders, type ConfiguredPurchasePayment, type ConfiguredPurchaseRequest, type ConfiguredPurchaseResult, DEVICE_SETTINGS_MAX_BYTES, DedicatedServerError, type DedicatedServerFailure, type DedicatedServerSession, type DevToolsOpener, type DeviceSettings, type DeviceSettingsApi, type DeviceSettingsPutOutcome, type DirectPurchaseRequest, type DirectPurchaseResult, type EntityLeaderboard, type EntityLeaderboardEntry, type EntityLeaderboardOptions, type EntityType$1 as EntityType, type ExitAnalytics, type ExitBridge, type ExitRooms, type FrameState, type Friend, FriendsApi, type FriendsPage, type FunctionFailure, type FunctionInvokeOptions, type FunctionResult, FunctionsApi, type GameApi, type GameConfig, type GameServerLink, type Gem, GemApiError, GemClient, type GemCohort, type GemCohorts, GemConfigError, type GemDevTools, type GemErrorReason, GemFrame, GemFunctionError, type GemIdentity, type GemInsets, type GemMatchApi, type GemMatchServer, type GemMatchServerModule, type GemOptions, type GemPlayer, type GemPrefs, GemSaveError, type GemServer, type GemServerBundle, type GemServerFactory, type GemServerHost, type GemServerHostProfile, type GemServerIdentity, type GemServerLifecycle, type GemServerOptions, type GemServerProfile, type GemTerminationNotice, type GemViewport, type GetLeaderboardOptions, type HostTokenSource, type HostTokenSourceOptions, type JoinWelcome, type Leaderboard, type LeaderboardEntry, LeaderboardsApi, type ListChallengesOptions, type ListFriendsOptions, MAX_PERIODS_BACK, type MatchConnectOptions, type MatchConnection, type MatchHosting, type MatchHostingMode, type MatchServeOptions, type MatchTransport, type MessageMeta, type MultiTransportSession, PLATFORM_EVENTS, PlatformApi, PlatformCurrenciesApi, type PlatformCurrency, type PlatformCurrencyAccess, type PlatformCurrencyPurchasePayment, type PlatformCurrencyPurchaseRequest, type PlatformCurrencyPurchaseResult, type PlatformCurrencyReadOptions, type PlatformEventName, type PlayerBadge$1 as PlayerBadge, type PlayerBoost, type PlayerBoostMultiplier, type PlayerIdentity, type PlayerProfile, PlayerText, type ProfileCallOptions, type ProfileShowcaseEntry$1 as ProfileShowcaseEntry, ProfilesApi, type PurchaseApi, type PurchaseOptions, type PurchaseOutcome, PurchaseRefusal, type PurchaseRefusalCode, type PurchaseRequest, type PutBytesOptions, type PutSaveOptions, type RankedRow, type RecipeAvailability, type RecipeLock, type RequestOptions, type RewardCue, type RoomArgValue, type SavePage, type SaveRecord, type SendOptions$1 as SendOptions, type ServerApi, type ServerBundleHost, type ServerTokenGrant, type SessionEndReason, ShowcaseApi, type ShowcaseCallOptions, type ShowcaseFriendEntry, type ShowcaseFriends, type ShowcaseValue, type SignInOutcome, type SignInOutcomeKind, type SnapshotCurrency, type SnapshotItem, type TokenGrant, type Transport, type TransportAdvert, type TransportKind, TransportRefusal, type TransportRequest, type TransportResponse, UNRELIABLE_CHANNEL_LABEL, type VersionedGetOptions, type VersionedResponse, asPlayerText, createBootTimeline, createGem, createGemServer, createHostTokenSource, createMatchServer, defineServer, leaveAndExit, mapIdentity, markOnResolve, platformIconUrl, presentJoinCredential, readTemplateTransports, readTransportAdvert, reportOnResolve, systemClock, text, toBase64, webTransportAvailable };
4366
+ export { ARCADE_EMBEDDERS, type AccountApi, type AdFormat, type AdOutcome, type AdOutcomeKind, type AdRequest, type AdsApi, AnalyticsApi, type AnalyticsFlushOptions, type AnalyticsFlushResult, type AnalyticsOptions, type AnalyticsRejection$1 as AnalyticsRejection, type AnalyticsValue, AuthError, type AuthFailure, type AuthState, type Base64String, type BootMark, type BootTimeline, type BroadcastOptions, type BytesResponse, CONDITIONAL_HEADERS, type Challenge, type ChallengeWindow, ChallengesApi, type ClientOptions, type Clock, type ConditionalRequestHeaders, type ConfiguredPurchasePayment, type ConfiguredPurchaseRequest, type ConfiguredPurchaseResult, DEVICE_SETTINGS_MAX_BYTES, DedicatedServerError, type DedicatedServerFailure, type DedicatedServerSession, type DevToolsOpener, type DeviceSettings, type DeviceSettingsApi, type DeviceSettingsPutOutcome, type DirectPurchaseRequest, type DirectPurchaseResult, type EarnAllowance, type EarnAllowanceEvent, type EarnAllowancePeriod, type EarnAllowanceReadOptions, type EntityLeaderboard, type EntityLeaderboardEntry, type EntityLeaderboardOptions, type EntityType$1 as EntityType, type ExitAnalytics, type ExitBridge, type ExitRooms, type FrameState, type Friend, FriendChallengeError, type FriendChallengeErrorCode, type FriendChallengeOutcome, type FriendChallengeOutcomeKind, type FriendChallengeRequest, FriendsApi, type FriendsPage, type FunctionFailure, type FunctionInvokeOptions, type FunctionResult, FunctionsApi, type GameApi, type GameConfig, type GameServerLink, type Gem, GemApiError, GemClient, type GemCohort, type GemCohorts, GemConfigError, type GemDevTools, type GemErrorReason, GemFrame, GemFunctionError, type GemIdentity, type GemInsets, type GemMatchApi, type GemMatchServer, type GemMatchServerModule, type GemOptions, type GemPlayer, type GemPrefs, type GemReservedArea, GemSaveError, type GemServer, type GemServerBundle, type GemServerFactory, type GemServerHost, type GemServerHostProfile, type GemServerIdentity, type GemServerLifecycle, type GemServerOptions, type GemServerProfile, type GemTerminationNotice, type GemViewport, type GetLeaderboardOptions, type HostTokenSource, type HostTokenSourceOptions, type JoinWelcome, type Leaderboard, type LeaderboardEntry, LeaderboardsApi, type ListChallengesOptions, type ListFriendsOptions, MAX_PERIODS_BACK, type MatchConnectOptions, type MatchConnection, type MatchHosting, type MatchHostingMode, type MatchServeOptions, type MatchTransport, type MessageMeta, type MultiTransportSession, PLATFORM_EVENTS, PlatformApi, PlatformCurrenciesApi, type PlatformCurrency, type PlatformCurrencyAccess, type PlatformCurrencyPurchasePayment, type PlatformCurrencyPurchaseRequest, type PlatformCurrencyPurchaseResult, type PlatformCurrencyReadOptions, PlatformEarnAllowanceApi, type PlatformEventName, type PlayerBadge$1 as PlayerBadge, type PlayerBoost, type PlayerBoostMultiplier, type PlayerIdentity, type PlayerProfile, PlayerText, type ProfileCallOptions, type ProfileShowcaseEntry$1 as ProfileShowcaseEntry, ProfilesApi, type PurchaseApi, type PurchaseOptions, type PurchaseOutcome, PurchaseRefusal, type PurchaseRefusalCode, type PurchaseRequest, type PutBytesOptions, type PutSaveOptions, type RankedRow, type RecipeAvailability, type RecipeLock, type RequestOptions, type RewardCue, type RoomArgValue, type SavePage, type SaveRecord, type SendOptions$1 as SendOptions, type ServerApi, type ServerBundleHost, type ServerTokenGrant, type SessionEndReason, type ShareApi, type ShareRequest, ShowcaseApi, type ShowcaseCallOptions, type ShowcaseFriendEntry, type ShowcaseFriends, type ShowcaseValue, type SignInOutcome, type SignInOutcomeKind, type SnapshotCurrency, type SnapshotItem, type TokenGrant, type Transport, type TransportAdvert, type TransportKind, TransportRefusal, type TransportRequest, type TransportResponse, UNRELIABLE_CHANNEL_LABEL, type VersionedGetOptions, type VersionedResponse, type WalletVisibleOptions, asPlayerText, createBootTimeline, createGem, createGemServer, createHostTokenSource, createMatchServer, defineServer, leaveAndExit, mapIdentity, markOnResolve, platformIconUrl, presentJoinCredential, readTemplateTransports, readTransportAdvert, reportOnResolve, systemClock, text, toBase64, webTransportAvailable };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@indiegems/gem-web-sdk",
3
- "version": "7.3.0",
3
+ "version": "7.4.0",
4
4
  "description": "postMessage bridge contract between gem-web and browser-playable games",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",