The schedule is helpful in the context of a larger monorepo like Appium, but not so much in the context of a standalone package which consumes the shared config.
* append the initial jp resource
* update a few
* comment out
* add for translations
* update the index
* add <br> to void unnecessary space by GitHub
* remove new line to void unnecessary space by GitHub
* tweak translations
* tweak
* add a few in intro/index.md
This adds a module `lib/extension/manifest-migrations` which contains functions that migrate `extension.yaml` files to new versions.
- constant `CONFIG_SCHEMA_REV` renamed to `CURRENT_SCHEMA_REV` and moved into `constants` module
- removes references to removed `PluginRecord` and `DriverRecord` types
- `ExtensionFields` is now `ExtInstallReceipt`
- renamed private fields in `Manifest`; see L365-385 for logic changes
- updated test code
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.
This is a breaking change if someone is actually using the `npm` module out of `@appium/support`. Personally, I'm gonna go with "no"
The signature of `installPackage()` has changed from returning a parsed `package.json` to returning an `NpmInstallReceipt` object, which contains parsed `package.json` prop `pkg` and `string` prop `installPath`.
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
This PR modifies the `Args` type to understand extension subcommands (e.g., `driver install`).
Now the `Args` object that gets passed around will know if the args are for running the server or an extension command, and if the latter, which subcommand and what extra options that subcommand supports (e.g., `driver list --show-installed`)
Further, the `main()` export from `main.js` now uses a conditional type based on the command to know if it will resolve with an `AppiumServer` or `void`. Previously, this was just a union type; now it is smarter and easier to use.
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
These arose when attempting to generate docs
- Errors now all have optional params in constructors; normalized param name
- Validate `METHOD_MAP` against an actual `MethodMap`
- Set `cliArgs = {}` as default in `server()`
- Rename `SessionCommands` to `ISessionCommands`
- The "context" in `IFindCommands` is now a generic of any type
- Made various props in `ExternalDriver` optional; `ExternalDriver` now accepts generic `Constraints`
- `proxyCommand` accepts a generic return value
- Removed unnecessary second generic type param from `DriverClass`