@withbuddi/buddi 0.1.0-pre.51 → 0.1.0-pre.52
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/extension/background.js +1604 -847
- package/extension/manifest.json +3 -3
- package/extension/popup.css +91 -3
- package/extension/popup.html +49 -32
- package/extension/popup.js +215 -123
- package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/core/dist/plugin/index.d.ts +1 -1
- package/node_modules/@buddi/core/dist/plugin/index.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/plugin/index.js.map +1 -1
- package/node_modules/@buddi/core/dist/questions/store.d.ts +3 -1
- package/node_modules/@buddi/core/dist/questions/store.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/questions/store.js +3 -3
- package/node_modules/@buddi/core/dist/questions/store.js.map +1 -1
- package/node_modules/@buddi/core/dist/questions/types.d.ts +46 -1
- package/node_modules/@buddi/core/dist/questions/types.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/questions/types.js +2 -1
- package/node_modules/@buddi/core/dist/questions/types.js.map +1 -1
- package/node_modules/@buddi/core/dist/secrets/approval.d.ts +54 -0
- package/node_modules/@buddi/core/dist/secrets/approval.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/secrets/approval.js +58 -1
- package/node_modules/@buddi/core/dist/secrets/approval.js.map +1 -1
- package/node_modules/@buddi/core/dist/secrets/settings.d.ts +178 -0
- package/node_modules/@buddi/core/dist/secrets/settings.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/secrets/settings.js +63 -6
- package/node_modules/@buddi/core/dist/secrets/settings.js.map +1 -1
- package/node_modules/@buddi/core/dist/secrets/store.d.ts +31 -0
- package/node_modules/@buddi/core/dist/secrets/store.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/secrets/store.js +75 -0
- package/node_modules/@buddi/core/dist/secrets/store.js.map +1 -1
- package/node_modules/@buddi/core/dist/secrets/use.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/secrets/use.js +68 -3
- package/node_modules/@buddi/core/dist/secrets/use.js.map +1 -1
- package/node_modules/@buddi/core/dist/tools.d.ts +22 -0
- package/node_modules/@buddi/core/dist/tools.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/tools.js.map +1 -1
- package/node_modules/@buddi/core/migrations/080_secret_requests.sql +14 -0
- package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/gateway/dist/chat/session.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/chat/session.js +2 -1
- package/node_modules/@buddi/gateway/dist/chat/session.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/missions/execute.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/missions/execute.js +3 -1
- package/node_modules/@buddi/gateway/dist/missions/execute.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/browser-cards.d.ts +15 -3
- package/node_modules/@buddi/gateway/dist/surfaces/browser-cards.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/browser-cards.js +34 -7
- package/node_modules/@buddi/gateway/dist/surfaces/browser-cards.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/offered-actions.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/offered-actions.js +8 -2
- package/node_modules/@buddi/gateway/dist/surfaces/offered-actions.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/pending-question.d.ts +3 -1
- package/node_modules/@buddi/gateway/dist/surfaces/pending-question.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/pending-question.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/secret-request.d.ts +173 -0
- package/node_modules/@buddi/gateway/dist/surfaces/secret-request.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/surfaces/secret-request.js +332 -0
- package/node_modules/@buddi/gateway/dist/surfaces/secret-request.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/system-context.js +1 -1
- package/node_modules/@buddi/gateway/dist/system-context.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/main.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/main.js +14 -3
- package/node_modules/@buddi/gateway/dist/telegram/main.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/surface.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/surface.js +4 -1
- package/node_modules/@buddi/gateway/dist/telegram/surface.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/api-routes.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/api-routes.js +9 -1
- package/node_modules/@buddi/gateway/dist/web/api-routes.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/approval-ask.js +2 -2
- package/node_modules/@buddi/gateway/dist/web/approval-ask.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/browser-capture.d.ts +13 -0
- package/node_modules/@buddi/gateway/dist/web/browser-capture.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/browser-capture.js +24 -0
- package/node_modules/@buddi/gateway/dist/web/browser-capture.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/chat.d.ts +26 -0
- package/node_modules/@buddi/gateway/dist/web/chat.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/chat.js +87 -2
- package/node_modules/@buddi/gateway/dist/web/chat.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/extension.d.ts +30 -0
- package/node_modules/@buddi/gateway/dist/web/extension.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/extension.js +86 -6
- package/node_modules/@buddi/gateway/dist/web/extension.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/onboarding.js +1 -1
- package/node_modules/@buddi/gateway/dist/web/onboarding.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/remote-hand.d.ts +26 -2
- package/node_modules/@buddi/gateway/dist/web/remote-hand.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/remote-hand.js +89 -28
- package/node_modules/@buddi/gateway/dist/web/remote-hand.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/secret-request.d.ts +54 -0
- package/node_modules/@buddi/gateway/dist/web/secret-request.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/secret-request.js +264 -0
- package/node_modules/@buddi/gateway/dist/web/secret-request.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/secrets.d.ts +1 -0
- package/node_modules/@buddi/gateway/dist/web/secrets.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/secrets.js +1 -1
- package/node_modules/@buddi/gateway/dist/web/secrets.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/server.js +72 -3
- package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
- package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/runtime/dist/anthropic.d.ts +7 -0
- package/node_modules/@buddi/runtime/dist/anthropic.d.ts.map +1 -1
- package/node_modules/@buddi/runtime/dist/anthropic.js +19 -1
- package/node_modules/@buddi/runtime/dist/anthropic.js.map +1 -1
- package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-browser/dist/controller.d.ts +16 -1
- package/node_modules/@buddi/tool-browser/dist/controller.d.ts.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/controller.js +59 -5
- package/node_modules/@buddi/tool-browser/dist/controller.js.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/driver.d.ts +12 -0
- package/node_modules/@buddi/tool-browser/dist/driver.d.ts.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/driver.js +41 -2
- package/node_modules/@buddi/tool-browser/dist/driver.js.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/extension.d.ts +49 -9
- package/node_modules/@buddi/tool-browser/dist/extension.d.ts.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/extension.js +145 -21
- package/node_modules/@buddi/tool-browser/dist/extension.js.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/index.d.ts +10 -6
- package/node_modules/@buddi/tool-browser/dist/index.d.ts.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/index.js +22 -8
- package/node_modules/@buddi/tool-browser/dist/index.js.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/routes.d.ts +10 -1
- package/node_modules/@buddi/tool-browser/dist/routes.d.ts.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/routes.js +24 -0
- package/node_modules/@buddi/tool-browser/dist/routes.js.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/service.d.ts +48 -1
- package/node_modules/@buddi/tool-browser/dist/service.d.ts.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/service.js +114 -11
- package/node_modules/@buddi/tool-browser/dist/service.js.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/types.d.ts +54 -3
- package/node_modules/@buddi/tool-browser/dist/types.d.ts.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/types.js +17 -1
- package/node_modules/@buddi/tool-browser/dist/types.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-mcp/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
- package/node_modules/imapflow/CHANGELOG.md +15 -0
- package/node_modules/imapflow/dist/cjs/commands/select.d.ts +3 -14
- package/node_modules/imapflow/dist/cjs/commands/select.js +1 -4
- package/node_modules/imapflow/dist/cjs/imap-flow.js +30 -6
- package/node_modules/imapflow/dist/cjs/package-info.d.ts +1 -1
- package/node_modules/imapflow/dist/cjs/package-info.js +1 -1
- package/node_modules/imapflow/dist/cjs/tools.d.ts +10 -0
- package/node_modules/imapflow/dist/cjs/tools.js +29 -0
- package/node_modules/imapflow/dist/cjs/types.d.ts +9 -1
- package/node_modules/imapflow/dist/esm/commands/select.d.ts +3 -14
- package/node_modules/imapflow/dist/esm/commands/select.js +1 -4
- package/node_modules/imapflow/dist/esm/imap-flow.js +31 -7
- package/node_modules/imapflow/dist/esm/package-info.d.ts +1 -1
- package/node_modules/imapflow/dist/esm/package-info.js +1 -1
- package/node_modules/imapflow/dist/esm/tools.d.ts +10 -0
- package/node_modules/imapflow/dist/esm/tools.js +28 -0
- package/node_modules/imapflow/dist/esm/types.d.ts +9 -1
- package/node_modules/imapflow/package.json +2 -2
- package/node_modules/playwright/README.md +4 -4
- package/node_modules/playwright/lib/agents/playwright-test-generator.agent.md +1 -1
- package/node_modules/playwright/lib/cli/testActions.js +8 -5
- package/node_modules/playwright/lib/common/index.js +37 -23
- package/node_modules/playwright/lib/common/index.js.txt +8 -9
- package/node_modules/playwright/lib/index.js +16 -4
- package/node_modules/playwright/lib/matchers/expect.js +13 -7
- package/node_modules/playwright/lib/matchers/expect.js.txt +4 -4
- package/node_modules/playwright/lib/program.js +2 -1
- package/node_modules/playwright/lib/runner/index.js +438 -244
- package/node_modules/playwright/lib/runner/index.js.txt +12 -11
- package/node_modules/playwright/lib/transform/babelBundle.js +2612 -2396
- package/node_modules/playwright/lib/transform/babelBundle.js.LICENSE +15 -15
- package/node_modules/playwright/lib/transform/babelBundle.js.txt +14 -11
- package/node_modules/playwright/lib/transform/esmLoader.js +17 -5
- package/node_modules/playwright/lib/transform/esmLoader.js.txt +3 -3
- package/node_modules/playwright/lib/worker/workerProcessEntry.js +17 -18
- package/node_modules/playwright/package.json +2 -7
- package/node_modules/playwright/types/test.d.ts +156 -39
- package/node_modules/playwright-core/browsers.json +9 -9
- package/node_modules/playwright-core/cli.js +1 -0
- package/node_modules/playwright-core/lib/bootstrap.js +61 -0
- package/node_modules/playwright-core/lib/coreBundle.js +6393 -4170
- package/node_modules/playwright-core/lib/server/electron/loader.js +4 -0
- package/node_modules/playwright-core/lib/tools/cli-client/cli.js +2 -1
- package/node_modules/playwright-core/lib/tools/cli-client/help.json +99 -12
- package/node_modules/playwright-core/lib/tools/cli-client/output.js +17 -16
- package/node_modules/playwright-core/lib/tools/cli-client/program.js +8 -4
- package/node_modules/playwright-core/lib/tools/cli-client/session.js +2 -0
- package/node_modules/playwright-core/lib/tools/skills/playwright-cli/SKILL.md +71 -3
- package/node_modules/playwright-core/lib/tools/skills/playwright-cli/references/pr-attachments.md +60 -0
- package/node_modules/playwright-core/lib/tools/skills/playwright-cli/references/running-code.md +4 -0
- package/node_modules/playwright-core/lib/tools/skills/playwright-cli/references/session-management.md +2 -0
- package/node_modules/playwright-core/lib/tools/skills/playwright-cli/references/test-generation.md +1 -1
- package/node_modules/playwright-core/lib/tools/skills/playwright-cli/references/video-recording.md +76 -3
- package/node_modules/playwright-core/lib/tools/skills/playwright-trace/SKILL.md +1 -1
- package/node_modules/playwright-core/lib/utilsBundle.js +948 -227
- package/node_modules/playwright-core/lib/utilsBundle.js.LICENSE +6 -6
- package/node_modules/playwright-core/lib/vite/htmlReport/report.js +1 -1
- package/node_modules/playwright-core/lib/vite/recorder/assets/{codeMirrorModule-CVQWJZAA.js → codeMirrorModule-DK72OMRi.js} +1 -1
- package/node_modules/playwright-core/lib/vite/recorder/assets/index-Cn0mmDuv.js +129 -0
- package/node_modules/playwright-core/lib/vite/recorder/index.html +1 -1
- package/node_modules/playwright-core/lib/vite/traceViewer/assets/{codeMirrorModule-BbkfBe3n.js → codeMirrorModule-BEB2e8M3.js} +1 -1
- package/node_modules/playwright-core/lib/vite/traceViewer/assets/defaultSettingsView-D-g2vrvf.js +184 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/assets/{xtermModule-DywYcAf8.js → xtermModule-B794rD2Z.js} +1 -1
- package/node_modules/playwright-core/lib/vite/traceViewer/{defaultSettingsView.Bqk9acqE.css → defaultSettingsView.C8BeHuxd.css} +1 -1
- package/node_modules/playwright-core/lib/vite/traceViewer/{index.B4cLoZK3.js → index.7-c5LSTW.js} +1 -1
- package/node_modules/playwright-core/lib/vite/traceViewer/index.html +3 -3
- package/node_modules/playwright-core/lib/vite/traceViewer/sw.bundle.js +3 -3
- package/node_modules/playwright-core/lib/vite/traceViewer/{uiMode.CU5KtEkS.js → uiMode.CYwC_gH1.js} +4 -4
- package/node_modules/playwright-core/lib/vite/traceViewer/uiMode.html +3 -3
- package/node_modules/playwright-core/package.json +1 -1
- package/node_modules/playwright-core/types/protocol.d.ts +468 -337
- package/node_modules/playwright-core/types/types.d.ts +572 -37
- package/package.json +2 -2
- package/packages/cli/dist/.tsbuildinfo +1 -1
- package/packages/core/dist/.tsbuildinfo +1 -1
- package/packages/core/dist/plugin/index.d.ts +1 -1
- package/packages/core/dist/plugin/index.d.ts.map +1 -1
- package/packages/core/dist/plugin/index.js.map +1 -1
- package/packages/core/dist/questions/store.d.ts +3 -1
- package/packages/core/dist/questions/store.d.ts.map +1 -1
- package/packages/core/dist/questions/store.js +3 -3
- package/packages/core/dist/questions/store.js.map +1 -1
- package/packages/core/dist/questions/types.d.ts +46 -1
- package/packages/core/dist/questions/types.d.ts.map +1 -1
- package/packages/core/dist/questions/types.js +2 -1
- package/packages/core/dist/questions/types.js.map +1 -1
- package/packages/core/dist/secrets/approval.d.ts +54 -0
- package/packages/core/dist/secrets/approval.d.ts.map +1 -1
- package/packages/core/dist/secrets/approval.js +58 -1
- package/packages/core/dist/secrets/approval.js.map +1 -1
- package/packages/core/dist/secrets/settings.d.ts +178 -0
- package/packages/core/dist/secrets/settings.d.ts.map +1 -1
- package/packages/core/dist/secrets/settings.js +63 -6
- package/packages/core/dist/secrets/settings.js.map +1 -1
- package/packages/core/dist/secrets/store.d.ts +31 -0
- package/packages/core/dist/secrets/store.d.ts.map +1 -1
- package/packages/core/dist/secrets/store.js +75 -0
- package/packages/core/dist/secrets/store.js.map +1 -1
- package/packages/core/dist/secrets/use.d.ts.map +1 -1
- package/packages/core/dist/secrets/use.js +68 -3
- package/packages/core/dist/secrets/use.js.map +1 -1
- package/packages/core/dist/tools.d.ts +22 -0
- package/packages/core/dist/tools.d.ts.map +1 -1
- package/packages/core/dist/tools.js.map +1 -1
- package/packages/core/migrations/080_secret_requests.sql +14 -0
- package/packages/gateway/dist/.tsbuildinfo +1 -1
- package/packages/gateway/dist/chat/session.d.ts.map +1 -1
- package/packages/gateway/dist/chat/session.js +2 -1
- package/packages/gateway/dist/chat/session.js.map +1 -1
- package/packages/gateway/dist/missions/execute.d.ts.map +1 -1
- package/packages/gateway/dist/missions/execute.js +3 -1
- package/packages/gateway/dist/missions/execute.js.map +1 -1
- package/packages/gateway/dist/surfaces/browser-cards.d.ts +15 -3
- package/packages/gateway/dist/surfaces/browser-cards.d.ts.map +1 -1
- package/packages/gateway/dist/surfaces/browser-cards.js +34 -7
- package/packages/gateway/dist/surfaces/browser-cards.js.map +1 -1
- package/packages/gateway/dist/surfaces/offered-actions.d.ts.map +1 -1
- package/packages/gateway/dist/surfaces/offered-actions.js +8 -2
- package/packages/gateway/dist/surfaces/offered-actions.js.map +1 -1
- package/packages/gateway/dist/surfaces/pending-question.d.ts +3 -1
- package/packages/gateway/dist/surfaces/pending-question.d.ts.map +1 -1
- package/packages/gateway/dist/surfaces/pending-question.js.map +1 -1
- package/packages/gateway/dist/surfaces/secret-request.d.ts +173 -0
- package/packages/gateway/dist/surfaces/secret-request.d.ts.map +1 -0
- package/packages/gateway/dist/surfaces/secret-request.js +332 -0
- package/packages/gateway/dist/surfaces/secret-request.js.map +1 -0
- package/packages/gateway/dist/system-context.js +1 -1
- package/packages/gateway/dist/system-context.js.map +1 -1
- package/packages/gateway/dist/telegram/main.d.ts.map +1 -1
- package/packages/gateway/dist/telegram/main.js +14 -3
- package/packages/gateway/dist/telegram/main.js.map +1 -1
- package/packages/gateway/dist/telegram/surface.d.ts.map +1 -1
- package/packages/gateway/dist/telegram/surface.js +4 -1
- package/packages/gateway/dist/telegram/surface.js.map +1 -1
- package/packages/gateway/dist/web/api-routes.d.ts.map +1 -1
- package/packages/gateway/dist/web/api-routes.js +9 -1
- package/packages/gateway/dist/web/api-routes.js.map +1 -1
- package/packages/gateway/dist/web/approval-ask.js +2 -2
- package/packages/gateway/dist/web/approval-ask.js.map +1 -1
- package/packages/gateway/dist/web/browser-capture.d.ts +13 -0
- package/packages/gateway/dist/web/browser-capture.d.ts.map +1 -0
- package/packages/gateway/dist/web/browser-capture.js +24 -0
- package/packages/gateway/dist/web/browser-capture.js.map +1 -0
- package/packages/gateway/dist/web/chat.d.ts +26 -0
- package/packages/gateway/dist/web/chat.d.ts.map +1 -1
- package/packages/gateway/dist/web/chat.js +87 -2
- package/packages/gateway/dist/web/chat.js.map +1 -1
- package/packages/gateway/dist/web/extension.d.ts +30 -0
- package/packages/gateway/dist/web/extension.d.ts.map +1 -1
- package/packages/gateway/dist/web/extension.js +86 -6
- package/packages/gateway/dist/web/extension.js.map +1 -1
- package/packages/gateway/dist/web/onboarding.js +1 -1
- package/packages/gateway/dist/web/onboarding.js.map +1 -1
- package/packages/gateway/dist/web/remote-hand.d.ts +26 -2
- package/packages/gateway/dist/web/remote-hand.d.ts.map +1 -1
- package/packages/gateway/dist/web/remote-hand.js +89 -28
- package/packages/gateway/dist/web/remote-hand.js.map +1 -1
- package/packages/gateway/dist/web/secret-request.d.ts +54 -0
- package/packages/gateway/dist/web/secret-request.d.ts.map +1 -0
- package/packages/gateway/dist/web/secret-request.js +264 -0
- package/packages/gateway/dist/web/secret-request.js.map +1 -0
- package/packages/gateway/dist/web/secrets.d.ts +1 -0
- package/packages/gateway/dist/web/secrets.d.ts.map +1 -1
- package/packages/gateway/dist/web/secrets.js +1 -1
- package/packages/gateway/dist/web/secrets.js.map +1 -1
- package/packages/gateway/dist/web/server.d.ts.map +1 -1
- package/packages/gateway/dist/web/server.js +72 -3
- package/packages/gateway/dist/web/server.js.map +1 -1
- package/packages/install/dist/.tsbuildinfo +1 -1
- package/packages/runtime/dist/.tsbuildinfo +1 -1
- package/packages/runtime/dist/anthropic.d.ts +7 -0
- package/packages/runtime/dist/anthropic.d.ts.map +1 -1
- package/packages/runtime/dist/anthropic.js +19 -1
- package/packages/runtime/dist/anthropic.js.map +1 -1
- package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
- package/packages/tools/browser/dist/.tsbuildinfo +1 -1
- package/packages/tools/browser/dist/controller.d.ts +16 -1
- package/packages/tools/browser/dist/controller.d.ts.map +1 -1
- package/packages/tools/browser/dist/controller.js +59 -5
- package/packages/tools/browser/dist/controller.js.map +1 -1
- package/packages/tools/browser/dist/driver.d.ts +12 -0
- package/packages/tools/browser/dist/driver.d.ts.map +1 -1
- package/packages/tools/browser/dist/driver.js +41 -2
- package/packages/tools/browser/dist/driver.js.map +1 -1
- package/packages/tools/browser/dist/extension.d.ts +49 -9
- package/packages/tools/browser/dist/extension.d.ts.map +1 -1
- package/packages/tools/browser/dist/extension.js +145 -21
- package/packages/tools/browser/dist/extension.js.map +1 -1
- package/packages/tools/browser/dist/index.d.ts +10 -6
- package/packages/tools/browser/dist/index.d.ts.map +1 -1
- package/packages/tools/browser/dist/index.js +22 -8
- package/packages/tools/browser/dist/index.js.map +1 -1
- package/packages/tools/browser/dist/routes.d.ts +10 -1
- package/packages/tools/browser/dist/routes.d.ts.map +1 -1
- package/packages/tools/browser/dist/routes.js +24 -0
- package/packages/tools/browser/dist/routes.js.map +1 -1
- package/packages/tools/browser/dist/service.d.ts +48 -1
- package/packages/tools/browser/dist/service.d.ts.map +1 -1
- package/packages/tools/browser/dist/service.js +114 -11
- package/packages/tools/browser/dist/service.js.map +1 -1
- package/packages/tools/browser/dist/types.d.ts +54 -3
- package/packages/tools/browser/dist/types.d.ts.map +1 -1
- package/packages/tools/browser/dist/types.js +17 -1
- package/packages/tools/browser/dist/types.js.map +1 -1
- package/packages/tools/email/dist/.tsbuildinfo +1 -1
- package/packages/tools/host/dist/.tsbuildinfo +1 -1
- package/packages/tools/mcp/dist/.tsbuildinfo +1 -1
- package/packages/tools/memory/dist/.tsbuildinfo +1 -1
- package/packages/tools/web/dist/.tsbuildinfo +1 -1
- package/packages/web/dist/assets/index-oxmxR39o.js +155 -0
- package/packages/web/dist/assets/index-rMRjibNI.css +1 -0
- package/packages/web/dist/assets/{lottie_light-D7CS-IeP.js → lottie_light-DROBTM6Y.js} +1 -1
- package/packages/web/dist/build.json +1 -1
- package/packages/web/dist/index.html +2 -2
- package/packages/web/dist/precache.json +4 -4
- package/node_modules/playwright/jsx-runtime.js +0 -42
- package/node_modules/playwright/jsx-runtime.mjs +0 -21
- package/node_modules/playwright-core/lib/vite/recorder/assets/index-hrlLqLtq.js +0 -129
- package/node_modules/playwright-core/lib/vite/traceViewer/assets/defaultSettingsView-Ds6CBOo0.js +0 -182
- package/packages/web/dist/assets/index-BibqUZwt.js +0 -155
- package/packages/web/dist/assets/index-DBVZzTau.css +0 -1
|
@@ -1,24 +1,13 @@
|
|
|
1
1
|
import type { ImapFlow } from '../imap-flow.js';
|
|
2
2
|
import type { MailboxObject, MailboxOpenOptions } from '../types.js';
|
|
3
|
-
/**
|
|
4
|
-
|
|
5
|
-
* parameters, which are only honored when the QRESYNC extension has been enabled
|
|
6
|
-
*/
|
|
7
|
-
export interface SelectOptions extends MailboxOpenOptions {
|
|
8
|
-
/** QRESYNC modseq value to fetch changes since */
|
|
9
|
-
changedSince?: bigint | number | string | undefined;
|
|
10
|
-
/** QRESYNC UID validity value */
|
|
11
|
-
uidValidity?: bigint | number | string | undefined;
|
|
12
|
-
}
|
|
3
|
+
/** SELECT/EXAMINE options, the QRESYNC parameters are part of the public mailboxOpen() options */
|
|
4
|
+
export type SelectOptions = MailboxOpenOptions;
|
|
13
5
|
/**
|
|
14
6
|
* Selects or examines a mailbox, making it the current mailbox for subsequent operations.
|
|
15
7
|
*
|
|
16
8
|
* @param connection - IMAP connection instance
|
|
17
9
|
* @param path - Mailbox path to select
|
|
18
|
-
* @param options - Select options
|
|
19
|
-
* @param options.readOnly - If true, use EXAMINE instead of SELECT (read-only access)
|
|
20
|
-
* @param options.changedSince - QRESYNC modseq value to fetch changes since
|
|
21
|
-
* @param options.uidValidity - QRESYNC UID validity value
|
|
10
|
+
* @param options - Select options, see MailboxOpenOptions
|
|
22
11
|
* @returns Mailbox info object with path, flags, exists, uidNext, uidValidity, highestModseq, etc., or undefined if preconditions not met
|
|
23
12
|
* @throws If the SELECT/EXAMINE command fails
|
|
24
13
|
*/
|
|
@@ -48,10 +48,7 @@ const VALUED_RESPONSE_CODES = Object.assign(Object.create(null), {
|
|
|
48
48
|
*
|
|
49
49
|
* @param connection - IMAP connection instance
|
|
50
50
|
* @param path - Mailbox path to select
|
|
51
|
-
* @param options - Select options
|
|
52
|
-
* @param options.readOnly - If true, use EXAMINE instead of SELECT (read-only access)
|
|
53
|
-
* @param options.changedSince - QRESYNC modseq value to fetch changes since
|
|
54
|
-
* @param options.uidValidity - QRESYNC UID validity value
|
|
51
|
+
* @param options - Select options, see MailboxOpenOptions
|
|
55
52
|
* @returns Mailbox info object with path, flags, exists, uidNext, uidValidity, highestModseq, etc., or undefined if preconditions not met
|
|
56
53
|
* @throws If the SELECT/EXAMINE command fails
|
|
57
54
|
*/
|
|
@@ -16,7 +16,7 @@ import { ConnectionDeadline } from './connection-deadline.js';
|
|
|
16
16
|
import { downloadMessage, downloadMessageParts } from './download.js';
|
|
17
17
|
import { AuthenticationFailure } from './errors.js';
|
|
18
18
|
import imapCommands from './imap-commands.js';
|
|
19
|
-
import { comparePaths, updateCapabilities, getFolderTree, formatMessageResponse, packMessageRange, normalizePath, expandRange, getColorFlags, hasCapability, isRev2Active, logConnectionError, unrefTimer, clearTimer, parseUintValue, getStringList, getTextValues, emitSafe, buildConnectionError, guardedPromise, guardedReject, MAX_UINT32_DIGITS } from './tools.js';
|
|
19
|
+
import { comparePaths, updateCapabilities, getFolderTree, formatMessageResponse, mergeFetchRows, packMessageRange, normalizePath, expandRange, getColorFlags, hasCapability, isRev2Active, logConnectionError, unrefTimer, clearTimer, parseUintValue, getStringList, getTextValues, emitSafe, buildConnectionError, guardedPromise, guardedReject, MAX_UINT32_DIGITS } from './tools.js';
|
|
20
20
|
export { AuthenticationFailure, ImapFlowErrorCode } from './errors.js';
|
|
21
21
|
const GREETING_TIMEOUT = 16 * 1000;
|
|
22
22
|
const UPGRADE_TIMEOUT = 10 * 1000;
|
|
@@ -1471,6 +1471,13 @@ export class ImapFlow extends EventEmitter {
|
|
|
1471
1471
|
// socket event cannot re-enter an already settled upgrade or leave state behind.
|
|
1472
1472
|
const settle = (err, result) => {
|
|
1473
1473
|
if (settled) {
|
|
1474
|
+
// A failed handshake can produce more than one error (Bun emits ECONNRESET on
|
|
1475
|
+
// the TLS socket after the one that settled the upgrade). settle() stays the
|
|
1476
|
+
// error listener of both sockets until they are torn down, so later errors
|
|
1477
|
+
// end up here instead of being thrown as unhandled 'error' events.
|
|
1478
|
+
if (err) {
|
|
1479
|
+
this.log.debug({ msg: 'Socket error after the TLS upgrade was settled', err, cid: this.id });
|
|
1480
|
+
}
|
|
1474
1481
|
return;
|
|
1475
1482
|
}
|
|
1476
1483
|
settled = true;
|
|
@@ -1478,9 +1485,12 @@ export class ImapFlow extends EventEmitter {
|
|
|
1478
1485
|
this.upgradeTimeout = null;
|
|
1479
1486
|
this.upgrading = false;
|
|
1480
1487
|
this._upgradeReject = null;
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1488
|
+
if (!err) {
|
|
1489
|
+
// the generic socket handlers took over in the success callback
|
|
1490
|
+
socketPlain.removeListener('error', settle);
|
|
1491
|
+
if (this.socket && this.socket !== socketPlain) {
|
|
1492
|
+
this.socket.removeListener('error', settle);
|
|
1493
|
+
}
|
|
1484
1494
|
}
|
|
1485
1495
|
if (err) {
|
|
1486
1496
|
clearTimer(this.connectTimeout);
|
|
@@ -1498,7 +1508,7 @@ export class ImapFlow extends EventEmitter {
|
|
|
1498
1508
|
// one function, one settlement, and removeListener() in settle() needs no separate
|
|
1499
1509
|
// handler references. A TLS handshake failure (bad certificate, protocol mismatch)
|
|
1500
1510
|
// is emitted on the new TLS socket rather than on the plain one, so both are covered.
|
|
1501
|
-
socketPlain.
|
|
1511
|
+
socketPlain.on('error', settle);
|
|
1502
1512
|
/* c8 ignore start */ // UPGRADE_TIMEOUT is 10s; firing it deterministically would make the test suite hang
|
|
1503
1513
|
this.upgradeTimeout = setTimeout(() => {
|
|
1504
1514
|
let err = new Error('Failed to upgrade connection in required time');
|
|
@@ -1576,7 +1586,7 @@ export class ImapFlow extends EventEmitter {
|
|
|
1576
1586
|
// error listener during the handshake window; the generic handlers are installed
|
|
1577
1587
|
// by setSocketHandlers() inside the success callback above, so a handshake error
|
|
1578
1588
|
// has a single error path.
|
|
1579
|
-
tlsSocket.
|
|
1589
|
+
tlsSocket.on('error', settle);
|
|
1580
1590
|
this.writeSocket = tlsSocket;
|
|
1581
1591
|
});
|
|
1582
1592
|
if (upgraded) {
|
|
@@ -3111,7 +3121,21 @@ export class ImapFlow extends EventEmitter {
|
|
|
3111
3121
|
if (!response || !response.list || !response.list.length) {
|
|
3112
3122
|
return false;
|
|
3113
3123
|
}
|
|
3114
|
-
|
|
3124
|
+
// Every FETCH row that arrived during the command is in the list, also unsolicited ones
|
|
3125
|
+
// for other messages or with only a flag change, and a server may split the answer for
|
|
3126
|
+
// one message over several rows. Taking the first row returned a flag update instead
|
|
3127
|
+
// of the requested data, which ended a download after its first chunk (issue #426).
|
|
3128
|
+
let rows = response.list;
|
|
3129
|
+
let requested = parseUintValue(String(seq), MAX_UINT32_DIGITS);
|
|
3130
|
+
// a range: the first message of the answer, as before
|
|
3131
|
+
let target = requested === false ? rows[0] : rows.find(row => (options && options.uid ? row.uid : row.seq) === requested);
|
|
3132
|
+
if (!target) {
|
|
3133
|
+
return false;
|
|
3134
|
+
}
|
|
3135
|
+
// rows of the same message, without the ones a malformed answer gives no usable
|
|
3136
|
+
// sequence number or another UID
|
|
3137
|
+
let { seq: targetSeq, uid: targetUid } = target;
|
|
3138
|
+
return targetSeq ? mergeFetchRows(rows.filter(row => row.seq === targetSeq && (!row.uid || !targetUid || row.uid === targetUid))) : target;
|
|
3115
3139
|
}
|
|
3116
3140
|
/**
|
|
3117
3141
|
* Download either full rfc822 formatted message or a specific bodystructure part as a Stream.
|
|
@@ -287,6 +287,16 @@ export declare function getColorFlags(color: string | null | undefined): {
|
|
|
287
287
|
add: string[];
|
|
288
288
|
remove: string[];
|
|
289
289
|
} | null;
|
|
290
|
+
/**
|
|
291
|
+
* Merges the FETCH rows a server sent for one message into one message object. A server may
|
|
292
|
+
* split the data items of a message over several FETCH responses, and may put an unsolicited
|
|
293
|
+
* one (a flag change made by another session) in between (RFC 9051 sections 7.5.2 and 5.2).
|
|
294
|
+
* Later rows win for single values, bodyParts, binaryParts and partialOrigins are combined.
|
|
295
|
+
*
|
|
296
|
+
* @param rows - Formatted rows of the same message, in the order they arrived
|
|
297
|
+
* @returns One message object holding the data of every row
|
|
298
|
+
*/
|
|
299
|
+
export declare function mergeFetchRows(rows: FetchMessageObject[]): FetchMessageObject;
|
|
290
300
|
/**
|
|
291
301
|
* Formats a raw untagged FETCH response into a structured message object.
|
|
292
302
|
*
|
|
@@ -657,6 +657,34 @@ export function getColorFlags(color) {
|
|
|
657
657
|
}
|
|
658
658
|
return result;
|
|
659
659
|
}
|
|
660
|
+
/**
|
|
661
|
+
* Merges the FETCH rows a server sent for one message into one message object. A server may
|
|
662
|
+
* split the data items of a message over several FETCH responses, and may put an unsolicited
|
|
663
|
+
* one (a flag change made by another session) in between (RFC 9051 sections 7.5.2 and 5.2).
|
|
664
|
+
* Later rows win for single values, bodyParts, binaryParts and partialOrigins are combined.
|
|
665
|
+
*
|
|
666
|
+
* @param rows - Formatted rows of the same message, in the order they arrived
|
|
667
|
+
* @returns One message object holding the data of every row
|
|
668
|
+
*/
|
|
669
|
+
export function mergeFetchRows(rows) {
|
|
670
|
+
if (rows.length === 1) {
|
|
671
|
+
return rows[0];
|
|
672
|
+
}
|
|
673
|
+
let merged = {};
|
|
674
|
+
let partialOrigins;
|
|
675
|
+
for (let row of rows) {
|
|
676
|
+
let { bodyParts, binaryParts, ...rest } = row;
|
|
677
|
+
Object.assign(merged, rest);
|
|
678
|
+
// combined into collections of their own, so the rows stay untouched
|
|
679
|
+
bodyParts?.forEach((value, key) => (merged.bodyParts ??= new Map()).set(key, value));
|
|
680
|
+
binaryParts?.forEach(key => (merged.binaryParts ??= new Set()).add(key));
|
|
681
|
+
row.partialOrigins?.forEach((value, key) => (partialOrigins ??= new Map()).set(key, value));
|
|
682
|
+
}
|
|
683
|
+
if (partialOrigins) {
|
|
684
|
+
Object.defineProperty(merged, 'partialOrigins', { value: partialOrigins, writable: true, configurable: true });
|
|
685
|
+
}
|
|
686
|
+
return merged;
|
|
687
|
+
}
|
|
660
688
|
/**
|
|
661
689
|
* Formats a raw untagged FETCH response into a structured message object.
|
|
662
690
|
*
|
|
@@ -499,6 +499,8 @@ export interface FetchQueryObject {
|
|
|
499
499
|
/** Include full message in the response, up to maxLength bytes */
|
|
500
500
|
maxLength?: number | undefined;
|
|
501
501
|
} | undefined;
|
|
502
|
+
/** Email ID (OBJECTID EMAILID or Gmail X-GM-MSGID) is always requested when the server supports either extension, so this is accepted but changes nothing */
|
|
503
|
+
emailId?: boolean | undefined;
|
|
502
504
|
/** If true then include thread ID in the response (only if server supports either OBJECTID or X-GM-EXT-1 extensions) */
|
|
503
505
|
threadId?: boolean | undefined;
|
|
504
506
|
/** If true then include GMail labels in the response (only if server supports X-GM-EXT-1 extension) */
|
|
@@ -653,9 +655,11 @@ export interface DownloadOptions {
|
|
|
653
655
|
maxBytes?: number | undefined;
|
|
654
656
|
/** How large content parts to ask from the server. Defaults to 65536 */
|
|
655
657
|
chunkSize?: number | undefined;
|
|
658
|
+
/** If true then requests the content with FETCH BINARY when the server supports it (BINARY or IMAP4rev2), so the server removes the transfer encoding */
|
|
659
|
+
binary?: boolean | undefined;
|
|
656
660
|
}
|
|
657
661
|
/** Options for downloadMany(): the download() options without `chunkSize`, as the parts come in one FETCH */
|
|
658
|
-
export type DownloadManyOptions = Pick<DownloadOptions, 'uid' | 'maxBytes'>;
|
|
662
|
+
export type DownloadManyOptions = Pick<DownloadOptions, 'uid' | 'maxBytes' | 'binary'>;
|
|
659
663
|
export interface DownloadManyPart {
|
|
660
664
|
meta: DownloadMeta;
|
|
661
665
|
content?: Buffer | null | undefined;
|
|
@@ -706,6 +710,10 @@ export interface MailboxOpenOptions {
|
|
|
706
710
|
readOnly?: boolean | undefined;
|
|
707
711
|
/** Optional description for mailbox lock tracking */
|
|
708
712
|
description?: string | undefined;
|
|
713
|
+
/** QRESYNC (RFC 7162): HIGHESTMODSEQ from an earlier session. With `uidValidity` and QRESYNC enabled, changes since then are reported as `flags` and `expunge` events. getMailboxLock() only applies it when it selects the mailbox, not when the mailbox is already open */
|
|
714
|
+
changedSince?: bigint | number | string | undefined;
|
|
715
|
+
/** QRESYNC (RFC 7162): the UIDVALIDITY known from the previous session, required with `changedSince` */
|
|
716
|
+
uidValidity?: bigint | number | string | undefined;
|
|
709
717
|
}
|
|
710
718
|
export interface MailboxLockOptions extends MailboxOpenOptions {
|
|
711
719
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "imapflow",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.10",
|
|
4
4
|
"description": "IMAP Client for Node",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/cjs/imap-flow.js",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"eslint": "10.12.0",
|
|
76
76
|
"eslint-config-prettier": "10.1.8",
|
|
77
77
|
"globals": "17.13.0",
|
|
78
|
-
"imapkit": "4.1.
|
|
78
|
+
"imapkit": "4.1.1",
|
|
79
79
|
"prettier": "3.9.9",
|
|
80
80
|
"tsx": "4.23.15",
|
|
81
81
|
"types-node-legacy": "npm:@types/node@20.0.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 🎭 Playwright
|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/playwright) <!-- GEN:chromium-version-badge -->[](https://www.npmjs.com/package/playwright) <!-- GEN:chromium-version-badge -->[](https://www.chromium.org/Home)<!-- GEN:stop --> <!-- GEN:firefox-version-badge -->[](https://www.mozilla.org/en-US/firefox/new/)<!-- GEN:stop --> <!-- GEN:webkit-version-badge -->[](https://webkit.org/)<!-- GEN:stop --> [](https://aka.ms/playwright/discord)
|
|
4
4
|
|
|
5
5
|
## [Documentation](https://playwright.dev) | [API reference](https://playwright.dev/docs/api/class-playwright)
|
|
6
6
|
|
|
@@ -296,9 +296,9 @@ The [Playwright VS Code extension](https://marketplace.visualstudio.com/items?it
|
|
|
296
296
|
|
|
297
297
|
| | Linux | macOS | Windows |
|
|
298
298
|
| :--- | :---: | :---: | :---: |
|
|
299
|
-
| Chromium<sup>1</sup> <!-- GEN:chromium-version -->
|
|
300
|
-
| WebKit <!-- GEN:webkit-version -->
|
|
301
|
-
| Firefox <!-- GEN:firefox-version -->
|
|
299
|
+
| Chromium<sup>1</sup> <!-- GEN:chromium-version -->156.0.8078.4<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: |
|
|
300
|
+
| WebKit <!-- GEN:webkit-version -->27.2<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: |
|
|
301
|
+
| Firefox <!-- GEN:firefox-version -->157.0<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: |
|
|
302
302
|
|
|
303
303
|
Headless and headed execution on all platforms. <sup>1</sup> Uses [Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing) by default.
|
|
304
304
|
|
|
@@ -68,7 +68,7 @@ application behavior.
|
|
|
68
68
|
// seed: tests/seed.spec.ts
|
|
69
69
|
|
|
70
70
|
test.describe('Adding New Todos', () => {
|
|
71
|
-
test('Add Valid Todo', async { page } => {
|
|
71
|
+
test('Add Valid Todo', async ({ page }) => {
|
|
72
72
|
// 1. Click in the "What needs to be done?" input field
|
|
73
73
|
await page.click(...);
|
|
74
74
|
|
|
@@ -38,9 +38,7 @@ var import_path = __toESM(require("path"));
|
|
|
38
38
|
var import_common = require("../common");
|
|
39
39
|
var import_runner = require("../runner");
|
|
40
40
|
const { gracefullyProcessExitDoNotHang } = require("playwright-core/lib/coreBundle").utils;
|
|
41
|
-
const { startProfiling, stopProfiling } = require("playwright-core/lib/coreBundle").utils;
|
|
42
41
|
async function runTests(args, opts) {
|
|
43
|
-
await startProfiling();
|
|
44
42
|
const cliOverrides = overridesFromOptions(opts);
|
|
45
43
|
cliOverrides.argv = process.argv;
|
|
46
44
|
const config = await import_common.configLoader.loadConfigFromFile(opts.config, cliOverrides, opts.deps === false);
|
|
@@ -71,7 +69,6 @@ async function runTests(args, opts) {
|
|
|
71
69
|
project: opts.project || void 0,
|
|
72
70
|
reporter: Array.isArray(opts.reporter) ? opts.reporter : opts.reporter ? [opts.reporter] : void 0
|
|
73
71
|
});
|
|
74
|
-
await stopProfiling("runner");
|
|
75
72
|
const exitCode2 = status2 === "interrupted" ? 130 : status2 === "passed" ? 0 : 1;
|
|
76
73
|
gracefullyProcessExitDoNotHang(exitCode2);
|
|
77
74
|
return;
|
|
@@ -87,13 +84,11 @@ async function runTests(args, opts) {
|
|
|
87
84
|
grep: opts.grep
|
|
88
85
|
}
|
|
89
86
|
);
|
|
90
|
-
await stopProfiling("runner");
|
|
91
87
|
const exitCode2 = status2 === "interrupted" ? 130 : status2 === "passed" ? 0 : 1;
|
|
92
88
|
gracefullyProcessExitDoNotHang(exitCode2);
|
|
93
89
|
return;
|
|
94
90
|
}
|
|
95
91
|
const status = await import_runner.testRunner.runAllTestsWithConfig(config, options);
|
|
96
|
-
await stopProfiling("runner");
|
|
97
92
|
const exitCode = status === "interrupted" ? 130 : status === "passed" ? 0 : 1;
|
|
98
93
|
gracefullyProcessExitDoNotHang(exitCode);
|
|
99
94
|
}
|
|
@@ -130,6 +125,7 @@ function overridesFromOptions(options) {
|
|
|
130
125
|
reporter: resolveReporterOption(options.reporter),
|
|
131
126
|
additionalReporters: resolveReporterOption(options.addReporter),
|
|
132
127
|
shard: resolveShardOption(options.shard),
|
|
128
|
+
shuffle: resolveShuffleOption(options.shuffle),
|
|
133
129
|
timeout: options.timeout ? parseInt(options.timeout, 10) : void 0,
|
|
134
130
|
tsconfig: options.tsconfig ? import_path.default.resolve(process.cwd(), options.tsconfig) : void 0,
|
|
135
131
|
ignoreSnapshots: options.ignoreSnapshots ? !!options.ignoreSnapshots : void 0,
|
|
@@ -167,6 +163,13 @@ function resolveReporterOption(reporter) {
|
|
|
167
163
|
return void 0;
|
|
168
164
|
return reporter.split(",").map((r) => [resolveReporter(r)]);
|
|
169
165
|
}
|
|
166
|
+
function resolveShuffleOption(shuffle) {
|
|
167
|
+
if (!shuffle)
|
|
168
|
+
return void 0;
|
|
169
|
+
if (shuffle === true)
|
|
170
|
+
return String(Math.floor(Math.random() * 1e9));
|
|
171
|
+
return shuffle;
|
|
172
|
+
}
|
|
170
173
|
function resolveShardOption(shard) {
|
|
171
174
|
if (!shard)
|
|
172
175
|
return void 0;
|
|
@@ -518,6 +518,7 @@ var FullConfigInternal = class {
|
|
|
518
518
|
metadata: metadata ?? userConfig.metadata,
|
|
519
519
|
preserveOutput: takeFirst(userConfig.preserveOutput, "always"),
|
|
520
520
|
projects: [],
|
|
521
|
+
filteredProjects: [],
|
|
521
522
|
quiet: takeFirst(configCLIOverrides.quiet, userConfig.quiet, false),
|
|
522
523
|
reporter: [...takeFirst(configCLIOverrides.reporter, resolveReporters(userConfig.reporter, configDir), [[defaultReporter]]), ...configCLIOverrides.additionalReporters ?? []],
|
|
523
524
|
reportSlowTests: takeFirst(userConfig.reportSlowTests, {
|
|
@@ -527,7 +528,7 @@ var FullConfigInternal = class {
|
|
|
527
528
|
}),
|
|
528
529
|
shard: takeFirst(configCLIOverrides.shard, userConfig.shard, null),
|
|
529
530
|
tags: globalTags,
|
|
530
|
-
updateSnapshots: takeFirst(configCLIOverrides.updateSnapshots, userConfig.updateSnapshots, "
|
|
531
|
+
updateSnapshots: takeFirst(configCLIOverrides.updateSnapshots, userConfig.updateSnapshots, "default"),
|
|
531
532
|
updateSourceMethod: takeFirst(configCLIOverrides.updateSourceMethod, userConfig.updateSourceMethod, "patch"),
|
|
532
533
|
version: import_package2.packageJSON.version,
|
|
533
534
|
workers: resolveWorkers(takeFirst(configCLIOverrides.debug || configCLIOverrides.pause ? 1 : void 0, configCLIOverrides.workers, userConfig.workers, "50%")),
|
|
@@ -553,6 +554,7 @@ var FullConfigInternal = class {
|
|
|
553
554
|
resolveProjectDependencies(this.projects);
|
|
554
555
|
this._assignUniqueProjectIds(this.projects);
|
|
555
556
|
this.config.projects = this.projects.map((p) => p.project);
|
|
557
|
+
this.config.filteredProjects = this.config.projects;
|
|
556
558
|
}
|
|
557
559
|
_assignUniqueProjectIds(projects) {
|
|
558
560
|
const usedNames = /* @__PURE__ */ new Set();
|
|
@@ -611,6 +613,7 @@ var FullProjectInternal = class {
|
|
|
611
613
|
this.workers = projectConfig.workers ? resolveWorkers(projectConfig.workers) : void 0;
|
|
612
614
|
if (configCLIOverrides.debug && this.workers)
|
|
613
615
|
this.workers = 1;
|
|
616
|
+
this.default = projectConfig.default ?? true;
|
|
614
617
|
}
|
|
615
618
|
};
|
|
616
619
|
function pathResolve(baseDir, relative) {
|
|
@@ -687,7 +690,7 @@ function toReporters(reporters) {
|
|
|
687
690
|
return [[reporters]];
|
|
688
691
|
return reporters;
|
|
689
692
|
}
|
|
690
|
-
var builtInReporters = ["list", "line", "dot", "json", "junit", "null", "github", "html", "blob", "perfetto"];
|
|
693
|
+
var builtInReporters = ["list", "line", "dot", "json", "junit", "null", "github", "html", "blob", "perfetto", "coverage"];
|
|
691
694
|
function resolveScript(id, rootDir) {
|
|
692
695
|
if (!id)
|
|
693
696
|
return void 0;
|
|
@@ -740,6 +743,7 @@ var import_crypto = __toESM(require("crypto"));
|
|
|
740
743
|
var import_path4 = __toESM(require("path"));
|
|
741
744
|
var import_fs4 = __toESM(require("fs"));
|
|
742
745
|
var json5 = require("playwright-core/lib/utilsBundle").json5;
|
|
746
|
+
var jsxOptionNames = ["jsx", "jsxFactory", "jsxFragmentFactory", "jsxImportSource"];
|
|
743
747
|
function loadTsConfig(configPath) {
|
|
744
748
|
try {
|
|
745
749
|
const references = [];
|
|
@@ -779,6 +783,10 @@ function innerLoadTsConfig(configFilePath, references, visited = /* @__PURE__ */
|
|
|
779
783
|
}
|
|
780
784
|
if (parsedConfig.compilerOptions?.allowJs !== void 0)
|
|
781
785
|
result2.allowJs = parsedConfig.compilerOptions.allowJs;
|
|
786
|
+
for (const name of jsxOptionNames) {
|
|
787
|
+
if (parsedConfig.compilerOptions?.[name] !== void 0)
|
|
788
|
+
result2[name] = parsedConfig.compilerOptions[name];
|
|
789
|
+
}
|
|
782
790
|
if (parsedConfig.compilerOptions?.paths !== void 0) {
|
|
783
791
|
result2.paths = {
|
|
784
792
|
mapping: parsedConfig.compilerOptions.paths,
|
|
@@ -947,7 +955,13 @@ function validateTsConfig(tsconfig) {
|
|
|
947
955
|
return {
|
|
948
956
|
allowJs: !!tsconfig.allowJs,
|
|
949
957
|
pathsBase,
|
|
950
|
-
paths: Object.entries(tsconfig.paths?.mapping || {}).map(([key, values]) => ({ key, values })).concat(pathsFallback)
|
|
958
|
+
paths: Object.entries(tsconfig.paths?.mapping || {}).map(([key, values]) => ({ key, values })).concat(pathsFallback),
|
|
959
|
+
jsx: tsconfig.jsx ? {
|
|
960
|
+
jsx: tsconfig.jsx.toLowerCase(),
|
|
961
|
+
jsxFactory: tsconfig.jsxFactory,
|
|
962
|
+
jsxFragmentFactory: tsconfig.jsxFragmentFactory,
|
|
963
|
+
jsxImportSource: tsconfig.jsxImportSource
|
|
964
|
+
} : void 0
|
|
951
965
|
};
|
|
952
966
|
}
|
|
953
967
|
function loadAndValidateTsconfigsForFile(file2) {
|
|
@@ -1052,21 +1066,22 @@ function shouldTransform(filename) {
|
|
|
1052
1066
|
function transformHook(originalCode, filename, moduleUrl) {
|
|
1053
1067
|
const hasPreprocessor = process.env.PW_TEST_SOURCE_TRANSFORM && process.env.PW_TEST_SOURCE_TRANSFORM_SCOPE && process.env.PW_TEST_SOURCE_TRANSFORM_SCOPE.split(pathSeparator).some((f) => filename.startsWith(f));
|
|
1054
1068
|
const pluginsEpilogue = hasPreprocessor ? [[process.env.PW_TEST_SOURCE_TRANSFORM]] : [];
|
|
1055
|
-
const
|
|
1069
|
+
const jsx = loadAndValidateTsconfigsForFile(filename).find((tsconfig) => tsconfig.jsx)?.jsx;
|
|
1070
|
+
const hash = calculateHash(originalCode, filename, !!moduleUrl, pluginsEpilogue, jsx);
|
|
1056
1071
|
const { cachedCode, addToCache, serializedCache } = getFromCompilationCache(filename, hash, moduleUrl);
|
|
1057
1072
|
if (cachedCode !== void 0)
|
|
1058
1073
|
return { code: cachedCode, serializedCache };
|
|
1059
1074
|
process.env.BROWSERSLIST_IGNORE_OLD_DATA = "true";
|
|
1060
1075
|
const { babelTransform } = require((0, import_package3.libPath)("transform", "babelBundle"));
|
|
1061
|
-
const babelResult = babelTransform(originalCode, filename, !!moduleUrl, pluginsEpilogue,
|
|
1076
|
+
const babelResult = babelTransform(originalCode, filename, !!moduleUrl, pluginsEpilogue, jsx);
|
|
1062
1077
|
if (!babelResult?.code)
|
|
1063
1078
|
return { code: originalCode, serializedCache };
|
|
1064
1079
|
const { code, map } = babelResult;
|
|
1065
1080
|
const added = addToCache(code, map);
|
|
1066
1081
|
return { code, serializedCache: added.serializedCache };
|
|
1067
1082
|
}
|
|
1068
|
-
function calculateHash(content, filePath, isModule2, pluginsEpilogue) {
|
|
1069
|
-
const hash = import_crypto.default.createHash("sha1").update(isModule2 ? "esm" : "no_esm").update(content).update(filePath).update(version).update(pluginsEpilogue.map((p) => p[0]).join(",")).digest("hex");
|
|
1083
|
+
function calculateHash(content, filePath, isModule2, pluginsEpilogue, jsx) {
|
|
1084
|
+
const hash = import_crypto.default.createHash("sha1").update(isModule2 ? "esm" : "no_esm").update(content).update(filePath).update(version).update(pluginsEpilogue.map((p) => p[0]).join(",")).update(jsx ? JSON.stringify(jsx) : "").digest("hex");
|
|
1070
1085
|
return hash;
|
|
1071
1086
|
}
|
|
1072
1087
|
async function requireOrImport(file) {
|
|
@@ -1283,8 +1298,7 @@ async function loadConfig(location, overrides, ignoreProjectDependencies = false
|
|
|
1283
1298
|
}
|
|
1284
1299
|
}
|
|
1285
1300
|
const external = userConfig.build?.external || [];
|
|
1286
|
-
|
|
1287
|
-
await setTransformConfig({ external, jsxImportSource });
|
|
1301
|
+
await setTransformConfig({ external });
|
|
1288
1302
|
if (!overrides?.tsconfig)
|
|
1289
1303
|
await setSingleTSConfig(fullConfig?.singleTSConfigPath);
|
|
1290
1304
|
return fullConfig;
|
|
@@ -1387,8 +1401,8 @@ function validateConfig(file2, config) {
|
|
|
1387
1401
|
throw errorWithFile(file2, `config.shard.current must be a positive number, not greater than config.shard.total`);
|
|
1388
1402
|
}
|
|
1389
1403
|
if ("updateSnapshots" in config && config.updateSnapshots !== void 0) {
|
|
1390
|
-
if (typeof config.updateSnapshots !== "string" || !["all", "changed", "missing", "none"].includes(config.updateSnapshots))
|
|
1391
|
-
throw errorWithFile(file2, `config.updateSnapshots must be one of "all", "changed", "missing" or "
|
|
1404
|
+
if (typeof config.updateSnapshots !== "string" || !["all", "changed", "missing", "none", "default"].includes(config.updateSnapshots))
|
|
1405
|
+
throw errorWithFile(file2, `config.updateSnapshots must be one of "all", "changed", "missing", "none" or "default"`);
|
|
1392
1406
|
}
|
|
1393
1407
|
if ("retryStrategy" in config && config.retryStrategy !== void 0) {
|
|
1394
1408
|
if (typeof config.retryStrategy !== "string" || !["immediate", "isolated"].includes(config.retryStrategy))
|
|
@@ -1424,6 +1438,10 @@ function validateProject(file2, project, title) {
|
|
|
1424
1438
|
if (typeof project.testDir !== "string")
|
|
1425
1439
|
throw errorWithFile(file2, `${title}.testDir must be a string`);
|
|
1426
1440
|
}
|
|
1441
|
+
if (project.expect?.toHaveScreenshot?.type !== void 0) {
|
|
1442
|
+
if (!["png", "webp"].includes(project.expect.toHaveScreenshot.type))
|
|
1443
|
+
throw errorWithFile(file2, `${title}.expect.toHaveScreenshot.type must be one of "png" or "webp"`);
|
|
1444
|
+
}
|
|
1427
1445
|
for (const prop of ["testIgnore", "testMatch"]) {
|
|
1428
1446
|
if (prop in project && project[prop] !== void 0) {
|
|
1429
1447
|
const value = project[prop];
|
|
@@ -1889,7 +1907,6 @@ var import_bootstrap = require("playwright-core/lib/bootstrap");
|
|
|
1889
1907
|
var import_package4 = require("../package");
|
|
1890
1908
|
var { ManualPromise } = require("playwright-core/lib/coreBundle").iso;
|
|
1891
1909
|
var { setTimeOrigin } = require("playwright-core/lib/coreBundle").iso;
|
|
1892
|
-
var { startProfiling, stopProfiling } = require("playwright-core/lib/coreBundle").utils;
|
|
1893
1910
|
var { setBoxedStackPrefixes } = require("playwright-core/lib/coreBundle").utils;
|
|
1894
1911
|
var ProcessRunner = class {
|
|
1895
1912
|
async gracefullyClose() {
|
|
@@ -1909,7 +1926,6 @@ var ProcessRunner = class {
|
|
|
1909
1926
|
var gracefullyCloseCalled = false;
|
|
1910
1927
|
var forceExitInitiated = false;
|
|
1911
1928
|
var processRunner;
|
|
1912
|
-
var processName;
|
|
1913
1929
|
var startingEnv = { ...process.env };
|
|
1914
1930
|
setBoxedStackPrefixes([import_package4.packageRoot]);
|
|
1915
1931
|
function startProcessRunner(create) {
|
|
@@ -1922,10 +1938,8 @@ function startProcessRunner(create) {
|
|
|
1922
1938
|
process.on("message", async (message) => {
|
|
1923
1939
|
if (message.method === "__init__") {
|
|
1924
1940
|
const { processParams, runnerParams } = message.params;
|
|
1925
|
-
void startProfiling();
|
|
1926
1941
|
setTimeOrigin(processParams.timeOrigin);
|
|
1927
1942
|
processRunner = create(runnerParams);
|
|
1928
|
-
processName = processParams.processName;
|
|
1929
1943
|
return;
|
|
1930
1944
|
}
|
|
1931
1945
|
if (message.method === "__stop__") {
|
|
@@ -1955,7 +1969,7 @@ var kHeartbeatInterval = 1e3;
|
|
|
1955
1969
|
async function gracefullyCloseAndExit(forceExit) {
|
|
1956
1970
|
if (forceExit && !forceExitInitiated) {
|
|
1957
1971
|
forceExitInitiated = true;
|
|
1958
|
-
setTimeout(() =>
|
|
1972
|
+
setTimeout(() => (0, import_bootstrap.processExit)(0), kForceExitTimeout);
|
|
1959
1973
|
}
|
|
1960
1974
|
if (!gracefullyCloseCalled) {
|
|
1961
1975
|
gracefullyCloseCalled = true;
|
|
@@ -1964,10 +1978,7 @@ async function gracefullyCloseAndExit(forceExit) {
|
|
|
1964
1978
|
await processRunner?.gracefullyClose().catch(() => {
|
|
1965
1979
|
});
|
|
1966
1980
|
clearInterval(heartbeat);
|
|
1967
|
-
|
|
1968
|
-
await stopProfiling(processName).catch(() => {
|
|
1969
|
-
});
|
|
1970
|
-
process.exit(0);
|
|
1981
|
+
(0, import_bootstrap.processExit)(0);
|
|
1971
1982
|
}
|
|
1972
1983
|
}
|
|
1973
1984
|
function sendMessageToParent(message) {
|
|
@@ -2323,6 +2334,8 @@ var TestTypeImpl = class _TestTypeImpl {
|
|
|
2323
2334
|
const suite = this._currentSuite(location, `test.describe.configure()`);
|
|
2324
2335
|
if (!suite)
|
|
2325
2336
|
return;
|
|
2337
|
+
if (options.lock !== void 0)
|
|
2338
|
+
suite._locks.push(...validateTestDetails({ lock: options.lock }, location).locks);
|
|
2326
2339
|
if (options.timeout !== void 0)
|
|
2327
2340
|
suite._timeout = options.timeout;
|
|
2328
2341
|
if (options.retries !== void 0)
|
|
@@ -2395,13 +2408,13 @@ var TestTypeImpl = class _TestTypeImpl {
|
|
|
2395
2408
|
if (!testInfo)
|
|
2396
2409
|
throw new Error(`test.step() can only be called from a test`);
|
|
2397
2410
|
await testInfo._onUserStepBegin?.(title);
|
|
2398
|
-
const step = testInfo._addStep({ category: "test.step", title, subtitle: options.subtitle,
|
|
2411
|
+
const step = testInfo._addStep({ category: "test.step", title, subtitle: options.subtitle, stack: options.location ? [options.location] : void 0, box: options.box, params: options.params });
|
|
2399
2412
|
return await currentZone().with("stepZone", step).run(async () => {
|
|
2400
2413
|
try {
|
|
2401
2414
|
let result2 = void 0;
|
|
2402
2415
|
result2 = await raceAgainstDeadline(async () => {
|
|
2403
2416
|
try {
|
|
2404
|
-
return await step.info._runStepBody(expectation === "skip", body, step.
|
|
2417
|
+
return await step.info._runStepBody(expectation === "skip", body, step.stack[0]);
|
|
2405
2418
|
} catch (e) {
|
|
2406
2419
|
if (result2?.timedOut)
|
|
2407
2420
|
testInfo._failWithError(e);
|
|
@@ -2473,6 +2486,7 @@ var baseFullConfig = {
|
|
|
2473
2486
|
metadata: {},
|
|
2474
2487
|
preserveOutput: "always",
|
|
2475
2488
|
projects: [],
|
|
2489
|
+
filteredProjects: [],
|
|
2476
2490
|
reporter: [[process.env.CI ? "dot" : "list"]],
|
|
2477
2491
|
reportSlowTests: {
|
|
2478
2492
|
max: 5,
|
|
@@ -2484,7 +2498,7 @@ var baseFullConfig = {
|
|
|
2484
2498
|
quiet: false,
|
|
2485
2499
|
shard: null,
|
|
2486
2500
|
tags: [],
|
|
2487
|
-
updateSnapshots: "
|
|
2501
|
+
updateSnapshots: "default",
|
|
2488
2502
|
updateSourceMethod: "patch",
|
|
2489
2503
|
version: "",
|
|
2490
2504
|
workers: 0,
|
|
@@ -1,34 +1,33 @@
|
|
|
1
1
|
# packages/playwright/lib/common/index.js
|
|
2
|
-
# total:
|
|
2
|
+
# total: 113.6 KB
|
|
3
3
|
|
|
4
4
|
## Inlined (20)
|
|
5
|
-
12.
|
|
6
|
-
13.
|
|
5
|
+
12.5 KB packages/playwright/src/common/config.ts
|
|
6
|
+
13.8 KB packages/playwright/src/common/configLoader.ts
|
|
7
7
|
11.5 KB packages/playwright/src/common/fixtures.ts
|
|
8
8
|
0.8 KB packages/playwright/src/common/index.ts
|
|
9
9
|
1.3 KB packages/playwright/src/common/ipc.ts
|
|
10
10
|
2.1 KB packages/playwright/src/common/poolBuilder.ts
|
|
11
|
-
|
|
11
|
+
3.9 KB packages/playwright/src/common/process.ts
|
|
12
12
|
4.9 KB packages/playwright/src/common/suiteUtils.ts
|
|
13
13
|
8.7 KB packages/playwright/src/common/test.ts
|
|
14
14
|
2.0 KB packages/playwright/src/common/testLoader.ts
|
|
15
|
-
12.
|
|
15
|
+
12.9 KB packages/playwright/src/common/testType.ts
|
|
16
16
|
1.4 KB packages/playwright/src/common/validators.ts
|
|
17
17
|
1.3 KB packages/playwright/src/isomorphic/teleReceiver.ts
|
|
18
18
|
7.8 KB packages/playwright/src/transform/compilationCache.ts
|
|
19
19
|
1.7 KB packages/playwright/src/transform/esmLoaderSync.ts
|
|
20
20
|
1.1 KB packages/playwright/src/transform/pirates.ts
|
|
21
21
|
1.1 KB packages/playwright/src/transform/portTransport.ts
|
|
22
|
-
|
|
23
|
-
2
|
|
22
|
+
12.0 KB packages/playwright/src/transform/transform.ts
|
|
23
|
+
3.2 KB packages/playwright/src/transform/tsconfig-loader.ts
|
|
24
24
|
7.0 KB packages/playwright/src/util.ts
|
|
25
25
|
|
|
26
|
-
## External (
|
|
26
|
+
## External (7)
|
|
27
27
|
../globals
|
|
28
28
|
../matchers/expect
|
|
29
29
|
../package
|
|
30
30
|
../transform/esmLoader.js
|
|
31
|
-
playwright
|
|
32
31
|
playwright-core/lib/bootstrap
|
|
33
32
|
playwright-core/lib/coreBundle
|
|
34
33
|
playwright-core/lib/utilsBundle
|