@smartico/public-api 0.0.404 → 0.0.405

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.
@@ -365,8 +365,12 @@ export interface SAWTemplateUI {
365
365
  game_difficulty?: SAWGameDifficultyType;
366
366
  /**
367
367
  * URL of the operator-hosted custom mini-game, loaded inside an iframe by
368
- * the widget for `SAWGameType.CustomMinigame`. The operator is trusted, so
369
- * the iframe is rendered without a sandbox.
368
+ * the widget for `SAWGameType.CustomMinigame`. The operator is trusted
369
+ * (the URL resolves to the operator's own published Web Studio game), but
370
+ * the iframe is still rendered with a restrictive sandbox as defence in
371
+ * depth: `sandbox="allow-scripts allow-forms allow-same-origin allow-popups
372
+ * allow-pointer-lock"`. Top-level navigation is intentionally not allowed,
373
+ * so the game cannot redirect the host page.
370
374
  * Back-Office label: _"Game URL"_.
371
375
  */
372
376
  custom_game_url?: string;
@@ -110,6 +110,22 @@
110
110
 
111
111
  ***
112
112
 
113
+ ### earliest\_expiration\_dt?
114
+
115
+ > `optional` **earliest\_expiration\_dt?**: `number`
116
+
117
+ Soonest-expiring spin's expiration time for this user (epoch ms); `null`/absent when no expirable spins.
118
+
119
+ ***
120
+
121
+ ### latest\_expiration\_dt?
122
+
123
+ > `optional` **latest\_expiration\_dt?**: `number`
124
+
125
+ Latest-expiring spin's expiration time for this user (epoch ms); `null`/absent when no expirable spins.
126
+
127
+ ***
128
+
113
129
  ### saw\_skin\_key
114
130
 
115
131
  > **saw\_skin\_key**: `string`
@@ -103,6 +103,27 @@ Important: this field will not be populated if “Max number of attempts a user
103
103
 
104
104
  ***
105
105
 
106
+ ### earliest\_expiration\_dt?
107
+
108
+ > `optional` **earliest\_expiration\_dt?**: `number`
109
+
110
+ Soonest-expiring spin's expiration time for the current user, as an epoch-ms timestamp.
111
+ `null` when the user has no expirable spins for this template — spins only expire when the
112
+ template defines a spin-expiration rule (Wheel of Fortune, Loot Boxes, etc.). Pair with
113
+ `latest_expiration_dt` to render a "spins expire between X and Y" window.
114
+
115
+ ***
116
+
117
+ ### latest\_expiration\_dt?
118
+
119
+ > `optional` **latest\_expiration\_dt?**: `number`
120
+
121
+ Latest-expiring spin's expiration time for the current user, as an epoch-ms timestamp.
122
+ `null` when the user has no expirable spins; equals `earliest_expiration_dt` when a single
123
+ expiration applies.
124
+
125
+ ***
126
+
106
127
  ### over\_limit\_message
107
128
 
108
129
  > **over\_limit\_message**: `string`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartico/public-api",
3
- "version": "0.0.404",
3
+ "version": "0.0.405",
4
4
  "description": "Smartico public API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -459,8 +459,12 @@ export interface SAWTemplateUI {
459
459
 
460
460
  /**
461
461
  * URL of the operator-hosted custom mini-game, loaded inside an iframe by
462
- * the widget for `SAWGameType.CustomMinigame`. The operator is trusted, so
463
- * the iframe is rendered without a sandbox.
462
+ * the widget for `SAWGameType.CustomMinigame`. The operator is trusted
463
+ * (the URL resolves to the operator's own published Web Studio game), but
464
+ * the iframe is still rendered with a restrictive sandbox as defence in
465
+ * depth: `sandbox="allow-scripts allow-forms allow-same-origin allow-popups
466
+ * allow-pointer-lock"`. Top-level navigation is intentionally not allowed,
467
+ * so the game cannot redirect the host page.
464
468
  * Back-Office label: _"Game URL"_.
465
469
  */
466
470
  custom_game_url?: string;