Files
appium/package.json
Christopher Hiller f33b87bbf9 chore(appium,types,schema): create @appium/schema
`@appium/schema` is a package which was extracted from `appium`.  It _only_ contains the schema.  The impetus here was to avoid cyclical dependencies, since `appium` depends on `@appium/types`, and `@appium/types` depends on the schema.  This package breaks the cycle.

The `scripts/generate-schema-json.js` (which converts the compiled JS schema file into JSON) has moved into this package, and the generated JSON file is now under version control.  This is because the `generate-schema-types.js` script (previously `generate-schema-declarations`) depends on it, and `@appium/types` depends on the generated types.  The generated types are _also_ under version control.  I do not expect the schema to change often, so I believe the tradeoff to be worth it.

## @appium/schema

`lib/appium-config-schema.js` is the "single source of truth" for the schema.

## appium

- Removed schema source
- Removed namespaces from internal types because they suck (see change to `types/index.d.ts`)
- Removed unused `continuation-local-storage`
- Add dep for `@appium/schema`
- Added a TS project dependency on `@appium/schema`

## @appium/types

- The "sources" have moved from `src` to `lib` for consistency.
- `lib/appium-config.ts` (the generated types) are now under version control.
- `lib/schema/` has been removed (it previously held the JSON schema artifact)
- `scripts/generate-schema-declarations.js` becomes `scripts/generate-schema-types.js`
- Updated scripts in `package.json`
- Added dep for `@appium/schema`
- Added a TS project dependency on `@appium/schema`

## Other

- Reorganize root `tsconfig.json`; add `schema` reference; remove unused `noEmit: true`
- Sort root `package.json`
- Remove schema JSON and schema declarations scripts, since those are now both handled in their respective packages
- Remove `lint-staged` config for schema file, since it didn't work right anyway (still need to do something about this, but probably doesn't need to be in a precommit hook)
- Remove stuff from `.gitignore`
2022-04-07 14:05:41 -07:00

187 lines
6.8 KiB
JSON

{
"name": "appium-monorepo",
"version": "0.0.0",
"private": true,
"description": "Automation for Apps.",
"keywords": [
"automation",
"javascript",
"selenium",
"webdriver",
"ios",
"android",
"firefoxos",
"testing"
],
"homepage": "https://appium.io",
"bugs": {
"url": "https://github.com/appium/appium/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/appium/appium.git"
},
"license": "Apache-2.0",
"author": "https://github.com/appium",
"scripts": {
"build": "run-s build:distfiles build:types",
"build:distfiles": "lerna run --parallel --prefix --concurrency=8 build",
"build:loose": "run-s -c build:distfiles build:types || true",
"build:types": "tsc -b",
"clean": "run-s clean:*",
"clean:distfiles": "npx rimraf \"packages/*/build\"",
"clean:monorepo": "npx rimraf node_modules package-lock.json",
"clean:packages": "lerna clean -y && npx rimraf \"packages/*/package-lock.json\"",
"clean:types": "tsc -b --clean",
"dev": "lerna run --parallel --prefix --concurrency=8 dev",
"dev:types": "tsc -b --watch",
"doctor": "node ./packages/doctor",
"e2e-test": "lerna run --parallel --max-buffer=128 test:e2e",
"generate-docs": "lerna run --scope=appium generate-docs",
"postinstall": "npm run build:loose",
"install-fake-driver": "npm start -- driver install --source=local ./packages/fake-driver",
"lint": "eslint .",
"lint:fix": "npm run lint -- --fix",
"precommit-lint": "lint-staged",
"precommit-msg": "echo 'Pre-commit checks...'",
"prepublishOnly": "npm run build",
"reinstall": "npm run clean && npm install",
"start": "appium",
"sync-pkgs": "run-p sync-pkgs:*",
"sync-pkgs:appium-readme": "sync-monorepo-packages --force --no-package-json --packages=packages/appium README.md",
"sync-pkgs:common-fields": "sync-monorepo-packages --fields=author,license,bugs,homepage,engines",
"sync-pkgs:keywords": "sync-monorepo-packages --field=keywords --packages=\"packages/*\" --packages=\"!packages/eslint-config-appium\" --packages=\"!packages/types\"",
"sync-pkgs:license": "sync-monorepo-packages --force --no-package-json LICENSE",
"pretest": "npm run build",
"test": "lerna run test",
"posttest": "npm run lint",
"test:appium": "lerna run --scope=appium test",
"test:base-driver": "lerna run --scope=@appium/base-driver test",
"pretest:ci": "npm run build:distfiles",
"test:ci": "lerna run test",
"test:doctor": "lerna run --scope=@appium/doctor test",
"test:e2e:appium": "lerna run --scope=appium test:e2e",
"test:e2e:base-driver": "lerna run --scope=@appium/base-driver test:e2e",
"test:e2e:fake-driver": "lerna run --scope=@appium/fake-driver test:e2e",
"test:e2e:gulp-plugins": "lerna run --scope=@appium/gulp-plugins test:e2e",
"test:e2e:opencv": "lerna run --scope=@appium/opencv test:e2e",
"test:e2e:support": "lerna run --scope=@appium/support test:e2e",
"test:fake-driver": "lerna run --scope=@appium/fake-driver test",
"test:gulp-plugins": "lerna run --scope=@appium/gulp-plugins test",
"test:opencv": "lerna run --scope=@appium/opencv test",
"test:support": "lerna run --scope=@appium/support test",
"test:test-support": "lerna run --scope=@appium/test-support test",
"uninstall-fake-driver": "npm start -- driver uninstall fake",
"upload": "gulp github-upload",
"preversion": "npm run sync-pkgs && git add -A packages/appium/README.md packages/*/package.json && npm run build:schema",
"zip": "zip -qr ./appium.zip ./packages/appium",
"zip-and-upload": "run-s zip upload"
},
"pre-commit": [
"precommit-msg",
"precommit-lint"
],
"lint-staged": {
"*.js": "eslint --fix"
},
"dependencies": {
"@appium/base-driver": "file:packages/base-driver",
"@appium/doctor": "file:packages/doctor",
"@appium/eslint-config-appium": "file:packages/eslint-config-appium",
"@appium/fake-driver": "file:packages/fake-driver",
"@appium/gulp-plugins": "file:packages/gulp-plugins",
"@appium/opencv": "file:packages/opencv",
"@appium/schema": "file:packages/schema",
"@appium/support": "file:packages/support",
"@appium/test-support": "file:packages/test-support",
"@appium/types": "file:packages/types",
"appium": "file:packages/appium"
},
"devDependencies": {
"@appium/fake-plugin": "1.3.1",
"@babel/cli": "7.17.6",
"@babel/core": "7.17.9",
"@babel/eslint-parser": "7.17.0",
"@babel/plugin-transform-runtime": "7.17.0",
"@babel/preset-env": "7.16.11",
"@babel/register": "7.17.7",
"@babel/runtime": "7.17.9",
"@colors/colors": "1.5.0",
"@types/archiver": "5.3.1",
"@types/argparse": "2.0.10",
"@types/async-lock": "1.1.3",
"@types/base64-stream": "1.0.2",
"@types/bluebird": "3.5.36",
"@types/chai": "4.3.0",
"@types/chai-as-promised": "7.1.5",
"@types/express": "4.17.13",
"@types/fancy-log": "1.3.1",
"@types/find-root": "1.1.2",
"@types/gulp": "4.0.9",
"@types/jsftp": "2.1.2",
"@types/json-schema": "7.0.11",
"@types/klaw": "3.0.3",
"@types/lockfile": "1.0.2",
"@types/method-override": "0.0.32",
"@types/mocha": "9.1.0",
"@types/mv": "2.1.2",
"@types/ncp": "2.0.5",
"@types/node": "16.11.26",
"@types/npmlog": "4.1.4",
"@types/pluralize": "0.0.29",
"@types/pngjs": "6.0.1",
"@types/rimraf": "3.0.2",
"@types/semver": "7.3.9",
"@types/serve-favicon": "2.5.3",
"@types/shell-quote": "1.7.1",
"@types/sinon": "10.0.11",
"@types/sinon-chai": "3.2.8",
"@types/teen_process": "1.16.0",
"@types/through2": "2.0.36",
"@types/uuid": "8.3.4",
"@wdio/types": "7.19.1",
"asyncbox": "2.9.2",
"babel-plugin-istanbul": "6.1.1",
"babel-plugin-source-map-support": "2.1.3",
"chai": "4.3.6",
"chai-as-promised": "7.1.1",
"chai-webdriverio-async": "2.6.0",
"eslint": "7.32.0",
"eslint-find-rules": "4.1.0",
"eslint-plugin-import": "2.26.0",
"eslint-plugin-mocha": "9.0.0",
"eslint-plugin-promise": "6.0.0",
"fancy-log": "2.0.0",
"finalhandler": "1.2.0",
"get-port": "5.1.1",
"gulp": "4.0.2",
"handlebars": "4.7.7",
"json-schema-to-typescript": "10.1.5",
"lerna": "4.0.0",
"lint-staged": "12.3.7",
"log-symbols": "4.1.0",
"mjpeg-server": "0.3.1",
"mocha": "9.2.2",
"npm-run-all": "4.1.5",
"pre-commit": "1.2.2",
"rewiremock": "3.14.3",
"serve-static": "1.15.0",
"sinon": "13.0.1",
"sinon-chai": "3.7.0",
"sync-monorepo-packages": "0.3.4",
"through2": "4.0.2",
"type-fest": "2.12.2",
"typescript": "4.6.3",
"validate.js": "0.13.1",
"webdriverio": "7.19.3",
"yaml-js": "0.3.1"
},
"engines": {
"node": ">=12",
"npm": ">=6"
},
"publishConfig": {
"access": "public"
}
}