polen 0.10.0 → 0.11.0-next.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/api/api.d.ts +1 -0
- package/build/api/api.d.ts.map +1 -1
- package/build/api/api.js +1 -0
- package/build/api/api.js.map +1 -1
- package/build/api/config/configurator.d.ts +55 -26
- package/build/api/config/configurator.d.ts.map +1 -1
- package/build/api/config/configurator.js +27 -9
- package/build/api/config/configurator.js.map +1 -1
- package/build/api/config/merge.d.ts.map +1 -1
- package/build/api/config/merge.js +0 -11
- package/build/api/config/merge.js.map +1 -1
- package/build/api/content/metadata.d.ts +8 -2
- package/build/api/content/metadata.d.ts.map +1 -1
- package/build/api/content/metadata.js +1 -1
- package/build/api/content/metadata.js.map +1 -1
- package/build/api/schema/data-sources/data-sources.d.ts +1 -0
- package/build/api/schema/data-sources/data-sources.d.ts.map +1 -1
- package/build/api/schema/data-sources/data-sources.js +1 -0
- package/build/api/schema/data-sources/data-sources.js.map +1 -1
- package/build/api/schema/data-sources/introspection/introspection.d.ts +83 -0
- package/build/api/schema/data-sources/introspection/introspection.d.ts.map +1 -0
- package/build/api/schema/data-sources/introspection/introspection.js +110 -0
- package/build/api/schema/data-sources/introspection/introspection.js.map +1 -0
- package/build/api/schema/data-sources/memory/memory.d.ts +2 -2
- package/build/api/schema/data-sources/memory/memory.d.ts.map +1 -1
- package/build/api/schema/data-sources/memory/memory.js +1 -3
- package/build/api/schema/data-sources/memory/memory.js.map +1 -1
- package/build/api/schema/data-sources/schema-directory/file-name-expression/file-name-expression.d.ts +7 -3
- package/build/api/schema/data-sources/schema-directory/file-name-expression/file-name-expression.d.ts.map +1 -1
- package/build/api/schema/data-sources/schema-directory/file-name-expression/file-name-expression.js +15 -11
- package/build/api/schema/data-sources/schema-directory/file-name-expression/file-name-expression.js.map +1 -1
- package/build/api/schema/data-sources/schema-directory/schema-directory.d.ts +16 -7
- package/build/api/schema/data-sources/schema-directory/schema-directory.d.ts.map +1 -1
- package/build/api/schema/data-sources/schema-directory/schema-directory.js +26 -7
- package/build/api/schema/data-sources/schema-directory/schema-directory.js.map +1 -1
- package/build/api/schema/data-sources/schema-file/schema-file.d.ts +7 -2
- package/build/api/schema/data-sources/schema-file/schema-file.d.ts.map +1 -1
- package/build/api/schema/data-sources/schema-file/schema-file.js +13 -5
- package/build/api/schema/data-sources/schema-file/schema-file.js.map +1 -1
- package/build/api/schema/metadata.d.ts +16 -0
- package/build/api/schema/metadata.d.ts.map +1 -0
- package/build/api/schema/metadata.js +19 -0
- package/build/api/schema/metadata.js.map +1 -0
- package/build/api/schema/read.d.ts +85 -11
- package/build/api/schema/read.d.ts.map +1 -1
- package/build/api/schema/read.js +15 -6
- package/build/api/schema/read.js.map +1 -1
- package/build/api/schema/schema.d.ts +33 -2
- package/build/api/schema/schema.d.ts.map +1 -1
- package/build/api/schema/schema.js +42 -0
- package/build/api/schema/schema.js.map +1 -1
- package/build/api/schema-source/index.d.ts +2 -0
- package/build/api/schema-source/index.d.ts.map +1 -0
- package/build/api/schema-source/index.js +2 -0
- package/build/api/schema-source/index.js.map +1 -0
- package/build/api/schema-source/schema-source.d.ts +33 -0
- package/build/api/schema-source/schema-source.d.ts.map +1 -0
- package/build/api/schema-source/schema-source.js +137 -0
- package/build/api/schema-source/schema-source.js.map +1 -0
- package/build/api/static/manifest.d.ts +1 -2
- package/build/api/static/manifest.d.ts.map +1 -1
- package/build/api/static/manifest.js +1 -1
- package/build/api/static/manifest.js.map +1 -1
- package/build/api/vite/plugins/build.d.ts.map +1 -1
- package/build/api/vite/plugins/build.js +3 -0
- package/build/api/vite/plugins/build.js.map +1 -1
- package/build/api/vite/plugins/core.d.ts +1 -0
- package/build/api/vite/plugins/core.d.ts.map +1 -1
- package/build/api/vite/plugins/core.js +25 -22
- package/build/api/vite/plugins/core.js.map +1 -1
- package/build/api/vite/plugins/main.d.ts.map +1 -1
- package/build/api/vite/plugins/main.js +1 -8
- package/build/api/vite/plugins/main.js.map +1 -1
- package/build/api/vite/plugins/schema-assets.d.ts +22 -0
- package/build/api/vite/plugins/schema-assets.d.ts.map +1 -0
- package/build/api/vite/plugins/schema-assets.js +310 -0
- package/build/api/vite/plugins/schema-assets.js.map +1 -0
- package/build/api/vite/plugins/serve.d.ts.map +1 -1
- package/build/api/vite/plugins/serve.js +11 -0
- package/build/api/vite/plugins/serve.js.map +1 -1
- package/build/cli/commands/open.js +1 -1
- package/build/cli/commands/open.js.map +1 -1
- package/build/lib/grafaid/schema/schema.d.ts +1 -1
- package/build/lib/grafaid/schema/schema.d.ts.map +1 -1
- package/build/lib/grafaid/schema/schema.js +1 -1
- package/build/lib/grafaid/schema/schema.js.map +1 -1
- package/build/lib/graphql-change/change-groups.d.ts +2 -0
- package/build/lib/graphql-change/change-groups.d.ts.map +1 -1
- package/build/lib/graphql-change/change-groups.js +54 -0
- package/build/lib/graphql-change/change-groups.js.map +1 -1
- package/build/lib/kit-temp.d.ts +9 -0
- package/build/lib/kit-temp.d.ts.map +1 -1
- package/build/lib/kit-temp.js +14 -2
- package/build/lib/kit-temp.js.map +1 -1
- package/build/lib/path-map/path-map.d.ts.map +1 -1
- package/build/lib/path-map/path-map.js +3 -1
- package/build/lib/path-map/path-map.js.map +1 -1
- package/build/lib/react-router-aid/react-router-aid.d.ts +5 -3
- package/build/lib/react-router-aid/react-router-aid.d.ts.map +1 -1
- package/build/lib/react-router-aid/react-router-aid.js +7 -4
- package/build/lib/react-router-aid/react-router-aid.js.map +1 -1
- package/build/project-data.d.ts +3 -11
- package/build/project-data.d.ts.map +1 -1
- package/build/template/components/Changelog.d.ts +3 -3
- package/build/template/components/Changelog.d.ts.map +1 -1
- package/build/template/components/Changelog.js +8 -84
- package/build/template/components/Changelog.js.map +1 -1
- package/build/template/components/CodeBlock.d.ts +2 -0
- package/build/template/components/CodeBlock.d.ts.map +1 -1
- package/build/template/components/CodeBlock.js +1 -4
- package/build/template/components/CodeBlock.js.map +1 -1
- package/build/template/components/ComponentDispatch.d.ts +34 -0
- package/build/template/components/ComponentDispatch.d.ts.map +1 -0
- package/build/template/components/ComponentDispatch.js +33 -0
- package/build/template/components/ComponentDispatch.js.map +1 -0
- package/build/template/components/ReferenceLink.d.ts +19 -0
- package/build/template/components/ReferenceLink.d.ts.map +1 -0
- package/build/template/components/ReferenceLink.js +19 -0
- package/build/template/components/ReferenceLink.js.map +1 -0
- package/build/template/components/TypeAnnotation.d.ts.map +1 -1
- package/build/template/components/TypeAnnotation.js +3 -3
- package/build/template/components/TypeAnnotation.js.map +1 -1
- package/build/template/components/TypeFieldsLinkList.d.ts.map +1 -1
- package/build/template/components/TypeFieldsLinkList.js +4 -4
- package/build/template/components/TypeFieldsLinkList.js.map +1 -1
- package/build/template/components/TypeIndex.js +2 -2
- package/build/template/components/TypeIndex.js.map +1 -1
- package/build/template/components/VersionSelector.d.ts +7 -0
- package/build/template/components/VersionSelector.d.ts.map +1 -0
- package/build/template/components/VersionSelector.js +30 -0
- package/build/template/components/VersionSelector.js.map +1 -0
- package/build/template/components/graphql/type-link.d.ts.map +1 -1
- package/build/template/components/graphql/type-link.js +2 -2
- package/build/template/components/graphql/type-link.js.map +1 -1
- package/build/template/hooks/useVersionPath.d.ts +6 -0
- package/build/template/hooks/useVersionPath.d.ts.map +1 -0
- package/build/template/hooks/useVersionPath.js +10 -0
- package/build/template/hooks/useVersionPath.js.map +1 -0
- package/build/template/layouts/ChangelogLayout.d.ts.map +1 -0
- package/build/template/{components → layouts}/ChangelogLayout.js +1 -1
- package/build/template/layouts/ChangelogLayout.js.map +1 -0
- package/build/template/layouts/index.d.ts +1 -0
- package/build/template/layouts/index.d.ts.map +1 -1
- package/build/template/layouts/index.js +1 -0
- package/build/template/layouts/index.js.map +1 -1
- package/build/template/lib/fetch-text.d.ts +8 -0
- package/build/template/lib/fetch-text.d.ts.map +1 -0
- package/build/template/lib/fetch-text.js +14 -0
- package/build/template/lib/fetch-text.js.map +1 -0
- package/build/template/lib/polen-url.d.ts +14 -0
- package/build/template/lib/polen-url.d.ts.map +1 -1
- package/build/template/lib/polen-url.js +16 -0
- package/build/template/lib/polen-url.js.map +1 -1
- package/build/template/lib/schema-utils/constants.d.ts +5 -0
- package/build/template/lib/schema-utils/constants.d.ts.map +1 -0
- package/build/template/lib/schema-utils/constants.js +5 -0
- package/build/template/lib/schema-utils/constants.js.map +1 -0
- package/build/template/lib/schema-utils/schema-utils.d.ts +15 -0
- package/build/template/lib/schema-utils/schema-utils.d.ts.map +1 -0
- package/build/template/lib/schema-utils/schema-utils.js +37 -0
- package/build/template/lib/schema-utils/schema-utils.js.map +1 -0
- package/build/template/routes/changelog.d.ts +4 -3
- package/build/template/routes/changelog.d.ts.map +1 -1
- package/build/template/routes/changelog.js +15 -9
- package/build/template/routes/changelog.js.map +1 -1
- package/build/template/routes/index.js +2 -2
- package/build/template/routes/index.js.map +1 -1
- package/build/template/routes/pages.d.ts +10 -0
- package/build/template/routes/pages.d.ts.map +1 -0
- package/build/template/routes/pages.js +76 -0
- package/build/template/routes/pages.js.map +1 -0
- package/build/template/routes/reference.d.ts +35 -6
- package/build/template/routes/reference.d.ts.map +1 -1
- package/build/template/routes/reference.js +97 -14
- package/build/template/routes/reference.js.map +1 -1
- package/build/template/routes/root.d.ts.map +1 -1
- package/build/template/routes/root.js +11 -75
- package/build/template/routes/root.js.map +1 -1
- package/build/template/server/app.d.ts +22 -1
- package/build/template/server/app.d.ts.map +1 -1
- package/build/template/server/app.js +19 -9
- package/build/template/server/app.js.map +1 -1
- package/build/template/server/main.js +9 -1
- package/build/template/server/main.js.map +1 -1
- package/build/template/server/ssg/generate.js +2 -2
- package/build/template/server/ssg/generate.js.map +1 -1
- package/build/template/server/ssg/get-route-paths.d.ts +1 -1
- package/build/template/server/ssg/get-route-paths.d.ts.map +1 -1
- package/build/template/server/ssg/get-route-paths.js +90 -27
- package/build/template/server/ssg/get-route-paths.js.map +1 -1
- package/build/template/sources/schema-source.d.ts +15 -0
- package/build/template/sources/schema-source.d.ts.map +1 -0
- package/build/template/sources/schema-source.js +64 -0
- package/build/template/sources/schema-source.js.map +1 -0
- package/package.json +16 -17
- package/src/api/api.ts +1 -0
- package/src/api/config/configurator.ts +86 -36
- package/src/api/config/merge.ts +0 -16
- package/src/api/content/metadata.ts +1 -1
- package/src/api/schema/data-sources/data-sources.ts +1 -0
- package/src/api/schema/data-sources/introspection/introspection.ts +213 -0
- package/src/api/schema/data-sources/memory/memory.ts +3 -5
- package/src/api/schema/data-sources/schema-directory/file-name-expression/file-name-expression.ts +29 -13
- package/src/api/schema/data-sources/schema-directory/schema-directory.ts +56 -16
- package/src/api/schema/data-sources/schema-file/schema-file.ts +16 -7
- package/src/api/schema/metadata.ts +23 -0
- package/src/api/schema/read.ts +109 -18
- package/src/api/schema/schema.ts +62 -2
- package/src/api/schema-source/index.ts +1 -0
- package/src/api/schema-source/schema-source.ts +189 -0
- package/src/api/static/manifest.ts +1 -1
- package/src/api/vite/plugins/build.ts +3 -0
- package/src/api/vite/plugins/core.ts +27 -22
- package/src/api/vite/plugins/main.ts +1 -9
- package/src/api/vite/plugins/schema-assets.ts +364 -0
- package/src/api/vite/plugins/serve.ts +15 -8
- package/src/cli/commands/open.ts +1 -1
- package/src/lib/grafaid/schema/schema.ts +1 -0
- package/src/lib/graphql-change/change-groups.ts +57 -0
- package/src/lib/kit-temp.ts +15 -2
- package/src/lib/mask/$.test.ts +3 -3
- package/src/lib/path-map/$.test.ts +22 -19
- package/src/lib/path-map/path-map.ts +3 -1
- package/src/lib/react-router-aid/react-router-aid.ts +12 -6
- package/src/project-data.ts +3 -11
- package/src/template/components/Changelog.tsx +16 -67
- package/src/template/components/CodeBlock.tsx +3 -5
- package/src/template/components/ComponentDispatch.tsx +42 -0
- package/src/template/components/ReferenceLink.tsx +34 -0
- package/src/template/components/TypeAnnotation.tsx +5 -7
- package/src/template/components/TypeFieldsLinkList.tsx +20 -23
- package/src/template/components/TypeIndex.tsx +10 -12
- package/src/template/components/VersionSelector.tsx +50 -0
- package/src/template/components/graphql/type-link.tsx +4 -3
- package/src/template/hooks/useVersionPath.ts +10 -0
- package/src/template/{components → layouts}/ChangelogLayout.tsx +1 -1
- package/src/template/layouts/index.ts +1 -0
- package/src/template/lib/fetch-text.ts +13 -0
- package/src/template/lib/polen-url.ts +20 -0
- package/src/template/lib/schema-utils/constants.ts +4 -0
- package/src/template/lib/schema-utils/schema-utils.ts +42 -0
- package/src/template/routes/changelog.tsx +19 -10
- package/src/template/routes/index.tsx +2 -2
- package/src/template/routes/pages.tsx +109 -0
- package/src/template/routes/reference.tsx +112 -12
- package/src/template/routes/root.tsx +11 -112
- package/src/template/server/app.ts +47 -14
- package/src/template/server/main.ts +9 -1
- package/src/template/server/ssg/generate.ts +2 -2
- package/src/template/server/ssg/get-route-paths.test.ts +132 -0
- package/src/template/server/ssg/get-route-paths.ts +91 -27
- package/src/template/sources/schema-source.ts +69 -0
- package/build/lib/graphql-document/$$.d.ts +0 -5
- package/build/lib/graphql-document/$$.d.ts.map +0 -1
- package/build/lib/graphql-document/$$.js +0 -5
- package/build/lib/graphql-document/$$.js.map +0 -1
- package/build/lib/graphql-document/$.d.ts +0 -2
- package/build/lib/graphql-document/$.d.ts.map +0 -1
- package/build/lib/graphql-document/$.js +0 -2
- package/build/lib/graphql-document/$.js.map +0 -1
- package/build/lib/graphql-document/analysis.d.ts +0 -44
- package/build/lib/graphql-document/analysis.d.ts.map +0 -1
- package/build/lib/graphql-document/analysis.js +0 -361
- package/build/lib/graphql-document/analysis.js.map +0 -1
- package/build/lib/graphql-document/components/GraphQLDocument.d.ts +0 -38
- package/build/lib/graphql-document/components/GraphQLDocument.d.ts.map +0 -1
- package/build/lib/graphql-document/components/GraphQLDocument.js +0 -151
- package/build/lib/graphql-document/components/GraphQLDocument.js.map +0 -1
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.d.ts +0 -7
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.d.ts.map +0 -1
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.js +0 -27
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.js.map +0 -1
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.d.ts +0 -33
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.d.ts.map +0 -1
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.js +0 -50
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.js.map +0 -1
- package/build/lib/graphql-document/components/IdentifierLink.d.ts +0 -39
- package/build/lib/graphql-document/components/IdentifierLink.d.ts.map +0 -1
- package/build/lib/graphql-document/components/IdentifierLink.js +0 -75
- package/build/lib/graphql-document/components/IdentifierLink.js.map +0 -1
- package/build/lib/graphql-document/components/graphql-document-styles.d.ts +0 -5
- package/build/lib/graphql-document/components/graphql-document-styles.d.ts.map +0 -1
- package/build/lib/graphql-document/components/graphql-document-styles.js +0 -144
- package/build/lib/graphql-document/components/graphql-document-styles.js.map +0 -1
- package/build/lib/graphql-document/components/index.d.ts +0 -5
- package/build/lib/graphql-document/components/index.d.ts.map +0 -1
- package/build/lib/graphql-document/components/index.js +0 -5
- package/build/lib/graphql-document/components/index.js.map +0 -1
- package/build/lib/graphql-document/example.d.ts +0 -25
- package/build/lib/graphql-document/example.d.ts.map +0 -1
- package/build/lib/graphql-document/example.js +0 -140
- package/build/lib/graphql-document/example.js.map +0 -1
- package/build/lib/graphql-document/graphql-document.d.ts +0 -35
- package/build/lib/graphql-document/graphql-document.d.ts.map +0 -1
- package/build/lib/graphql-document/graphql-document.js +0 -36
- package/build/lib/graphql-document/graphql-document.js.map +0 -1
- package/build/lib/graphql-document/hooks/use-tooltip-state.d.ts +0 -43
- package/build/lib/graphql-document/hooks/use-tooltip-state.d.ts.map +0 -1
- package/build/lib/graphql-document/hooks/use-tooltip-state.js +0 -132
- package/build/lib/graphql-document/hooks/use-tooltip-state.js.map +0 -1
- package/build/lib/graphql-document/positioning-simple.d.ts +0 -63
- package/build/lib/graphql-document/positioning-simple.d.ts.map +0 -1
- package/build/lib/graphql-document/positioning-simple.js +0 -185
- package/build/lib/graphql-document/positioning-simple.js.map +0 -1
- package/build/lib/graphql-document/schema-context.d.ts +0 -8
- package/build/lib/graphql-document/schema-context.d.ts.map +0 -1
- package/build/lib/graphql-document/schema-context.js +0 -11
- package/build/lib/graphql-document/schema-context.js.map +0 -1
- package/build/lib/graphql-document/schema-integration.d.ts +0 -135
- package/build/lib/graphql-document/schema-integration.d.ts.map +0 -1
- package/build/lib/graphql-document/schema-integration.js +0 -328
- package/build/lib/graphql-document/schema-integration.js.map +0 -1
- package/build/lib/graphql-document/types.d.ts +0 -117
- package/build/lib/graphql-document/types.d.ts.map +0 -1
- package/build/lib/graphql-document/types.js +0 -2
- package/build/lib/graphql-document/types.js.map +0 -1
- package/build/template/components/ChangelogLayout.d.ts.map +0 -1
- package/build/template/components/ChangelogLayout.js.map +0 -1
- package/build/template/components/CodeHikePre.d.ts +0 -16
- package/build/template/components/CodeHikePre.d.ts.map +0 -1
- package/build/template/components/CodeHikePre.js +0 -37
- package/build/template/components/CodeHikePre.js.map +0 -1
- package/build/template/routes/reference.$type.$field.d.ts +0 -5
- package/build/template/routes/reference.$type.$field.d.ts.map +0 -1
- package/build/template/routes/reference.$type.$field.js +0 -31
- package/build/template/routes/reference.$type.$field.js.map +0 -1
- package/build/template/routes/reference.$type.d.ts +0 -5
- package/build/template/routes/reference.$type.d.ts.map +0 -1
- package/build/template/routes/reference.$type.js +0 -23
- package/build/template/routes/reference.$type.js.map +0 -1
- package/src/lib/graphql-document/$$.ts +0 -4
- package/src/lib/graphql-document/$.test.ts +0 -132
- package/src/lib/graphql-document/$.ts +0 -1
- package/src/lib/graphql-document/README.md +0 -102
- package/src/lib/graphql-document/analysis.ts +0 -415
- package/src/lib/graphql-document/components/GraphQLDocument.tsx +0 -265
- package/src/lib/graphql-document/components/GraphQLDocument.unit.test.ts +0 -188
- package/src/lib/graphql-document/components/GraphQLDocumentWithSchema.tsx +0 -46
- package/src/lib/graphql-document/components/GraphQLIdentifierPopover.tsx +0 -199
- package/src/lib/graphql-document/components/IdentifierLink.tsx +0 -160
- package/src/lib/graphql-document/components/graphql-document-styles.ts +0 -144
- package/src/lib/graphql-document/components/index.ts +0 -4
- package/src/lib/graphql-document/demo.md +0 -155
- package/src/lib/graphql-document/example.ts +0 -163
- package/src/lib/graphql-document/graphql-document.ts +0 -37
- package/src/lib/graphql-document/hooks/use-tooltip-state.test.ts +0 -76
- package/src/lib/graphql-document/hooks/use-tooltip-state.ts +0 -191
- package/src/lib/graphql-document/positioning-simple.test.ts +0 -248
- package/src/lib/graphql-document/positioning-simple.ts +0 -260
- package/src/lib/graphql-document/schema-context.tsx +0 -20
- package/src/lib/graphql-document/schema-integration.test.ts +0 -365
- package/src/lib/graphql-document/schema-integration.ts +0 -488
- package/src/lib/graphql-document/types.ts +0 -129
- package/src/template/components/CodeHikePre.tsx +0 -51
- package/src/template/routes/reference.$type.$field.tsx +0 -34
- package/src/template/routes/reference.$type.tsx +0 -27
- /package/build/template/{components → layouts}/ChangelogLayout.d.ts +0 -0
@@ -1,361 +0,0 @@
|
|
1
|
-
import { parse, validate, visit, } from 'graphql';
|
2
|
-
/**
|
3
|
-
* Default GraphQL document analyzer implementation
|
4
|
-
*/
|
5
|
-
export class DefaultGraphQLAnalyzer {
|
6
|
-
/**
|
7
|
-
* Parse a GraphQL document string into an AST
|
8
|
-
*/
|
9
|
-
parse(source) {
|
10
|
-
try {
|
11
|
-
return parse(source, {
|
12
|
-
noLocation: false, // We need location info for positioning
|
13
|
-
});
|
14
|
-
}
|
15
|
-
catch (error) {
|
16
|
-
throw new Error(`Failed to parse GraphQL document: ${error instanceof Error ? error.message : `Unknown error`}`);
|
17
|
-
}
|
18
|
-
}
|
19
|
-
/**
|
20
|
-
* Validate a GraphQL document against a schema
|
21
|
-
*/
|
22
|
-
validateAgainstSchema(ast, schema) {
|
23
|
-
return [...validate(schema, ast)];
|
24
|
-
}
|
25
|
-
/**
|
26
|
-
* Extract all identifiers from a GraphQL AST
|
27
|
-
*/
|
28
|
-
extractIdentifiers(ast, config = {}) {
|
29
|
-
const identifiers = [];
|
30
|
-
const errors = [];
|
31
|
-
const schema = config.schema;
|
32
|
-
// Context tracking during traversal
|
33
|
-
let currentOperationType;
|
34
|
-
let currentOperationName;
|
35
|
-
let currentFragment;
|
36
|
-
let selectionPath = [];
|
37
|
-
let parentTypes = [];
|
38
|
-
// Helper function to create context
|
39
|
-
const createContext = () => {
|
40
|
-
return {
|
41
|
-
operationType: currentOperationType,
|
42
|
-
operationName: currentOperationName,
|
43
|
-
inFragment: currentFragment,
|
44
|
-
selectionPath: [...selectionPath],
|
45
|
-
};
|
46
|
-
};
|
47
|
-
visit(ast, {
|
48
|
-
OperationDefinition: {
|
49
|
-
enter: (node) => {
|
50
|
-
currentOperationType = node.operation;
|
51
|
-
currentOperationName = node.name?.value;
|
52
|
-
selectionPath = [];
|
53
|
-
// Set the root type based on operation type
|
54
|
-
if (schema) {
|
55
|
-
if (node.operation === `query` && schema.getQueryType()) {
|
56
|
-
parentTypes = [schema.getQueryType().name];
|
57
|
-
}
|
58
|
-
else if (node.operation === `mutation` && schema.getMutationType()) {
|
59
|
-
parentTypes = [schema.getMutationType().name];
|
60
|
-
}
|
61
|
-
else if (node.operation === `subscription` && schema.getSubscriptionType()) {
|
62
|
-
parentTypes = [schema.getSubscriptionType().name];
|
63
|
-
}
|
64
|
-
else {
|
65
|
-
parentTypes = [];
|
66
|
-
}
|
67
|
-
}
|
68
|
-
else {
|
69
|
-
// Fallback to default root type names
|
70
|
-
if (node.operation === `query`) {
|
71
|
-
parentTypes = [`Query`];
|
72
|
-
}
|
73
|
-
else if (node.operation === `mutation`) {
|
74
|
-
parentTypes = [`Mutation`];
|
75
|
-
}
|
76
|
-
else if (node.operation === `subscription`) {
|
77
|
-
parentTypes = [`Subscription`];
|
78
|
-
}
|
79
|
-
else {
|
80
|
-
parentTypes = [];
|
81
|
-
}
|
82
|
-
}
|
83
|
-
},
|
84
|
-
leave: () => {
|
85
|
-
currentOperationType = undefined;
|
86
|
-
currentOperationName = undefined;
|
87
|
-
parentTypes = [];
|
88
|
-
},
|
89
|
-
},
|
90
|
-
FragmentDefinition: {
|
91
|
-
enter: (node) => {
|
92
|
-
currentFragment = node.name.value;
|
93
|
-
selectionPath = [];
|
94
|
-
parentTypes = [node.typeCondition.name.value];
|
95
|
-
// Add fragment name as identifier
|
96
|
-
this.addIdentifier(identifiers, {
|
97
|
-
name: node.name.value,
|
98
|
-
kind: `Fragment`,
|
99
|
-
position: this.getPosition(node.name),
|
100
|
-
schemaPath: [node.name.value],
|
101
|
-
context: createContext(),
|
102
|
-
});
|
103
|
-
// Add type condition as identifier
|
104
|
-
this.addIdentifier(identifiers, {
|
105
|
-
name: node.typeCondition.name.value,
|
106
|
-
kind: `Type`,
|
107
|
-
position: this.getPosition(node.typeCondition.name),
|
108
|
-
schemaPath: [node.typeCondition.name.value],
|
109
|
-
context: createContext(),
|
110
|
-
});
|
111
|
-
},
|
112
|
-
leave: () => {
|
113
|
-
currentFragment = undefined;
|
114
|
-
parentTypes = [];
|
115
|
-
},
|
116
|
-
},
|
117
|
-
Field: {
|
118
|
-
enter: (node) => {
|
119
|
-
const fieldName = node.name.value;
|
120
|
-
const parentType = parentTypes[parentTypes.length - 1];
|
121
|
-
selectionPath.push(fieldName);
|
122
|
-
this.addIdentifier(identifiers, {
|
123
|
-
name: fieldName,
|
124
|
-
kind: `Field`,
|
125
|
-
position: this.getPosition(node.name),
|
126
|
-
parentType,
|
127
|
-
schemaPath: parentType ? [parentType, fieldName] : [fieldName],
|
128
|
-
context: createContext(),
|
129
|
-
});
|
130
|
-
// Track parent type for nested selections
|
131
|
-
// Resolve the field's return type from schema if available
|
132
|
-
let pushedType = false;
|
133
|
-
if (schema && parentType) {
|
134
|
-
const type = schema.getType(parentType);
|
135
|
-
if (type && (`getFields` in type)) {
|
136
|
-
const fields = type.getFields();
|
137
|
-
const field = fields[fieldName];
|
138
|
-
if (field) {
|
139
|
-
// Get the base type name (unwrap NonNull and List wrappers)
|
140
|
-
let fieldType = field.type;
|
141
|
-
while (fieldType.ofType) {
|
142
|
-
fieldType = fieldType.ofType;
|
143
|
-
}
|
144
|
-
if (fieldType.name) {
|
145
|
-
parentTypes.push(fieldType.name);
|
146
|
-
pushedType = true;
|
147
|
-
}
|
148
|
-
}
|
149
|
-
}
|
150
|
-
}
|
151
|
-
else if (this.isObjectField(fieldName)) {
|
152
|
-
// Fallback to inference if no schema
|
153
|
-
const inferredType = this.inferReturnType(parentType, fieldName);
|
154
|
-
parentTypes.push(inferredType);
|
155
|
-
pushedType = true;
|
156
|
-
} // Store whether we pushed a type for this field
|
157
|
-
;
|
158
|
-
node._pushedType = pushedType;
|
159
|
-
},
|
160
|
-
leave: (node) => {
|
161
|
-
selectionPath.pop();
|
162
|
-
// Remove parent type if we added one in enter
|
163
|
-
if (node._pushedType) {
|
164
|
-
parentTypes.pop();
|
165
|
-
}
|
166
|
-
},
|
167
|
-
},
|
168
|
-
Argument: {
|
169
|
-
enter: (node) => {
|
170
|
-
const argName = node.name.value;
|
171
|
-
const parentType = parentTypes[parentTypes.length - 1];
|
172
|
-
const fieldName = selectionPath[selectionPath.length - 1];
|
173
|
-
this.addIdentifier(identifiers, {
|
174
|
-
name: argName,
|
175
|
-
kind: `Argument`,
|
176
|
-
position: this.getPosition(node.name),
|
177
|
-
parentType,
|
178
|
-
schemaPath: parentType && fieldName
|
179
|
-
? [parentType, fieldName, argName]
|
180
|
-
: [argName],
|
181
|
-
context: createContext(),
|
182
|
-
});
|
183
|
-
},
|
184
|
-
},
|
185
|
-
VariableDefinition: {
|
186
|
-
enter: (node) => {
|
187
|
-
this.addIdentifier(identifiers, {
|
188
|
-
name: node.variable.name.value,
|
189
|
-
kind: `Variable`,
|
190
|
-
position: this.getPosition(node.variable.name),
|
191
|
-
schemaPath: [node.variable.name.value],
|
192
|
-
context: createContext(),
|
193
|
-
});
|
194
|
-
// Also add the type reference
|
195
|
-
const typeName = this.extractTypeName(node.type);
|
196
|
-
if (typeName) {
|
197
|
-
this.addIdentifier(identifiers, {
|
198
|
-
name: typeName,
|
199
|
-
kind: `Type`,
|
200
|
-
position: this.getTypePosition(node.type),
|
201
|
-
schemaPath: [typeName],
|
202
|
-
context: createContext(),
|
203
|
-
});
|
204
|
-
}
|
205
|
-
},
|
206
|
-
},
|
207
|
-
Directive: {
|
208
|
-
enter: (node) => {
|
209
|
-
this.addIdentifier(identifiers, {
|
210
|
-
name: node.name.value,
|
211
|
-
kind: `Directive`,
|
212
|
-
position: this.getPosition(node.name),
|
213
|
-
schemaPath: [node.name.value],
|
214
|
-
context: createContext(),
|
215
|
-
});
|
216
|
-
},
|
217
|
-
},
|
218
|
-
});
|
219
|
-
return this.createIdentifierMap(identifiers, errors);
|
220
|
-
}
|
221
|
-
/**
|
222
|
-
* Perform complete analysis of a GraphQL document
|
223
|
-
*/
|
224
|
-
analyze(source, config = {}) {
|
225
|
-
try {
|
226
|
-
const ast = this.parse(source);
|
227
|
-
const identifiers = this.extractIdentifiers(ast, config);
|
228
|
-
let validationErrors = [];
|
229
|
-
if (config.validateAgainstSchema && config.schema) {
|
230
|
-
validationErrors = this.validateAgainstSchema(ast, config.schema);
|
231
|
-
}
|
232
|
-
return {
|
233
|
-
ast,
|
234
|
-
identifiers,
|
235
|
-
isValid: validationErrors.length === 0,
|
236
|
-
errors: validationErrors,
|
237
|
-
};
|
238
|
-
}
|
239
|
-
catch (error) {
|
240
|
-
return {
|
241
|
-
ast: { kind: `Document`, definitions: [] },
|
242
|
-
identifiers: this.createIdentifierMap([], [{
|
243
|
-
message: error instanceof Error ? error.message : `Unknown parsing error`,
|
244
|
-
severity: `error`,
|
245
|
-
}]),
|
246
|
-
isValid: false,
|
247
|
-
errors: [],
|
248
|
-
};
|
249
|
-
}
|
250
|
-
}
|
251
|
-
// Private helper methods
|
252
|
-
addIdentifier(identifiers, identifier) {
|
253
|
-
identifiers.push(identifier);
|
254
|
-
}
|
255
|
-
getPosition(node) {
|
256
|
-
const loc = node.loc;
|
257
|
-
if (!loc) {
|
258
|
-
return { start: 0, end: 0, line: 1, column: 1 };
|
259
|
-
}
|
260
|
-
return {
|
261
|
-
start: loc.start,
|
262
|
-
end: loc.end,
|
263
|
-
line: loc.startToken.line,
|
264
|
-
column: loc.startToken.column,
|
265
|
-
};
|
266
|
-
}
|
267
|
-
getTypePosition(node) {
|
268
|
-
// For type nodes, we need to extract the base type name position
|
269
|
-
// This is a simplified implementation
|
270
|
-
return this.getPosition(node);
|
271
|
-
}
|
272
|
-
extractTypeName(typeNode) {
|
273
|
-
// Recursively extract the base type name from wrapped types (NonNull, List)
|
274
|
-
if (typeNode.kind === `NamedType`) {
|
275
|
-
return typeNode.name.value;
|
276
|
-
}
|
277
|
-
if (typeNode.kind === `NonNullType` || typeNode.kind === `ListType`) {
|
278
|
-
return this.extractTypeName(typeNode.type);
|
279
|
-
}
|
280
|
-
return null;
|
281
|
-
}
|
282
|
-
isObjectField(fieldName) {
|
283
|
-
// This is only used as a fallback when no schema is available
|
284
|
-
// Common patterns for object-returning fields
|
285
|
-
const objectFieldPatterns = [
|
286
|
-
`user`,
|
287
|
-
`users`,
|
288
|
-
`post`,
|
289
|
-
`posts`,
|
290
|
-
`comment`,
|
291
|
-
`comments`,
|
292
|
-
`profile`,
|
293
|
-
`settings`,
|
294
|
-
`organization`,
|
295
|
-
`project`,
|
296
|
-
`target`,
|
297
|
-
`member`,
|
298
|
-
`members`,
|
299
|
-
`node`,
|
300
|
-
`nodes`,
|
301
|
-
`edge`,
|
302
|
-
`edges`,
|
303
|
-
];
|
304
|
-
return objectFieldPatterns.some(pattern => fieldName.toLowerCase().includes(pattern));
|
305
|
-
}
|
306
|
-
inferReturnType(parentType, fieldName) {
|
307
|
-
// Simplified type inference - in real implementation would use schema
|
308
|
-
if (fieldName === `user`)
|
309
|
-
return `User`;
|
310
|
-
if (fieldName === `posts`)
|
311
|
-
return `Post`;
|
312
|
-
if (fieldName === `comments`)
|
313
|
-
return `Comment`;
|
314
|
-
return fieldName.charAt(0).toUpperCase() + fieldName.slice(1);
|
315
|
-
}
|
316
|
-
createContext(operationType, operationName, inFragment, selectionPath = []) {
|
317
|
-
return {
|
318
|
-
operationType,
|
319
|
-
operationName,
|
320
|
-
inFragment,
|
321
|
-
selectionPath: [...selectionPath],
|
322
|
-
};
|
323
|
-
}
|
324
|
-
createIdentifierMap(identifiers, errors) {
|
325
|
-
const byPosition = new Map();
|
326
|
-
const byKind = new Map();
|
327
|
-
for (const identifier of identifiers) {
|
328
|
-
// Index by position
|
329
|
-
byPosition.set(identifier.position.start, identifier);
|
330
|
-
// Group by kind
|
331
|
-
if (!byKind.has(identifier.kind)) {
|
332
|
-
byKind.set(identifier.kind, []);
|
333
|
-
}
|
334
|
-
byKind.get(identifier.kind).push(identifier);
|
335
|
-
}
|
336
|
-
return {
|
337
|
-
byPosition,
|
338
|
-
byKind,
|
339
|
-
errors,
|
340
|
-
all: identifiers,
|
341
|
-
};
|
342
|
-
}
|
343
|
-
}
|
344
|
-
/**
|
345
|
-
* Default analyzer instance
|
346
|
-
*/
|
347
|
-
export const analyzer = new DefaultGraphQLAnalyzer();
|
348
|
-
/**
|
349
|
-
* Convenience function to analyze a GraphQL document
|
350
|
-
*/
|
351
|
-
export const analyze = (source, config) => {
|
352
|
-
return analyzer.analyze(source, config);
|
353
|
-
};
|
354
|
-
/**
|
355
|
-
* Convenience function to extract identifiers from a GraphQL document
|
356
|
-
*/
|
357
|
-
export const extractIdentifiers = (source, config) => {
|
358
|
-
const ast = analyzer.parse(source);
|
359
|
-
return analyzer.extractIdentifiers(ast, config);
|
360
|
-
};
|
361
|
-
//# sourceMappingURL=analysis.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../../src/lib/graphql-document/analysis.ts"],"names":[],"mappings":"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"}
|
@@ -1,38 +0,0 @@
|
|
1
|
-
import type { React } from '#dep/react/index';
|
2
|
-
import type { GraphQLSchema } from 'graphql';
|
3
|
-
/**
|
4
|
-
* Options for the GraphQL document component
|
5
|
-
*/
|
6
|
-
export interface GraphQLDocumentOptions {
|
7
|
-
/** Whether to show debug overlays */
|
8
|
-
debug?: boolean;
|
9
|
-
/** Whether to disable interactive features */
|
10
|
-
plain?: boolean;
|
11
|
-
/** Custom navigation handler */
|
12
|
-
onNavigate?: (url: string) => void;
|
13
|
-
/** Whether to validate against schema */
|
14
|
-
validate?: boolean;
|
15
|
-
/** Custom class name for the container */
|
16
|
-
className?: string;
|
17
|
-
/** Custom render function for the code block */
|
18
|
-
renderCode?: () => React.ReactNode;
|
19
|
-
}
|
20
|
-
/**
|
21
|
-
* Props for the GraphQL document component
|
22
|
-
*/
|
23
|
-
export interface GraphQLDocumentProps {
|
24
|
-
/** The GraphQL document source code */
|
25
|
-
children: string;
|
26
|
-
/** GraphQL schema for validation and linking */
|
27
|
-
schema?: GraphQLSchema;
|
28
|
-
/** Component options */
|
29
|
-
options?: GraphQLDocumentOptions;
|
30
|
-
}
|
31
|
-
/**
|
32
|
-
* Interactive GraphQL document component
|
33
|
-
*
|
34
|
-
* Transforms static GraphQL code blocks into interactive documentation
|
35
|
-
* with hyperlinks, tooltips, and schema validation.
|
36
|
-
*/
|
37
|
-
export declare const GraphQLDocument: React.FC<GraphQLDocumentProps>;
|
38
|
-
//# sourceMappingURL=GraphQLDocument.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"GraphQLDocument.d.ts","sourceRoot":"","sources":["../../../../src/lib/graphql-document/components/GraphQLDocument.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAU5C;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,8CAA8C;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,gCAAgC;IAChC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,yCAAyC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAA;IAChB,gDAAgD;IAChD,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,wBAAwB;IACxB,OAAO,CAAC,EAAE,sBAAsB,CAAA;CACjC;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAwN1D,CAAA"}
|
@@ -1,151 +0,0 @@
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
2
|
-
import { React as ReactHooks } from '#dep/react/index';
|
3
|
-
import { useNavigate } from 'react-router';
|
4
|
-
import { analyze } from '../analysis.js';
|
5
|
-
import { useTooltipState } from '../hooks/use-tooltip-state.js';
|
6
|
-
import { createSimplePositionCalculator } from '../positioning-simple.js';
|
7
|
-
import { createPolenSchemaResolver } from '../schema-integration.js';
|
8
|
-
import { graphqlDocumentStyles } from './graphql-document-styles.js';
|
9
|
-
import { IdentifierLink } from './IdentifierLink.js';
|
10
|
-
/**
|
11
|
-
* Interactive GraphQL document component
|
12
|
-
*
|
13
|
-
* Transforms static GraphQL code blocks into interactive documentation
|
14
|
-
* with hyperlinks, tooltips, and schema validation.
|
15
|
-
*/
|
16
|
-
export const GraphQLDocument = ({ children, schema, options = {}, }) => {
|
17
|
-
const { debug = false, plain = false, onNavigate, validate = true, className = ``, renderCode, } = options;
|
18
|
-
const navigate = useNavigate();
|
19
|
-
const handleNavigate = onNavigate || ((url) => navigate(url));
|
20
|
-
// Container ref for positioning calculations
|
21
|
-
const containerRef = ReactHooks.useRef(null);
|
22
|
-
const [isReady, setIsReady] = ReactHooks.useState(false);
|
23
|
-
// Use tooltip state management
|
24
|
-
const tooltipState = useTooltipState({
|
25
|
-
showDelay: 300,
|
26
|
-
hideDelay: 200, // Increased for smoother experience
|
27
|
-
allowMultiplePins: true,
|
28
|
-
});
|
29
|
-
// Handle escape key to unpin all
|
30
|
-
ReactHooks.useEffect(() => {
|
31
|
-
const handleKeyDown = (event) => {
|
32
|
-
if (event.key === `Escape`) {
|
33
|
-
tooltipState.unpinAll();
|
34
|
-
}
|
35
|
-
};
|
36
|
-
document.addEventListener(`keydown`, handleKeyDown);
|
37
|
-
return () => {
|
38
|
-
document.removeEventListener(`keydown`, handleKeyDown);
|
39
|
-
};
|
40
|
-
}, [tooltipState]);
|
41
|
-
// Layer 1: Parse and analyze
|
42
|
-
const analysisResult = ReactHooks.useMemo(() => {
|
43
|
-
if (plain)
|
44
|
-
return null;
|
45
|
-
const result = analyze(children, { schema });
|
46
|
-
// Debug logging handled by debug prop
|
47
|
-
return result;
|
48
|
-
}, [children, plain, schema, debug]);
|
49
|
-
// Layer 2: Schema resolution
|
50
|
-
const resolver = ReactHooks.useMemo(() => {
|
51
|
-
if (!schema || plain)
|
52
|
-
return null;
|
53
|
-
return createPolenSchemaResolver(schema);
|
54
|
-
}, [schema, plain]);
|
55
|
-
const resolutions = ReactHooks.useMemo(() => {
|
56
|
-
if (!analysisResult || !resolver) {
|
57
|
-
return new Map();
|
58
|
-
}
|
59
|
-
const results = new Map();
|
60
|
-
for (const [position, identifier] of analysisResult.identifiers.byPosition) {
|
61
|
-
const resolution = resolver.resolveIdentifier(identifier);
|
62
|
-
if (resolution) {
|
63
|
-
results.set(position, resolution);
|
64
|
-
}
|
65
|
-
}
|
66
|
-
return results;
|
67
|
-
}, [analysisResult, resolver]);
|
68
|
-
// Layer 3: Position calculation
|
69
|
-
const positionCalculator = ReactHooks.useMemo(() => {
|
70
|
-
if (plain)
|
71
|
-
return null;
|
72
|
-
return createSimplePositionCalculator();
|
73
|
-
}, [plain]);
|
74
|
-
const [positions, setPositions] = ReactHooks.useState(new Map());
|
75
|
-
// Prepare code block and calculate positions after render
|
76
|
-
ReactHooks.useEffect(() => {
|
77
|
-
if (!containerRef.current || !analysisResult || !positionCalculator || plain) {
|
78
|
-
// Skip position calculation - debug handled by debug prop
|
79
|
-
return;
|
80
|
-
}
|
81
|
-
// Get the code element within the container
|
82
|
-
const codeElement = containerRef.current.querySelector(`pre.code-block code`)
|
83
|
-
|| containerRef.current.querySelector(`pre code`)
|
84
|
-
|| containerRef.current.querySelector(`code`);
|
85
|
-
if (!codeElement) {
|
86
|
-
// No code element found - skip
|
87
|
-
return;
|
88
|
-
}
|
89
|
-
// Prepare the code block (wrap identifiers)
|
90
|
-
const identifiers = Array.from(analysisResult.identifiers.byPosition.values());
|
91
|
-
// Prepare code block with identifiers
|
92
|
-
positionCalculator.prepareCodeBlock(codeElement, identifiers);
|
93
|
-
// Get positions after DOM update
|
94
|
-
requestAnimationFrame(() => {
|
95
|
-
// Pass containerRef.current as the reference element for positioning
|
96
|
-
if (containerRef.current) {
|
97
|
-
const newPositions = positionCalculator.getIdentifierPositions(codeElement, containerRef.current);
|
98
|
-
// Position calculation complete
|
99
|
-
setPositions(newPositions);
|
100
|
-
setIsReady(true);
|
101
|
-
}
|
102
|
-
});
|
103
|
-
}, [analysisResult, positionCalculator, plain]);
|
104
|
-
// Handle resize events with debouncing
|
105
|
-
ReactHooks.useEffect(() => {
|
106
|
-
if (!containerRef.current || !positionCalculator || plain)
|
107
|
-
return;
|
108
|
-
let resizeTimer;
|
109
|
-
const handleResize = () => {
|
110
|
-
clearTimeout(resizeTimer);
|
111
|
-
resizeTimer = setTimeout(() => {
|
112
|
-
const codeElement = containerRef.current?.querySelector(`pre.code-block code`)
|
113
|
-
|| containerRef.current?.querySelector(`pre code`)
|
114
|
-
|| containerRef.current?.querySelector(`code`);
|
115
|
-
if (codeElement && containerRef.current) {
|
116
|
-
const newPositions = positionCalculator.getIdentifierPositions(codeElement, containerRef.current);
|
117
|
-
setPositions(newPositions);
|
118
|
-
}
|
119
|
-
}, 100); // Debounce resize events
|
120
|
-
};
|
121
|
-
window.addEventListener(`resize`, handleResize);
|
122
|
-
return () => {
|
123
|
-
clearTimeout(resizeTimer);
|
124
|
-
window.removeEventListener(`resize`, handleResize);
|
125
|
-
};
|
126
|
-
}, [positionCalculator, plain]);
|
127
|
-
// Validation errors
|
128
|
-
const validationErrors = ReactHooks.useMemo(() => {
|
129
|
-
if (!validate || !analysisResult || !schema)
|
130
|
-
return [];
|
131
|
-
return analysisResult.errors;
|
132
|
-
}, [validate, analysisResult, schema]);
|
133
|
-
return (_jsxs(_Fragment, { children: [_jsx("style", { dangerouslySetInnerHTML: { __html: graphqlDocumentStyles } }), _jsxs("div", { ref: containerRef, className: `graphql-document ${className} ${debug ? `graphql-debug-mode` : ``} ${!isReady && !plain ? `graphql-loading` : ``}`, "data-testid": 'graphql-document', children: [renderCode
|
134
|
-
? (renderCode())
|
135
|
-
: (_jsx("pre", { className: 'code-block', children: _jsx("code", { children: children }) })), !plain && isReady && (_jsx("div", { className: 'graphql-interaction-layer', style: { pointerEvents: `none` }, children: Array.from(positions.entries()).map(([id, { position, identifier }]) => {
|
136
|
-
const startPos = identifier.position.start;
|
137
|
-
const resolution = resolutions.get(startPos);
|
138
|
-
if (!resolution)
|
139
|
-
return null;
|
140
|
-
return (_jsx(IdentifierLink, { identifier: identifier, resolution: resolution, position: position, onNavigate: handleNavigate, debug: debug, isOpen: tooltipState.isOpen(id), isPinned: tooltipState.isPinned(id), onHoverStart: () => {
|
141
|
-
tooltipState.onHoverStart(id);
|
142
|
-
}, onHoverEnd: () => {
|
143
|
-
tooltipState.onHoverEnd(id);
|
144
|
-
}, onTogglePin: () => {
|
145
|
-
tooltipState.onTogglePin(id);
|
146
|
-
}, onTooltipHover: () => {
|
147
|
-
tooltipState.onTooltipHover(id);
|
148
|
-
} }, id));
|
149
|
-
}) })), validationErrors.length > 0 && (_jsx("div", { className: 'graphql-validation-errors', children: validationErrors.map((error, index) => (_jsx("div", { className: 'graphql-error', children: error.message }, index))) }))] })] }));
|
150
|
-
};
|
151
|
-
//# sourceMappingURL=GraphQLDocument.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"GraphQLDocument.js","sourceRoot":"","sources":["../../../../src/lib/graphql-document/components/GraphQLDocument.tsx"],"names":[],"mappings":"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"}
|
@@ -1,7 +0,0 @@
|
|
1
|
-
import type { React } from '#dep/react/index';
|
2
|
-
import { type GraphQLDocumentProps } from './GraphQLDocument.js';
|
3
|
-
/**
|
4
|
-
* GraphQL Document component that uses the schema context
|
5
|
-
*/
|
6
|
-
export declare const GraphQLDocumentWithSchema: React.FC<Omit<GraphQLDocumentProps, `schema`>>;
|
7
|
-
//# sourceMappingURL=GraphQLDocumentWithSchema.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"GraphQLDocumentWithSchema.d.ts","sourceRoot":"","sources":["../../../../src/lib/graphql-document/components/GraphQLDocumentWithSchema.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAG7C,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAEjF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAqCpF,CAAA"}
|
@@ -1,27 +0,0 @@
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
-
import { useEffect, useState } from 'react';
|
3
|
-
import { useGraphQLSchema } from '../schema-context.js';
|
4
|
-
import { GraphQLDocument } from './GraphQLDocument.js';
|
5
|
-
/**
|
6
|
-
* GraphQL Document component that uses the schema context
|
7
|
-
*/
|
8
|
-
export const GraphQLDocumentWithSchema = (props) => {
|
9
|
-
const schema = useGraphQLSchema();
|
10
|
-
const [mounted, setMounted] = useState(false);
|
11
|
-
useEffect(() => {
|
12
|
-
setMounted(true);
|
13
|
-
}, []);
|
14
|
-
// Always render the same structure to avoid hydration issues
|
15
|
-
const isInteractive = mounted && schema;
|
16
|
-
if (!isInteractive) {
|
17
|
-
// Static fallback
|
18
|
-
return (_jsx("div", { className: 'graphql-document graphql-document-static', "data-testid": 'graphql-document', children: _jsx("pre", { style: {
|
19
|
-
backgroundColor: `var(--gray-a2)`,
|
20
|
-
color: `var(--gray-12)`,
|
21
|
-
padding: `var(--space-3)`,
|
22
|
-
borderRadius: `var(--radius-3)`,
|
23
|
-
}, children: _jsx("code", { className: "language-graphql", children: props.children }) }) }));
|
24
|
-
}
|
25
|
-
return (_jsx(GraphQLDocument, { ...props, schema: schema }));
|
26
|
-
};
|
27
|
-
//# sourceMappingURL=GraphQLDocumentWithSchema.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"GraphQLDocumentWithSchema.js","sourceRoot":"","sources":["../../../../src/lib/graphql-document/components/GraphQLDocumentWithSchema.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,eAAe,EAA6B,MAAM,sBAAsB,CAAA;AAEjF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAmD,CACvF,KAAK,EACL,EAAE;IACF,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;IACjC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE7C,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,6DAA6D;IAC7D,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAA;IAEvC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,kBAAkB;QAClB,OAAO,CACL,cAAK,SAAS,EAAC,0CAA0C,iBAAa,kBAAkB,YACtF,cACE,KAAK,EAAE;oBACL,eAAe,EAAE,gBAAgB;oBACjC,KAAK,EAAE,gBAAgB;oBACvB,OAAO,EAAE,gBAAgB;oBACzB,YAAY,EAAE,iBAAiB;iBAChC,YAED,eAAM,SAAS,EAAC,kBAAkB,YAAE,KAAK,CAAC,QAAQ,GAAQ,GACtD,GACF,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,KAAC,eAAe,OACV,KAAK,EACT,MAAM,EAAE,MAAM,GACd,CACH,CAAA;AACH,CAAC,CAAA"}
|