@hyve-sdk/js 2.4.3 → 2.5.0-canary.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.js +5 -0
- package/dist/index.mjs +5 -0
- package/dist/react.d.mts +18 -2
- package/dist/react.d.ts +18 -2
- package/dist/react.js +71 -0
- package/dist/react.mjs +73 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -560,6 +560,11 @@ var AdsService = class {
|
|
|
560
560
|
if (type === "rewarded") {
|
|
561
561
|
adBreakConfig.beforeReward = (showAdFn) => showAdFn();
|
|
562
562
|
adBreakConfig.adViewed = () => this.config.onRewardEarned();
|
|
563
|
+
adBreakConfig.adDismissed = () => {
|
|
564
|
+
if (this.config.debug) {
|
|
565
|
+
logger.debug("[AdsService] Rewarded ad dismissed");
|
|
566
|
+
}
|
|
567
|
+
};
|
|
563
568
|
}
|
|
564
569
|
window.adBreak(adBreakConfig);
|
|
565
570
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -520,6 +520,11 @@ var AdsService = class {
|
|
|
520
520
|
if (type === "rewarded") {
|
|
521
521
|
adBreakConfig.beforeReward = (showAdFn) => showAdFn();
|
|
522
522
|
adBreakConfig.adViewed = () => this.config.onRewardEarned();
|
|
523
|
+
adBreakConfig.adDismissed = () => {
|
|
524
|
+
if (this.config.debug) {
|
|
525
|
+
logger.debug("[AdsService] Rewarded ad dismissed");
|
|
526
|
+
}
|
|
527
|
+
};
|
|
523
528
|
}
|
|
524
529
|
window.adBreak(adBreakConfig);
|
|
525
530
|
});
|
package/dist/react.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { ReactNode } from 'react';
|
|
2
|
+
import { ReactNode, CSSProperties } from 'react';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Telemetry configuration options
|
|
@@ -528,5 +528,21 @@ declare function HyveSdkProvider({ client, config, children, }: HyveSdkProviderP
|
|
|
528
528
|
* }
|
|
529
529
|
*/
|
|
530
530
|
declare function useHyveSdk(): HyveClient;
|
|
531
|
+
interface MachineViewProps {
|
|
532
|
+
/** The machine ID to fetch and render */
|
|
533
|
+
machineId: string;
|
|
534
|
+
/** Optional className applied to the iframe */
|
|
535
|
+
className?: string;
|
|
536
|
+
/** Optional inline styles applied to the iframe */
|
|
537
|
+
style?: CSSProperties;
|
|
538
|
+
}
|
|
539
|
+
/**
|
|
540
|
+
* Fetches the render for a machine by ID and displays it inside a sandboxed iframe.
|
|
541
|
+
* Must be used within a HyveSdkProvider.
|
|
542
|
+
*
|
|
543
|
+
* @example
|
|
544
|
+
* <MachineView machineId="daily-streak" style={{ width: "100%", height: 400 }} />
|
|
545
|
+
*/
|
|
546
|
+
declare function MachineView({ machineId, className, style }: MachineViewProps): react_jsx_runtime.JSX.Element | null;
|
|
531
547
|
|
|
532
|
-
export { HyveSdkProvider, useHyveSdk };
|
|
548
|
+
export { HyveSdkProvider, MachineView, useHyveSdk };
|
package/dist/react.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { ReactNode } from 'react';
|
|
2
|
+
import { ReactNode, CSSProperties } from 'react';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Telemetry configuration options
|
|
@@ -528,5 +528,21 @@ declare function HyveSdkProvider({ client, config, children, }: HyveSdkProviderP
|
|
|
528
528
|
* }
|
|
529
529
|
*/
|
|
530
530
|
declare function useHyveSdk(): HyveClient;
|
|
531
|
+
interface MachineViewProps {
|
|
532
|
+
/** The machine ID to fetch and render */
|
|
533
|
+
machineId: string;
|
|
534
|
+
/** Optional className applied to the iframe */
|
|
535
|
+
className?: string;
|
|
536
|
+
/** Optional inline styles applied to the iframe */
|
|
537
|
+
style?: CSSProperties;
|
|
538
|
+
}
|
|
539
|
+
/**
|
|
540
|
+
* Fetches the render for a machine by ID and displays it inside a sandboxed iframe.
|
|
541
|
+
* Must be used within a HyveSdkProvider.
|
|
542
|
+
*
|
|
543
|
+
* @example
|
|
544
|
+
* <MachineView machineId="daily-streak" style={{ width: "100%", height: 400 }} />
|
|
545
|
+
*/
|
|
546
|
+
declare function MachineView({ machineId, className, style }: MachineViewProps): react_jsx_runtime.JSX.Element | null;
|
|
531
547
|
|
|
532
|
-
export { HyveSdkProvider, useHyveSdk };
|
|
548
|
+
export { HyveSdkProvider, MachineView, useHyveSdk };
|
package/dist/react.js
CHANGED
|
@@ -21,6 +21,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
21
21
|
var react_exports = {};
|
|
22
22
|
__export(react_exports, {
|
|
23
23
|
HyveSdkProvider: () => HyveSdkProvider,
|
|
24
|
+
MachineView: () => MachineView,
|
|
24
25
|
useHyveSdk: () => useHyveSdk
|
|
25
26
|
});
|
|
26
27
|
module.exports = __toCommonJS(react_exports);
|
|
@@ -517,6 +518,11 @@ var AdsService = class {
|
|
|
517
518
|
if (type === "rewarded") {
|
|
518
519
|
adBreakConfig.beforeReward = (showAdFn) => showAdFn();
|
|
519
520
|
adBreakConfig.adViewed = () => this.config.onRewardEarned();
|
|
521
|
+
adBreakConfig.adDismissed = () => {
|
|
522
|
+
if (this.config.debug) {
|
|
523
|
+
logger.debug("[AdsService] Rewarded ad dismissed");
|
|
524
|
+
}
|
|
525
|
+
};
|
|
520
526
|
}
|
|
521
527
|
window.adBreak(adBreakConfig);
|
|
522
528
|
});
|
|
@@ -2223,8 +2229,73 @@ function useHyveSdk() {
|
|
|
2223
2229
|
}
|
|
2224
2230
|
return client;
|
|
2225
2231
|
}
|
|
2232
|
+
function buildIframeHtml(js) {
|
|
2233
|
+
return `<!DOCTYPE html>
|
|
2234
|
+
<html>
|
|
2235
|
+
<head>
|
|
2236
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
2237
|
+
<style>
|
|
2238
|
+
* { box-sizing: border-box; }
|
|
2239
|
+
body {
|
|
2240
|
+
margin: 0;
|
|
2241
|
+
padding: 24px;
|
|
2242
|
+
min-height: 100vh;
|
|
2243
|
+
display: flex;
|
|
2244
|
+
align-items: center;
|
|
2245
|
+
justify-content: center;
|
|
2246
|
+
}
|
|
2247
|
+
#container { width: 100%; max-width: 480px; }
|
|
2248
|
+
</style>
|
|
2249
|
+
</head>
|
|
2250
|
+
<body>
|
|
2251
|
+
<div id="container"></div>
|
|
2252
|
+
<script>
|
|
2253
|
+
var container = document.getElementById('container');
|
|
2254
|
+
${js}
|
|
2255
|
+
</script>
|
|
2256
|
+
</body>
|
|
2257
|
+
</html>`;
|
|
2258
|
+
}
|
|
2259
|
+
function MachineView({ machineId, className, style }) {
|
|
2260
|
+
const sdk = useHyveSdk();
|
|
2261
|
+
const [state, setState] = (0, import_react.useState)({ status: "loading" });
|
|
2262
|
+
(0, import_react.useEffect)(() => {
|
|
2263
|
+
let cancelled = false;
|
|
2264
|
+
setState({ status: "loading" });
|
|
2265
|
+
sdk.getMachineRender(machineId).then((js) => {
|
|
2266
|
+
if (!cancelled) {
|
|
2267
|
+
setState({ status: "ready", html: buildIframeHtml(js) });
|
|
2268
|
+
}
|
|
2269
|
+
}).catch((err) => {
|
|
2270
|
+
if (!cancelled) {
|
|
2271
|
+
const message = err instanceof Error ? err.message : "Failed to load machine render";
|
|
2272
|
+
setState({ status: "error", message });
|
|
2273
|
+
}
|
|
2274
|
+
});
|
|
2275
|
+
return () => {
|
|
2276
|
+
cancelled = true;
|
|
2277
|
+
};
|
|
2278
|
+
}, [sdk, machineId]);
|
|
2279
|
+
if (state.status === "loading") {
|
|
2280
|
+
return null;
|
|
2281
|
+
}
|
|
2282
|
+
if (state.status === "error") {
|
|
2283
|
+
return null;
|
|
2284
|
+
}
|
|
2285
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
2286
|
+
"iframe",
|
|
2287
|
+
{
|
|
2288
|
+
srcDoc: state.html,
|
|
2289
|
+
className,
|
|
2290
|
+
style,
|
|
2291
|
+
sandbox: "allow-scripts",
|
|
2292
|
+
referrerPolicy: "no-referrer"
|
|
2293
|
+
}
|
|
2294
|
+
);
|
|
2295
|
+
}
|
|
2226
2296
|
// Annotate the CommonJS export names for ESM import in node:
|
|
2227
2297
|
0 && (module.exports = {
|
|
2228
2298
|
HyveSdkProvider,
|
|
2299
|
+
MachineView,
|
|
2229
2300
|
useHyveSdk
|
|
2230
2301
|
});
|
package/dist/react.mjs
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
import {
|
|
3
3
|
createContext,
|
|
4
4
|
useContext,
|
|
5
|
-
|
|
5
|
+
useEffect,
|
|
6
|
+
useRef,
|
|
7
|
+
useState
|
|
6
8
|
} from "react";
|
|
7
9
|
|
|
8
10
|
// src/utils/index.ts
|
|
@@ -496,6 +498,11 @@ var AdsService = class {
|
|
|
496
498
|
if (type === "rewarded") {
|
|
497
499
|
adBreakConfig.beforeReward = (showAdFn) => showAdFn();
|
|
498
500
|
adBreakConfig.adViewed = () => this.config.onRewardEarned();
|
|
501
|
+
adBreakConfig.adDismissed = () => {
|
|
502
|
+
if (this.config.debug) {
|
|
503
|
+
logger.debug("[AdsService] Rewarded ad dismissed");
|
|
504
|
+
}
|
|
505
|
+
};
|
|
499
506
|
}
|
|
500
507
|
window.adBreak(adBreakConfig);
|
|
501
508
|
});
|
|
@@ -2202,7 +2209,72 @@ function useHyveSdk() {
|
|
|
2202
2209
|
}
|
|
2203
2210
|
return client;
|
|
2204
2211
|
}
|
|
2212
|
+
function buildIframeHtml(js) {
|
|
2213
|
+
return `<!DOCTYPE html>
|
|
2214
|
+
<html>
|
|
2215
|
+
<head>
|
|
2216
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
2217
|
+
<style>
|
|
2218
|
+
* { box-sizing: border-box; }
|
|
2219
|
+
body {
|
|
2220
|
+
margin: 0;
|
|
2221
|
+
padding: 24px;
|
|
2222
|
+
min-height: 100vh;
|
|
2223
|
+
display: flex;
|
|
2224
|
+
align-items: center;
|
|
2225
|
+
justify-content: center;
|
|
2226
|
+
}
|
|
2227
|
+
#container { width: 100%; max-width: 480px; }
|
|
2228
|
+
</style>
|
|
2229
|
+
</head>
|
|
2230
|
+
<body>
|
|
2231
|
+
<div id="container"></div>
|
|
2232
|
+
<script>
|
|
2233
|
+
var container = document.getElementById('container');
|
|
2234
|
+
${js}
|
|
2235
|
+
</script>
|
|
2236
|
+
</body>
|
|
2237
|
+
</html>`;
|
|
2238
|
+
}
|
|
2239
|
+
function MachineView({ machineId, className, style }) {
|
|
2240
|
+
const sdk = useHyveSdk();
|
|
2241
|
+
const [state, setState] = useState({ status: "loading" });
|
|
2242
|
+
useEffect(() => {
|
|
2243
|
+
let cancelled = false;
|
|
2244
|
+
setState({ status: "loading" });
|
|
2245
|
+
sdk.getMachineRender(machineId).then((js) => {
|
|
2246
|
+
if (!cancelled) {
|
|
2247
|
+
setState({ status: "ready", html: buildIframeHtml(js) });
|
|
2248
|
+
}
|
|
2249
|
+
}).catch((err) => {
|
|
2250
|
+
if (!cancelled) {
|
|
2251
|
+
const message = err instanceof Error ? err.message : "Failed to load machine render";
|
|
2252
|
+
setState({ status: "error", message });
|
|
2253
|
+
}
|
|
2254
|
+
});
|
|
2255
|
+
return () => {
|
|
2256
|
+
cancelled = true;
|
|
2257
|
+
};
|
|
2258
|
+
}, [sdk, machineId]);
|
|
2259
|
+
if (state.status === "loading") {
|
|
2260
|
+
return null;
|
|
2261
|
+
}
|
|
2262
|
+
if (state.status === "error") {
|
|
2263
|
+
return null;
|
|
2264
|
+
}
|
|
2265
|
+
return /* @__PURE__ */ jsx(
|
|
2266
|
+
"iframe",
|
|
2267
|
+
{
|
|
2268
|
+
srcDoc: state.html,
|
|
2269
|
+
className,
|
|
2270
|
+
style,
|
|
2271
|
+
sandbox: "allow-scripts",
|
|
2272
|
+
referrerPolicy: "no-referrer"
|
|
2273
|
+
}
|
|
2274
|
+
);
|
|
2275
|
+
}
|
|
2205
2276
|
export {
|
|
2206
2277
|
HyveSdkProvider,
|
|
2278
|
+
MachineView,
|
|
2207
2279
|
useHyveSdk
|
|
2208
2280
|
};
|