@graphql-inspector/cli 0.0.0-canary.9cf9b2c → 0.0.0-canary.9e26f61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,8 +2,9 @@
2
2
 
3
3
  [![npm version](https://badge.fury.io/js/%40graphql-inspector%2Fcli.svg)](https://npmjs.com/package/@graphql-inspector/cli)
4
4
 
5
- **GraphQL Inspector** ouputs a list of changes between two GraphQL schemas. Every change is precisely explained and marked as breaking, non-breaking or dangerous.
6
- It helps you validate documents and fragments against a schema and even find similar or duplicated types.
5
+ **GraphQL Inspector** ouputs a list of changes between two GraphQL schemas. Every change is precisely explained and
6
+ marked as breaking, non-breaking or dangerous. It helps you validate documents and fragments against a schema and even
7
+ find similar or duplicated types.
7
8
 
8
9
  ![Example](./demo.gif)
9
10
 
@@ -20,7 +21,8 @@ Major features:
20
21
  - **GitHub Bot**
21
22
  - **GitHub Actions**
22
23
 
23
- GraphQL Inspector has a **CLI** and also a **programatic API**, so you can use it however you want to and even build tools on top of it.
24
+ GraphQL Inspector has a **CLI** and also a **programatic API**, so you can use it however you want to and even build
25
+ tools on top of it.
24
26
 
25
27
  ## Installation
26
28
 
@@ -43,9 +45,9 @@ Compares schemas and finds breaking or dangerous changes.
43
45
  **API:**
44
46
 
45
47
  ```typescript
46
- import {diff, Change} from '@graphql-inspector/core';
48
+ import { diff, Change } from '@graphql-inspector/core'
47
49
 
48
- const changes: Change[] = diff(schemaA, schemaB);
50
+ const changes: Change[] = diff(schemaA, schemaB)
49
51
  ```
50
52
 
51
53
  ![Diff](https://raw.githubusercontent.com/kamilkisiela/graphql-inspector/master/assets/diff.jpg)
@@ -61,9 +63,9 @@ Finds similar / duplicated types.
61
63
  **API:**
62
64
 
63
65
  ```typescript
64
- import {similar, SimilarMap} from '@graphql-inspector/core';
66
+ import { similar, SimilarMap } from '@graphql-inspector/core'
65
67
 
66
- const similar: SimilarMap = similar(schema, typename, threshold);
68
+ const similar: SimilarMap = similar(schema, typename, threshold)
67
69
  ```
68
70
 
69
71
  ![Similar](https://raw.githubusercontent.com/kamilkisiela/graphql-inspector/master/assets/similar.jpg)
@@ -79,9 +81,9 @@ Schema coverage based on documents. Find out how many times types and fields are
79
81
  **API:**
80
82
 
81
83
  ```typescript
82
- import {coverage, SchemaCoverage} from '@graphql-inspector/core';
84
+ import { coverage, SchemaCoverage } from '@graphql-inspector/core'
83
85
 
84
- const schemaCoverage: SchemaCoverage = coverage(schema, documents);
86
+ const schemaCoverage: SchemaCoverage = coverage(schema, documents)
85
87
  ```
86
88
 
87
89
  ![Coverage](https://raw.githubusercontent.com/kamilkisiela/graphql-inspector/master/assets/coverage.jpg)
@@ -97,13 +99,25 @@ Validates documents against a schema and looks for deprecated usage.
97
99
  **API:**
98
100
 
99
101
  ```typescript
100
- import {validate, InvalidDocument} from '@graphql-inspector/core';
102
+ import { validate, InvalidDocument } from '@graphql-inspector/core'
101
103
 
102
- const invalid: InvalidDocument[] = validate(documentsGlob, schema);
104
+ const invalid: InvalidDocument[] = validate(documentsGlob, schema)
103
105
  ```
104
106
 
105
107
  ![Validate](https://raw.githubusercontent.com/kamilkisiela/graphql-inspector/master/assets/validate.jpg)
106
108
 
109
+ ### Audit documents
110
+
111
+ Audit your documents for useful metrics such as query depth, directive count and alias count.
112
+
113
+ **CLI:**
114
+
115
+ $ graphql-inspector audit DOCUMENTS
116
+
117
+ **API:**
118
+
119
+ Not available
120
+
107
121
  ### Serve faked GraphQL API
108
122
 
109
123
  Serves a GraphQL server with faked data and GraphQL Playground
package/index.js CHANGED
@@ -12,15 +12,7 @@ function main() {
12
12
  return tslib.__awaiter(this, void 0, void 0, function* () {
13
13
  const config = {
14
14
  loaders: ['code', 'git', 'github', 'graphql', 'json', 'url'],
15
- commands: [
16
- 'docs',
17
- 'serve',
18
- 'diff',
19
- 'validate',
20
- 'coverage',
21
- 'introspect',
22
- 'similar',
23
- ],
15
+ commands: ['docs', 'serve', 'diff', 'validate', 'coverage', 'introspect', 'similar', 'audit'],
24
16
  };
25
17
  const loaders$1 = loaders.useLoaders(config);
26
18
  const commands$1 = commands.useCommands({ config, loaders: loaders$1 });
@@ -45,6 +37,16 @@ function main() {
45
37
  describe: 'Http Header',
46
38
  type: 'array',
47
39
  },
40
+ hl: {
41
+ alias: 'left-header',
42
+ describe: 'Http Header - Left',
43
+ type: 'array',
44
+ },
45
+ hr: {
46
+ alias: 'right-header',
47
+ describe: 'Http Header - Right',
48
+ type: 'array',
49
+ },
48
50
  });
49
51
  commands$1
50
52
  .reduce((cli, cmd) => cli.command(cmd), root)
@@ -7,15 +7,7 @@ function main() {
7
7
  return __awaiter(this, void 0, void 0, function* () {
8
8
  const config = {
9
9
  loaders: ['code', 'git', 'github', 'graphql', 'json', 'url'],
10
- commands: [
11
- 'docs',
12
- 'serve',
13
- 'diff',
14
- 'validate',
15
- 'coverage',
16
- 'introspect',
17
- 'similar',
18
- ],
10
+ commands: ['docs', 'serve', 'diff', 'validate', 'coverage', 'introspect', 'similar', 'audit'],
19
11
  };
20
12
  const loaders = useLoaders(config);
21
13
  const commands = useCommands({ config, loaders });
@@ -40,6 +32,16 @@ function main() {
40
32
  describe: 'Http Header',
41
33
  type: 'array',
42
34
  },
35
+ hl: {
36
+ alias: 'left-header',
37
+ describe: 'Http Header - Left',
38
+ type: 'array',
39
+ },
40
+ hr: {
41
+ alias: 'right-header',
42
+ describe: 'Http Header - Right',
43
+ type: 'array',
44
+ },
43
45
  });
44
46
  commands
45
47
  .reduce((cli, cmd) => cli.command(cmd), root)
@@ -48,4 +50,3 @@ function main() {
48
50
  });
49
51
  }
50
52
  main();
51
- //# sourceMappingURL=index.esm.js.map
package/package.json CHANGED
@@ -1,29 +1,30 @@
1
1
  {
2
2
  "name": "@graphql-inspector/cli",
3
- "version": "0.0.0-canary.9cf9b2c",
3
+ "version": "0.0.0-canary.9e26f61",
4
4
  "description": "Tooling for GraphQL. Compare GraphQL Schemas, check documents, find breaking changes, find similar types.",
5
5
  "sideEffects": false,
6
6
  "peerDependencies": {
7
- "graphql": "^14.0.0 || ^15.0.0"
7
+ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0"
8
8
  },
9
9
  "dependencies": {
10
- "@graphql-inspector/code-loader": "0.0.0-canary.9cf9b2c",
11
- "@graphql-inspector/commands": "0.0.0-canary.9cf9b2c",
12
- "@graphql-inspector/coverage-command": "0.0.0-canary.9cf9b2c",
13
- "@graphql-inspector/diff-command": "0.0.0-canary.9cf9b2c",
14
- "@graphql-inspector/docs-command": "0.0.0-canary.9cf9b2c",
15
- "@graphql-inspector/git-loader": "0.0.0-canary.9cf9b2c",
16
- "@graphql-inspector/github-loader": "0.0.0-canary.9cf9b2c",
17
- "@graphql-inspector/graphql-loader": "0.0.0-canary.9cf9b2c",
18
- "@graphql-inspector/introspect-command": "0.0.0-canary.9cf9b2c",
19
- "@graphql-inspector/json-loader": "0.0.0-canary.9cf9b2c",
20
- "@graphql-inspector/loaders": "0.0.0-canary.9cf9b2c",
21
- "@graphql-inspector/serve-command": "0.0.0-canary.9cf9b2c",
22
- "@graphql-inspector/similar-command": "0.0.0-canary.9cf9b2c",
23
- "@graphql-inspector/url-loader": "0.0.0-canary.9cf9b2c",
24
- "@graphql-inspector/validate-command": "0.0.0-canary.9cf9b2c",
10
+ "@graphql-inspector/audit-command": "0.0.0-canary.9e26f61",
11
+ "@graphql-inspector/code-loader": "0.0.0-canary.9e26f61",
12
+ "@graphql-inspector/commands": "0.0.0-canary.9e26f61",
13
+ "@graphql-inspector/coverage-command": "0.0.0-canary.9e26f61",
14
+ "@graphql-inspector/diff-command": "0.0.0-canary.9e26f61",
15
+ "@graphql-inspector/docs-command": "0.0.0-canary.9e26f61",
16
+ "@graphql-inspector/git-loader": "0.0.0-canary.9e26f61",
17
+ "@graphql-inspector/github-loader": "0.0.0-canary.9e26f61",
18
+ "@graphql-inspector/graphql-loader": "0.0.0-canary.9e26f61",
19
+ "@graphql-inspector/introspect-command": "0.0.0-canary.9e26f61",
20
+ "@graphql-inspector/json-loader": "0.0.0-canary.9e26f61",
21
+ "@graphql-inspector/loaders": "0.0.0-canary.9e26f61",
22
+ "@graphql-inspector/serve-command": "0.0.0-canary.9e26f61",
23
+ "@graphql-inspector/similar-command": "0.0.0-canary.9e26f61",
24
+ "@graphql-inspector/url-loader": "0.0.0-canary.9e26f61",
25
+ "@graphql-inspector/validate-command": "0.0.0-canary.9e26f61",
25
26
  "tslib": "^2.0.0",
26
- "yargs": "15.3.1"
27
+ "yargs": "17.2.1"
27
28
  },
28
29
  "repository": {
29
30
  "type": "git",
@@ -42,12 +43,22 @@
42
43
  "url": "https://github.com/kamilkisiela"
43
44
  },
44
45
  "license": "MIT",
45
- "main": "index.cjs.js",
46
- "module": "index.esm.js",
46
+ "main": "index.js",
47
+ "module": "index.mjs",
47
48
  "typings": "index.d.ts",
48
49
  "typescript": {
49
50
  "definition": "index.d.ts"
50
51
  },
52
+ "exports": {
53
+ ".": {
54
+ "require": "./index.js",
55
+ "import": "./index.mjs"
56
+ },
57
+ "./*": {
58
+ "require": "./*.js",
59
+ "import": "./*.mjs"
60
+ }
61
+ },
51
62
  "bin": {
52
63
  "graphql-inspector": "index.js"
53
64
  }
package/index.cjs.js DELETED
@@ -1,55 +0,0 @@
1
- 'use strict';
2
-
3
- function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
4
-
5
- const tslib = require('tslib');
6
- const commands = require('@graphql-inspector/commands');
7
- const loaders = require('@graphql-inspector/loaders');
8
- const yargs = _interopDefault(require('yargs'));
9
-
10
- function main() {
11
- return tslib.__awaiter(this, void 0, void 0, function* () {
12
- const config = {
13
- loaders: ['code', 'git', 'github', 'graphql', 'json', 'url'],
14
- commands: [
15
- 'docs',
16
- 'serve',
17
- 'diff',
18
- 'validate',
19
- 'coverage',
20
- 'introspect',
21
- 'similar',
22
- ],
23
- };
24
- const loaders$1 = loaders.useLoaders(config);
25
- const commands$1 = commands.useCommands({ config, loaders: loaders$1 });
26
- const root = yargs
27
- .scriptName('graphql-inspector')
28
- .detectLocale(false)
29
- .epilog('Visit https://graphql-inspector.com for more information')
30
- .version()
31
- .options({
32
- r: {
33
- alias: 'require',
34
- describe: 'Require modules',
35
- type: 'array',
36
- },
37
- t: {
38
- alias: 'token',
39
- describe: 'Access Token',
40
- type: 'string',
41
- },
42
- h: {
43
- alias: 'header',
44
- describe: 'Http Header',
45
- type: 'array',
46
- },
47
- });
48
- commands$1
49
- .reduce((cli, cmd) => cli.command(cmd), root)
50
- .help()
51
- .showHelpOnFail(false).argv;
52
- });
53
- }
54
- main();
55
- //# sourceMappingURL=index.cjs.js.map
package/index.cjs.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../dist/cli/src/index.js"],"sourcesContent":["import { __awaiter } from \"tslib\";\nimport { useCommands } from '@graphql-inspector/commands';\nimport { useLoaders } from '@graphql-inspector/loaders';\nimport yargs from 'yargs';\nfunction main() {\n return __awaiter(this, void 0, void 0, function* () {\n const config = {\n loaders: ['code', 'git', 'github', 'graphql', 'json', 'url'],\n commands: [\n 'docs',\n 'serve',\n 'diff',\n 'validate',\n 'coverage',\n 'introspect',\n 'similar',\n ],\n };\n const loaders = useLoaders(config);\n const commands = useCommands({ config, loaders });\n const root = yargs\n .scriptName('graphql-inspector')\n .detectLocale(false)\n .epilog('Visit https://graphql-inspector.com for more information')\n .version()\n .options({\n r: {\n alias: 'require',\n describe: 'Require modules',\n type: 'array',\n },\n t: {\n alias: 'token',\n describe: 'Access Token',\n type: 'string',\n },\n h: {\n alias: 'header',\n describe: 'Http Header',\n type: 'array',\n },\n });\n commands\n .reduce((cli, cmd) => cli.command(cmd), root)\n .help()\n .showHelpOnFail(false).argv;\n });\n}\nmain();\n//# sourceMappingURL=index.js.map"],"names":["__awaiter","loaders","useLoaders","commands","useCommands"],"mappings":";;;;;;;;;AAIA,SAAS,IAAI,GAAG;AAChB,IAAI,OAAOA,eAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa;AACxD,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC;AACxE,YAAY,QAAQ,EAAE;AACtB,gBAAgB,MAAM;AACtB,gBAAgB,OAAO;AACvB,gBAAgB,MAAM;AACtB,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,YAAY;AAC5B,gBAAgB,SAAS;AACzB,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,MAAMC,SAAO,GAAGC,kBAAU,CAAC,MAAM,CAAC,CAAC;AAC3C,QAAQ,MAAMC,UAAQ,GAAGC,oBAAW,CAAC,EAAE,MAAM,WAAEH,SAAO,EAAE,CAAC,CAAC;AAC1D,QAAQ,MAAM,IAAI,GAAG,KAAK;AAC1B,aAAa,UAAU,CAAC,mBAAmB,CAAC;AAC5C,aAAa,YAAY,CAAC,KAAK,CAAC;AAChC,aAAa,MAAM,CAAC,0DAA0D,CAAC;AAC/E,aAAa,OAAO,EAAE;AACtB,aAAa,OAAO,CAAC;AACrB,YAAY,CAAC,EAAE;AACf,gBAAgB,KAAK,EAAE,SAAS;AAChC,gBAAgB,QAAQ,EAAE,iBAAiB;AAC3C,gBAAgB,IAAI,EAAE,OAAO;AAC7B,aAAa;AACb,YAAY,CAAC,EAAE;AACf,gBAAgB,KAAK,EAAE,OAAO;AAC9B,gBAAgB,QAAQ,EAAE,cAAc;AACxC,gBAAgB,IAAI,EAAE,QAAQ;AAC9B,aAAa;AACb,YAAY,CAAC,EAAE;AACf,gBAAgB,KAAK,EAAE,QAAQ;AAC/B,gBAAgB,QAAQ,EAAE,aAAa;AACvC,gBAAgB,IAAI,EAAE,OAAO;AAC7B,aAAa;AACb,SAAS,CAAC,CAAC;AACX,QAAQE,UAAQ;AAChB,aAAa,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;AACzD,aAAa,IAAI,EAAE;AACnB,aAAa,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AACxC,KAAK,CAAC,CAAC;AACP,CAAC;AACD,IAAI,EAAE"}
package/index.esm.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../dist/cli/src/index.js"],"sourcesContent":["import { __awaiter } from \"tslib\";\nimport { useCommands } from '@graphql-inspector/commands';\nimport { useLoaders } from '@graphql-inspector/loaders';\nimport yargs from 'yargs';\nfunction main() {\n return __awaiter(this, void 0, void 0, function* () {\n const config = {\n loaders: ['code', 'git', 'github', 'graphql', 'json', 'url'],\n commands: [\n 'docs',\n 'serve',\n 'diff',\n 'validate',\n 'coverage',\n 'introspect',\n 'similar',\n ],\n };\n const loaders = useLoaders(config);\n const commands = useCommands({ config, loaders });\n const root = yargs\n .scriptName('graphql-inspector')\n .detectLocale(false)\n .epilog('Visit https://graphql-inspector.com for more information')\n .version()\n .options({\n r: {\n alias: 'require',\n describe: 'Require modules',\n type: 'array',\n },\n t: {\n alias: 'token',\n describe: 'Access Token',\n type: 'string',\n },\n h: {\n alias: 'header',\n describe: 'Http Header',\n type: 'array',\n },\n });\n commands\n .reduce((cli, cmd) => cli.command(cmd), root)\n .help()\n .showHelpOnFail(false).argv;\n });\n}\nmain();\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;AAIA,SAAS,IAAI,GAAG;AAChB,IAAI,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa;AACxD,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC;AACxE,YAAY,QAAQ,EAAE;AACtB,gBAAgB,MAAM;AACtB,gBAAgB,OAAO;AACvB,gBAAgB,MAAM;AACtB,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,YAAY;AAC5B,gBAAgB,SAAS;AACzB,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAC3C,QAAQ,MAAM,QAAQ,GAAG,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAC1D,QAAQ,MAAM,IAAI,GAAG,KAAK;AAC1B,aAAa,UAAU,CAAC,mBAAmB,CAAC;AAC5C,aAAa,YAAY,CAAC,KAAK,CAAC;AAChC,aAAa,MAAM,CAAC,0DAA0D,CAAC;AAC/E,aAAa,OAAO,EAAE;AACtB,aAAa,OAAO,CAAC;AACrB,YAAY,CAAC,EAAE;AACf,gBAAgB,KAAK,EAAE,SAAS;AAChC,gBAAgB,QAAQ,EAAE,iBAAiB;AAC3C,gBAAgB,IAAI,EAAE,OAAO;AAC7B,aAAa;AACb,YAAY,CAAC,EAAE;AACf,gBAAgB,KAAK,EAAE,OAAO;AAC9B,gBAAgB,QAAQ,EAAE,cAAc;AACxC,gBAAgB,IAAI,EAAE,QAAQ;AAC9B,aAAa;AACb,YAAY,CAAC,EAAE;AACf,gBAAgB,KAAK,EAAE,QAAQ;AAC/B,gBAAgB,QAAQ,EAAE,aAAa;AACvC,gBAAgB,IAAI,EAAE,OAAO;AAC7B,aAAa;AACb,SAAS,CAAC,CAAC;AACX,QAAQ,QAAQ;AAChB,aAAa,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;AACzD,aAAa,IAAI,EAAE;AACnB,aAAa,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AACxC,KAAK,CAAC,CAAC;AACP,CAAC;AACD,IAAI,EAAE"}