@quantiya/codevibe-claude-plugin 1.0.37 → 1.0.38

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.
Files changed (255) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/bin/codevibe-claude +17 -3
  3. package/dist/server.js +8 -8
  4. package/hooks/stop.sh +30 -10
  5. package/node_modules/@quantiya/codevibe-core/dist/appsync/appsync-client.d.ts +1 -139
  6. package/node_modules/@quantiya/codevibe-core/dist/appsync/queries.d.ts +0 -5
  7. package/node_modules/@quantiya/codevibe-core/dist/auth/auth-telemetry.d.ts +64 -29
  8. package/node_modules/@quantiya/codevibe-core/dist/index.d.ts +0 -4
  9. package/node_modules/@quantiya/codevibe-core/dist/index.js +33 -194
  10. package/node_modules/@quantiya/codevibe-core/dist/keychain/keychain-manager.d.ts +16 -2
  11. package/node_modules/@quantiya/codevibe-core/dist/session/session-rekey.d.ts +40 -0
  12. package/node_modules/@quantiya/codevibe-core/dist/session/session-resume.d.ts +1 -0
  13. package/node_modules/@quantiya/codevibe-core/dist/types/index.d.ts +0 -2
  14. package/node_modules/@quantiya/codevibe-core/dist/types/session.d.ts +0 -16
  15. package/node_modules/@quantiya/codevibe-core/package.json +1 -1
  16. package/node_modules/body-parser/README.md +18 -18
  17. package/node_modules/body-parser/index.js +6 -15
  18. package/node_modules/body-parser/lib/read.js +17 -20
  19. package/node_modules/body-parser/lib/types/json.js +8 -16
  20. package/node_modules/body-parser/lib/types/raw.js +3 -4
  21. package/node_modules/body-parser/lib/types/text.js +3 -4
  22. package/node_modules/body-parser/lib/types/urlencoded.js +8 -8
  23. package/node_modules/body-parser/lib/utils.js +11 -9
  24. package/node_modules/body-parser/package.json +2 -2
  25. package/node_modules/content-disposition/README.md +7 -8
  26. package/node_modules/content-disposition/index.js +118 -40
  27. package/node_modules/content-disposition/package.json +8 -11
  28. package/node_modules/express/Readme.md +39 -29
  29. package/node_modules/express/lib/application.js +1 -1
  30. package/node_modules/express/lib/request.js +5 -6
  31. package/node_modules/express/lib/response.js +14 -0
  32. package/node_modules/express/lib/utils.js +3 -1
  33. package/node_modules/express/package.json +6 -5
  34. package/node_modules/finalhandler/HISTORY.md +6 -0
  35. package/node_modules/finalhandler/README.md +26 -23
  36. package/node_modules/finalhandler/package.json +13 -9
  37. package/node_modules/graphql/execution/execute.d.ts +14 -1
  38. package/node_modules/graphql/execution/execute.js +63 -13
  39. package/node_modules/graphql/execution/execute.mjs +63 -13
  40. package/node_modules/graphql/execution/subscribe.js +1 -0
  41. package/node_modules/graphql/execution/subscribe.mjs +2 -0
  42. package/node_modules/graphql/execution/values.js +4 -4
  43. package/node_modules/graphql/execution/values.mjs +4 -4
  44. package/node_modules/graphql/index.d.ts +1 -0
  45. package/node_modules/graphql/language/ast.d.ts +10 -1
  46. package/node_modules/graphql/language/ast.js +8 -1
  47. package/node_modules/graphql/language/ast.mjs +8 -1
  48. package/node_modules/graphql/language/directiveLocation.d.ts +1 -0
  49. package/node_modules/graphql/language/directiveLocation.js +1 -0
  50. package/node_modules/graphql/language/directiveLocation.mjs +1 -0
  51. package/node_modules/graphql/language/index.d.ts +1 -0
  52. package/node_modules/graphql/language/kinds.d.ts +1 -0
  53. package/node_modules/graphql/language/kinds.js +1 -0
  54. package/node_modules/graphql/language/kinds.mjs +1 -0
  55. package/node_modules/graphql/language/parser.d.ts +14 -0
  56. package/node_modules/graphql/language/parser.js +33 -0
  57. package/node_modules/graphql/language/parser.mjs +33 -0
  58. package/node_modules/graphql/language/predicates.js +3 -1
  59. package/node_modules/graphql/language/predicates.mjs +5 -1
  60. package/node_modules/graphql/language/printer.js +13 -1
  61. package/node_modules/graphql/language/printer.mjs +13 -1
  62. package/node_modules/graphql/package.json +1 -1
  63. package/node_modules/graphql/type/directives.d.ts +9 -1
  64. package/node_modules/graphql/type/directives.js +10 -1
  65. package/node_modules/graphql/type/directives.mjs +10 -1
  66. package/node_modules/graphql/type/introspection.js +24 -1
  67. package/node_modules/graphql/type/introspection.mjs +24 -1
  68. package/node_modules/graphql/utilities/buildASTSchema.js +4 -0
  69. package/node_modules/graphql/utilities/buildASTSchema.mjs +4 -0
  70. package/node_modules/graphql/utilities/buildClientSchema.js +1 -0
  71. package/node_modules/graphql/utilities/buildClientSchema.mjs +1 -0
  72. package/node_modules/graphql/utilities/coerceInputValue.js +2 -2
  73. package/node_modules/graphql/utilities/coerceInputValue.mjs +2 -2
  74. package/node_modules/graphql/utilities/extendSchema.js +58 -3
  75. package/node_modules/graphql/utilities/extendSchema.mjs +58 -3
  76. package/node_modules/graphql/utilities/getIntrospectionQuery.d.ts +16 -0
  77. package/node_modules/graphql/utilities/getIntrospectionQuery.js +31 -38
  78. package/node_modules/graphql/utilities/getIntrospectionQuery.mjs +31 -38
  79. package/node_modules/graphql/utilities/introspectionFromSchema.js +1 -0
  80. package/node_modules/graphql/utilities/introspectionFromSchema.mjs +1 -0
  81. package/node_modules/graphql/utilities/printSchema.js +1 -0
  82. package/node_modules/graphql/utilities/printSchema.mjs +1 -0
  83. package/node_modules/graphql/utilities/valueFromAST.js +12 -2
  84. package/node_modules/graphql/utilities/valueFromAST.mjs +12 -2
  85. package/node_modules/graphql/validation/rules/KnownDirectivesRule.js +4 -0
  86. package/node_modules/graphql/validation/rules/KnownDirectivesRule.mjs +4 -0
  87. package/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.js +12 -0
  88. package/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.mjs +12 -0
  89. package/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.js +5 -11
  90. package/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.mjs +5 -11
  91. package/node_modules/graphql/validation/validate.js +12 -0
  92. package/node_modules/graphql/validation/validate.mjs +13 -2
  93. package/node_modules/graphql/version.js +2 -2
  94. package/node_modules/graphql/version.mjs +2 -2
  95. package/node_modules/hasown/CHANGELOG.md +11 -0
  96. package/node_modules/hasown/eslint.config.mjs +6 -0
  97. package/node_modules/hasown/index.d.ts +1 -0
  98. package/node_modules/hasown/package.json +14 -14
  99. package/node_modules/iconv-lite/lib/index.d.ts +114 -26
  100. package/node_modules/iconv-lite/lib/index.js +39 -40
  101. package/node_modules/iconv-lite/package.json +13 -2
  102. package/node_modules/iconv-lite/types/encodings.d.ts +423 -0
  103. package/node_modules/node-abi/abi_registry.json +10 -3
  104. package/node_modules/{semver → node-abi/node_modules/semver}/README.md +19 -4
  105. package/node_modules/{semver → node-abi/node_modules/semver}/bin/semver.js +14 -10
  106. package/node_modules/node-abi/node_modules/semver/functions/truncate.js +48 -0
  107. package/node_modules/{semver → node-abi/node_modules/semver}/index.js +2 -0
  108. package/node_modules/{semver → node-abi/node_modules/semver}/internal/re.js +1 -1
  109. package/node_modules/{semver → node-abi/node_modules/semver}/package.json +3 -3
  110. package/node_modules/{semver → node-abi/node_modules/semver}/range.bnf +5 -4
  111. package/node_modules/node-abi/package.json +1 -1
  112. package/node_modules/path-to-regexp/Readme.md +3 -3
  113. package/node_modules/path-to-regexp/dist/index.d.ts +3 -0
  114. package/node_modules/path-to-regexp/dist/index.js +215 -193
  115. package/node_modules/path-to-regexp/dist/index.js.map +1 -1
  116. package/node_modules/path-to-regexp/package.json +2 -2
  117. package/node_modules/qs/.editorconfig +1 -1
  118. package/node_modules/qs/.github/SECURITY.md +11 -0
  119. package/node_modules/qs/.github/THREAT_MODEL.md +78 -0
  120. package/node_modules/qs/CHANGELOG.md +190 -0
  121. package/node_modules/qs/README.md +29 -4
  122. package/node_modules/qs/dist/qs.js +21 -21
  123. package/node_modules/qs/eslint.config.mjs +56 -0
  124. package/node_modules/qs/lib/parse.js +94 -49
  125. package/node_modules/qs/lib/utils.js +85 -11
  126. package/node_modules/qs/package.json +10 -9
  127. package/node_modules/qs/test/parse.js +391 -13
  128. package/node_modules/qs/test/stringify.js +16 -3
  129. package/node_modules/qs/test/utils.js +173 -3
  130. package/node_modules/send/package.json +11 -8
  131. package/node_modules/serve-static/README.md +23 -23
  132. package/node_modules/serve-static/package.json +6 -3
  133. package/node_modules/side-channel-list/CHANGELOG.md +25 -4
  134. package/node_modules/side-channel-list/index.js +1 -3
  135. package/node_modules/side-channel-list/package.json +8 -8
  136. package/node_modules/side-channel-list/test/index.js +50 -0
  137. package/node_modules/uuid/dist/v35.js +3 -0
  138. package/node_modules/uuid/dist/v6.js +3 -0
  139. package/node_modules/uuid/dist-node/v35.js +3 -0
  140. package/node_modules/uuid/dist-node/v6.js +3 -0
  141. package/node_modules/uuid/package.json +1 -1
  142. package/node_modules/ws/index.js +15 -6
  143. package/node_modules/ws/lib/constants.js +1 -0
  144. package/node_modules/ws/lib/permessage-deflate.js +6 -6
  145. package/node_modules/ws/lib/websocket-server.js +10 -6
  146. package/node_modules/ws/lib/websocket.js +19 -14
  147. package/node_modules/ws/package.json +4 -3
  148. package/node_modules/ws/wrapper.mjs +14 -1
  149. package/package.json +2 -2
  150. package/node_modules/@quantiya/codevibe-core/dist/appsync/__tests__/appsync-client.test.d.ts +0 -1
  151. package/node_modules/@quantiya/codevibe-core/dist/audit-keys/__tests__/audit-keys-parity.test.d.ts +0 -1
  152. package/node_modules/@quantiya/codevibe-core/dist/audit-keys/index.d.ts +0 -41
  153. package/node_modules/@quantiya/codevibe-core/dist/auth/__tests__/auth-telemetry.test.d.ts +0 -1
  154. package/node_modules/@quantiya/codevibe-core/dist/orchestration/__tests__/setup-bootstrap.test.d.ts +0 -1
  155. package/node_modules/@quantiya/codevibe-core/dist/orchestration/__tests__/setup-failure-recourse.test.d.ts +0 -1
  156. package/node_modules/@quantiya/codevibe-core/dist/orchestration/__tests__/setup-save.test.d.ts +0 -1
  157. package/node_modules/@quantiya/codevibe-core/dist/orchestration/__tests__/setup-seat-picker.test.d.ts +0 -1
  158. package/node_modules/@quantiya/codevibe-core/dist/orchestration/__tests__/setup-telemetry.test.d.ts +0 -1
  159. package/node_modules/@quantiya/codevibe-core/dist/orchestration/__tests__/setup-test-agents.test.d.ts +0 -1
  160. package/node_modules/@quantiya/codevibe-core/dist/orchestration/__tests__/setup-types.test.d.ts +0 -1
  161. package/node_modules/@quantiya/codevibe-core/dist/orchestration/__tests__/setup-wizard.test.d.ts +0 -1
  162. package/node_modules/@quantiya/codevibe-core/dist/orchestration/__tests__/v1-options.test.d.ts +0 -1
  163. package/node_modules/@quantiya/codevibe-core/dist/orchestration/detect-agents.d.ts +0 -56
  164. package/node_modules/@quantiya/codevibe-core/dist/orchestration/index.d.ts +0 -3
  165. package/node_modules/@quantiya/codevibe-core/dist/orchestration/orchestration-cli.d.ts +0 -12
  166. package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-bootstrap.d.ts +0 -146
  167. package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-failure-recourse.d.ts +0 -23
  168. package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-save.d.ts +0 -47
  169. package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-seat-picker.d.ts +0 -72
  170. package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-telemetry.d.ts +0 -54
  171. package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-test-agents.d.ts +0 -108
  172. package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-types.d.ts +0 -140
  173. package/node_modules/@quantiya/codevibe-core/dist/orchestration/setup-wizard.d.ts +0 -57
  174. package/node_modules/@quantiya/codevibe-core/dist/orchestration/v1-options.d.ts +0 -108
  175. package/node_modules/@quantiya/codevibe-core/dist/reviewer/__tests__/integration.test.d.ts +0 -1
  176. package/node_modules/@quantiya/codevibe-core/dist/reviewer/__tests__/mocks.test.d.ts +0 -1
  177. package/node_modules/@quantiya/codevibe-core/dist/reviewer/__tests__/output-parser.test.d.ts +0 -1
  178. package/node_modules/@quantiya/codevibe-core/dist/reviewer/__tests__/registry.test.d.ts +0 -1
  179. package/node_modules/@quantiya/codevibe-core/dist/reviewer/__tests__/subprocess.test.d.ts +0 -1
  180. package/node_modules/@quantiya/codevibe-core/dist/reviewer/index.d.ts +0 -15
  181. package/node_modules/@quantiya/codevibe-core/dist/reviewer/mocks.d.ts +0 -80
  182. package/node_modules/@quantiya/codevibe-core/dist/reviewer/output-parser.d.ts +0 -95
  183. package/node_modules/@quantiya/codevibe-core/dist/reviewer/provider.d.ts +0 -153
  184. package/node_modules/@quantiya/codevibe-core/dist/reviewer/providers/__tests__/claude-live-smoke.test.d.ts +0 -1
  185. package/node_modules/@quantiya/codevibe-core/dist/reviewer/providers/__tests__/claude.test.d.ts +0 -1
  186. package/node_modules/@quantiya/codevibe-core/dist/reviewer/providers/__tests__/codex-live-smoke.test.d.ts +0 -1
  187. package/node_modules/@quantiya/codevibe-core/dist/reviewer/providers/__tests__/codex.test.d.ts +0 -1
  188. package/node_modules/@quantiya/codevibe-core/dist/reviewer/providers/__tests__/gemini-live-smoke.test.d.ts +0 -1
  189. package/node_modules/@quantiya/codevibe-core/dist/reviewer/providers/__tests__/gemini.test.d.ts +0 -1
  190. package/node_modules/@quantiya/codevibe-core/dist/reviewer/providers/claude.d.ts +0 -59
  191. package/node_modules/@quantiya/codevibe-core/dist/reviewer/providers/codex.d.ts +0 -67
  192. package/node_modules/@quantiya/codevibe-core/dist/reviewer/providers/common.d.ts +0 -25
  193. package/node_modules/@quantiya/codevibe-core/dist/reviewer/providers/gemini.d.ts +0 -108
  194. package/node_modules/@quantiya/codevibe-core/dist/reviewer/registry.d.ts +0 -87
  195. package/node_modules/@quantiya/codevibe-core/dist/reviewer/subprocess.d.ts +0 -117
  196. package/node_modules/@quantiya/codevibe-core/dist/reviewer/types.d.ts +0 -101
  197. package/node_modules/@quantiya/codevibe-core/dist/types/orchestration.d.ts +0 -57
  198. package/node_modules/@quantiya/codevibe-core/dist/types/reviewer.d.ts +0 -67
  199. package/node_modules/content-disposition/HISTORY.md +0 -72
  200. package/node_modules/express/History.md +0 -3858
  201. package/node_modules/hasown/.eslintrc +0 -5
  202. package/node_modules/iconv-lite/Changelog.md +0 -236
  203. package/node_modules/qs/.eslintrc +0 -39
  204. package/node_modules/send/HISTORY.md +0 -580
  205. package/node_modules/serve-static/HISTORY.md +0 -516
  206. /package/node_modules/{semver → node-abi/node_modules/semver}/LICENSE +0 -0
  207. /package/node_modules/{semver → node-abi/node_modules/semver}/classes/comparator.js +0 -0
  208. /package/node_modules/{semver → node-abi/node_modules/semver}/classes/index.js +0 -0
  209. /package/node_modules/{semver → node-abi/node_modules/semver}/classes/range.js +0 -0
  210. /package/node_modules/{semver → node-abi/node_modules/semver}/classes/semver.js +0 -0
  211. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/clean.js +0 -0
  212. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/cmp.js +0 -0
  213. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/coerce.js +0 -0
  214. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/compare-build.js +0 -0
  215. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/compare-loose.js +0 -0
  216. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/compare.js +0 -0
  217. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/diff.js +0 -0
  218. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/eq.js +0 -0
  219. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/gt.js +0 -0
  220. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/gte.js +0 -0
  221. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/inc.js +0 -0
  222. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/lt.js +0 -0
  223. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/lte.js +0 -0
  224. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/major.js +0 -0
  225. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/minor.js +0 -0
  226. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/neq.js +0 -0
  227. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/parse.js +0 -0
  228. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/patch.js +0 -0
  229. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/prerelease.js +0 -0
  230. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/rcompare.js +0 -0
  231. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/rsort.js +0 -0
  232. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/satisfies.js +0 -0
  233. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/sort.js +0 -0
  234. /package/node_modules/{semver → node-abi/node_modules/semver}/functions/valid.js +0 -0
  235. /package/node_modules/{semver → node-abi/node_modules/semver}/internal/constants.js +0 -0
  236. /package/node_modules/{semver → node-abi/node_modules/semver}/internal/debug.js +0 -0
  237. /package/node_modules/{semver → node-abi/node_modules/semver}/internal/identifiers.js +0 -0
  238. /package/node_modules/{semver → node-abi/node_modules/semver}/internal/lrucache.js +0 -0
  239. /package/node_modules/{semver → node-abi/node_modules/semver}/internal/parse-options.js +0 -0
  240. /package/node_modules/{semver → node-abi/node_modules/semver}/preload.js +0 -0
  241. /package/node_modules/{semver → node-abi/node_modules/semver}/ranges/gtr.js +0 -0
  242. /package/node_modules/{semver → node-abi/node_modules/semver}/ranges/intersects.js +0 -0
  243. /package/node_modules/{semver → node-abi/node_modules/semver}/ranges/ltr.js +0 -0
  244. /package/node_modules/{semver → node-abi/node_modules/semver}/ranges/max-satisfying.js +0 -0
  245. /package/node_modules/{semver → node-abi/node_modules/semver}/ranges/min-satisfying.js +0 -0
  246. /package/node_modules/{semver → node-abi/node_modules/semver}/ranges/min-version.js +0 -0
  247. /package/node_modules/{semver → node-abi/node_modules/semver}/ranges/outside.js +0 -0
  248. /package/node_modules/{semver → node-abi/node_modules/semver}/ranges/simplify.js +0 -0
  249. /package/node_modules/{semver → node-abi/node_modules/semver}/ranges/subset.js +0 -0
  250. /package/node_modules/{semver → node-abi/node_modules/semver}/ranges/to-comparators.js +0 -0
  251. /package/node_modules/{semver → node-abi/node_modules/semver}/ranges/valid.js +0 -0
  252. /package/node_modules/{strip-json-comments → rc/node_modules/strip-json-comments}/index.js +0 -0
  253. /package/node_modules/{strip-json-comments → rc/node_modules/strip-json-comments}/license +0 -0
  254. /package/node_modules/{strip-json-comments → rc/node_modules/strip-json-comments}/package.json +0 -0
  255. /package/node_modules/{strip-json-comments → rc/node_modules/strip-json-comments}/readme.md +0 -0
@@ -1,10 +1,14 @@
1
1
  {
2
2
  "name": "finalhandler",
3
3
  "description": "Node.js final http responder",
4
- "version": "2.1.0",
4
+ "version": "2.1.1",
5
5
  "author": "Douglas Christopher Wilson <doug@somethingdoug.com>",
6
6
  "license": "MIT",
7
7
  "repository": "pillarjs/finalhandler",
8
+ "funding": {
9
+ "type": "opencollective",
10
+ "url": "https://opencollective.com/express"
11
+ },
8
12
  "dependencies": {
9
13
  "debug": "^4.4.0",
10
14
  "encodeurl": "^2.0.0",
@@ -14,13 +18,13 @@
14
18
  "statuses": "^2.0.1"
15
19
  },
16
20
  "devDependencies": {
17
- "eslint": "7.32.0",
18
- "eslint-config-standard": "14.1.1",
19
- "eslint-plugin-import": "2.26.0",
20
- "eslint-plugin-markdown": "2.2.1",
21
- "eslint-plugin-node": "11.1.0",
22
- "eslint-plugin-promise": "5.2.0",
23
- "eslint-plugin-standard": "4.1.0",
21
+ "eslint": "^7.32.0",
22
+ "eslint-config-standard": "^14.1.1",
23
+ "eslint-plugin-import": "^2.31.0",
24
+ "eslint-plugin-markdown": "^2.2.1",
25
+ "eslint-plugin-node": "^11.1.0",
26
+ "eslint-plugin-promise": "^5.2.0",
27
+ "eslint-plugin-standard": "^4.1.0",
24
28
  "mocha": "^11.0.1",
25
29
  "nyc": "^17.1.0",
26
30
  "supertest": "^7.0.0"
@@ -31,7 +35,7 @@
31
35
  "index.js"
32
36
  ],
33
37
  "engines": {
34
- "node": ">= 0.8"
38
+ "node": ">= 18.0.0"
35
39
  },
36
40
  "scripts": {
37
41
  "lint": "eslint .",
@@ -55,7 +55,18 @@ export interface ExecutionContext {
55
55
  fieldResolver: GraphQLFieldResolver<any, any>;
56
56
  typeResolver: GraphQLTypeResolver<any, any>;
57
57
  subscribeFieldResolver: GraphQLFieldResolver<any, any>;
58
- errors: Array<GraphQLError>;
58
+ collectedErrors: CollectedErrors;
59
+ }
60
+ /**
61
+ * @internal
62
+ */
63
+ declare class CollectedErrors {
64
+ private _errorPositions;
65
+ private _errors;
66
+ constructor();
67
+ get errors(): ReadonlyArray<GraphQLError>;
68
+ add(error: GraphQLError, path: Path | undefined): void;
69
+ private _hasNulledPosition;
59
70
  }
60
71
  /**
61
72
  * The result of GraphQL execution.
@@ -121,6 +132,7 @@ export declare function executeSync(args: ExecutionArgs): ExecutionResult;
121
132
  * Essential assertions before executing to provide developer feedback for
122
133
  * improper use of the GraphQL library.
123
134
  *
135
+ * @deprecated will be removed in v17 in favor of assertValidSchema() and TS checks
124
136
  * @internal
125
137
  */
126
138
  export declare function assertValidExecutionArguments(
@@ -188,3 +200,4 @@ export declare function getFieldDef(
188
200
  parentType: GraphQLObjectType,
189
201
  fieldNode: FieldNode,
190
202
  ): Maybe<GraphQLField<unknown, unknown>>;
203
+ export {};
@@ -91,6 +91,55 @@ const collectSubfields = (0, _memoize.memoize3)(
91
91
  * and the fragments defined in the query document
92
92
  */
93
93
 
94
+ /**
95
+ * @internal
96
+ */
97
+ class CollectedErrors {
98
+ constructor() {
99
+ this._errorPositions = new Set();
100
+ this._errors = [];
101
+ }
102
+
103
+ get errors() {
104
+ return this._errors;
105
+ }
106
+
107
+ add(error, path) {
108
+ // Do not modify errors list if the execution position for this error or
109
+ // any of its ancestors has already been nulled via error propagation.
110
+ // This check should be unnecessary for implementations able to implement
111
+ // actual cancellation.
112
+ if (this._hasNulledPosition(path)) {
113
+ return;
114
+ }
115
+
116
+ this._errorPositions.add(path);
117
+
118
+ this._errors.push(error);
119
+ }
120
+
121
+ _hasNulledPosition(startPath) {
122
+ let path = startPath;
123
+
124
+ while (path !== undefined) {
125
+ if (this._errorPositions.has(path)) {
126
+ return true;
127
+ }
128
+
129
+ path = path.prev;
130
+ }
131
+
132
+ return this._errorPositions.has(undefined);
133
+ }
134
+ }
135
+ /**
136
+ * The result of GraphQL execution.
137
+ *
138
+ * - `errors` is included when any errors occurred as a non-empty array.
139
+ * - `data` is the result of a successful execution of the query.
140
+ * - `extensions` is reserved for adding non-standard properties.
141
+ */
142
+
94
143
  /**
95
144
  * Implements the "Executing requests" section of the GraphQL specification.
96
145
  *
@@ -137,18 +186,18 @@ function execute(args) {
137
186
 
138
187
  if ((0, _isPromise.isPromise)(result)) {
139
188
  return result.then(
140
- (data) => buildResponse(data, exeContext.errors),
189
+ (data) => buildResponse(data, exeContext.collectedErrors.errors),
141
190
  (error) => {
142
- exeContext.errors.push(error);
143
- return buildResponse(null, exeContext.errors);
191
+ exeContext.collectedErrors.add(error, undefined);
192
+ return buildResponse(null, exeContext.collectedErrors.errors);
144
193
  },
145
194
  );
146
195
  }
147
196
 
148
- return buildResponse(result, exeContext.errors);
197
+ return buildResponse(result, exeContext.collectedErrors.errors);
149
198
  } catch (error) {
150
- exeContext.errors.push(error);
151
- return buildResponse(null, exeContext.errors);
199
+ exeContext.collectedErrors.add(error, undefined);
200
+ return buildResponse(null, exeContext.collectedErrors.errors);
152
201
  }
153
202
  }
154
203
  /**
@@ -185,6 +234,7 @@ function buildResponse(data, errors) {
185
234
  * Essential assertions before executing to provide developer feedback for
186
235
  * improper use of the GraphQL library.
187
236
  *
237
+ * @deprecated will be removed in v17 in favor of assertValidSchema() and TS checks
188
238
  * @internal
189
239
  */
190
240
 
@@ -319,7 +369,7 @@ function buildExecutionContext(args) {
319
369
  subscribeFieldResolver !== null && subscribeFieldResolver !== void 0
320
370
  ? subscribeFieldResolver
321
371
  : defaultFieldResolver,
322
- errors: [],
372
+ collectedErrors: new CollectedErrors(),
323
373
  };
324
374
  }
325
375
  /**
@@ -524,7 +574,7 @@ function executeField(exeContext, parentType, source, fieldNodes, path) {
524
574
  fieldNodes,
525
575
  (0, _Path.pathToArray)(path),
526
576
  );
527
- return handleFieldError(error, returnType, exeContext);
577
+ return handleFieldError(error, returnType, path, exeContext);
528
578
  });
529
579
  }
530
580
 
@@ -535,7 +585,7 @@ function executeField(exeContext, parentType, source, fieldNodes, path) {
535
585
  fieldNodes,
536
586
  (0, _Path.pathToArray)(path),
537
587
  );
538
- return handleFieldError(error, returnType, exeContext);
588
+ return handleFieldError(error, returnType, path, exeContext);
539
589
  }
540
590
  }
541
591
  /**
@@ -559,7 +609,7 @@ function buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path) {
559
609
  };
560
610
  }
561
611
 
562
- function handleFieldError(error, returnType, exeContext) {
612
+ function handleFieldError(error, returnType, path, exeContext) {
563
613
  // If the field type is non-nullable, then it is resolved without any
564
614
  // protection from errors, however it still properly locates the error.
565
615
  if ((0, _definition.isNonNullType)(returnType)) {
@@ -567,7 +617,7 @@ function handleFieldError(error, returnType, exeContext) {
567
617
  } // Otherwise, error protection is applied, logging the error and resolving
568
618
  // a null value for this field if one is encountered.
569
619
 
570
- exeContext.errors.push(error);
620
+ exeContext.collectedErrors.add(error, path);
571
621
  return null;
572
622
  }
573
623
  /**
@@ -732,7 +782,7 @@ function completeListValue(
732
782
  fieldNodes,
733
783
  (0, _Path.pathToArray)(itemPath),
734
784
  );
735
- return handleFieldError(error, itemType, exeContext);
785
+ return handleFieldError(error, itemType, itemPath, exeContext);
736
786
  });
737
787
  }
738
788
 
@@ -743,7 +793,7 @@ function completeListValue(
743
793
  fieldNodes,
744
794
  (0, _Path.pathToArray)(itemPath),
745
795
  );
746
- return handleFieldError(error, itemType, exeContext);
796
+ return handleFieldError(error, itemType, itemPath, exeContext);
747
797
  }
748
798
  });
749
799
  return containsPromise ? Promise.all(completedResults) : completedResults;
@@ -72,6 +72,55 @@ const collectSubfields = memoize3((exeContext, returnType, fieldNodes) =>
72
72
  * and the fragments defined in the query document
73
73
  */
74
74
 
75
+ /**
76
+ * @internal
77
+ */
78
+ class CollectedErrors {
79
+ constructor() {
80
+ this._errorPositions = new Set();
81
+ this._errors = [];
82
+ }
83
+
84
+ get errors() {
85
+ return this._errors;
86
+ }
87
+
88
+ add(error, path) {
89
+ // Do not modify errors list if the execution position for this error or
90
+ // any of its ancestors has already been nulled via error propagation.
91
+ // This check should be unnecessary for implementations able to implement
92
+ // actual cancellation.
93
+ if (this._hasNulledPosition(path)) {
94
+ return;
95
+ }
96
+
97
+ this._errorPositions.add(path);
98
+
99
+ this._errors.push(error);
100
+ }
101
+
102
+ _hasNulledPosition(startPath) {
103
+ let path = startPath;
104
+
105
+ while (path !== undefined) {
106
+ if (this._errorPositions.has(path)) {
107
+ return true;
108
+ }
109
+
110
+ path = path.prev;
111
+ }
112
+
113
+ return this._errorPositions.has(undefined);
114
+ }
115
+ }
116
+ /**
117
+ * The result of GraphQL execution.
118
+ *
119
+ * - `errors` is included when any errors occurred as a non-empty array.
120
+ * - `data` is the result of a successful execution of the query.
121
+ * - `extensions` is reserved for adding non-standard properties.
122
+ */
123
+
75
124
  /**
76
125
  * Implements the "Executing requests" section of the GraphQL specification.
77
126
  *
@@ -118,18 +167,18 @@ export function execute(args) {
118
167
 
119
168
  if (isPromise(result)) {
120
169
  return result.then(
121
- (data) => buildResponse(data, exeContext.errors),
170
+ (data) => buildResponse(data, exeContext.collectedErrors.errors),
122
171
  (error) => {
123
- exeContext.errors.push(error);
124
- return buildResponse(null, exeContext.errors);
172
+ exeContext.collectedErrors.add(error, undefined);
173
+ return buildResponse(null, exeContext.collectedErrors.errors);
125
174
  },
126
175
  );
127
176
  }
128
177
 
129
- return buildResponse(result, exeContext.errors);
178
+ return buildResponse(result, exeContext.collectedErrors.errors);
130
179
  } catch (error) {
131
- exeContext.errors.push(error);
132
- return buildResponse(null, exeContext.errors);
180
+ exeContext.collectedErrors.add(error, undefined);
181
+ return buildResponse(null, exeContext.collectedErrors.errors);
133
182
  }
134
183
  }
135
184
  /**
@@ -166,6 +215,7 @@ function buildResponse(data, errors) {
166
215
  * Essential assertions before executing to provide developer feedback for
167
216
  * improper use of the GraphQL library.
168
217
  *
218
+ * @deprecated will be removed in v17 in favor of assertValidSchema() and TS checks
169
219
  * @internal
170
220
  */
171
221
 
@@ -300,7 +350,7 @@ export function buildExecutionContext(args) {
300
350
  subscribeFieldResolver !== null && subscribeFieldResolver !== void 0
301
351
  ? subscribeFieldResolver
302
352
  : defaultFieldResolver,
303
- errors: [],
353
+ collectedErrors: new CollectedErrors(),
304
354
  };
305
355
  }
306
356
  /**
@@ -501,14 +551,14 @@ function executeField(exeContext, parentType, source, fieldNodes, path) {
501
551
  // to take a second callback for the error case.
502
552
  return completed.then(undefined, (rawError) => {
503
553
  const error = locatedError(rawError, fieldNodes, pathToArray(path));
504
- return handleFieldError(error, returnType, exeContext);
554
+ return handleFieldError(error, returnType, path, exeContext);
505
555
  });
506
556
  }
507
557
 
508
558
  return completed;
509
559
  } catch (rawError) {
510
560
  const error = locatedError(rawError, fieldNodes, pathToArray(path));
511
- return handleFieldError(error, returnType, exeContext);
561
+ return handleFieldError(error, returnType, path, exeContext);
512
562
  }
513
563
  }
514
564
  /**
@@ -538,7 +588,7 @@ export function buildResolveInfo(
538
588
  };
539
589
  }
540
590
 
541
- function handleFieldError(error, returnType, exeContext) {
591
+ function handleFieldError(error, returnType, path, exeContext) {
542
592
  // If the field type is non-nullable, then it is resolved without any
543
593
  // protection from errors, however it still properly locates the error.
544
594
  if (isNonNullType(returnType)) {
@@ -546,7 +596,7 @@ function handleFieldError(error, returnType, exeContext) {
546
596
  } // Otherwise, error protection is applied, logging the error and resolving
547
597
  // a null value for this field if one is encountered.
548
598
 
549
- exeContext.errors.push(error);
599
+ exeContext.collectedErrors.add(error, path);
550
600
  return null;
551
601
  }
552
602
  /**
@@ -710,14 +760,14 @@ function completeListValue(
710
760
  fieldNodes,
711
761
  pathToArray(itemPath),
712
762
  );
713
- return handleFieldError(error, itemType, exeContext);
763
+ return handleFieldError(error, itemType, itemPath, exeContext);
714
764
  });
715
765
  }
716
766
 
717
767
  return completedItem;
718
768
  } catch (rawError) {
719
769
  const error = locatedError(rawError, fieldNodes, pathToArray(itemPath));
720
- return handleFieldError(error, itemType, exeContext);
770
+ return handleFieldError(error, itemType, itemPath, exeContext);
721
771
  }
722
772
  });
723
773
  return containsPromise ? Promise.all(completedResults) : completedResults;
@@ -125,6 +125,7 @@ async function createSourceEventStream(...rawArgs) {
125
125
  const args = toNormalizedArgs(rawArgs);
126
126
  const { schema, document, variableValues } = args; // If arguments are missing or incorrectly typed, this is an internal
127
127
  // developer mistake which should throw an early error.
128
+ // eslint-disable-next-line import/no-deprecated
128
129
 
129
130
  (0, _execute.assertValidExecutionArguments)(schema, document, variableValues); // If a valid execution context cannot be created due to incorrect arguments,
130
131
  // a "Response" with only errors is returned.
@@ -6,6 +6,7 @@ import { GraphQLError } from '../error/GraphQLError.mjs';
6
6
  import { locatedError } from '../error/locatedError.mjs';
7
7
  import { collectFields } from './collectFields.mjs';
8
8
  import {
9
+ // eslint-disable-next-line import/no-deprecated
9
10
  assertValidExecutionArguments,
10
11
  buildExecutionContext,
11
12
  buildResolveInfo,
@@ -111,6 +112,7 @@ export async function createSourceEventStream(...rawArgs) {
111
112
  const args = toNormalizedArgs(rawArgs);
112
113
  const { schema, document, variableValues } = args; // If arguments are missing or incorrectly typed, this is an internal
113
114
  // developer mistake which should throw an early error.
115
+ // eslint-disable-next-line import/no-deprecated
114
116
 
115
117
  assertValidExecutionArguments(schema, document, variableValues); // If a valid execution context cannot be created due to incorrect arguments,
116
118
  // a "Response" with only errors is returned.
@@ -72,7 +72,7 @@ function getVariableValues(schema, varDefNodes, inputs, options) {
72
72
  }
73
73
 
74
74
  function coerceVariableValues(schema, varDefNodes, inputs, onError) {
75
- const coercedValues = {};
75
+ const coercedValues = Object.create(null);
76
76
 
77
77
  for (const varDefNode of varDefNodes) {
78
78
  const varName = varDefNode.variable.name.value;
@@ -153,7 +153,7 @@ function coerceVariableValues(schema, varDefNodes, inputs, onError) {
153
153
  );
154
154
  }
155
155
 
156
- return coercedValues;
156
+ return { ...coercedValues };
157
157
  }
158
158
  /**
159
159
  * Prepares an object map of argument values given a list of argument
@@ -167,7 +167,7 @@ function coerceVariableValues(schema, varDefNodes, inputs, onError) {
167
167
  function getArgumentValues(def, node, variableValues) {
168
168
  var _node$arguments;
169
169
 
170
- const coercedValues = {}; // FIXME: https://github.com/graphql/graphql-js/issues/2203
170
+ const coercedValues = Object.create(null); // FIXME: https://github.com/graphql/graphql-js/issues/2203
171
171
 
172
172
  /* c8 ignore next */
173
173
 
@@ -266,7 +266,7 @@ function getArgumentValues(def, node, variableValues) {
266
266
  coercedValues[name] = coercedValue;
267
267
  }
268
268
 
269
- return coercedValues;
269
+ return { ...coercedValues };
270
270
  }
271
271
  /**
272
272
  * Prepares an object map of argument values given a directive definition
@@ -54,7 +54,7 @@ export function getVariableValues(schema, varDefNodes, inputs, options) {
54
54
  }
55
55
 
56
56
  function coerceVariableValues(schema, varDefNodes, inputs, onError) {
57
- const coercedValues = {};
57
+ const coercedValues = Object.create(null);
58
58
 
59
59
  for (const varDefNode of varDefNodes) {
60
60
  const varName = varDefNode.variable.name.value;
@@ -129,7 +129,7 @@ function coerceVariableValues(schema, varDefNodes, inputs, onError) {
129
129
  );
130
130
  }
131
131
 
132
- return coercedValues;
132
+ return { ...coercedValues };
133
133
  }
134
134
  /**
135
135
  * Prepares an object map of argument values given a list of argument
@@ -143,7 +143,7 @@ function coerceVariableValues(schema, varDefNodes, inputs, onError) {
143
143
  export function getArgumentValues(def, node, variableValues) {
144
144
  var _node$arguments;
145
145
 
146
- const coercedValues = {}; // FIXME: https://github.com/graphql/graphql-js/issues/2203
146
+ const coercedValues = Object.create(null); // FIXME: https://github.com/graphql/graphql-js/issues/2203
147
147
 
148
148
  /* c8 ignore next */
149
149
 
@@ -229,7 +229,7 @@ export function getArgumentValues(def, node, variableValues) {
229
229
  coercedValues[name] = coercedValue;
230
230
  }
231
231
 
232
- return coercedValues;
232
+ return { ...coercedValues };
233
233
  }
234
234
  /**
235
235
  * Prepares an object map of argument values given a directive definition
@@ -280,6 +280,7 @@ export type {
280
280
  UnionTypeExtensionNode,
281
281
  EnumTypeExtensionNode,
282
282
  InputObjectTypeExtensionNode,
283
+ DirectiveExtensionNode,
283
284
  SchemaCoordinateNode,
284
285
  TypeCoordinateNode,
285
286
  MemberCoordinateNode,
@@ -135,6 +135,7 @@ export declare type ASTNode =
135
135
  | UnionTypeExtensionNode
136
136
  | EnumTypeExtensionNode
137
137
  | InputObjectTypeExtensionNode
138
+ | DirectiveExtensionNode
138
139
  | TypeCoordinateNode
139
140
  | MemberCoordinateNode
140
141
  | ArgumentCoordinateNode
@@ -480,13 +481,15 @@ export interface DirectiveDefinitionNode {
480
481
  readonly description?: StringValueNode;
481
482
  readonly name: NameNode;
482
483
  readonly arguments?: ReadonlyArray<InputValueDefinitionNode>;
484
+ readonly directives?: ReadonlyArray<ConstDirectiveNode>;
483
485
  readonly repeatable: boolean;
484
486
  readonly locations: ReadonlyArray<NameNode>;
485
487
  }
486
488
  /** Type System Extensions */
487
489
  export declare type TypeSystemExtensionNode =
488
490
  | SchemaExtensionNode
489
- | TypeExtensionNode;
491
+ | TypeExtensionNode
492
+ | DirectiveExtensionNode;
490
493
  export interface SchemaExtensionNode {
491
494
  readonly kind: Kind.SCHEMA_EXTENSION;
492
495
  readonly loc?: Location;
@@ -544,6 +547,12 @@ export interface InputObjectTypeExtensionNode {
544
547
  readonly directives?: ReadonlyArray<ConstDirectiveNode>;
545
548
  readonly fields?: ReadonlyArray<InputValueDefinitionNode>;
546
549
  }
550
+ export interface DirectiveExtensionNode {
551
+ readonly kind: Kind.DIRECTIVE_EXTENSION;
552
+ readonly loc?: Location;
553
+ readonly name: NameNode;
554
+ readonly directives?: ReadonlyArray<ConstDirectiveNode>;
555
+ }
547
556
  /** Schema Coordinates */
548
557
  export declare type SchemaCoordinateNode =
549
558
  | TypeCoordinateNode
@@ -200,8 +200,15 @@ const QueryDocumentKeys = {
200
200
  EnumTypeDefinition: ['description', 'name', 'directives', 'values'],
201
201
  EnumValueDefinition: ['description', 'name', 'directives'],
202
202
  InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],
203
- DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],
203
+ DirectiveDefinition: [
204
+ 'description',
205
+ 'name',
206
+ 'arguments',
207
+ 'directives',
208
+ 'locations',
209
+ ],
204
210
  SchemaExtension: ['directives', 'operationTypes'],
211
+ DirectiveExtension: ['name', 'directives'],
205
212
  ScalarTypeExtension: ['name', 'directives'],
206
213
  ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],
207
214
  InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],
@@ -184,8 +184,15 @@ export const QueryDocumentKeys = {
184
184
  EnumTypeDefinition: ['description', 'name', 'directives', 'values'],
185
185
  EnumValueDefinition: ['description', 'name', 'directives'],
186
186
  InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],
187
- DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],
187
+ DirectiveDefinition: [
188
+ 'description',
189
+ 'name',
190
+ 'arguments',
191
+ 'directives',
192
+ 'locations',
193
+ ],
188
194
  SchemaExtension: ['directives', 'operationTypes'],
195
+ DirectiveExtension: ['name', 'directives'],
189
196
  ScalarTypeExtension: ['name', 'directives'],
190
197
  ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],
191
198
  InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],
@@ -23,6 +23,7 @@ declare enum DirectiveLocation {
23
23
  ENUM_VALUE = 'ENUM_VALUE',
24
24
  INPUT_OBJECT = 'INPUT_OBJECT',
25
25
  INPUT_FIELD_DEFINITION = 'INPUT_FIELD_DEFINITION',
26
+ DIRECTIVE_DEFINITION = 'DIRECTIVE_DEFINITION',
26
27
  }
27
28
  export { DirectiveLocation };
28
29
  /**
@@ -31,6 +31,7 @@ exports.DirectiveLocation = DirectiveLocation;
31
31
  DirectiveLocation['ENUM_VALUE'] = 'ENUM_VALUE';
32
32
  DirectiveLocation['INPUT_OBJECT'] = 'INPUT_OBJECT';
33
33
  DirectiveLocation['INPUT_FIELD_DEFINITION'] = 'INPUT_FIELD_DEFINITION';
34
+ DirectiveLocation['DIRECTIVE_DEFINITION'] = 'DIRECTIVE_DEFINITION';
34
35
  })(DirectiveLocation || (exports.DirectiveLocation = DirectiveLocation = {}));
35
36
  /**
36
37
  * The enum type representing the directive location values.
@@ -23,6 +23,7 @@ var DirectiveLocation;
23
23
  DirectiveLocation['ENUM_VALUE'] = 'ENUM_VALUE';
24
24
  DirectiveLocation['INPUT_OBJECT'] = 'INPUT_OBJECT';
25
25
  DirectiveLocation['INPUT_FIELD_DEFINITION'] = 'INPUT_FIELD_DEFINITION';
26
+ DirectiveLocation['DIRECTIVE_DEFINITION'] = 'DIRECTIVE_DEFINITION';
26
27
  })(DirectiveLocation || (DirectiveLocation = {}));
27
28
 
28
29
  export { DirectiveLocation };
@@ -86,6 +86,7 @@ export type {
86
86
  UnionTypeExtensionNode,
87
87
  EnumTypeExtensionNode,
88
88
  InputObjectTypeExtensionNode,
89
+ DirectiveExtensionNode,
89
90
  SchemaCoordinateNode,
90
91
  TypeCoordinateNode,
91
92
  MemberCoordinateNode,
@@ -49,6 +49,7 @@ declare enum Kind {
49
49
  DIRECTIVE_DEFINITION = 'DirectiveDefinition',
50
50
  /** Type System Extensions */
51
51
  SCHEMA_EXTENSION = 'SchemaExtension',
52
+ DIRECTIVE_EXTENSION = 'DirectiveExtension',
52
53
  /** Type Extensions */
53
54
  SCALAR_TYPE_EXTENSION = 'ScalarTypeExtension',
54
55
  OBJECT_TYPE_EXTENSION = 'ObjectTypeExtension',
@@ -49,6 +49,7 @@ exports.Kind = Kind;
49
49
  Kind['INPUT_OBJECT_TYPE_DEFINITION'] = 'InputObjectTypeDefinition';
50
50
  Kind['DIRECTIVE_DEFINITION'] = 'DirectiveDefinition';
51
51
  Kind['SCHEMA_EXTENSION'] = 'SchemaExtension';
52
+ Kind['DIRECTIVE_EXTENSION'] = 'DirectiveExtension';
52
53
  Kind['SCALAR_TYPE_EXTENSION'] = 'ScalarTypeExtension';
53
54
  Kind['OBJECT_TYPE_EXTENSION'] = 'ObjectTypeExtension';
54
55
  Kind['INTERFACE_TYPE_EXTENSION'] = 'InterfaceTypeExtension';
@@ -41,6 +41,7 @@ var Kind;
41
41
  Kind['INPUT_OBJECT_TYPE_DEFINITION'] = 'InputObjectTypeDefinition';
42
42
  Kind['DIRECTIVE_DEFINITION'] = 'DirectiveDefinition';
43
43
  Kind['SCHEMA_EXTENSION'] = 'SchemaExtension';
44
+ Kind['DIRECTIVE_EXTENSION'] = 'DirectiveExtension';
44
45
  Kind['SCALAR_TYPE_EXTENSION'] = 'ScalarTypeExtension';
45
46
  Kind['OBJECT_TYPE_EXTENSION'] = 'ObjectTypeExtension';
46
47
  Kind['INTERFACE_TYPE_EXTENSION'] = 'InterfaceTypeExtension';
@@ -10,6 +10,7 @@ import type {
10
10
  ConstValueNode,
11
11
  DefinitionNode,
12
12
  DirectiveDefinitionNode,
13
+ DirectiveExtensionNode,
13
14
  DirectiveNode,
14
15
  DocumentNode,
15
16
  EnumTypeDefinitionNode,
@@ -89,6 +90,17 @@ export interface ParseOptions {
89
90
  * ```
90
91
  */
91
92
  allowLegacyFragmentVariables?: boolean;
93
+ /**
94
+ * EXPERIMENTAL:
95
+ *
96
+ * If enabled, the parser will parse directives on directive definitions.
97
+ * This syntax is not part of the GraphQL specification and may change.
98
+ *
99
+ * ```graphql
100
+ * directive @foo @bar on FIELD
101
+ * ```
102
+ */
103
+ experimentalDirectivesOnDirectiveDefinitions?: boolean;
92
104
  /**
93
105
  * You may override the Lexer class used to lex the source; this is used by
94
106
  * schema coordinates to introduce a lexer with a restricted syntax.
@@ -447,6 +459,7 @@ export declare class Parser {
447
459
  * - UnionTypeExtension
448
460
  * - EnumTypeExtension
449
461
  * - InputObjectTypeDefinition
462
+ * - DirectiveDefinitionExtension
450
463
  */
451
464
  parseTypeSystemExtension(): TypeSystemExtensionNode;
452
465
  /**
@@ -494,6 +507,7 @@ export declare class Parser {
494
507
  * - extend input Name Directives[Const]
495
508
  */
496
509
  parseInputObjectTypeExtension(): InputObjectTypeExtensionNode;
510
+ parseDirectiveDefinitionExtension(): DirectiveExtensionNode;
497
511
  /**
498
512
  * ```
499
513
  * DirectiveDefinition :