Commit Graph

1047 Commits

Author SHA1 Message Date
Jonathan Lipps 840a3b4a02 chore: fix sync-pkgs invocation 2022-12-13 15:57:19 -08:00
renovate[bot] 43e0d522db chore(deps): update dependency @types/node to v18.11.14 2022-12-13 13:30:16 +00:00
renovate[bot] c787bd6fb5 fix(gulp-plugins): update dependency mocha to v10.2.0 2022-12-12 13:59:50 +00:00
renovate[bot] 664b2b0e18 chore(deps): update dependency typedoc to v0.23.22 2022-12-12 11:01:23 +00:00
renovate[bot] 0c8756b3ce chore(deps): update dependency typedoc-plugin-resolve-crossmodule-references to v0.3.3 2022-12-11 10:52:45 +00:00
renovate[bot] 7fbb4a9162 chore(deps): update dependency @types/node to v18.11.13 2022-12-11 08:57:13 +00:00
renovate[bot] 3e290ed119 chore(deps): update dependency @types/node to v18.11.12 2022-12-09 11:07:43 +00:00
Christopher Hiller 3b705e4fd0 fix: remove @appium/fake-plugin as a dep of monorepo
Fixes dependency on `@appium/fake-plugin` in the monorepo root, which was resulting in `npm` emitting some errors during various operations (e.g., `npm list`).  This is not needed b/c this module is in the list of workspaces.
2022-12-08 17:29:16 -08:00
renovate[bot] 9537cd3e3d chore(deps): update dependency prettier to v2.8.1 2022-12-08 08:25:20 +00:00
renovate[bot] d160e3959e chore(deps): update dependency midnight-smoker to v2 2022-12-07 10:15:41 -08: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 4dfe1610b5 fix(fake-driver): copy screen.png on build 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 3955f5a156 chore(appium): experimental build via tsc 2022-12-06 11:21:05 -08:00
renovate[bot] 223c784439 chore(deps): update dependency @types/node to v18.11.11 2022-12-06 10:50:35 +00:00
renovate[bot] af8560b625 chore(deps): update dependency sync-monorepo-packages to v1 2022-12-05 11:48:33 -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] cf34e4c17a fix(gulp-plugins): update dependency eslint to v8.29.0 2022-12-04 11:52:28 +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
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 a1dbe6c43e chore!: set engines to minimum Node.js v14.17.0
BREAKING CHANGE: Appium now supports version range `^14.17.0 || ^16.13.0 || >=18.0.0`
2022-12-01 16:38:18 -08:00
renovate[bot] f62db4b26d fix(driver-test-support): update definitelytyped 2022-12-01 09:39:21 +00:00
renovate[bot] 394d1c3e93 chore(): update dependency lerna to v6.1.0 2022-11-30 15:02:02 +00:00
Christopher Hiller 10d1438af7 fix(appium): store path to installed extension
This uses the new v3 version of the manifest schema to add an `installPath` property to every extension in `extensions.yaml`.  This fixes an issue where extensions may not be able to be _instantiated_ within an extension dev environment.
2022-11-29 13:01:55 -08:00
renovate[bot] ebcc1d2150 fix(test-support): update dependency sinon to v15 2022-11-29 12:18:45 -08:00
renovate[bot] 8fd1893f03 chore(): update dependency lerna to v6 2022-11-29 12:18:28 -08:00
renovate[bot] 32557f4bca fix(opencv): update definitelytyped 2022-11-29 10:32:09 +00:00
Christopher Hiller 96e30ad537 fix(types): generate constraints via babel
Because `@appium/base-driver` needs `BASE_DRIVER_CAP_CONSTRAINTS`, we need to build on `prepare`. But we cannot build on `prepare` if the file this var is in needs to be built via `tsc`, because the TS project is built as a whole.  The `prepare` scripts of each package run _before_ the `prepare` script of the monorepo, so the file simply won't be available.

Anyway, that file is now a `.js` file and is compiled via `babel` like the other packages.

Also tweaked `reinstall`/`clean:packages` scripts

# Conflicts:
#	packages/types/lib/index.ts
2022-11-28 17:14:40 -08:00
renovate[bot] 02ad17bce6 fix(gulp-plugins): update dependency @babel/core to v7.20.5 2022-11-28 15:07:05 +00:00
renovate[bot] b0d6adc855 chore(): update dependency lint-staged to v13.0.4 2022-11-25 12:37:50 +00:00
renovate[bot] edb325131b fix(execute-driver-plugin): update dependency webdriverio to v7.27.0 2022-11-24 11:10:20 +00:00
renovate[bot] 9519833f0e chore(): update dependency prettier to v2.8.0 2022-11-23 14:48:31 +00:00
renovate[bot] 2d5281165b chore(): update dependency typedoc to v0.23.21 2022-11-23 13:59:30 +00:00
renovate[bot] e054f58c50 fix(gulp-plugins): update dependency eslint to v8.28.0 2022-11-23 02:11:53 +00:00
Christopher Hiller 3772c90448 fix(appium): address ajv version mismatches 2022-11-22 14:32:10 -08:00
Christopher Hiller b5be1fe93b feat(appium,support): use npm link for local installs
npm may have changed its behavior around installation of packages at local paths, but `npm install /path/to/thing` no longer seems to create a symlink.

the `installPackage()` method in `@appium/support`'s `npm` module now accepts an `installType` option.  if the value is `local` an `npm link` will be performed; otherwise an `npm install` will be performed.

- (appium) reverted some changes I made to a test in `driver.e2e.spec.js`
- `installViaNpm` now wants an `installType` option.  this is required
- removed a redundant script
2022-11-22 14:32:10 -08:00
Christopher Hiller 91333ec013 chore(): update typedoc, add typedoc-plugin-markdown 2022-11-22 14:32:10 -08:00
Christopher Hiller 4746080e54 feat(): experimental support for typedoc generation
Run `npm run typedoc` to generate docs in `typedoc-docs` dir.

I thought I'd take a few mins and set this up.  It was _mostly_ straightforward, except:

1. Figuring out the "entry point" for each package was difficult until I realized `.js` entry points are assumed to be compiled, and thus require a `sourceMappingUrl` reference. IMO this is probably a bug in TypeDoc
2. The `sourceMappingUrl` must reference an external sourcemap file; not an inline source map.  If it's an inline source map, the system tries to `fs.open` a large data-url.
3. The babel config does not control whether external sourcemaps are created; `@babel/cli` does. So I needed to change those.
4. Practically speaking, I don't see any drawback to external sourcemaps _yet_
5. TypeDoc has poor support for cross-package type references in monorepos, and I had to add a plugin which implements a workaround
6. Per some suggestions in the docs, I modified the order of references in the root `tsconfig.json` to start with "the biggest one first"

I didn't modify any types or docstrings anywhere.
2022-11-22 14:32:10 -08:00
renovate[bot] 2a445addff fix(types): update webdriverio monorepo to v7.26.0 2022-11-22 13:34:05 -08:00
renovate[bot] 852f133052 chore(): update dependency midnight-smoker to v1.2.2 2022-11-22 13:32:42 -08:00
renovate[bot] 7fd2428816 chore(): update dependency rewiremock to v3.14.4 2022-11-21 13:03:35 -08:00
renovate[bot] 70a9c144fc fix(fake-driver): update dependency asyncbox to v2.9.4 2022-11-20 08:46:46 +00:00
renovate[bot] 01bcbd9f0d fix(test-support): update dependency sinon to v14.0.2 2022-11-08 11:05:54 +00:00
renovate[bot] d5bf721cfa fix(driver-test-support): update dependency chai to v4.3.7 2022-11-08 10:25:38 +00:00
renovate[bot] 6dd508e5da chore(): update definitelytyped 2022-11-08 09:36:57 +00:00
renovate[bot] 334093bfac chore(): update dependency ws to v8.11.0 2022-11-07 09:56:53 +00:00
renovate[bot] e70e672796 fix(gulp-plugins): update dependency eslint to v8.27.0 2022-11-06 10:03:23 +00:00
renovate[bot] 6e3bfb8847 fix(gulp-plugins): update babel monorepo to v7.20.2 2022-11-05 09:36:01 +00:00