@qontinui/ui-bridge-native 0.3.2 → 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.
Files changed (112) hide show
  1. package/dist/control/{index.d.mts → action-executor.d.ts} +6 -10
  2. package/dist/control/action-executor.d.ts.map +1 -0
  3. package/dist/control/index.d.ts +5 -95
  4. package/dist/control/index.d.ts.map +1 -0
  5. package/dist/{types-CjEKTDYT.d.ts → control/types.d.ts} +17 -20
  6. package/dist/control/types.d.ts.map +1 -0
  7. package/dist/core/element-identifier.d.ts +41 -0
  8. package/dist/core/element-identifier.d.ts.map +1 -0
  9. package/dist/core/index.d.ts +6 -43
  10. package/dist/core/index.d.ts.map +1 -0
  11. package/dist/{registry-pAUpQq2O.d.ts → core/registry.d.ts} +10 -13
  12. package/dist/core/registry.d.ts.map +1 -0
  13. package/dist/{types-CGVut7mc.d.mts → core/types.d.ts} +41 -41
  14. package/dist/core/types.d.ts.map +1 -0
  15. package/dist/debug/index.d.ts +4 -44
  16. package/dist/debug/index.d.ts.map +1 -0
  17. package/dist/debug/index.js +1 -1
  18. package/dist/debug/index.js.map +1 -1
  19. package/dist/debug/index.mjs +2 -2
  20. package/dist/debug/index.mjs.map +1 -1
  21. package/dist/debug/{index.d.mts → inspector.d.ts} +3 -6
  22. package/dist/debug/inspector.d.ts.map +1 -0
  23. package/dist/design/{index.d.mts → design-inspector-native.d.ts} +7 -11
  24. package/dist/design/design-inspector-native.d.ts.map +1 -0
  25. package/dist/{design-types-BHr6Q1FX.d.mts → design/design-types.d.ts} +10 -11
  26. package/dist/design/design-types.d.ts.map +1 -0
  27. package/dist/design/index.d.ts +5 -60
  28. package/dist/design/index.d.ts.map +1 -0
  29. package/dist/index.d.ts +37 -86
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +60 -4
  32. package/dist/index.js.map +1 -1
  33. package/dist/index.mjs +61 -5
  34. package/dist/index.mjs.map +1 -1
  35. package/dist/modal/index.d.ts +2 -0
  36. package/dist/modal/index.d.ts.map +1 -0
  37. package/dist/modal/modal-detector.d.ts +29 -0
  38. package/dist/modal/modal-detector.d.ts.map +1 -0
  39. package/dist/react/StateAnnotation.d.ts +30 -0
  40. package/dist/react/StateAnnotation.d.ts.map +1 -0
  41. package/dist/react/UIBridgeNativeProvider.d.ts +163 -0
  42. package/dist/react/UIBridgeNativeProvider.d.ts.map +1 -0
  43. package/dist/react/index.d.ts +14 -69
  44. package/dist/react/index.d.ts.map +1 -0
  45. package/dist/react/index.js +60 -4
  46. package/dist/react/index.js.map +1 -1
  47. package/dist/react/index.mjs +61 -5
  48. package/dist/react/index.mjs.map +1 -1
  49. package/dist/react/{index.d.mts → useAutoRegister.d.ts} +7 -15
  50. package/dist/react/useAutoRegister.d.ts.map +1 -0
  51. package/dist/react/useUIBridge.d.ts +103 -0
  52. package/dist/react/useUIBridge.d.ts.map +1 -0
  53. package/dist/react/useUIBridgeModal.d.ts +14 -0
  54. package/dist/react/useUIBridgeModal.d.ts.map +1 -0
  55. package/dist/react/useUIBridgeToast.d.ts +25 -0
  56. package/dist/react/useUIBridgeToast.d.ts.map +1 -0
  57. package/dist/react/useUIComponent.d.ts +112 -0
  58. package/dist/react/useUIComponent.d.ts.map +1 -0
  59. package/dist/react/useUIElement.d.ts +162 -0
  60. package/dist/react/useUIElement.d.ts.map +1 -0
  61. package/dist/server/design-handlers.d.ts +47 -0
  62. package/dist/server/design-handlers.d.ts.map +1 -0
  63. package/dist/server/handlers.d.ts +25 -0
  64. package/dist/server/handlers.d.ts.map +1 -0
  65. package/dist/server/http-server.d.ts +269 -0
  66. package/dist/server/http-server.d.ts.map +1 -0
  67. package/dist/server/index.d.ts +14 -176
  68. package/dist/server/index.d.ts.map +1 -0
  69. package/dist/server/index.js +51 -1
  70. package/dist/server/index.js.map +1 -1
  71. package/dist/server/index.mjs +51 -1
  72. package/dist/server/index.mjs.map +1 -1
  73. package/dist/server/observability.d.ts +55 -0
  74. package/dist/server/observability.d.ts.map +1 -0
  75. package/dist/server/types.d.ts +377 -0
  76. package/dist/server/types.d.ts.map +1 -0
  77. package/dist/server/ws-connection.d.ts +48 -0
  78. package/dist/server/ws-connection.d.ts.map +1 -0
  79. package/dist/server/ws-event-bridge.d.ts +113 -0
  80. package/dist/server/ws-event-bridge.d.ts.map +1 -0
  81. package/dist/server/ws-protocol.d.ts +48 -0
  82. package/dist/server/ws-protocol.d.ts.map +1 -0
  83. package/dist/server/ws-types.d.ts +65 -0
  84. package/dist/server/ws-types.d.ts.map +1 -0
  85. package/dist/toast/index.d.ts +2 -0
  86. package/dist/toast/index.d.ts.map +1 -0
  87. package/dist/toast/toast-capture.d.ts +27 -0
  88. package/dist/toast/toast-capture.d.ts.map +1 -0
  89. package/dist/transport/CloudRelayClient.d.ts +51 -0
  90. package/dist/transport/CloudRelayClient.d.ts.map +1 -0
  91. package/dist/transport/DeviceAnnouncer.d.ts +75 -0
  92. package/dist/transport/DeviceAnnouncer.d.ts.map +1 -0
  93. package/dist/transport/index.d.ts +3 -0
  94. package/dist/transport/index.d.ts.map +1 -0
  95. package/dist/transport/logger.d.ts +23 -0
  96. package/dist/transport/logger.d.ts.map +1 -0
  97. package/dist/undo/index.d.ts +3 -0
  98. package/dist/undo/index.d.ts.map +1 -0
  99. package/dist/undo/undo-tracker.d.ts +59 -0
  100. package/dist/undo/undo-tracker.d.ts.map +1 -0
  101. package/package.json +3 -3
  102. package/dist/StateAnnotation--zm0Jfqj.d.ts +0 -755
  103. package/dist/StateAnnotation-BgFoVWFy.d.mts +0 -755
  104. package/dist/core/index.d.mts +0 -46
  105. package/dist/design-types-BHr6Q1FX.d.ts +0 -205
  106. package/dist/http-server--550eD1F.d.mts +0 -805
  107. package/dist/http-server-C9NaNBEP.d.ts +0 -805
  108. package/dist/index.d.mts +0 -89
  109. package/dist/registry-B5JadBN9.d.mts +0 -300
  110. package/dist/server/index.d.mts +0 -178
  111. package/dist/types-B0XA4vOF.d.mts +0 -197
  112. package/dist/types-CGVut7mc.d.ts +0 -567
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { createContext, useRef, useState, useCallback, useEffect, useMemo, useContext } from 'react';
1
+ import { createContext, useRef, useState, useCallback, useEffect, useMemo, use } from 'react';
2
2
  import { Dimensions, StyleSheet, Platform, TouchableOpacity, Text, Modal, View, ScrollView } from 'react-native';
3
3
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
4
4
 
@@ -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) {
@@ -4987,17 +5043,17 @@ function UIBridgeNativeProvider({
4987
5043
  getCurrentRoute
4988
5044
  ]
4989
5045
  );
4990
- return /* @__PURE__ */ jsx(UIBridgeNativeContext.Provider, { value: contextValue, children });
5046
+ return /* @__PURE__ */ jsx(UIBridgeNativeContext, { value: contextValue, children });
4991
5047
  }
4992
5048
  function useUIBridgeNative() {
4993
- const context = useContext(UIBridgeNativeContext);
5049
+ const context = use(UIBridgeNativeContext);
4994
5050
  if (!context) {
4995
5051
  throw new Error("useUIBridgeNative must be used within a UIBridgeNativeProvider");
4996
5052
  }
4997
5053
  return context;
4998
5054
  }
4999
5055
  function useUIBridgeNativeOptional() {
5000
- return useContext(UIBridgeNativeContext);
5056
+ return use(UIBridgeNativeContext);
5001
5057
  }
5002
5058
  var useUIBridgeNativeRequired = useUIBridgeNative;
5003
5059
  function flattenStyle(style) {