Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(e2e): add support for puppteer v19 #3810

Merged
merged 13 commits into from Nov 29, 2022

Commits on Nov 28, 2022

  1. feat(e2e): support puppeteer v14

    this commit increments the supported version of puppeteer from v10 to
    v14.
    
    v11, v12, v13 all did not require any changes to the stencil codebase.
    as a result, this commit jumps directly from v10 to v14.
    
    the package is now declared in `package.json` using a caret ("^")
    instead of a tilde ("~"). the author (rwaskiewicz) was being cautious
    when making the change to support v10 of stencil in
    #2934, to a degree that is no
    longer necessary
    
    v14 of puppeteer introduced private fields in their source code. this
    affected stencil's validation scripts for type declaration files, as
    the default settings would create a TypeScript `program` that could not
    be properly compiled/validated.
    
    the `moduleResolution` and `target` fields needed to be explictly
    set to allow the transpiled `.d.ts` to pass validation. this is a result
    of cascading defaults where for the `createProgram` call:
    - the `target` field defaults to "ES3"
    - the `target` default causes the `module` field to default to
      "CommonJS"
    - the `module` default causes `moduleResolution` to default to
      "classic", which can't resolve the new type declaration file. as a
      result, we explicitly set this field
    - the `target` field is set to support the private identifiers in
      puppeteer
    rwaskiewicz committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    5170fcd View commit details
    Browse the repository at this point in the history
  2. feat(e2e): support puppeteer v15

    this commit increments the supported version of puppeteer from v14 to
    v15.
    
    starting with puppeteer v15, the library performs type
    inference/deduction for the `evaluate()` function. this commit updates
    the types (often removing them) at the advice spelled out in
    puppeteer/puppeteer#8547.
    rwaskiewicz committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    89f5d6a View commit details
    Browse the repository at this point in the history
  3. feat(e2e): support puppeteer v16

    this commit increments the suppported version of puppeteer from v15 to
    v16.
    
    v16 did not require any changes in the codebase, other than incrementing
    the list of supported versions of the library.
    rwaskiewicz committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    e0d845d View commit details
    Browse the repository at this point in the history
  4. feat(e2e): support puppeteer v17

    this commit increments the supported version of puppeteer from v16 to
    v17.
    
    puppeteer v17 made accessing a puppeteer `ExecutionContext`, an entity
    used to run javascript, an internal entity. previously, stencil would
    directly access retrieve an `ExecutionContext` from a helper function
    that is no longer exposed. to work around this in puppeteer v17+, two
    different strategies for getting access to this entity have been added.
    Each strategy is dependent on how we were previously accessing the
    `ExecutionContext`.
    
    1. `ElementHandle` Scenario
    
    in this scenario, an `ExecutionContext` was being pulled off an
    `ElementHandle` instance.
    
    the suggested way of getting an `ExecutionContext` in puppeteer v17+ for
    an `ElementHandle` is through the `frame` getter on the `ElementHandle`
    instance. doing so does not work in puppeteer v16 and below. for those
    versions of puppeteer v16 and below, stencil will default to the original
    `executionContext()` behavior. otherwise, the return value of the
    `frame` getter is returned from a new utility method.
    
    in order to determine which version of puppeteer is used, a mechanism
    for reading the puppeteer `package.json#version` field has been added.
    this avoids clunky prototype lookups that have been used in the past,
    and are not always the safest way to detect the version of puppeteer
    being used (e.g. a field may exist on the prototype chain of an object
    in 2 different versions of puppeteer, but do very different things).
    
    2. `JSHandle` Scenario
    
    accessing a `JSHandle`'s `ExecutionContext` is necessary in
    `puppeteer-event.ts`. because this is the only instance where stencil
    would get an `ExecutionContext` from a `JSHandle`, no utility function
    for retrieving an `ExecutionContext` was created. rather, the same
    effect can be achieved in a backwards compatible way by calling
    `evaluate()` directly on the `JSHandle` instance.
    
    we do not call `.asElement()` on the `JSHandle` instance and
    subsequently use the "`ElementHandle` Scenario" described above as a
    `JSHandle` does not always have an element associated with it, making it
    impossible to get an `ExecutionContext` in such instances
    rwaskiewicz committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    9912761 View commit details
    Browse the repository at this point in the history
  5. feat(e2e): support puppeteer v18

    this commit increments the supported bersion of puppeteer from v17 to
    v18.
    
    puppeteer v18 did not include any breaking changes that required major
    breaking changes to stencil
    rwaskiewicz committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    5b8a17c View commit details
    Browse the repository at this point in the history
  6. feat(e2e): support puppeteer v19

    this commit increments the supported version of pupeeteer from v18 to
    v19.
    
    there were no breaking changes in puppeteer v19 that required changes to
    stencil
    rwaskiewicz committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    c49c5e8 View commit details
    Browse the repository at this point in the history
  7. docs(breaking): update breaking_changes docs

    this commit updates the puppeteer section of the breaking_changes
    document to clarify the version of puppeteer that is supported
    rwaskiewicz committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    9b9833a View commit details
    Browse the repository at this point in the history
  8. chore(karma): use npm v7, node v14.21

    this commit bumps the version of npm used for the karma test project to
    npm v7. it also increments the version of node to v14.21. this is
    required for running the latest version of puppeteer
    rwaskiewicz committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    696346d View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    e31b180 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    26aa441 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    63e3dd6 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    b90110e View commit details
    Browse the repository at this point in the history
  13. Revert "review(ap): add maxVersion to puppeteer"

    This reverts commit 63e3dd6.
    rwaskiewicz committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    10d80d4 View commit details
    Browse the repository at this point in the history