* fix: update the monorepo to typescript 5
* chore: updating v8 snapshot cache
* chore: updating v8 snapshot cache
* chore: updating v8 snapshot cache
* run ci to see problems [run ci]
* update vue-tsc and typings that conflict with update
* regen snapshot
* fix typescript errors ui test as stack trace behavior has changed
* fix server unit tests
* update cy.origin() spec based on stack traces and code frames
* update spec to include source map url
* run ci
* fix check-ts
* chore: fix system tests [run ci]
* add preprocessor tests to batteries included to exercise new logic
* run ci
* refactor unit tests to be a bit more dry
* pin typescript to ~5.4 and adjust config to ignroe deprecations but keep importsNotUsedAsValues
* add changelog entry
* add fixme issue to stack trace mismatches inside evaled context
* use import type webpack as webpack as a lib isn't actually invboked in the runner webpack config
* fix system test as adding 4 lines of comments impacts the stack trace line 4 lines (duh)
---------
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* feat: add option to ignore chrome preferences
* build binary on this branch
* adds explanation comment and test
* update changelog from dev
* Update packages/server/lib/browsers/chrome.ts
Co-authored-by: Matt Schile <mschile@cypress.io>
* put disableRestorePagesPrompt back in promise list in browser open
* Update cli/CHANGELOG.md
* ensure we skip writing to chrome prefs when env is set
* changelog update
* Update packages/server/lib/browsers/chrome.ts
Co-authored-by: Matt Schile <mschile@cypress.io>
* more fully ignore chrome preferences when env var is set
---------
Co-authored-by: Cacie Prins <cacie@cypress.io>
Co-authored-by: Cacie Prins <cacieprins@users.noreply.github.com>
Co-authored-by: Matt Schile <mschile@cypress.io>
* chore: Force deprecation of unload event
* empty commit
* use pagehide instead of unload event
* tslint
* bump cache
* some debugging
* rm debug
* comment out forced deprecation of unload - tbd how to enable
* rm more unnecessary debug
* changelog
* rename event callback from onUnload -> onPageHide
* comment on discrepency of event naming for end of page lifecycle events
* use pagehide in chrome, unload elsewhere
* comment on chromium-specific pagehide behavior
* changelog
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* fix: Encode fileServerFolder to fix#25839
* fix: Encode fileServerFolder to fix#25839 add changelog
* update unit tests
* adjust CHANGELOG location
* Update packages/server/test/unit/config_spec.js
* Fix changelog entry placement
* Fix some bugs to pass the test case
* maintain a test case
* Fix changelog entry
* added integration test and updated to use encodeURI
* Update cli/CHANGELOG.md
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
Co-authored-by: Matt Schile <mschile@cypress.io>
Co-authored-by: Matt Schile <mschile@gmail.com>
* fix: pass all chromium flags through to Electron
* Add changelog entry
* exclude webkit from test for navigator.webdriver being true
* add debug log for switches in electron
* Fix the unit test so it passes now
* Update packages/server/lib/environment.js
Co-authored-by: Matt Schile <mschile@cypress.io>
* Update packages/server/lib/environment.js
Yes 😝 Probably why a better test would be good around this.
Co-authored-by: Matt Schile <mschile@cypress.io>
* Update packages/server/test/unit/util/chromium_flags_spec.js
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* lint fix
---------
Co-authored-by: Matt Schile <mschile@cypress.io>
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* new error messages
* errors for initialization and capturing test replay
* messaging the case where no protocol instance but also no fatal error
* adds suggested remedies to initialization errors
* differentiation between network and http errors, initial work on db missing error
* improve db not found error
* add new error type to schema
* rm commented dead code
* clean up network error creation in uploadStream
* make artifact confirmation error msg more general
* test display of put instance artifacts failure
* changelog
* ensure we are displaying errors even in quiet mode
* fix pending changelog
* new snapshots for protocol errors
* improve aggregate error
* resolved html error snapshots
* fix check-ts
* fix test
* sanitize temp dir in CLOUD_PROTOCOL_CAPTURE_FAILURE error msg
* changelog
* fix double entry of certain network errors, error message prop for network errors
* fix url arg for network error
* Update packages/server/lib/cloud/artifacts/upload_artifacts.ts
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* rm extra formatting from debug
* snapshot whitespace
* changelog update
* +pending
* Update cli/CHANGELOG.md
* resolve snapshots?
* does moving the stack trace fix whitespace in snapshots in ci?
* maybe fixes whitespace on electron now?
* fully normalize stack traces
* remove full normalization
* maybe debug stack normalization
* rm stack traces from error messages
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* fix: updates regex for websocket connection error to properly handle
* build binaries for this branch
* do not reconnect if reconnect in progress; treat websocket not connected errors as websocket in closing/closed state errors
* changelog
* fix changelog
* publish prerelease binaries for this branch
* build windows prerelease package
* Update cli/CHANGELOG.md
* Update cli/CHANGELOG.md
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* add comment for websocket error regex examples
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* refactor record.js to extract upload logic into ts
- streamlines the main uploadArtifact fn
- extracts artifact specific logic to artifact classes
- fully defines types for upload processing and reporting
* tweak refactors so system tests produce same snapshots
* some todos, fixes exports/imports from api/index.ts
* fix api export so it can be imported by ts files
* cleans up types
* extracting artifact metadata from options logs to debug but does not throw if errors are encountered
* fix type imports in print-run
* fix debug formatting for artifacts
* fix reporting successful protocol uploads
* change inheritence to strategy
* rm empty file
* Update packages/server/lib/cloud/artifacts/upload_artifacts.ts
* makes protocolManager optional to uploadArtifacts, fixes conditional accessor in protocol fatal error report
* missed a potentially undef
* convert to frozen object / keyof instead of string composition for artifact kinds
---------
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* fix: re-initialize DOM subscriptions from a full snapshot on cdp reconnect
* add test
* add changelog
* Update cli/CHANGELOG.md
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* Update CHANGELOG.md
---------
Co-authored-by: Bill Glesias <bglesias@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* tbd
* workable templated filestream uploader
* clean up async assertions
* upload stream uses activity monitor to detect start timeouts and stalls
* makes uploadStream retryable
* filesize detection, enoent errors, and testable retry delays
* extract fs logic to putProtocolArtifact, impl putProtocolArtifact
* aggregate errors for retryable upload streams
* fixes imports from moving api.ts, uses new upload mechanism in protocol.ts
* use spec_helper in StreamActivityMonitor_spec due to global sinon clock changes
* fix putProtocolArtifact specs when run as a part of the unit test suite
* fix return type of ProtocolManager.uploadCaptureArtifact
* convert from whatwg streams back to node streams
* extract HttpError
* ensure system test snapshots
* changelog
* more changelog
* fix unit tests
* fix api ref in integration test
* fix refs to api in snapshotting and after-pack
* small edits
* Update packages/server/lib/cloud/api/HttpError.ts
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* Update packages/server/lib/cloud/upload/uploadStream.ts
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* camelcase -> snakeCase filenames
* improve docs for StreamActivityMonitor
* added documentation to: upload_stream, put_protocol_artifact_spec
* move stream activity monitor params to consts - no magic numbers. docs.
* Update packages/server/lib/cloud/api/http_error.ts
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* Update packages/server/test/unit/cloud/api/put_protocol_artifact_spec.ts
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* fix check-ts
* fix imports in put_protocol_artifact_spec
* Update packages/server/test/unit/cloud/upload/stream_activity_monitor_spec.ts
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* api.ts -> index.ts
* fix comment style, remove confusingly inapplicable comment about whatwg streams
---------
Co-authored-by: Bill Glesias <bglesias@gmail.com>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* fix: patch new tab creation for firefox 124 and up to fix issue where cypress was not executing beyond the first spec in cypress run (specific to firefox).
* Update cli/CHANGELOG.md
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* opt for global window instead of no undef for window reference
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* activate main cypress tab before taking a screenshot
* new tests to cover page activation behavior
* updates changelog
* whitespace
* fix check-ts
* reduce extension failure timeout to 500ms to account for origin bridge timeout
* only use tab activation workaround in chrome; default to Page.bringToFront in headless mode
* update unit tests
* swap order of tests in 5016 system test
* some debugging to try and hunt down firefox issue
* rm debug prev added - looks like sys test passed that time?
* rm debug emit from v2 extension
* chore: add additional context to messaging when network errors occur in protocol uploads
* reduce total attempts for uploading capture artifacts from 8 to 3
* fix(types): RequestBody type should be able to accept booleans and null values, which are all valid JSON literals
* refactor: boolean literals are valid JSON objects. Null values should also be considered valid when explicitly passed to the request function.
* refactor: body is explicitly defined when passed as positional argument or when supplied through the options object
* test: JSON literals should be parsed as valid JSON and set json=true
* docs: issue reference
* fix: boolean and null literal should be send to request promise as strings
* docs: fixes#28789 -- added issue reference
* test: tests proper conversion of JSON literals to strings.
* docs: added isssue reference
* docs: fixes#28789 -- changelog entry
* refactor: change isValidJsonObj to isValidBody
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* refactor: change isValidJsonObj to isValidBody
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* refactor: use lodash utils
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* Update cli/CHANGELOG.md
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* docs: moved entry to 13.6.5
* docs: fixed changelog entry
* Update CHANGELOG.md
---------
Co-authored-by: Bill Glesias <bglesias@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* Replacing LayerCI references with webapp.io
* Update CI params exposed from webapp.io and add EXPOSE_WEBSITE_HOST
* Adding misc to changelog references changes from LayerCI to webappio
* Removing EXPOSE_WEBSITE_HOST
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* fix: issue with service workers in test replay when they're initiated from a support file
* add changelog
* Update cli/CHANGELOG.md
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* PR comment
* get prerelease
* PR comments
* Update .circleci/workflows.yml
* Update .circleci/workflows.yml
Co-authored-by: Matt Schile <mschile@cypress.io>
---------
Co-authored-by: Bill Glesias <bglesias@gmail.com>
Co-authored-by: Matt Schile <mschile@cypress.io>
* fix: force moduleResolution: 'node' when ts-node is registered in the cypress process to make sure value is compatible with commonjs (which is already forced). [run ci]
* Update cli/CHANGELOG.md
* fix: extra target request headers are overwritten
Include original headers with the special "X-Cypress-Is-From-Extra-Target" that is added so fetch requests can include custom headers.
* Add details to changelog
* refactor
---------
Co-authored-by: Chris Breiding <chrisbreiding@gmail.com>
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
* feat: report artifact upload durations to cy cloud for monitoring
* round upload durations to nearest ms
* update changelog
* revert changelog, fix typo in comment
* no longer round uploadDuration - api now accepts floats
* updates changelog
* update api spec for refactored signature on api.updateInstanceArtifacts
* Update CHANGELOG.md
* Update system-tests/test/record_spec.js
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
* rm defunct comment
* rm non-null accessors, this spec is not ts
---------
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
* dependency: updated chrome-remote-interface to 0.33.0
* updating changelog
* updating tests
* updating snapshot
* enable debug logs
* run ci without app integration tests
* .
* is this our problem? seems to be
* .
* run app tests
* .
* remove debug logs in ci
* clean up & re-enable all jobs
* .
* keep existing checked in error for now
* update changelog
---------
Co-authored-by: Emily Rohrbough <emilyrohrbough@yahoo.com>
Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
* logic for activity indicator
* update snapshot & masking to handle upload duration, remove defunct mask for upload order
* update changelog
* check for existence of upload activity indicator before attempting to stop it
* updates changelog
* Update cli/CHANGELOG.md
* upload activity display improvements; configurable intervals and delays
* system test snapshots for video compression
* default delay and interval based on undefined rather than falsy
* reduce interval so upload indicator is captured in certain system tests
* Update CHANGELOG.md
* Update CHANGELOG.md
* remove initial delay for upload activity
* correctly evaluate if an upload activity interval env is set or not
* re-inserts spacing before upload activity indicator
* snapshots
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* feat: display how long artifacts take to upload
* adds changelog entry
* add PR link to changelog
* bump circle cache
* previous masking was too greedy, made upload duration masking more limited in scope
* update snapshots for video compression system tests
* links changelog for upload durations to open issue
* reorder upload result manifest - show duration after filesize instead of after count
* update stdout normalization regex to be less applicable across system tests
* maybe better regex for masking
* another snapshot attempt
* chore: add after:browser:launch node event (#28180)
* test: update mochaEvent snapshots to be auto-generated (#28224)
* feat: add support for angular 17 (#28152)
* feat(webpack-dev-server): add support for angular 17
* update changelog
* fix broken spec pattern
* update to rc 2 for cli
* remove = from dependency minVersion lists
* update angular 17 rc version and update dep test
* add projectDirFolder to fixtures for angular-17
* resolve broken system tests
* update ct project dir angular version
* fix: runIfWaitingForDebugger when targets are reloaded after crashing (#28254)
* Update cli/CHANGELOG.md
Co-authored-by: Matt Schile <mschile@cypress.io>
* update snapshots
* Update CHANGELOG.md
---------
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
Co-authored-by: Matt Schile <mschile@cypress.io>
Co-authored-by: Jordan <jordan@jpdesigning.com>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>