* feat: implement JIT component experiment [run ci]
* don't update the dev server unnecessarily if the run is cancelled [run ci]
* fix system test flake
* Update cli/types/cypress.d.ts
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* Update system-tests/projects/experimental-JIT/webpack/cypress/support/component-index.html
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* Update system-tests/projects/experimental-JIT/vite/cypress/support/component-index.html
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* chore: ignore node_modules for webpack dev server
* be sure to end span when throwing error
---------
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* Refactor connection logic to cri-connection
CDPConnection class instantiates a persistent event emitter, and creates
a CDP Client instance via connect(). When this client emits a disconnect
event, the CDPConnection will automatically attempt to reconnect, if the
connection was not intentionally closed and the connection is created with
the reconnect flag. It only listens to 'event' and 'disconnect' events itself,
making it easy to unsubscribe from events in the event of a disconnection,
helping ease mental load when considering potential memory leaks.
Because it uses its own persistent event emitter, event listeners added
to the CDPConnection do not need to be re-added when the client reconnects.
The CriClient itself no longer handles reconnection logic: it only reacts to
connection state changes in order to re-send failed commands and enablements
when the CDPConnection restores the CDPClient.
* changelog
* clean up event listeners before reconnecting
* changelog
* changelog
* changelog
* unit tests
* lift out of the remote-interface dir
* complete lift from /remote-interface
* further fix imports
* import
* fix disconnect behavior to make integration test pass
* Update packages/server/test/integration/cdp_spec.ts comment
* fix snapgen
* improve debug
* further debug improvements
* do not attach crash handlers on browser level cri clients, add tests
* adds bindingCalled listeners discretely, rather than relying on 'event', which does not trigger for them
* back out of main `event` listener, use discrete listeners, add integration test for service worker bindingCalled
* Revert "back out of main `event` listener, use discrete listeners, add integration test for service worker bindingCalled"
This reverts commit 4855120d42.
* changelog
* adds integration test for various ways to add cdp event listeners
* note in changelog this is a cypress server fix
* ensure enablement promises resolve after reconnect
* Update cli/CHANGELOG.md
Co-authored-by: Matt Schile <mschile@cypress.io>
---------
Co-authored-by: Matt Schile <mschile@cypress.io>
* misc: allow HiDPI Screen running wayland to use cypress window/browser
* Added changelog entry
* Fix changelog entry release date to pending
* Changed release changelog entry to actual date
* Added issue number to the changelog entry
* fix tests
* update changelog
---------
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* fix: remove IE code that is calling deprecated unload event
* Add changelog entry
* Add new logic around checks on whether to add unload handler
* missing important things here
* revert previous changes
* patch with new reqs for edge
* commit missing line
* Put back some code
* Update cli/CHANGELOG.md
* build binary to test fix
* update workflow
* fix: rethrow stalled network request error correctly
* no longer timeout from stream monitor on failure to start - allow OS to handle
* changelog
* fix system error detection
* fix test for system error throw
* Update cli/CHANGELOG.md
* Update packages/server/test/unit/cloud/network/put_fetch_spec.ts
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* rm noop try-catch
---------
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* misc: update postinstall cypress open instructions
* add spacing line
* prepend dashes to command list
* update semver for change
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* fix: make sure string_decoder is shipped with wbip
* fix: remove pnp-webpack-plugin as it isnt needed with webpack 5
* chore: update enhanced-resolve to 5.17.0 in the yarn-lock and remove the need for you 5.15 patch as the issue we were patching was fixed in 5.16
* build binary [run ci]
* resolve to process lib installed by cypress and not the users home directory
* add changelog entry [run ci]
* build binaries [run ci]
* add binary system test
skip system test install for yarn 4 as it is an exception case [run ci]
adapt dep installer to handle yarn 4.1.1 [run ci]
rebase this out [run ci]
try this [run ci]
temp [run ci]
* update circle cache [run ci]
* fix conditional for yarn install [run ci]
* Update system-tests/projects/yarn-v4.1.1-pnp-dep-resolution/README.md
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* update from yarn 4.1.1 to 4.3.1
* update docker image name
---------
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* unit and integration tests that reproduce websocket disconnected unhandled exception
* WIP: command queue
* complete command queue and retry refactor
* cri-client changes pass tests; modify certain tests for readability and accuracy
* removes unnecessary logic from command queue, adds unit tests for command queue
* rm unused cdp state - this should be reserved for future refactor
* small edits to cri-client: better error handling, more comprehensive comments
* comment re: queue property
* rearrange cri client member methods for readability
* further edits
* Changelog
* Update cli/CHANGELOG.md
Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>
* fix continuous retry on close
* split heavier debugs to verbose
---------
Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* Update jquery to 3.4.1
* refactor use of half scroll pixels with some explanation
* remove layer coords from tests + comment out non-working page& value in chromium
* Fix scrollTo calculation to match previous implementation
* add changelog entry
* patch jquery to use old calculations for width/height to avoid breaking change
* revert scrollTo changes since jquery height/width calc is patched
* Add issue to changelog
* Make it a dev patch since it's a dev dependency
* WIP - system test snapshots
* bolster error output for response body potential on upload network errors
* edit error output for readability
* changelog
* Update packages/server/lib/cloud/artifacts/upload_artifacts.ts
Co-authored-by: Matt Schile <mschile@cypress.io>
* fix partial rename
* fix system test for single upload error vs aggregate
---------
Co-authored-by: Matt Schile <mschile@cypress.io>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* custom async retry for any async fn
* "proxied" fetch for PUT, throwing http errors
* cleans up put_fetch return types & parsing
* move protocol upload logic to put_protocol_artifact, rm upload_stream
* changelog
* changelog
* manually fix wsp in snapshot
* reorganizes a little, properly tests retryable logic
* removes 408 as a non-retriable error in unit test
* make expectation to be resolved more clear
* rm unnecessary type coercion
* changelog
* Update cli/CHANGELOG.md
* asyncRetry only throws Aggregate errors if there is more than one attempt
* Update packages/server/test/unit/cloud/network/is_retryable_error_spec.ts
Co-authored-by: Matt Schile <mschile@cypress.io>
* Update packages/server/test/unit/cloud/network/is_retryable_error_spec.ts
---------
Co-authored-by: Matt Schile <mschile@cypress.io>
* direct copy paste of angular npm package to angular18 (no changes)
* feat: implement angular-signals test hardness to support angular signals
add changelog entry and build binary [run ci]
rename angular18 to angular-signals until we are able to merge back into core package [run ci]
fix linting job [run ci]
make sure angular-signals harness is copied to cli after build [run ci]
add project fixture directory to angular 18 and build binaries for newly named branch
run ci
update cache [run ci]
bust nx cache [run ci]
bust cache on linux [run ci]
try busting the cache... again [run ci]
usually helps when you have the correct build output... [run ci]
fix issue where component internal props were getting blown away when user would not set prop in componentProperties [run ci]
* update test harness description
* add built-in control flow tests with signals
* make sure to clean up rxjs observables in order to prevent a memory leak
* address comments from code review
* yarn lock
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* perf: improve performance of `experimentalSourceRewriting`
This change is in addition to https://github.com/benjamn/recast/pull/1399. This commit
focuses on Cypress' use of recast, with the following optimizations:
1. Avoid printing the source file again if no change was made.
Printing an AST using recast does reuse the original text, but identifying
for which parts of the AST reuse is possible comes with noticeable overhead.
By tracking changes within the visitor it becomes possible to skip this
phase entirely if no changes were made.
2. Avoid a scope lookup (`path.scope.declares(node.name)`) for all identifiers in
the program, doing it only for identifiers that may have to be rewritten.
With these changes, a 2.6MB bundle that does not need rewriting has improved
from 4.4s to 2.3s, provided that the above-mentioned recast PR has been applied.
* chore: move `experimentalSourceRewriting` release note to pending release section
---------
Co-authored-by: Bill Glesias <bglesias@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* reprod browser cri crash chrome
* commit with the fix
* Add integration-like test that verifies the browser is launched with the correct arguments [run ci]
* fix: "type" action with {upArrow} and {downArrow} arguments to simulate native behavior of input[type=number]
* Add changelog entry for the fix
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* chore: update babel to latest in packages and update vite to version 5, vite related vue plugins to version 5, and svg plugin to v5
update vitejs react to v5
updated vite plugins
updates unplugin-vue-components and unplugin-icons for vite
remove vite-plugin-copmponents as it is the same thing as unplugin-vue-components
update vue-i18n from beta package to released v9
get unplugin-vue-i18n to latest
add @babel/types to no rewrite [run ci]
fix typing errors [run ci]
* update snapshot [run ci]
* coerce type for compiled messages to bridge type compatibility between unplugin-vue-i18n and vue-i18n [run ci]
* chore: update babel to latest in packages and update vite to version … (#29634)
* fix vite
* chore: updating v8 snapshot cache
* chore: updating v8 snapshot cache
* chore: updating v8 snapshot cache
---------
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* update other hard coded @babel/core
* chore: updating v8 snapshot cache
* chore: updating v8 snapshot cache
---------
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>