@qontinui/ui-bridge-native 0.6.12 → 0.6.13
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/README.md +36 -16
- package/dist/control/action-executor.d.ts +42 -2
- package/dist/control/action-executor.d.ts.map +1 -1
- package/dist/control/index.js +723 -4
- package/dist/control/index.js.map +1 -1
- package/dist/control/index.mjs +723 -5
- package/dist/control/index.mjs.map +1 -1
- package/dist/control/types.d.ts +82 -1
- package/dist/control/types.d.ts.map +1 -1
- package/dist/core/abortable.d.ts +151 -0
- package/dist/core/abortable.d.ts.map +1 -0
- package/dist/core/action-effect.d.ts +74 -0
- package/dist/core/action-effect.d.ts.map +1 -0
- package/dist/core/element-actions.d.ts +38 -0
- package/dist/core/element-actions.d.ts.map +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +756 -15
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +738 -16
- package/dist/core/index.mjs.map +1 -1
- package/dist/core/param-schema.d.ts +282 -0
- package/dist/core/param-schema.d.ts.map +1 -0
- package/dist/core/registry.d.ts +272 -2
- package/dist/core/registry.d.ts.map +1 -1
- package/dist/core/types.d.ts +231 -32
- package/dist/core/types.d.ts.map +1 -1
- package/dist/debug/index.js.map +1 -1
- package/dist/debug/index.mjs.map +1 -1
- package/dist/index.d.ts +10 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1502 -117
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1484 -118
- package/dist/index.mjs.map +1 -1
- package/dist/react/UIBridgeNativeProvider.d.ts +1 -23
- package/dist/react/UIBridgeNativeProvider.d.ts.map +1 -1
- package/dist/react/index.js +1319 -112
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +1319 -112
- package/dist/react/index.mjs.map +1 -1
- package/dist/react/useUIBridge.d.ts +19 -22
- package/dist/react/useUIBridge.d.ts.map +1 -1
- package/dist/react/useUIComponent.d.ts +113 -8
- package/dist/react/useUIComponent.d.ts.map +1 -1
- package/dist/react/useUIElement.d.ts +34 -8
- package/dist/react/useUIElement.d.ts.map +1 -1
- package/dist/server/handlers.d.ts.map +1 -1
- package/dist/server/http-server.d.ts +15 -2
- package/dist/server/http-server.d.ts.map +1 -1
- package/dist/server/index.js +345 -43
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +345 -44
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/observability.d.ts +40 -0
- package/dist/server/observability.d.ts.map +1 -1
- package/dist/server/types.d.ts +57 -1
- package/dist/server/types.d.ts.map +1 -1
- package/dist/transport/CloudRelayClient.d.ts.map +1 -1
- package/dist/transport/DeviceAnnouncer.d.ts.map +1 -1
- package/dist/transport/relay-logging.d.ts +50 -0
- package/dist/transport/relay-logging.d.ts.map +1 -0
- package/package.json +2 -2
|
@@ -42,7 +42,47 @@ export declare class NetworkRequestBuffer {
|
|
|
42
42
|
private originalFetch?;
|
|
43
43
|
private originalXhrOpen?;
|
|
44
44
|
private originalXhrSend?;
|
|
45
|
+
/**
|
|
46
|
+
* Synchronous re-entrancy depth: non-zero while the ORIGINAL `fetch` is
|
|
47
|
+
* executing, which is exactly the window in which React Native's whatwg-fetch
|
|
48
|
+
* polyfill constructs and opens its internal `XMLHttpRequest`.
|
|
49
|
+
*
|
|
50
|
+
* A counter rather than a boolean so a `fetch` called from inside a `fetch`
|
|
51
|
+
* (an interceptor, a retry wrapper) still unwinds to zero. Safe as a plain
|
|
52
|
+
* number: JS is single-threaded and the only writes are the paired
|
|
53
|
+
* increment/decrement around one synchronous call.
|
|
54
|
+
*/
|
|
55
|
+
private fetchDepth;
|
|
45
56
|
constructor(capacity?: number);
|
|
57
|
+
/**
|
|
58
|
+
* Patch `fetch` and `XMLHttpRequest` so `GET /sdk/network-requests` can
|
|
59
|
+
* report what the app talked to.
|
|
60
|
+
*
|
|
61
|
+
* ONE REQUEST MUST PRODUCE ONE ENTRY. React Native implements `fetch` **on
|
|
62
|
+
* top of** XHR (whatwg-fetch), so both patches observe the same request and
|
|
63
|
+
* the buffer used to carry every call twice — same url, timestamps ~1ms
|
|
64
|
+
* apart, and on failure one `"Network request failed"` beside one
|
|
65
|
+
* `"XMLHttpRequest error"`. A tester reads that as a double-fetch bug in the
|
|
66
|
+
* app and chases a defect that does not exist.
|
|
67
|
+
*
|
|
68
|
+
* The de-dup: `fetchDepth` is raised across the synchronous call into the
|
|
69
|
+
* original `fetch`, which is when the polyfill builds its XHR; `open` stamps
|
|
70
|
+
* any XHR created in that window with `__uiBridgeFromFetch`, and `send`
|
|
71
|
+
* skips recording those. The `fetch` patch keeps the entry, because it is
|
|
72
|
+
* the layer the app actually called and the only one that sees `Response.ok`.
|
|
73
|
+
*
|
|
74
|
+
* Uninstalling both patches together keeps this sound: an XHR can only be
|
|
75
|
+
* marked while the fetch patch is live.
|
|
76
|
+
*
|
|
77
|
+
* KNOWN LIMIT — it is coupled to the polyfill building its XHR SYNCHRONOUSLY,
|
|
78
|
+
* which whatwg-fetch does (its work happens in the Promise executor). If the
|
|
79
|
+
* host's `fetch` is wrapped by an interceptor that defers the real call to a
|
|
80
|
+
* microtask or `setTimeout`, the depth is back to 0 by the time `open` runs
|
|
81
|
+
* and every request duplicates again — the original symptom, with no signal
|
|
82
|
+
* that the mechanism disengaged. Duplicates in `/sdk/network-requests` are
|
|
83
|
+
* the thing to look for; they mean this assumption stopped holding, not that
|
|
84
|
+
* the app double-fetched.
|
|
85
|
+
*/
|
|
46
86
|
install(): void;
|
|
47
87
|
uninstall(): void;
|
|
48
88
|
entries(opts?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../src/server/observability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AA2EtE,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAC,CAA0B;IAChD,OAAO,CAAC,YAAY,CAAC,CAAyB;gBAElC,QAAQ,SAAM;IAI1B,OAAO,IAAI,IAAI;IA4Cf,SAAS,IAAI,IAAI;IAYjB,OAAO,CAAC,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,iBAAiB,EAAE;IAI3E,IAAI,IAAI,MAAM;IAId,KAAK,IAAI,IAAI;IAIb,WAAW,IAAI,OAAO;CAGvB;
|
|
1
|
+
{"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../src/server/observability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AA2EtE,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAC,CAA0B;IAChD,OAAO,CAAC,YAAY,CAAC,CAAyB;gBAElC,QAAQ,SAAM;IAI1B,OAAO,IAAI,IAAI;IA4Cf,SAAS,IAAI,IAAI;IAYjB,OAAO,CAAC,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,iBAAiB,EAAE;IAI3E,IAAI,IAAI,MAAM;IAId,KAAK,IAAI,IAAI;IAIb,WAAW,IAAI,OAAO;CAGvB;AAwDD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAC,CAAU;IAChC,OAAO,CAAC,eAAe,CAAC,CAAuC;IAC/D,OAAO,CAAC,eAAe,CAAC,CAAuC;IAC/D;;;;;;;;;OASG;IACH,OAAO,CAAC,UAAU,CAAgB;gBAEtB,QAAQ,SAAM;IAI1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,OAAO,IAAI,IAAI;IA0Jf,SAAS,IAAI,IAAI;IAqBjB,OAAO,CAAC,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,mBAAmB,EAAE;IAI7E,IAAI,IAAI,MAAM;IAId,KAAK,IAAI,IAAI;IAIb,WAAW,IAAI,OAAO;CAGvB"}
|
package/dist/server/types.d.ts
CHANGED
|
@@ -53,6 +53,13 @@ export interface RouteProvider {
|
|
|
53
53
|
getCurrentRoute: () => string | null;
|
|
54
54
|
/** Return the current route segments (e.g. ["(tabs)", "runs"]), if available. */
|
|
55
55
|
getSegments?: () => string[];
|
|
56
|
+
/**
|
|
57
|
+
* Optionally return the currently-active tab id for the snapshot's
|
|
58
|
+
* `activeTab` field. Only needed when the visible pane is decoupled from the
|
|
59
|
+
* router; Expo Router apps can omit it and let the registry derive the value
|
|
60
|
+
* from `getSegments()`.
|
|
61
|
+
*/
|
|
62
|
+
getActiveTab?: () => string | null | undefined;
|
|
56
63
|
/**
|
|
57
64
|
* Subscribe to route changes. Required so the UI Bridge can clear stale
|
|
58
65
|
* layouts on route changes with zero lag.
|
|
@@ -117,9 +124,58 @@ export interface RouteDefinition {
|
|
|
117
124
|
method: 'GET' | 'POST' | 'PUT' | 'DELETE';
|
|
118
125
|
path: string;
|
|
119
126
|
description: string;
|
|
127
|
+
/**
|
|
128
|
+
* True when the route is mounted only if the server config sets
|
|
129
|
+
* `testHooks`. A production build (the default, `testHooks: false`) does not
|
|
130
|
+
* serve it at all — `routeRequest` and `buildRoutesPayload` both drop it, so
|
|
131
|
+
* the honest answer there is a bare 404 with no `Allow`.
|
|
132
|
+
*
|
|
133
|
+
* This field exists because the table is a static constant with no config to
|
|
134
|
+
* consult, so it published the gated routes unconditionally and the only
|
|
135
|
+
* signal was the free-text `(testHooks)` in `description` — which a consumer
|
|
136
|
+
* code-generating a client from this table cannot read. It would call
|
|
137
|
+
* `POST /ui-bridge/control/keep-awake` against a release build, get a bare
|
|
138
|
+
* 404, and have no way to tell it from a typo. `route-table-parity.test.ts`
|
|
139
|
+
* asserts this flag against the flag-off route set, so a fourth gated route —
|
|
140
|
+
* or one of these three accidentally un-gated — cannot change the production
|
|
141
|
+
* surface with the tests still green.
|
|
142
|
+
*/
|
|
143
|
+
requiresTestHooks?: boolean;
|
|
120
144
|
}
|
|
121
145
|
/**
|
|
122
|
-
*
|
|
146
|
+
* Every HTTP route this package serves.
|
|
147
|
+
*
|
|
148
|
+
* This is the contract an external consumer reads off the package root
|
|
149
|
+
* (`src/index.ts` exports it) to learn what `@qontinui/ui-bridge-native`
|
|
150
|
+
* answers. It is a SECOND declaration of a surface whose single source of
|
|
151
|
+
* truth is `WS_ROUTES` in `./http-server.ts`, which is what `routeRequest`
|
|
152
|
+
* iterates and what `/ui-bridge/_routes` publishes at runtime. Nothing in this
|
|
153
|
+
* package reads the constant below, so nothing made the two agree.
|
|
154
|
+
*
|
|
155
|
+
* They had stopped agreeing. Measured 2026-08-31 against `_routes` with
|
|
156
|
+
* `testHooks: true`: the router served **56** method+path pairs and this table
|
|
157
|
+
* published **36** — every entry here was reachable, but twenty routes the
|
|
158
|
+
* package serves were absent, among them `control/tap`, `control/screenshot`,
|
|
159
|
+
* `ai/find`, the five `control/page/*` interaction endpoints (`click-by-text`,
|
|
160
|
+
* `click-by-selector`, `type-into`, `read-value`, `find-by-text`), the four
|
|
161
|
+
* `design/evaluate*` endpoints and the two discovery endpoints (`_help`,
|
|
162
|
+
* `_routes`) a consumer would use to find the rest. The twenty were added and
|
|
163
|
+
* `route-table-parity.test.ts` now asserts SET EQUALITY with `_routes` in both
|
|
164
|
+
* directions, so neither declaration can move without the other.
|
|
165
|
+
*
|
|
166
|
+
* KEEP IN SYNC with `WS_ROUTES`. That comment used to be the whole mechanism;
|
|
167
|
+
* it is now a pointer to the test that enforces it.
|
|
168
|
+
*
|
|
169
|
+
* The sibling surface (`@qontinui/ui-bridge/native`) exports a constant of the
|
|
170
|
+
* same name over a smaller route set, and there `routeRequest` READS it — the
|
|
171
|
+
* wrong-verb arm derives its 405 from it (qontinui/ui-bridge#189). Do not
|
|
172
|
+
* assume an entry present in one is present in the other; the two packages
|
|
173
|
+
* publish different surfaces and only the status mapping is pinned equal
|
|
174
|
+
* (`packages/ui-bridge/src/native/server/http-status-parity.test.ts`).
|
|
175
|
+
*
|
|
176
|
+
* Multi-verb routes appear once PER VERB, because `RouteDefinition.method` is
|
|
177
|
+
* singular — `control/discover`, `control/page-health` and `control/screenshot`
|
|
178
|
+
* each take GET and POST, and `design/style-guide` takes GET and DELETE.
|
|
123
179
|
*/
|
|
124
180
|
export declare const UI_BRIDGE_NATIVE_ROUTES: Record<string, RouteDefinition>;
|
|
125
181
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjG;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;IAClB,mFAAmF;IACnF,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,uFAAuF;IACvF,OAAO,EAAE,MAAM,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3E;AAED,+FAA+F;AAC/F,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,+EAA+E;IAC/E,eAAe,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACrC,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,MAAM,EAAE,CAAC;IAC7B;;;;;;;;;;OAUG;IACH,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;CACrE;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC9D,kBAAkB;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,+BAA+B;IAC/B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,EAAE,MAAM;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CloudRelayClient.d.ts","sourceRoot":"","sources":["../../src/transport/CloudRelayClient.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"CloudRelayClient.d.ts","sourceRoot":"","sources":["../../src/transport/CloudRelayClient.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAIlE,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,cAAc,EAAE,oBAAoB,CAAC;CACtC;AAoBD;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAA8C;gBAExD,MAAM,EAAE,gBAAgB;IAIpC,yDAAyD;IACzD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAID,mEAAmE;IACnE,KAAK,IAAI,IAAI;IAKb,wCAAwC;IACxC,IAAI,IAAI,IAAI;IAkBZ,OAAO,CAAC,OAAO;YAoED,SAAS;IAsCvB;;;OAGG;YACW,qBAAqB;IAuCnC,OAAO,CAAC,iBAAiB;CAY1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceAnnouncer.d.ts","sourceRoot":"","sources":["../../src/transport/DeviceAnnouncer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"DeviceAnnouncer.d.ts","sourceRoot":"","sources":["../../src/transport/DeviceAnnouncer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,wEAAwE;AACxE,UAAU,eAAe;IACvB,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,IAAI,CAAC;IACR,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAYD;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAA0E;IACxF,OAAO,CAAC,KAAK,CAGX;IACF,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,OAAO,CAAS;IACxB,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAAgC;IAChD,iDAAiD;IACjD,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,eAAe;IAOnC;;;;;;;;;;;;OAYG;IACG,kBAAkB,CAAC,YAAY,CAAC,EAAE,UAAU,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BjF;;;;;OAKG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAqFxC,6CAA6C;IACvC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B3B,oDAAoD;IACpD,QAAQ,IAAI,oBAAoB;IAMhC,OAAO,CAAC,iBAAiB;CAa1B"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared log hygiene for the two WebSocket clients that dial the cloud relay.
|
|
3
|
+
*
|
|
4
|
+
* `CloudRelayClient` and `DeviceAnnouncer` build the SAME URL from the SAME
|
|
5
|
+
* credential — `<relayUrl>?token=<authToken>` — and both hand their diagnostics
|
|
6
|
+
* to `transportLogger`, whose sink (the observability ring buffer behind
|
|
7
|
+
* `GET /control/console-errors`) is readable by anything that can reach the
|
|
8
|
+
* bridge. When these helpers lived as file-private functions inside
|
|
9
|
+
* `CloudRelayClient`, fixing that client's token leak left the announcer's
|
|
10
|
+
* identical `transportLogger.log('… connecting to', url)` untouched: one secret,
|
|
11
|
+
* two sinks, one of them redacted.
|
|
12
|
+
*
|
|
13
|
+
* They live here so a third dialler cannot repeat that, and so the redaction
|
|
14
|
+
* rule has exactly one definition to test.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Replace credential values in a relay URL with a marker.
|
|
18
|
+
*
|
|
19
|
+
* The relay URL is built as `<relayUrl>?token=<authToken>`; every log line that
|
|
20
|
+
* names the target URL goes through here first so the device auth token never
|
|
21
|
+
* lands in a log file, a console-error ring buffer, or a bug report.
|
|
22
|
+
*
|
|
23
|
+
* Redacts every {@link CREDENTIAL_PARAMS} query value plus any `user:pass@`
|
|
24
|
+
* userinfo. It does NOT attempt to find secrets in a path segment or a fragment
|
|
25
|
+
* — a URL that puts one there needs a different fix, not a cleverer regex.
|
|
26
|
+
*/
|
|
27
|
+
export declare function redactRelayUrl(url: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* Render a WebSocket close event as `code=… reason=… wasClean=…`.
|
|
30
|
+
*
|
|
31
|
+
* Read defensively: React Native's WebSocket delivers a plain object rather
|
|
32
|
+
* than a DOM `CloseEvent`, and a missing field must read `unknown` rather than
|
|
33
|
+
* silently print `undefined` as if the relay had told us something.
|
|
34
|
+
*
|
|
35
|
+
* The close CODE is the whole diagnosis — 1006 is "no close frame"
|
|
36
|
+
* (network/TLS died), 1008/4001-class codes are the relay rejecting our token,
|
|
37
|
+
* 1001 is the backend going away. Logging the raw event instead says nothing: a
|
|
38
|
+
* DOM `CloseEvent` has no own enumerable properties, so the observability
|
|
39
|
+
* capture's `JSON.stringify` renders it as `{}`.
|
|
40
|
+
*/
|
|
41
|
+
export declare function describeCloseEvent(event: unknown): string;
|
|
42
|
+
/**
|
|
43
|
+
* Render a WebSocket error event. React Native puts the useful text on
|
|
44
|
+
* `message`; some transports also carry an `Error` on `error`, and a few
|
|
45
|
+
* surface a close `code` on the error event itself.
|
|
46
|
+
*
|
|
47
|
+
* Same `{}`-stringification trap as {@link describeCloseEvent}.
|
|
48
|
+
*/
|
|
49
|
+
export declare function describeErrorEvent(event: unknown): string;
|
|
50
|
+
//# sourceMappingURL=relay-logging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay-logging.d.ts","sourceRoot":"","sources":["../../src/transport/relay-logging.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAmBH;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAMzD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CASzD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qontinui/ui-bridge-native",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.13",
|
|
4
4
|
"description": "UI Bridge Framework for React Native - Hooks and providers for UI observation and control in mobile apps",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"prepublishOnly": "node ../../scripts/check-clean-tree.cjs && npm run build"
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
59
|
-
"@qontinui/ui-bridge": ">=0.4.0",
|
|
59
|
+
"@qontinui/ui-bridge": ">=0.4.0 <1",
|
|
60
60
|
"react": "^18.0.0 || ^19.0.0",
|
|
61
61
|
"react-native": ">=0.70.0"
|
|
62
62
|
},
|