execbro 2.7.1 → 2.8.2
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/build/__tests__/unit/feedbackRepoSlug.test.d.ts +2 -0
- package/build/__tests__/unit/feedbackRepoSlug.test.d.ts.map +1 -0
- package/build/__tests__/unit/feedbackRepoSlug.test.js +34 -0
- package/build/__tests__/unit/feedbackRepoSlug.test.js.map +1 -0
- package/build/__tests__/unit/fingerprint.test.js +52 -1
- package/build/__tests__/unit/fingerprint.test.js.map +1 -1
- package/build/__tests__/unit/getLogsNativeSource.test.js +7 -0
- package/build/__tests__/unit/getLogsNativeSource.test.js.map +1 -1
- package/build/__tests__/unit/hidTypeVerify.test.d.ts +2 -0
- package/build/__tests__/unit/hidTypeVerify.test.d.ts.map +1 -0
- package/build/__tests__/unit/hidTypeVerify.test.js +89 -0
- package/build/__tests__/unit/hidTypeVerify.test.js.map +1 -0
- package/build/__tests__/unit/iosKeyboardLayout.test.d.ts +2 -0
- package/build/__tests__/unit/iosKeyboardLayout.test.d.ts.map +1 -0
- package/build/__tests__/unit/iosKeyboardLayout.test.js +63 -0
- package/build/__tests__/unit/iosKeyboardLayout.test.js.map +1 -0
- package/build/__tests__/unit/jsonProjection.test.d.ts +2 -0
- package/build/__tests__/unit/jsonProjection.test.d.ts.map +1 -0
- package/build/__tests__/unit/jsonProjection.test.js +148 -0
- package/build/__tests__/unit/jsonProjection.test.js.map +1 -0
- package/build/__tests__/unit/logEvents.test.js +10 -1
- package/build/__tests__/unit/logEvents.test.js.map +1 -1
- package/build/__tests__/unit/logOwnership.test.js +58 -0
- package/build/__tests__/unit/logOwnership.test.js.map +1 -1
- package/build/__tests__/unit/logSourceIos.test.js +13 -3
- package/build/__tests__/unit/logSourceIos.test.js.map +1 -1
- package/build/__tests__/unit/nativeLogs.test.js +93 -2
- package/build/__tests__/unit/nativeLogs.test.js.map +1 -1
- package/build/__tests__/unit/netSuppressionFlag.test.d.ts +2 -0
- package/build/__tests__/unit/netSuppressionFlag.test.d.ts.map +1 -0
- package/build/__tests__/unit/netSuppressionFlag.test.js +61 -0
- package/build/__tests__/unit/netSuppressionFlag.test.js.map +1 -0
- package/build/__tests__/unit/requestDetailsProjection.test.d.ts +2 -0
- package/build/__tests__/unit/requestDetailsProjection.test.d.ts.map +1 -0
- package/build/__tests__/unit/requestDetailsProjection.test.js +69 -0
- package/build/__tests__/unit/requestDetailsProjection.test.js.map +1 -0
- package/build/__tests__/unit/screenStaleness.test.d.ts +2 -0
- package/build/__tests__/unit/screenStaleness.test.d.ts.map +1 -0
- package/build/__tests__/unit/screenStaleness.test.js +91 -0
- package/build/__tests__/unit/screenStaleness.test.js.map +1 -0
- package/build/__tests__/unit/sdkMirrorPoller.test.js +26 -0
- package/build/__tests__/unit/sdkMirrorPoller.test.js.map +1 -1
- package/build/__tests__/unit/sdkPackageName.test.d.ts +2 -0
- package/build/__tests__/unit/sdkPackageName.test.d.ts.map +1 -0
- package/build/__tests__/unit/sdkPackageName.test.js +35 -0
- package/build/__tests__/unit/sdkPackageName.test.js.map +1 -0
- package/build/__tests__/unit/textEntryAxes.test.d.ts +2 -0
- package/build/__tests__/unit/textEntryAxes.test.d.ts.map +1 -0
- package/build/__tests__/unit/textEntryAxes.test.js +49 -0
- package/build/__tests__/unit/textEntryAxes.test.js.map +1 -0
- package/build/__tests__/unit/toolDescriptions.test.js +15 -0
- package/build/__tests__/unit/toolDescriptions.test.js.map +1 -1
- package/build/__tests__/unit/typedTextVerify.test.d.ts +2 -0
- package/build/__tests__/unit/typedTextVerify.test.d.ts.map +1 -0
- package/build/__tests__/unit/typedTextVerify.test.js +133 -0
- package/build/__tests__/unit/typedTextVerify.test.js.map +1 -0
- package/build/core/connection.d.ts.map +1 -1
- package/build/core/connection.js +18 -14
- package/build/core/connection.js.map +1 -1
- package/build/core/debugGlobals.js +1 -1
- package/build/core/feedback.d.ts +2 -0
- package/build/core/feedback.d.ts.map +1 -1
- package/build/core/feedback.js +21 -2
- package/build/core/feedback.js.map +1 -1
- package/build/core/fingerprint.d.ts +2 -0
- package/build/core/fingerprint.d.ts.map +1 -1
- package/build/core/fingerprint.js +61 -6
- package/build/core/fingerprint.js.map +1 -1
- package/build/core/guides.d.ts.map +1 -1
- package/build/core/guides.js +6 -0
- package/build/core/guides.js.map +1 -1
- package/build/core/hidTypeVerify.d.ts +28 -0
- package/build/core/hidTypeVerify.d.ts.map +1 -0
- package/build/core/hidTypeVerify.js +76 -0
- package/build/core/hidTypeVerify.js.map +1 -0
- package/build/core/index.d.ts +1 -1
- package/build/core/index.d.ts.map +1 -1
- package/build/core/index.js +1 -1
- package/build/core/index.js.map +1 -1
- package/build/core/inputArtifact.d.ts +16 -0
- package/build/core/inputArtifact.d.ts.map +1 -0
- package/build/core/inputArtifact.js +50 -0
- package/build/core/inputArtifact.js.map +1 -0
- package/build/core/inputTarget.d.ts +3 -0
- package/build/core/inputTarget.d.ts.map +1 -1
- package/build/core/inputTarget.js +9 -0
- package/build/core/inputTarget.js.map +1 -1
- package/build/core/ios.d.ts.map +1 -1
- package/build/core/ios.js +1 -1
- package/build/core/ios.js.map +1 -1
- package/build/core/iosKeyboardLayout.d.ts +11 -0
- package/build/core/iosKeyboardLayout.d.ts.map +1 -0
- package/build/core/iosKeyboardLayout.js +55 -0
- package/build/core/iosKeyboardLayout.js.map +1 -0
- package/build/core/jsonProjection.d.ts +18 -0
- package/build/core/jsonProjection.d.ts.map +1 -0
- package/build/core/jsonProjection.js +249 -0
- package/build/core/jsonProjection.js.map +1 -0
- package/build/core/license.d.ts.map +1 -1
- package/build/core/license.js +2 -1
- package/build/core/license.js.map +1 -1
- package/build/core/logEvents.d.ts +3 -0
- package/build/core/logEvents.d.ts.map +1 -1
- package/build/core/logEvents.js +1 -0
- package/build/core/logEvents.js.map +1 -1
- package/build/core/logOwnership.d.ts +1 -1
- package/build/core/logOwnership.d.ts.map +1 -1
- package/build/core/logOwnership.js +3 -0
- package/build/core/logOwnership.js.map +1 -1
- package/build/core/logSourceIos.d.ts.map +1 -1
- package/build/core/logSourceIos.js +8 -2
- package/build/core/logSourceIos.js.map +1 -1
- package/build/core/nativeLogs.d.ts +6 -0
- package/build/core/nativeLogs.d.ts.map +1 -1
- package/build/core/nativeLogs.js +42 -13
- package/build/core/nativeLogs.js.map +1 -1
- package/build/core/network.d.ts +2 -0
- package/build/core/network.d.ts.map +1 -1
- package/build/core/network.js +24 -11
- package/build/core/network.js.map +1 -1
- package/build/core/register.d.ts.map +1 -1
- package/build/core/register.js +27 -23
- package/build/core/register.js.map +1 -1
- package/build/core/rnGlobalsBootstrap.js +1 -1
- package/build/core/screenStaleness.d.ts +22 -0
- package/build/core/screenStaleness.d.ts.map +1 -0
- package/build/core/screenStaleness.js +87 -0
- package/build/core/screenStaleness.js.map +1 -0
- package/build/core/sdkMirrorPoller.d.ts.map +1 -1
- package/build/core/sdkMirrorPoller.js +2 -1
- package/build/core/sdkMirrorPoller.js.map +1 -1
- package/build/core/telemetry.d.ts +1 -1
- package/build/core/telemetry.d.ts.map +1 -1
- package/build/core/telemetry.js +3 -0
- package/build/core/telemetry.js.map +1 -1
- package/build/core/textEntry.d.ts +9 -0
- package/build/core/textEntry.d.ts.map +1 -1
- package/build/core/textEntry.js +45 -17
- package/build/core/textEntry.js.map +1 -1
- package/build/core/typedTextVerify.d.ts +18 -0
- package/build/core/typedTextVerify.d.ts.map +1 -0
- package/build/core/typedTextVerify.js +88 -0
- package/build/core/typedTextVerify.js.map +1 -0
- package/build/pro/tap.d.ts +1 -0
- package/build/pro/tap.d.ts.map +1 -1
- package/build/pro/tap.js +28 -1
- package/build/pro/tap.js.map +1 -1
- package/build/tools/componentTools.d.ts.map +1 -1
- package/build/tools/componentTools.js +7 -0
- package/build/tools/componentTools.js.map +1 -1
- package/build/tools/executionTools.d.ts.map +1 -1
- package/build/tools/executionTools.js +22 -6
- package/build/tools/executionTools.js.map +1 -1
- package/build/tools/interactionTools.d.ts.map +1 -1
- package/build/tools/interactionTools.js +66 -17
- package/build/tools/interactionTools.js.map +1 -1
- package/build/tools/logTools.d.ts.map +1 -1
- package/build/tools/logTools.js +9 -6
- package/build/tools/logTools.js.map +1 -1
- package/build/tools/networkTools.d.ts.map +1 -1
- package/build/tools/networkTools.js +18 -13
- package/build/tools/networkTools.js.map +1 -1
- package/build/tools/reduxTools.d.ts.map +1 -1
- package/build/tools/reduxTools.js +23 -4
- package/build/tools/reduxTools.js.map +1 -1
- package/build/tools/requestTools.d.ts.map +1 -1
- package/build/tools/requestTools.js +4 -3
- package/build/tools/requestTools.js.map +1 -1
- package/package.json +1 -1
- package/tools.json +6 -1
|
@@ -2,6 +2,8 @@ import { z } from "zod";
|
|
|
2
2
|
import { registerToolWithTelemetry } from "../core/register.js";
|
|
3
3
|
import { reduxDispatch, reduxGetState } from "../core/redux.js";
|
|
4
4
|
import { DEVICE_ARG_DESC } from "./_deviceArg.js";
|
|
5
|
+
import { projectJson, formatProjectionNote } from "../core/jsonProjection.js";
|
|
6
|
+
import { DEFAULT_MAX_BYTES } from "../core/truncate.js";
|
|
5
7
|
export function registerReduxTools(server) {
|
|
6
8
|
registerToolWithTelemetry(server, "redux_dispatch", {
|
|
7
9
|
description: "Dispatch a Redux action to the store bound to the app's <Provider>, triggering useSelector subscribers and React re-renders. Resolves the live store by walking the React fiber tree on each call (no SDK setup needed; works even if no store was registered with init()).\n" +
|
|
@@ -50,8 +52,10 @@ export function registerReduxTools(server) {
|
|
|
50
52
|
"PURPOSE: Inspect the current app state without relying on __RN_AI_DEVTOOLS__.stores.redux (which may point at a different store instance than the Provider).\n" +
|
|
51
53
|
"WHEN TO USE: Verify state shape before/after redux_dispatch, or check what slice keys exist before crafting an action.\n" +
|
|
52
54
|
"WORKFLOW: redux_get_state() -> craft action -> redux_dispatch -> redux_get_state({ path: 'app' }) to confirm.\n" +
|
|
55
|
+
"SHAPE FIRST: a large state comes back as its structure — every key path kept, arrays and objects annotated with real sizes, leaves clipped. Read it, then narrow.\n" +
|
|
56
|
+
"NARROWING, TWO WAYS: path drills IN THE APP, so the rest of the state never crosses the wire — prefer it when you know the slice. query runs here and adds [0], [-1], [*] and quoted keys. They compose: path picks the slice, query picks the field inside it.\n" +
|
|
53
57
|
"LIMITATIONS: Requires React DevTools hook (dev mode). State must be JSON-serializable; non-serializable values are replaced with an error marker.\n" +
|
|
54
|
-
"GOOD: redux_get_state({ path: 'app' })\n" +
|
|
58
|
+
"GOOD: redux_get_state({ path: 'app' }) | redux_get_state({ path: 'cart', query: 'items[*].sku' })\n" +
|
|
55
59
|
"BAD: redux_get_state({ path: 'app.isLoading.0' }) when isLoading is a boolean — path traversal returns undefined.",
|
|
56
60
|
inputSchema: {
|
|
57
61
|
storeIndex: z
|
|
@@ -63,13 +67,22 @@ export function registerReduxTools(server) {
|
|
|
63
67
|
path: z
|
|
64
68
|
.string()
|
|
65
69
|
.optional()
|
|
66
|
-
.describe("Optional dotted path into state (e.g. 'app' or 'auth.user'). Omit for the full state."),
|
|
70
|
+
.describe("Optional dotted path into state (e.g. 'app' or 'auth.user'), resolved in-app so only that slice crosses the wire. Omit for the full state."),
|
|
71
|
+
query: z
|
|
72
|
+
.string()
|
|
73
|
+
.optional()
|
|
74
|
+
.describe("Dot-path into the state that came back, returned in full: \"items[0].sku\", \"orders[*].status\", \"byId[\\\"a.b\\\"]\". Applies after path. A path that matches nothing returns the shape plus what is actually there, not an error."),
|
|
75
|
+
maxResultLength: z.coerce
|
|
76
|
+
.number()
|
|
77
|
+
.optional()
|
|
78
|
+
.default(DEFAULT_MAX_BYTES)
|
|
79
|
+
.describe(`Byte target for the rendered state (default: ${DEFAULT_MAX_BYTES}, 0 for unlimited). Bounded structurally, so size is traded for depth and array width rather than cutting the text off.`),
|
|
67
80
|
device: z
|
|
68
81
|
.string()
|
|
69
82
|
.optional()
|
|
70
83
|
.describe(DEVICE_ARG_DESC)
|
|
71
84
|
}
|
|
72
|
-
}, async ({ storeIndex, path, device }) => {
|
|
85
|
+
}, async ({ storeIndex, path, query, maxResultLength, device }) => {
|
|
73
86
|
const result = await reduxGetState({ storeIndex, path, device });
|
|
74
87
|
if (!result.success) {
|
|
75
88
|
return {
|
|
@@ -78,7 +91,13 @@ export function registerReduxTools(server) {
|
|
|
78
91
|
};
|
|
79
92
|
}
|
|
80
93
|
const header = `Store ${result.storeIndex} of ${result.storeCount}${path ? ` at path '${path}'` : ""}:`;
|
|
81
|
-
|
|
94
|
+
const projected = projectJson(result.state, {
|
|
95
|
+
query,
|
|
96
|
+
maxBytes: maxResultLength > 0 ? maxResultLength : Number.MAX_SAFE_INTEGER
|
|
97
|
+
});
|
|
98
|
+
const note = formatProjectionNote(projected, "Narrow with path (drills in-app) or query, or raise maxResultLength.");
|
|
99
|
+
const body = note ? `${projected.text}\n\n${note}` : projected.text;
|
|
100
|
+
return { content: [{ type: "text", text: `${header}\n\n${body}` }] };
|
|
82
101
|
});
|
|
83
102
|
}
|
|
84
103
|
//# sourceMappingURL=reduxTools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reduxTools.js","sourceRoot":"","sources":["../../src/tools/reduxTools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"reduxTools.js","sourceRoot":"","sources":["../../src/tools/reduxTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestTools.d.ts","sourceRoot":"","sources":["../../src/tools/requestTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiEzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"requestTools.d.ts","sourceRoot":"","sources":["../../src/tools/requestTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiEzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4H5D"}
|
|
@@ -45,7 +45,8 @@ export function registerRequestTools(server) {
|
|
|
45
45
|
"WHY THIS EXISTS: hand-written fetch calls either dig the token out of redux or embed a JWT literal in the expression, which puts the credential in the transcript. auth=\"auto\" resolves it in-app instead.\n" +
|
|
46
46
|
"WHEN TO USE: reproduce a 4xx, check what an endpoint returns for an edge case, clean up test records the UI can't reach.\n" +
|
|
47
47
|
"WORKFLOW: app_request({ method: \"GET\", url: \"https://api.example.com/me\" }) -> inspect status + body.\n" +
|
|
48
|
-
"
|
|
48
|
+
"AUTH RESOLUTION (auth=\"auto\", in order): explicit Authorization header -> redux (state.user.accessToken, state.auth.accessToken, state.auth.token) -> the Authorization header of the app's last captured request. That last step is source-agnostic, so it covers tokens kept outside redux — keychain, secure storage, an Apollo link — as long as the app has already made one authenticated call and the SDK captured it. Cookie auth needs none of this: the native cookie jar attaches cookies to any in-app request.\n" +
|
|
49
|
+
"LIMITATIONS: needs a connected app. Pass an explicit Authorization only when every step above misses — it puts the credential in the transcript.\n" +
|
|
49
50
|
"GOOD: app_request({ method: \"DELETE\", url: \"https://api.example.com/address/17\" })\n" +
|
|
50
51
|
"BAD: embedding a bearer token in an execute_in_app expression — it lands in the transcript.",
|
|
51
52
|
inputSchema: {
|
|
@@ -64,7 +65,7 @@ export function registerRequestTools(server) {
|
|
|
64
65
|
auth: z
|
|
65
66
|
.enum(["auto", "none"])
|
|
66
67
|
.optional()
|
|
67
|
-
.describe("\"auto\" (default) resolves a bearer token
|
|
68
|
+
.describe("\"auto\" (default) resolves a bearer token in-app: redux, then the last captured request's Authorization header. \"none\" sends no Authorization header — the right choice for cookie-authenticated APIs."),
|
|
68
69
|
maxResultLength: z
|
|
69
70
|
.number()
|
|
70
71
|
.optional()
|
|
@@ -83,7 +84,7 @@ export function registerRequestTools(server) {
|
|
|
83
84
|
"PURPOSE: Retry a captured call without driving the UI back to the screen that made it — and vary one field at a time to find what the backend actually rejects.\n" +
|
|
84
85
|
"WHEN TO USE: A request 4xx'd and you want to know whether it was the body, a header, or the endpoint. Or a flaky call you want to run again.\n" +
|
|
85
86
|
"WORKFLOW: get_network_requests -> copy the id -> network_replay({requestId:\"js-x1-7\"}) -> network_replay({requestId:\"js-x1-7\", body:\"{...}\"}).\n" +
|
|
86
|
-
"GOES THROUGH THE APP: same network stack, TLS trust, proxy and credentials as the original — so
|
|
87
|
+
"GOES THROUGH THE APP: same network stack, TLS trust, proxy and credentials as the original — cookies are attached by the native cookie jar, so a cookie-authenticated call replays as the logged-in user with no token handling. An active network_mock rule will intercept the replay too; the response says so when it does.\n" +
|
|
87
88
|
"LIMITATIONS: ids come from get_network_requests and expire when the buffer rolls over or clear_network runs. Headers replace wholesale, they do not merge.\n" +
|
|
88
89
|
"GOOD: network_replay({requestId:\"js-x1-7\", body:\"{\\\"qty\\\":99}\"})\n" +
|
|
89
90
|
"BAD: guessing a requestId — read one from get_network_requests first.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestTools.js","sourceRoot":"","sources":["../../src/tools/requestTools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAOxD,KAAK,UAAU,aAAa,CACxB,UAAkB,EAClB,eAAmC,EACnC,MAA0B,EAC1B,QAAgB,EAChB,aAAuB,EAAE;IAEzB,MAAM,MAAM,GAAG,MAAM,YAAY,CAC7B,UAAU,EACV,IAAI,EACJ,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EACnD,MAAM,CACT,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,EAAE,CAAC;YACvF,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IAMD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACxC,IAAI,QAA4B,CAAC;IACjC,IAAI,OAAO,GAAG,GAAG,CAAC;IAClB,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;QAC1D,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACtC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC;YACvB,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,EAAE,eAAe,IAAI,iBAAiB,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,MAAM,CAAC,aAAa,OAAO,OAAO,CAAC,MAAM,CAAC,aAAa,SAAS,CAAC,CAAC;IACtG,CAAC;IACD,IAAI,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IAC1B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IAClD,yBAAyB,CACrB,MAAM,EACN,aAAa,EACb;QACI,WAAW,EACP,6EAA6E;YAC7E,qJAAqJ;YACrJ,gNAAgN;YAChN,4HAA4H;YAC5H,6GAA6G;YAC7G,
|
|
1
|
+
{"version":3,"file":"requestTools.js","sourceRoot":"","sources":["../../src/tools/requestTools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/tools.json
CHANGED
|
@@ -219,6 +219,7 @@
|
|
|
219
219
|
"get_request_details": [
|
|
220
220
|
"device",
|
|
221
221
|
"maxBodyLength",
|
|
222
|
+
"query",
|
|
222
223
|
"requestId",
|
|
223
224
|
"verbose"
|
|
224
225
|
],
|
|
@@ -269,7 +270,9 @@
|
|
|
269
270
|
],
|
|
270
271
|
"inspect_global": [
|
|
271
272
|
"device",
|
|
272
|
-
"
|
|
273
|
+
"maxResultLength",
|
|
274
|
+
"objectName",
|
|
275
|
+
"query"
|
|
273
276
|
],
|
|
274
277
|
"ios_boot_simulator": [
|
|
275
278
|
"udid"
|
|
@@ -387,7 +390,9 @@
|
|
|
387
390
|
],
|
|
388
391
|
"redux_get_state": [
|
|
389
392
|
"device",
|
|
393
|
+
"maxResultLength",
|
|
390
394
|
"path",
|
|
395
|
+
"query",
|
|
391
396
|
"storeIndex"
|
|
392
397
|
],
|
|
393
398
|
"reload_app": [
|