@skyramp/mcp 0.2.6 → 0.2.8-rc.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.
Files changed (248) hide show
  1. package/build/commands/commandLibrary.d.ts +12 -0
  2. package/build/commands/recommendTestsAndExecuteCommand.d.ts +2 -0
  3. package/build/commands/testThisEndpointCommand.d.ts +2 -0
  4. package/build/index.d.ts +2 -0
  5. package/build/index.js +6 -4
  6. package/build/playwright/PlaywrightTraceService.d.ts +32 -0
  7. package/build/playwright/index.d.ts +3 -0
  8. package/build/playwright/registerPlaywrightTools.d.ts +8 -0
  9. package/build/playwright/registerPlaywrightTools.js +12 -11
  10. package/build/playwright/traceRecordingPrompt.d.ts +13 -0
  11. package/build/playwright/traceRecordingPrompt.js +3 -11
  12. package/build/prompts/code-reuse.d.ts +1 -0
  13. package/build/prompts/enhance-assertions/contractProviderAssertionsPrompt.d.ts +2 -0
  14. package/build/prompts/enhance-assertions/integrationAssertionsPrompt.d.ts +2 -0
  15. package/build/prompts/enhance-assertions/sharedAssertionRules.d.ts +15 -0
  16. package/build/prompts/enhance-assertions/uiAssertionsPrompt.d.ts +2 -0
  17. package/build/prompts/enhance-assertions/uiAssertionsPrompt.js +24 -5
  18. package/build/prompts/fix-error-prompt.d.ts +1 -0
  19. package/build/prompts/initialize-workspace/initializeWorkspacePrompt.d.ts +1 -0
  20. package/build/prompts/modularization/integration-test-modularization.d.ts +1 -0
  21. package/build/prompts/modularization/ui-test-modularization.d.ts +1 -0
  22. package/build/prompts/personas.d.ts +21 -0
  23. package/build/prompts/pom-aware-code-reuse.d.ts +1 -0
  24. package/build/prompts/startTraceCollectionPrompts.d.ts +2 -0
  25. package/build/prompts/sut-setup/modes/adaptWorkflowPrompt.d.ts +2 -0
  26. package/build/prompts/sut-setup/modes/adaptWorkflowPrompt.js +114 -0
  27. package/build/prompts/sut-setup/modes/dockerComposePrompt.d.ts +2 -0
  28. package/build/prompts/sut-setup/modes/dockerComposePrompt.js +292 -0
  29. package/build/prompts/sut-setup/shared.d.ts +39 -0
  30. package/build/prompts/sut-setup/shared.js +132 -0
  31. package/build/prompts/test-maintenance/actionsInstructions.d.ts +35 -0
  32. package/build/prompts/test-maintenance/drift-analysis-prompt.d.ts +4 -0
  33. package/build/prompts/test-maintenance/driftAnalysisSections.d.ts +13 -0
  34. package/build/prompts/test-maintenance/driftAnalysisSections.js +9 -3
  35. package/build/prompts/test-recommendation/analysisOutputPrompt.d.ts +84 -0
  36. package/build/prompts/test-recommendation/analysisOutputPrompt.js +1 -1
  37. package/build/prompts/test-recommendation/analysisOutputPrompt.test.d.ts +1 -0
  38. package/build/prompts/test-recommendation/analysisOutputPrompt.test.js +1 -0
  39. package/build/prompts/test-recommendation/diffExecutionPlan.d.ts +17 -0
  40. package/build/prompts/test-recommendation/diffExecutionPlan.js +83 -18
  41. package/build/prompts/test-recommendation/fullRepoCatalog.d.ts +7 -0
  42. package/build/prompts/test-recommendation/mergeEnrichedScenarios.test.d.ts +1 -0
  43. package/build/prompts/test-recommendation/mergeEnrichedScenarios.test.js +1 -0
  44. package/build/prompts/test-recommendation/promptPlan.d.ts +203 -0
  45. package/build/prompts/test-recommendation/promptPlan.test.d.ts +1 -0
  46. package/build/prompts/test-recommendation/recommendationSections.d.ts +35 -0
  47. package/build/prompts/test-recommendation/recommendationShared.d.ts +31 -0
  48. package/build/prompts/test-recommendation/registerRecommendTestsPrompt.d.ts +7 -0
  49. package/build/prompts/test-recommendation/scopeAssessment.d.ts +55 -0
  50. package/build/prompts/test-recommendation/scopeAssessment.js +2 -2
  51. package/build/prompts/test-recommendation/scopeAssessment.test.d.ts +1 -0
  52. package/build/prompts/test-recommendation/scopeAssessment.test.js +1 -0
  53. package/build/prompts/test-recommendation/test-recommendation-prompt.d.ts +6 -0
  54. package/build/prompts/test-recommendation/test-recommendation-prompt.js +4 -4
  55. package/build/prompts/test-recommendation/test-recommendation-prompt.test.d.ts +1 -0
  56. package/build/prompts/test-recommendation/test-recommendation-prompt.test.js +97 -99
  57. package/build/prompts/testbot/testbot-prompts.d.ts +26 -0
  58. package/build/prompts/testbot/testbot-prompts.js +301 -46
  59. package/build/prompts/testbot/testbot-prompts.test.d.ts +1 -0
  60. package/build/prompts/testbot/testbot-prompts.test.js +109 -117
  61. package/build/resources/analysisResources.d.ts +17 -0
  62. package/build/resources/progressResource.d.ts +2 -0
  63. package/build/resources/sutSetupResource.d.ts +2 -0
  64. package/build/resources/sutSetupResource.js +45 -0
  65. package/build/resources/testbotResource.d.ts +2 -0
  66. package/build/resources/testbotResource.js +2 -2
  67. package/build/services/AnalyticsService.d.ts +13 -0
  68. package/build/services/AnalyticsService.test.d.ts +1 -0
  69. package/build/services/AnalyticsService.test.js +86 -0
  70. package/build/services/ModularizationService.d.ts +11 -0
  71. package/build/services/ScenarioGenerationService.d.ts +37 -0
  72. package/build/services/ScenarioGenerationService.integration.test.d.ts +1 -0
  73. package/build/services/ScenarioGenerationService.integration.test.js +4 -0
  74. package/build/services/ScenarioGenerationService.test.d.ts +1 -0
  75. package/build/services/TestDiscoveryService.d.ts +128 -0
  76. package/build/services/TestDiscoveryService.js +22 -12
  77. package/build/services/TestDiscoveryService.test.d.ts +1 -0
  78. package/build/services/TestDiscoveryService.test.js +4 -3
  79. package/build/services/TestExecutionService.d.ts +55 -0
  80. package/build/services/TestExecutionService.js +158 -26
  81. package/build/services/TestExecutionService.test.d.ts +1 -0
  82. package/build/services/TestExecutionService.test.js +339 -25
  83. package/build/services/TestGenerationService.d.ts +56 -0
  84. package/build/services/TestGenerationService.test.d.ts +1 -0
  85. package/build/services/TestGenerationService.test.js +10 -8
  86. package/build/services/containerEnv.d.ts +14 -0
  87. package/build/tool-phase-coverage.test.d.ts +1 -0
  88. package/build/tool-phase-coverage.test.js +2 -0
  89. package/build/tool-phases.d.ts +38 -0
  90. package/build/tools/auth/loginTool.d.ts +2 -0
  91. package/build/tools/auth/logoutTool.d.ts +2 -0
  92. package/build/tools/code-refactor/codeReuseTool.d.ts +2 -0
  93. package/build/tools/code-refactor/enhanceAssertionsTool.d.ts +2 -0
  94. package/build/tools/code-refactor/modularizationTool.d.ts +2 -0
  95. package/build/tools/executeSkyrampTestTool.d.ts +2 -0
  96. package/build/tools/executeSkyrampTestTool.js +26 -7
  97. package/build/tools/fixErrorTool.d.ts +2 -0
  98. package/build/tools/generate-tests/generateBatchScenarioRestTool.d.ts +45 -0
  99. package/build/tools/generate-tests/generateBatchScenarioRestTool.js +1 -1
  100. package/build/tools/generate-tests/generateBatchScenarioRestTool.test.d.ts +1 -0
  101. package/build/tools/generate-tests/generateBatchScenarioRestTool.test.js +11 -9
  102. package/build/tools/generate-tests/generateContractRestTool.d.ts +31 -0
  103. package/build/tools/generate-tests/generateE2ERestTool.d.ts +13 -0
  104. package/build/tools/generate-tests/generateFuzzRestTool.d.ts +10 -0
  105. package/build/tools/generate-tests/generateIntegrationRestTool.d.ts +16 -0
  106. package/build/tools/generate-tests/generateLoadRestTool.d.ts +18 -0
  107. package/build/tools/generate-tests/generateLoadRestTool.test.d.ts +1 -0
  108. package/build/tools/generate-tests/generateMockRestTool.d.ts +64 -0
  109. package/build/tools/generate-tests/generateSmokeRestTool.d.ts +8 -0
  110. package/build/tools/generate-tests/generateUIRestTool.d.ts +14 -0
  111. package/build/tools/generate-tests/generateUIRestTool.js +1 -1
  112. package/build/tools/generate-tests/loadTestSchema.d.ts +39 -0
  113. package/build/tools/one-click/oneClickTool.d.ts +11 -0
  114. package/build/tools/submitReportTool.d.ts +394 -0
  115. package/build/tools/submitReportTool.js +250 -41
  116. package/build/tools/submitReportTool.test.d.ts +1 -0
  117. package/build/tools/submitReportTool.test.js +511 -55
  118. package/build/tools/test-management/actionsTool.d.ts +10 -0
  119. package/build/tools/test-management/actionsTool.js +21 -7
  120. package/build/tools/test-management/analyzeChangesTool.d.ts +27 -0
  121. package/build/tools/test-management/analyzeChangesTool.js +150 -48
  122. package/build/tools/test-management/analyzeChangesTool.test.d.ts +1 -0
  123. package/build/tools/test-management/analyzeChangesTool.test.js +95 -78
  124. package/build/tools/test-management/analyzeTestHealthTool.d.ts +2 -0
  125. package/build/tools/test-management/analyzeTestHealthTool.js +16 -9
  126. package/build/tools/test-management/index.d.ts +3 -0
  127. package/build/tools/test-management/index.js +0 -1
  128. package/build/tools/trace/resolveSaveStoragePath.d.ts +7 -0
  129. package/build/tools/trace/resolveSaveStoragePath.test.d.ts +1 -0
  130. package/build/tools/trace/resolveSessionPaths.d.ts +40 -0
  131. package/build/tools/trace/resolveSessionPaths.test.d.ts +1 -0
  132. package/build/tools/trace/sessionState.d.ts +2 -0
  133. package/build/tools/trace/sessionState.test.d.ts +1 -0
  134. package/build/tools/trace/startTraceCollectionTool.d.ts +2 -0
  135. package/build/tools/trace/stopTraceCollectionTool.d.ts +2 -0
  136. package/build/tools/workspace/initScanWorkspaceTool.d.ts +4 -0
  137. package/build/tools/workspace/initializeWorkspaceTool.d.ts +2 -0
  138. package/build/tools/workspace/initializeWorkspaceTool.js +39 -22
  139. package/build/tools/workspace/initializeWorkspaceTool.test.d.ts +1 -0
  140. package/build/tools/workspace/initializeWorkspaceTool.test.js +134 -0
  141. package/build/tools/workspace/serviceUpsert.d.ts +12 -0
  142. package/build/tools/workspace/serviceUpsert.js +23 -0
  143. package/build/tools/workspace/serviceUpsert.test.d.ts +1 -0
  144. package/build/tools/workspace/serviceUpsert.test.js +50 -0
  145. package/build/types/OneClickCommands.d.ts +68 -0
  146. package/build/types/RepositoryAnalysis.d.ts +3004 -0
  147. package/build/types/TestAnalysis.d.ts +97 -0
  148. package/build/types/TestExecution.d.ts +63 -0
  149. package/build/types/TestExecution.js +11 -1
  150. package/build/types/TestRecommendation.d.ts +12 -0
  151. package/build/types/TestTypes.d.ts +234 -0
  152. package/build/types/TestbotReport.d.ts +68 -0
  153. package/build/types/TestbotReport.js +1 -0
  154. package/build/types/index.d.ts +4 -0
  155. package/build/types/index.js +3 -0
  156. package/build/utils/AnalysisStateManager.d.ts +242 -0
  157. package/build/utils/AnalysisStateManager.js +144 -3
  158. package/build/utils/AnalysisStateManager.test.d.ts +1 -0
  159. package/build/utils/AnalysisStateManager.test.js +98 -0
  160. package/build/utils/analyze-openapi.d.ts +1 -0
  161. package/build/utils/branchDiff.d.ts +18 -0
  162. package/build/utils/dartRouteExtractor.d.ts +45 -0
  163. package/build/utils/dartRouteExtractor.test.d.ts +1 -0
  164. package/build/utils/docker.d.ts +19 -0
  165. package/build/utils/docker.test.d.ts +1 -0
  166. package/build/utils/docker.test.js +10 -9
  167. package/build/utils/featureFlags.d.ts +37 -0
  168. package/build/utils/featureFlags.test.d.ts +1 -0
  169. package/build/utils/gitStaging.d.ts +24 -0
  170. package/build/utils/gitStaging.test.d.ts +1 -0
  171. package/build/utils/gitStaging.test.js +13 -7
  172. package/build/utils/httpDefaults.d.ts +10 -0
  173. package/build/utils/httpDefaults.test.d.ts +1 -0
  174. package/build/utils/initAgent.d.ts +36 -0
  175. package/build/utils/language-helper.d.ts +6 -0
  176. package/build/utils/logger.d.ts +11 -0
  177. package/build/utils/normalizeParams.d.ts +14 -0
  178. package/build/utils/normalizeSkyrampImports.d.ts +13 -0
  179. package/build/utils/pr-comment-parser.d.ts +31 -0
  180. package/build/utils/pr-comment-parser.test.d.ts +1 -0
  181. package/build/utils/pr-comment-parser.test.js +6 -5
  182. package/build/utils/projectMetadata.d.ts +15 -0
  183. package/build/utils/projectMetadata.test.d.ts +1 -0
  184. package/build/utils/proxy-terminal.d.ts +2 -0
  185. package/build/utils/repoScanner.d.ts +27 -0
  186. package/build/utils/repoScanner.test.d.ts +1 -0
  187. package/build/utils/routeParsers.d.ts +53 -0
  188. package/build/utils/routeParsers.js +31 -38
  189. package/build/utils/routeParsers.test.d.ts +1 -0
  190. package/build/utils/scenarioDrafting.d.ts +71 -0
  191. package/build/utils/scenarioDrafting.js +23 -1
  192. package/build/utils/scenarioDrafting.test.d.ts +1 -0
  193. package/build/utils/skyrampMdContent.d.ts +5 -0
  194. package/build/utils/sourceRouteExtractor.d.ts +48 -0
  195. package/build/utils/sourceRouteExtractor.test.d.ts +1 -0
  196. package/build/utils/telemetry.d.ts +32 -0
  197. package/build/utils/telemetry.test.d.ts +1 -0
  198. package/build/utils/trace-parser.d.ts +32 -0
  199. package/build/utils/trace-parser.test.d.ts +6 -0
  200. package/build/utils/uiPageEnumerator.d.ts +146 -0
  201. package/build/utils/uiPageEnumerator.js +58 -14
  202. package/build/utils/uiPageEnumerator.test.d.ts +1 -0
  203. package/build/utils/uiPageEnumerator.test.js +223 -43
  204. package/build/utils/utils.d.ts +45 -0
  205. package/build/utils/utils.js +10 -0
  206. package/build/utils/utils.test.d.ts +1 -0
  207. package/build/utils/versions.d.ts +3 -0
  208. package/build/utils/versions.js +1 -1
  209. package/build/utils/workspaceAuth.d.ts +127 -0
  210. package/build/utils/workspaceAuth.test.d.ts +1 -0
  211. package/build/utils/workspaceAuth.test.js +25 -25
  212. package/build/workspace/index.d.ts +1 -0
  213. package/build/workspace/workspace.d.ts +390 -0
  214. package/build/workspace/workspace.js +7 -7
  215. package/build/workspace/workspace.test.d.ts +1 -0
  216. package/build/workspace/workspace.test.js +6 -6
  217. package/node_modules/playwright/lib/mcp/skyramp/loadTraceTool.js +31 -13
  218. package/node_modules/playwright/lib/mcp/skyramp/traceRecordingBackend.js +88 -15
  219. package/node_modules/playwright/lib/mcp/test/skyRampExport.js +4 -3
  220. package/node_modules/playwright/node_modules/playwright-core/ThirdPartyNotices.txt +23 -126
  221. package/node_modules/playwright/node_modules/playwright-core/lib/generated/injectedScriptSource.js +1 -1
  222. package/node_modules/playwright/node_modules/playwright-core/lib/server/recorder/recorderApp.js +79 -19
  223. package/node_modules/playwright/node_modules/playwright-core/lib/server/recorder/skyramp/aliasRemapper.js +84 -0
  224. package/node_modules/playwright/node_modules/playwright-core/lib/server/recorder/skyramp/replayEngine.js +15 -4
  225. package/node_modules/playwright/node_modules/playwright-core/lib/vite/recorder/assets/{codeMirrorModule-CPZKmjFR.js → codeMirrorModule-D0BjbCb7.js} +1 -1
  226. package/node_modules/playwright/node_modules/playwright-core/lib/vite/recorder/assets/index-lvTRGFx-.js +193 -0
  227. package/node_modules/playwright/node_modules/playwright-core/lib/vite/recorder/index.html +1 -1
  228. package/node_modules/playwright/node_modules/playwright-core/lib/vite/traceViewer/assets/{codeMirrorModule-B0JOjboO.js → codeMirrorModule-Cqp3cwEJ.js} +1 -1
  229. package/node_modules/playwright/node_modules/playwright-core/lib/vite/traceViewer/assets/{defaultSettingsView-1anWeyDf.js → defaultSettingsView-CYf9adZh.js} +79 -79
  230. package/node_modules/playwright/node_modules/playwright-core/lib/vite/traceViewer/{index.Cc5029a3.js → index.B_7ywgmr.js} +1 -1
  231. package/node_modules/playwright/node_modules/playwright-core/lib/vite/traceViewer/index.html +2 -2
  232. package/node_modules/playwright/node_modules/playwright-core/lib/vite/traceViewer/uiMode.html +2 -2
  233. package/node_modules/playwright/node_modules/playwright-core/lib/vite/traceViewer/{uiMode.Wo5yvvVh.js → uiMode.u4_8VnCV.js} +1 -1
  234. package/node_modules/playwright/node_modules/playwright-core/package.json +1 -1
  235. package/node_modules/playwright/node_modules/playwright-core/src/generated/injectedScriptSource.ts +1 -1
  236. package/node_modules/playwright/node_modules/playwright-core/src/server/recorder/recorderApp.ts +129 -43
  237. package/node_modules/playwright/node_modules/playwright-core/src/server/recorder/skyramp/aliasRemapper.ts +119 -0
  238. package/node_modules/playwright/node_modules/playwright-core/src/server/recorder/skyramp/replayEngine.ts +33 -10
  239. package/node_modules/playwright/package.json +1 -1
  240. package/package.json +16 -4
  241. package/build/tools/test-management/uiAnalyzeChangesTool.js +0 -155
  242. package/build/tools/test-management/uiAnalyzeChangesTool.test.js +0 -147
  243. package/node_modules/playwright/node_modules/playwright-core/bundles/mcp/node_modules/.bin/node-which +0 -52
  244. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/.bin/is-docker +0 -5
  245. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/.bin/mime +0 -46
  246. package/node_modules/playwright/node_modules/playwright-core/bundles/utils/node_modules/.bin/yaml +0 -11
  247. package/node_modules/playwright/node_modules/playwright-core/lib/vite/recorder/assets/index-CsgPR2wy.js +0 -193
  248. package/node_modules/playwright/node_modules/playwright-core/lib/vite/traceViewer/index.CP3Y8Zsb.js +0 -2
@@ -111,6 +111,11 @@ class TraceRecordingBackend {
111
111
  },
112
112
  contextOptions: {
113
113
  viewport: import_skyRampExport.RECORDING_VIEWPORT,
114
+ // Mirror `playwright codegen --load-storage`: seed the recording
115
+ // browser with a saved session so it records against an authenticated
116
+ // app. Same source (PLAYWRIGHT_MCP_STORAGE_STATE) that buildJsonlContent
117
+ // stamps into the export header, so load + emit stay consistent.
118
+ ...process.env.PLAYWRIGHT_MCP_STORAGE_STATE?.trim() ? { storageState: process.env.PLAYWRIGHT_MCP_STORAGE_STATE.trim() } : {},
114
119
  recordHar: { path: this._harPath, mode: "minimal" },
115
120
  ignoreHTTPSErrors: true,
116
121
  serviceWorkers: "block"
@@ -520,6 +525,9 @@ Failed to load trace from ${params.path}: ${e.message}` }], isError: true };
520
525
  if (!loadedActions.length)
521
526
  return { content: [{ type: "text", text: `### Error
522
527
  No actions found in ${params.path}.` }], isError: true };
528
+ if (params.startAtStep !== void 0 && params.stopAtStep !== void 0 && params.startAtStep > params.stopAtStep)
529
+ return { content: [{ type: "text", text: `### Error
530
+ startAtStep (${params.startAtStep}) is after stopAtStep (${params.stopAtStep}).` }], isError: true };
523
531
  if (params.dryRun) {
524
532
  const stepList = loadedActions.map((a, i) => (0, import_loadTraceTool.describeStep)(a, i)).join("\n");
525
533
  return {
@@ -531,7 +539,7 @@ ${loadedActions.length} steps in ${params.path}. Nothing was replayed.
531
539
  Steps:
532
540
  ${stepList}
533
541
 
534
- Call skyramp_load_trace again with stopAtStep / stopAtUrl / stopBefore (or none of them to replay all) to replay.`
542
+ Call skyramp_load_trace again to replay: set startAtStep to skip a stale prefix (e.g. an old login) and/or one of stopAtStep / stopAtUrl / stopBefore to stop early. Omit all to replay the whole trace.`
535
543
  }]
536
544
  };
537
545
  }
@@ -539,17 +547,83 @@ Call skyramp_load_trace again with stopAtStep / stopAtUrl / stopBefore (or none
539
547
  await this._browserBackend.context.ensureTab();
540
548
  } catch {
541
549
  }
550
+ const startIndex = params.startAtStep ? Math.max(0, Math.min(params.startAtStep - 1, loadedActions.length)) : 0;
551
+ let guardEnd = loadedActions.length;
552
+ if (params.stopAtStep) {
553
+ guardEnd = Math.min(guardEnd, params.stopAtStep);
554
+ } else if (params.stopBefore) {
555
+ const needle = params.stopBefore.toLowerCase();
556
+ const matchIndex = loadedActions.findIndex((a, i) => i >= startIndex && (0, import_loadTraceTool.describeStep)(a, i).toLowerCase().includes(needle));
557
+ if (matchIndex !== -1)
558
+ guardEnd = matchIndex;
559
+ }
560
+ const replayRange = loadedActions.slice(startIndex, guardEnd);
561
+ const primaryAlias = replayRange[0]?.frame.pageAlias || "page";
562
+ {
563
+ const available = /* @__PURE__ */ new Set([primaryAlias]);
564
+ for (const a of replayRange) {
565
+ if (!available.has(a.frame.pageAlias))
566
+ return { content: [{ type: "text", text: `### Error
567
+ The selected range acts on tab "${a.frame.pageAlias}" but the step that opens that tab is outside the range (skipped by startAtStep). Lower startAtStep to include the opening step, or pick a range that stays on a single tab.` }], isError: true };
568
+ for (const s of a.action.signals) {
569
+ if (s.name === "popup")
570
+ available.add(s.popupAlias);
571
+ }
572
+ }
573
+ }
574
+ const liveTabs = () => (this._browserBackend.context?.tabs() ?? []).map((t) => t.page);
575
+ const seedPage = this._browserBackend.context?.currentTab()?.page ?? liveTabs()[0];
576
+ const remap = /* @__PURE__ */ new Map();
577
+ remap.set(primaryAlias, { page: seedPage, liveAlias: this._currentPageAlias });
578
+ const claimedTabs = /* @__PURE__ */ new Set();
579
+ if (seedPage)
580
+ claimedTabs.add(seedPage);
581
+ let tabsBefore = [];
542
582
  let result;
543
583
  try {
544
- result = await (0, import_loadTraceTool.replayActions)(loadedActions, { pageForAlias: (alias) => this._pageForAlias(alias) }, params);
584
+ result = await (0, import_loadTraceTool.replayActions)(loadedActions, {
585
+ pageForAlias: (alias) => remap.get(alias)?.page ?? this._pageForAlias(alias),
586
+ beforeAction: () => {
587
+ tabsBefore = liveTabs();
588
+ },
589
+ afterAction: async (action) => {
590
+ for (const signal of action.action.signals) {
591
+ if (signal.name !== "popup")
592
+ continue;
593
+ let fresh;
594
+ for (let k = 0; k < 100 && !fresh; k++) {
595
+ fresh = liveTabs().find((p) => !tabsBefore.includes(p) && !claimedTabs.has(p));
596
+ if (!fresh)
597
+ await new Promise((r) => setTimeout(r, 50));
598
+ }
599
+ if (!fresh) {
600
+ throw new Error(`Expected a popup ("${signal.popupAlias}") to open after this action, but no new tab appeared \u2014 the fragment has drifted from the live page.`);
601
+ }
602
+ claimedTabs.add(fresh);
603
+ remap.set(signal.popupAlias, { page: fresh, liveAlias: this._currentPageAlias });
604
+ }
605
+ }
606
+ }, params);
545
607
  } catch (e) {
546
608
  return { content: [{ type: "text", text: `### Error
547
609
  Replay failed: ${e.message}` }], isError: true };
548
610
  }
549
- for (let i = 0; i < result.stopIndex; i++)
550
- this._seedTrackedAction(loadedActions[i]);
551
- if (result.stopIndex > 0)
611
+ for (let i = result.startIndex; i < result.stopIndex; i++) {
612
+ const a = loadedActions[i];
613
+ const liveAlias = remap.get(a.frame.pageAlias)?.liveAlias;
614
+ if (liveAlias && liveAlias !== a.frame.pageAlias)
615
+ a.frame = { ...a.frame, pageAlias: liveAlias };
616
+ const before = this._trackedActions.length;
617
+ this._seedTrackedAction(a);
618
+ const popupSignal = a.action.signals.find((s) => s.name === "popup");
619
+ if (popupSignal && this._trackedActions.length > before)
620
+ this._trackedActions[this._trackedActions.length - 1].popupAlias = remap.get(popupSignal.popupAlias)?.liveAlias ?? popupSignal.popupAlias;
621
+ }
622
+ if (result.stopIndex > result.startIndex)
552
623
  this._currentPageAlias = loadedActions[result.stopIndex - 1].frame.pageAlias || "page";
624
+ const replayedCount = Math.max(0, result.stopIndex - result.startIndex);
625
+ const clamped = params.startAtStep !== void 0 && params.startAtStep !== result.startIndex + 1;
626
+ const skippedNote = result.startIndex > 0 ? ` Skipped the first ${result.startIndex} step${result.startIndex === 1 ? "" : "s"} (startAtStep ${params.startAtStep}${clamped ? `, clamped \u2014 trace has ${loadedActions.length} steps` : ""}).` : "";
553
627
  const remaining = (0, import_loadTraceTool.listStepsFrom)(loadedActions, result.stopIndex);
554
628
  const stoppedNote = (0, import_loadTraceTool.describeStopReason)(result);
555
629
  const errorNote = result.error ? `
@@ -560,7 +634,7 @@ You can continue recording from this point or fix the issue.` : "";
560
634
  content: [{
561
635
  type: "text",
562
636
  text: `### Trace replayed
563
- ${result.completedCount} of ${loadedActions.length} steps replayed from ${params.path}. ${stoppedNote}${errorNote}
637
+ ${replayedCount} of ${loadedActions.length} steps replayed from ${params.path}.${skippedNote} ${stoppedNote}${errorNote}
564
638
 
565
639
  Remaining steps (NOT replayed):
566
640
  ${remaining}
@@ -1658,10 +1732,9 @@ Cell row ${params.row}, column ${params.column} has "${actual}", expected "${par
1658
1732
  const url = page.url();
1659
1733
  if (url.startsWith("chrome-extension://") || url.startsWith("about:") || url.startsWith("file://"))
1660
1734
  return;
1661
- const alreadyEnabled = await page.evaluate(() => {
1662
- const host = document.querySelector("flt-semantics-host");
1663
- return host && host.children.length > 0;
1664
- }).catch(() => false);
1735
+ const alreadyEnabled = await page.evaluate(
1736
+ () => document.querySelector("flt-semantics-placeholder") === null && document.querySelector("flt-semantics-host") !== null
1737
+ ).catch(() => false);
1665
1738
  if (alreadyEnabled) {
1666
1739
  traceDebug("Flutter accessibility already enabled");
1667
1740
  return;
@@ -1689,14 +1762,14 @@ Cell row ${params.row}, column ${params.column} has "${actual}", expected "${par
1689
1762
  traceDebug("Flutter detected but placeholder click failed");
1690
1763
  return;
1691
1764
  }
1692
- const enabled = await page.waitForFunction(() => {
1693
- const host = document.querySelector("flt-semantics-host");
1694
- return host && host.children.length > 0;
1695
- }, { timeout: 5e3 }).then(() => true).catch(() => false);
1765
+ const enabled = await page.waitForFunction(
1766
+ () => document.querySelector("flt-semantics-placeholder") === null,
1767
+ { timeout: 1e4 }
1768
+ ).then(() => true).catch(() => false);
1696
1769
  if (enabled)
1697
1770
  traceDebug("Flutter accessibility mode enabled");
1698
1771
  else
1699
- traceDebug("Flutter placeholder clicked but semantics host did not appear");
1772
+ traceDebug("Flutter placeholder clicked but semantics not confirmed active");
1700
1773
  }
1701
1774
  /** Clean up temp directory and optionally recreate it for next session. */
1702
1775
  _cleanupTempDir(recreate = false) {
@@ -55,12 +55,13 @@ function modifiersArrayToMask(modifiers) {
55
55
  return mask;
56
56
  }
57
57
  const RECORDING_VIEWPORT = { width: 1280, height: 900 };
58
- function jsonlHeader(browserName, harPath, viewport) {
58
+ function jsonlHeader(browserName, harPath, viewport, storageState) {
59
59
  return JSON.stringify({
60
60
  browserName,
61
61
  launchOptions: { headless: false },
62
62
  contextOptions: {
63
63
  viewport,
64
+ ...storageState ? { storageState } : {},
64
65
  ignoreHTTPSErrors: true,
65
66
  recordHar: { path: harPath, mode: "minimal" },
66
67
  serviceWorkers: "block"
@@ -623,7 +624,7 @@ function mouseActionToJsonl(action, pageGuid, baseTs, alias) {
623
624
  return [];
624
625
  }
625
626
  }
626
- function buildJsonlContent(actions, browserName, harPath, viewport = RECORDING_VIEWPORT) {
627
+ function buildJsonlContent(actions, browserName, harPath, viewport = RECORDING_VIEWPORT, storageState = process.env.PLAYWRIGHT_MCP_STORAGE_STATE?.trim() || void 0) {
627
628
  normalizePrimaryPageAlias(actions);
628
629
  const deduplicated = removeRedundantClicks(deduplicateRetries(actions));
629
630
  const startTime = deduplicated[0]?.timestamp ?? Date.now();
@@ -635,7 +636,7 @@ function buildJsonlContent(actions, browserName, harPath, viewport = RECORDING_V
635
636
  };
636
637
  const mainGuid = getPageGuid(DEFAULT_PAGE_ALIAS);
637
638
  const lines = [
638
- jsonlHeader(browserName, harPath, viewport),
639
+ jsonlHeader(browserName, harPath, viewport, storageState),
639
640
  JSON.stringify({ name: "openPage", url: "about:blank", signals: [], timestamp: String(startTime - 1e3), pageGuid: mainGuid, pageAlias: DEFAULT_PAGE_ALIAS, framePath: DEFAULT_FRAME_PATH })
640
641
  ];
641
642
  let actionCount = 0;
@@ -46,10 +46,10 @@ This project incorporates components from the projects listed below. The origina
46
46
  - etag@1.8.1 (https://github.com/jshttp/etag)
47
47
  - eventsource-parser@3.0.3 (https://github.com/rexxars/eventsource-parser)
48
48
  - eventsource@3.0.7 (git://git@github.com/EventSource/eventsource)
49
- - express-rate-limit@8.3.2 (https://github.com/express-rate-limit/express-rate-limit)
49
+ - express-rate-limit@8.5.2 (https://github.com/express-rate-limit/express-rate-limit)
50
50
  - express@5.2.1 (https://github.com/expressjs/express)
51
51
  - fast-deep-equal@3.1.3 (https://github.com/epoberezkin/fast-deep-equal)
52
- - fast-uri@3.1.0 (https://github.com/fastify/fast-uri)
52
+ - fast-uri@3.1.2 (https://github.com/fastify/fast-uri)
53
53
  - finalhandler@2.1.1 (https://github.com/pillarjs/finalhandler)
54
54
  - forwarded@0.2.0 (https://github.com/jshttp/forwarded)
55
55
  - fresh@2.0.0 (https://github.com/jshttp/fresh)
@@ -61,13 +61,12 @@ This project incorporates components from the projects listed below. The origina
61
61
  - graceful-fs@4.2.10 (https://github.com/isaacs/node-graceful-fs)
62
62
  - has-symbols@1.1.0 (https://github.com/inspect-js/has-symbols)
63
63
  - hasown@2.0.3 (https://github.com/inspect-js/hasOwn)
64
- - hono@4.12.14 (https://github.com/honojs/hono)
64
+ - hono@4.12.23 (https://github.com/honojs/hono)
65
65
  - http-errors@2.0.1 (https://github.com/jshttp/http-errors)
66
66
  - https-proxy-agent@7.0.6 (https://github.com/TooTallNate/proxy-agents)
67
67
  - iconv-lite@0.7.2 (https://github.com/pillarjs/iconv-lite)
68
68
  - inherits@2.0.4 (https://github.com/isaacs/inherits)
69
- - ip-address@10.1.0 (https://github.com/beaugunderson/ip-address)
70
- - ip-address@9.0.5 (https://github.com/beaugunderson/ip-address)
69
+ - ip-address@10.2.0 (https://github.com/beaugunderson/ip-address)
71
70
  - ipaddr.js@1.9.1 (https://github.com/whitequark/ipaddr.js)
72
71
  - is-docker@2.2.1 (https://github.com/sindresorhus/is-docker)
73
72
  - is-promise@4.0.0 (https://github.com/then/is-promise)
@@ -75,7 +74,6 @@ This project incorporates components from the projects listed below. The origina
75
74
  - isexe@2.0.0 (https://github.com/isaacs/isexe)
76
75
  - jose@6.1.3 (https://github.com/panva/jose)
77
76
  - jpeg-js@0.4.4 (https://github.com/eugeneware/jpeg-js)
78
- - jsbn@1.1.0 (https://github.com/andyperlitch/jsbn)
79
77
  - json-schema-traverse@1.0.0 (https://github.com/epoberezkin/json-schema-traverse)
80
78
  - json-schema-typed@8.0.2 (https://github.com/RemyRylan/json-schema-typed)
81
79
  - math-intrinsics@1.1.0 (https://github.com/es-shims/math-intrinsics)
@@ -103,7 +101,7 @@ This project incorporates components from the projects listed below. The origina
103
101
  - proxy-addr@2.0.7 (https://github.com/jshttp/proxy-addr)
104
102
  - proxy-from-env@1.1.0 (https://github.com/Rob--W/proxy-from-env)
105
103
  - pump@3.0.2 (https://github.com/mafintosh/pump)
106
- - qs@6.15.1 (https://github.com/ljharb/qs)
104
+ - qs@6.15.2 (https://github.com/ljharb/qs)
107
105
  - range-parser@1.2.1 (https://github.com/jshttp/range-parser)
108
106
  - raw-body@3.0.2 (https://github.com/stream-utils/raw-body)
109
107
  - require-from-string@2.0.2 (https://github.com/floatdrop/require-from-string)
@@ -122,8 +120,7 @@ This project incorporates components from the projects listed below. The origina
122
120
  - signal-exit@3.0.7 (https://github.com/tapjs/signal-exit)
123
121
  - smart-buffer@4.2.0 (https://github.com/JoshGlazebrook/smart-buffer)
124
122
  - socks-proxy-agent@8.0.5 (https://github.com/TooTallNate/proxy-agents)
125
- - socks@2.8.3 (https://github.com/JoshGlazebrook/socks)
126
- - sprintf-js@1.1.3 (https://github.com/alexei/sprintf.js)
123
+ - socks@2.8.9 (https://github.com/JoshGlazebrook/socks)
127
124
  - statuses@2.0.2 (https://github.com/jshttp/statuses)
128
125
  - toidentifier@1.0.1 (https://github.com/component/toidentifier)
129
126
  - type-is@2.0.1 (https://github.com/jshttp/type-is)
@@ -131,7 +128,7 @@ This project incorporates components from the projects listed below. The origina
131
128
  - vary@1.1.2 (https://github.com/jshttp/vary)
132
129
  - which@2.0.2 (https://github.com/isaacs/node-which)
133
130
  - wrappy@1.0.2 (https://github.com/npm/wrappy)
134
- - ws@8.17.1 (https://github.com/websockets/ws)
131
+ - ws@8.21.0 (https://github.com/websockets/ws)
135
132
  - yaml@2.8.3 (https://github.com/eemeli/yaml)
136
133
  - yauzl@3.2.1 (https://github.com/thejoshwolfe/yauzl)
137
134
  - yazl@2.5.1 (https://github.com/thejoshwolfe/yazl)
@@ -1423,7 +1420,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1423
1420
  =========================================
1424
1421
  END OF eventsource@3.0.7 AND INFORMATION
1425
1422
 
1426
- %% express-rate-limit@8.3.2 NOTICES AND INFORMATION BEGIN HERE
1423
+ %% express-rate-limit@8.5.2 NOTICES AND INFORMATION BEGIN HERE
1427
1424
  =========================================
1428
1425
  # MIT License
1429
1426
 
@@ -1446,7 +1443,7 @@ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
1446
1443
  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
1447
1444
  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1448
1445
  =========================================
1449
- END OF express-rate-limit@8.3.2 AND INFORMATION
1446
+ END OF express-rate-limit@8.5.2 AND INFORMATION
1450
1447
 
1451
1448
  %% express@5.2.1 NOTICES AND INFORMATION BEGIN HERE
1452
1449
  =========================================
@@ -1503,14 +1500,12 @@ SOFTWARE.
1503
1500
  =========================================
1504
1501
  END OF fast-deep-equal@3.1.3 AND INFORMATION
1505
1502
 
1506
- %% fast-uri@3.1.0 NOTICES AND INFORMATION BEGIN HERE
1503
+ %% fast-uri@3.1.2 NOTICES AND INFORMATION BEGIN HERE
1507
1504
  =========================================
1508
1505
  Copyright (c) 2011-2021, Gary Court until https://github.com/garycourt/uri-js/commit/a1acf730b4bba3f1097c9f52e7d9d3aba8cdcaae
1509
- Copyright (c) 2021-present The Fastify team
1506
+ Copyright (c) 2021-present The Fastify team <https://github.com/fastify/fastify#team>
1510
1507
  All rights reserved.
1511
1508
 
1512
- The Fastify team members are listed at https://github.com/fastify/fastify#team.
1513
-
1514
1509
  Redistribution and use in source and binary forms, with or without
1515
1510
  modification, are permitted provided that the following conditions are met:
1516
1511
  * Redistributions of source code must retain the above copyright
@@ -1538,7 +1533,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1538
1533
  The complete list of contributors can be found at:
1539
1534
  - https://github.com/garycourt/uri-js/graphs/contributors
1540
1535
  =========================================
1541
- END OF fast-uri@3.1.0 AND INFORMATION
1536
+ END OF fast-uri@3.1.2 AND INFORMATION
1542
1537
 
1543
1538
  %% finalhandler@2.1.1 NOTICES AND INFORMATION BEGIN HERE
1544
1539
  =========================================
@@ -1810,7 +1805,7 @@ SOFTWARE.
1810
1805
  =========================================
1811
1806
  END OF hasown@2.0.3 AND INFORMATION
1812
1807
 
1813
- %% hono@4.12.14 NOTICES AND INFORMATION BEGIN HERE
1808
+ %% hono@4.12.23 NOTICES AND INFORMATION BEGIN HERE
1814
1809
  =========================================
1815
1810
  MIT License
1816
1811
 
@@ -1834,7 +1829,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1834
1829
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1835
1830
  SOFTWARE.
1836
1831
  =========================================
1837
- END OF hono@4.12.14 AND INFORMATION
1832
+ END OF hono@4.12.23 AND INFORMATION
1838
1833
 
1839
1834
  %% http-errors@2.0.1 NOTICES AND INFORMATION BEGIN HERE
1840
1835
  =========================================
@@ -1935,7 +1930,7 @@ PERFORMANCE OF THIS SOFTWARE.
1935
1930
  =========================================
1936
1931
  END OF inherits@2.0.4 AND INFORMATION
1937
1932
 
1938
- %% ip-address@10.1.0 NOTICES AND INFORMATION BEGIN HERE
1933
+ %% ip-address@10.2.0 NOTICES AND INFORMATION BEGIN HERE
1939
1934
  =========================================
1940
1935
  Copyright (C) 2011 by Beau Gunderson
1941
1936
 
@@ -1957,31 +1952,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1957
1952
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1958
1953
  THE SOFTWARE.
1959
1954
  =========================================
1960
- END OF ip-address@10.1.0 AND INFORMATION
1961
-
1962
- %% ip-address@9.0.5 NOTICES AND INFORMATION BEGIN HERE
1963
- =========================================
1964
- Copyright (C) 2011 by Beau Gunderson
1965
-
1966
- Permission is hereby granted, free of charge, to any person obtaining a copy
1967
- of this software and associated documentation files (the "Software"), to deal
1968
- in the Software without restriction, including without limitation the rights
1969
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1970
- copies of the Software, and to permit persons to whom the Software is
1971
- furnished to do so, subject to the following conditions:
1972
-
1973
- The above copyright notice and this permission notice shall be included in
1974
- all copies or substantial portions of the Software.
1975
-
1976
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1977
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1978
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1979
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1980
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1981
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1982
- THE SOFTWARE.
1983
- =========================================
1984
- END OF ip-address@9.0.5 AND INFORMATION
1955
+ END OF ip-address@10.2.0 AND INFORMATION
1985
1956
 
1986
1957
  %% ipaddr.js@1.9.1 NOTICES AND INFORMATION BEGIN HERE
1987
1958
  =========================================
@@ -2135,51 +2106,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2135
2106
  =========================================
2136
2107
  END OF jpeg-js@0.4.4 AND INFORMATION
2137
2108
 
2138
- %% jsbn@1.1.0 NOTICES AND INFORMATION BEGIN HERE
2139
- =========================================
2140
- Licensing
2141
- ---------
2142
-
2143
- This software is covered under the following copyright:
2144
-
2145
- /*
2146
- * Copyright (c) 2003-2005 Tom Wu
2147
- * All Rights Reserved.
2148
- *
2149
- * Permission is hereby granted, free of charge, to any person obtaining
2150
- * a copy of this software and associated documentation files (the
2151
- * "Software"), to deal in the Software without restriction, including
2152
- * without limitation the rights to use, copy, modify, merge, publish,
2153
- * distribute, sublicense, and/or sell copies of the Software, and to
2154
- * permit persons to whom the Software is furnished to do so, subject to
2155
- * the following conditions:
2156
- *
2157
- * The above copyright notice and this permission notice shall be
2158
- * included in all copies or substantial portions of the Software.
2159
- *
2160
- * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
2161
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
2162
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
2163
- *
2164
- * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
2165
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
2166
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
2167
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
2168
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
2169
- *
2170
- * In addition, the following condition applies:
2171
- *
2172
- * All redistributions must retain an intact copy of this copyright notice
2173
- * and disclaimer.
2174
- */
2175
-
2176
- Address all questions regarding this license to:
2177
-
2178
- Tom Wu
2179
- tjw@cs.Stanford.EDU
2180
- =========================================
2181
- END OF jsbn@1.1.0 AND INFORMATION
2182
-
2183
2109
  %% json-schema-traverse@1.0.0 NOTICES AND INFORMATION BEGIN HERE
2184
2110
  =========================================
2185
2111
  MIT License
@@ -2886,7 +2812,7 @@ THE SOFTWARE.
2886
2812
  =========================================
2887
2813
  END OF pump@3.0.2 AND INFORMATION
2888
2814
 
2889
- %% qs@6.15.1 NOTICES AND INFORMATION BEGIN HERE
2815
+ %% qs@6.15.2 NOTICES AND INFORMATION BEGIN HERE
2890
2816
  =========================================
2891
2817
  BSD 3-Clause License
2892
2818
 
@@ -2918,7 +2844,7 @@ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
2918
2844
  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2919
2845
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2920
2846
  =========================================
2921
- END OF qs@6.15.1 AND INFORMATION
2847
+ END OF qs@6.15.2 AND INFORMATION
2922
2848
 
2923
2849
  %% range-parser@1.2.1 NOTICES AND INFORMATION BEGIN HERE
2924
2850
  =========================================
@@ -3362,7 +3288,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
3362
3288
  =========================================
3363
3289
  END OF socks-proxy-agent@8.0.5 AND INFORMATION
3364
3290
 
3365
- %% socks@2.8.3 NOTICES AND INFORMATION BEGIN HERE
3291
+ %% socks@2.8.9 NOTICES AND INFORMATION BEGIN HERE
3366
3292
  =========================================
3367
3293
  The MIT License (MIT)
3368
3294
 
@@ -3385,36 +3311,7 @@ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
3385
3311
  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
3386
3312
  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
3387
3313
  =========================================
3388
- END OF socks@2.8.3 AND INFORMATION
3389
-
3390
- %% sprintf-js@1.1.3 NOTICES AND INFORMATION BEGIN HERE
3391
- =========================================
3392
- Copyright (c) 2007-present, Alexandru Mărășteanu <hello@alexei.ro>
3393
- All rights reserved.
3394
-
3395
- Redistribution and use in source and binary forms, with or without
3396
- modification, are permitted provided that the following conditions are met:
3397
- * Redistributions of source code must retain the above copyright
3398
- notice, this list of conditions and the following disclaimer.
3399
- * Redistributions in binary form must reproduce the above copyright
3400
- notice, this list of conditions and the following disclaimer in the
3401
- documentation and/or other materials provided with the distribution.
3402
- * Neither the name of this software nor the names of its contributors may be
3403
- used to endorse or promote products derived from this software without
3404
- specific prior written permission.
3405
-
3406
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
3407
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
3408
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
3409
- DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
3410
- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
3411
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
3412
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
3413
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
3414
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
3415
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3416
- =========================================
3417
- END OF sprintf-js@1.1.3 AND INFORMATION
3314
+ END OF socks@2.8.9 AND INFORMATION
3418
3315
 
3419
3316
  %% statuses@2.0.2 NOTICES AND INFORMATION BEGIN HERE
3420
3317
  =========================================
@@ -3591,7 +3488,7 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
3591
3488
  =========================================
3592
3489
  END OF wrappy@1.0.2 AND INFORMATION
3593
3490
 
3594
- %% ws@8.17.1 NOTICES AND INFORMATION BEGIN HERE
3491
+ %% ws@8.21.0 NOTICES AND INFORMATION BEGIN HERE
3595
3492
  =========================================
3596
3493
  Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>
3597
3494
  Copyright (c) 2013 Arnout Kazemier and contributors
@@ -3614,7 +3511,7 @@ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
3614
3511
  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
3615
3512
  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
3616
3513
  =========================================
3617
- END OF ws@8.17.1 AND INFORMATION
3514
+ END OF ws@8.21.0 AND INFORMATION
3618
3515
 
3619
3516
  %% yaml@2.8.3 NOTICES AND INFORMATION BEGIN HERE
3620
3517
  =========================================
@@ -3760,6 +3657,6 @@ END OF zod@4.3.5 AND INFORMATION
3760
3657
 
3761
3658
  SUMMARY BEGIN HERE
3762
3659
  =========================================
3763
- Total Packages: 134
3660
+ Total Packages: 131
3764
3661
  =========================================
3765
3662
  END OF SUMMARY