Commit Graph

9819 Commits

Author SHA1 Message Date
renovate[bot] 8db0122555 fix(execute-driver-plugin): update dependency vm2 to v3.9.12 2022-12-07 04:03:43 +00:00
Christopher Hiller d31aaf9916 chore: update TS configuration
This pulls in some recommended settings from `@tsconfig/node14` (a proper TS target configuration for Node.js v14; ours wasn't _wrong_ per se, but this is better) and allows us more flexible use of `ts-node`.  Use of this module is recommended by `ts-node` (which we need to run tests).

`ts-node`'s behavior changes _depending on the directory in which it's run_--and this can cause some really nonsensical bugs--so the changes here ensure that it will act the same regardless of if you're running tests from a package directory or the monorepo root.

Also:

- Ensure various `clean` scripts don't fail if they've been run before `build`
- Enable `strict` mode in `@appium/types` cause we can
- Fix a type issue found in `@appium/support`; this does not appear to have been a traditional bug but rather a type disagreement surfaced by the new config

# Conflicts:
#	package-lock.json
#	packages/typedoc-plugin-appium/tsconfig.json
2022-12-06 18:08:15 -08:00
Christopher Hiller 44283b4c4e chore(appium,docutils,ci): remove doc gen from CI
What used to be the `generate-docs` script no longer works, since the `commands-yml` directory no longer exists.

Unclear to me what should be done here at this point, but it makes the "build command documentation" job pointless.
2022-12-06 11:21:05 -08:00
Christopher Hiller 4dfe1610b5 fix(fake-driver): copy screen.png on build 2022-12-06 11:21:05 -08:00
Christopher Hiller 7247708050 chore(ci): remove old script from CI 2022-12-06 11:21:05 -08:00
Christopher Hiller 28adee66a4 chore: increase default test timeout in CI 2022-12-06 11:21:05 -08:00
Christopher Hiller 3c32112c20 chore: use tsc for compilation across the board
- `@appium/gulp-plugins` does not use `tsc` and continues to use...whatever it uses.
- `@appium/doctor` now has generated declarations, though I didn't bother to do anything with the types
- rewrote swaths of build scripts:
  - removed the `fix` and `lint` scripts from each workspace (package) since I don't think they get used and they are of limited value
  - for tests and autoinstallation of extensions, added `ts-node` for on-the-fly compilation
  - workspaces _can_ define their own `build` and `clean` scripts (both should be required if either is used).  these do not currently get run when running `npm run dev`, but they do occur on a bare `npm install` from the monorepo root or a `npm run reinstall`.
  - `npm run rebuild` does a fresh rebuild, but does not clean any `node_modules` dirs nor does it reinstall anything.
  - removed `prepublishOnly` since `preversion` does the same thing
  - `npm test` now runs `build`/`lint` in parallel
- postinstall script of `appium` ("autoinstall") script now must call `npm run build` if in a fresh dev environment. this is because a) lifecycle scripts of packages run before lifecycle scripts in the monorepo root, and b) `postinstall` runs before `prepare`. so there's really no way around it; even using `ts-node` fails because other modules depend on `@appium/support/index.js` which expects the pkg to be built.

Closes #17746
Closes #17807
2022-12-06 11:21:05 -08:00
Christopher Hiller faa92e2bb1 chore: use foreground-scripts=true in .npmrc
this will give more visibility into what is happening during install
2022-12-06 11:21:05 -08:00
Christopher Hiller a7f5f1ec33 fix(build): set target to ES2020
As per https://kangax.github.io/compat-table/es2016plus/ our soon-to-be-target lowest platform (Node.js v14.17.0) supports ES2020 in full.  Except tail call optimization, because reasons
2022-12-06 11:21:05 -08:00
Christopher Hiller 3955f5a156 chore(appium): experimental build via tsc 2022-12-06 11:21:05 -08:00
renovate[bot] 07d6ef6b8c fix(support): update dependency axios to v1.2.1 2022-12-06 14:04:30 +00:00
renovate[bot] 223c784439 chore(deps): update dependency @types/node to v18.11.11 2022-12-06 10:50:35 +00:00
Christopher Hiller 406acc185e chore: do not format .ts.map files 2022-12-05 15:31:24 -08:00
renovate[bot] 062090ed91 fix(support): update dependency @types/uuid to v9 2022-12-05 11:48:44 -08:00
renovate[bot] af8560b625 chore(deps): update dependency sync-monorepo-packages to v1 2022-12-05 11:48:33 -08:00
Christopher Hiller 88defdf0fe chore: improve package-lock.json merging
So what this does is treats `package-lock.json` as a text file _except_ when attempting to merge. The result will be that if `package-lock.json` is in a conflicted state, it will not contain conflict markers within the file itself like a regular text file would; it will only have the "conflicted" flag set by git.  This means that to resolve a conflict in `package-lock.json` going forward, all one needs to do is run `npm install && git add -A package-lock.json`, as `npm` will fix `package-lock.json` itself.  In theory.
2022-12-05 11:48:04 -08:00
renovate[bot] 3e99ae185b chore(deps): update dependency lint-staged to v13.1.0 2022-12-05 11:03:10 +00:00
renovate[bot] 91f881410c fix(typedoc-plugin-appium): update dependency typedoc-plugin-markdown to v3.14.0 2022-12-04 16:05:20 +00:00
renovate[bot] 3bf9358291 fix(typedoc-plugin-appium): update dependency type-fest to v3.3.0 2022-12-04 13:37:36 +00:00
renovate[bot] cf34e4c17a fix(gulp-plugins): update dependency eslint to v8.29.0 2022-12-04 11:52:28 +00:00
renovate[bot] 2f53e9a34a chore(docutils): update dependency mkdocs-material-extensions to v1.1.1 2022-12-04 09:55:19 +00:00
renovate[bot] 91e60fdbbd chore(docutils): update dependency mkdocs-material to v8.5.11 2022-12-03 17:29:23 +00:00
renovate[bot] 8a285cdece fix(doctor): update dependency appium-adb to v9.10.18 2022-12-03 14:38:39 +00:00
renovate[bot] d888093057 chore(docutils): update dependency mkdocs-material to v8.2.16 2022-12-03 13:02:23 +00:00
renovate[bot] f6aad9cd9b chore(docutils): update dependency mkdocs to v1.4.2 2022-12-03 10:29:02 +00:00
Christopher Hiller 78a4b3488e chore(ci): add commitlint workflow 2022-12-02 15:05:32 -08:00
Christopher Hiller 9d857e429a chore: use commitlint
This adds [commitlint](https://npm.im/@commitlint/cli) to the project which validates commit messages against the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) spec via a preset.

Removed the [pre-commit](https://npm.im/pre-commit) package as it has not been updated in six (6) years; replaced with [husky](https://typicode.github.io/husky/) which is widely-used and full-featured.

Customized commitlint so that it will allow commit messages lines of arbitrary length; this is set to 100 by default, but is not in the specification.  If someone has a good reason that we _shouldn't_ disable that rule, please say something!

Closes #17844
2022-12-02 15:05:32 -08:00
renovate[bot] b297bb8891 fix(support): update dependency klaw to v4 2022-12-02 14:03:02 -08:00
renovate[bot] 68778ca5c5 fix(support): update dependency npmlog to v7 2022-12-02 14:02:53 -08:00
Christopher Hiller f3f63f52ab chore(typedoc-plugin-appium): remove jsx cruft from tsconfig 2022-12-02 12:44:31 -08:00
Christopher Hiller 10673f95dd chore(typedoc-plugin-appium): eliminate loop 2022-12-02 12:44:31 -08:00
Christopher Hiller 73299a0026 fix(typedoc-plugin-appium): fix external driver conversion
also rename template
2022-12-02 12:44:31 -08:00
Christopher Hiller 8f8e23af45 chore(typedoc-plugin-appium): rename "Routes" to "Commands" in template 2022-12-02 12:44:31 -08:00
Christopher Hiller 5333318e59 docs(docutils): add stub section about use in extensions
Co-authored-by: Jonathan Lipps <jlipps@gmail.com>
2022-12-02 12:44:31 -08:00
Christopher Hiller bd7cee18f8 docs(docutils): update subheading
Co-authored-by: Jonathan Lipps <jlipps@gmail.com>
2022-12-02 12:44:31 -08:00
Christopher Hiller 89e694481a docs(appium): rename nav item "Reference"
Co-authored-by: Jonathan Lipps <jlipps@gmail.com>
2022-12-02 12:44:31 -08:00
Christopher Hiller 215c3977ef chore(typedoc-plugin-appium): fix intra-module links; eliminate a loop in builder 2022-12-02 12:44:31 -08:00
Christopher Hiller 3245ede564 chore(typedoc-plugin-appium): a load of cleanup 2022-12-02 12:44:31 -08:00
Christopher Hiller d9f7a33664 chore(typedoc-plugin-appium): fix smoke test 2022-12-02 12:44:31 -08:00
Christopher Hiller 3bfb4671a9 chore(typedoc-plugin-appium): refactors for peer review 2022-12-02 12:44:31 -08:00
Christopher Hiller 346556557c chore(appium,docutils): proof-of-concept for use with mkdocs 2022-12-02 12:44:31 -08:00
Christopher Hiller 072dc9cdd8 chore(typedoc): mostly comments
also made some control flow nicer
2022-12-02 12:44:31 -08:00
Christopher Hiller a9085927ae chore(typedoc): hide breadcrumbs
- sort/format `typedoc.json`
- run `typedoc` with verbose logs
2022-12-02 12:44:31 -08:00
Christopher Hiller d958115029 chore(types): tweak/organize imports 2022-12-02 12:44:31 -08:00
Christopher Hiller f1773a8a8b chore(typedoc-plugin-appium): try to make a few things more clear
response to PR review

- "ref" is not used as a suffix in any vars. if it's a reflection its usually ending in "refl", or if it's just data, it ends in "data"
- short-circuited deep loop(s)
- many more types and type guards to attempt to simplify the crawling of reflections for data
2022-12-02 12:44:31 -08:00
Christopher Hiller be7a479b4b feat(typedoc-plugin-appium): create appium typedoc plugin
This is a typedoc plugin based on `typedoc-plugin-markdown`.

It outputs everything that plugin outputs _plus_ it outputs information about commands (API endpoints) as defined in drivers, plugins, and the builtins in `@appium/base-driver`

It's written in TS because that was the easiest way, because a) there was some sort of disagreement between Babel and TS re: exports, and b) everything it's built on is written in TS.
2022-12-02 12:44:31 -08:00
Christopher Hiller 8886b8ef23 chore(renovate): fix typo 2022-12-02 11:16:13 -08:00
renovate[bot] 2a42ccd110 fix(support): update dependency which to v3 2022-12-01 16:41:24 -08:00
Christopher Hiller 3eba685e25 chore(deps): upgrade sync-monorepo-packages to v1.0.0
This also means we can remove `packages` from `lerna.json`
2022-12-01 16:38:18 -08:00
Christopher Hiller 0db4b2e75d docs(intro): update requirements doc 2022-12-01 16:38:18 -08:00