@graphitation/supermassive 2.5.0 → 3.0.0-alpha.1

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 (136) hide show
  1. package/.eslintcache +1 -1
  2. package/CHANGELOG.md +18 -2
  3. package/lib/benchmarks/index.js +2 -2
  4. package/lib/benchmarks/index.js.map +2 -2
  5. package/lib/benchmarks/index.mjs +2 -2
  6. package/lib/benchmarks/index.mjs.map +2 -2
  7. package/lib/benchmarks/swapi-schema/index.d.ts +4 -2
  8. package/lib/benchmarks/swapi-schema/index.d.ts.map +1 -1
  9. package/lib/benchmarks/swapi-schema/index.js +8 -2
  10. package/lib/benchmarks/swapi-schema/index.js.map +2 -2
  11. package/lib/benchmarks/swapi-schema/index.mjs +8 -2
  12. package/lib/benchmarks/swapi-schema/index.mjs.map +2 -2
  13. package/lib/benchmarks/swapi-schema/makeExecutableSchema.d.ts +7 -0
  14. package/lib/benchmarks/swapi-schema/makeExecutableSchema.d.ts.map +1 -0
  15. package/lib/benchmarks/swapi-schema/makeExecutableSchema.js +916 -0
  16. package/lib/benchmarks/swapi-schema/makeExecutableSchema.js.map +7 -0
  17. package/lib/benchmarks/swapi-schema/makeExecutableSchema.mjs +903 -0
  18. package/lib/benchmarks/swapi-schema/makeExecutableSchema.mjs.map +7 -0
  19. package/lib/benchmarks/swapi-schema/resolvers.d.ts.map +1 -1
  20. package/lib/benchmarks/swapi-schema/resolvers.js +53 -17
  21. package/lib/benchmarks/swapi-schema/resolvers.js.map +2 -2
  22. package/lib/benchmarks/swapi-schema/resolvers.mjs +54 -18
  23. package/lib/benchmarks/swapi-schema/resolvers.mjs.map +2 -2
  24. package/lib/collectFields.d.ts +28 -6
  25. package/lib/collectFields.d.ts.map +1 -1
  26. package/lib/collectFields.js +155 -28
  27. package/lib/collectFields.js.map +3 -3
  28. package/lib/collectFields.mjs +150 -29
  29. package/lib/collectFields.mjs.map +2 -2
  30. package/lib/definition.js +1 -1
  31. package/lib/definition.js.map +2 -2
  32. package/lib/definition.mjs +1 -1
  33. package/lib/definition.mjs.map +2 -2
  34. package/lib/directives.d.ts +2 -73
  35. package/lib/directives.d.ts.map +1 -1
  36. package/lib/directives.js +10 -123
  37. package/lib/directives.js.map +2 -2
  38. package/lib/directives.mjs +13 -122
  39. package/lib/directives.mjs.map +2 -2
  40. package/lib/executeWithoutSchema.d.ts +50 -13
  41. package/lib/executeWithoutSchema.d.ts.map +1 -1
  42. package/lib/executeWithoutSchema.js +1038 -184
  43. package/lib/executeWithoutSchema.js.map +3 -3
  44. package/lib/executeWithoutSchema.mjs +1049 -186
  45. package/lib/executeWithoutSchema.mjs.map +3 -3
  46. package/lib/extractImplicitTypesRuntime.js +2 -2
  47. package/lib/extractImplicitTypesRuntime.js.map +2 -2
  48. package/lib/extractImplicitTypesRuntime.mjs +2 -2
  49. package/lib/extractImplicitTypesRuntime.mjs.map +2 -2
  50. package/lib/hooks/types.d.ts +1 -1
  51. package/lib/hooks/types.d.ts.map +1 -1
  52. package/lib/index.d.ts +4 -3
  53. package/lib/index.d.ts.map +1 -1
  54. package/lib/index.js +4 -1
  55. package/lib/index.js.map +2 -2
  56. package/lib/index.mjs +4 -1
  57. package/lib/index.mjs.map +2 -2
  58. package/lib/jsutils/AccumulatorMap.d.ts +8 -0
  59. package/lib/jsutils/AccumulatorMap.d.ts.map +1 -0
  60. package/lib/jsutils/AccumulatorMap.js +36 -0
  61. package/lib/jsutils/AccumulatorMap.js.map +7 -0
  62. package/lib/jsutils/AccumulatorMap.mjs +17 -0
  63. package/lib/jsutils/AccumulatorMap.mjs.map +7 -0
  64. package/lib/jsutils/Maybe.d.ts +1 -1
  65. package/lib/jsutils/Maybe.d.ts.map +1 -1
  66. package/lib/jsutils/ObjMap.d.ts +2 -2
  67. package/lib/jsutils/ObjMap.d.ts.map +1 -1
  68. package/lib/jsutils/PromiseOrValue.d.ts +1 -1
  69. package/lib/jsutils/PromiseOrValue.d.ts.map +1 -1
  70. package/lib/jsutils/didYouMean.d.ts +1 -2
  71. package/lib/jsutils/didYouMean.d.ts.map +1 -1
  72. package/lib/jsutils/didYouMean.js.map +2 -2
  73. package/lib/jsutils/didYouMean.mjs.map +2 -2
  74. package/lib/jsutils/instanceOf.js.map +2 -2
  75. package/lib/jsutils/instanceOf.mjs.map +2 -2
  76. package/lib/subscribeWithSchema.d.ts +3 -2
  77. package/lib/subscribeWithSchema.d.ts.map +1 -1
  78. package/lib/subscribeWithSchema.js.map +2 -2
  79. package/lib/subscribeWithSchema.mjs.map +2 -2
  80. package/lib/subscribeWithoutSchema.d.ts +3 -35
  81. package/lib/subscribeWithoutSchema.d.ts.map +1 -1
  82. package/lib/subscribeWithoutSchema.js +1 -163
  83. package/lib/subscribeWithoutSchema.js.map +2 -2
  84. package/lib/subscribeWithoutSchema.mjs +2 -175
  85. package/lib/subscribeWithoutSchema.mjs.map +2 -2
  86. package/lib/supermassive-ast/TypedAST.d.ts +370 -0
  87. package/lib/supermassive-ast/TypedAST.d.ts.map +1 -0
  88. package/lib/supermassive-ast/TypedAST.js +29 -0
  89. package/lib/supermassive-ast/TypedAST.js.map +7 -0
  90. package/lib/supermassive-ast/TypedAST.mjs +10 -0
  91. package/lib/supermassive-ast/TypedAST.mjs.map +7 -0
  92. package/lib/supermassive-ast/addTypesToRequestDocument.d.ts +56 -0
  93. package/lib/supermassive-ast/addTypesToRequestDocument.d.ts.map +1 -0
  94. package/lib/supermassive-ast/addTypesToRequestDocument.js +473 -0
  95. package/lib/supermassive-ast/addTypesToRequestDocument.js.map +7 -0
  96. package/lib/supermassive-ast/addTypesToRequestDocument.mjs +463 -0
  97. package/lib/supermassive-ast/addTypesToRequestDocument.mjs.map +7 -0
  98. package/lib/supermassive-ast/annotateDocumentGraphQLTransform.d.ts +3 -0
  99. package/lib/supermassive-ast/annotateDocumentGraphQLTransform.d.ts.map +1 -0
  100. package/lib/supermassive-ast/annotateDocumentGraphQLTransform.js +34 -0
  101. package/lib/supermassive-ast/annotateDocumentGraphQLTransform.js.map +7 -0
  102. package/lib/supermassive-ast/annotateDocumentGraphQLTransform.mjs +17 -0
  103. package/lib/supermassive-ast/annotateDocumentGraphQLTransform.mjs.map +7 -0
  104. package/lib/supermassive-ast/directives.d.ts +36 -0
  105. package/lib/supermassive-ast/directives.d.ts.map +1 -0
  106. package/lib/supermassive-ast/directives.js +165 -0
  107. package/lib/supermassive-ast/directives.js.map +7 -0
  108. package/lib/supermassive-ast/directives.mjs +153 -0
  109. package/lib/supermassive-ast/directives.mjs.map +7 -0
  110. package/lib/supermassive-ast/index.d.ts +6 -0
  111. package/lib/supermassive-ast/index.d.ts.map +1 -0
  112. package/lib/supermassive-ast/index.js +37 -0
  113. package/lib/supermassive-ast/index.js.map +7 -0
  114. package/lib/supermassive-ast/index.mjs +27 -0
  115. package/lib/supermassive-ast/index.mjs.map +7 -0
  116. package/lib/types.d.ts +80 -24
  117. package/lib/types.d.ts.map +1 -1
  118. package/lib/types.js +14 -0
  119. package/lib/types.js.map +2 -2
  120. package/lib/types.mjs +11 -0
  121. package/lib/types.mjs.map +3 -3
  122. package/lib/utilities/mergeResolvers.d.ts +1 -1
  123. package/lib/utilities/mergeResolvers.d.ts.map +1 -1
  124. package/lib/utilities/mergeResolvers.js.map +2 -2
  125. package/lib/utilities/mergeResolvers.mjs.map +2 -2
  126. package/lib/utilities/typeNameFromAST.d.ts +1 -1
  127. package/lib/utilities/typeNameFromAST.d.ts.map +1 -1
  128. package/lib/utilities/typeNameFromAST.js.map +1 -1
  129. package/lib/utilities/typeNameFromAST.mjs.map +1 -1
  130. package/lib/values.d.ts +3 -4
  131. package/lib/values.d.ts.map +1 -1
  132. package/lib/values.js +10 -14
  133. package/lib/values.js.map +2 -2
  134. package/lib/values.mjs +10 -14
  135. package/lib/values.mjs.map +2 -2
  136. package/package.json +4 -9
@@ -0,0 +1,8 @@
1
+ /**
2
+ * ES6 Map with additional `add` method to accumulate items.
3
+ */
4
+ export declare class AccumulatorMap<K, T> extends Map<K, Array<T>> {
5
+ get [Symbol.toStringTag](): string;
6
+ add(key: K, item: T): void;
7
+ }
8
+ //# sourceMappingURL=AccumulatorMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccumulatorMap.d.ts","sourceRoot":"","sources":["../../src/jsutils/AccumulatorMap.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,cAAc,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAEvB;IAED,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;CAQ3B"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var AccumulatorMap_exports = {};
20
+ __export(AccumulatorMap_exports, {
21
+ AccumulatorMap: () => AccumulatorMap
22
+ });
23
+ module.exports = __toCommonJS(AccumulatorMap_exports);
24
+ class AccumulatorMap extends Map {
25
+ get [Symbol.toStringTag]() {
26
+ return "AccumulatorMap";
27
+ }
28
+ add(key, item) {
29
+ const group = this.get(key);
30
+ if (group === void 0) {
31
+ this.set(key, [item]);
32
+ } else {
33
+ group.push(item);
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/jsutils/AccumulatorMap.ts"],
4
+ "sourcesContent": ["/**\n * ES6 Map with additional `add` method to accumulate items.\n */\nexport class AccumulatorMap<K, T> extends Map<K, Array<T>> {\n get [Symbol.toStringTag]() {\n return \"AccumulatorMap\";\n }\n\n add(key: K, item: T): void {\n const group = this.get(key);\n if (group === undefined) {\n this.set(key, [item]);\n } else {\n group.push(item);\n }\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,uBAA6B,IAAiB;AAAA,EACzD,KAAK,OAAO,WAAW,IAAI;AACzB,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,KAAQ,MAAe;AACzB,UAAM,QAAQ,KAAK,IAAI,GAAG;AAC1B,QAAI,UAAU,QAAW;AACvB,WAAK,IAAI,KAAK,CAAC,IAAI,CAAC;AAAA,IACtB,OAAO;AACL,YAAM,KAAK,IAAI;AAAA,IACjB;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,17 @@
1
+ // src/jsutils/AccumulatorMap.ts
2
+ var AccumulatorMap = class extends Map {
3
+ get [Symbol.toStringTag]() {
4
+ return "AccumulatorMap";
5
+ }
6
+ add(key, item) {
7
+ const group = this.get(key);
8
+ if (group === void 0) {
9
+ this.set(key, [item]);
10
+ } else {
11
+ group.push(item);
12
+ }
13
+ }
14
+ };
15
+ export {
16
+ AccumulatorMap
17
+ };
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/jsutils/AccumulatorMap.ts"],
4
+ "sourcesContent": ["/**\n * ES6 Map with additional `add` method to accumulate items.\n */\nexport class AccumulatorMap<K, T> extends Map<K, Array<T>> {\n get [Symbol.toStringTag]() {\n return \"AccumulatorMap\";\n }\n\n add(key: K, item: T): void {\n const group = this.get(key);\n if (group === undefined) {\n this.set(key, [item]);\n } else {\n group.push(item);\n }\n }\n}\n"],
5
+ "mappings": ";AAGO,IAAM,iBAAN,cAAmC,IAAiB;AAAA,EACzD,KAAK,OAAO,WAAW,IAAI;AACzB,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,KAAQ,MAAe;AACzB,UAAM,QAAQ,KAAK,IAAI,GAAG;AAC1B,QAAI,UAAU,QAAW;AACvB,WAAK,IAAI,KAAK,CAAC,IAAI,CAAC;AAAA,IACtB,OAAO;AACL,YAAM,KAAK,IAAI;AAAA,IACjB;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -1,3 +1,3 @@
1
1
  /** Conveniently represents flow's "Maybe" type https://flow.org/en/docs/types/maybe/ */
2
- export declare type Maybe<T> = null | undefined | T;
2
+ export type Maybe<T> = null | undefined | T;
3
3
  //# sourceMappingURL=Maybe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Maybe.d.ts","sourceRoot":"","sources":["../../src/jsutils/Maybe.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,oBAAY,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"Maybe.d.ts","sourceRoot":"","sources":["../../src/jsutils/Maybe.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC"}
@@ -1,13 +1,13 @@
1
1
  export interface ObjMap<T> {
2
2
  [key: string]: T;
3
3
  }
4
- export declare type ObjMapLike<T> = ObjMap<T> | {
4
+ export type ObjMapLike<T> = ObjMap<T> | {
5
5
  [key: string]: T;
6
6
  };
7
7
  export interface ReadOnlyObjMap<T> {
8
8
  readonly [key: string]: T;
9
9
  }
10
- export declare type ReadOnlyObjMapLike<T> = ReadOnlyObjMap<T> | {
10
+ export type ReadOnlyObjMapLike<T> = ReadOnlyObjMap<T> | {
11
11
  readonly [key: string]: T;
12
12
  };
13
13
  //# sourceMappingURL=ObjMap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ObjMap.d.ts","sourceRoot":"","sources":["../../src/jsutils/ObjMap.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC;CAClB;AAED,oBAAY,UAAU,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,CAAC;AAE7D,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC;CAC3B;AAED,oBAAY,kBAAkB,CAAC,CAAC,IAC5B,cAAc,CAAC,CAAC,CAAC,GACjB;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"ObjMap.d.ts","sourceRoot":"","sources":["../../src/jsutils/ObjMap.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC;CAClB;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,CAAC;AAE7D,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC;CAC3B;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAC5B,cAAc,CAAC,CAAC,CAAC,GACjB;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare type PromiseOrValue<T> = Promise<T> | T;
1
+ export type PromiseOrValue<T> = Promise<T> | T;
2
2
  //# sourceMappingURL=PromiseOrValue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PromiseOrValue.d.ts","sourceRoot":"","sources":["../../src/jsutils/PromiseOrValue.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"PromiseOrValue.d.ts","sourceRoot":"","sources":["../../src/jsutils/PromiseOrValue.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC"}
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * Given [ A, B, C ] return ' Did you mean A, B, or C?'.
3
3
  */
4
- export declare function didYouMean(suggestions: ReadonlyArray<string>): string;
5
- export declare function didYouMean(subMessage: string, suggestions: ReadonlyArray<string>): string;
4
+ export declare function didYouMean(firstArg: string | ReadonlyArray<string>, secondArg?: ReadonlyArray<string>): string;
6
5
  //# sourceMappingURL=didYouMean.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"didYouMean.d.ts","sourceRoot":"","sources":["../../src/jsutils/didYouMean.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AACvE,wBAAgB,UAAU,CACxB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,GACjC,MAAM,CAAC"}
1
+ {"version":3,"file":"didYouMean.d.ts","sourceRoot":"","sources":["../../src/jsutils/didYouMean.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,EACxC,SAAS,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAChC,MAAM,CAuBR"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/jsutils/didYouMean.ts"],
4
- "sourcesContent": ["const MAX_SUGGESTIONS = 5;\n\n/**\n * Given [ A, B, C ] return ' Did you mean A, B, or C?'.\n */\nexport function didYouMean(suggestions: ReadonlyArray<string>): string;\nexport function didYouMean(\n subMessage: string,\n suggestions: ReadonlyArray<string>,\n): string;\nexport function didYouMean(\n firstArg: string | ReadonlyArray<string>,\n secondArg?: ReadonlyArray<string>,\n) {\n const [subMessage, suggestionsArg] = secondArg\n ? [firstArg as string, secondArg]\n : [undefined, firstArg as ReadonlyArray<string>];\n\n let message = \" Did you mean \";\n if (subMessage) {\n message += subMessage + \" \";\n }\n\n const suggestions = suggestionsArg.map((x) => `\"${x}\"`);\n switch (suggestions.length) {\n case 0:\n return \"\";\n case 1:\n return message + suggestions[0] + \"?\";\n case 2:\n return message + suggestions[0] + \" or \" + suggestions[1] + \"?\";\n }\n\n const selected = suggestions.slice(0, MAX_SUGGESTIONS);\n const lastItem = selected.pop();\n return message + selected.join(\", \") + \", or \" + lastItem + \"?\";\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAM,kBAAkB;AAUjB,SAAS,WACd,UACA,WACA;AACA,QAAM,CAAC,YAAY,cAAc,IAAI,YACjC,CAAC,UAAoB,SAAS,IAC9B,CAAC,QAAW,QAAiC;AAEjD,MAAI,UAAU;AACd,MAAI,YAAY;AACd,eAAW,aAAa;AAAA,EAC1B;AAEA,QAAM,cAAc,eAAe,IAAI,CAAC,MAAM,IAAI,IAAI;AACtD,UAAQ,YAAY,QAAQ;AAAA,IAC1B,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO,UAAU,YAAY,CAAC,IAAI;AAAA,IACpC,KAAK;AACH,aAAO,UAAU,YAAY,CAAC,IAAI,SAAS,YAAY,CAAC,IAAI;AAAA,EAChE;AAEA,QAAM,WAAW,YAAY,MAAM,GAAG,eAAe;AACrD,QAAM,WAAW,SAAS,IAAI;AAC9B,SAAO,UAAU,SAAS,KAAK,IAAI,IAAI,UAAU,WAAW;AAC9D;",
4
+ "sourcesContent": ["const MAX_SUGGESTIONS = 5;\n\n/**\n * Given [ A, B, C ] return ' Did you mean A, B, or C?'.\n */\nexport function didYouMean(\n firstArg: string | ReadonlyArray<string>,\n secondArg?: ReadonlyArray<string>,\n): string {\n const [subMessage, suggestionsArg] = secondArg\n ? [firstArg as string, secondArg]\n : [undefined, firstArg as ReadonlyArray<string>];\n\n let message = \" Did you mean \";\n if (subMessage) {\n message += subMessage + \" \";\n }\n\n const suggestions = suggestionsArg.map((x) => `\"${x}\"`);\n switch (suggestions.length) {\n case 0:\n return \"\";\n case 1:\n return message + suggestions[0] + \"?\";\n case 2:\n return message + suggestions[0] + \" or \" + suggestions[1] + \"?\";\n }\n\n const selected = suggestions.slice(0, MAX_SUGGESTIONS);\n const lastItem = selected.pop();\n return message + selected.join(\", \") + \", or \" + lastItem + \"?\";\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAM,kBAAkB;AAKjB,SAAS,WACd,UACA,WACQ;AACR,QAAM,CAAC,YAAY,cAAc,IAAI,YACjC,CAAC,UAAoB,SAAS,IAC9B,CAAC,QAAW,QAAiC;AAEjD,MAAI,UAAU;AACd,MAAI,YAAY;AACd,eAAW,aAAa;AAAA,EAC1B;AAEA,QAAM,cAAc,eAAe,IAAI,CAAC,MAAM,IAAI,IAAI;AACtD,UAAQ,YAAY,QAAQ;AAAA,IAC1B,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO,UAAU,YAAY,CAAC,IAAI;AAAA,IACpC,KAAK;AACH,aAAO,UAAU,YAAY,CAAC,IAAI,SAAS,YAAY,CAAC,IAAI;AAAA,EAChE;AAEA,QAAM,WAAW,YAAY,MAAM,GAAG,eAAe;AACrD,QAAM,WAAW,SAAS,IAAI;AAC9B,SAAO,UAAU,SAAS,KAAK,IAAI,IAAI,UAAU,WAAW;AAC9D;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/jsutils/didYouMean.ts"],
4
- "sourcesContent": ["const MAX_SUGGESTIONS = 5;\n\n/**\n * Given [ A, B, C ] return ' Did you mean A, B, or C?'.\n */\nexport function didYouMean(suggestions: ReadonlyArray<string>): string;\nexport function didYouMean(\n subMessage: string,\n suggestions: ReadonlyArray<string>,\n): string;\nexport function didYouMean(\n firstArg: string | ReadonlyArray<string>,\n secondArg?: ReadonlyArray<string>,\n) {\n const [subMessage, suggestionsArg] = secondArg\n ? [firstArg as string, secondArg]\n : [undefined, firstArg as ReadonlyArray<string>];\n\n let message = \" Did you mean \";\n if (subMessage) {\n message += subMessage + \" \";\n }\n\n const suggestions = suggestionsArg.map((x) => `\"${x}\"`);\n switch (suggestions.length) {\n case 0:\n return \"\";\n case 1:\n return message + suggestions[0] + \"?\";\n case 2:\n return message + suggestions[0] + \" or \" + suggestions[1] + \"?\";\n }\n\n const selected = suggestions.slice(0, MAX_SUGGESTIONS);\n const lastItem = selected.pop();\n return message + selected.join(\", \") + \", or \" + lastItem + \"?\";\n}\n"],
5
- "mappings": ";AAAA,IAAM,kBAAkB;AAUjB,SAAS,WACd,UACA,WACA;AACA,QAAM,CAAC,YAAY,cAAc,IAAI,YACjC,CAAC,UAAoB,SAAS,IAC9B,CAAC,QAAW,QAAiC;AAEjD,MAAI,UAAU;AACd,MAAI,YAAY;AACd,eAAW,aAAa;AAAA,EAC1B;AAEA,QAAM,cAAc,eAAe,IAAI,CAAC,MAAM,IAAI,IAAI;AACtD,UAAQ,YAAY,QAAQ;AAAA,IAC1B,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO,UAAU,YAAY,CAAC,IAAI;AAAA,IACpC,KAAK;AACH,aAAO,UAAU,YAAY,CAAC,IAAI,SAAS,YAAY,CAAC,IAAI;AAAA,EAChE;AAEA,QAAM,WAAW,YAAY,MAAM,GAAG,eAAe;AACrD,QAAM,WAAW,SAAS,IAAI;AAC9B,SAAO,UAAU,SAAS,KAAK,IAAI,IAAI,UAAU,WAAW;AAC9D;",
4
+ "sourcesContent": ["const MAX_SUGGESTIONS = 5;\n\n/**\n * Given [ A, B, C ] return ' Did you mean A, B, or C?'.\n */\nexport function didYouMean(\n firstArg: string | ReadonlyArray<string>,\n secondArg?: ReadonlyArray<string>,\n): string {\n const [subMessage, suggestionsArg] = secondArg\n ? [firstArg as string, secondArg]\n : [undefined, firstArg as ReadonlyArray<string>];\n\n let message = \" Did you mean \";\n if (subMessage) {\n message += subMessage + \" \";\n }\n\n const suggestions = suggestionsArg.map((x) => `\"${x}\"`);\n switch (suggestions.length) {\n case 0:\n return \"\";\n case 1:\n return message + suggestions[0] + \"?\";\n case 2:\n return message + suggestions[0] + \" or \" + suggestions[1] + \"?\";\n }\n\n const selected = suggestions.slice(0, MAX_SUGGESTIONS);\n const lastItem = selected.pop();\n return message + selected.join(\", \") + \", or \" + lastItem + \"?\";\n}\n"],
5
+ "mappings": ";AAAA,IAAM,kBAAkB;AAKjB,SAAS,WACd,UACA,WACQ;AACR,QAAM,CAAC,YAAY,cAAc,IAAI,YACjC,CAAC,UAAoB,SAAS,IAC9B,CAAC,QAAW,QAAiC;AAEjD,MAAI,UAAU;AACd,MAAI,YAAY;AACd,eAAW,aAAa;AAAA,EAC1B;AAEA,QAAM,cAAc,eAAe,IAAI,CAAC,MAAM,IAAI,IAAI;AACtD,UAAQ,YAAY,QAAQ;AAAA,IAC1B,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO,UAAU,YAAY,CAAC,IAAI;AAAA,IACpC,KAAK;AACH,aAAO,UAAU,YAAY,CAAC,IAAI,SAAS,YAAY,CAAC,IAAI;AAAA,EAChE;AAEA,QAAM,WAAW,YAAY,MAAM,GAAG,eAAe;AACrD,QAAM,WAAW,SAAS,IAAI;AAC9B,SAAO,UAAU,SAAS,KAAK,IAAI,IAAI,UAAU,WAAW;AAC9D;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/jsutils/instanceOf.ts"],
4
- "sourcesContent": ["import { inspect } from \"./inspect\";\n\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n * See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n * See: https://webpack.js.org/guides/production/\n */\nexport const instanceOf: (value: unknown, constructor: Constructor) => boolean =\n process.env.NODE_ENV === \"production\"\n ? // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n function instanceOf(value: unknown, constructor: Constructor): boolean {\n return value instanceof constructor;\n }\n : function instanceOf(value: unknown, constructor: Constructor): boolean {\n if (value instanceof constructor) {\n return true;\n }\n if (typeof value === \"object\" && value !== null) {\n // Prefer Symbol.toStringTag since it is immune to minification.\n const className = constructor.prototype[Symbol.toStringTag];\n const valueClassName =\n // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value\n ? (value as any)[Symbol.toStringTag] // TS bug see, https://github.com/microsoft/TypeScript/issues/38009\n : value.constructor?.name;\n if (className === valueClassName) {\n const stringifiedValue = inspect(value);\n throw new Error(\n `Cannot use ${className} \"${stringifiedValue}\" from another module or realm.\n\nEnsure that there is only one instance of \"graphql\" in the node_modules\ndirectory. If different versions of \"graphql\" are the dependencies of other\nrelied on modules, use \"resolutions\" to ensure only one version is installed.\n\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\n\nDuplicate \"graphql\" modules cannot be used at the same time since different\nversions may have different capabilities and behavior. The data from one\nversion used in the function from another could produce confusing and\nspurious results.`,\n );\n }\n }\n return false;\n };\n\ninterface Constructor extends Function {\n prototype: {\n [Symbol.toStringTag]: string;\n };\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAwB;AAQjB,MAAM,aACX;AAAA;AAAA,EAEI,SAASA,YAAW,OAAgB,aAAmC;AACrE,WAAO,iBAAiB;AAAA,EAC1B;AAAA,IACA,SAASA,YAAW,OAAgB,aAAmC;AAd7E;AAeQ,MAAI,iBAAiB,aAAa;AAChC,WAAO;AAAA,EACT;AACA,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAE/C,UAAM,YAAY,YAAY,UAAU,OAAO,WAAW;AAC1D,UAAM;AAAA;AAAA,MAEJ,OAAO,eAAe,QACjB,MAAc,OAAO,WAAW,KACjC,WAAM,gBAAN,mBAAmB;AAAA;AACzB,QAAI,cAAc,gBAAgB;AAChC,YAAM,uBAAmB,wBAAQ,KAAK;AACtC,YAAM,IAAI;AAAA,QACR,cAAc,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAY9B;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;",
4
+ "sourcesContent": ["import { inspect } from \"./inspect\";\n\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n * See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n * See: https://webpack.js.org/guides/production/\n */\nexport const instanceOf: (value: unknown, constructor: Constructor) => boolean =\n process.env.NODE_ENV === \"production\"\n ? // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n function instanceOf(value: unknown, constructor: Constructor): boolean {\n return value instanceof constructor;\n }\n : function instanceOf(value: unknown, constructor: Constructor): boolean {\n if (value instanceof constructor) {\n return true;\n }\n if (typeof value === \"object\" && value !== null) {\n // Prefer Symbol.toStringTag since it is immune to minification.\n const className = constructor.prototype[Symbol.toStringTag];\n const valueClassName =\n // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value\n ? value[Symbol.toStringTag]\n : value.constructor?.name;\n if (className === valueClassName) {\n const stringifiedValue = inspect(value);\n throw new Error(\n `Cannot use ${className} \"${stringifiedValue}\" from another module or realm.\n\nEnsure that there is only one instance of \"graphql\" in the node_modules\ndirectory. If different versions of \"graphql\" are the dependencies of other\nrelied on modules, use \"resolutions\" to ensure only one version is installed.\n\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\n\nDuplicate \"graphql\" modules cannot be used at the same time since different\nversions may have different capabilities and behavior. The data from one\nversion used in the function from another could produce confusing and\nspurious results.`,\n );\n }\n }\n return false;\n };\n\ninterface Constructor extends Function {\n prototype: {\n [Symbol.toStringTag]: string;\n };\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAwB;AAQjB,MAAM,aACX;AAAA;AAAA,EAEI,SAASA,YAAW,OAAgB,aAAmC;AACrE,WAAO,iBAAiB;AAAA,EAC1B;AAAA,IACA,SAASA,YAAW,OAAgB,aAAmC;AAd7E;AAeQ,MAAI,iBAAiB,aAAa;AAChC,WAAO;AAAA,EACT;AACA,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAE/C,UAAM,YAAY,YAAY,UAAU,OAAO,WAAW;AAC1D,UAAM;AAAA;AAAA,MAEJ,OAAO,eAAe,QAClB,MAAM,OAAO,WAAW,KACxB,WAAM,gBAAN,mBAAmB;AAAA;AACzB,QAAI,cAAc,gBAAgB;AAChC,YAAM,uBAAmB,wBAAQ,KAAK;AACtC,YAAM,IAAI;AAAA,QACR,cAAc,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAY9B;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;",
6
6
  "names": ["instanceOf"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/jsutils/instanceOf.ts"],
4
- "sourcesContent": ["import { inspect } from \"./inspect\";\n\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n * See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n * See: https://webpack.js.org/guides/production/\n */\nexport const instanceOf: (value: unknown, constructor: Constructor) => boolean =\n process.env.NODE_ENV === \"production\"\n ? // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n function instanceOf(value: unknown, constructor: Constructor): boolean {\n return value instanceof constructor;\n }\n : function instanceOf(value: unknown, constructor: Constructor): boolean {\n if (value instanceof constructor) {\n return true;\n }\n if (typeof value === \"object\" && value !== null) {\n // Prefer Symbol.toStringTag since it is immune to minification.\n const className = constructor.prototype[Symbol.toStringTag];\n const valueClassName =\n // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value\n ? (value as any)[Symbol.toStringTag] // TS bug see, https://github.com/microsoft/TypeScript/issues/38009\n : value.constructor?.name;\n if (className === valueClassName) {\n const stringifiedValue = inspect(value);\n throw new Error(\n `Cannot use ${className} \"${stringifiedValue}\" from another module or realm.\n\nEnsure that there is only one instance of \"graphql\" in the node_modules\ndirectory. If different versions of \"graphql\" are the dependencies of other\nrelied on modules, use \"resolutions\" to ensure only one version is installed.\n\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\n\nDuplicate \"graphql\" modules cannot be used at the same time since different\nversions may have different capabilities and behavior. The data from one\nversion used in the function from another could produce confusing and\nspurious results.`,\n );\n }\n }\n return false;\n };\n\ninterface Constructor extends Function {\n prototype: {\n [Symbol.toStringTag]: string;\n };\n}\n"],
5
- "mappings": ";AAAA,SAAS,eAAe;AAQjB,IAAM,aACX;AAAA;AAAA,EAEI,SAASA,YAAW,OAAgB,aAAmC;AACrE,WAAO,iBAAiB;AAAA,EAC1B;AAAA,IACA,SAASA,YAAW,OAAgB,aAAmC;AAd7E;AAeQ,MAAI,iBAAiB,aAAa;AAChC,WAAO;AAAA,EACT;AACA,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAE/C,UAAM,YAAY,YAAY,UAAU,OAAO,WAAW;AAC1D,UAAM;AAAA;AAAA,MAEJ,OAAO,eAAe,QACjB,MAAc,OAAO,WAAW,KACjC,WAAM,gBAAN,mBAAmB;AAAA;AACzB,QAAI,cAAc,gBAAgB;AAChC,YAAM,mBAAmB,QAAQ,KAAK;AACtC,YAAM,IAAI;AAAA,QACR,cAAc,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAY9B;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;",
4
+ "sourcesContent": ["import { inspect } from \"./inspect\";\n\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n * See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n * See: https://webpack.js.org/guides/production/\n */\nexport const instanceOf: (value: unknown, constructor: Constructor) => boolean =\n process.env.NODE_ENV === \"production\"\n ? // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n function instanceOf(value: unknown, constructor: Constructor): boolean {\n return value instanceof constructor;\n }\n : function instanceOf(value: unknown, constructor: Constructor): boolean {\n if (value instanceof constructor) {\n return true;\n }\n if (typeof value === \"object\" && value !== null) {\n // Prefer Symbol.toStringTag since it is immune to minification.\n const className = constructor.prototype[Symbol.toStringTag];\n const valueClassName =\n // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value\n ? value[Symbol.toStringTag]\n : value.constructor?.name;\n if (className === valueClassName) {\n const stringifiedValue = inspect(value);\n throw new Error(\n `Cannot use ${className} \"${stringifiedValue}\" from another module or realm.\n\nEnsure that there is only one instance of \"graphql\" in the node_modules\ndirectory. If different versions of \"graphql\" are the dependencies of other\nrelied on modules, use \"resolutions\" to ensure only one version is installed.\n\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\n\nDuplicate \"graphql\" modules cannot be used at the same time since different\nversions may have different capabilities and behavior. The data from one\nversion used in the function from another could produce confusing and\nspurious results.`,\n );\n }\n }\n return false;\n };\n\ninterface Constructor extends Function {\n prototype: {\n [Symbol.toStringTag]: string;\n };\n}\n"],
5
+ "mappings": ";AAAA,SAAS,eAAe;AAQjB,IAAM,aACX;AAAA;AAAA,EAEI,SAASA,YAAW,OAAgB,aAAmC;AACrE,WAAO,iBAAiB;AAAA,EAC1B;AAAA,IACA,SAASA,YAAW,OAAgB,aAAmC;AAd7E;AAeQ,MAAI,iBAAiB,aAAa;AAChC,WAAO;AAAA,EACT;AACA,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAE/C,UAAM,YAAY,YAAY,UAAU,OAAO,WAAW;AAC1D,UAAM;AAAA;AAAA,MAEJ,OAAO,eAAe,QAClB,MAAM,OAAO,WAAW,KACxB,WAAM,gBAAN,mBAAmB;AAAA;AACzB,QAAI,cAAc,gBAAgB;AAChC,YAAM,mBAAmB,QAAQ,KAAK;AACtC,YAAM,IAAI;AAAA,QACR,cAAc,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAY9B;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;",
6
6
  "names": ["instanceOf"]
7
7
  }
@@ -1,3 +1,4 @@
1
- import { ExecutionResult, ExecutionWithSchemaArgs } from "./types";
2
- export declare function subscribeWithSchema({ typeDefs, resolvers, document: rawDocument, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver, }: ExecutionWithSchemaArgs): Promise<AsyncGenerator<ExecutionResult, void, void> | ExecutionResult>;
1
+ import { PromiseOrValue } from "./jsutils/PromiseOrValue";
2
+ import { ExecutionWithSchemaArgs, ExecutionResult } from "./types";
3
+ export declare function subscribeWithSchema({ typeDefs, resolvers, document: rawDocument, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver, }: ExecutionWithSchemaArgs): PromiseOrValue<ExecutionResult>;
3
4
  //# sourceMappingURL=subscribeWithSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscribeWithSchema.d.ts","sourceRoot":"","sources":["../src/subscribeWithSchema.ts"],"names":[],"mappings":"AAOA,OAAO,EAAa,eAAe,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAE9E,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,SAAS,EACT,QAAQ,EAAE,WAAW,EACrB,SAAS,EACT,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,GACb,EAAE,uBAAuB,GAAG,OAAO,CAClC,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,eAAe,CAC9D,CA0BA"}
1
+ {"version":3,"file":"subscribeWithSchema.d.ts","sourceRoot":"","sources":["../src/subscribeWithSchema.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAa,uBAAuB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE9E,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,SAAS,EACT,QAAQ,EAAE,WAAW,EACrB,SAAS,EACT,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,GACb,EAAE,uBAAuB,GAAG,cAAc,CAAC,eAAe,CAAC,CA0B3D"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/subscribeWithSchema.ts"],
4
- "sourcesContent": ["import { isInputType, buildASTSchema } from \"graphql\";\nimport {\n addTypesToRequestDocument,\n subscribeWithoutSchema,\n extractImplicitTypes,\n specifiedScalars,\n} from \"./index\";\nimport { Resolvers, ExecutionResult, ExecutionWithSchemaArgs } from \"./types\";\n\nexport function subscribeWithSchema({\n typeDefs,\n resolvers,\n document: rawDocument,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n}: ExecutionWithSchemaArgs): Promise<\n AsyncGenerator<ExecutionResult, void, void> | ExecutionResult\n> {\n const schema = buildASTSchema(typeDefs);\n let extractedResolvers: Resolvers = {};\n const getTypeByName = (name: string) => {\n const type = specifiedScalars[name] || extractedResolvers[name];\n if (isInputType(type)) {\n return type;\n } else {\n throw new Error(\"Invalid type\");\n }\n };\n extractedResolvers = extractImplicitTypes(typeDefs, getTypeByName);\n\n const document = addTypesToRequestDocument(schema, rawDocument);\n\n return subscribeWithoutSchema({\n document,\n resolvers,\n schemaResolvers: extractedResolvers,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n });\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4C;AAC5C,mBAKO;AAGA,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEE;AACA,QAAM,aAAS,+BAAe,QAAQ;AACtC,MAAI,qBAAgC,CAAC;AACrC,QAAM,gBAAgB,CAAC,SAAiB;AACtC,UAAM,OAAO,8BAAiB,IAAI,KAAK,mBAAmB,IAAI;AAC9D,YAAI,4BAAY,IAAI,GAAG;AACrB,aAAO;AAAA,IACT,OAAO;AACL,YAAM,IAAI,MAAM,cAAc;AAAA,IAChC;AAAA,EACF;AACA,2BAAqB,mCAAqB,UAAU,aAAa;AAEjE,QAAM,eAAW,wCAA0B,QAAQ,WAAW;AAE9D,aAAO,qCAAuB;AAAA,IAC5B;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;",
4
+ "sourcesContent": ["import { isInputType, buildASTSchema } from \"graphql\";\nimport {\n addTypesToRequestDocument,\n subscribeWithoutSchema,\n extractImplicitTypes,\n specifiedScalars,\n} from \"./index\";\nimport { PromiseOrValue } from \"./jsutils/PromiseOrValue\";\nimport { Resolvers, ExecutionWithSchemaArgs, ExecutionResult } from \"./types\";\n\nexport function subscribeWithSchema({\n typeDefs,\n resolvers,\n document: rawDocument,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n}: ExecutionWithSchemaArgs): PromiseOrValue<ExecutionResult> {\n const schema = buildASTSchema(typeDefs);\n let extractedResolvers: Resolvers = {};\n const getTypeByName = (name: string) => {\n const type = specifiedScalars[name] || extractedResolvers[name];\n if (isInputType(type)) {\n return type;\n } else {\n throw new Error(\"Invalid type\");\n }\n };\n extractedResolvers = extractImplicitTypes(typeDefs, getTypeByName);\n\n const document = addTypesToRequestDocument(schema, rawDocument);\n\n return subscribeWithoutSchema({\n document,\n resolvers,\n schemaResolvers: extractedResolvers,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n });\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4C;AAC5C,mBAKO;AAIA,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA6D;AAC3D,QAAM,aAAS,+BAAe,QAAQ;AACtC,MAAI,qBAAgC,CAAC;AACrC,QAAM,gBAAgB,CAAC,SAAiB;AACtC,UAAM,OAAO,8BAAiB,IAAI,KAAK,mBAAmB,IAAI;AAC9D,YAAI,4BAAY,IAAI,GAAG;AACrB,aAAO;AAAA,IACT,OAAO;AACL,YAAM,IAAI,MAAM,cAAc;AAAA,IAChC;AAAA,EACF;AACA,2BAAqB,mCAAqB,UAAU,aAAa;AAEjE,QAAM,eAAW,wCAA0B,QAAQ,WAAW;AAE9D,aAAO,qCAAuB;AAAA,IAC5B;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/subscribeWithSchema.ts"],
4
- "sourcesContent": ["import { isInputType, buildASTSchema } from \"graphql\";\nimport {\n addTypesToRequestDocument,\n subscribeWithoutSchema,\n extractImplicitTypes,\n specifiedScalars,\n} from \"./index\";\nimport { Resolvers, ExecutionResult, ExecutionWithSchemaArgs } from \"./types\";\n\nexport function subscribeWithSchema({\n typeDefs,\n resolvers,\n document: rawDocument,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n}: ExecutionWithSchemaArgs): Promise<\n AsyncGenerator<ExecutionResult, void, void> | ExecutionResult\n> {\n const schema = buildASTSchema(typeDefs);\n let extractedResolvers: Resolvers = {};\n const getTypeByName = (name: string) => {\n const type = specifiedScalars[name] || extractedResolvers[name];\n if (isInputType(type)) {\n return type;\n } else {\n throw new Error(\"Invalid type\");\n }\n };\n extractedResolvers = extractImplicitTypes(typeDefs, getTypeByName);\n\n const document = addTypesToRequestDocument(schema, rawDocument);\n\n return subscribeWithoutSchema({\n document,\n resolvers,\n schemaResolvers: extractedResolvers,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n });\n}\n"],
5
- "mappings": ";AAAA,SAAS,aAAa,sBAAsB;AAC5C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGA,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEE;AACA,QAAM,SAAS,eAAe,QAAQ;AACtC,MAAI,qBAAgC,CAAC;AACrC,QAAM,gBAAgB,CAAC,SAAiB;AACtC,UAAM,OAAO,iBAAiB,IAAI,KAAK,mBAAmB,IAAI;AAC9D,QAAI,YAAY,IAAI,GAAG;AACrB,aAAO;AAAA,IACT,OAAO;AACL,YAAM,IAAI,MAAM,cAAc;AAAA,IAChC;AAAA,EACF;AACA,uBAAqB,qBAAqB,UAAU,aAAa;AAEjE,QAAM,WAAW,0BAA0B,QAAQ,WAAW;AAE9D,SAAO,uBAAuB;AAAA,IAC5B;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;",
4
+ "sourcesContent": ["import { isInputType, buildASTSchema } from \"graphql\";\nimport {\n addTypesToRequestDocument,\n subscribeWithoutSchema,\n extractImplicitTypes,\n specifiedScalars,\n} from \"./index\";\nimport { PromiseOrValue } from \"./jsutils/PromiseOrValue\";\nimport { Resolvers, ExecutionWithSchemaArgs, ExecutionResult } from \"./types\";\n\nexport function subscribeWithSchema({\n typeDefs,\n resolvers,\n document: rawDocument,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n}: ExecutionWithSchemaArgs): PromiseOrValue<ExecutionResult> {\n const schema = buildASTSchema(typeDefs);\n let extractedResolvers: Resolvers = {};\n const getTypeByName = (name: string) => {\n const type = specifiedScalars[name] || extractedResolvers[name];\n if (isInputType(type)) {\n return type;\n } else {\n throw new Error(\"Invalid type\");\n }\n };\n extractedResolvers = extractImplicitTypes(typeDefs, getTypeByName);\n\n const document = addTypesToRequestDocument(schema, rawDocument);\n\n return subscribeWithoutSchema({\n document,\n resolvers,\n schemaResolvers: extractedResolvers,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n });\n}\n"],
5
+ "mappings": ";AAAA,SAAS,aAAa,sBAAsB;AAC5C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAIA,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA6D;AAC3D,QAAM,SAAS,eAAe,QAAQ;AACtC,MAAI,qBAAgC,CAAC;AACrC,QAAM,gBAAgB,CAAC,SAAiB;AACtC,UAAM,OAAO,iBAAiB,IAAI,KAAK,mBAAmB,IAAI;AAC9D,QAAI,YAAY,IAAI,GAAG;AACrB,aAAO;AAAA,IACT,OAAO;AACL,YAAM,IAAI,MAAM,cAAc;AAAA,IAChC;AAAA,EACF;AACA,uBAAqB,qBAAqB,UAAU,aAAa;AAEjE,QAAM,WAAW,0BAA0B,QAAQ,WAAW;AAE9D,SAAO,uBAAuB;AAAA,IAC5B;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,5 @@
1
- import type { Maybe } from "./jsutils/Maybe";
2
- import { DocumentNode } from "@graphitation/supermassive-ast";
3
- import { FunctionFieldResolver, ExecutionWithoutSchemaArgs, Resolvers, ExecutionResult } from "./types";
1
+ import { ExecutionWithoutSchemaArgs, ExecutionResult } from "./types";
2
+ import type { PromiseOrValue } from "./jsutils/PromiseOrValue";
4
3
  /**
5
4
  * Implements the "Subscribe" algorithm described in the GraphQL specification.
6
5
  *
@@ -22,36 +21,5 @@ import { FunctionFieldResolver, ExecutionWithoutSchemaArgs, Resolvers, Execution
22
21
  *
23
22
  * Accepts either an object with named arguments, or individual arguments.
24
23
  */
25
- export declare function subscribeWithoutSchema(args: ExecutionWithoutSchemaArgs): Promise<AsyncGenerator<ExecutionResult, void, void> | ExecutionResult>;
26
- /**
27
- * Implements the "CreateSourceEventStream" algorithm described in the
28
- * GraphQL specification, resolving the subscription source event stream.
29
- *
30
- * Returns a Promise which resolves to either an AsyncIterable (if successful)
31
- * or an ExecutionResult (error). The promise will be rejected if the schema or
32
- * other arguments to this function are invalid, or if the resolved event stream
33
- * is not an async iterable.
34
- *
35
- * If the client-provided arguments to this function do not result in a
36
- * compliant subscription, a GraphQL Response (ExecutionResult) with
37
- * descriptive errors and no data will be returned.
38
- *
39
- * If the the source stream could not be created due to faulty subscription
40
- * resolver logic or underlying systems, the promise will resolve to a single
41
- * ExecutionResult containing `errors` and no `data`.
42
- *
43
- * If the operation succeeded, the promise resolves to the AsyncIterable for the
44
- * event stream returned by the resolver.
45
- *
46
- * A Source Event Stream represents a sequence of events, each of which triggers
47
- * a GraphQL execution for that event.
48
- *
49
- * This may be useful when hosting the stateful subscription service in a
50
- * different process or machine than the stateless GraphQL execution engine,
51
- * or otherwise separating these two steps. For more on this, see the
52
- * "Supporting Subscriptions at Scale" information in the GraphQL specification.
53
- */
54
- export declare function createSourceEventStream(resolvers: Resolvers, document: DocumentNode, rootValue?: unknown, contextValue?: unknown, variableValues?: Maybe<{
55
- readonly [variable: string]: unknown;
56
- }>, operationName?: Maybe<string>, fieldResolver?: Maybe<FunctionFieldResolver<unknown, unknown>>): Promise<AsyncIterable<unknown> | ExecutionResult>;
24
+ export declare function subscribeWithoutSchema(args: ExecutionWithoutSchemaArgs): PromiseOrValue<ExecutionResult>;
57
25
  //# sourceMappingURL=subscribeWithoutSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscribeWithoutSchema.d.ts","sourceRoot":"","sources":["../src/subscribeWithoutSchema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAQ7C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAiB9D,OAAO,EAEL,qBAAqB,EACrB,0BAA0B,EAC1B,SAAS,EACT,eAAe,EAEhB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,eAAe,CAAC,CAmDxE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,YAAY,EACtB,SAAS,CAAC,EAAE,OAAO,EACnB,YAAY,CAAC,EAAE,OAAO,EACtB,cAAc,CAAC,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC,EAChE,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EAC7B,aAAa,CAAC,EAAE,KAAK,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GAC7D,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,CAyCnD"}
1
+ {"version":3,"file":"subscribeWithoutSchema.d.ts","sourceRoot":"","sources":["../src/subscribeWithoutSchema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,0BAA0B,GAC/B,cAAc,CAAC,eAAe,CAAC,CAEjC"}
@@ -16,174 +16,12 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var __async = (__this, __arguments, generator) => {
20
- return new Promise((resolve, reject) => {
21
- var fulfilled = (value) => {
22
- try {
23
- step(generator.next(value));
24
- } catch (e) {
25
- reject(e);
26
- }
27
- };
28
- var rejected = (value) => {
29
- try {
30
- step(generator.throw(value));
31
- } catch (e) {
32
- reject(e);
33
- }
34
- };
35
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
36
- step((generator = generator.apply(__this, __arguments)).next());
37
- });
38
- };
39
19
  var subscribeWithoutSchema_exports = {};
40
20
  __export(subscribeWithoutSchema_exports, {
41
- createSourceEventStream: () => createSourceEventStream,
42
21
  subscribeWithoutSchema: () => subscribeWithoutSchema
43
22
  });
44
23
  module.exports = __toCommonJS(subscribeWithoutSchema_exports);
45
- var import_inspect = require("./jsutils/inspect");
46
- var import_isAsyncIterable = require("./jsutils/isAsyncIterable");
47
- var import_Path = require("./jsutils/Path");
48
- var import_graphql = require("graphql");
49
24
  var import_executeWithoutSchema = require("./executeWithoutSchema");
50
- var import_collectFields = require("./collectFields");
51
- var import_values = require("./values");
52
- var import_typeNameFromAST = require("./utilities/typeNameFromAST");
53
- var import_mergeResolvers = require("./utilities/mergeResolvers");
54
- var import_mapAsyncIterator = require("./utilities/mapAsyncIterator");
55
25
  function subscribeWithoutSchema(args) {
56
- return __async(this, null, function* () {
57
- const {
58
- resolvers,
59
- schemaResolvers,
60
- document,
61
- rootValue,
62
- contextValue,
63
- variableValues,
64
- operationName,
65
- fieldResolver,
66
- subscribeFieldResolver
67
- } = args;
68
- const combinedResolvers = schemaResolvers ? (0, import_mergeResolvers.mergeResolvers)(resolvers, schemaResolvers) : resolvers;
69
- const resultOrStream = yield createSourceEventStream(
70
- combinedResolvers,
71
- document,
72
- rootValue,
73
- contextValue,
74
- variableValues,
75
- operationName,
76
- subscribeFieldResolver
77
- );
78
- if (!(0, import_isAsyncIterable.isAsyncIterable)(resultOrStream)) {
79
- return resultOrStream;
80
- }
81
- const mapSourceToResponse = (payload) => (0, import_executeWithoutSchema.executeWithoutSchema)({
82
- resolvers,
83
- schemaResolvers,
84
- document,
85
- rootValue: payload,
86
- contextValue,
87
- variableValues,
88
- operationName,
89
- fieldResolver
90
- });
91
- return (0, import_mapAsyncIterator.mapAsyncIterator)(resultOrStream, mapSourceToResponse);
92
- });
93
- }
94
- function createSourceEventStream(resolvers, document, rootValue, contextValue, variableValues, operationName, fieldResolver) {
95
- return __async(this, null, function* () {
96
- (0, import_executeWithoutSchema.assertValidExecutionArguments)(document, variableValues);
97
- try {
98
- const exeContext = (0, import_executeWithoutSchema.buildExecutionContext)(
99
- resolvers,
100
- document,
101
- rootValue,
102
- contextValue,
103
- variableValues,
104
- operationName,
105
- fieldResolver
106
- );
107
- if (!("resolvers" in exeContext)) {
108
- return { errors: exeContext };
109
- }
110
- const eventStream = yield executeSubscription(exeContext);
111
- if (!(0, import_isAsyncIterable.isAsyncIterable)(eventStream)) {
112
- throw new Error(
113
- `Subscription field must return Async Iterable. Received: ${(0, import_inspect.inspect)(eventStream)}.`
114
- );
115
- }
116
- return eventStream;
117
- } catch (error) {
118
- if (error instanceof import_graphql.GraphQLError) {
119
- return { errors: [error] };
120
- }
121
- throw error;
122
- }
123
- });
124
- }
125
- function executeSubscription(exeContext) {
126
- return __async(this, null, function* () {
127
- const { resolvers, fragments, operation, variableValues, rootValue } = exeContext;
128
- const typeName = (0, import_executeWithoutSchema.getOperationRootTypeName)(operation);
129
- const fields = (0, import_collectFields.collectFields)(
130
- resolvers,
131
- fragments,
132
- variableValues,
133
- typeName,
134
- operation.selectionSet,
135
- /* @__PURE__ */ new Map(),
136
- /* @__PURE__ */ new Set()
137
- );
138
- const [responseName, fieldNodes] = [...fields.entries()][0];
139
- const fieldName = fieldNodes[0].name.value;
140
- let resolveFn;
141
- let returnTypeName;
142
- let returnTypeNode;
143
- if (fieldName === "__typename" && !resolveFn) {
144
- resolveFn = () => typeName;
145
- returnTypeName = "String";
146
- returnTypeNode = {
147
- kind: import_graphql.Kind.NAMED_TYPE,
148
- name: {
149
- kind: import_graphql.Kind.NAME,
150
- value: "String"
151
- }
152
- };
153
- } else {
154
- returnTypeNode = fieldNodes[0].__type;
155
- returnTypeName = (0, import_typeNameFromAST.typeNameFromAST)(returnTypeNode);
156
- const typeResolvers = exeContext.resolvers[typeName];
157
- const fieldResolver = typeResolvers == null ? void 0 : typeResolvers[fieldName];
158
- resolveFn = fieldResolver == null ? void 0 : fieldResolver.subscribe;
159
- }
160
- if (!resolveFn) {
161
- resolveFn = exeContext.fieldResolver;
162
- }
163
- const path = (0, import_Path.addPath)(void 0, responseName, typeName);
164
- const info = (0, import_executeWithoutSchema.buildResolveInfo)(
165
- exeContext,
166
- fieldName,
167
- fieldNodes,
168
- typeName,
169
- returnTypeName,
170
- returnTypeNode,
171
- path
172
- );
173
- try {
174
- const args = (0, import_values.getArgumentValues)(resolvers, fieldNodes[0], variableValues);
175
- const contextValue = exeContext.contextValue;
176
- const eventStream = yield resolveFn(rootValue, args, contextValue, info);
177
- if (eventStream instanceof Error) {
178
- throw eventStream;
179
- }
180
- return eventStream;
181
- } catch (error) {
182
- throw (0, import_graphql.locatedError)(
183
- error,
184
- fieldNodes,
185
- (0, import_Path.pathToArray)(path)
186
- );
187
- }
188
- });
26
+ return (0, import_executeWithoutSchema.executeWithoutSchema)(args);
189
27
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/subscribeWithoutSchema.ts"],
4
- "sourcesContent": ["import { inspect } from \"./jsutils/inspect\";\nimport { isAsyncIterable } from \"./jsutils/isAsyncIterable\";\nimport { addPath, pathToArray } from \"./jsutils/Path\";\nimport type { Maybe } from \"./jsutils/Maybe\";\nimport {\n GraphQLError,\n locatedError,\n Kind,\n ASTNode as GraphQLASTNode,\n TypeNode,\n} from \"graphql\";\nimport { DocumentNode } from \"@graphitation/supermassive-ast\";\n\nimport type { ExecutionContext } from \"./executeWithoutSchema\";\nimport {\n assertValidExecutionArguments,\n buildExecutionContext,\n buildResolveInfo,\n executeWithoutSchema,\n getOperationRootTypeName,\n} from \"./executeWithoutSchema\";\nimport { collectFields } from \"./collectFields\";\nimport { getArgumentValues } from \"./values\";\nimport { typeNameFromAST } from \"./utilities/typeNameFromAST\";\nimport { mergeResolvers } from \"./utilities/mergeResolvers\";\n\nimport { mapAsyncIterator } from \"./utilities/mapAsyncIterator\";\n\nimport {\n ObjectTypeResolver,\n FunctionFieldResolver,\n ExecutionWithoutSchemaArgs,\n Resolvers,\n ExecutionResult,\n FieldResolverObject,\n} from \"./types\";\n\n/**\n * Implements the \"Subscribe\" algorithm described in the GraphQL specification.\n *\n * Returns a Promise which resolves to either an AsyncIterator (if successful)\n * or an ExecutionResult (error). The promise will be rejected if the schema or\n * other arguments to this function are invalid, or if the resolved event stream\n * is not an async iterable.\n *\n * If the client-provided arguments to this function do not result in a\n * compliant subscription, a GraphQL Response (ExecutionResult) with\n * descriptive errors and no data will be returned.\n *\n * If the source stream could not be created due to faulty subscription\n * resolver logic or underlying systems, the promise will resolve to a single\n * ExecutionResult containing `errors` and no `data`.\n *\n * If the operation succeeded, the promise resolves to an AsyncIterator, which\n * yields a stream of ExecutionResults representing the response stream.\n *\n * Accepts either an object with named arguments, or individual arguments.\n */\nexport async function subscribeWithoutSchema(\n args: ExecutionWithoutSchemaArgs,\n): Promise<AsyncGenerator<ExecutionResult, void, void> | ExecutionResult> {\n const {\n resolvers,\n schemaResolvers,\n document,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n subscribeFieldResolver,\n } = args;\n\n const combinedResolvers = schemaResolvers\n ? mergeResolvers(resolvers, schemaResolvers)\n : (resolvers as Resolvers);\n\n const resultOrStream = await createSourceEventStream(\n combinedResolvers,\n document,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n subscribeFieldResolver,\n );\n\n if (!isAsyncIterable(resultOrStream)) {\n return resultOrStream;\n }\n\n // For each payload yielded from a subscription, map it over the normal\n // GraphQL `execute` function, with `payload` as the rootValue.\n // This implements the \"MapSourceToResponseEvent\" algorithm described in\n // the GraphQL specification. The `execute` function provides the\n // \"ExecuteSubscriptionEvent\" algorithm, as it is nearly identical to the\n // \"ExecuteQuery\" algorithm, for which `execute` is also used.\n const mapSourceToResponse = (payload: unknown) =>\n executeWithoutSchema({\n resolvers,\n schemaResolvers,\n document,\n rootValue: payload,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n });\n\n // Map every source value to a ExecutionResult value as described above.\n return mapAsyncIterator(resultOrStream, mapSourceToResponse);\n}\n\n/**\n * Implements the \"CreateSourceEventStream\" algorithm described in the\n * GraphQL specification, resolving the subscription source event stream.\n *\n * Returns a Promise which resolves to either an AsyncIterable (if successful)\n * or an ExecutionResult (error). The promise will be rejected if the schema or\n * other arguments to this function are invalid, or if the resolved event stream\n * is not an async iterable.\n *\n * If the client-provided arguments to this function do not result in a\n * compliant subscription, a GraphQL Response (ExecutionResult) with\n * descriptive errors and no data will be returned.\n *\n * If the the source stream could not be created due to faulty subscription\n * resolver logic or underlying systems, the promise will resolve to a single\n * ExecutionResult containing `errors` and no `data`.\n *\n * If the operation succeeded, the promise resolves to the AsyncIterable for the\n * event stream returned by the resolver.\n *\n * A Source Event Stream represents a sequence of events, each of which triggers\n * a GraphQL execution for that event.\n *\n * This may be useful when hosting the stateful subscription service in a\n * different process or machine than the stateless GraphQL execution engine,\n * or otherwise separating these two steps. For more on this, see the\n * \"Supporting Subscriptions at Scale\" information in the GraphQL specification.\n */\nexport async function createSourceEventStream(\n resolvers: Resolvers,\n document: DocumentNode,\n rootValue?: unknown,\n contextValue?: unknown,\n variableValues?: Maybe<{ readonly [variable: string]: unknown }>,\n operationName?: Maybe<string>,\n fieldResolver?: Maybe<FunctionFieldResolver<unknown, unknown>>,\n): Promise<AsyncIterable<unknown> | ExecutionResult> {\n // If arguments are missing or incorrectly typed, this is an internal\n // developer mistake which should throw an early error.\n assertValidExecutionArguments(document, variableValues);\n\n try {\n // If a valid context cannot be created due to incorrect arguments, this will throw an error.\n const exeContext = buildExecutionContext(\n resolvers,\n document,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n );\n\n // Return early errors if execution context failed.\n if (!(\"resolvers\" in exeContext)) {\n return { errors: exeContext };\n }\n\n const eventStream = await executeSubscription(exeContext);\n\n // Assert field returned an event stream, otherwise yield an error.\n if (!isAsyncIterable(eventStream)) {\n throw new Error(\n \"Subscription field must return Async Iterable. \" +\n `Received: ${inspect(eventStream)}.`,\n );\n }\n\n return eventStream;\n } catch (error) {\n // If it GraphQLError, report it as an ExecutionResult, containing only errors and no data.\n // Otherwise treat the error as a system-class error and re-throw it.\n if (error instanceof GraphQLError) {\n return { errors: [error] };\n }\n throw error;\n }\n}\n\nasync function executeSubscription(\n exeContext: ExecutionContext,\n): Promise<unknown> {\n const { resolvers, fragments, operation, variableValues, rootValue } =\n exeContext;\n const typeName = getOperationRootTypeName(operation);\n const fields = collectFields(\n resolvers,\n fragments,\n variableValues,\n typeName,\n operation.selectionSet,\n new Map(),\n new Set(),\n );\n\n const [responseName, fieldNodes] = [...fields.entries()][0];\n const fieldName = fieldNodes[0].name.value;\n\n let resolveFn;\n let returnTypeName: string;\n let returnTypeNode: TypeNode;\n if (fieldName === \"__typename\" && !resolveFn) {\n resolveFn = () => typeName;\n returnTypeName = \"String\";\n returnTypeNode = {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: \"String\",\n },\n };\n } else {\n returnTypeNode = fieldNodes[0].__type as TypeNode;\n returnTypeName = typeNameFromAST(returnTypeNode);\n const typeResolvers = exeContext.resolvers[typeName] as\n | ObjectTypeResolver<unknown, unknown, unknown>\n | undefined;\n const fieldResolver = typeResolvers?.[fieldName] as\n | FieldResolverObject<unknown, unknown, unknown, unknown>\n | undefined;\n resolveFn = fieldResolver?.subscribe;\n }\n\n if (!resolveFn) {\n resolveFn = exeContext.fieldResolver;\n }\n\n const path = addPath(undefined, responseName, typeName);\n const info = buildResolveInfo(\n exeContext,\n fieldName,\n fieldNodes,\n typeName,\n returnTypeName,\n returnTypeNode,\n path,\n );\n\n try {\n // Implements the \"ResolveFieldEventStream\" algorithm from GraphQL specification.\n // It differs from \"ResolveFieldValue\" due to providing a different `resolveFn`.\n\n // Build a JS object of arguments from the field.arguments AST, using the\n // variables scope to fulfill unknown variable references.\n const args = getArgumentValues(resolvers, fieldNodes[0], variableValues);\n\n // The resolve function's optional third argument is a context value that\n // is provided to every resolve function within an execution. It is commonly\n // used to represent an authenticated user, or request-specific caches.\n const contextValue = exeContext.contextValue;\n\n // Call the `subscribe()` resolver or the default resolver to produce an\n // AsyncIterable yielding raw payloads.\n const eventStream = await resolveFn(rootValue, args, contextValue, info);\n\n if (eventStream instanceof Error) {\n throw eventStream;\n }\n return eventStream;\n } catch (error) {\n throw locatedError(\n error,\n fieldNodes as ReadonlyArray<GraphQLASTNode>,\n pathToArray(path),\n );\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAwB;AACxB,6BAAgC;AAChC,kBAAqC;AAErC,qBAMO;AAIP,kCAMO;AACP,2BAA8B;AAC9B,oBAAkC;AAClC,6BAAgC;AAChC,4BAA+B;AAE/B,8BAAiC;AAgCjC,SAAsB,uBACpB,MACwE;AAAA;AACxE,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AAEJ,UAAM,oBAAoB,sBACtB,sCAAe,WAAW,eAAe,IACxC;AAEL,UAAM,iBAAiB,MAAM;AAAA,MAC3B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,QAAI,KAAC,wCAAgB,cAAc,GAAG;AACpC,aAAO;AAAA,IACT;AAQA,UAAM,sBAAsB,CAAC,gBAC3B,kDAAqB;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAGH,eAAO,0CAAiB,gBAAgB,mBAAmB;AAAA,EAC7D;AAAA;AA8BA,SAAsB,wBACpB,WACA,UACA,WACA,cACA,gBACA,eACA,eACmD;AAAA;AAGnD,mEAA8B,UAAU,cAAc;AAEtD,QAAI;AAEF,YAAM,iBAAa;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAGA,UAAI,EAAE,eAAe,aAAa;AAChC,eAAO,EAAE,QAAQ,WAAW;AAAA,MAC9B;AAEA,YAAM,cAAc,MAAM,oBAAoB,UAAU;AAGxD,UAAI,KAAC,wCAAgB,WAAW,GAAG;AACjC,cAAM,IAAI;AAAA,UACR,gEACe,wBAAQ,WAAW;AAAA,QACpC;AAAA,MACF;AAEA,aAAO;AAAA,IACT,SAAS,OAAP;AAGA,UAAI,iBAAiB,6BAAc;AACjC,eAAO,EAAE,QAAQ,CAAC,KAAK,EAAE;AAAA,MAC3B;AACA,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAEA,SAAe,oBACb,YACkB;AAAA;AAClB,UAAM,EAAE,WAAW,WAAW,WAAW,gBAAgB,UAAU,IACjE;AACF,UAAM,eAAW,sDAAyB,SAAS;AACnD,UAAM,aAAS;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU;AAAA,MACV,oBAAI,IAAI;AAAA,MACR,oBAAI,IAAI;AAAA,IACV;AAEA,UAAM,CAAC,cAAc,UAAU,IAAI,CAAC,GAAG,OAAO,QAAQ,CAAC,EAAE,CAAC;AAC1D,UAAM,YAAY,WAAW,CAAC,EAAE,KAAK;AAErC,QAAI;AACJ,QAAI;AACJ,QAAI;AACJ,QAAI,cAAc,gBAAgB,CAAC,WAAW;AAC5C,kBAAY,MAAM;AAClB,uBAAiB;AACjB,uBAAiB;AAAA,QACf,MAAM,oBAAK;AAAA,QACX,MAAM;AAAA,UACJ,MAAM,oBAAK;AAAA,UACX,OAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF,OAAO;AACL,uBAAiB,WAAW,CAAC,EAAE;AAC/B,2BAAiB,wCAAgB,cAAc;AAC/C,YAAM,gBAAgB,WAAW,UAAU,QAAQ;AAGnD,YAAM,gBAAgB,+CAAgB;AAGtC,kBAAY,+CAAe;AAAA,IAC7B;AAEA,QAAI,CAAC,WAAW;AACd,kBAAY,WAAW;AAAA,IACzB;AAEA,UAAM,WAAO,qBAAQ,QAAW,cAAc,QAAQ;AACtD,UAAM,WAAO;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,QAAI;AAMF,YAAM,WAAO,iCAAkB,WAAW,WAAW,CAAC,GAAG,cAAc;AAKvE,YAAM,eAAe,WAAW;AAIhC,YAAM,cAAc,MAAM,UAAU,WAAW,MAAM,cAAc,IAAI;AAEvE,UAAI,uBAAuB,OAAO;AAChC,cAAM;AAAA,MACR;AACA,aAAO;AAAA,IACT,SAAS,OAAP;AACA,gBAAM;AAAA,QACJ;AAAA,QACA;AAAA,YACA,yBAAY,IAAI;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAAA;",
4
+ "sourcesContent": ["import { executeWithoutSchema } from \"./executeWithoutSchema\";\n\nimport { ExecutionWithoutSchemaArgs, ExecutionResult } from \"./types\";\nimport type { PromiseOrValue } from \"./jsutils/PromiseOrValue\";\n\n/**\n * Implements the \"Subscribe\" algorithm described in the GraphQL specification.\n *\n * Returns a Promise which resolves to either an AsyncIterator (if successful)\n * or an ExecutionResult (error). The promise will be rejected if the schema or\n * other arguments to this function are invalid, or if the resolved event stream\n * is not an async iterable.\n *\n * If the client-provided arguments to this function do not result in a\n * compliant subscription, a GraphQL Response (ExecutionResult) with\n * descriptive errors and no data will be returned.\n *\n * If the source stream could not be created due to faulty subscription\n * resolver logic or underlying systems, the promise will resolve to a single\n * ExecutionResult containing `errors` and no `data`.\n *\n * If the operation succeeded, the promise resolves to an AsyncIterator, which\n * yields a stream of ExecutionResults representing the response stream.\n *\n * Accepts either an object with named arguments, or individual arguments.\n */\nexport function subscribeWithoutSchema(\n args: ExecutionWithoutSchemaArgs,\n): PromiseOrValue<ExecutionResult> {\n return executeWithoutSchema(args);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kCAAqC;AA0B9B,SAAS,uBACd,MACiC;AACjC,aAAO,kDAAqB,IAAI;AAClC;",
6
6
  "names": []
7
7
  }