@jshookmcp/jshook 0.2.9 → 0.3.0
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 +2 -2
- package/README.zh.md +2 -2
- package/dist/{AntiCheatDetector-BNk-EoBt.mjs → AntiCheatDetector-CqGDXmfc.mjs} +159 -53
- package/dist/{CodeInjector-Cq8q01kp.mjs → CodeInjector-BdjRfNx7.mjs} +5 -5
- package/dist/{ConsoleMonitor-CPVQW1Y-.mjs → ConsoleMonitor-DykL3IAw.mjs} +85 -17
- package/dist/{DetailedDataManager-BQQcxh64.mjs → DetailedDataManager-HT49OrvF.mjs} +1 -1
- package/dist/{ExtensionManager-CWYgw0YW.mjs → ExtensionManager-BDMsY2Dz.mjs} +15 -8
- package/dist/{HardwareBreakpoint-B9gZCdFP.mjs → HardwareBreakpoint-Cc2AFq1Y.mjs} +3 -3
- package/dist/{HeapAnalyzer-BLDH0dCv.mjs → HeapAnalyzer-DruMgsgj.mjs} +20 -20
- package/dist/{HookGeneratorBuilders.core.generators.storage-CtcdK78Q.mjs → HookGeneratorBuilders.core.generators.storage-CTbB4Lcx.mjs} +1 -74
- package/dist/{InstrumentationSession-CvPC7Jwy.mjs → InstrumentationSession-DLH0vd-z.mjs} +2 -2
- package/dist/{MemoryController-CbVdCIJF.mjs → MemoryController-CMtviNW_.mjs} +3 -3
- package/dist/{MemoryScanSession-BsDZbLYm.mjs → MemoryScanSession-ITgb_NMi.mjs} +2 -2
- package/dist/{MemoryScanner-Bcpml6II.mjs → MemoryScanner-CiL7Z3ey.mjs} +12 -9
- package/dist/{NativeMemoryManager.impl-dZtA1ZGn.mjs → NativeMemoryManager.impl-D9Lkovvn.mjs} +13 -10
- package/dist/{NativeMemoryManager.utils-B-FjA2mJ.mjs → NativeMemoryManager.utils-BBlAixF5.mjs} +1 -1
- package/dist/{PEAnalyzer-D1lzJ_VG.mjs → PEAnalyzer-DMQ44gen.mjs} +15 -15
- package/dist/{PageController-Bqm2kZ_X.mjs → PageController-BPJNqqBN.mjs} +18 -4
- package/dist/{PointerChainEngine-BOhyVsjx.mjs → PointerChainEngine-K7wN8Z-w.mjs} +10 -7
- package/dist/ProcessRegistry-zGg12QbE.mjs +74 -0
- package/dist/{ResponseBuilder-D3iFYx2N.mjs → ResponseBuilder-CJXWmWNw.mjs} +10 -10
- package/dist/{ScriptManager-aHHq0X7U.mjs → ScriptManager-ZuWD-0Jg.mjs} +195 -192
- package/dist/{Speedhack-CqdIFlQl.mjs → Speedhack-D-z0umeT.mjs} +2 -2
- package/dist/{StructureAnalyzer-DhFaPvRO.mjs → StructureAnalyzer-Cav5AVSL.mjs} +9 -6
- package/dist/{ToolCatalog-C0JGZoOm.mjs → ToolCatalog-5OJdMiF0.mjs} +81 -81
- package/dist/{ToolProbe-oC7aPrkv.mjs → ToolProbe-DbCFGyrg.mjs} +1 -1
- package/dist/{ToolRegistry-BjaF4oNz.mjs → ToolRegistry-B9krbTtI.mjs} +51 -2
- package/dist/{ToolRouter.policy-BWV67ZK-.mjs → ToolRouter.policy-BGDAGyeH.mjs} +60 -20
- package/dist/TraceRecorder-B41Z5XBj.mjs +1286 -0
- package/dist/{Win32API-CePkipZY.mjs → Win32API-C2kjj0ze.mjs} +18 -12
- package/dist/{Win32Debug-BvKs-gxc.mjs → Win32Debug-CKrGOTpo.mjs} +2 -2
- package/dist/{WorkflowEngine-CuvkZtWu.mjs → WorkflowEngine-DJ6M4opp.mjs} +226 -255
- package/dist/analysis-BHeJW2Nb.mjs +1234 -0
- package/dist/{antidebug-CqDTB_uk.mjs → antidebug-BRKeyt27.mjs} +3 -3
- package/dist/{artifactRetention-CFEprwPw.mjs → artifactRetention-CPXkUJXp.mjs} +13 -6
- package/dist/{artifacts-Bk2-_uPq.mjs → artifacts-DkfosXH3.mjs} +1 -1
- package/dist/authorization-schema-DRqyJMSk.mjs +31 -0
- package/dist/{binary-instrument-CXfpx6fT.mjs → binary-instrument--V3MAhJ4.mjs} +19 -27
- package/dist/bind-helpers-ClV34xdn.mjs +42 -0
- package/dist/{boringssl-inspector-BH2D3VKc.mjs → boringssl-inspector-Bo_LOLaS.mjs} +1 -1
- package/dist/{browser-BpOr5PEx.mjs → browser-Dx3_S2cG.mjs} +324 -37
- package/dist/capabilities-CcHlvWgK.mjs +33 -0
- package/dist/{constants-B0OANIBL.mjs → constants-CDZLOoVv.mjs} +18 -3
- package/dist/{coordination-qUbyF8KU.mjs → coordination-DgItD9DL.mjs} +2 -2
- package/dist/{debugger-gnKxRSN0.mjs → debugger-RS3RSAqs.mjs} +30 -13
- package/dist/definitions-BEoYofW5.mjs +47 -0
- package/dist/{definitions-bAhHQJq9.mjs → definitions-BRaefg3u.mjs} +11 -5
- package/dist/{definitions-DVGfrn7y.mjs → definitions-BbkvZkiv.mjs} +2 -2
- package/dist/definitions-BtWSHJ3o.mjs +17 -0
- package/dist/{definitions-BMfYXoNC.mjs → definitions-C1gCHO0i.mjs} +1 -1
- package/dist/{definitions-C1UvM5Iy.mjs → definitions-CDOg_b-l.mjs} +14 -2
- package/dist/definitions-CVPD9hzZ.mjs +54 -0
- package/dist/{definitions-Cke7zEb8.mjs → definitions-Cea8Lgl7.mjs} +1 -1
- package/dist/definitions-DAgIyjxM.mjs +10 -0
- package/dist/{definitions-B4rAvHNZ.mjs → definitions-DJA27nsL.mjs} +12 -9
- package/dist/{definitions-ClJLzsJQ.mjs → definitions-DKPFU3LW.mjs} +1 -1
- package/dist/{definitions-D3VsGcvz.mjs → definitions-DPRpZQ96.mjs} +7 -7
- package/dist/{definitions-B18eyf0B.mjs → definitions-DUE5gmdn.mjs} +1 -1
- package/dist/definitions-DYVjOtxa.mjs +26 -0
- package/dist/{definitions-BB_4jnmy.mjs → definitions-DcYLVLCo.mjs} +1 -1
- package/dist/{definitions-Beid2EB3.mjs → definitions-Pp5LI2H4.mjs} +1 -1
- package/dist/definitions-j9KdHVNR.mjs +14 -0
- package/dist/definitions-uzkjBwa7.mjs +258 -0
- package/dist/{definitions-Cq-zroAU.mjs → definitions-va-AnLuQ.mjs} +4 -4
- package/dist/{encoding-Bvz5jLRv.mjs → encoding-DJeqHmpd.mjs} +18 -4
- package/dist/{evidence-graph-bridge-C_fv9PuC.mjs → evidence-graph-bridge-DcYizFk2.mjs} +1 -0
- package/dist/{factory-DxlGh9Xf.mjs → factory-C90tBff6.mjs} +6 -6
- package/dist/flat-target-session-Dgax2Cy3.mjs +29 -0
- package/dist/{graphql-DYWzJ29s.mjs → graphql-CoHrhweh.mjs} +205 -34
- package/dist/{handlers-C67ktuRN.mjs → handlers-4jmR0nMs.mjs} +220 -32
- package/dist/{handlers-DlCJN4Td.mjs → handlers-BAHPxcch.mjs} +122 -90
- package/dist/{handlers-9sAbfIg-.mjs → handlers-BOs9b907.mjs} +849 -801
- package/dist/{handlers-DxGIq15_2.mjs → handlers-BWXEy6ef.mjs} +16 -16
- package/dist/{handlers-tB9Mp9ZK.mjs → handlers-Bndn6QvE.mjs} +31 -4
- package/dist/{handlers-CTsDAO6p.mjs → handlers-BqC4bD4s.mjs} +1 -1
- package/dist/{handlers-C87g8oCe.mjs → handlers-BtYq60bM2.mjs} +1 -1
- package/dist/{handlers-DeLOCd5m.mjs → handlers-BzgcB4iv.mjs} +17 -17
- package/dist/{handlers-Cgyg6c0U.mjs → handlers-CRyRWj2b.mjs} +237 -23
- package/dist/{handlers-U6L4xhuF.mjs → handlers-CVv2H1uq.mjs} +24 -17
- package/dist/{handlers-tiy7EIBp.mjs → handlers-Dl5a7JS4.mjs} +3 -3
- package/dist/{handlers-D6j6yka7.mjs → handlers-Dx2d7jt7.mjs} +1893 -1480
- package/dist/{handlers-Bl8zkwz1.mjs → handlers-Dz9PYsCa.mjs} +95 -6
- package/dist/handlers-HujRKC3b.mjs +661 -0
- package/dist/{handlers.impl-DS0d9fUw.mjs → handlers.impl-XWXkQfyi.mjs} +70 -24
- package/dist/{hooks-CzCWByww.mjs → hooks-B1B8NRHL.mjs} +3 -3
- package/dist/index.mjs +154 -144
- package/dist/{maintenance-P7ePRXQC.mjs → maintenance-PRMkLVRW.mjs} +35 -30
- package/dist/manifest-67Bok-Si.mjs +58 -0
- package/dist/{manifest-B3QVVeBS.mjs → manifest-6lNTMZAB2.mjs} +33 -28
- package/dist/manifest-B2duEHiH.mjs +90 -0
- package/dist/manifest-B6EY9Vm8.mjs +57 -0
- package/dist/{manifest-gZ4s_UtG.mjs → manifest-B6nKSbyY.mjs} +32 -33
- package/dist/{manifest-2ToTpjv8.mjs → manifest-BL8AQNPF.mjs} +31 -31
- package/dist/{manifest-DzwvxPJX.mjs → manifest-BSZvJJmV.mjs} +23 -14
- package/dist/{manifest-Sc_0JQ13.mjs → manifest-BU7qzUyX.mjs} +23 -23
- package/dist/{manifest-CT7zZBV1.mjs → manifest-Bl62e8WK.mjs} +24 -23
- package/dist/manifest-Bo5cXjdt.mjs +82 -0
- package/dist/manifest-BpS4gtUK.mjs +1347 -0
- package/dist/manifest-Bv65_e2W.mjs +101 -0
- package/dist/manifest-BytNIF4Z.mjs +117 -0
- package/dist/{manifest-BqrQ4Tpj.mjs → manifest-C-xtsjS3.mjs} +23 -23
- package/dist/{manifest-NXctwWQq.mjs → manifest-CDYl7OhA.mjs} +36 -38
- package/dist/manifest-CRZ3xmkD.mjs +61 -0
- package/dist/manifest-CoW6u4Tp.mjs +132 -0
- package/dist/manifest-Cq5zN_8A.mjs +50 -0
- package/dist/{manifest-CAhOuvSl.mjs → manifest-D7YZM_2e.mjs} +75 -85
- package/dist/{manifest-DCyjf4n2.mjs → manifest-DE_VrAeQ.mjs} +27 -7
- package/dist/manifest-DGsXSCpT.mjs +39 -0
- package/dist/{manifest-BB2J8IMJ.mjs → manifest-DJ2vfEuW.mjs} +48 -41
- package/dist/{manifest-3g71z6Bg.mjs → manifest-DPXDYhEu.mjs} +26 -25
- package/dist/manifest-Dd4fQb0a.mjs +322 -0
- package/dist/{manifest-CXsRWjjI.mjs → manifest-Deq6opGg.mjs} +95 -96
- package/dist/{manifest-C9RT5nk32.mjs → manifest-DfJTafJK.mjs} +14 -11
- package/dist/manifest-DgOdgN_j.mjs +50 -0
- package/dist/{manifest-BmtZzQiQ2.mjs → manifest-DlbMW4v4.mjs} +17 -15
- package/dist/{manifest-DrbmZcFl2.mjs → manifest-DmVfbH0w.mjs} +212 -91
- package/dist/manifest-Dog6Ddjr.mjs +109 -0
- package/dist/manifest-DvgU5FWb.mjs +58 -0
- package/dist/manifest-HsfDBs7j.mjs +50 -0
- package/dist/manifest-I8oQHvCG.mjs +186 -0
- package/dist/manifest-NvH_a-av.mjs +786 -0
- package/dist/{manifest-Dh8WBmEW.mjs → manifest-cEJU1v0Z.mjs} +24 -24
- package/dist/manifest-wOl5XLB12.mjs +112 -0
- package/dist/{modules-C184v-S9.mjs → modules-tZozf0LQ.mjs} +130 -860
- package/dist/{mojo-ipc-B_H61Afw.mjs → mojo-ipc-DXNEXEqb.mjs} +141 -26
- package/dist/{network-671Cw6hV.mjs → network-CPVvwvFg.mjs} +1329 -823
- package/dist/{outputPaths-B1uGmrWZ.mjs → outputPaths-um7lCRY3.mjs} +4 -8
- package/dist/{platform-WmNn8Sxb.mjs → platform-CYeFoTWp.mjs} +101 -10
- package/dist/{process-QcbIy5Zq.mjs → process-BTbgcVc6.mjs} +251 -346
- package/dist/{proxy-DqNs0bAd.mjs → proxy-r8YN6nP1.mjs} +30 -8
- package/dist/{registry-D-6e18lB.mjs → registry-Bl8ZQW61.mjs} +3 -3
- package/dist/{response-BQVP-xUn.mjs → response-CWhh2aLo.mjs} +7 -1
- package/dist/{shared-state-board-DV-dpHFJ.mjs → shared-state-board-BoZnSoj-.mjs} +2 -2
- package/dist/{sourcemap-Dq8ez8vS.mjs → sourcemap-BIDHUVXy.mjs} +350 -66
- package/dist/{streaming-BUQ0VJsg.mjs → streaming-Dal6utPp.mjs} +13 -13
- package/dist/{tool-builder-DCbIC5Eo.mjs → tool-builder-BHJp32mV.mjs} +1 -1
- package/dist/{transform-CiYJfNX0.mjs → transform-DRVgGG90.mjs} +18 -14
- package/dist/wasm-BYx5UOeG.mjs +1044 -0
- package/dist/webcrack-Be0_FccV.mjs +747 -0
- package/dist/{workflow-f3xJOcjx.mjs → workflow-BpuKEtvn.mjs} +8 -8
- package/package.json +76 -43
- package/dist/TraceRecorder-DgxyVbdQ.mjs +0 -519
- package/dist/analysis-CL9uACt9.mjs +0 -463
- package/dist/bind-helpers-xFfRF-qm.mjs +0 -22
- package/dist/definitions-6M-eejaT.mjs +0 -53
- package/dist/definitions-B3QdlrHv.mjs +0 -34
- package/dist/definitions-CXEI7QC72.mjs +0 -216
- package/dist/definitions-C_4r7Fo-2.mjs +0 -14
- package/dist/definitions-CkFDALoa.mjs +0 -26
- package/dist/definitions-Cy3Sl6gV.mjs +0 -34
- package/dist/definitions-LKpC3-nL.mjs +0 -9
- package/dist/handlers-DdFzXLvF.mjs +0 -446
- package/dist/manifest-82baTv4U.mjs +0 -45
- package/dist/manifest-BKbgbSiY.mjs +0 -60
- package/dist/manifest-Bcf-TJzH.mjs +0 -848
- package/dist/manifest-Bnd7kqEY.mjs +0 -55
- package/dist/manifest-BqQX6OQC2.mjs +0 -65
- package/dist/manifest-Br4RPFt5.mjs +0 -370
- package/dist/manifest-C5qDjysN.mjs +0 -107
- package/dist/manifest-CBYWCUBJ.mjs +0 -51
- package/dist/manifest-CFADCRa1.mjs +0 -37
- package/dist/manifest-CQVhavRF.mjs +0 -114
- package/dist/manifest-CV12bcrF.mjs +0 -121
- package/dist/manifest-CZLUCfG02.mjs +0 -95
- package/dist/manifest-D6phHKFd.mjs +0 -131
- package/dist/manifest-DHsnKgP6.mjs +0 -60
- package/dist/manifest-Df_dliIe.mjs +0 -55
- package/dist/manifest-DhKRAT8_.mjs +0 -92
- package/dist/manifest-DlpTj4ic2.mjs +0 -193
- package/dist/manifest-DuwHjUa5.mjs +0 -70
- package/dist/manifest-qSleDqdO.mjs +0 -1023
- package/dist/wasm-DQTnHDs4.mjs +0 -531
- /package/dist/{CacheAdapters-CDe5WPSV.mjs → CacheAdapters-jJFy20G-.mjs} +0 -0
- /package/dist/{DarwinAPI-BNPxu0RH.mjs → DarwinAPI-ETyy0xyo.mjs} +0 -0
- /package/dist/{EventBus-DgPmwpeu.mjs → EventBus-DFKvADm3.mjs} +0 -0
- /package/dist/{EvidenceGraphBridge-SFesNera.mjs → EvidenceGraphBridge-318Oi0Lf.mjs} +0 -0
- /package/dist/{FingerprintManager-gzWtkKuf.mjs → FingerprintManager-BN4UQWnX.mjs} +0 -0
- /package/dist/{PrerequisiteError-Dl33Svkz.mjs → PrerequisiteError-TuyZIs6n.mjs} +0 -0
- /package/dist/{ReverseEvidenceGraph-Dlsk94LC.mjs → ReverseEvidenceGraph-C02-gXOh.mjs} +0 -0
- /package/dist/{StealthVerifier-Bo4T3bz8.mjs → StealthVerifier-BWmPgQsv.mjs} +0 -0
- /package/dist/{VersionDetector-CwVLVdDM.mjs → VersionDetector-K3V4vGsw.mjs} +0 -0
- /package/dist/{betterSqlite3-0pqusHHH.mjs → betterSqlite3-DLSBZodi.mjs} +0 -0
- /package/dist/{concurrency-Bt0yv1kJ.mjs → concurrency-Drev_Vz9.mjs} +0 -0
- /package/dist/{formatAddress-DVkj9kpI.mjs → formatAddress-nnMvEohD.mjs} +0 -0
- /package/dist/{parse-args-BlRjqlkL.mjs → parse-args-B4cY5Vx5.mjs} +0 -0
- /package/dist/{ssrf-policy-ZaUfvhq7.mjs → ssrf-policy-Dsqd-DTX.mjs} +0 -0
- /package/dist/{types-CPhOReNX.mjs → types-DDBWs9UP.mjs} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as asJsonResponse } from "./response-
|
|
2
|
-
import { r as argNumber } from "./parse-args-
|
|
1
|
+
import { n as asJsonResponse } from "./response-CWhh2aLo.mjs";
|
|
2
|
+
import { r as argNumber } from "./parse-args-B4cY5Vx5.mjs";
|
|
3
3
|
//#region src/server/domains/canvas/adapters/cocos-adapter.ts
|
|
4
4
|
/**
|
|
5
5
|
* Generates a self-contained JS string that traverses the Cocos Creator scene graph
|
|
@@ -1193,7 +1193,7 @@ var LayaCanvasAdapter = class {
|
|
|
1193
1193
|
instrumentedPrototypes: patchResult?.instrumented ?? []
|
|
1194
1194
|
});
|
|
1195
1195
|
try {
|
|
1196
|
-
traceRecorder.stop();
|
|
1196
|
+
await traceRecorder.stop();
|
|
1197
1197
|
} catch {}
|
|
1198
1198
|
return {
|
|
1199
1199
|
inputFlow: domEventChain,
|
|
@@ -2571,8 +2571,16 @@ async function handleTraceClick(pageController, debuggerManager, evidenceStore,
|
|
|
2571
2571
|
await debuggerManager.ensureAdvancedFeatures();
|
|
2572
2572
|
const eventMgr = debuggerManager.getEventManager();
|
|
2573
2573
|
const breakpointId = await eventMgr.setEventListenerBreakpoint(breakpointType);
|
|
2574
|
+
let cleanupToken;
|
|
2575
|
+
let pendingDispatch;
|
|
2576
|
+
let primaryError;
|
|
2577
|
+
let cleanupError;
|
|
2578
|
+
let traceResult;
|
|
2574
2579
|
try {
|
|
2575
|
-
const
|
|
2580
|
+
const dispatch = await dispatchCanvasClick(pageController, x, y, canvasId, breakpointType);
|
|
2581
|
+
const dispatchResult = dispatch.result;
|
|
2582
|
+
pendingDispatch = dispatch.completion;
|
|
2583
|
+
cleanupToken = dispatchResult.cleanupToken;
|
|
2576
2584
|
const pausedState = await debuggerManager.waitForPaused(5e3);
|
|
2577
2585
|
let stackFrames = [];
|
|
2578
2586
|
if (pausedState?.callFrames) stackFrames = pausedState.callFrames.slice(0, maxFrames).map((frame) => ({
|
|
@@ -2587,7 +2595,7 @@ async function handleTraceClick(pageController, debuggerManager, evidenceStore,
|
|
|
2587
2595
|
y,
|
|
2588
2596
|
handlerCount: stackFrames.length
|
|
2589
2597
|
});
|
|
2590
|
-
|
|
2598
|
+
traceResult = {
|
|
2591
2599
|
inputFlow: dispatchResult.domEventChain ?? [],
|
|
2592
2600
|
hitTarget: null,
|
|
2593
2601
|
domEventChain: stackFrames.map((f) => ({
|
|
@@ -2604,16 +2612,80 @@ async function handleTraceClick(pageController, debuggerManager, evidenceStore,
|
|
|
2604
2612
|
})),
|
|
2605
2613
|
networkEmitted: []
|
|
2606
2614
|
};
|
|
2615
|
+
} catch (error) {
|
|
2616
|
+
primaryError = error;
|
|
2607
2617
|
} finally {
|
|
2608
2618
|
try {
|
|
2609
2619
|
await debuggerManager.resume();
|
|
2610
2620
|
} catch {}
|
|
2621
|
+
if (pendingDispatch) try {
|
|
2622
|
+
await pendingDispatch;
|
|
2623
|
+
} catch (error) {
|
|
2624
|
+
if (!primaryError) cleanupError = error;
|
|
2625
|
+
}
|
|
2626
|
+
await cleanupCanvasTraceTarget(pageController, cleanupToken);
|
|
2611
2627
|
if (typeof eventMgr.removeEventListenerBreakpoint === "function") try {
|
|
2612
2628
|
await eventMgr.removeEventListenerBreakpoint(breakpointId);
|
|
2613
2629
|
} catch {}
|
|
2614
2630
|
}
|
|
2631
|
+
if (primaryError) throw primaryError;
|
|
2632
|
+
if (cleanupError) throw cleanupError;
|
|
2633
|
+
if (!traceResult) throw new Error("Canvas trace did not produce a result.");
|
|
2634
|
+
return traceResult;
|
|
2615
2635
|
}
|
|
2616
2636
|
async function dispatchCanvasClick(pageController, x, y, canvasId, breakpointType = "click") {
|
|
2637
|
+
if (breakpointType === "click" && typeof pageController.click === "function") return dispatchRealCanvasClick(pageController, x, y, canvasId, breakpointType);
|
|
2638
|
+
return dispatchSyntheticCanvasClick(pageController, x, y, canvasId, breakpointType);
|
|
2639
|
+
}
|
|
2640
|
+
async function dispatchRealCanvasClick(pageController, x, y, canvasId, breakpointType = "click") {
|
|
2641
|
+
const dispatchSequence = getDispatchSequence(breakpointType);
|
|
2642
|
+
const cleanupToken = `jshook-trace-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
|
|
2643
|
+
const prepared = await pageController.evaluate(`
|
|
2644
|
+
(function() {
|
|
2645
|
+
var canvases = ${canvasId ? `[document.getElementById(${JSON.stringify(canvasId)})]` : "Array.from(document.querySelectorAll(\"canvas\"))"};
|
|
2646
|
+
var target = null;
|
|
2647
|
+
if (${!!canvasId}) {
|
|
2648
|
+
target = document.getElementById(${JSON.stringify(canvasId)});
|
|
2649
|
+
} else {
|
|
2650
|
+
for (var i = canvases.length - 1; i >= 0; i--) {
|
|
2651
|
+
var r = canvases[i].getBoundingClientRect();
|
|
2652
|
+
if (${x} >= r.left && ${x} <= r.right && ${y} >= r.top && ${y} <= r.bottom) {
|
|
2653
|
+
target = canvases[i];
|
|
2654
|
+
break;
|
|
2655
|
+
}
|
|
2656
|
+
}
|
|
2657
|
+
}
|
|
2658
|
+
if (!target) return { domEventChain: [], pickedNode: null, engine: undefined, engineChain: [] };
|
|
2659
|
+
|
|
2660
|
+
target.setAttribute('data-jshook-trace-token', ${JSON.stringify(cleanupToken)});
|
|
2661
|
+
var rect = target.getBoundingClientRect();
|
|
2662
|
+
var offsetX = Math.max(0, Math.min(${x} - rect.left, Math.max(rect.width - 1, 0)));
|
|
2663
|
+
var offsetY = Math.max(0, Math.min(${y} - rect.top, Math.max(rect.height - 1, 0)));
|
|
2664
|
+
return {
|
|
2665
|
+
domEventChain: ${JSON.stringify(dispatchSequence)},
|
|
2666
|
+
pickedNode: target.id ? { id: String(target.id) } : null,
|
|
2667
|
+
engine: window.Laya ? 'LayaAir' : (window.PIXI ? 'PixiJS' : undefined),
|
|
2668
|
+
engineChain: [],
|
|
2669
|
+
cleanupToken: ${JSON.stringify(cleanupToken)},
|
|
2670
|
+
selector: 'canvas[data-jshook-trace-token="${cleanupToken}"]',
|
|
2671
|
+
offset: { x: offsetX, y: offsetY }
|
|
2672
|
+
};
|
|
2673
|
+
})()
|
|
2674
|
+
`);
|
|
2675
|
+
if (!prepared.selector || !prepared.offset) return {
|
|
2676
|
+
result: prepared,
|
|
2677
|
+
completion: Promise.resolve()
|
|
2678
|
+
};
|
|
2679
|
+
return {
|
|
2680
|
+
result: prepared,
|
|
2681
|
+
completion: pageController.click?.(prepared.selector, {
|
|
2682
|
+
button: "left",
|
|
2683
|
+
clickCount: 1,
|
|
2684
|
+
offset: prepared.offset
|
|
2685
|
+
}) ?? Promise.resolve()
|
|
2686
|
+
};
|
|
2687
|
+
}
|
|
2688
|
+
async function dispatchSyntheticCanvasClick(pageController, x, y, canvasId, breakpointType = "click") {
|
|
2617
2689
|
const dispatchSequence = getDispatchSequence(breakpointType);
|
|
2618
2690
|
const script = `
|
|
2619
2691
|
(function() {
|
|
@@ -2662,7 +2734,24 @@ async function dispatchCanvasClick(pageController, x, y, canvasId, breakpointTyp
|
|
|
2662
2734
|
};
|
|
2663
2735
|
})()
|
|
2664
2736
|
`;
|
|
2665
|
-
return
|
|
2737
|
+
return {
|
|
2738
|
+
result: await pageController.evaluate(script),
|
|
2739
|
+
completion: Promise.resolve()
|
|
2740
|
+
};
|
|
2741
|
+
}
|
|
2742
|
+
async function cleanupCanvasTraceTarget(pageController, cleanupToken) {
|
|
2743
|
+
if (!cleanupToken) return;
|
|
2744
|
+
try {
|
|
2745
|
+
await pageController.evaluate(`
|
|
2746
|
+
(function() {
|
|
2747
|
+
var target = document.querySelector('canvas[data-jshook-trace-token="${cleanupToken}"]');
|
|
2748
|
+
if (target) {
|
|
2749
|
+
target.removeAttribute('data-jshook-trace-token');
|
|
2750
|
+
}
|
|
2751
|
+
return true;
|
|
2752
|
+
})()
|
|
2753
|
+
`);
|
|
2754
|
+
} catch {}
|
|
2666
2755
|
}
|
|
2667
2756
|
function getDispatchSequence(breakpointType) {
|
|
2668
2757
|
if (breakpointType === "mousedown") return ["pointerdown", "mousedown"];
|