* Add winPropAccessor to security.js, remove other replacers
* Add start of Cypress.resolveWindowReference
* Add regexes for dot and bracket access
* Some security_spec tests pass with new injection
* Add resolveWindowReference unit tests
* Old security_spec now passes with resolveWindowReference
* Inject stub resolveWindowReference so proxy still works outside of Cypress
* wip: rewrite HTML + JS with tokenizer
* Move to using esprima + hyntax to rewrite JS + HTML
* remove comment; oneLine makes the whole thing commented
* Fix tests, apple.com edge case
* wip: add getOrSet
* Revert "wip: add getOrSet"
This reverts commit a5c647c00f.
* release 3.5.0 [skip ci]
* use recast to replace window property accesses
* replace assignments to top properly
* fix yarn.lock
* bump deps
* update integration tests
* remove old security ts?
* fix integration spec
* always ignore js interception failure
* use globalThis instead of window
* add experimentalSourceRewriting flag
* restore regex-writer spec
* fix types
* update config_spec
* add source rewriting spec
* cleanup
* simplify rewriting logic, move rules into rewriter package
* create threaded rewriting tool for non-streaming use
* update @packages/rewriter to use threads for async
* use async rewriting where convenient
* add worker-shim.js
* add performance info to debug logs
* properly handle +=, -=, ...
* add proxy, rewriter to unit-tests stage
* cleanup
* use parse5 to rewrite HTML, strip SRI
* update tests
* reorganization, cleanup
* rewrite ALL parent, top identifiers except in a few cases
* handle many JS edge cases
* ensure parse5@5.1.1 is installed
* update yarn.lock
* update tests
* add debugging, add tests
* add attempted repro for .href issue
* implement source maps + extending inline source maps
* update opts passing in proxy layer
* fix sourcemap naming structure
* update tests to account for sourcemaps
* sourcemap tests
* remote source maps work
* comment
* update rewriter tests
* clean up TODOs in resolveWindowReference
* remove @types/nock
* clean up todos in deferred-source-map-cache
* fix rewriter build script
* fix concatStream import
* bump expectedresultcount
* clean up js-rules
* threading improvements, workaround for Electron segfault
* no visit_spec for now
* fix 6_visit_spec
* update MAX_WORKER_THREADS
* add repro for #3975
* cleanup
* cleanup
* make better use of namedTypes and builders
* get rid of the horrific closureDetectionTernary
ast-types keeps track of scope, so it is unneeded
* fix#3975, #3994
* add x-sourcemap, sourcemap header support
* snap-shot-it 7.9.3
* add deferred-source-map-cache-spec
* add tests
* Throw error in driver if AST rewriting fails
* Fix "location = 'relative-url'"
* fix max recursion depth
* slim down some fixtures
* fix window.location usage
* don't mess with `frames` at all
* no integration tests
* skip testing apple.com for now
* update wording: regex-based vs. ast-based
* skip real-world tests for now
* add some padding to process.exit workaround
* fix resolvers_spec
* fix html-spec
* cleanup
* Update packages/rewriter/lib/js-rules.ts
* Update packages/driver/src/cypress/resolvers.ts
* just import find by itself
* privatize typedefs for Cypress.state, remove .gitignore, remove dead code
Co-authored-by: Ben Kucera <14625260+Bkucera@users.noreply.github.com>
* remove npmInstall logic in helper/e2e script, force custom reporters to use our mocha
* remove mocha imports specs
* use mocha 7.0.1 in server/reporter, and for custom reporters
* update snapshots for new mocha version
* fix glob in server tests
* remove unneeded e2e/package.json deps
* 6480: Add feature-policy to problematic headers
* 6480: Create new middleware
* 6480: Fix code placement
* 6480: Add integration test
* 6480: Remove header when no directives left
* fix: chromium installed as a snap is properly detected
* add 5s timeout to browser detection
* remove .profile stuff
* use profilePath for alternative profile dirs
* rename legacyPathToProfiles
* update tests
Co-authored-by: Ben Kucera <14625260+Bkucera@users.noreply.github.com>
* Move org selector into it's own component
- have state of selected Id tracked and set before render.
* update yarn.lock
* fix/refactor org selector
* Add debug logs around creating project
Co-authored-by: Chris Breiding <chrisbreiding@gmail.com>
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
* Out-of-the-box TypeScript support for plugins
* Out-of-the-box TypeScript Support for tests.
* Fix server unit tests.
* Don't use bundled typescript.
* Added esModuleInterop option.
* Fixed unit tests.
* Added simple_tsify to integration test.
* Added integration tests for ts spec files.
* simple_tsify to ignore transpiling json files.
* transpile on flush.
* Fix lint failure.
* Added error message.
* Add error message for restart test runner for support file.
* Added JSDoc comment.
* Remove preset-typescript.
* Fix integration test failure.
* Fix type errors.
* Add e2e test for typescript
* Fix lint error.
* Add plugin support and e2e test.
* Fix server unit test failures.
* Update snapshots.
* Migrate typescript compilation code to browserify-preprocessor
* Remove unnecessary files and test.
They're tested in preprocessor.
* Fix test failures.
* Update @types/react.
* Update yarn.lock.
* Clear name: registerTS -> tsRegistered.
* Clarify why tsRegistered = true exists.
* Add working examples for support and plugins.
* Move TypeScript tests to its own file.
* don’t remove stack from uncaught errors
* fix issue with navigation options scope
* replace name in stack when changing on an error
* include a useful stack with assertion failure errors
* fix replacing message on assertion errors
* ensure new line between message and stack
* fix stack replacement new line
* Update wording of task error message to be more specific about promise resolution value for cy.task
* update tests / snapshots to match new err msg
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
* add experimental feature for sameSite
* allow experimental descriptions to render markdown
* sameSite support mostly working
* also strip sameSite from setCookie yielded value
* don't use `unspecified` - let browser set default
* add tests
* decaffeinate: Rename cdp_automation_spec.coffee from .coffee to .js
* decaffeinate: Convert cdp_automation_spec.coffee to JS
* decaffeinate: Run post-processing cleanups on cdp_automation_spec.coffee
* cleanup cdp_automation_spec.ts
* update unit tests
* update settings_spec to not render as markdown
* user-friendly error for insecure SameSite=None
* fix styling
* fix markdown renderer
* wip: reproduce samesite conditions in e2e test
* use tough-cookie@4.0.0 from git
not on NPM yet, see issue: https://github.com/salesforce/tough-cookie/issues/182
* add more samesite proxy tests
* update types + schema
* run 2_cookies_spec also with forced samesite
* use undefined not no_restriction
* properly detect unspecified SameSite attribute
* update snapshot
* don't send sameSite on getAll calls
* don't omit null/undefined props in automation
* update comment
* clean up SetCookieRequest logic
* fix tests
* fix unit test
* update yarn.lock
* rebalance e2e tests
* add experimental feature for sameSite
* allow experimental descriptions to render markdown
* sameSite support mostly working
* also strip sameSite from setCookie yielded value
* don't use `unspecified` - let browser set default
* add tests
* decaffeinate: Rename cdp_automation_spec.coffee from .coffee to .js
* decaffeinate: Convert cdp_automation_spec.coffee to JS
* decaffeinate: Run post-processing cleanups on cdp_automation_spec.coffee
* cleanup cdp_automation_spec.ts
* update unit tests
* update settings_spec to not render as markdown
* user-friendly error for insecure SameSite=None
* fix styling
* fix markdown renderer
* update types + schema
* use renderInline
* update experiment summary
* bind renderFn to md
* use fallback customTlds regex for parse-domain
this ensures that tlds which parse-domain does not recognize can
still work as tlds for the purposes of cookie matching, etc
* add POST tests for Domain=superdomain
* add local.cypress.test to 2_cookies_spec
* move parse-domain, getSuperDomain logic from driver to network
* move test urls to variables
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>