nuxt-graphql-middleware 5.2.2 → 5.3.0

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 (142) hide show
  1. package/README.md +2 -0
  2. package/dist/client/200.html +1 -1
  3. package/dist/client/404.html +1 -1
  4. package/dist/client/_nuxt/CqRv5mwS.js +2 -0
  5. package/dist/client/_nuxt/{DKGPmQRi.js → D95LLO0l.js} +1 -1
  6. package/dist/client/_nuxt/DZ-uq6Vd.js +1 -0
  7. package/dist/client/_nuxt/DrXVleME.js +4 -0
  8. package/dist/client/_nuxt/{CLvFsrJf.js → Dx-h1-qv.js} +1 -1
  9. package/dist/client/_nuxt/builds/latest.json +1 -1
  10. package/dist/client/_nuxt/builds/meta/f3f3372e-493e-4c8e-9dbd-18d4c5406f44.json +1 -0
  11. package/dist/client/_nuxt/{entry.DUAtNXP_.css → entry.Cyocd7ae.css} +1 -1
  12. package/dist/client/_nuxt/error-404.BLrjNXsr.css +1 -0
  13. package/dist/client/_nuxt/error-500.DLkAwcfL.css +1 -0
  14. package/dist/client/index.html +1 -1
  15. package/dist/module.d.mts +1 -1
  16. package/dist/module.json +3 -3
  17. package/dist/module.mjs +1526 -70
  18. package/dist/runtime/components/CodeFrame.d.vue.ts +8 -0
  19. package/dist/runtime/components/CodeFrame.vue.d.ts +2 -1
  20. package/dist/runtime/components/DevModeOverlay.d.vue.ts +4 -0
  21. package/dist/runtime/components/DevModeOverlay.vue +1 -1
  22. package/dist/runtime/components/DevModeOverlay.vue.d.ts +2 -1
  23. package/dist/runtime/components/ErrorExtensions.d.vue.ts +6 -0
  24. package/dist/runtime/components/ErrorExtensions.vue.d.ts +2 -1
  25. package/dist/runtime/components/ErrorGroup.d.vue.ts +10 -0
  26. package/dist/runtime/components/ErrorGroup.vue.d.ts +2 -1
  27. package/dist/runtime/css/output.css +1 -1
  28. package/dist/runtime/helpers/composables.d.ts +1 -40
  29. package/dist/runtime/helpers/composables.js +3 -12
  30. package/dist/runtime/helpers/shared-types.d.ts +40 -0
  31. package/dist/runtime/helpers/shared-types.js +12 -0
  32. package/dist/runtime/server/api/doRequest.d.ts +2 -0
  33. package/dist/runtime/server/api/doRequest.js +18 -0
  34. package/dist/runtime/server/helpers/index.js +1 -1
  35. package/dist/runtime/server/mcp/index.d.ts +2 -0
  36. package/dist/runtime/server/mcp/index.js +63 -0
  37. package/dist/runtime/server/mcp/resources/docs.d.ts +2 -0
  38. package/dist/runtime/server/mcp/resources/docs.js +36 -0
  39. package/dist/runtime/server/mcp/tools/fragments-get/index.d.ts +1 -0
  40. package/dist/runtime/server/mcp/tools/fragments-get/index.js +35 -0
  41. package/dist/runtime/server/mcp/tools/fragments-get/types.d.ts +20 -0
  42. package/dist/runtime/server/mcp/tools/fragments-get/types.js +13 -0
  43. package/dist/runtime/server/mcp/tools/fragments-get-source/index.d.ts +1 -0
  44. package/dist/runtime/server/mcp/tools/fragments-get-source/index.js +34 -0
  45. package/dist/runtime/server/mcp/tools/fragments-get-source/types.d.ts +10 -0
  46. package/dist/runtime/server/mcp/tools/fragments-get-source/types.js +9 -0
  47. package/dist/runtime/server/mcp/tools/fragments-list/index.d.ts +1 -0
  48. package/dist/runtime/server/mcp/tools/fragments-list/index.js +36 -0
  49. package/dist/runtime/server/mcp/tools/fragments-list/types.d.ts +20 -0
  50. package/dist/runtime/server/mcp/tools/fragments-list/types.js +14 -0
  51. package/dist/runtime/server/mcp/tools/fragments-list-for-type/index.d.ts +1 -0
  52. package/dist/runtime/server/mcp/tools/fragments-list-for-type/index.js +39 -0
  53. package/dist/runtime/server/mcp/tools/fragments-list-for-type/types.d.ts +31 -0
  54. package/dist/runtime/server/mcp/tools/fragments-list-for-type/types.js +23 -0
  55. package/dist/runtime/server/mcp/tools/graphql-execute/index.d.ts +1 -0
  56. package/dist/runtime/server/mcp/tools/graphql-execute/index.js +59 -0
  57. package/dist/runtime/server/mcp/tools/module-get-config/index.d.ts +1 -0
  58. package/dist/runtime/server/mcp/tools/module-get-config/index.js +23 -0
  59. package/dist/runtime/server/mcp/tools/module-get-config/types.d.ts +39 -0
  60. package/dist/runtime/server/mcp/tools/module-get-config/types.js +26 -0
  61. package/dist/runtime/server/mcp/tools/nitro-graphql-server-utils-example/index.d.ts +1 -0
  62. package/dist/runtime/server/mcp/tools/nitro-graphql-server-utils-example/index.js +36 -0
  63. package/dist/runtime/server/mcp/tools/nitro-graphql-server-utils-example/types.d.ts +49 -0
  64. package/dist/runtime/server/mcp/tools/nitro-graphql-server-utils-example/types.js +24 -0
  65. package/dist/runtime/server/mcp/tools/operations-execute/index.d.ts +1 -0
  66. package/dist/runtime/server/mcp/tools/operations-execute/index.js +63 -0
  67. package/dist/runtime/server/mcp/tools/operations-get/index.d.ts +1 -0
  68. package/dist/runtime/server/mcp/tools/operations-get/index.js +40 -0
  69. package/dist/runtime/server/mcp/tools/operations-get/types.d.ts +32 -0
  70. package/dist/runtime/server/mcp/tools/operations-get/types.js +18 -0
  71. package/dist/runtime/server/mcp/tools/operations-get-field-usage/index.d.ts +1 -0
  72. package/dist/runtime/server/mcp/tools/operations-get-field-usage/index.js +39 -0
  73. package/dist/runtime/server/mcp/tools/operations-get-field-usage/types.d.ts +38 -0
  74. package/dist/runtime/server/mcp/tools/operations-get-field-usage/types.js +19 -0
  75. package/dist/runtime/server/mcp/tools/operations-get-source/index.d.ts +1 -0
  76. package/dist/runtime/server/mcp/tools/operations-get-source/index.js +39 -0
  77. package/dist/runtime/server/mcp/tools/operations-get-source/types.d.ts +10 -0
  78. package/dist/runtime/server/mcp/tools/operations-get-source/types.js +9 -0
  79. package/dist/runtime/server/mcp/tools/operations-list/index.d.ts +1 -0
  80. package/dist/runtime/server/mcp/tools/operations-list/index.js +46 -0
  81. package/dist/runtime/server/mcp/tools/operations-list/types.d.ts +53 -0
  82. package/dist/runtime/server/mcp/tools/operations-list/types.js +33 -0
  83. package/dist/runtime/server/mcp/tools/schema-get-interface-implementors/index.d.ts +1 -0
  84. package/dist/runtime/server/mcp/tools/schema-get-interface-implementors/index.js +37 -0
  85. package/dist/runtime/server/mcp/tools/schema-get-interface-implementors/types.d.ts +24 -0
  86. package/dist/runtime/server/mcp/tools/schema-get-interface-implementors/types.js +16 -0
  87. package/dist/runtime/server/mcp/tools/schema-get-type/index.d.ts +1 -0
  88. package/dist/runtime/server/mcp/tools/schema-get-type/index.js +31 -0
  89. package/dist/runtime/server/mcp/tools/schema-get-type/types.d.ts +112 -0
  90. package/dist/runtime/server/mcp/tools/schema-get-type/types.js +45 -0
  91. package/dist/runtime/server/mcp/tools/schema-get-type-definition/index.d.ts +1 -0
  92. package/dist/runtime/server/mcp/tools/schema-get-type-definition/index.js +33 -0
  93. package/dist/runtime/server/mcp/tools/schema-get-type-definition/types.d.ts +10 -0
  94. package/dist/runtime/server/mcp/tools/schema-get-type-definition/types.js +9 -0
  95. package/dist/runtime/server/mcp/tools/schema-get-type-usage/index.d.ts +1 -0
  96. package/dist/runtime/server/mcp/tools/schema-get-type-usage/index.js +35 -0
  97. package/dist/runtime/server/mcp/tools/schema-get-type-usage/types.d.ts +39 -0
  98. package/dist/runtime/server/mcp/tools/schema-get-type-usage/types.js +17 -0
  99. package/dist/runtime/server/mcp/tools/schema-get-union-members/index.d.ts +1 -0
  100. package/dist/runtime/server/mcp/tools/schema-get-union-members/index.js +35 -0
  101. package/dist/runtime/server/mcp/tools/schema-get-union-members/types.d.ts +24 -0
  102. package/dist/runtime/server/mcp/tools/schema-get-union-members/types.js +16 -0
  103. package/dist/runtime/server/mcp/tools/schema-list-types/index.d.ts +1 -0
  104. package/dist/runtime/server/mcp/tools/schema-list-types/index.js +37 -0
  105. package/dist/runtime/server/mcp/tools/schema-list-types/types.d.ts +53 -0
  106. package/dist/runtime/server/mcp/tools/schema-list-types/types.js +21 -0
  107. package/dist/runtime/server/mcp/tools/schema-validate-document/index.d.ts +1 -0
  108. package/dist/runtime/server/mcp/tools/schema-validate-document/index.js +31 -0
  109. package/dist/runtime/server/mcp/tools/schema-validate-document/types.d.ts +26 -0
  110. package/dist/runtime/server/mcp/tools/schema-validate-document/types.js +21 -0
  111. package/dist/runtime/server/mcp/tools/vue-graphql-composable-example/index.d.ts +1 -0
  112. package/dist/runtime/server/mcp/tools/vue-graphql-composable-example/index.js +36 -0
  113. package/dist/runtime/server/mcp/tools/vue-graphql-composable-example/types.d.ts +49 -0
  114. package/dist/runtime/server/mcp/tools/vue-graphql-composable-example/types.js +24 -0
  115. package/dist/runtime/server/mcp/utils/index.d.ts +48 -0
  116. package/dist/runtime/server/mcp/utils/index.js +35 -0
  117. package/dist/runtime/server/utils/useGraphqlMutation.d.ts +1 -1
  118. package/dist/runtime/server/utils/useGraphqlMutation.js +1 -1
  119. package/dist/runtime/server/utils/useGraphqlQuery.d.ts +1 -1
  120. package/dist/runtime/server/utils/useGraphqlQuery.js +1 -1
  121. package/dist/runtime/types.d.ts +1 -1
  122. package/dist/shared/{nuxt-graphql-middleware.ct2xvPoD.d.mts → nuxt-graphql-middleware.COufMnWs.d.mts} +119 -2
  123. package/dist/utils.d.mts +1 -1
  124. package/docs/composables/useAsyncGraphqlQuery.md +313 -0
  125. package/docs/composables/useGraphqlMutation.md +29 -0
  126. package/docs/composables/useGraphqlQuery.md +73 -0
  127. package/docs/composables/useGraphqlState.md +58 -0
  128. package/docs/composables/useGraphqlUploadMutation.md +57 -0
  129. package/docs/configuration/client-options.md +121 -0
  130. package/docs/configuration/module-hooks.md +112 -0
  131. package/docs/configuration/module-utils.md +53 -0
  132. package/docs/configuration/module.md +415 -0
  133. package/docs/configuration/runtime-config.md +23 -0
  134. package/docs/configuration/server-options.md +230 -0
  135. package/package.json +102 -44
  136. package/dist/client/_nuxt/CKZE-Gmz.js +0 -2
  137. package/dist/client/_nuxt/CYCWsMRt.js +0 -1
  138. package/dist/client/_nuxt/DPP_zJIh.js +0 -25
  139. package/dist/client/_nuxt/builds/meta/1a5c6b94-502b-4ab8-a5c9-f955b10f2b06.json +0 -1
  140. package/dist/client/_nuxt/error-404.DlVPZ4GE.css +0 -1
  141. package/dist/client/_nuxt/error-500.DjyirMQI.css +0 -1
  142. package/dist/runtime/server/tsconfig.json +0 -3
@@ -0,0 +1,8 @@
1
+ type __VLS_Props = {
2
+ source: string;
3
+ line: number;
4
+ column: number;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
@@ -3,5 +3,6 @@ type __VLS_Props = {
3
3
  line: number;
4
4
  column: number;
5
5
  };
6
- declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
7
8
  export default _default;
@@ -0,0 +1,4 @@
1
+ import './../css/output.css.js';
2
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
3
+ declare const _default: typeof __VLS_export;
4
+ export default _default;
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div v-if="groups.length" id="nuxt-graphql-middleware">
2
+ <div v-if="groups.length" id="nuxt-graphql-middleware" class="ngm-root">
3
3
  <div id="nuxt-graphql-middleware-errors">
4
4
  <div
5
5
  id="nuxt-graphql-middleware-errors-background"
@@ -1,3 +1,4 @@
1
1
  import './../css/output.css.js';
2
- declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
3
+ declare const _default: typeof __VLS_export;
3
4
  export default _default;
@@ -0,0 +1,6 @@
1
+ type __VLS_Props = {
2
+ extensions?: Record<string, unknown>;
3
+ };
4
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
5
+ declare const _default: typeof __VLS_export;
6
+ export default _default;
@@ -1,5 +1,6 @@
1
1
  type __VLS_Props = {
2
2
  extensions?: Record<string, unknown>;
3
3
  };
4
- declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
4
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
5
+ declare const _default: typeof __VLS_export;
5
6
  export default _default;
@@ -0,0 +1,10 @@
1
+ import type { GraphqlResponseError } from '../types.js';
2
+ type __VLS_Props = {
3
+ operation: string;
4
+ operationName: string;
5
+ errors: GraphqlResponseError[];
6
+ stack?: string;
7
+ };
8
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
+ declare const _default: typeof __VLS_export;
10
+ export default _default;
@@ -5,5 +5,6 @@ type __VLS_Props = {
5
5
  errors: GraphqlResponseError[];
6
6
  stack?: string;
7
7
  };
8
- declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
8
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
+ declare const _default: typeof __VLS_export;
9
10
  export default _default;
@@ -1 +1 @@
1
- :root{--ngm-tw-border-spacing-x:0;--ngm-tw-border-spacing-y:0;--ngm-tw-translate-x:0;--ngm-tw-translate-y:0;--ngm-tw-rotate:0;--ngm-tw-skew-x:0;--ngm-tw-skew-y:0;--ngm-tw-scale-x:1;--ngm-tw-scale-y:1;--ngm-tw-pan-x: ;--ngm-tw-pan-y: ;--ngm-tw-pinch-zoom: ;--ngm-tw-scroll-snap-strictness:proximity;--ngm-tw-gradient-from-position: ;--ngm-tw-gradient-via-position: ;--ngm-tw-gradient-to-position: ;--ngm-tw-ordinal: ;--ngm-tw-slashed-zero: ;--ngm-tw-numeric-figure: ;--ngm-tw-numeric-spacing: ;--ngm-tw-numeric-fraction: ;--ngm-tw-ring-inset: ;--ngm-tw-ring-offset-width:0px;--ngm-tw-ring-offset-color:#fff;--ngm-tw-ring-color:rgba(59,130,246,.5);--ngm-tw-ring-offset-shadow:0 0 #0000;--ngm-tw-ring-shadow:0 0 #0000;--ngm-tw-shadow:0 0 #0000;--ngm-tw-shadow-colored:0 0 #0000;--ngm-tw-blur: ;--ngm-tw-brightness: ;--ngm-tw-contrast: ;--ngm-tw-grayscale: ;--ngm-tw-hue-rotate: ;--ngm-tw-invert: ;--ngm-tw-saturate: ;--ngm-tw-sepia: ;--ngm-tw-drop-shadow: ;--ngm-tw-backdrop-blur: ;--ngm-tw-backdrop-brightness: ;--ngm-tw-backdrop-contrast: ;--ngm-tw-backdrop-grayscale: ;--ngm-tw-backdrop-hue-rotate: ;--ngm-tw-backdrop-invert: ;--ngm-tw-backdrop-opacity: ;--ngm-tw-backdrop-saturate: ;--ngm-tw-backdrop-sepia: ;--ngm-tw-contain-size: ;--ngm-tw-contain-layout: ;--ngm-tw-contain-paint: ;--ngm-tw-contain-style: }::backdrop{--ngm-tw-border-spacing-x:0;--ngm-tw-border-spacing-y:0;--ngm-tw-translate-x:0;--ngm-tw-translate-y:0;--ngm-tw-rotate:0;--ngm-tw-skew-x:0;--ngm-tw-skew-y:0;--ngm-tw-scale-x:1;--ngm-tw-scale-y:1;--ngm-tw-pan-x: ;--ngm-tw-pan-y: ;--ngm-tw-pinch-zoom: ;--ngm-tw-scroll-snap-strictness:proximity;--ngm-tw-gradient-from-position: ;--ngm-tw-gradient-via-position: ;--ngm-tw-gradient-to-position: ;--ngm-tw-ordinal: ;--ngm-tw-slashed-zero: ;--ngm-tw-numeric-figure: ;--ngm-tw-numeric-spacing: ;--ngm-tw-numeric-fraction: ;--ngm-tw-ring-inset: ;--ngm-tw-ring-offset-width:0px;--ngm-tw-ring-offset-color:#fff;--ngm-tw-ring-color:rgba(59,130,246,.5);--ngm-tw-ring-offset-shadow:0 0 #0000;--ngm-tw-ring-shadow:0 0 #0000;--ngm-tw-shadow:0 0 #0000;--ngm-tw-shadow-colored:0 0 #0000;--ngm-tw-blur: ;--ngm-tw-brightness: ;--ngm-tw-contrast: ;--ngm-tw-grayscale: ;--ngm-tw-hue-rotate: ;--ngm-tw-invert: ;--ngm-tw-saturate: ;--ngm-tw-sepia: ;--ngm-tw-drop-shadow: ;--ngm-tw-backdrop-blur: ;--ngm-tw-backdrop-brightness: ;--ngm-tw-backdrop-contrast: ;--ngm-tw-backdrop-grayscale: ;--ngm-tw-backdrop-hue-rotate: ;--ngm-tw-backdrop-invert: ;--ngm-tw-backdrop-opacity: ;--ngm-tw-backdrop-saturate: ;--ngm-tw-backdrop-sepia: ;--ngm-tw-contain-size: ;--ngm-tw-contain-layout: ;--ngm-tw-contain-paint: ;--ngm-tw-contain-style: }:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *):after,:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *):before{border:0 solid #e5e7eb;box-sizing:border-box}:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *):after,:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *):before{--ngm-tw-content:""}#nuxt-graphql-middleware{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent;line-height:inherit;margin:0}hr:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){border-top-width:1px;color:inherit;height:0}abbr:where([title]):where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),h2:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),h3:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),h4:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),h5:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),h6:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){font-size:inherit;font-weight:inherit}a:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){color:inherit;text-decoration:inherit}b:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),strong:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){font-weight:bolder}code:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),kbd:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),pre:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),samp:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){font-size:80%}sub:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),sup:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){bottom:-.25em}sup:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){top:-.5em}table:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){border-collapse:collapse;border-color:inherit;text-indent:0}button:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),input:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),optgroup:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),select:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),textarea:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),select:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){text-transform:none}button:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),input:where([type=button]):where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),input:where([type=reset]):where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),input:where([type=submit]):where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){outline:auto}:-moz-ui-invalid:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){box-shadow:none}progress:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){vertical-align:baseline}:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *) ::-webkit-inner-spin-button,:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *) ::-webkit-outer-spin-button{height:auto}[type=search]:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){-webkit-appearance:textfield;outline-offset:-2px}:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *) ::-webkit-search-decoration{-webkit-appearance:none}:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *) ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){display:list-item}blockquote:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),dd:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),dl:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),figure:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),h1:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),h2:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),h3:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),h4:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),h5:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),h6:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),hr:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),p:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),pre:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){margin:0}fieldset:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){margin:0;padding:0}legend:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){padding:0}menu:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),ol:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),ul:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){list-style:none;margin:0;padding:0}dialog:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){padding:0}textarea:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){resize:vertical}:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *) input::-moz-placeholder,:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *) textarea::-moz-placeholder{color:#9ca3af;opacity:1}:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *) input::placeholder,:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *) textarea::placeholder{color:#9ca3af;opacity:1}[role=button]:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),button:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){cursor:pointer}:disabled:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){cursor:default}audio:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),canvas:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),embed:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),iframe:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),img:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),object:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),svg:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),video:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){display:block;vertical-align:middle}img:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),video:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])):where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){display:none}#nuxt-graphql-middleware-errors{align-items:flex-start;display:flex;height:100%;justify-content:center;left:0;padding:1.25rem;position:fixed;top:0;width:100%;z-index:999999999999}#nuxt-graphql-middleware-errors-background{background-color:rgba(68,64,60,.95);height:100%;left:0;position:absolute;top:0;width:100%}#nuxt-graphql-middleware-errors-content{border-radius:.25rem;max-width:1200px;overflow:auto;position:relative;width:100%;z-index:50;--ngm-tw-bg-opacity:1;background-color:rgb(28 25 23/var(--ngm-tw-bg-opacity,1));padding:1.75rem;--ngm-tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--ngm-tw-shadow-colored:0 25px 50px -12px var(--ngm-tw-shadow-color);box-shadow:var(--ngm-tw-ring-offset-shadow,0 0 #0000),var(--ngm-tw-ring-shadow,0 0 #0000),var(--ngm-tw-shadow);max-height:calc(100vh - 40px)}#nuxt-graphql-middleware-errors-content header{border-bottom-width:1px;display:flex;justify-content:space-between;margin-bottom:.75rem;--ngm-tw-border-opacity:1;border-bottom-color:rgb(68 64 60/var(--ngm-tw-border-opacity,1));padding-bottom:1.25rem}#nuxt-graphql-middleware-errors-content header h1{font-size:1.25rem;font-weight:700;line-height:1.75rem;--ngm-tw-text-opacity:1;color:rgb(255 255 255/var(--ngm-tw-text-opacity,1))}#nuxt-graphql-middleware-errors-content header button{border-radius:.25rem;--ngm-tw-bg-opacity:1;background-color:rgb(87 83 78/var(--ngm-tw-bg-opacity,1));font-size:.875rem;font-weight:700;letter-spacing:.1em;line-height:1.25rem;padding:.5rem .625rem;text-transform:uppercase;--ngm-tw-text-opacity:1;color:rgb(245 245 244/var(--ngm-tw-text-opacity,1))}#nuxt-graphql-middleware-errors-content header button:hover{--ngm-tw-bg-opacity:1;background-color:rgb(231 229 228/var(--ngm-tw-bg-opacity,1));--ngm-tw-text-opacity:1;color:rgb(28 25 23/var(--ngm-tw-text-opacity,1))}.nuxt-graphql-middleware-error-group{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;--ngm-tw-text-opacity:1;color:rgb(245 245 244/var(--ngm-tw-text-opacity,1))}.nuxt-graphql-middleware-error-group td{padding-bottom:.375rem;padding-top:.375rem}.nuxt-graphql-middleware-error-group td:first-child{padding-right:2.5rem}.nuxt-graphql-middleware-error-group td:nth-child(2){overflow:auto;white-space:pre-wrap}.nuxt-graphql-middleware-error-group td.ngm-large{font-size:1.5rem;font-weight:700;line-height:2rem;padding-bottom:.75rem;padding-top:.75rem}.nuxt-graphql-middleware-error-group code{--ngm-tw-bg-opacity:1;background-color:rgb(28 25 23/var(--ngm-tw-bg-opacity,1))}.nuxt-graphql-middleware-errors-code{border-radius:.25rem;border-width:1px;display:block;margin-bottom:1rem;margin-top:1rem;white-space:pre;--ngm-tw-border-opacity:1;border-color:rgb(87 83 78/var(--ngm-tw-border-opacity,1));--ngm-tw-bg-opacity:1;background-color:rgb(41 37 36/var(--ngm-tw-bg-opacity,1));font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;padding:.75rem;--ngm-tw-text-opacity:1;color:rgb(255 255 255/var(--ngm-tw-text-opacity,1));display:flex;gap:2rem}.nuxt-graphql-middleware-errors-code-code.ngm-is-highlighted{border-radius:.25rem;border-width:1px;--ngm-tw-border-opacity:1;border-color:rgb(185 28 28/var(--ngm-tw-border-opacity,1));--ngm-tw-bg-opacity:1;background-color:rgb(127 29 29/var(--ngm-tw-bg-opacity,1))}.nuxt-graphql-middleware-errors-code-line-number{text-align:right}.table{display:table}
1
+ .ngm-root *,.ngm-root :after,.ngm-root :before{--ngm-tw-border-spacing-x:0;--ngm-tw-border-spacing-y:0;--ngm-tw-translate-x:0;--ngm-tw-translate-y:0;--ngm-tw-rotate:0;--ngm-tw-skew-x:0;--ngm-tw-skew-y:0;--ngm-tw-scale-x:1;--ngm-tw-scale-y:1;--ngm-tw-pan-x: ;--ngm-tw-pan-y: ;--ngm-tw-pinch-zoom: ;--ngm-tw-scroll-snap-strictness:proximity;--ngm-tw-gradient-from-position: ;--ngm-tw-gradient-via-position: ;--ngm-tw-gradient-to-position: ;--ngm-tw-ordinal: ;--ngm-tw-slashed-zero: ;--ngm-tw-numeric-figure: ;--ngm-tw-numeric-spacing: ;--ngm-tw-numeric-fraction: ;--ngm-tw-ring-inset: ;--ngm-tw-ring-offset-width:0px;--ngm-tw-ring-offset-color:#fff;--ngm-tw-ring-color:rgba(59,130,246,.5);--ngm-tw-ring-offset-shadow:0 0 #0000;--ngm-tw-ring-shadow:0 0 #0000;--ngm-tw-shadow:0 0 #0000;--ngm-tw-shadow-colored:0 0 #0000;--ngm-tw-blur: ;--ngm-tw-brightness: ;--ngm-tw-contrast: ;--ngm-tw-grayscale: ;--ngm-tw-hue-rotate: ;--ngm-tw-invert: ;--ngm-tw-saturate: ;--ngm-tw-sepia: ;--ngm-tw-drop-shadow: ;--ngm-tw-backdrop-blur: ;--ngm-tw-backdrop-brightness: ;--ngm-tw-backdrop-contrast: ;--ngm-tw-backdrop-grayscale: ;--ngm-tw-backdrop-hue-rotate: ;--ngm-tw-backdrop-invert: ;--ngm-tw-backdrop-opacity: ;--ngm-tw-backdrop-saturate: ;--ngm-tw-backdrop-sepia: ;--ngm-tw-contain-size: ;--ngm-tw-contain-layout: ;--ngm-tw-contain-paint: ;--ngm-tw-contain-style: }.ngm-root ::backdrop{--ngm-tw-border-spacing-x:0;--ngm-tw-border-spacing-y:0;--ngm-tw-translate-x:0;--ngm-tw-translate-y:0;--ngm-tw-rotate:0;--ngm-tw-skew-x:0;--ngm-tw-skew-y:0;--ngm-tw-scale-x:1;--ngm-tw-scale-y:1;--ngm-tw-pan-x: ;--ngm-tw-pan-y: ;--ngm-tw-pinch-zoom: ;--ngm-tw-scroll-snap-strictness:proximity;--ngm-tw-gradient-from-position: ;--ngm-tw-gradient-via-position: ;--ngm-tw-gradient-to-position: ;--ngm-tw-ordinal: ;--ngm-tw-slashed-zero: ;--ngm-tw-numeric-figure: ;--ngm-tw-numeric-spacing: ;--ngm-tw-numeric-fraction: ;--ngm-tw-ring-inset: ;--ngm-tw-ring-offset-width:0px;--ngm-tw-ring-offset-color:#fff;--ngm-tw-ring-color:rgba(59,130,246,.5);--ngm-tw-ring-offset-shadow:0 0 #0000;--ngm-tw-ring-shadow:0 0 #0000;--ngm-tw-shadow:0 0 #0000;--ngm-tw-shadow-colored:0 0 #0000;--ngm-tw-blur: ;--ngm-tw-brightness: ;--ngm-tw-contrast: ;--ngm-tw-grayscale: ;--ngm-tw-hue-rotate: ;--ngm-tw-invert: ;--ngm-tw-saturate: ;--ngm-tw-sepia: ;--ngm-tw-drop-shadow: ;--ngm-tw-backdrop-blur: ;--ngm-tw-backdrop-brightness: ;--ngm-tw-backdrop-contrast: ;--ngm-tw-backdrop-grayscale: ;--ngm-tw-backdrop-hue-rotate: ;--ngm-tw-backdrop-invert: ;--ngm-tw-backdrop-opacity: ;--ngm-tw-backdrop-saturate: ;--ngm-tw-backdrop-sepia: ;--ngm-tw-contain-size: ;--ngm-tw-contain-layout: ;--ngm-tw-contain-paint: ;--ngm-tw-contain-style: }.ngm-root :where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root :where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *):after,.ngm-root :where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *):before{border:0 solid #e5e7eb;box-sizing:border-box}.ngm-root :where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *):after,.ngm-root :where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *):before{--ngm-tw-content:""}.ngm-root #nuxt-graphql-middleware{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent;line-height:inherit;margin:0}.ngm-root hr:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){border-top-width:1px;color:inherit;height:0}.ngm-root abbr:where([title]):where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.ngm-root h1:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root h2:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root h3:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root h4:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root h5:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root h6:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){font-size:inherit;font-weight:inherit}.ngm-root a:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){color:inherit;text-decoration:inherit}.ngm-root b:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root strong:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){font-weight:bolder}.ngm-root code:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root kbd:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root pre:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root samp:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}.ngm-root small:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){font-size:80%}.ngm-root sub:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root sup:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){font-size:75%;line-height:0;position:relative;vertical-align:baseline}.ngm-root sub:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){bottom:-.25em}.ngm-root sup:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){top:-.5em}.ngm-root table:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){border-collapse:collapse;border-color:inherit;text-indent:0}.ngm-root button:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root input:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root optgroup:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root select:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root textarea:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}.ngm-root button:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root select:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){text-transform:none}.ngm-root button:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root input:where([type=button]):where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root input:where([type=reset]):where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root input:where([type=submit]):where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){-webkit-appearance:button;background-color:transparent;background-image:none}.ngm-root :-moz-focusring:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){outline:auto}.ngm-root :-moz-ui-invalid:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){box-shadow:none}.ngm-root progress:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){vertical-align:baseline}.ngm-root :where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *) ::-webkit-inner-spin-button,.ngm-root :where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *) ::-webkit-outer-spin-button{height:auto}.ngm-root [type=search]:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){-webkit-appearance:textfield;outline-offset:-2px}.ngm-root :where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *) ::-webkit-search-decoration{-webkit-appearance:none}.ngm-root :where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *) ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.ngm-root summary:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){display:list-item}.ngm-root blockquote:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root dd:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root dl:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root figure:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root h1:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root h2:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root h3:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root h4:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root h5:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root h6:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root hr:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root p:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root pre:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){margin:0}.ngm-root fieldset:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){margin:0;padding:0}.ngm-root legend:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){padding:0}.ngm-root menu:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root ol:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root ul:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){list-style:none;margin:0;padding:0}.ngm-root dialog:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){padding:0}.ngm-root textarea:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){resize:vertical}.ngm-root :where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *) input::-moz-placeholder,.ngm-root :where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *) textarea::-moz-placeholder{color:#9ca3af;opacity:1}.ngm-root :where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *) input::placeholder,.ngm-root :where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *) textarea::placeholder{color:#9ca3af;opacity:1}.ngm-root [role=button]:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root button:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){cursor:pointer}.ngm-root :disabled:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){cursor:default}.ngm-root audio:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root canvas:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root embed:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root iframe:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root img:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root object:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root svg:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root video:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){display:block;vertical-align:middle}.ngm-root img:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *),.ngm-root video:where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){height:auto;max-width:100%}.ngm-root [hidden]:where(:not([hidden=until-found])):where(#nuxt-graphql-middleware,#nuxt-graphql-middleware *){display:none}.ngm-root #nuxt-graphql-middleware-errors{align-items:flex-start;display:flex;height:100%;justify-content:center;left:0;padding:1.25rem;position:fixed;top:0;width:100%;z-index:999999999999}.ngm-root #nuxt-graphql-middleware-errors-background{background-color:rgba(68,64,60,.95);height:100%;left:0;position:absolute;top:0;width:100%}.ngm-root #nuxt-graphql-middleware-errors-content{border-radius:.25rem;max-width:1200px;overflow:auto;position:relative;width:100%;z-index:50;--ngm-tw-bg-opacity:1;background-color:rgb(28 25 23/var(--ngm-tw-bg-opacity,1));padding:1.75rem;--ngm-tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--ngm-tw-shadow-colored:0 25px 50px -12px var(--ngm-tw-shadow-color);box-shadow:var(--ngm-tw-ring-offset-shadow,0 0 #0000),var(--ngm-tw-ring-shadow,0 0 #0000),var(--ngm-tw-shadow);max-height:calc(100vh - 40px)}.ngm-root #nuxt-graphql-middleware-errors-content header{border-bottom-width:1px;display:flex;justify-content:space-between;margin-bottom:.75rem;--ngm-tw-border-opacity:1;border-bottom-color:rgb(68 64 60/var(--ngm-tw-border-opacity,1));padding-bottom:1.25rem}.ngm-root #nuxt-graphql-middleware-errors-content header h1{font-size:1.25rem;font-weight:700;line-height:1.75rem;--ngm-tw-text-opacity:1;color:rgb(255 255 255/var(--ngm-tw-text-opacity,1))}.ngm-root #nuxt-graphql-middleware-errors-content header button{border-radius:.25rem;--ngm-tw-bg-opacity:1;background-color:rgb(87 83 78/var(--ngm-tw-bg-opacity,1));font-size:.875rem;font-weight:700;letter-spacing:.1em;line-height:1.25rem;padding:.5rem .625rem;text-transform:uppercase;--ngm-tw-text-opacity:1;color:rgb(245 245 244/var(--ngm-tw-text-opacity,1))}.ngm-root #nuxt-graphql-middleware-errors-content header button:hover{--ngm-tw-bg-opacity:1;background-color:rgb(231 229 228/var(--ngm-tw-bg-opacity,1));--ngm-tw-text-opacity:1;color:rgb(28 25 23/var(--ngm-tw-text-opacity,1))}.ngm-root .nuxt-graphql-middleware-error-group{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;--ngm-tw-text-opacity:1;color:rgb(245 245 244/var(--ngm-tw-text-opacity,1))}.ngm-root .nuxt-graphql-middleware-error-group td{padding-bottom:.375rem;padding-top:.375rem}.ngm-root .nuxt-graphql-middleware-error-group td:first-child{padding-right:2.5rem}.ngm-root .nuxt-graphql-middleware-error-group td:nth-child(2){overflow:auto;white-space:pre-wrap}.ngm-root .nuxt-graphql-middleware-error-group td.ngm-large{font-size:1.5rem;font-weight:700;line-height:2rem;padding-bottom:.75rem;padding-top:.75rem}.ngm-root .nuxt-graphql-middleware-error-group code{--ngm-tw-bg-opacity:1;background-color:rgb(28 25 23/var(--ngm-tw-bg-opacity,1))}.ngm-root .nuxt-graphql-middleware-errors-code{border-radius:.25rem;border-width:1px;display:block;margin-bottom:1rem;margin-top:1rem;white-space:pre;--ngm-tw-border-opacity:1;border-color:rgb(87 83 78/var(--ngm-tw-border-opacity,1));--ngm-tw-bg-opacity:1;background-color:rgb(41 37 36/var(--ngm-tw-bg-opacity,1));font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;padding:.75rem;--ngm-tw-text-opacity:1;color:rgb(255 255 255/var(--ngm-tw-text-opacity,1));display:flex;gap:2rem}.ngm-root .nuxt-graphql-middleware-errors-code-code.ngm-is-highlighted{border-radius:.25rem;border-width:1px;--ngm-tw-border-opacity:1;border-color:rgb(185 28 28/var(--ngm-tw-border-opacity,1));--ngm-tw-bg-opacity:1;background-color:rgb(127 29 29/var(--ngm-tw-bg-opacity,1))}.ngm-root .nuxt-graphql-middleware-errors-code-line-number{text-align:right}.ngm-root .table{display:table}
@@ -1,44 +1,5 @@
1
- import type { FetchOptions } from 'ofetch';
2
- import type { RequestCacheOptions } from './../types.js';
3
- import type { GraphqlClientContext } from '#nuxt-graphql-middleware/client-options';
4
- import type { Query, Mutation } from '#nuxt-graphql-middleware/operation-types';
5
1
  import type { NuxtApp } from '#app';
6
2
  import type { AppConfig } from 'nuxt/schema';
7
3
  import { GraphqlMiddlewareCache } from './ClientCache.js';
8
- export type GraphqlComposableOptions = {
9
- fetchOptions?: FetchOptions;
10
- graphqlCaching?: RequestCacheOptions;
11
- clientContext?: Partial<GraphqlClientContext>;
12
- };
13
- export type GetQueryArgs<K extends keyof Query, Q extends Query[K] = Query[K]> = Q['variables'] extends null ? [K, (null | undefined)?, GraphqlComposableOptions?] : Q['needsVariables'] extends true ? [K, Q['variables'], GraphqlComposableOptions?] : [K, (Q['variables'] | null)?, GraphqlComposableOptions?];
14
- export type GetMutationArgs<K extends keyof Mutation, M extends Mutation[K] = Mutation[K]> = M['needsVariables'] extends true ? [K, M['variables'], GraphqlComposableOptions?] : [K, (M['variables'] | null)?, GraphqlComposableOptions?];
15
- export type GetQueryResult<K extends keyof Query, Q extends Query[K] = Query[K]> = Q['response'];
16
- export type GetMutationResult<K extends keyof Mutation, M extends Mutation[K] = Mutation[K]> = M['response'];
17
- export type QueryObjectArgs<K extends keyof Query, Q extends Query[K] = Query[K]> = Q['needsVariables'] extends true ? {
18
- name: K;
19
- fetchOptions?: FetchOptions;
20
- graphqlCaching?: RequestCacheOptions;
21
- clientContext?: Partial<GraphqlClientContext>;
22
- variables: Q['variables'];
23
- } : {
24
- name: K;
25
- variables?: Q['variables'] | null;
26
- fetchOptions?: FetchOptions;
27
- graphqlCaching?: RequestCacheOptions;
28
- clientContext?: Partial<GraphqlClientContext>;
29
- };
30
- export type MutationObjectArgs<K extends keyof Mutation, M extends Mutation[K] = Mutation[K]> = M['needsVariables'] extends true ? {
31
- name: K;
32
- variables: M['variables'];
33
- fetchOptions?: FetchOptions;
34
- clientContext?: Partial<GraphqlClientContext>;
35
- } : {
36
- name: K;
37
- variables?: M['variables'] | null;
38
- fetchOptions?: FetchOptions;
39
- clientContext?: Partial<GraphqlClientContext>;
40
- };
41
- export type PickFrom<T, K extends Array<string>> = T extends Array<any> ? T : T extends Record<string, any> ? keyof T extends K[number] ? T : K[number] extends never ? T : Pick<T, K[number]> : T;
42
- export type KeysOf<T> = Array<T extends T ? (keyof T extends string ? keyof T : never) : never>;
43
- export declare function encodeContext(context: Record<string, string | null | undefined>): Record<string, string>;
4
+ export { type GraphqlComposableOptions, type GetQueryArgs, type GetMutationArgs, type GetQueryResult, type GetMutationResult, type QueryObjectArgs, type MutationObjectArgs, type PickFrom, type KeysOf, encodeContext, } from './shared-types.js';
44
5
  export declare function getOrCreateClientCache(app: NuxtApp, config: AppConfig): GraphqlMiddlewareCache | undefined;
@@ -1,20 +1,11 @@
1
- import { CLIENT_CONTEXT_PREFIX } from "../settings/index.js";
2
1
  import { GraphqlMiddlewareCache } from "./ClientCache.js";
3
2
  import {
4
3
  clientCacheEnabledAtBuild,
5
4
  importMetaServer
6
5
  } from "#nuxt-graphql-middleware/config";
7
- export function encodeContext(context) {
8
- return Object.entries(context).reduce(
9
- (acc, [key, value]) => {
10
- if (typeof value === "string") {
11
- acc[CLIENT_CONTEXT_PREFIX + key] = value;
12
- }
13
- return acc;
14
- },
15
- {}
16
- );
17
- }
6
+ export {
7
+ encodeContext
8
+ } from "./shared-types.js";
18
9
  export function getOrCreateClientCache(app, config) {
19
10
  if (importMetaServer || !clientCacheEnabledAtBuild) {
20
11
  return;
@@ -0,0 +1,40 @@
1
+ import type { FetchOptions } from 'ofetch';
2
+ import type { RequestCacheOptions } from './../types.js';
3
+ import type { GraphqlClientContext } from '#nuxt-graphql-middleware/client-options';
4
+ import type { Query, Mutation } from '#nuxt-graphql-middleware/operation-types';
5
+ export type GraphqlComposableOptions = {
6
+ fetchOptions?: FetchOptions;
7
+ graphqlCaching?: RequestCacheOptions;
8
+ clientContext?: Partial<GraphqlClientContext>;
9
+ };
10
+ export type GetQueryArgs<K extends keyof Query, Q extends Query[K] = Query[K]> = Q['variables'] extends null ? [K, (null | undefined)?, GraphqlComposableOptions?] : Q['needsVariables'] extends true ? [K, Q['variables'], GraphqlComposableOptions?] : [K, (Q['variables'] | null)?, GraphqlComposableOptions?];
11
+ export type GetMutationArgs<K extends keyof Mutation, M extends Mutation[K] = Mutation[K]> = M['needsVariables'] extends true ? [K, M['variables'], GraphqlComposableOptions?] : [K, (M['variables'] | null)?, GraphqlComposableOptions?];
12
+ export type GetQueryResult<K extends keyof Query, Q extends Query[K] = Query[K]> = Q['response'];
13
+ export type GetMutationResult<K extends keyof Mutation, M extends Mutation[K] = Mutation[K]> = M['response'];
14
+ export type QueryObjectArgs<K extends keyof Query, Q extends Query[K] = Query[K]> = Q['needsVariables'] extends true ? {
15
+ name: K;
16
+ fetchOptions?: FetchOptions;
17
+ graphqlCaching?: RequestCacheOptions;
18
+ clientContext?: Partial<GraphqlClientContext>;
19
+ variables: Q['variables'];
20
+ } : {
21
+ name: K;
22
+ variables?: Q['variables'] | null;
23
+ fetchOptions?: FetchOptions;
24
+ graphqlCaching?: RequestCacheOptions;
25
+ clientContext?: Partial<GraphqlClientContext>;
26
+ };
27
+ export type MutationObjectArgs<K extends keyof Mutation, M extends Mutation[K] = Mutation[K]> = M['needsVariables'] extends true ? {
28
+ name: K;
29
+ variables: M['variables'];
30
+ fetchOptions?: FetchOptions;
31
+ clientContext?: Partial<GraphqlClientContext>;
32
+ } : {
33
+ name: K;
34
+ variables?: M['variables'] | null;
35
+ fetchOptions?: FetchOptions;
36
+ clientContext?: Partial<GraphqlClientContext>;
37
+ };
38
+ export type PickFrom<T, K extends Array<string>> = T extends Array<any> ? T : T extends Record<string, any> ? keyof T extends K[number] ? T : K[number] extends never ? T : Pick<T, K[number]> : T;
39
+ export type KeysOf<T> = Array<T extends T ? (keyof T extends string ? keyof T : never) : never>;
40
+ export declare function encodeContext(context: Record<string, string | null | undefined>): Record<string, string>;
@@ -0,0 +1,12 @@
1
+ import { CLIENT_CONTEXT_PREFIX } from "../settings/index.js";
2
+ export function encodeContext(context) {
3
+ return Object.entries(context).reduce(
4
+ (acc, [key, value]) => {
5
+ if (typeof value === "string") {
6
+ acc[CLIENT_CONTEXT_PREFIX + key] = value;
7
+ }
8
+ return acc;
9
+ },
10
+ {}
11
+ );
12
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<any>>;
2
+ export default _default;
@@ -0,0 +1,18 @@
1
+ import { defineEventHandler, readBody } from "h3";
2
+ import { doGraphqlRequest } from "../utils/doGraphqlRequest.js";
3
+ export default defineEventHandler(async (event) => {
4
+ const body = await readBody(event);
5
+ const { document, variables, operationName } = body || {};
6
+ if (!document || typeof document !== "string") {
7
+ return { data: null, errors: [{ message: "Missing or invalid document" }] };
8
+ }
9
+ return doGraphqlRequest(
10
+ {
11
+ query: document,
12
+ variables: variables || {},
13
+ operationName: operationName || void 0
14
+ },
15
+ null,
16
+ event
17
+ );
18
+ });
@@ -93,6 +93,6 @@ export function onServerError(serverOptions, event, error, operation, operationN
93
93
  throw createError({
94
94
  statusCode: 500,
95
95
  statusMessage: "Couldn't execute GraphQL query: " + message,
96
- data: error && "message" in error ? error.message : error
96
+ data: error.response?._data
97
97
  });
98
98
  }
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,63 @@
1
+ import { defineMcpHandler } from "#imports";
2
+ import {
3
+ mcpServerRoute,
4
+ includeComposables
5
+ } from "#nuxt-graphql-middleware/mcp";
6
+ import { listOperationsTool } from "./tools/operations-list/index.js";
7
+ import { getOperationTool } from "./tools/operations-get/index.js";
8
+ import { getOperationSourceTool } from "./tools/operations-get-source/index.js";
9
+ import { getFieldUsageTool } from "./tools/operations-get-field-usage/index.js";
10
+ import { executeOperationTool } from "./tools/operations-execute/index.js";
11
+ import { listFragmentsTool } from "./tools/fragments-list/index.js";
12
+ import { getFragmentTool } from "./tools/fragments-get/index.js";
13
+ import { getFragmentSourceTool } from "./tools/fragments-get-source/index.js";
14
+ import { getFragmentsForTypeTool } from "./tools/fragments-list-for-type/index.js";
15
+ import { getSchemaTypeTool } from "./tools/schema-get-type/index.js";
16
+ import { getSchemaTypeDefinitionTool } from "./tools/schema-get-type-definition/index.js";
17
+ import { listSchemaTypesTool } from "./tools/schema-list-types/index.js";
18
+ import { getTypesImplementingInterfaceTool } from "./tools/schema-get-interface-implementors/index.js";
19
+ import { getUnionMembersTool } from "./tools/schema-get-union-members/index.js";
20
+ import { getTypeUsageTool } from "./tools/schema-get-type-usage/index.js";
21
+ import { validateDocumentTool } from "./tools/schema-validate-document/index.js";
22
+ import { executeGraphqlTool } from "./tools/graphql-execute/index.js";
23
+ import { vueGraphqlComposableExampleTool } from "./tools/vue-graphql-composable-example/index.js";
24
+ import { nitroGraphqlServerUtilsExampleTool } from "./tools/nitro-graphql-server-utils-example/index.js";
25
+ import { moduleGetConfigTool } from "./tools/module-get-config/index.js";
26
+ import docsResource from "./resources/docs.js";
27
+ const tools = [
28
+ // Operation tools.
29
+ listOperationsTool,
30
+ getOperationTool,
31
+ getOperationSourceTool,
32
+ getFieldUsageTool,
33
+ // Fragment tools.
34
+ listFragmentsTool,
35
+ getFragmentTool,
36
+ getFragmentSourceTool,
37
+ getFragmentsForTypeTool,
38
+ // Schema tools.
39
+ getSchemaTypeTool,
40
+ getSchemaTypeDefinitionTool,
41
+ listSchemaTypesTool,
42
+ getTypesImplementingInterfaceTool,
43
+ getUnionMembersTool,
44
+ getTypeUsageTool,
45
+ validateDocumentTool,
46
+ // Execution tools.
47
+ executeGraphqlTool,
48
+ executeOperationTool,
49
+ // Module tools.
50
+ moduleGetConfigTool
51
+ ];
52
+ if (includeComposables) {
53
+ tools.push(vueGraphqlComposableExampleTool);
54
+ tools.push(nitroGraphqlServerUtilsExampleTool);
55
+ }
56
+ export default defineMcpHandler({
57
+ name: "nuxt-graphql-middleware",
58
+ version: "1.0.0",
59
+ route: mcpServerRoute,
60
+ tools,
61
+ resources: [docsResource],
62
+ browserRedirect: "/"
63
+ });
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,36 @@
1
+ import { defineMcpResource } from "#imports";
2
+ import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
3
+ import { docs } from "#nuxt-graphql-middleware/mcp";
4
+ export default defineMcpResource({
5
+ name: "docs",
6
+ title: "Documentation",
7
+ description: "Documentation for nuxt-graphql-middleware composables and utilities.",
8
+ uri: new ResourceTemplate("docs://{+path}", {
9
+ list: async () => {
10
+ return {
11
+ resources: docs.map((doc) => ({
12
+ uri: doc.uri,
13
+ name: doc.name,
14
+ title: doc.name,
15
+ mimeType: "text/markdown",
16
+ description: doc.description
17
+ }))
18
+ };
19
+ }
20
+ }),
21
+ metadata: { mimeType: "text/markdown" },
22
+ handler: async (uri, variables) => {
23
+ const path = variables.path;
24
+ const doc = docs.find((d) => d.uri === `docs://${path}`);
25
+ const content = doc?.content || `Documentation not found for: ${path}`;
26
+ return {
27
+ contents: [
28
+ {
29
+ uri: uri.toString(),
30
+ mimeType: "text/markdown",
31
+ text: content
32
+ }
33
+ ]
34
+ };
35
+ }
36
+ });
@@ -0,0 +1 @@
1
+ export declare const getFragmentTool: any;
@@ -0,0 +1,35 @@
1
+ import { z } from "zod";
2
+ import { defineMcpTool } from "#imports";
3
+ import { fetchFromMcpHandler, structuredResult } from "./../../utils/index.js";
4
+ import { getFragmentOutputSchema } from "./types.js";
5
+ export const getFragmentTool = defineMcpTool({
6
+ name: "fragments-get",
7
+ title: "Get Fragment",
8
+ description: "Get detailed information about a specific GraphQL fragment. Returns the fragment name, the type it is defined on, file path, and dependencies on other fragments. Use fragments-get-source to get the GraphQL source code.",
9
+ annotations: {
10
+ readOnlyHint: true,
11
+ destructiveHint: false,
12
+ idempotentHint: true,
13
+ openWorldHint: false
14
+ },
15
+ inputSchema: {
16
+ fragmentName: z.string().describe("The name of the GraphQL fragment to get details for")
17
+ },
18
+ outputSchema: getFragmentOutputSchema,
19
+ handler: async ({ fragmentName }) => {
20
+ const response = await fetchFromMcpHandler(
21
+ "fragments-get",
22
+ { name: fragmentName }
23
+ );
24
+ if (response.error) {
25
+ return structuredResult({ error: response.error });
26
+ }
27
+ const frag = response.fragment;
28
+ return structuredResult({
29
+ name: frag.name,
30
+ typeName: frag.typeName,
31
+ filePath: frag.relativeFilePath,
32
+ dependencies: frag.dependencies
33
+ });
34
+ }
35
+ });
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ export declare const GetFragmentResponseSchema: z.ZodObject<{
3
+ fragment: z.ZodNullable<z.ZodObject<{
4
+ name: z.ZodString;
5
+ typeName: z.ZodString;
6
+ filePath: z.ZodString;
7
+ relativeFilePath: z.ZodString;
8
+ source: z.ZodString;
9
+ dependencies: z.ZodArray<z.ZodString>;
10
+ }, z.core.$strip>>;
11
+ error: z.ZodOptional<z.ZodString>;
12
+ }, z.core.$strip>;
13
+ export declare const getFragmentOutputSchema: {
14
+ name: z.ZodOptional<z.ZodString>;
15
+ typeName: z.ZodOptional<z.ZodString>;
16
+ filePath: z.ZodOptional<z.ZodString>;
17
+ dependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
18
+ error: z.ZodOptional<z.ZodString>;
19
+ };
20
+ export type GetFragmentResponse = z.infer<typeof GetFragmentResponseSchema>;
@@ -0,0 +1,13 @@
1
+ import { z } from "zod";
2
+ import { FragmentInfoSchema } from "../fragments-list-for-type/types.js";
3
+ export const GetFragmentResponseSchema = z.object({
4
+ fragment: FragmentInfoSchema.nullable(),
5
+ error: z.string().optional().describe("Error message if fragment not found")
6
+ });
7
+ export const getFragmentOutputSchema = {
8
+ name: z.string().optional().describe("Fragment name"),
9
+ typeName: z.string().optional().describe("The GraphQL type this fragment is defined on"),
10
+ filePath: z.string().optional().describe("Path to the file containing the fragment"),
11
+ dependencies: z.array(z.string()).optional().describe("Names of other fragments this fragment depends on"),
12
+ error: z.string().optional().describe("Error message if fragment not found")
13
+ };
@@ -0,0 +1 @@
1
+ export declare const getFragmentSourceTool: any;
@@ -0,0 +1,34 @@
1
+ import { z } from "zod";
2
+ import { defineMcpTool } from "#imports";
3
+ import { fetchFromMcpHandler, structuredResult } from "./../../utils/index.js";
4
+ import {
5
+ getFragmentSourceOutputSchema
6
+ } from "./types.js";
7
+ export const getFragmentSourceTool = defineMcpTool({
8
+ name: "fragments-get-source",
9
+ title: "Get Fragment Source",
10
+ description: "Get the raw GraphQL source code of a fragment. By default returns just the fragment source. Set includeDependencies to true to include all fragment definitions this fragment depends on.",
11
+ annotations: {
12
+ readOnlyHint: true,
13
+ destructiveHint: false,
14
+ idempotentHint: true,
15
+ openWorldHint: false
16
+ },
17
+ inputSchema: {
18
+ fragmentName: z.string().describe("The name of the GraphQL fragment to get the source for"),
19
+ includeDependencies: z.boolean().optional().default(false).describe(
20
+ "If true, includes all fragment definitions this fragment depends on. Default is false."
21
+ )
22
+ },
23
+ outputSchema: getFragmentSourceOutputSchema,
24
+ handler: async ({ fragmentName, includeDependencies }) => {
25
+ const response = await fetchFromMcpHandler(
26
+ "fragments-get-source",
27
+ { name: fragmentName, includeDependencies: includeDependencies ?? false }
28
+ );
29
+ if (response.error) {
30
+ return structuredResult({ error: response.error });
31
+ }
32
+ return structuredResult({ source: response.source });
33
+ }
34
+ });
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ export declare const GetFragmentSourceResponseSchema: z.ZodObject<{
3
+ source: z.ZodNullable<z.ZodString>;
4
+ error: z.ZodOptional<z.ZodString>;
5
+ }, z.core.$strip>;
6
+ export declare const getFragmentSourceOutputSchema: {
7
+ source: z.ZodOptional<z.ZodString>;
8
+ error: z.ZodOptional<z.ZodString>;
9
+ };
10
+ export type GetFragmentSourceResponse = z.infer<typeof GetFragmentSourceResponseSchema>;
@@ -0,0 +1,9 @@
1
+ import { z } from "zod";
2
+ export const GetFragmentSourceResponseSchema = z.object({
3
+ source: z.string().nullable().describe("The GraphQL source code of the fragment"),
4
+ error: z.string().optional().describe("Error message if fragment not found")
5
+ });
6
+ export const getFragmentSourceOutputSchema = {
7
+ source: z.string().optional().describe("The GraphQL source code of the fragment"),
8
+ error: z.string().optional().describe("Error message if fragment not found")
9
+ };
@@ -0,0 +1 @@
1
+ export declare const listFragmentsTool: any;
@@ -0,0 +1,36 @@
1
+ import { z } from "zod";
2
+ import { defineMcpTool } from "#imports";
3
+ import { fetchFromMcpHandler, structuredResult } from "./../../utils/index.js";
4
+ import { listFragmentsOutputSchema } from "./types.js";
5
+ export const listFragmentsTool = defineMcpTool({
6
+ name: "fragments-list",
7
+ title: "List Fragments",
8
+ description: "List all GraphQL fragments available in the project. Returns fragment names, the types they are defined on, and file paths.",
9
+ annotations: {
10
+ readOnlyHint: true,
11
+ destructiveHint: false,
12
+ idempotentHint: true,
13
+ openWorldHint: false
14
+ },
15
+ inputSchema: {
16
+ nameFilter: z.string().optional().describe(
17
+ 'Optional filter to match fragment names. Can be a plain string for substring matching or a regex pattern (e.g., "^User" to match names starting with "User")'
18
+ )
19
+ },
20
+ outputSchema: listFragmentsOutputSchema,
21
+ handler: async ({ nameFilter }) => {
22
+ const response = await fetchFromMcpHandler(
23
+ "fragments-list",
24
+ { nameFilter }
25
+ );
26
+ const summary = response.fragments.map((frag) => ({
27
+ name: frag.name,
28
+ typeName: frag.typeName,
29
+ filePath: frag.relativeFilePath
30
+ }));
31
+ return structuredResult({
32
+ count: response.fragments.length,
33
+ fragments: summary
34
+ });
35
+ }
36
+ });
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ export declare const ListFragmentsResponseSchema: z.ZodObject<{
3
+ fragments: z.ZodArray<z.ZodObject<{
4
+ name: z.ZodString;
5
+ typeName: z.ZodString;
6
+ filePath: z.ZodString;
7
+ relativeFilePath: z.ZodString;
8
+ source: z.ZodString;
9
+ dependencies: z.ZodArray<z.ZodString>;
10
+ }, z.core.$strip>>;
11
+ }, z.core.$strip>;
12
+ export declare const listFragmentsOutputSchema: {
13
+ count: z.ZodNumber;
14
+ fragments: z.ZodArray<z.ZodObject<{
15
+ name: z.ZodString;
16
+ typeName: z.ZodString;
17
+ filePath: z.ZodString;
18
+ }, z.core.$strip>>;
19
+ };
20
+ export type ListFragmentsResponse = z.infer<typeof ListFragmentsResponseSchema>;
@@ -0,0 +1,14 @@
1
+ import { z } from "zod";
2
+ import { FragmentInfoSchema } from "../fragments-list-for-type/types.js";
3
+ export const ListFragmentsResponseSchema = z.object({
4
+ fragments: z.array(FragmentInfoSchema)
5
+ });
6
+ const FragmentSummaryMcpSchema = z.object({
7
+ name: z.string().describe("Fragment name"),
8
+ typeName: z.string().describe("The GraphQL type this fragment is defined on"),
9
+ filePath: z.string().describe("Path to the file relative to the project root")
10
+ });
11
+ export const listFragmentsOutputSchema = {
12
+ count: z.number().describe("Total number of fragments"),
13
+ fragments: z.array(FragmentSummaryMcpSchema).describe("List of all fragments")
14
+ };
@@ -0,0 +1 @@
1
+ export declare const getFragmentsForTypeTool: any;