@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/server/handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,sBAAsB,EAAuB,MAAM,kBAAkB,CAAC;AAQpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAQV,oBAAoB,EAKrB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AA+PhF;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,sBAAsB,EAChC,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,CAAC,EAAE;IACP,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClF,iFAAiF;IACjF,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C,GACA,oBAAoB,
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/server/handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,sBAAsB,EAAuB,MAAM,kBAAkB,CAAC;AAQpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAQV,oBAAoB,EAKrB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AA+PhF;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,sBAAsB,EAChC,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,CAAC,EAAE;IACP,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClF,iFAAiF;IACjF,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C,GACA,oBAAoB,CA8vBtB"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import type { NativeUIBridgeRegistry } from '../core/registry';
|
|
14
14
|
import type { NativeActionExecutor } from '../control/types';
|
|
15
|
-
import type { NativeServerConfig, NavigationProvider, RouteProvider, ScreenshotProvider } from './types';
|
|
15
|
+
import type { NativeServerConfig, NavigationProvider, RouteProvider, ScreenshotProvider, KeepAwakeProvider } from './types';
|
|
16
16
|
import type { WebSocketEventBridge } from './ws-event-bridge';
|
|
17
17
|
import type { JsonRpcRequest, JsonRpcResponse } from './ws-types';
|
|
18
18
|
/**
|
|
@@ -79,6 +79,7 @@ export declare class NativeUIBridgeServer {
|
|
|
79
79
|
private handlers;
|
|
80
80
|
private adapter?;
|
|
81
81
|
private running;
|
|
82
|
+
private keepAwakeProvider?;
|
|
82
83
|
/**
|
|
83
84
|
* Per-connection cleanup thunks for in-flight waiters (waitForElement,
|
|
84
85
|
* waitForCondition, ...). Aborted when a client disconnects so the
|
|
@@ -120,6 +121,12 @@ export declare class NativeUIBridgeServer {
|
|
|
120
121
|
* This enables `control/screenshot` on native.
|
|
121
122
|
*/
|
|
122
123
|
setScreenshotProvider(provider: ScreenshotProvider): void;
|
|
124
|
+
/**
|
|
125
|
+
* Set a keep-awake provider for native screen-wake control.
|
|
126
|
+
* This enables `control/keep-awake` and arms the auto-arm hook in
|
|
127
|
+
* handleRequest (every request keeps the screen alive for 60s).
|
|
128
|
+
*/
|
|
129
|
+
setKeepAwakeProvider(provider: KeepAwakeProvider): void;
|
|
123
130
|
/**
|
|
124
131
|
* Start the HTTP server
|
|
125
132
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../../src/server/http-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAA0B,MAAM,kBAAkB,CAAC;AACrF,OAAO,KAAK,EACV,kBAAkB,EAElB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,
|
|
1
|
+
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../../src/server/http-server.ts"],"names":[],"mappings":"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"}
|
package/dist/server/index.js
CHANGED
|
@@ -1117,6 +1117,14 @@ function createServerHandlers(registry, executor, config) {
|
|
|
1117
1117
|
"NOT_SUPPORTED"
|
|
1118
1118
|
);
|
|
1119
1119
|
},
|
|
1120
|
+
// Keep-awake (stub — apps should override via setKeepAwakeProvider, which
|
|
1121
|
+
// the provider wires when a keepAwakeProvider prop is supplied)
|
|
1122
|
+
keepAwake: async () => {
|
|
1123
|
+
return error2(
|
|
1124
|
+
"keep-awake not configured. Provide a keepAwakeProvider to UIBridgeNativeProvider.",
|
|
1125
|
+
"NOT_SUPPORTED"
|
|
1126
|
+
);
|
|
1127
|
+
},
|
|
1120
1128
|
// Meta / Introspection (stub — server constructor overrides with real route table)
|
|
1121
1129
|
getMethods: async () => {
|
|
1122
1130
|
return error2("Methods introspection not configured", "NOT_SUPPORTED");
|
|
@@ -1790,6 +1798,12 @@ var WS_ROUTES = [
|
|
|
1790
1798
|
httpMethods: ["POST"],
|
|
1791
1799
|
requiresTestHooks: true
|
|
1792
1800
|
},
|
|
1801
|
+
{
|
|
1802
|
+
pattern: "control/keep-awake",
|
|
1803
|
+
handler: "keepAwake",
|
|
1804
|
+
httpMethods: ["POST"],
|
|
1805
|
+
requiresTestHooks: true
|
|
1806
|
+
},
|
|
1793
1807
|
// Observability — last-N console errors + network requests. testHooks-gated
|
|
1794
1808
|
// because patching `console.error` / `fetch` is invasive in production.
|
|
1795
1809
|
{
|
|
@@ -1842,7 +1856,8 @@ var HANDLER_DESCRIPTIONS = {
|
|
|
1842
1856
|
getConsoleErrors: "TEST HOOK \u2014 last-N console.error/console.warn entries; ?since=<ms>&limit=<n>",
|
|
1843
1857
|
getNetworkRequests: "TEST HOOK \u2014 last-N fetch/XHR entries with status + duration; ?since=<ms>&limit=<n>",
|
|
1844
1858
|
pushModal: "TEST HOOK \u2014 push a modal onto the snapshot.modalStack via the registry ModalDetector",
|
|
1845
|
-
dismissModal: "TEST HOOK \u2014 dismiss a modal by id from the snapshot.modalStack via the registry ModalDetector"
|
|
1859
|
+
dismissModal: "TEST HOOK \u2014 dismiss a modal by id from the snapshot.modalStack via the registry ModalDetector",
|
|
1860
|
+
keepAwake: "TEST HOOK \u2014 keep the device screen awake via the injected keepAwakeProvider: body { enabled: boolean, durationMs?: number }"
|
|
1846
1861
|
};
|
|
1847
1862
|
var ACTION_REFERENCE = [
|
|
1848
1863
|
{ name: "press", aliases: ["click"], params: "PressActionParams (optional position)" },
|
|
@@ -2110,6 +2125,35 @@ var NativeUIBridgeServer = class {
|
|
|
2110
2125
|
}
|
|
2111
2126
|
};
|
|
2112
2127
|
}
|
|
2128
|
+
/**
|
|
2129
|
+
* Set a keep-awake provider for native screen-wake control.
|
|
2130
|
+
* This enables `control/keep-awake` and arms the auto-arm hook in
|
|
2131
|
+
* handleRequest (every request keeps the screen alive for 60s).
|
|
2132
|
+
*/
|
|
2133
|
+
setKeepAwakeProvider(provider) {
|
|
2134
|
+
this.keepAwakeProvider = provider;
|
|
2135
|
+
this.handlers.keepAwake = async (ctx) => {
|
|
2136
|
+
const { enabled, durationMs } = ctx.body ?? {};
|
|
2137
|
+
if (typeof enabled !== "boolean") {
|
|
2138
|
+
return {
|
|
2139
|
+
success: false,
|
|
2140
|
+
error: "enabled must be boolean",
|
|
2141
|
+
code: "INVALID_REQUEST",
|
|
2142
|
+
timestamp: Date.now()
|
|
2143
|
+
};
|
|
2144
|
+
}
|
|
2145
|
+
if (enabled) {
|
|
2146
|
+
provider.request("ui-bridge", typeof durationMs === "number" ? durationMs : void 0);
|
|
2147
|
+
} else {
|
|
2148
|
+
provider.release("ui-bridge");
|
|
2149
|
+
}
|
|
2150
|
+
return {
|
|
2151
|
+
success: true,
|
|
2152
|
+
data: { enabled, durationMs: typeof durationMs === "number" ? durationMs : null },
|
|
2153
|
+
timestamp: Date.now()
|
|
2154
|
+
};
|
|
2155
|
+
};
|
|
2156
|
+
}
|
|
2113
2157
|
/**
|
|
2114
2158
|
* Start the HTTP server
|
|
2115
2159
|
*/
|
|
@@ -2702,6 +2746,12 @@ var NativeUIBridgeServer = class {
|
|
|
2702
2746
|
if (request.method === "OPTIONS") {
|
|
2703
2747
|
return { status: 204, headers, body: "" };
|
|
2704
2748
|
}
|
|
2749
|
+
if (this.config.testHooks === true && this.keepAwakeProvider) {
|
|
2750
|
+
try {
|
|
2751
|
+
this.keepAwakeProvider.request("auto-arm", 6e4);
|
|
2752
|
+
} catch {
|
|
2753
|
+
}
|
|
2754
|
+
}
|
|
2705
2755
|
try {
|
|
2706
2756
|
const response = await this.routeRequest(request);
|
|
2707
2757
|
return {
|