@idosgames/core 0.3.0 → 0.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/index.d.cts CHANGED
@@ -2714,6 +2714,16 @@ interface SdkEvents {
2714
2714
  * quest UI. Nothing to call to trigger it.
2715
2715
  */
2716
2716
  "quest:systemProgress": QuestProgressUpdate[];
2717
+ /**
2718
+ * New revisions of the state containers the backend changed while handling some other call
2719
+ * (a purchase, a claim, a roll). Rides on that call's response so the client can keep its
2720
+ * locally-applied copy marked fresh instead of re-fetching it. Handled by the SDK itself —
2721
+ * subscribe only if you keep your own cache keyed by these numbers.
2722
+ */
2723
+ "user:stateVersions": {
2724
+ epoch: string | null;
2725
+ versions: Record<string, number>;
2726
+ };
2717
2727
  "timedEvent:activeEventsLoaded": GetActiveEventsResponse;
2718
2728
  "timedEvent:definitionsLoaded": TimedEventDefinitions;
2719
2729
  "timedEvent:userStateLoaded": UserTimedEventStateResponse;
@@ -3215,8 +3225,18 @@ declare class UserService {
3215
3225
  private baseRequest;
3216
3226
  private get configCache();
3217
3227
  private cache?;
3218
- private get stateCache();
3219
- private userStateCache?;
3228
+ private get stateStore();
3229
+ private versionStore?;
3230
+ /**
3231
+ * Версии контейнеров, которые бэкенд изменил, обрабатывая ЛЮБОЕ действие (побочный блок
3232
+ * `StateVersions` на ответе покупки, клейма, ролла). Зовётся одним местом — подпиской в
3233
+ * `ClientContext`, чтобы ни один сервис не был обязан помнить про версии в своём коде.
3234
+ *
3235
+ * Номера принимаются только в память: данные в этот момент ещё не применены к кешу, и запись
3236
+ * их в хранилище рядом со старым содержимым сломала бы инвариант «версия есть ⇔ содержимое
3237
+ * есть». На диск они уедут вместе со снимком живого состояния — перед следующим запросом.
3238
+ */
3239
+ noteStateVersions(epoch: string | null, versions: Record<string, number>): void;
3220
3240
  getClientState(): Promise<OperationResult<ClientState>>;
3221
3241
  /**
3222
3242
  * Подготовка версионного хендшейка состояния: достаём сохранённое состояние игрока и
@@ -3277,6 +3297,11 @@ declare class UserService {
3277
3297
  * выборке нет, остаются нетронутыми.
3278
3298
  */
3279
3299
  getUserState(fields?: string[]): Promise<OperationResult<UserStateSlice>>;
3300
+ /**
3301
+ * Сохраняет версии вместе со снимком живого состояния. Зовётся ПОСЛЕ применения ответа —
3302
+ * только там состояние уже содержит всё, о чём заявляют номера.
3303
+ */
3304
+ private flushState;
3280
3305
  getUserInventory(): Promise<OperationResult<UserInventoryState>>;
3281
3306
  getEventTokens(): Promise<OperationResult<UserEventTokensState>>;
3282
3307
  getUsageTime(): Promise<OperationResult<UsageTimeStats>>;
package/dist/index.d.ts CHANGED
@@ -2714,6 +2714,16 @@ interface SdkEvents {
2714
2714
  * quest UI. Nothing to call to trigger it.
2715
2715
  */
2716
2716
  "quest:systemProgress": QuestProgressUpdate[];
2717
+ /**
2718
+ * New revisions of the state containers the backend changed while handling some other call
2719
+ * (a purchase, a claim, a roll). Rides on that call's response so the client can keep its
2720
+ * locally-applied copy marked fresh instead of re-fetching it. Handled by the SDK itself —
2721
+ * subscribe only if you keep your own cache keyed by these numbers.
2722
+ */
2723
+ "user:stateVersions": {
2724
+ epoch: string | null;
2725
+ versions: Record<string, number>;
2726
+ };
2717
2727
  "timedEvent:activeEventsLoaded": GetActiveEventsResponse;
2718
2728
  "timedEvent:definitionsLoaded": TimedEventDefinitions;
2719
2729
  "timedEvent:userStateLoaded": UserTimedEventStateResponse;
@@ -3215,8 +3225,18 @@ declare class UserService {
3215
3225
  private baseRequest;
3216
3226
  private get configCache();
3217
3227
  private cache?;
3218
- private get stateCache();
3219
- private userStateCache?;
3228
+ private get stateStore();
3229
+ private versionStore?;
3230
+ /**
3231
+ * Версии контейнеров, которые бэкенд изменил, обрабатывая ЛЮБОЕ действие (побочный блок
3232
+ * `StateVersions` на ответе покупки, клейма, ролла). Зовётся одним местом — подпиской в
3233
+ * `ClientContext`, чтобы ни один сервис не был обязан помнить про версии в своём коде.
3234
+ *
3235
+ * Номера принимаются только в память: данные в этот момент ещё не применены к кешу, и запись
3236
+ * их в хранилище рядом со старым содержимым сломала бы инвариант «версия есть ⇔ содержимое
3237
+ * есть». На диск они уедут вместе со снимком живого состояния — перед следующим запросом.
3238
+ */
3239
+ noteStateVersions(epoch: string | null, versions: Record<string, number>): void;
3220
3240
  getClientState(): Promise<OperationResult<ClientState>>;
3221
3241
  /**
3222
3242
  * Подготовка версионного хендшейка состояния: достаём сохранённое состояние игрока и
@@ -3277,6 +3297,11 @@ declare class UserService {
3277
3297
  * выборке нет, остаются нетронутыми.
3278
3298
  */
3279
3299
  getUserState(fields?: string[]): Promise<OperationResult<UserStateSlice>>;
3300
+ /**
3301
+ * Сохраняет версии вместе со снимком живого состояния. Зовётся ПОСЛЕ применения ответа —
3302
+ * только там состояние уже содержит всё, о чём заявляют номера.
3303
+ */
3304
+ private flushState;
3280
3305
  getUserInventory(): Promise<OperationResult<UserInventoryState>>;
3281
3306
  getEventTokens(): Promise<OperationResult<UserEventTokensState>>;
3282
3307
  getUsageTime(): Promise<OperationResult<UsageTimeStats>>;