@playruo/embed 1.3.2 → 1.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
@@ -24,65 +24,6 @@ type PlayruoEventPayload = Record<string, unknown> & {
24
24
  name?: string;
25
25
  };
26
26
 
27
- interface PlayruoEmbedActions {
28
- /** Start the demo session */
29
- tryNow: () => void;
30
- /** Request purchase (opens store URL) */
31
- buyNow: () => void;
32
- /** Whether try now is currently available */
33
- canTryNow: boolean;
34
- /** Whether buy now is currently available */
35
- canBuyNow: boolean;
36
- }
37
- interface PlayruoEmbedRenderState {
38
- status: "loading" | "available" | "unavailable" | "error";
39
- message?: string;
40
- actions: PlayruoEmbedActions;
41
- }
42
- interface PlayruoEmbedProps {
43
- /** Game origin (scheme + host). Omit to use production (`https://playruo.live`). */
44
- baseUrl?: string;
45
- /** Game operation slug used to build the iframe URL. */
46
- operation: string;
47
- storeUrl?: string;
48
- showIframe?: boolean;
49
- className?: string;
50
- onReady?: () => void;
51
- onStateChange?: (state: PlayruoEmbedState) => void;
52
- onDemoCompleted?: (data: DemoCompletedPayload) => void;
53
- onEvent?: (data: PlayruoEventPayload) => void;
54
- onPurchaseRequest?: (data: {
55
- storeUrl: string;
56
- }) => void;
57
- onError?: (error: string) => void;
58
- /**
59
- * Forward playruo_event messages to the parent window when the package host
60
- * itself is embedded in another iframe. Direct host pages already receive the
61
- * original iframe postMessage.
62
- */
63
- forwardEventsToParent?: boolean;
64
- /**
65
- * Single render entry point representing the current status.
66
- * Provides status, message, and available actions based on current state.
67
- */
68
- renderState?: (render: PlayruoEmbedRenderState) => ReactNode;
69
- /**
70
- * Ref to access the iframe element for fullscreen requests
71
- */
72
- iframeRef?: React.RefObject<HTMLIFrameElement>;
73
- }
74
- declare const PlayruoEmbed: FC<PlayruoEmbedProps>;
75
-
76
- interface EmbedTesterProps {
77
- /** Override game origin (e.g. http://localhost:3000). Omit for production. */
78
- baseUrl?: string;
79
- enableConsoleLog?: boolean;
80
- operation?: string;
81
- storeUrl?: string;
82
- className?: string;
83
- }
84
- declare const EmbedTester: (props?: EmbedTesterProps) => react_jsx_runtime.JSX.Element;
85
-
86
27
  interface PlayruoReadyMessage {
87
28
  type: "playruo_ready";
88
29
  }
@@ -123,14 +64,53 @@ interface PlayruoEventMessage {
123
64
  type: "playruo_event";
124
65
  data: PlayruoEventPayload;
125
66
  }
126
- type PlayruoEmbedMessage = PlayruoReadyMessage | PlayruoStateUpdateMessage | PlayruoPurchaseRequestMessage | PlayruoDemoCompletedMessage | PlayruoErrorMessage | PlayruoSessionOverMessage | PlayruoStreamStartMessage | PlayruoStreamStopMessage | PlayruoRequestExitFullscreenMessage | PlayruoEventMessage;
67
+ /**
68
+ * Why a password submission was refused. `already_validating` answers a submit
69
+ * sent while another one is still being checked, so the host may simply send it
70
+ * again; `too_many_attempts` closes the operation for this visitor and reopens
71
+ * on its own after a delay.
72
+ */
73
+ type PlayruoPasswordError = "invalid_password" | "already_validating" | "too_many_attempts";
74
+ /**
75
+ * A refusal code as a host reads it: one of the codes above, or any other one
76
+ * the operation may answer with. `string & {}` rather than `string`, which
77
+ * would absorb the union and drop the known codes from autocompletion.
78
+ */
79
+ type PlayruoPasswordErrorCode = PlayruoPasswordError | (string & {});
80
+ /**
81
+ * A password protected operation announces itself once its configuration is
82
+ * loaded. The iframe stays invisible until a session starts, so it renders no
83
+ * form of its own: the host collects the password and sends it back with the
84
+ * submitPassword action.
85
+ */
86
+ interface PlayruoPasswordRequiredMessage {
87
+ type: "playruo_password_required";
88
+ }
89
+ /**
90
+ * Answers a requestPassword sent to an operation that is not protected. Without
91
+ * it a host cannot tell "no password needed" from "the announce has not come
92
+ * yet", and waits forever on a gate that will never open.
93
+ */
94
+ interface PlayruoPasswordNotRequiredMessage {
95
+ type: "playruo_password_not_required";
96
+ }
97
+ interface PlayruoPasswordResultMessage {
98
+ type: "playruo_password_result";
99
+ data: {
100
+ success: boolean;
101
+ error?: PlayruoPasswordErrorCode;
102
+ };
103
+ }
104
+ type PlayruoEmbedMessage = PlayruoReadyMessage | PlayruoStateUpdateMessage | PlayruoPurchaseRequestMessage | PlayruoDemoCompletedMessage | PlayruoErrorMessage | PlayruoSessionOverMessage | PlayruoStreamStartMessage | PlayruoStreamStopMessage | PlayruoRequestExitFullscreenMessage | PlayruoEventMessage | PlayruoPasswordRequiredMessage | PlayruoPasswordNotRequiredMessage | PlayruoPasswordResultMessage;
127
105
  interface PlayruoInternalMessage {
128
106
  type: "playruo";
129
- action: "tryNowClick" | "exitFullscreen" | "mute" | "unmute";
107
+ action: "tryNowClick" | "exitFullscreen" | "mute" | "unmute" | "submitPassword" | "requestPassword";
130
108
  fromEmbed: true;
131
109
  isReplay?: boolean;
132
110
  isFullscreen?: boolean;
133
111
  parentWillHandleFullscreen?: boolean;
112
+ /** Only read by the submitPassword action. */
113
+ password?: string;
134
114
  }
135
115
  /**
136
116
  * Type guard to check if a message event is a Playruo embed message
@@ -144,8 +124,122 @@ declare const isPlayruoEmbedMessage: (data: unknown) => data is PlayruoEmbedMess
144
124
  */
145
125
  declare const isPlayruoInternalMessage: (data: unknown) => data is PlayruoInternalMessage;
146
126
 
127
+ interface PlayruoEmbedActions {
128
+ /** Start the demo session */
129
+ tryNow: () => void;
130
+ /** Request purchase (opens store URL) */
131
+ buyNow: () => void;
132
+ /** Whether try now is currently available */
133
+ canTryNow: boolean;
134
+ /** Whether buy now is currently available */
135
+ canBuyNow: boolean;
136
+ /** Send the password collected by the host to a protected operation. */
137
+ submitPassword: (password: string) => void;
138
+ /**
139
+ * Ask the operation to announce again whether it needs a password. The
140
+ * announcement is emitted once, so a host that mounts late can miss it.
141
+ */
142
+ requestPassword: () => void;
143
+ }
144
+ interface PlayruoEmbedPasswordState {
145
+ /**
146
+ * The operation asked for a password. Stays true once it was given, so read
147
+ * `unlocked` for the gate itself.
148
+ */
149
+ required: boolean;
150
+ /**
151
+ * The operation said whether it is protected. Until then `required: false`
152
+ * only means nothing was announced yet, so a host that called
153
+ * `requestPassword` cannot tell an unprotected operation from a silent one.
154
+ */
155
+ checked: boolean;
156
+ /** A submitted password was accepted. */
157
+ unlocked: boolean;
158
+ /** Code of the last refusal, from PlayruoPasswordError when known. */
159
+ error?: PlayruoPasswordErrorCode;
160
+ }
161
+ interface PlayruoEmbedRenderState {
162
+ status: "loading" | "available" | "unavailable" | "error";
163
+ message?: string;
164
+ actions: PlayruoEmbedActions;
165
+ /**
166
+ * A protected operation never announces ready while it is locked, so a host
167
+ * that ignores this stays on `loading` for as long as the visitor has not
168
+ * been asked for the password.
169
+ */
170
+ password: PlayruoEmbedPasswordState;
171
+ }
172
+ interface PlayruoEmbedProps {
173
+ /** Game origin (scheme + host). Omit to use production (`https://playruo.live`). */
174
+ baseUrl?: string;
175
+ /** Game operation slug used to build the iframe URL. */
176
+ operation: string;
177
+ /**
178
+ * Which operation of the campaign to open, when it holds more than one. Sent
179
+ * as `?op=`. Without it the campaign picks its own.
180
+ */
181
+ operationKey?: string;
182
+ storeUrl?: string;
183
+ showIframe?: boolean;
184
+ className?: string;
185
+ onReady?: () => void;
186
+ onStateChange?: (state: PlayruoEmbedState) => void;
187
+ onDemoCompleted?: (data: DemoCompletedPayload) => void;
188
+ onEvent?: (data: PlayruoEventPayload) => void;
189
+ onPurchaseRequest?: (data: {
190
+ storeUrl: string;
191
+ }) => void;
192
+ onError?: (error: string) => void;
193
+ /** The operation is password protected and waits for one. */
194
+ onPasswordRequired?: () => void;
195
+ /** Answer to a submitted password. */
196
+ onPasswordResult?: (result: {
197
+ success: boolean;
198
+ error?: PlayruoPasswordErrorCode;
199
+ }) => void;
200
+ /**
201
+ * Skip the parent fullscreen request and start the experience inside the
202
+ * current iframe bounds. Defaults to false to preserve the current behavior.
203
+ */
204
+ enableWindowedLaunch?: boolean;
205
+ /**
206
+ * Forward playruo_event messages to the parent window when the package host
207
+ * itself is embedded in another iframe. Direct host pages already receive the
208
+ * original iframe postMessage.
209
+ */
210
+ forwardEventsToParent?: boolean;
211
+ /**
212
+ * Single render entry point representing the current status.
213
+ * Provides status, message, and available actions based on current state.
214
+ */
215
+ renderState?: (render: PlayruoEmbedRenderState) => ReactNode;
216
+ /**
217
+ * Ref to access the iframe element for fullscreen requests
218
+ */
219
+ iframeRef?: React.RefObject<HTMLIFrameElement | null>;
220
+ }
221
+ declare const PlayruoEmbed: FC<PlayruoEmbedProps>;
222
+
223
+ interface EmbedTesterProps {
224
+ /** Override game origin (e.g. http://localhost:3000). Omit for production. */
225
+ baseUrl?: string;
226
+ enableConsoleLog?: boolean;
227
+ operation?: string;
228
+ storeUrl?: string;
229
+ /** Start the experience inside the iframe without requesting parent fullscreen. */
230
+ enableWindowedLaunch?: boolean;
231
+ className?: string;
232
+ }
233
+ declare const EmbedTester: (props?: EmbedTesterProps) => react_jsx_runtime.JSX.Element;
234
+
147
235
  interface BuildUrlParams {
148
236
  operation: string;
237
+ /**
238
+ * Which operation of the campaign to open, when it holds more than one. Sent
239
+ * as `?op=`. Without it the campaign picks its own, which is what a single
240
+ * operation campaign wants.
241
+ */
242
+ operationKey?: string;
149
243
  storeUrl?: string;
150
244
  }
151
245
  /**
@@ -154,6 +248,6 @@ interface BuildUrlParams {
154
248
  * buildEmbedUrl({ operation: "my-game" })
155
249
  * // => "https://playruo.live/my-game?iframe=true"
156
250
  */
157
- declare const buildEmbedUrl: ({ operation, storeUrl }: BuildUrlParams) => string;
251
+ declare const buildEmbedUrl: ({ operation, operationKey, storeUrl, }: BuildUrlParams) => string;
158
252
 
159
- export { type DemoCompletedPayload, EmbedTester, type EmbedTesterProps, type PlayruoDemoCompletedMessage, PlayruoEmbed, type PlayruoEmbedActions, type PlayruoEmbedMessage, type PlayruoEmbedProps, type PlayruoEmbedRenderState, type PlayruoEmbedState, type PlayruoErrorMessage, type PlayruoEventMessage, type PlayruoEventPayload, type PlayruoInternalMessage, type PlayruoPurchaseRequestMessage, type PlayruoReadyMessage, type PlayruoRequestExitFullscreenMessage, type PlayruoSessionOverMessage, type PlayruoStateUpdateMessage, type PlayruoStreamStartMessage, type PlayruoStreamStopMessage, buildEmbedUrl, isPlayruoEmbedMessage, isPlayruoInternalMessage };
253
+ export { type DemoCompletedPayload, EmbedTester, type EmbedTesterProps, type PlayruoDemoCompletedMessage, PlayruoEmbed, type PlayruoEmbedActions, type PlayruoEmbedMessage, type PlayruoEmbedPasswordState, type PlayruoEmbedProps, type PlayruoEmbedRenderState, type PlayruoEmbedState, type PlayruoErrorMessage, type PlayruoEventMessage, type PlayruoEventPayload, type PlayruoInternalMessage, type PlayruoPasswordError, type PlayruoPasswordErrorCode, type PlayruoPasswordNotRequiredMessage, type PlayruoPasswordRequiredMessage, type PlayruoPasswordResultMessage, type PlayruoPurchaseRequestMessage, type PlayruoReadyMessage, type PlayruoRequestExitFullscreenMessage, type PlayruoSessionOverMessage, type PlayruoStateUpdateMessage, type PlayruoStreamStartMessage, type PlayruoStreamStopMessage, buildEmbedUrl, isPlayruoEmbedMessage, isPlayruoInternalMessage };
package/dist/index.d.ts CHANGED
@@ -24,65 +24,6 @@ type PlayruoEventPayload = Record<string, unknown> & {
24
24
  name?: string;
25
25
  };
26
26
 
27
- interface PlayruoEmbedActions {
28
- /** Start the demo session */
29
- tryNow: () => void;
30
- /** Request purchase (opens store URL) */
31
- buyNow: () => void;
32
- /** Whether try now is currently available */
33
- canTryNow: boolean;
34
- /** Whether buy now is currently available */
35
- canBuyNow: boolean;
36
- }
37
- interface PlayruoEmbedRenderState {
38
- status: "loading" | "available" | "unavailable" | "error";
39
- message?: string;
40
- actions: PlayruoEmbedActions;
41
- }
42
- interface PlayruoEmbedProps {
43
- /** Game origin (scheme + host). Omit to use production (`https://playruo.live`). */
44
- baseUrl?: string;
45
- /** Game operation slug used to build the iframe URL. */
46
- operation: string;
47
- storeUrl?: string;
48
- showIframe?: boolean;
49
- className?: string;
50
- onReady?: () => void;
51
- onStateChange?: (state: PlayruoEmbedState) => void;
52
- onDemoCompleted?: (data: DemoCompletedPayload) => void;
53
- onEvent?: (data: PlayruoEventPayload) => void;
54
- onPurchaseRequest?: (data: {
55
- storeUrl: string;
56
- }) => void;
57
- onError?: (error: string) => void;
58
- /**
59
- * Forward playruo_event messages to the parent window when the package host
60
- * itself is embedded in another iframe. Direct host pages already receive the
61
- * original iframe postMessage.
62
- */
63
- forwardEventsToParent?: boolean;
64
- /**
65
- * Single render entry point representing the current status.
66
- * Provides status, message, and available actions based on current state.
67
- */
68
- renderState?: (render: PlayruoEmbedRenderState) => ReactNode;
69
- /**
70
- * Ref to access the iframe element for fullscreen requests
71
- */
72
- iframeRef?: React.RefObject<HTMLIFrameElement>;
73
- }
74
- declare const PlayruoEmbed: FC<PlayruoEmbedProps>;
75
-
76
- interface EmbedTesterProps {
77
- /** Override game origin (e.g. http://localhost:3000). Omit for production. */
78
- baseUrl?: string;
79
- enableConsoleLog?: boolean;
80
- operation?: string;
81
- storeUrl?: string;
82
- className?: string;
83
- }
84
- declare const EmbedTester: (props?: EmbedTesterProps) => react_jsx_runtime.JSX.Element;
85
-
86
27
  interface PlayruoReadyMessage {
87
28
  type: "playruo_ready";
88
29
  }
@@ -123,14 +64,53 @@ interface PlayruoEventMessage {
123
64
  type: "playruo_event";
124
65
  data: PlayruoEventPayload;
125
66
  }
126
- type PlayruoEmbedMessage = PlayruoReadyMessage | PlayruoStateUpdateMessage | PlayruoPurchaseRequestMessage | PlayruoDemoCompletedMessage | PlayruoErrorMessage | PlayruoSessionOverMessage | PlayruoStreamStartMessage | PlayruoStreamStopMessage | PlayruoRequestExitFullscreenMessage | PlayruoEventMessage;
67
+ /**
68
+ * Why a password submission was refused. `already_validating` answers a submit
69
+ * sent while another one is still being checked, so the host may simply send it
70
+ * again; `too_many_attempts` closes the operation for this visitor and reopens
71
+ * on its own after a delay.
72
+ */
73
+ type PlayruoPasswordError = "invalid_password" | "already_validating" | "too_many_attempts";
74
+ /**
75
+ * A refusal code as a host reads it: one of the codes above, or any other one
76
+ * the operation may answer with. `string & {}` rather than `string`, which
77
+ * would absorb the union and drop the known codes from autocompletion.
78
+ */
79
+ type PlayruoPasswordErrorCode = PlayruoPasswordError | (string & {});
80
+ /**
81
+ * A password protected operation announces itself once its configuration is
82
+ * loaded. The iframe stays invisible until a session starts, so it renders no
83
+ * form of its own: the host collects the password and sends it back with the
84
+ * submitPassword action.
85
+ */
86
+ interface PlayruoPasswordRequiredMessage {
87
+ type: "playruo_password_required";
88
+ }
89
+ /**
90
+ * Answers a requestPassword sent to an operation that is not protected. Without
91
+ * it a host cannot tell "no password needed" from "the announce has not come
92
+ * yet", and waits forever on a gate that will never open.
93
+ */
94
+ interface PlayruoPasswordNotRequiredMessage {
95
+ type: "playruo_password_not_required";
96
+ }
97
+ interface PlayruoPasswordResultMessage {
98
+ type: "playruo_password_result";
99
+ data: {
100
+ success: boolean;
101
+ error?: PlayruoPasswordErrorCode;
102
+ };
103
+ }
104
+ type PlayruoEmbedMessage = PlayruoReadyMessage | PlayruoStateUpdateMessage | PlayruoPurchaseRequestMessage | PlayruoDemoCompletedMessage | PlayruoErrorMessage | PlayruoSessionOverMessage | PlayruoStreamStartMessage | PlayruoStreamStopMessage | PlayruoRequestExitFullscreenMessage | PlayruoEventMessage | PlayruoPasswordRequiredMessage | PlayruoPasswordNotRequiredMessage | PlayruoPasswordResultMessage;
127
105
  interface PlayruoInternalMessage {
128
106
  type: "playruo";
129
- action: "tryNowClick" | "exitFullscreen" | "mute" | "unmute";
107
+ action: "tryNowClick" | "exitFullscreen" | "mute" | "unmute" | "submitPassword" | "requestPassword";
130
108
  fromEmbed: true;
131
109
  isReplay?: boolean;
132
110
  isFullscreen?: boolean;
133
111
  parentWillHandleFullscreen?: boolean;
112
+ /** Only read by the submitPassword action. */
113
+ password?: string;
134
114
  }
135
115
  /**
136
116
  * Type guard to check if a message event is a Playruo embed message
@@ -144,8 +124,122 @@ declare const isPlayruoEmbedMessage: (data: unknown) => data is PlayruoEmbedMess
144
124
  */
145
125
  declare const isPlayruoInternalMessage: (data: unknown) => data is PlayruoInternalMessage;
146
126
 
127
+ interface PlayruoEmbedActions {
128
+ /** Start the demo session */
129
+ tryNow: () => void;
130
+ /** Request purchase (opens store URL) */
131
+ buyNow: () => void;
132
+ /** Whether try now is currently available */
133
+ canTryNow: boolean;
134
+ /** Whether buy now is currently available */
135
+ canBuyNow: boolean;
136
+ /** Send the password collected by the host to a protected operation. */
137
+ submitPassword: (password: string) => void;
138
+ /**
139
+ * Ask the operation to announce again whether it needs a password. The
140
+ * announcement is emitted once, so a host that mounts late can miss it.
141
+ */
142
+ requestPassword: () => void;
143
+ }
144
+ interface PlayruoEmbedPasswordState {
145
+ /**
146
+ * The operation asked for a password. Stays true once it was given, so read
147
+ * `unlocked` for the gate itself.
148
+ */
149
+ required: boolean;
150
+ /**
151
+ * The operation said whether it is protected. Until then `required: false`
152
+ * only means nothing was announced yet, so a host that called
153
+ * `requestPassword` cannot tell an unprotected operation from a silent one.
154
+ */
155
+ checked: boolean;
156
+ /** A submitted password was accepted. */
157
+ unlocked: boolean;
158
+ /** Code of the last refusal, from PlayruoPasswordError when known. */
159
+ error?: PlayruoPasswordErrorCode;
160
+ }
161
+ interface PlayruoEmbedRenderState {
162
+ status: "loading" | "available" | "unavailable" | "error";
163
+ message?: string;
164
+ actions: PlayruoEmbedActions;
165
+ /**
166
+ * A protected operation never announces ready while it is locked, so a host
167
+ * that ignores this stays on `loading` for as long as the visitor has not
168
+ * been asked for the password.
169
+ */
170
+ password: PlayruoEmbedPasswordState;
171
+ }
172
+ interface PlayruoEmbedProps {
173
+ /** Game origin (scheme + host). Omit to use production (`https://playruo.live`). */
174
+ baseUrl?: string;
175
+ /** Game operation slug used to build the iframe URL. */
176
+ operation: string;
177
+ /**
178
+ * Which operation of the campaign to open, when it holds more than one. Sent
179
+ * as `?op=`. Without it the campaign picks its own.
180
+ */
181
+ operationKey?: string;
182
+ storeUrl?: string;
183
+ showIframe?: boolean;
184
+ className?: string;
185
+ onReady?: () => void;
186
+ onStateChange?: (state: PlayruoEmbedState) => void;
187
+ onDemoCompleted?: (data: DemoCompletedPayload) => void;
188
+ onEvent?: (data: PlayruoEventPayload) => void;
189
+ onPurchaseRequest?: (data: {
190
+ storeUrl: string;
191
+ }) => void;
192
+ onError?: (error: string) => void;
193
+ /** The operation is password protected and waits for one. */
194
+ onPasswordRequired?: () => void;
195
+ /** Answer to a submitted password. */
196
+ onPasswordResult?: (result: {
197
+ success: boolean;
198
+ error?: PlayruoPasswordErrorCode;
199
+ }) => void;
200
+ /**
201
+ * Skip the parent fullscreen request and start the experience inside the
202
+ * current iframe bounds. Defaults to false to preserve the current behavior.
203
+ */
204
+ enableWindowedLaunch?: boolean;
205
+ /**
206
+ * Forward playruo_event messages to the parent window when the package host
207
+ * itself is embedded in another iframe. Direct host pages already receive the
208
+ * original iframe postMessage.
209
+ */
210
+ forwardEventsToParent?: boolean;
211
+ /**
212
+ * Single render entry point representing the current status.
213
+ * Provides status, message, and available actions based on current state.
214
+ */
215
+ renderState?: (render: PlayruoEmbedRenderState) => ReactNode;
216
+ /**
217
+ * Ref to access the iframe element for fullscreen requests
218
+ */
219
+ iframeRef?: React.RefObject<HTMLIFrameElement | null>;
220
+ }
221
+ declare const PlayruoEmbed: FC<PlayruoEmbedProps>;
222
+
223
+ interface EmbedTesterProps {
224
+ /** Override game origin (e.g. http://localhost:3000). Omit for production. */
225
+ baseUrl?: string;
226
+ enableConsoleLog?: boolean;
227
+ operation?: string;
228
+ storeUrl?: string;
229
+ /** Start the experience inside the iframe without requesting parent fullscreen. */
230
+ enableWindowedLaunch?: boolean;
231
+ className?: string;
232
+ }
233
+ declare const EmbedTester: (props?: EmbedTesterProps) => react_jsx_runtime.JSX.Element;
234
+
147
235
  interface BuildUrlParams {
148
236
  operation: string;
237
+ /**
238
+ * Which operation of the campaign to open, when it holds more than one. Sent
239
+ * as `?op=`. Without it the campaign picks its own, which is what a single
240
+ * operation campaign wants.
241
+ */
242
+ operationKey?: string;
149
243
  storeUrl?: string;
150
244
  }
151
245
  /**
@@ -154,6 +248,6 @@ interface BuildUrlParams {
154
248
  * buildEmbedUrl({ operation: "my-game" })
155
249
  * // => "https://playruo.live/my-game?iframe=true"
156
250
  */
157
- declare const buildEmbedUrl: ({ operation, storeUrl }: BuildUrlParams) => string;
251
+ declare const buildEmbedUrl: ({ operation, operationKey, storeUrl, }: BuildUrlParams) => string;
158
252
 
159
- export { type DemoCompletedPayload, EmbedTester, type EmbedTesterProps, type PlayruoDemoCompletedMessage, PlayruoEmbed, type PlayruoEmbedActions, type PlayruoEmbedMessage, type PlayruoEmbedProps, type PlayruoEmbedRenderState, type PlayruoEmbedState, type PlayruoErrorMessage, type PlayruoEventMessage, type PlayruoEventPayload, type PlayruoInternalMessage, type PlayruoPurchaseRequestMessage, type PlayruoReadyMessage, type PlayruoRequestExitFullscreenMessage, type PlayruoSessionOverMessage, type PlayruoStateUpdateMessage, type PlayruoStreamStartMessage, type PlayruoStreamStopMessage, buildEmbedUrl, isPlayruoEmbedMessage, isPlayruoInternalMessage };
253
+ export { type DemoCompletedPayload, EmbedTester, type EmbedTesterProps, type PlayruoDemoCompletedMessage, PlayruoEmbed, type PlayruoEmbedActions, type PlayruoEmbedMessage, type PlayruoEmbedPasswordState, type PlayruoEmbedProps, type PlayruoEmbedRenderState, type PlayruoEmbedState, type PlayruoErrorMessage, type PlayruoEventMessage, type PlayruoEventPayload, type PlayruoInternalMessage, type PlayruoPasswordError, type PlayruoPasswordErrorCode, type PlayruoPasswordNotRequiredMessage, type PlayruoPasswordRequiredMessage, type PlayruoPasswordResultMessage, type PlayruoPurchaseRequestMessage, type PlayruoReadyMessage, type PlayruoRequestExitFullscreenMessage, type PlayruoSessionOverMessage, type PlayruoStateUpdateMessage, type PlayruoStreamStartMessage, type PlayruoStreamStopMessage, buildEmbedUrl, isPlayruoEmbedMessage, isPlayruoInternalMessage };