@qontinui/ui-bridge-native 0.4.0 → 0.5.1
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/debug/index.js.map +1 -1
- package/dist/debug/index.mjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +57 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +57 -1
- package/dist/index.mjs.map +1 -1
- package/dist/react/UIBridgeNativeProvider.d.ts +9 -2
- package/dist/react/UIBridgeNativeProvider.d.ts.map +1 -1
- package/dist/react/index.js +57 -1
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +57 -1
- package/dist/react/index.mjs.map +1 -1
- package/dist/server/handlers.d.ts.map +1 -1
- package/dist/server/http-server.d.ts +8 -1
- package/dist/server/http-server.d.ts.map +1 -1
- package/dist/server/index.js +51 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +51 -1
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/types.d.ts +9 -0
- package/dist/server/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -2218,6 +2218,14 @@ function createServerHandlers(registry, executor, config) {
|
|
|
2218
2218
|
"NOT_SUPPORTED"
|
|
2219
2219
|
);
|
|
2220
2220
|
},
|
|
2221
|
+
// Keep-awake (stub — apps should override via setKeepAwakeProvider, which
|
|
2222
|
+
// the provider wires when a keepAwakeProvider prop is supplied)
|
|
2223
|
+
keepAwake: async () => {
|
|
2224
|
+
return error2(
|
|
2225
|
+
"keep-awake not configured. Provide a keepAwakeProvider to UIBridgeNativeProvider.",
|
|
2226
|
+
"NOT_SUPPORTED"
|
|
2227
|
+
);
|
|
2228
|
+
},
|
|
2221
2229
|
// Meta / Introspection (stub — server constructor overrides with real route table)
|
|
2222
2230
|
getMethods: async () => {
|
|
2223
2231
|
return error2("Methods introspection not configured", "NOT_SUPPORTED");
|
|
@@ -2891,6 +2899,12 @@ var WS_ROUTES = [
|
|
|
2891
2899
|
httpMethods: ["POST"],
|
|
2892
2900
|
requiresTestHooks: true
|
|
2893
2901
|
},
|
|
2902
|
+
{
|
|
2903
|
+
pattern: "control/keep-awake",
|
|
2904
|
+
handler: "keepAwake",
|
|
2905
|
+
httpMethods: ["POST"],
|
|
2906
|
+
requiresTestHooks: true
|
|
2907
|
+
},
|
|
2894
2908
|
// Observability — last-N console errors + network requests. testHooks-gated
|
|
2895
2909
|
// because patching `console.error` / `fetch` is invasive in production.
|
|
2896
2910
|
{
|
|
@@ -2943,7 +2957,8 @@ var HANDLER_DESCRIPTIONS = {
|
|
|
2943
2957
|
getConsoleErrors: "TEST HOOK \u2014 last-N console.error/console.warn entries; ?since=<ms>&limit=<n>",
|
|
2944
2958
|
getNetworkRequests: "TEST HOOK \u2014 last-N fetch/XHR entries with status + duration; ?since=<ms>&limit=<n>",
|
|
2945
2959
|
pushModal: "TEST HOOK \u2014 push a modal onto the snapshot.modalStack via the registry ModalDetector",
|
|
2946
|
-
dismissModal: "TEST HOOK \u2014 dismiss a modal by id from the snapshot.modalStack via the registry ModalDetector"
|
|
2960
|
+
dismissModal: "TEST HOOK \u2014 dismiss a modal by id from the snapshot.modalStack via the registry ModalDetector",
|
|
2961
|
+
keepAwake: "TEST HOOK \u2014 keep the device screen awake via the injected keepAwakeProvider: body { enabled: boolean, durationMs?: number }"
|
|
2947
2962
|
};
|
|
2948
2963
|
var ACTION_REFERENCE = [
|
|
2949
2964
|
{ name: "press", aliases: ["click"], params: "PressActionParams (optional position)" },
|
|
@@ -3211,6 +3226,35 @@ var NativeUIBridgeServer = class {
|
|
|
3211
3226
|
}
|
|
3212
3227
|
};
|
|
3213
3228
|
}
|
|
3229
|
+
/**
|
|
3230
|
+
* Set a keep-awake provider for native screen-wake control.
|
|
3231
|
+
* This enables `control/keep-awake` and arms the auto-arm hook in
|
|
3232
|
+
* handleRequest (every request keeps the screen alive for 60s).
|
|
3233
|
+
*/
|
|
3234
|
+
setKeepAwakeProvider(provider) {
|
|
3235
|
+
this.keepAwakeProvider = provider;
|
|
3236
|
+
this.handlers.keepAwake = async (ctx) => {
|
|
3237
|
+
const { enabled, durationMs } = ctx.body ?? {};
|
|
3238
|
+
if (typeof enabled !== "boolean") {
|
|
3239
|
+
return {
|
|
3240
|
+
success: false,
|
|
3241
|
+
error: "enabled must be boolean",
|
|
3242
|
+
code: "INVALID_REQUEST",
|
|
3243
|
+
timestamp: Date.now()
|
|
3244
|
+
};
|
|
3245
|
+
}
|
|
3246
|
+
if (enabled) {
|
|
3247
|
+
provider.request("ui-bridge", typeof durationMs === "number" ? durationMs : void 0);
|
|
3248
|
+
} else {
|
|
3249
|
+
provider.release("ui-bridge");
|
|
3250
|
+
}
|
|
3251
|
+
return {
|
|
3252
|
+
success: true,
|
|
3253
|
+
data: { enabled, durationMs: typeof durationMs === "number" ? durationMs : null },
|
|
3254
|
+
timestamp: Date.now()
|
|
3255
|
+
};
|
|
3256
|
+
};
|
|
3257
|
+
}
|
|
3214
3258
|
/**
|
|
3215
3259
|
* Start the HTTP server
|
|
3216
3260
|
*/
|
|
@@ -3803,6 +3847,12 @@ var NativeUIBridgeServer = class {
|
|
|
3803
3847
|
if (request.method === "OPTIONS") {
|
|
3804
3848
|
return { status: 204, headers, body: "" };
|
|
3805
3849
|
}
|
|
3850
|
+
if (this.config.testHooks === true && this.keepAwakeProvider) {
|
|
3851
|
+
try {
|
|
3852
|
+
this.keepAwakeProvider.request("auto-arm", 6e4);
|
|
3853
|
+
} catch {
|
|
3854
|
+
}
|
|
3855
|
+
}
|
|
3806
3856
|
try {
|
|
3807
3857
|
const response = await this.routeRequest(request);
|
|
3808
3858
|
return {
|
|
@@ -4703,6 +4753,7 @@ function UIBridgeNativeProvider({
|
|
|
4703
4753
|
serverAdapter,
|
|
4704
4754
|
navigationProvider,
|
|
4705
4755
|
screenshotProvider,
|
|
4756
|
+
keepAwakeProvider,
|
|
4706
4757
|
routeProvider,
|
|
4707
4758
|
cloudRelayConfig,
|
|
4708
4759
|
enableMdnsAnnounce,
|
|
@@ -4757,6 +4808,9 @@ function UIBridgeNativeProvider({
|
|
|
4757
4808
|
if (screenshotProvider) {
|
|
4758
4809
|
server.setScreenshotProvider(screenshotProvider);
|
|
4759
4810
|
}
|
|
4811
|
+
if (keepAwakeProvider) {
|
|
4812
|
+
server.setKeepAwakeProvider(keepAwakeProvider);
|
|
4813
|
+
}
|
|
4760
4814
|
if (routeProvider) {
|
|
4761
4815
|
server.setRouteProvider(routeProvider);
|
|
4762
4816
|
}
|
|
@@ -4810,6 +4864,7 @@ function UIBridgeNativeProvider({
|
|
|
4810
4864
|
serverAdapter,
|
|
4811
4865
|
navigationProvider,
|
|
4812
4866
|
screenshotProvider,
|
|
4867
|
+
keepAwakeProvider,
|
|
4813
4868
|
routeProvider
|
|
4814
4869
|
]);
|
|
4815
4870
|
const stopServer = useCallback(() => {
|
|
@@ -4843,6 +4898,7 @@ function UIBridgeNativeProvider({
|
|
|
4843
4898
|
});
|
|
4844
4899
|
if (navigationProvider) bareServer.setNavigationProvider(navigationProvider);
|
|
4845
4900
|
if (screenshotProvider) bareServer.setScreenshotProvider(screenshotProvider);
|
|
4901
|
+
if (keepAwakeProvider) bareServer.setKeepAwakeProvider(keepAwakeProvider);
|
|
4846
4902
|
if (routeProvider) bareServer.setRouteProvider(routeProvider);
|
|
4847
4903
|
serverRef.current = bareServer;
|
|
4848
4904
|
} catch (err) {
|