swipium 1.5.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +183 -0
- package/README.md +173 -280
- package/THREAT_MODEL.md +223 -47
- package/dist/appMap/automationLink.js +30 -27
- package/dist/appMap/automationLink.js.map +1 -1
- package/dist/appMap/build.js +47 -21
- package/dist/appMap/build.js.map +1 -1
- package/dist/appMap/codeIndex.js +2 -2
- package/dist/appMap/codeIndex.js.map +1 -1
- package/dist/appMap/featureIndex.js +3 -3
- package/dist/appMap/featureIndex.js.map +1 -1
- package/dist/appMap/featureModel.js +2 -2
- package/dist/appMap/featureModel.js.map +1 -1
- package/dist/appMap/firstRunApply.js +2 -2
- package/dist/appMap/firstRunApply.js.map +1 -1
- package/dist/appMap/issues.js +10 -10
- package/dist/appMap/issues.js.map +1 -1
- package/dist/appMap/migrations.js +5 -5
- package/dist/appMap/migrations.js.map +1 -1
- package/dist/appMap/prelaunch.js +2 -2
- package/dist/appMap/prelaunch.js.map +1 -1
- package/dist/appMap/projectRegistry.js +77 -11
- package/dist/appMap/projectRegistry.js.map +1 -1
- package/dist/appMap/provenance.js +2 -2
- package/dist/appMap/provenance.js.map +1 -1
- package/dist/appMap/query.js +2 -2
- package/dist/appMap/query.js.map +1 -1
- package/dist/appMap/runtimeMerge.js +3 -3
- package/dist/appMap/runtimeMerge.js.map +1 -1
- package/dist/appMap/schema.js +1 -1
- package/dist/appMap/schema.js.map +1 -1
- package/dist/appMap/screenMatch.js +1 -1
- package/dist/appMap/screenMatch.js.map +1 -1
- package/dist/appMap/staticScan.js +17 -17
- package/dist/appMap/staticScan.js.map +1 -1
- package/dist/appMap/store.js +55 -7
- package/dist/appMap/store.js.map +1 -1
- package/dist/appMap/tsAstScan.js +3 -3
- package/dist/appMap/tsAstScan.js.map +1 -1
- package/dist/artifacts/bundletool.js +5 -5
- package/dist/artifacts/bundletool.js.map +1 -1
- package/dist/artifacts/resolve.js +10 -10
- package/dist/artifacts/resolve.js.map +1 -1
- package/dist/automation/capabilities.js +3 -3
- package/dist/automation/capabilities.js.map +1 -1
- package/dist/automation/gestures.js +1 -1
- package/dist/automation/gestures.js.map +1 -1
- package/dist/automation/plan.js +7 -7
- package/dist/automation/plan.js.map +1 -1
- package/dist/automation/report.js +3 -3
- package/dist/automation/report.js.map +1 -1
- package/dist/automation/selectors.js +14 -25
- package/dist/automation/selectors.js.map +1 -1
- package/dist/automation/types.js +1 -1
- package/dist/automation/types.js.map +1 -1
- package/dist/automation/waits.js +5 -5
- package/dist/automation/waits.js.map +1 -1
- package/dist/automation/webview.js +2 -2
- package/dist/automation/webview.js.map +1 -1
- package/dist/automationGen/appiumModel.js +13 -7
- package/dist/automationGen/appiumModel.js.map +1 -1
- package/dist/automationGen/ciEmitter.js +5 -5
- package/dist/automationGen/ciEmitter.js.map +1 -1
- package/dist/automationGen/identifiers.js +224 -0
- package/dist/automationGen/identifiers.js.map +1 -0
- package/dist/automationGen/jsEmitter.js +265 -106
- package/dist/automationGen/jsEmitter.js.map +1 -1
- package/dist/automationGen/packagePatch.js +2 -2
- package/dist/automationGen/packagePatch.js.map +1 -1
- package/dist/automationGen/platformResolve.js +36 -0
- package/dist/automationGen/platformResolve.js.map +1 -0
- package/dist/automationGen/projectProfile.js +71 -26
- package/dist/automationGen/projectProfile.js.map +1 -1
- package/dist/automationGen/pythonEmitter.js +276 -105
- package/dist/automationGen/pythonEmitter.js.map +1 -1
- package/dist/automationGen/readmeEmitter.js +7 -6
- package/dist/automationGen/readmeEmitter.js.map +1 -1
- package/dist/{tools/automationGenerate.js → automationGen/run.js} +72 -113
- package/dist/automationGen/run.js.map +1 -0
- package/dist/automationGen/suitePlan.js +6 -4
- package/dist/automationGen/suitePlan.js.map +1 -1
- package/dist/automationGen/validation.js +20 -8
- package/dist/automationGen/validation.js.map +1 -1
- package/dist/build/parseBuildLog.js +2 -2
- package/dist/build/parseBuildLog.js.map +1 -1
- package/dist/build/plan.js +7 -7
- package/dist/build/plan.js.map +1 -1
- package/dist/ci/preflight.js +13 -4
- package/dist/ci/preflight.js.map +1 -1
- package/dist/cli/gc.js +74 -0
- package/dist/cli/gc.js.map +1 -0
- package/dist/cli/init.js +217 -26
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/main.js +50 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/report.js +218 -0
- package/dist/cli/report.js.map +1 -0
- package/dist/cli/scan.js +35 -14
- package/dist/cli/scan.js.map +1 -1
- package/dist/cli/suite.js +6 -6
- package/dist/cli/suite.js.map +1 -1
- package/dist/cli/verify.js +7 -7
- package/dist/cli/verify.js.map +1 -1
- package/dist/consent/consent.js +162 -5
- package/dist/consent/consent.js.map +1 -1
- package/dist/context/detect.js +45 -14
- package/dist/context/detect.js.map +1 -1
- package/dist/context/findApps.js +6 -6
- package/dist/context/findApps.js.map +1 -1
- package/dist/context/projectRoot.js +174 -19
- package/dist/context/projectRoot.js.map +1 -1
- package/dist/context/scan.js +1 -1
- package/dist/context/scan.js.map +1 -1
- package/dist/core/capabilityGroups.js +90 -0
- package/dist/core/capabilityGroups.js.map +1 -0
- package/dist/core/target.js +3 -3
- package/dist/core/target.js.map +1 -1
- package/dist/core/targetPlan.js +65 -62
- package/dist/core/targetPlan.js.map +1 -1
- package/dist/drivers/DirectDriver.js +300 -36
- package/dist/drivers/DirectDriver.js.map +1 -1
- package/dist/drivers/SimctlDriver.js +120 -7
- package/dist/drivers/SimctlDriver.js.map +1 -1
- package/dist/drivers/WdaDriver.js +350 -50
- package/dist/drivers/WdaDriver.js.map +1 -1
- package/dist/explore/candidates.js +2 -2
- package/dist/explore/candidates.js.map +1 -1
- package/dist/explore/graph.js +5 -5
- package/dist/explore/graph.js.map +1 -1
- package/dist/explore/policy.js +5 -5
- package/dist/explore/policy.js.map +1 -1
- package/dist/explore/runner.js +301 -284
- package/dist/explore/runner.js.map +1 -1
- package/dist/explore/signatures.js +1 -1
- package/dist/featureTesting/executionBootstrap.js +29 -30
- package/dist/featureTesting/executionBootstrap.js.map +1 -1
- package/dist/featureTesting/featureMap.js +2 -2
- package/dist/featureTesting/featureMap.js.map +1 -1
- package/dist/featureTesting/featureScope.js +12 -12
- package/dist/featureTesting/featureScope.js.map +1 -1
- package/dist/featureTesting/mapFeatureScope.js +7 -7
- package/dist/featureTesting/mapFeatureScope.js.map +1 -1
- package/dist/featureTesting/objectiveModel.js +10 -10
- package/dist/featureTesting/objectiveModel.js.map +1 -1
- package/dist/featureTesting/resultMerge.js +6 -6
- package/dist/featureTesting/resultMerge.js.map +1 -1
- package/dist/featureTesting/sources.js +4 -4
- package/dist/featureTesting/sources.js.map +1 -1
- package/dist/featureTesting/suiteBridge.js +1 -1
- package/dist/featureTesting/suiteBridge.js.map +1 -1
- package/dist/featureTesting/synonyms.js +1 -1
- package/dist/featureTesting/synonyms.js.map +1 -1
- package/dist/featureTesting/testCaseFactory.js +11 -11
- package/dist/featureTesting/testCaseFactory.js.map +1 -1
- package/dist/featureTesting/testPlan.js +3 -3
- package/dist/featureTesting/testPlan.js.map +1 -1
- package/dist/firstRun/authStateMachine.js +1 -1
- package/dist/firstRun/authStateMachine.js.map +1 -1
- package/dist/firstRun/classifyScreen.js +5 -5
- package/dist/firstRun/classifyScreen.js.map +1 -1
- package/dist/firstRun/firstRunPlanner.js +11 -11
- package/dist/firstRun/firstRunPlanner.js.map +1 -1
- package/dist/firstRun/firstRunRunner.js +8 -8
- package/dist/firstRun/firstRunRunner.js.map +1 -1
- package/dist/firstRun/generatedDataPolicy.js +9 -9
- package/dist/firstRun/generatedDataPolicy.js.map +1 -1
- package/dist/firstRun/inputPlanner.js +5 -5
- package/dist/firstRun/inputPlanner.js.map +1 -1
- package/dist/firstRun/onboardingStateMachine.js +1 -1
- package/dist/firstRun/onboardingStateMachine.js.map +1 -1
- package/dist/firstRun/paywallPolicy.js +3 -3
- package/dist/firstRun/paywallPolicy.js.map +1 -1
- package/dist/firstRun/types.js +1 -1
- package/dist/firstRun/types.js.map +1 -1
- package/dist/fixtures/catalog.js +33 -3
- package/dist/fixtures/catalog.js.map +1 -1
- package/dist/fixtures/load.js +50 -0
- package/dist/fixtures/load.js.map +1 -0
- package/dist/flows/discover.js +2 -2
- package/dist/flows/discover.js.map +1 -1
- package/dist/flows/generate.js +20 -10
- package/dist/flows/generate.js.map +1 -1
- package/dist/flows/pack.js +3 -3
- package/dist/flows/pack.js.map +1 -1
- package/dist/flows/paths.js +57 -0
- package/dist/flows/paths.js.map +1 -0
- package/dist/flows/repair.js +111 -23
- package/dist/flows/repair.js.map +1 -1
- package/dist/flows/run.js +153 -57
- package/dist/flows/run.js.map +1 -1
- package/dist/flows/schema.js +50 -5
- package/dist/flows/schema.js.map +1 -1
- package/dist/flows/seedExec.js +4 -4
- package/dist/flows/seedExec.js.map +1 -1
- package/dist/flows/templates.js +5 -5
- package/dist/index.js +50 -8
- package/dist/index.js.map +1 -1
- package/dist/issues/classify.js +16 -16
- package/dist/issues/classify.js.map +1 -1
- package/dist/issues/fingerprint.js +24 -4
- package/dist/issues/fingerprint.js.map +1 -1
- package/dist/issues/index.js +94 -31
- package/dist/issues/index.js.map +1 -1
- package/dist/issues/metrics.js +4 -4
- package/dist/issues/metrics.js.map +1 -1
- package/dist/issues/recurrence.js +35 -8
- package/dist/issues/recurrence.js.map +1 -1
- package/dist/issues/report.js +4 -4
- package/dist/issues/report.js.map +1 -1
- package/dist/issues/reportBridge.js +4 -4
- package/dist/issues/reportBridge.js.map +1 -1
- package/dist/issues/schema.js +2 -2
- package/dist/issues/schema.js.map +1 -1
- package/dist/issues/sourceRevision.js +2 -2
- package/dist/issues/sourceRevision.js.map +1 -1
- package/dist/issues/store.js +110 -32
- package/dist/issues/store.js.map +1 -1
- package/dist/lib/abortScope.js +48 -0
- package/dist/lib/abortScope.js.map +1 -0
- package/dist/lib/android.js +75 -7
- package/dist/lib/android.js.map +1 -1
- package/dist/lib/coordSpace.js +1 -1
- package/dist/lib/coordSpace.js.map +1 -1
- package/dist/lib/device.js +32 -7
- package/dist/lib/device.js.map +1 -1
- package/dist/lib/gestures.js +141 -0
- package/dist/lib/gestures.js.map +1 -0
- package/dist/lib/gitignore.js +4 -3
- package/dist/lib/gitignore.js.map +1 -1
- package/dist/lib/image.js +1 -1
- package/dist/lib/image.js.map +1 -1
- package/dist/lib/lockfile.js +370 -31
- package/dist/lib/lockfile.js.map +1 -1
- package/dist/lib/needsInput.js +3 -3
- package/dist/lib/needsInput.js.map +1 -1
- package/dist/lib/png.js +2 -2
- package/dist/lib/png.js.map +1 -1
- package/dist/lib/redact.js +170 -9
- package/dist/lib/redact.js.map +1 -1
- package/dist/lib/result.js +79 -10
- package/dist/lib/result.js.map +1 -1
- package/dist/lib/schemaHash.js +3 -3
- package/dist/lib/schemaHash.js.map +1 -1
- package/dist/lib/sensitive.js +3 -2
- package/dist/lib/sensitive.js.map +1 -1
- package/dist/lib/simctl.js +3 -3
- package/dist/lib/simctl.js.map +1 -1
- package/dist/lib/spawn.js +52 -10
- package/dist/lib/spawn.js.map +1 -1
- package/dist/lib/toolAnnotations.js +114 -0
- package/dist/lib/toolAnnotations.js.map +1 -0
- package/dist/lib/wda.js +294 -15
- package/dist/lib/wda.js.map +1 -1
- package/dist/mobileAudit/checks.js +12 -12
- package/dist/mobileAudit/checks.js.map +1 -1
- package/dist/mobileAudit/evidence.js +4 -4
- package/dist/mobileAudit/evidence.js.map +1 -1
- package/dist/mobileAudit/profiles.js +1 -1
- package/dist/mobileAudit/profiles.js.map +1 -1
- package/dist/mobileAudit/results.js +3 -3
- package/dist/mobileAudit/results.js.map +1 -1
- package/dist/mobileAudit/runner.js +72 -18
- package/dist/mobileAudit/runner.js.map +1 -1
- package/dist/oracle/auth.js +1 -1
- package/dist/oracle/auth.js.map +1 -1
- package/dist/oracle/failures.js +219 -36
- package/dist/oracle/failures.js.map +1 -1
- package/dist/oracle/health.js +63 -17
- package/dist/oracle/health.js.map +1 -1
- package/dist/oracle/locator.js +13 -13
- package/dist/oracle/locator.js.map +1 -1
- package/dist/oracle/record.js +3 -3
- package/dist/oracle/record.js.map +1 -1
- package/dist/orchestration/envelope.js +2 -2
- package/dist/orchestration/envelope.js.map +1 -1
- package/dist/orchestration/goal.js +4 -4
- package/dist/orchestration/goal.js.map +1 -1
- package/dist/orchestration/testThis/execute.js +62 -21
- package/dist/orchestration/testThis/execute.js.map +1 -1
- package/dist/orchestration/testThis/pipeline.js +119 -30
- package/dist/orchestration/testThis/pipeline.js.map +1 -1
- package/dist/orchestration/testThis/plan.js +162 -73
- package/dist/orchestration/testThis/plan.js.map +1 -1
- package/dist/orchestration/testThis/sessionIntent.js +72 -0
- package/dist/orchestration/testThis/sessionIntent.js.map +1 -0
- package/dist/orchestration/testThis/terminal.js +34 -16
- package/dist/orchestration/testThis/terminal.js.map +1 -1
- package/dist/orchestration/testThis/types.js +1 -1
- package/dist/orchestration/testThis/types.js.map +1 -1
- package/dist/plan/plan.js +9 -9
- package/dist/plan/plan.js.map +1 -1
- package/dist/prompts/index.js +22 -22
- package/dist/prompts/index.js.map +1 -1
- package/dist/report/export.js +392 -37
- package/dist/report/export.js.map +1 -1
- package/dist/report/findingsDedupe.js +41 -0
- package/dist/report/findingsDedupe.js.map +1 -0
- package/dist/report/policy.js +7 -4
- package/dist/report/policy.js.map +1 -1
- package/dist/report/qaLevel.js +8 -8
- package/dist/report/qaLevel.js.map +1 -1
- package/dist/report/sarifSources.js +160 -0
- package/dist/report/sarifSources.js.map +1 -0
- package/dist/report/summary.js +2 -2
- package/dist/report/summary.js.map +1 -1
- package/dist/report/testCatalog.js +4 -4
- package/dist/report/testCatalog.js.map +1 -1
- package/dist/report/toolHealth.js +124 -0
- package/dist/report/toolHealth.js.map +1 -0
- package/dist/server.js +472 -45
- package/dist/server.js.map +1 -1
- package/dist/services/automationGenerate.js +8 -2
- package/dist/services/automationGenerate.js.map +1 -1
- package/dist/services/build.js +2 -2
- package/dist/services/build.js.map +1 -1
- package/dist/{tools → services}/flowGenerate.js +29 -13
- package/dist/services/flowGenerate.js.map +1 -0
- package/dist/services/preflight.js +4 -4
- package/dist/services/preflight.js.map +1 -1
- package/dist/services/prepareAndroid.js +46 -8
- package/dist/services/prepareAndroid.js.map +1 -1
- package/dist/services/prepareIos.js +24 -9
- package/dist/services/prepareIos.js.map +1 -1
- package/dist/services/report.js +100 -45
- package/dist/services/report.js.map +1 -1
- package/dist/services/smoke.js +32 -16
- package/dist/services/smoke.js.map +1 -1
- package/dist/services/suiteGenerate.js +28 -3
- package/dist/services/suiteGenerate.js.map +1 -1
- package/dist/services/testSuiteKnowledge.js +40 -27
- package/dist/services/testSuiteKnowledge.js.map +1 -1
- package/dist/session/attach.js +270 -6
- package/dist/session/attach.js.map +1 -1
- package/dist/session/processRegistry.js +317 -48
- package/dist/session/processRegistry.js.map +1 -1
- package/dist/session/progress.js +1 -1
- package/dist/session/retention.js +201 -0
- package/dist/session/retention.js.map +1 -0
- package/dist/session/store.js +275 -48
- package/dist/session/store.js.map +1 -1
- package/dist/snapshot/overlays.js +53 -8
- package/dist/snapshot/overlays.js.map +1 -1
- package/dist/snapshot/parse.js +28 -4
- package/dist/snapshot/parse.js.map +1 -1
- package/dist/snapshot/present.js +11 -5
- package/dist/snapshot/present.js.map +1 -1
- package/dist/snapshot/settle.js +39 -9
- package/dist/snapshot/settle.js.map +1 -1
- package/dist/state/consent.js +99 -0
- package/dist/state/consent.js.map +1 -0
- package/dist/state/profile.js +46 -2
- package/dist/state/profile.js.map +1 -1
- package/dist/suite/compile.js +9 -5
- package/dist/suite/compile.js.map +1 -1
- package/dist/suite/lint.js +4 -4
- package/dist/suite/lint.js.map +1 -1
- package/dist/suite/pom.js +50 -41
- package/dist/suite/pom.js.map +1 -1
- package/dist/suite/secretGuard.js +266 -0
- package/dist/suite/secretGuard.js.map +1 -0
- package/dist/suite/testcase.js +9 -7
- package/dist/suite/testcase.js.map +1 -1
- package/dist/testSuite/exporter.js +4 -4
- package/dist/testSuite/exporter.js.map +1 -1
- package/dist/testSuite/generator.js +13 -9
- package/dist/testSuite/generator.js.map +1 -1
- package/dist/testSuite/history.js +1 -1
- package/dist/testSuite/history.js.map +1 -1
- package/dist/testSuite/issueLinks.js +3 -3
- package/dist/testSuite/issueLinks.js.map +1 -1
- package/dist/testSuite/lint.js +4 -4
- package/dist/testSuite/lint.js.map +1 -1
- package/dist/testSuite/merge.js +5 -5
- package/dist/testSuite/merge.js.map +1 -1
- package/dist/testSuite/schema.js +5 -5
- package/dist/testSuite/schema.js.map +1 -1
- package/dist/testSuite/store.js +3 -3
- package/dist/testSuite/store.js.map +1 -1
- package/dist/testSuite/traceability.js +2 -2
- package/dist/testSuite/traceability.js.map +1 -1
- package/dist/tools/act.js +794 -164
- package/dist/tools/act.js.map +1 -1
- package/dist/tools/agent.js +451 -128
- package/dist/tools/agent.js.map +1 -1
- package/dist/tools/appControl.js +69 -19
- package/dist/tools/appControl.js.map +1 -1
- package/dist/tools/appMap.js +188 -130
- package/dist/tools/appMap.js.map +1 -1
- package/dist/tools/build.js +32 -42
- package/dist/tools/build.js.map +1 -1
- package/dist/tools/bundletool.js +21 -31
- package/dist/tools/bundletool.js.map +1 -1
- package/dist/tools/clearOverlay.js +55 -12
- package/dist/tools/clearOverlay.js.map +1 -1
- package/dist/tools/device.js +76 -24
- package/dist/tools/device.js.map +1 -1
- package/dist/tools/doctor.js +68 -28
- package/dist/tools/doctor.js.map +1 -1
- package/dist/tools/explore.js +41 -47
- package/dist/tools/explore.js.map +1 -1
- package/dist/tools/featureTesting.js +31 -48
- package/dist/tools/featureTesting.js.map +1 -1
- package/dist/tools/firstRun.js +34 -41
- package/dist/tools/firstRun.js.map +1 -1
- package/dist/tools/flow.js +183 -103
- package/dist/tools/flow.js.map +1 -1
- package/dist/tools/flowRepair.js +25 -13
- package/dist/tools/flowRepair.js.map +1 -1
- package/dist/tools/generate.js +52 -89
- package/dist/tools/generate.js.map +1 -1
- package/dist/tools/getArtifact.js +16 -5
- package/dist/tools/getArtifact.js.map +1 -1
- package/dist/tools/health.js +15 -12
- package/dist/tools/health.js.map +1 -1
- package/dist/tools/ios.js +45 -223
- package/dist/tools/ios.js.map +1 -1
- package/dist/tools/issues.js +251 -35
- package/dist/tools/issues.js.map +1 -1
- package/dist/tools/jobs.js +41 -16
- package/dist/tools/jobs.js.map +1 -1
- package/dist/tools/metro.js +36 -35
- package/dist/tools/metro.js.map +1 -1
- package/dist/tools/mobileAudit.js +50 -45
- package/dist/tools/mobileAudit.js.map +1 -1
- package/dist/tools/network.js +31 -14
- package/dist/tools/network.js.map +1 -1
- package/dist/tools/note.js +26 -26
- package/dist/tools/note.js.map +1 -1
- package/dist/tools/prepareIosTarget.js +10 -16
- package/dist/tools/prepareIosTarget.js.map +1 -1
- package/dist/tools/prepareTarget.js +117 -50
- package/dist/tools/prepareTarget.js.map +1 -1
- package/dist/tools/report.js +11 -22
- package/dist/tools/report.js.map +1 -1
- package/dist/tools/resolveArtifact.js +11 -15
- package/dist/tools/resolveArtifact.js.map +1 -1
- package/dist/tools/resolveTarget.js +78 -24
- package/dist/tools/resolveTarget.js.map +1 -1
- package/dist/tools/screenRecord.js +23 -21
- package/dist/tools/screenRecord.js.map +1 -1
- package/dist/tools/screenshot.js +23 -16
- package/dist/tools/screenshot.js.map +1 -1
- package/dist/tools/smoke.js +20 -16
- package/dist/tools/smoke.js.map +1 -1
- package/dist/tools/snapshot.js +155 -118
- package/dist/tools/snapshot.js.map +1 -1
- package/dist/tools/startSession.js +104 -116
- package/dist/tools/startSession.js.map +1 -1
- package/dist/tools/suite.js +72 -43
- package/dist/tools/suite.js.map +1 -1
- package/dist/tools/testSuite.js +30 -20
- package/dist/tools/testSuite.js.map +1 -1
- package/dist/tools/testThis.js +24 -28
- package/dist/tools/testThis.js.map +1 -1
- package/dist/tools/visual.js +686 -210
- package/dist/tools/visual.js.map +1 -1
- package/dist/tools/wait.js +9 -38
- package/dist/tools/wait.js.map +1 -1
- package/dist/tools/wda.js +187 -57
- package/dist/tools/wda.js.map +1 -1
- package/dist/version.js +31 -22
- package/dist/version.js.map +1 -1
- package/dist/visual/ocr.js +53 -6
- package/dist/visual/ocr.js.map +1 -1
- package/dist/visual/provider.js +80 -12
- package/dist/visual/provider.js.map +1 -1
- package/docs/README.md +24 -10
- package/docs/ci-reports.md +328 -0
- package/docs/concepts.md +227 -0
- package/docs/flows.md +153 -0
- package/docs/mcp-server.md +194 -128
- package/docs/physical-devices.md +84 -0
- package/docs/tools.md +812 -152
- package/package.json +3 -2
- package/dist/tools/assertVisual.js +0 -84
- package/dist/tools/assertVisual.js.map +0 -1
- package/dist/tools/automationGenerate.js.map +0 -1
- package/dist/tools/capabilities.js +0 -179
- package/dist/tools/capabilities.js.map +0 -1
- package/dist/tools/detectContext.js +0 -41
- package/dist/tools/detectContext.js.map +0 -1
- package/dist/tools/flowGenerate.js.map +0 -1
- package/dist/tools/history.js +0 -86
- package/dist/tools/history.js.map +0 -1
- package/dist/tools/locator.js +0 -85
- package/dist/tools/locator.js.map +0 -1
- package/dist/tools/permissions.js +0 -174
- package/dist/tools/permissions.js.map +0 -1
- package/dist/tools/plan.js +0 -52
- package/dist/tools/plan.js.map +0 -1
- package/dist/tools/screenInfo.js +0 -76
- package/dist/tools/screenInfo.js.map +0 -1
- package/dist/tools/seed.js +0 -133
- package/dist/tools/seed.js.map +0 -1
- package/dist/tools/state.js +0 -217
- package/dist/tools/state.js.map +0 -1
- package/dist/tools/visualText.js +0 -106
- package/dist/tools/visualText.js.map +0 -1
package/dist/session/attach.js
CHANGED
|
@@ -2,16 +2,115 @@
|
|
|
2
2
|
// "which device" so qa_doctor / qa_prepare_target / UI tools
|
|
3
3
|
// all agree: a session-bound device, the single online device, or "needs selection".
|
|
4
4
|
import { adbDevices } from '../lib/android.js';
|
|
5
|
+
import { run } from '../lib/spawn.js';
|
|
5
6
|
import { DirectDriver } from '../drivers/DirectDriver.js';
|
|
7
|
+
import { SimctlDriver } from '../drivers/SimctlDriver.js';
|
|
8
|
+
import { WdaDriver } from '../drivers/WdaDriver.js';
|
|
9
|
+
import { listSimulators } from '../lib/simctl.js';
|
|
10
|
+
import { checkWda } from '../lib/wda.js';
|
|
11
|
+
import { loadWdaConfig } from '../lib/wdaConfig.js';
|
|
12
|
+
import { isEmulatorSerial } from '../core/targetPlan.js';
|
|
13
|
+
import { qaError } from '../lib/result.js';
|
|
14
|
+
/** PURE: parse `adb shell getprop` output (`[key]: [value]` lines). */
|
|
15
|
+
export function parseGetprop(stdout) {
|
|
16
|
+
const out = {};
|
|
17
|
+
for (const m of stdout.matchAll(/^\[([^\]]+)\]:\s*\[([^\]]*)\]/gm))
|
|
18
|
+
out[m[1]] = m[2];
|
|
19
|
+
return out;
|
|
20
|
+
}
|
|
21
|
+
/** PURE: emulator/boot verdict from a serial + its properties. Emulator = the adb serial
|
|
22
|
+
* pattern OR the qemu flags (`localhost:5555`, `127.0.0.1:NNNN` emulators) OR Genymotion. */
|
|
23
|
+
export function classifyAndroidProps(serial, props) {
|
|
24
|
+
const emulator = isEmulatorSerial(serial) ||
|
|
25
|
+
props['ro.kernel.qemu'] === '1' ||
|
|
26
|
+
props['ro.boot.qemu'] === '1' ||
|
|
27
|
+
/^(goldfish|ranchu)$/.test(props['ro.hardware'] ?? '') ||
|
|
28
|
+
!!props['ro.genymotion.version'] ||
|
|
29
|
+
/^genymotion$/i.test(props['ro.product.manufacturer'] ?? '');
|
|
30
|
+
return { emulator, booted: props['sys.boot_completed'] === '1' };
|
|
31
|
+
}
|
|
32
|
+
/** One `getprop` call > emulator + boot state. */
|
|
33
|
+
export async function probeAndroidDevice(serial) {
|
|
34
|
+
try {
|
|
35
|
+
const r = await run('adb', ['-s', serial, 'shell', 'getprop'], { timeoutMs: 8000 });
|
|
36
|
+
const props = parseGetprop(r.stdout);
|
|
37
|
+
if (r.code !== 0 || Object.keys(props).length === 0) {
|
|
38
|
+
return { serial, propsRead: false, emulator: isEmulatorSerial(serial), booted: false };
|
|
39
|
+
}
|
|
40
|
+
return { serial, propsRead: true, ...classifyAndroidProps(serial, props) };
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return { serial, propsRead: false, emulator: isEmulatorSerial(serial), booted: false };
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** Split online serials by policy. Callers of planTarget pass `emulators` as
|
|
47
|
+
* TargetInputs.android.emulators so non-`emulator-N` emulators are not refused as physical. */
|
|
48
|
+
export async function classifyAndroidSerials(serials) {
|
|
49
|
+
const probes = await Promise.all(serials.map(probeAndroidDevice));
|
|
50
|
+
return {
|
|
51
|
+
emulators: probes.filter((p) => p.emulator).map((p) => p.serial),
|
|
52
|
+
physical: probes.filter((p) => p.propsRead && !p.emulator).map((p) => p.serial),
|
|
53
|
+
booting: probes.filter((p) => p.propsRead && p.emulator && !p.booted).map((p) => p.serial),
|
|
54
|
+
unknown: probes.filter((p) => !p.propsRead).map((p) => p.serial),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/** Emulator serials among `online`: `emulator-N` directly, any other serial via one getprop
|
|
58
|
+
* probe (ro.kernel.qemu / ro.boot.qemu / Genymotion). Feed to TargetInputs.android.emulators. */
|
|
59
|
+
export async function verifiedEmulatorSerials(online) {
|
|
60
|
+
const verdicts = await Promise.all(online.map(async (s) => isEmulatorSerial(s) || (await probeAndroidDevice(s)).emulator));
|
|
61
|
+
return online.filter((_, i) => verdicts[i]);
|
|
62
|
+
}
|
|
63
|
+
/** Shared "why is there no driver" answer for tools: the typed refusal when getDriver saw an
|
|
64
|
+
* online device it may not bind (physical / still booting), else undefined so the caller's
|
|
65
|
+
* generic "No device attached" stands. Usage: `return blockedDeviceResult(blocked) ?? qaError(…)`. */
|
|
66
|
+
export function blockedDeviceResult(blocked) {
|
|
67
|
+
if (!blocked)
|
|
68
|
+
return undefined;
|
|
69
|
+
const notReady = blocked.failureCode === 'DEVICE_NOT_READY';
|
|
70
|
+
return qaError({
|
|
71
|
+
what: blocked.detail,
|
|
72
|
+
changedState: false,
|
|
73
|
+
retrySafe: notReady,
|
|
74
|
+
failureCode: blocked.failureCode,
|
|
75
|
+
nextSteps: blocked.nextSteps?.length
|
|
76
|
+
? blocked.nextSteps
|
|
77
|
+
: notReady
|
|
78
|
+
? ['Wait for the emulator to finish booting, then retry.']
|
|
79
|
+
: ['Start an Android emulator (qa_prepare_target boots one), then retry.'],
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/** PURE: the typed refusal for a probed device, or null when it may be bound. Same policy
|
|
83
|
+
* as core/targetPlan (PHYSICAL_DEVICE_UNSUPPORTED) plus a boot-completed gate. */
|
|
84
|
+
export function attachBlocker(p) {
|
|
85
|
+
if (!p.propsRead) {
|
|
86
|
+
return {
|
|
87
|
+
failureCode: 'DEVICE_NOT_READY',
|
|
88
|
+
detail: `Could not read device properties from ${p.serial} (offline, unauthorized, or still starting). Wait for it to come online, then retry.`,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
if (!p.emulator) {
|
|
92
|
+
return {
|
|
93
|
+
failureCode: 'PHYSICAL_DEVICE_UNSUPPORTED',
|
|
94
|
+
detail: `Physical device ${p.serial} is online but refused: Swipium is simulator/emulator-only by policy (docs/physical-devices.md). Use an emulator.`,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
if (!p.booted) {
|
|
98
|
+
return {
|
|
99
|
+
failureCode: 'DEVICE_NOT_READY',
|
|
100
|
+
detail: `Emulator ${p.serial} is still booting (sys.boot_completed != 1). Wait for boot to finish, then retry.`,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
6
105
|
/** TEST SEAM (P1 §6). When set, getDriver() binds the driver this factory returns instead of
|
|
7
|
-
* discovering a real device
|
|
106
|
+
* discovering a real device, so handler-level tests can drive tools with a fake driver and no
|
|
8
107
|
* adb. Never set in production code paths; a no-op unless a test installs it. */
|
|
9
108
|
let testDriverFactory;
|
|
10
109
|
export function setDriverFactoryForTests(factory) {
|
|
11
110
|
testDriverFactory = factory;
|
|
12
111
|
}
|
|
13
112
|
export async function resolveDevice(session, prefer) {
|
|
14
|
-
// Test-isolation hook
|
|
113
|
+
// Test-isolation hook: when set, device auto-discovery is
|
|
15
114
|
// disabled so "no device" tests assert no-device behavior even on a machine with a live emulator.
|
|
16
115
|
if (process.env.SWIPIUM_DISABLE_DEVICE_DISCOVERY) {
|
|
17
116
|
return { sessionDevice: undefined, available: [], effective: undefined, needSelection: false, source: 'none' };
|
|
@@ -39,10 +138,20 @@ export function bindDevice(session, serial) {
|
|
|
39
138
|
return driver;
|
|
40
139
|
}
|
|
41
140
|
export async function getDriver(session) {
|
|
42
|
-
if (session.driver)
|
|
141
|
+
if (session.driver) {
|
|
142
|
+
// A rehydrated WDA session running on the simctl fallback retries WDA (throttled). A brief
|
|
143
|
+
// outage during rehydrate must not leave the session downgraded for its whole life.
|
|
144
|
+
if (session.transportFallback && session.driver.kind !== 'simulator')
|
|
145
|
+
session.transportFallback = undefined; // re-attached explicitly
|
|
146
|
+
if (session.transportFallback) {
|
|
147
|
+
const upgraded = await retryWdaTransport(session);
|
|
148
|
+
if (upgraded)
|
|
149
|
+
return { driver: upgraded, rehydrated: true, note: WDA_RESTORED_NOTE };
|
|
150
|
+
}
|
|
43
151
|
return { driver: session.driver, rehydrated: false };
|
|
152
|
+
}
|
|
44
153
|
if (testDriverFactory) {
|
|
45
|
-
// Tests own device resolution entirely
|
|
154
|
+
// Tests own device resolution entirely. Never fall through to real adb discovery.
|
|
46
155
|
const driver = testDriverFactory(session);
|
|
47
156
|
if (!driver)
|
|
48
157
|
return { driver: undefined, rehydrated: false, needSelection: false };
|
|
@@ -50,14 +159,169 @@ export async function getDriver(session) {
|
|
|
50
159
|
session.device = session.device ?? driver.currentDevice() ?? 'test-device';
|
|
51
160
|
return { driver, rehydrated: false };
|
|
52
161
|
}
|
|
162
|
+
// A session that already has a device is only ever re-bound to THAT device (and platform):
|
|
163
|
+
// an iOS simulator UDID never falls through to adb discovery (which would bind a lone Android
|
|
164
|
+
// emulator and overwrite session.device), and an offline Android serial never silently
|
|
165
|
+
// becomes a different online one.
|
|
166
|
+
// The persisted transport (state.json driverKind) is authoritative; the UDID shape is the fallback
|
|
167
|
+
// for sessions persisted before driverKind existed.
|
|
168
|
+
const persistedIos = session.driverKind === 'wda' || session.driverKind === 'simulator';
|
|
169
|
+
const persistedAndroid = session.driverKind === 'direct';
|
|
170
|
+
if (session.device && (persistedIos || (!persistedAndroid && isSimulatorUdid(session.device))))
|
|
171
|
+
return rebindIosSimulator(session, session.device);
|
|
53
172
|
const res = await resolveDevice(session);
|
|
173
|
+
if (session.device && res.effective && res.effective !== session.device) {
|
|
174
|
+
return {
|
|
175
|
+
driver: undefined,
|
|
176
|
+
rehydrated: false,
|
|
177
|
+
needSelection: false,
|
|
178
|
+
blocked: {
|
|
179
|
+
failureCode: 'DEVICE_NOT_READY',
|
|
180
|
+
detail: `This session's device ${session.device} is not online. It was NOT re-bound to ${res.effective} (a different device).`,
|
|
181
|
+
nextSteps: [
|
|
182
|
+
`Bring ${session.device} back online, or switch deliberately with qa_prepare_target device="${res.effective}" (or start a new session).`,
|
|
183
|
+
],
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
}
|
|
54
187
|
if (res.effective) {
|
|
188
|
+
// H6: never auto-bind a physical phone or a still-booting emulator (same policy as
|
|
189
|
+
// planTarget, enforced here too because this path bypasses the target planner).
|
|
190
|
+
const blocked = attachBlocker(await probeAndroidDevice(res.effective));
|
|
191
|
+
if (blocked)
|
|
192
|
+
return { driver: undefined, rehydrated: false, needSelection: false, blocked };
|
|
55
193
|
bindDevice(session, res.effective);
|
|
56
194
|
session.lastSnapshot = undefined; // refs invalid after (re)bind
|
|
57
195
|
return { driver: session.driver, rehydrated: true };
|
|
58
196
|
}
|
|
59
197
|
return { driver: undefined, rehydrated: false, needSelection: res.needSelection };
|
|
60
198
|
}
|
|
61
|
-
|
|
62
|
-
|
|
199
|
+
const SIMULATOR_UDID_RE = /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i;
|
|
200
|
+
/** iOS simulator UDIDs are UUIDs; adb serials never are. */
|
|
201
|
+
export function isSimulatorUdid(device) {
|
|
202
|
+
return !!device && SIMULATOR_UDID_RE.test(device);
|
|
203
|
+
}
|
|
204
|
+
/** Test seams for the iOS rebind (listSimulators / WDA reachability). */
|
|
205
|
+
let iosProbe = {
|
|
206
|
+
listSimulators,
|
|
207
|
+
wdaReachable: async (url) => !!(await checkWda(url, 1500).catch(() => ({ reachable: false }))).reachable,
|
|
208
|
+
};
|
|
209
|
+
export function setIosProbeForTests(probe) {
|
|
210
|
+
iosProbe = {
|
|
211
|
+
listSimulators: probe?.listSimulators ?? listSimulators,
|
|
212
|
+
wdaReachable: probe?.wdaReachable ?? (async (url) => !!(await checkWda(url, 1500).catch(() => ({ reachable: false }))).reachable),
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
/** The WDA URL this session last attached successfully for `udid` (persisted mutation ledger). */
|
|
216
|
+
function lastWdaUrlFor(session, udid) {
|
|
217
|
+
for (let i = session.mutations.length - 1; i >= 0; i--) {
|
|
218
|
+
const m = session.mutations[i];
|
|
219
|
+
if (m.action !== 'wda_attach' || m.status !== 'executed')
|
|
220
|
+
continue;
|
|
221
|
+
const t = (m.target ?? {});
|
|
222
|
+
if (typeof t.webDriverAgentUrl !== 'string')
|
|
223
|
+
continue;
|
|
224
|
+
if (t.udid != null && t.udid !== udid)
|
|
225
|
+
continue;
|
|
226
|
+
return t.webDriverAgentUrl;
|
|
227
|
+
}
|
|
228
|
+
return undefined;
|
|
229
|
+
}
|
|
230
|
+
/** Re-bind a rehydrated iOS session to ITS simulator: WDA (structured) when the session had
|
|
231
|
+
* attached WDA and that endpoint is reachable again, else SimctlDriver (visual/lifecycle). A
|
|
232
|
+
* simulator that is not booted is a typed DEVICE_NOT_READY, never a fallback to another device. */
|
|
233
|
+
async function rebindIosSimulator(session, udid) {
|
|
234
|
+
const sims = await iosProbe.listSimulators().catch(() => []);
|
|
235
|
+
const sim = sims.find((x) => x.udid.toUpperCase() === udid.toUpperCase());
|
|
236
|
+
if (!sim || !/^booted$/i.test(sim.state)) {
|
|
237
|
+
return {
|
|
238
|
+
driver: undefined,
|
|
239
|
+
rehydrated: false,
|
|
240
|
+
needSelection: false,
|
|
241
|
+
blocked: {
|
|
242
|
+
failureCode: 'DEVICE_NOT_READY',
|
|
243
|
+
detail: sim
|
|
244
|
+
? `iOS simulator ${sim.name} (${udid}) is not booted (state: ${sim.state}). This session stays bound to it; nothing else was attached.`
|
|
245
|
+
: `iOS simulator ${udid} was not found among available simulators. This session stays bound to it; nothing else was attached.`,
|
|
246
|
+
nextSteps: [`Boot it with qa_ios action:"boot" device:"${udid}" (or qa_prepare_ios_target), then retry.`],
|
|
247
|
+
},
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
// Persisted transport first: a session that ran on WDA re-binds to ITS persisted WDA URL; one that
|
|
251
|
+
// ran on simctl stays on simctl. Only a legacy state.json (no driverKind) falls back to the ledger.
|
|
252
|
+
const wdaUrl = session.driverKind === 'wda'
|
|
253
|
+
? (session.wdaUrl ?? lastWdaUrlFor(session, udid))
|
|
254
|
+
: session.driverKind === 'simulator'
|
|
255
|
+
? undefined
|
|
256
|
+
: lastWdaUrlFor(session, udid);
|
|
257
|
+
let driver;
|
|
258
|
+
let note;
|
|
259
|
+
if (wdaUrl && (await iosProbe.wdaReachable(wdaUrl))) {
|
|
260
|
+
driver = wdaDriverFor(session, wdaUrl, udid);
|
|
261
|
+
session.transportFallback = undefined;
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
driver = new SimctlDriver(udid);
|
|
265
|
+
if (session.driverKind === 'wda' && wdaUrl) {
|
|
266
|
+
// Persisted transport is WDA but it is unreachable right now: run on simctl for the moment,
|
|
267
|
+
// but keep driverKind/wdaUrl as persisted (store.writeState skips the sync while this is
|
|
268
|
+
// set) and retry WDA on the next getDriver calls.
|
|
269
|
+
const now = Date.now();
|
|
270
|
+
session.transportFallback = { wanted: 'wda', wdaUrl, since: now, lastProbeAt: now };
|
|
271
|
+
note = wdaFallbackNote(wdaUrl);
|
|
272
|
+
if (!session.workarounds.includes(note))
|
|
273
|
+
session.workarounds.push(note);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
session.driver = driver;
|
|
277
|
+
session.lastSnapshot = undefined; // refs invalid after (re)bind
|
|
278
|
+
return { driver, rehydrated: true, ...(note ? { note } : {}) };
|
|
279
|
+
}
|
|
280
|
+
// reuseRunningApp > forceAppLaunch:false + shouldTerminateApp:false: a rehydrate must never
|
|
281
|
+
// terminate + relaunch the app under test (see createWdaSession).
|
|
282
|
+
function wdaDriverFor(session, wdaUrl, udid) {
|
|
283
|
+
const cfg = loadWdaConfig(session.root);
|
|
284
|
+
return new WdaDriver(wdaUrl, {
|
|
285
|
+
udid,
|
|
286
|
+
bundleId: session.appId,
|
|
287
|
+
capabilities: cfg?.capabilities,
|
|
288
|
+
settings: cfg?.settings,
|
|
289
|
+
reuseRunningApp: true,
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
/** Minimum gap between WDA re-probes while a session runs on the simctl fallback. */
|
|
293
|
+
export const WDA_RETRY_INTERVAL_MS = 10_000;
|
|
294
|
+
const wdaFallbackNote = (wdaUrl) => `WDA at ${wdaUrl} was unreachable when this iOS session was re-attached; running on the simctl fallback ` +
|
|
295
|
+
`(visual/lifecycle only; no structured snapshot). The session stays a WDA session and WDA is retried ` +
|
|
296
|
+
`automatically; or re-attach with qa_wda.`;
|
|
297
|
+
export const WDA_RESTORED_NOTE = 'WDA is reachable again. This session is back on its WDA transport (previous @eN refs are invalid).';
|
|
298
|
+
/** Re-probe the persisted WDA endpoint of a fallback session (throttled); rebind on success. */
|
|
299
|
+
async function retryWdaTransport(session) {
|
|
300
|
+
const fb = session.transportFallback;
|
|
301
|
+
if (!fb || !session.device)
|
|
302
|
+
return undefined;
|
|
303
|
+
const now = Date.now();
|
|
304
|
+
if (now - fb.lastProbeAt < WDA_RETRY_INTERVAL_MS)
|
|
305
|
+
return undefined;
|
|
306
|
+
fb.lastProbeAt = now;
|
|
307
|
+
if (!(await iosProbe.wdaReachable(fb.wdaUrl).catch(() => false)))
|
|
308
|
+
return undefined;
|
|
309
|
+
const driver = wdaDriverFor(session, fb.wdaUrl, session.device);
|
|
310
|
+
session.driver = driver;
|
|
311
|
+
session.transportFallback = undefined;
|
|
312
|
+
session.lastSnapshot = undefined;
|
|
313
|
+
return driver;
|
|
314
|
+
}
|
|
315
|
+
/** Post-restart reattach note, platform-aware: iOS sessions relaunch via qa_prepare_ios_target
|
|
316
|
+
* (qa_prepare_target is the Android/Expo path). iOS = an iOS driver (simctl / WDA) or a
|
|
317
|
+
* simulator-UDID device. */
|
|
318
|
+
export function rehydrateNote(session) {
|
|
319
|
+
const driver = session?.driver;
|
|
320
|
+
const ios = driver instanceof SimctlDriver || driver instanceof WdaDriver || isSimulatorUdid(session?.device);
|
|
321
|
+
return ('Note: reattached the device transport after a restart. The app may not be in the ' +
|
|
322
|
+
`foreground (relaunch with ${ios ? 'qa_prepare_ios_target' : 'qa_prepare_target'}) and previous @eN refs are invalid (re-run qa_snapshot).`);
|
|
323
|
+
}
|
|
324
|
+
/** Platform-neutral form for callers without the session at hand (prefer rehydrateNote(session)). */
|
|
325
|
+
export const REHYDRATE_NOTE = 'Note: reattached the device transport after a restart. The app may not be in the ' +
|
|
326
|
+
'foreground (relaunch with qa_prepare_target on Android, qa_prepare_ios_target on iOS) and previous @eN refs are invalid (re-run qa_snapshot).';
|
|
63
327
|
//# sourceMappingURL=attach.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach.js","sourceRoot":"","sources":["../../src/session/attach.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"attach.js","sourceRoot":"","sources":["../../src/session/attach.ts"],"names":[],"mappings":"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"}
|