swipium 1.4.0 → 2.0.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.
Files changed (541) hide show
  1. package/CHANGELOG.md +313 -0
  2. package/README.md +175 -219
  3. package/THREAT_MODEL.md +223 -47
  4. package/dist/appMap/automationLink.js +39 -26
  5. package/dist/appMap/automationLink.js.map +1 -1
  6. package/dist/appMap/build.js +68 -20
  7. package/dist/appMap/build.js.map +1 -1
  8. package/dist/appMap/codeIndex.js +31 -5
  9. package/dist/appMap/codeIndex.js.map +1 -1
  10. package/dist/appMap/featureIndex.js +23 -5
  11. package/dist/appMap/featureIndex.js.map +1 -1
  12. package/dist/appMap/featureModel.js +44 -8
  13. package/dist/appMap/featureModel.js.map +1 -1
  14. package/dist/appMap/firstRunApply.js +24 -6
  15. package/dist/appMap/firstRunApply.js.map +1 -1
  16. package/dist/appMap/fsWalk.js +19 -2
  17. package/dist/appMap/fsWalk.js.map +1 -1
  18. package/dist/appMap/issues.js +10 -30
  19. package/dist/appMap/issues.js.map +1 -1
  20. package/dist/appMap/migrations.js +6 -6
  21. package/dist/appMap/migrations.js.map +1 -1
  22. package/dist/appMap/prelaunch.js +2 -2
  23. package/dist/appMap/prelaunch.js.map +1 -1
  24. package/dist/appMap/projectRegistry.js +83 -11
  25. package/dist/appMap/projectRegistry.js.map +1 -1
  26. package/dist/appMap/provenance.js +2 -2
  27. package/dist/appMap/provenance.js.map +1 -1
  28. package/dist/appMap/query.js +21 -5
  29. package/dist/appMap/query.js.map +1 -1
  30. package/dist/appMap/runtimeMerge.js +12 -5
  31. package/dist/appMap/runtimeMerge.js.map +1 -1
  32. package/dist/appMap/schema.js +1 -1
  33. package/dist/appMap/schema.js.map +1 -1
  34. package/dist/appMap/screenMatch.js +6 -2
  35. package/dist/appMap/screenMatch.js.map +1 -1
  36. package/dist/appMap/staticScan.js +151 -39
  37. package/dist/appMap/staticScan.js.map +1 -1
  38. package/dist/appMap/store.js +58 -85
  39. package/dist/appMap/store.js.map +1 -1
  40. package/dist/appMap/tsAstScan.js +34 -12
  41. package/dist/appMap/tsAstScan.js.map +1 -1
  42. package/dist/artifacts/bundletool.js +49 -12
  43. package/dist/artifacts/bundletool.js.map +1 -1
  44. package/dist/artifacts/resolve.js +41 -14
  45. package/dist/artifacts/resolve.js.map +1 -1
  46. package/dist/automation/capabilities.js +112 -30
  47. package/dist/automation/capabilities.js.map +1 -1
  48. package/dist/automation/gestures.js +6 -2
  49. package/dist/automation/gestures.js.map +1 -1
  50. package/dist/automation/plan.js +71 -23
  51. package/dist/automation/plan.js.map +1 -1
  52. package/dist/automation/report.js +15 -5
  53. package/dist/automation/report.js.map +1 -1
  54. package/dist/automation/selectors.js +22 -28
  55. package/dist/automation/selectors.js.map +1 -1
  56. package/dist/automation/types.js +1 -1
  57. package/dist/automation/types.js.map +1 -1
  58. package/dist/automation/waits.js +14 -8
  59. package/dist/automation/waits.js.map +1 -1
  60. package/dist/automation/webview.js +9 -3
  61. package/dist/automation/webview.js.map +1 -1
  62. package/dist/automationGen/appiumModel.js +16 -8
  63. package/dist/automationGen/appiumModel.js.map +1 -1
  64. package/dist/automationGen/ciEmitter.js +6 -6
  65. package/dist/automationGen/ciEmitter.js.map +1 -1
  66. package/dist/automationGen/identifiers.js +224 -0
  67. package/dist/automationGen/identifiers.js.map +1 -0
  68. package/dist/automationGen/jsEmitter.js +288 -121
  69. package/dist/automationGen/jsEmitter.js.map +1 -1
  70. package/dist/automationGen/packagePatch.js +2 -2
  71. package/dist/automationGen/packagePatch.js.map +1 -1
  72. package/dist/automationGen/platformResolve.js +36 -0
  73. package/dist/automationGen/platformResolve.js.map +1 -0
  74. package/dist/automationGen/projectProfile.js +76 -27
  75. package/dist/automationGen/projectProfile.js.map +1 -1
  76. package/dist/automationGen/pythonEmitter.js +278 -107
  77. package/dist/automationGen/pythonEmitter.js.map +1 -1
  78. package/dist/automationGen/readmeEmitter.js +7 -6
  79. package/dist/automationGen/readmeEmitter.js.map +1 -1
  80. package/dist/automationGen/run.js +388 -0
  81. package/dist/automationGen/run.js.map +1 -0
  82. package/dist/automationGen/suitePlan.js +17 -10
  83. package/dist/automationGen/suitePlan.js.map +1 -1
  84. package/dist/automationGen/validation.js +52 -12
  85. package/dist/automationGen/validation.js.map +1 -1
  86. package/dist/build/parseBuildLog.js +235 -31
  87. package/dist/build/parseBuildLog.js.map +1 -1
  88. package/dist/build/plan.js +39 -18
  89. package/dist/build/plan.js.map +1 -1
  90. package/dist/ci/preflight.js +13 -4
  91. package/dist/ci/preflight.js.map +1 -1
  92. package/dist/cli/gc.js +74 -0
  93. package/dist/cli/gc.js.map +1 -0
  94. package/dist/cli/init.js +217 -26
  95. package/dist/cli/init.js.map +1 -1
  96. package/dist/cli/main.js +50 -0
  97. package/dist/cli/main.js.map +1 -0
  98. package/dist/cli/report.js +218 -0
  99. package/dist/cli/report.js.map +1 -0
  100. package/dist/cli/scan.js +36 -15
  101. package/dist/cli/scan.js.map +1 -1
  102. package/dist/cli/suite.js +7 -7
  103. package/dist/cli/suite.js.map +1 -1
  104. package/dist/cli/verify.js +7 -7
  105. package/dist/cli/verify.js.map +1 -1
  106. package/dist/consent/consent.js +162 -5
  107. package/dist/consent/consent.js.map +1 -1
  108. package/dist/context/detect.js +55 -18
  109. package/dist/context/detect.js.map +1 -1
  110. package/dist/context/findApps.js +22 -8
  111. package/dist/context/findApps.js.map +1 -1
  112. package/dist/context/projectRoot.js +174 -19
  113. package/dist/context/projectRoot.js.map +1 -1
  114. package/dist/context/scan.js +1 -1
  115. package/dist/context/scan.js.map +1 -1
  116. package/dist/core/capabilityGroups.js +90 -0
  117. package/dist/core/capabilityGroups.js.map +1 -0
  118. package/dist/core/target.js +10 -8
  119. package/dist/core/target.js.map +1 -1
  120. package/dist/core/targetPlan.js +160 -39
  121. package/dist/core/targetPlan.js.map +1 -1
  122. package/dist/drivers/DirectDriver.js +317 -43
  123. package/dist/drivers/DirectDriver.js.map +1 -1
  124. package/dist/drivers/SimctlDriver.js +124 -8
  125. package/dist/drivers/SimctlDriver.js.map +1 -1
  126. package/dist/drivers/WdaDriver.js +365 -55
  127. package/dist/drivers/WdaDriver.js.map +1 -1
  128. package/dist/explore/candidates.js +7 -3
  129. package/dist/explore/candidates.js.map +1 -1
  130. package/dist/explore/graph.js +15 -6
  131. package/dist/explore/graph.js.map +1 -1
  132. package/dist/explore/memory.js +4 -1
  133. package/dist/explore/memory.js.map +1 -1
  134. package/dist/explore/planner.js +54 -9
  135. package/dist/explore/planner.js.map +1 -1
  136. package/dist/explore/policy.js +11 -6
  137. package/dist/explore/policy.js.map +1 -1
  138. package/dist/explore/runner.js +363 -190
  139. package/dist/explore/runner.js.map +1 -1
  140. package/dist/explore/signatures.js +4 -2
  141. package/dist/explore/signatures.js.map +1 -1
  142. package/dist/explore/suite.js +3 -1
  143. package/dist/explore/suite.js.map +1 -1
  144. package/dist/featureTesting/executionBootstrap.js +137 -29
  145. package/dist/featureTesting/executionBootstrap.js.map +1 -1
  146. package/dist/featureTesting/featureMap.js +6 -3
  147. package/dist/featureTesting/featureMap.js.map +1 -1
  148. package/dist/featureTesting/featureScope.js +101 -20
  149. package/dist/featureTesting/featureScope.js.map +1 -1
  150. package/dist/featureTesting/mapFeatureScope.js +44 -15
  151. package/dist/featureTesting/mapFeatureScope.js.map +1 -1
  152. package/dist/featureTesting/objectiveModel.js +15 -11
  153. package/dist/featureTesting/objectiveModel.js.map +1 -1
  154. package/dist/featureTesting/resultMerge.js +16 -8
  155. package/dist/featureTesting/resultMerge.js.map +1 -1
  156. package/dist/featureTesting/sources.js +8 -5
  157. package/dist/featureTesting/sources.js.map +1 -1
  158. package/dist/featureTesting/suiteBridge.js +8 -2
  159. package/dist/featureTesting/suiteBridge.js.map +1 -1
  160. package/dist/featureTesting/synonyms.js +32 -4
  161. package/dist/featureTesting/synonyms.js.map +1 -1
  162. package/dist/featureTesting/testCaseFactory.js +27 -15
  163. package/dist/featureTesting/testCaseFactory.js.map +1 -1
  164. package/dist/featureTesting/testPlan.js +34 -12
  165. package/dist/featureTesting/testPlan.js.map +1 -1
  166. package/dist/firstRun/authStateMachine.js +1 -1
  167. package/dist/firstRun/authStateMachine.js.map +1 -1
  168. package/dist/firstRun/classifyScreen.js +9 -6
  169. package/dist/firstRun/classifyScreen.js.map +1 -1
  170. package/dist/firstRun/firstRunPlanner.js +16 -13
  171. package/dist/firstRun/firstRunPlanner.js.map +1 -1
  172. package/dist/firstRun/firstRunRunner.js +92 -31
  173. package/dist/firstRun/firstRunRunner.js.map +1 -1
  174. package/dist/firstRun/generatedDataPolicy.js +25 -15
  175. package/dist/firstRun/generatedDataPolicy.js.map +1 -1
  176. package/dist/firstRun/inputPlanner.js +45 -11
  177. package/dist/firstRun/inputPlanner.js.map +1 -1
  178. package/dist/firstRun/onboardingStateMachine.js +1 -1
  179. package/dist/firstRun/onboardingStateMachine.js.map +1 -1
  180. package/dist/firstRun/paywallPolicy.js +3 -3
  181. package/dist/firstRun/paywallPolicy.js.map +1 -1
  182. package/dist/firstRun/types.js +1 -1
  183. package/dist/firstRun/types.js.map +1 -1
  184. package/dist/fixtures/catalog.js +72 -9
  185. package/dist/fixtures/catalog.js.map +1 -1
  186. package/dist/fixtures/load.js +50 -0
  187. package/dist/fixtures/load.js.map +1 -0
  188. package/dist/flows/discover.js +2 -2
  189. package/dist/flows/discover.js.map +1 -1
  190. package/dist/flows/generate.js +68 -17
  191. package/dist/flows/generate.js.map +1 -1
  192. package/dist/flows/lint.js +88 -14
  193. package/dist/flows/lint.js.map +1 -1
  194. package/dist/flows/pack.js +21 -5
  195. package/dist/flows/pack.js.map +1 -1
  196. package/dist/flows/paths.js +57 -0
  197. package/dist/flows/paths.js.map +1 -0
  198. package/dist/flows/repair.js +176 -37
  199. package/dist/flows/repair.js.map +1 -1
  200. package/dist/flows/run.js +308 -99
  201. package/dist/flows/run.js.map +1 -1
  202. package/dist/flows/schema.js +107 -25
  203. package/dist/flows/schema.js.map +1 -1
  204. package/dist/flows/seedExec.js +8 -4
  205. package/dist/flows/seedExec.js.map +1 -1
  206. package/dist/flows/templates.js +5 -5
  207. package/dist/index.js +50 -8
  208. package/dist/index.js.map +1 -1
  209. package/dist/ios/signing.js +32 -3
  210. package/dist/ios/signing.js.map +1 -1
  211. package/dist/issues/classify.js +28 -20
  212. package/dist/issues/classify.js.map +1 -1
  213. package/dist/issues/fingerprint.js +35 -9
  214. package/dist/issues/fingerprint.js.map +1 -1
  215. package/dist/issues/index.js +93 -46
  216. package/dist/issues/index.js.map +1 -1
  217. package/dist/issues/metrics.js +6 -5
  218. package/dist/issues/metrics.js.map +1 -1
  219. package/dist/issues/recurrence.js +35 -8
  220. package/dist/issues/recurrence.js.map +1 -1
  221. package/dist/issues/report.js +12 -8
  222. package/dist/issues/report.js.map +1 -1
  223. package/dist/issues/reportBridge.js +40 -9
  224. package/dist/issues/reportBridge.js.map +1 -1
  225. package/dist/issues/schema.js +2 -2
  226. package/dist/issues/schema.js.map +1 -1
  227. package/dist/issues/sourceRevision.js +2 -2
  228. package/dist/issues/sourceRevision.js.map +1 -1
  229. package/dist/issues/store.js +110 -32
  230. package/dist/issues/store.js.map +1 -1
  231. package/dist/lib/abortScope.js +48 -0
  232. package/dist/lib/abortScope.js.map +1 -0
  233. package/dist/lib/android.js +84 -8
  234. package/dist/lib/android.js.map +1 -1
  235. package/dist/lib/coordSpace.js +1 -1
  236. package/dist/lib/coordSpace.js.map +1 -1
  237. package/dist/lib/device.js +53 -12
  238. package/dist/lib/device.js.map +1 -1
  239. package/dist/lib/gestures.js +141 -0
  240. package/dist/lib/gestures.js.map +1 -0
  241. package/dist/lib/gitignore.js +4 -3
  242. package/dist/lib/gitignore.js.map +1 -1
  243. package/dist/lib/image.js +12 -3
  244. package/dist/lib/image.js.map +1 -1
  245. package/dist/lib/lockfile.js +399 -0
  246. package/dist/lib/lockfile.js.map +1 -0
  247. package/dist/lib/needsInput.js +9 -6
  248. package/dist/lib/needsInput.js.map +1 -1
  249. package/dist/lib/png.js +4 -3
  250. package/dist/lib/png.js.map +1 -1
  251. package/dist/lib/redact.js +170 -9
  252. package/dist/lib/redact.js.map +1 -1
  253. package/dist/lib/result.js +94 -10
  254. package/dist/lib/result.js.map +1 -1
  255. package/dist/lib/schemaHash.js +7 -5
  256. package/dist/lib/schemaHash.js.map +1 -1
  257. package/dist/lib/sensitive.js +6 -3
  258. package/dist/lib/sensitive.js.map +1 -1
  259. package/dist/lib/simctl.js +3 -3
  260. package/dist/lib/simctl.js.map +1 -1
  261. package/dist/lib/spawn.js +78 -17
  262. package/dist/lib/spawn.js.map +1 -1
  263. package/dist/lib/toolAnnotations.js +114 -0
  264. package/dist/lib/toolAnnotations.js.map +1 -0
  265. package/dist/lib/wda.js +321 -25
  266. package/dist/lib/wda.js.map +1 -1
  267. package/dist/lib/wdaConfig.js +12 -5
  268. package/dist/lib/wdaConfig.js.map +1 -1
  269. package/dist/lib/wdaTune.js +52 -23
  270. package/dist/lib/wdaTune.js.map +1 -1
  271. package/dist/mobileAudit/checks.js +150 -28
  272. package/dist/mobileAudit/checks.js.map +1 -1
  273. package/dist/mobileAudit/evidence.js +4 -4
  274. package/dist/mobileAudit/evidence.js.map +1 -1
  275. package/dist/mobileAudit/profiles.js +121 -20
  276. package/dist/mobileAudit/profiles.js.map +1 -1
  277. package/dist/mobileAudit/results.js +9 -4
  278. package/dist/mobileAudit/results.js.map +1 -1
  279. package/dist/mobileAudit/runner.js +214 -35
  280. package/dist/mobileAudit/runner.js.map +1 -1
  281. package/dist/oracle/auth.js +1 -1
  282. package/dist/oracle/auth.js.map +1 -1
  283. package/dist/oracle/failures.js +1085 -145
  284. package/dist/oracle/failures.js.map +1 -1
  285. package/dist/oracle/health.js +148 -26
  286. package/dist/oracle/health.js.map +1 -1
  287. package/dist/oracle/locator.js +148 -19
  288. package/dist/oracle/locator.js.map +1 -1
  289. package/dist/oracle/record.js +3 -3
  290. package/dist/oracle/record.js.map +1 -1
  291. package/dist/orchestration/envelope.js +2 -2
  292. package/dist/orchestration/envelope.js.map +1 -1
  293. package/dist/orchestration/goal.js +7 -13
  294. package/dist/orchestration/goal.js.map +1 -1
  295. package/dist/orchestration/testThis/execute.js +167 -0
  296. package/dist/orchestration/testThis/execute.js.map +1 -0
  297. package/dist/orchestration/testThis/pipeline.js +413 -0
  298. package/dist/orchestration/testThis/pipeline.js.map +1 -0
  299. package/dist/orchestration/testThis/plan.js +519 -0
  300. package/dist/orchestration/testThis/plan.js.map +1 -0
  301. package/dist/orchestration/testThis/sessionIntent.js +72 -0
  302. package/dist/orchestration/testThis/sessionIntent.js.map +1 -0
  303. package/dist/orchestration/testThis/terminal.js +136 -0
  304. package/dist/orchestration/testThis/terminal.js.map +1 -0
  305. package/dist/orchestration/testThis/types.js +12 -0
  306. package/dist/orchestration/testThis/types.js.map +1 -0
  307. package/dist/plan/plan.js +9 -9
  308. package/dist/plan/plan.js.map +1 -1
  309. package/dist/prompts/index.js +24 -24
  310. package/dist/prompts/index.js.map +1 -1
  311. package/dist/report/coverage.js +0 -1
  312. package/dist/report/coverage.js.map +1 -1
  313. package/dist/report/evidence.js.map +1 -1
  314. package/dist/report/export.js +449 -72
  315. package/dist/report/export.js.map +1 -1
  316. package/dist/report/findingsDedupe.js +41 -0
  317. package/dist/report/findingsDedupe.js.map +1 -0
  318. package/dist/report/flake.js +13 -14
  319. package/dist/report/flake.js.map +1 -1
  320. package/dist/report/history.js +72 -38
  321. package/dist/report/history.js.map +1 -1
  322. package/dist/report/policy.js +18 -7
  323. package/dist/report/policy.js.map +1 -1
  324. package/dist/report/qaLevel.js +10 -16
  325. package/dist/report/qaLevel.js.map +1 -1
  326. package/dist/report/readiness.js +42 -12
  327. package/dist/report/readiness.js.map +1 -1
  328. package/dist/report/sarifSources.js +160 -0
  329. package/dist/report/sarifSources.js.map +1 -0
  330. package/dist/report/summary.js +2 -2
  331. package/dist/report/summary.js.map +1 -1
  332. package/dist/report/testCatalog.js +4 -4
  333. package/dist/report/testCatalog.js.map +1 -1
  334. package/dist/report/timing.js +23 -23
  335. package/dist/report/timing.js.map +1 -1
  336. package/dist/report/toolHealth.js +124 -0
  337. package/dist/report/toolHealth.js.map +1 -0
  338. package/dist/server.js +501 -69
  339. package/dist/server.js.map +1 -1
  340. package/dist/services/automationGenerate.js +8 -2
  341. package/dist/services/automationGenerate.js.map +1 -1
  342. package/dist/services/build.js +10 -4
  343. package/dist/services/build.js.map +1 -1
  344. package/dist/services/flowGenerate.js +75 -0
  345. package/dist/services/flowGenerate.js.map +1 -0
  346. package/dist/services/preflight.js +40 -8
  347. package/dist/services/preflight.js.map +1 -1
  348. package/dist/services/prepareAndroid.js +92 -18
  349. package/dist/services/prepareAndroid.js.map +1 -1
  350. package/dist/services/prepareIos.js +94 -17
  351. package/dist/services/prepareIos.js.map +1 -1
  352. package/dist/services/report.js +271 -80
  353. package/dist/services/report.js.map +1 -1
  354. package/dist/services/smoke.js +68 -22
  355. package/dist/services/smoke.js.map +1 -1
  356. package/dist/services/suiteGenerate.js +43 -6
  357. package/dist/services/suiteGenerate.js.map +1 -1
  358. package/dist/services/testSuiteKnowledge.js +78 -33
  359. package/dist/services/testSuiteKnowledge.js.map +1 -1
  360. package/dist/session/attach.js +284 -4
  361. package/dist/session/attach.js.map +1 -1
  362. package/dist/session/processRegistry.js +433 -0
  363. package/dist/session/processRegistry.js.map +1 -0
  364. package/dist/session/progress.js +1 -1
  365. package/dist/session/progress.js.map +1 -1
  366. package/dist/session/retention.js +201 -0
  367. package/dist/session/retention.js.map +1 -0
  368. package/dist/session/store.js +459 -59
  369. package/dist/session/store.js.map +1 -1
  370. package/dist/snapshot/overlays.js +60 -10
  371. package/dist/snapshot/overlays.js.map +1 -1
  372. package/dist/snapshot/parse.js +30 -12
  373. package/dist/snapshot/parse.js.map +1 -1
  374. package/dist/snapshot/present.js +36 -6
  375. package/dist/snapshot/present.js.map +1 -1
  376. package/dist/snapshot/settle.js +39 -9
  377. package/dist/snapshot/settle.js.map +1 -1
  378. package/dist/state/consent.js +99 -0
  379. package/dist/state/consent.js.map +1 -0
  380. package/dist/state/profile.js +82 -11
  381. package/dist/state/profile.js.map +1 -1
  382. package/dist/suite/compile.js +15 -6
  383. package/dist/suite/compile.js.map +1 -1
  384. package/dist/suite/lint.js +22 -4
  385. package/dist/suite/lint.js.map +1 -1
  386. package/dist/suite/pom.js +75 -44
  387. package/dist/suite/pom.js.map +1 -1
  388. package/dist/suite/secretGuard.js +266 -0
  389. package/dist/suite/secretGuard.js.map +1 -0
  390. package/dist/suite/testcase.js +15 -11
  391. package/dist/suite/testcase.js.map +1 -1
  392. package/dist/testSuite/exporter.js +7 -3
  393. package/dist/testSuite/exporter.js.map +1 -1
  394. package/dist/testSuite/generator.js +43 -14
  395. package/dist/testSuite/generator.js.map +1 -1
  396. package/dist/testSuite/history.js +1 -1
  397. package/dist/testSuite/history.js.map +1 -1
  398. package/dist/testSuite/issueLinks.js +3 -3
  399. package/dist/testSuite/issueLinks.js.map +1 -1
  400. package/dist/testSuite/lint.js +4 -4
  401. package/dist/testSuite/lint.js.map +1 -1
  402. package/dist/testSuite/merge.js +13 -7
  403. package/dist/testSuite/merge.js.map +1 -1
  404. package/dist/testSuite/schema.js +21 -16
  405. package/dist/testSuite/schema.js.map +1 -1
  406. package/dist/testSuite/store.js +12 -4
  407. package/dist/testSuite/store.js.map +1 -1
  408. package/dist/testSuite/traceability.js +2 -2
  409. package/dist/testSuite/traceability.js.map +1 -1
  410. package/dist/tools/act.js +868 -174
  411. package/dist/tools/act.js.map +1 -1
  412. package/dist/tools/agent.js +521 -112
  413. package/dist/tools/agent.js.map +1 -1
  414. package/dist/tools/appControl.js +82 -19
  415. package/dist/tools/appControl.js.map +1 -1
  416. package/dist/tools/appMap.js +393 -189
  417. package/dist/tools/appMap.js.map +1 -1
  418. package/dist/tools/build.js +92 -51
  419. package/dist/tools/build.js.map +1 -1
  420. package/dist/tools/bundletool.js +141 -40
  421. package/dist/tools/bundletool.js.map +1 -1
  422. package/dist/tools/clearOverlay.js +98 -18
  423. package/dist/tools/clearOverlay.js.map +1 -1
  424. package/dist/tools/device.js +108 -19
  425. package/dist/tools/device.js.map +1 -1
  426. package/dist/tools/doctor.js +98 -35
  427. package/dist/tools/doctor.js.map +1 -1
  428. package/dist/tools/explore.js +110 -42
  429. package/dist/tools/explore.js.map +1 -1
  430. package/dist/tools/featureTesting.js +152 -130
  431. package/dist/tools/featureTesting.js.map +1 -1
  432. package/dist/tools/firstRun.js +94 -66
  433. package/dist/tools/firstRun.js.map +1 -1
  434. package/dist/tools/flow.js +347 -132
  435. package/dist/tools/flow.js.map +1 -1
  436. package/dist/tools/flowRepair.js +42 -10
  437. package/dist/tools/flowRepair.js.map +1 -1
  438. package/dist/tools/generate.js +199 -0
  439. package/dist/tools/generate.js.map +1 -0
  440. package/dist/tools/getArtifact.js +37 -8
  441. package/dist/tools/getArtifact.js.map +1 -1
  442. package/dist/tools/health.js +17 -12
  443. package/dist/tools/health.js.map +1 -1
  444. package/dist/tools/ios.js +148 -194
  445. package/dist/tools/ios.js.map +1 -1
  446. package/dist/tools/issues.js +256 -171
  447. package/dist/tools/issues.js.map +1 -1
  448. package/dist/tools/jobs.js +55 -11
  449. package/dist/tools/jobs.js.map +1 -1
  450. package/dist/tools/metro.js +84 -38
  451. package/dist/tools/metro.js.map +1 -1
  452. package/dist/tools/mobileAudit.js +83 -26
  453. package/dist/tools/mobileAudit.js.map +1 -1
  454. package/dist/tools/network.js +36 -14
  455. package/dist/tools/network.js.map +1 -1
  456. package/dist/tools/note.js +31 -17
  457. package/dist/tools/note.js.map +1 -1
  458. package/dist/tools/prepareIosTarget.js +31 -14
  459. package/dist/tools/prepareIosTarget.js.map +1 -1
  460. package/dist/tools/prepareTarget.js +193 -47
  461. package/dist/tools/prepareTarget.js.map +1 -1
  462. package/dist/tools/report.js +16 -8
  463. package/dist/tools/report.js.map +1 -1
  464. package/dist/tools/resolveArtifact.js +12 -12
  465. package/dist/tools/resolveArtifact.js.map +1 -1
  466. package/dist/tools/resolveTarget.js +81 -18
  467. package/dist/tools/resolveTarget.js.map +1 -1
  468. package/dist/tools/screenRecord.js +85 -20
  469. package/dist/tools/screenRecord.js.map +1 -1
  470. package/dist/tools/screenshot.js +42 -18
  471. package/dist/tools/screenshot.js.map +1 -1
  472. package/dist/tools/smoke.js +29 -12
  473. package/dist/tools/smoke.js.map +1 -1
  474. package/dist/tools/snapshot.js +157 -107
  475. package/dist/tools/snapshot.js.map +1 -1
  476. package/dist/tools/startSession.js +117 -84
  477. package/dist/tools/startSession.js.map +1 -1
  478. package/dist/tools/suite.js +391 -310
  479. package/dist/tools/suite.js.map +1 -1
  480. package/dist/tools/testSuite.js +112 -36
  481. package/dist/tools/testSuite.js.map +1 -1
  482. package/dist/tools/testThis.js +35 -802
  483. package/dist/tools/testThis.js.map +1 -1
  484. package/dist/tools/visual.js +698 -116
  485. package/dist/tools/visual.js.map +1 -1
  486. package/dist/tools/wait.js +9 -23
  487. package/dist/tools/wait.js.map +1 -1
  488. package/dist/tools/wda.js +312 -54
  489. package/dist/tools/wda.js.map +1 -1
  490. package/dist/version.js +37 -64
  491. package/dist/version.js.map +1 -1
  492. package/dist/visual/ocr.js +65 -8
  493. package/dist/visual/ocr.js.map +1 -1
  494. package/dist/visual/provider.js +87 -15
  495. package/dist/visual/provider.js.map +1 -1
  496. package/docs/README.md +24 -10
  497. package/docs/ci-reports.md +328 -0
  498. package/docs/concepts.md +227 -0
  499. package/docs/flows.md +153 -0
  500. package/docs/mcp-server.md +210 -104
  501. package/docs/physical-devices.md +84 -0
  502. package/docs/tools.md +808 -217
  503. package/package.json +16 -6
  504. package/dist/appMap/diff.js +0 -60
  505. package/dist/appMap/diff.js.map +0 -1
  506. package/dist/automation/maestroIr.js +0 -282
  507. package/dist/automation/maestroIr.js.map +0 -1
  508. package/dist/interop/maestro.js +0 -151
  509. package/dist/interop/maestro.js.map +0 -1
  510. package/dist/tools/assertVisual.js +0 -74
  511. package/dist/tools/assertVisual.js.map +0 -1
  512. package/dist/tools/automationGenerate.js +0 -394
  513. package/dist/tools/automationGenerate.js.map +0 -1
  514. package/dist/tools/capabilities.js +0 -209
  515. package/dist/tools/capabilities.js.map +0 -1
  516. package/dist/tools/detectContext.js +0 -41
  517. package/dist/tools/detectContext.js.map +0 -1
  518. package/dist/tools/flowGenerate.js +0 -55
  519. package/dist/tools/flowGenerate.js.map +0 -1
  520. package/dist/tools/history.js +0 -56
  521. package/dist/tools/history.js.map +0 -1
  522. package/dist/tools/idling.js +0 -104
  523. package/dist/tools/idling.js.map +0 -1
  524. package/dist/tools/inputCapabilities.js +0 -30
  525. package/dist/tools/inputCapabilities.js.map +0 -1
  526. package/dist/tools/locator.js +0 -57
  527. package/dist/tools/locator.js.map +0 -1
  528. package/dist/tools/maestro.js +0 -78
  529. package/dist/tools/maestro.js.map +0 -1
  530. package/dist/tools/permissions.js +0 -149
  531. package/dist/tools/permissions.js.map +0 -1
  532. package/dist/tools/plan.js +0 -49
  533. package/dist/tools/plan.js.map +0 -1
  534. package/dist/tools/screenInfo.js +0 -70
  535. package/dist/tools/screenInfo.js.map +0 -1
  536. package/dist/tools/seed.js +0 -101
  537. package/dist/tools/seed.js.map +0 -1
  538. package/dist/tools/state.js +0 -170
  539. package/dist/tools/state.js.map +0 -1
  540. package/dist/tools/visualText.js +0 -61
  541. package/dist/tools/visualText.js.map +0 -1
@@ -1,4 +1,4 @@
1
- // Target Resolver (roadmap §5) — pick the best available device/simulator for a first run,
1
+ // Target Resolver: pick the best available device/simulator for a first run,
2
2
  // deterministically, so "test this" does not depend on agent improvisation. PURE: callers
3
3
  // gather the live inputs (online adb devices, AVDs, simulators, the resolved artifact's
4
4
  // platform) and pass them in; this module applies the decision order and explains the choice.
@@ -8,70 +8,149 @@
8
8
  // 2. A platform-specific artifact constrains the platform.
9
9
  // 3. Prefer an already-online device/simulator (fastest).
10
10
  // 4. Prefer emulator/simulator for the first run.
11
- // 5. Prefer a real device only when requested or required.
11
+ // 5. Physical devices are visible but REFUSED (typed PHYSICAL_DEVICE_UNSUPPORTED): Swipium is
12
+ // simulator/emulator-only by policy until the real-device threat model lands
13
+ // (THREAT_MODEL.md non-goals, docs/physical-devices.md).
12
14
  // 6. If nothing is running, boot the fastest known emulator/simulator.
13
- function isEmulatorSerial(serial) {
15
+ /** Serial-pattern emulator check (adb names local emulators `emulator-<port>`). */
16
+ export function isEmulatorSerial(serial) {
14
17
  return /^emulator-\d+/.test(serial);
15
18
  }
16
- /** Which platforms have ANY usable device (online or bootable)? */
19
+ /** The policy predicate: pattern match OR property-verified emulator (TargetInputs.android.emulators). */
20
+ function emulatorPredicate(i) {
21
+ const verified = new Set(i.android.emulators ?? []);
22
+ return (serial) => isEmulatorSerial(serial) || verified.has(serial);
23
+ }
24
+ /** Which platforms have ANY usable device (online or bootable)? Physical devices are not usable by policy. */
17
25
  function platformsViable(i) {
18
26
  const out = [];
19
- if (i.android.online.length || i.android.avds.length) {
20
- out.push(i.android.online.some((s) => !isEmulatorSerial(s)) ? 'android-real' : 'android-emulator');
21
- }
27
+ const isEmulator = emulatorPredicate(i);
28
+ if (i.android.online.some(isEmulator) || i.android.avds.length)
29
+ out.push('android-emulator');
22
30
  if (i.ios.bootedSimulators.length || i.ios.availableSimulators.length)
23
31
  out.push('ios-simulator');
24
- if (i.ios.realDevices?.length)
25
- out.push('ios-real');
26
32
  return out;
27
33
  }
34
+ /** Typed refusal for a visible physical device. Agents get "why", not a bare NO_DEVICE. */
35
+ function physicalDeviceRefusal(device, alternatives) {
36
+ return {
37
+ selected: null,
38
+ reason: `Physical device ${device} is visible, but Swipium is simulator/emulator-only by policy (real user data, see docs/physical-devices.md).`,
39
+ alternatives,
40
+ preconditions: [],
41
+ willBoot: false,
42
+ blocked: {
43
+ failureCode: 'PHYSICAL_DEVICE_UNSUPPORTED',
44
+ detail: `Physical device ${device} is visible but refused: real-device testing is out of scope until its threat model lands. Use an emulator/simulator.`,
45
+ },
46
+ };
47
+ }
28
48
  function planAndroid(i, reasonPrefix) {
29
49
  const online = i.android.online;
30
- const real = online.find((s) => !isEmulatorSerial(s));
31
- const emu = online.find((s) => isEmulatorSerial(s));
50
+ const isEmulator = emulatorPredicate(i);
51
+ const real = online.find((s) => !isEmulator(s));
52
+ const emu = online.find((s) => isEmulator(s));
32
53
  if (i.preferRealDevice && real) {
33
- return { selected: 'android-real', device: real, reason: `${reasonPrefix}real device ${real} is online.`, alternatives: emu ? ['android-emulator'] : [], preconditions: [], willBoot: false };
54
+ // Even an explicit request is refused. The policy is server-side, not client-negotiable.
55
+ return physicalDeviceRefusal(real, emu || i.android.avds.length ? ['android-emulator'] : []);
34
56
  }
35
57
  if (emu) {
36
- return { selected: 'android-emulator', device: emu, reason: `${reasonPrefix}emulator ${emu} is already online (fastest).`, alternatives: real ? ['android-real'] : [], preconditions: [], willBoot: false };
37
- }
38
- if (real) {
39
- return { selected: 'android-real', device: real, reason: `${reasonPrefix}device ${real} is online.`, alternatives: [], preconditions: [], willBoot: false };
58
+ return {
59
+ selected: 'android-emulator',
60
+ device: emu,
61
+ reason: `${reasonPrefix}emulator ${emu} is already online (fastest).` +
62
+ (real ? ` (Physical device ${real} is visible but out of scope: simulator-only policy.)` : ''),
63
+ alternatives: [],
64
+ preconditions: [],
65
+ willBoot: false,
66
+ };
40
67
  }
41
68
  if (i.android.avds.length) {
42
- return { selected: 'android-emulator', reason: `${reasonPrefix}no device online — will boot AVD "${i.android.avds[0]}".`, alternatives: [], preconditions: ['emulator boot (~30-60s)'], willBoot: true, bootTarget: i.android.avds[0] };
69
+ return {
70
+ selected: 'android-emulator',
71
+ reason: `${reasonPrefix}no emulator online, will boot AVD "${i.android.avds[0]}".` +
72
+ (real ? ` (Physical device ${real} is visible but out of scope: simulator-only policy.)` : ''),
73
+ alternatives: [],
74
+ preconditions: ['emulator boot (~30-60s)'],
75
+ willBoot: true,
76
+ bootTarget: i.android.avds[0],
77
+ };
43
78
  }
44
- return { selected: null, reason: `${reasonPrefix}no Android device online and no AVD to boot.`, alternatives: [], preconditions: [], willBoot: false, blocked: { failureCode: 'NO_DEVICE', detail: 'No Android device online and no AVD available — create one (qa_doctor).' } };
79
+ if (real)
80
+ return physicalDeviceRefusal(real, []);
81
+ return {
82
+ selected: null,
83
+ reason: `${reasonPrefix}no Android device online and no AVD to boot.`,
84
+ alternatives: [],
85
+ preconditions: [],
86
+ willBoot: false,
87
+ blocked: {
88
+ failureCode: 'NO_DEVICE',
89
+ detail: 'No Android device online and no AVD available. Create one in Android Studio (Device Manager) or with avdmanager, then re-run qa_test_this.',
90
+ },
91
+ };
45
92
  }
46
93
  function planIos(i, reasonPrefix) {
47
94
  const iosPre = i.wdaAvailable === false ? ['WDA required for structured iOS tap/type/snapshot (qa_wda); else visual-only'] : [];
48
95
  if (i.preferRealDevice && i.ios.realDevices?.length) {
49
- return { selected: 'ios-real', device: i.ios.realDevices[0], reason: `${reasonPrefix}real iOS device requested and available.`, alternatives: ['ios-simulator'], preconditions: ['Apple code signing required', ...iosPre], willBoot: false };
96
+ // Even an explicit request is refused. The policy is server-side, not client-negotiable.
97
+ const simViable = i.ios.bootedSimulators.length > 0 || i.ios.availableSimulators.length > 0;
98
+ return physicalDeviceRefusal(i.ios.realDevices[0], simViable ? ['ios-simulator'] : []);
50
99
  }
51
100
  if (i.ios.bootedSimulators.length) {
52
101
  const s = i.ios.bootedSimulators[0];
53
- return { selected: 'ios-simulator', device: s.udid, reason: `${reasonPrefix}simulator "${s.name}" is already booted (fastest).`, alternatives: [], preconditions: iosPre, willBoot: false };
102
+ return {
103
+ selected: 'ios-simulator',
104
+ device: s.udid,
105
+ reason: `${reasonPrefix}simulator "${s.name}" is already booted (fastest).`,
106
+ alternatives: [],
107
+ preconditions: iosPre,
108
+ willBoot: false,
109
+ };
54
110
  }
55
111
  if (i.ios.availableSimulators.length) {
56
112
  const s = i.ios.availableSimulators[0];
57
- return { selected: 'ios-simulator', reason: `${reasonPrefix}no simulator booted — will boot "${s.name}".`, alternatives: [], preconditions: ['simulator boot (~10-30s)', ...iosPre], willBoot: true, bootTarget: s.udid };
113
+ return {
114
+ selected: 'ios-simulator',
115
+ reason: `${reasonPrefix}no simulator booted, will boot "${s.name}".`,
116
+ alternatives: [],
117
+ preconditions: ['simulator boot (~10-30s)', ...iosPre],
118
+ willBoot: true,
119
+ bootTarget: s.udid,
120
+ };
58
121
  }
59
- return { selected: null, reason: `${reasonPrefix}no iOS simulator booted or available.`, alternatives: [], preconditions: [], willBoot: false, blocked: { failureCode: 'SIMULATOR_RUNTIME_MISSING', detail: 'No iOS simulator available — install a runtime / create a simulator in Xcode.' } };
122
+ return {
123
+ selected: null,
124
+ reason: `${reasonPrefix}no iOS simulator booted or available.`,
125
+ alternatives: [],
126
+ preconditions: [],
127
+ willBoot: false,
128
+ blocked: {
129
+ failureCode: 'SIMULATOR_RUNTIME_MISSING',
130
+ detail: 'No iOS simulator available. Install a runtime / create a simulator in Xcode.',
131
+ },
132
+ };
60
133
  }
61
134
  /** PURE: the typed blocker for an artifact that can never install on the chosen target, or null. */
62
135
  export function artifactTargetMismatch(selected, installTargets) {
63
136
  if (!installTargets || installTargets.length === 0)
64
- return null; // unknown / archive-only → don't second-guess here
137
+ return null; // unknown / archive-only: don't second-guess here
65
138
  if (installTargets.includes(selected))
66
139
  return null;
67
140
  // Specific, common impossibilities get a precise code.
68
141
  if (selected === 'ios-simulator' && installTargets.includes('ios-real')) {
69
- return { failureCode: 'IPA_NEEDS_REAL_DEVICE', detail: 'The resolved artifact installs only on a real iOS device, but the plan selected the simulator.' };
142
+ return {
143
+ failureCode: 'IPA_NEEDS_REAL_DEVICE',
144
+ detail: 'The resolved artifact installs only on a real iOS device, but the plan selected the simulator.',
145
+ };
70
146
  }
71
147
  if (selected === 'ios-real' && installTargets.includes('ios-simulator')) {
72
148
  return { failureCode: 'IOS_APP_WRONG_ARCH', detail: 'The resolved artifact is a simulator .app, but the plan selected a real device.' };
73
149
  }
74
- return { failureCode: 'WRONG_ARCH', detail: `The resolved artifact installs on [${installTargets.join(', ')}], not the selected ${selected}.` };
150
+ return {
151
+ failureCode: 'WRONG_ARCH',
152
+ detail: `The resolved artifact installs on [${installTargets.join(', ')}], not the selected ${selected}.`,
153
+ };
75
154
  }
76
155
  export function planTarget(i) {
77
156
  const plan = planTargetCore(i);
@@ -86,23 +165,55 @@ export function planTarget(i) {
86
165
  return plan;
87
166
  }
88
167
  function planTargetCore(i) {
89
- // 1. Explicit device wins — figure out its platform from where it appears.
168
+ // 1. Explicit device wins. Figure out its platform from where it appears.
90
169
  if (i.requestedDevice) {
91
170
  const dev = i.requestedDevice;
92
171
  if (i.android.online.includes(dev) || i.android.avds.includes(dev)) {
93
172
  const online = i.android.online.includes(dev);
94
- const sel = !isEmulatorSerial(dev) && online ? 'android-real' : 'android-emulator';
95
- return { selected: sel, device: online ? dev : undefined, reason: `Honoring requested device "${dev}".`, alternatives: [], preconditions: [], willBoot: !online, bootTarget: online ? undefined : dev };
173
+ const isEmulator = emulatorPredicate(i);
174
+ if (online && !isEmulator(dev)) {
175
+ return physicalDeviceRefusal(dev, i.android.online.some(isEmulator) || i.android.avds.length ? ['android-emulator'] : []);
176
+ }
177
+ return {
178
+ selected: 'android-emulator',
179
+ device: online ? dev : undefined,
180
+ reason: `Honoring requested device "${dev}".`,
181
+ alternatives: [],
182
+ preconditions: [],
183
+ willBoot: !online,
184
+ bootTarget: online ? undefined : dev,
185
+ };
96
186
  }
97
187
  const simBooted = i.ios.bootedSimulators.find((s) => s.udid === dev || s.name === dev);
98
188
  const simAvail = i.ios.availableSimulators.find((s) => s.udid === dev || s.name === dev);
99
189
  if (simBooted)
100
- return { selected: 'ios-simulator', device: simBooted.udid, reason: `Honoring requested simulator "${dev}".`, alternatives: [], preconditions: [], willBoot: false };
190
+ return {
191
+ selected: 'ios-simulator',
192
+ device: simBooted.udid,
193
+ reason: `Honoring requested simulator "${dev}".`,
194
+ alternatives: [],
195
+ preconditions: [],
196
+ willBoot: false,
197
+ };
101
198
  if (simAvail)
102
- return { selected: 'ios-simulator', reason: `Honoring requested simulator "${dev}" — will boot it.`, alternatives: [], preconditions: ['simulator boot'], willBoot: true, bootTarget: simAvail.udid };
199
+ return {
200
+ selected: 'ios-simulator',
201
+ reason: `Honoring requested simulator "${dev}", will boot it.`,
202
+ alternatives: [],
203
+ preconditions: ['simulator boot'],
204
+ willBoot: true,
205
+ bootTarget: simAvail.udid,
206
+ };
103
207
  if (i.ios.realDevices?.includes(dev))
104
- return { selected: 'ios-real', device: dev, reason: `Honoring requested real iOS device "${dev}".`, alternatives: [], preconditions: ['Apple code signing required'], willBoot: false };
105
- return { selected: null, reason: `Requested device "${dev}" is not online/available.`, alternatives: [], preconditions: [], willBoot: false, blocked: { failureCode: 'NO_DEVICE', detail: `Device "${dev}" not found among online devices/simulators.` } };
208
+ return physicalDeviceRefusal(dev, i.ios.bootedSimulators.length || i.ios.availableSimulators.length ? ['ios-simulator'] : []);
209
+ return {
210
+ selected: null,
211
+ reason: `Requested device "${dev}" is not online/available.`,
212
+ alternatives: [],
213
+ preconditions: [],
214
+ willBoot: false,
215
+ blocked: { failureCode: 'NO_DEVICE', detail: `Device "${dev}" not found among online devices/simulators.` },
216
+ };
106
217
  }
107
218
  // 2. Explicit platform, else artifact-constrained platform.
108
219
  const platform = i.requestedPlatform ?? i.artifactPlatform;
@@ -111,30 +222,40 @@ function planTargetCore(i) {
111
222
  if (platform === 'ios')
112
223
  return planIos(i, 'iOS chosen: ');
113
224
  // 3-6. No constraint: pick deterministically. Prefer a platform with an online device,
114
- // then a bootable one; tie → Android (most common QA-first target).
225
+ // then a bootable one; tie > Android (most common QA-first target).
115
226
  const androidOnline = i.android.online.length > 0;
116
227
  const iosBooted = i.ios.bootedSimulators.length > 0;
117
228
  if (androidOnline && !iosBooted)
118
- return planAndroid(i, 'Auto: Android device already online — ');
229
+ return planAndroid(i, 'Auto (Android device already online): ');
119
230
  if (iosBooted && !androidOnline)
120
- return planIos(i, 'Auto: iOS simulator already booted — ');
231
+ return planIos(i, 'Auto (iOS simulator already booted): ');
121
232
  if (androidOnline && iosBooted) {
122
- const a = planAndroid(i, 'Auto: both online, defaulting to Android — ');
233
+ const a = planAndroid(i, 'Auto (both online, defaulting to Android): ');
123
234
  a.alternatives = [...new Set([...a.alternatives, 'ios-simulator'])];
124
235
  return a;
125
236
  }
126
237
  // Nothing online: boot the fastest available (simulator boots faster than an emulator).
127
238
  const viable = platformsViable(i);
128
239
  if (i.ios.availableSimulators.length) {
129
- const p = planIos(i, 'Auto: nothing online — booting a simulator (fastest) — ');
240
+ const p = planIos(i, 'Auto (nothing online, booting a simulator, the fastest option): ');
130
241
  p.alternatives = [...new Set([...p.alternatives, ...viable.filter((v) => v !== 'ios-simulator')])];
131
242
  return p;
132
243
  }
133
244
  if (i.android.avds.length) {
134
- const p = planAndroid(i, 'Auto: nothing online — booting an emulator — ');
245
+ const p = planAndroid(i, 'Auto (nothing online, booting an emulator): ');
135
246
  p.alternatives = [...new Set([...p.alternatives, ...viable.filter((v) => v !== 'android-emulator')])];
136
247
  return p;
137
248
  }
138
- return { selected: null, reason: 'No device or simulator is online or bootable on this machine.', alternatives: [], preconditions: [], willBoot: false, blocked: { failureCode: 'NO_DEVICE', detail: 'No Android emulator/device and no iOS simulator available — set one up (qa_doctor / Xcode).' } };
249
+ return {
250
+ selected: null,
251
+ reason: 'No device or simulator is online or bootable on this machine.',
252
+ alternatives: [],
253
+ preconditions: [],
254
+ willBoot: false,
255
+ blocked: {
256
+ failureCode: 'NO_DEVICE',
257
+ detail: 'No Android emulator/device and no iOS simulator available. Set one up (qa_doctor / Xcode).',
258
+ },
259
+ };
139
260
  }
140
261
  //# sourceMappingURL=targetPlan.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"targetPlan.js","sourceRoot":"","sources":["../../src/core/targetPlan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"targetPlan.js","sourceRoot":"","sources":["../../src/core/targetPlan.ts"],"names":[],"mappings":"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"}