polen 0.10.0-next.11 ā 0.10.0-next.13
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/builder/builder.js +1 -1
- package/build/api/builder/builder.js.map +1 -1
- package/build/api/config/load.js +1 -1
- package/build/api/config/load.js.map +1 -1
- package/build/api/vite/plugins/build.js +1 -1
- package/build/api/vite/plugins/build.js.map +1 -1
- package/build/api/vite/plugins/core.d.ts.map +1 -1
- package/build/api/vite/plugins/core.js +0 -2
- package/build/api/vite/plugins/core.js.map +1 -1
- package/build/api/vite/plugins/pages.js +1 -1
- package/build/api/vite/plugins/pages.js.map +1 -1
- package/build/exports/components.d.ts +4 -1
- package/build/exports/components.d.ts.map +1 -1
- package/build/exports/components.js +4 -1
- package/build/exports/components.js.map +1 -1
- package/build/lib/demos/config-schema.d.ts +6 -6
- package/build/lib/github-actions/runner.js +2 -2
- package/build/lib/github-actions/runner.js.map +1 -1
- package/build/lib/graphql-document/$$.d.ts +5 -0
- package/build/lib/graphql-document/$$.d.ts.map +1 -0
- package/build/lib/graphql-document/$$.js +5 -0
- package/build/lib/graphql-document/$$.js.map +1 -0
- package/build/lib/graphql-document/$.d.ts +2 -0
- package/build/lib/graphql-document/$.d.ts.map +1 -0
- package/build/lib/graphql-document/$.js +2 -0
- package/build/lib/graphql-document/$.js.map +1 -0
- package/build/lib/graphql-document/analysis.d.ts +44 -0
- package/build/lib/graphql-document/analysis.d.ts.map +1 -0
- package/build/lib/graphql-document/analysis.js +361 -0
- package/build/lib/graphql-document/analysis.js.map +1 -0
- package/build/lib/graphql-document/components/CopyButton.d.ts +19 -0
- package/build/lib/graphql-document/components/CopyButton.d.ts.map +1 -0
- package/build/lib/graphql-document/components/CopyButton.js +43 -0
- package/build/lib/graphql-document/components/CopyButton.js.map +1 -0
- package/build/lib/graphql-document/components/GraphQLDocument.d.ts +38 -0
- package/build/lib/graphql-document/components/GraphQLDocument.d.ts.map +1 -0
- package/build/lib/graphql-document/components/GraphQLDocument.js +130 -0
- package/build/lib/graphql-document/components/GraphQLDocument.js.map +1 -0
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.d.ts +7 -0
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.d.ts.map +1 -0
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.js +45 -0
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.js.map +1 -0
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.d.ts +33 -0
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.d.ts.map +1 -0
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.js +48 -0
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.js.map +1 -0
- package/build/lib/graphql-document/components/IdentifierLink.d.ts +39 -0
- package/build/lib/graphql-document/components/IdentifierLink.d.ts.map +1 -0
- package/build/lib/graphql-document/components/IdentifierLink.js +75 -0
- package/build/lib/graphql-document/components/IdentifierLink.js.map +1 -0
- package/build/lib/graphql-document/components/graphql-document-styles.d.ts +5 -0
- package/build/lib/graphql-document/components/graphql-document-styles.d.ts.map +1 -0
- package/build/lib/graphql-document/components/graphql-document-styles.js +167 -0
- package/build/lib/graphql-document/components/graphql-document-styles.js.map +1 -0
- package/build/lib/graphql-document/components/index.d.ts +6 -0
- package/build/lib/graphql-document/components/index.d.ts.map +1 -0
- package/build/lib/graphql-document/components/index.js +6 -0
- package/build/lib/graphql-document/components/index.js.map +1 -0
- package/build/lib/graphql-document/example.d.ts +25 -0
- package/build/lib/graphql-document/example.d.ts.map +1 -0
- package/build/lib/graphql-document/example.js +140 -0
- package/build/lib/graphql-document/example.js.map +1 -0
- package/build/lib/graphql-document/graphql-document.d.ts +35 -0
- package/build/lib/graphql-document/graphql-document.d.ts.map +1 -0
- package/build/lib/graphql-document/graphql-document.js +36 -0
- package/build/lib/graphql-document/graphql-document.js.map +1 -0
- package/build/lib/graphql-document/hooks/use-tooltip-state.d.ts +43 -0
- package/build/lib/graphql-document/hooks/use-tooltip-state.d.ts.map +1 -0
- package/build/lib/graphql-document/hooks/use-tooltip-state.js +132 -0
- package/build/lib/graphql-document/hooks/use-tooltip-state.js.map +1 -0
- package/build/lib/graphql-document/positioning-simple.d.ts +68 -0
- package/build/lib/graphql-document/positioning-simple.d.ts.map +1 -0
- package/build/lib/graphql-document/positioning-simple.js +197 -0
- package/build/lib/graphql-document/positioning-simple.js.map +1 -0
- package/build/lib/graphql-document/schema-context.d.ts +8 -0
- package/build/lib/graphql-document/schema-context.d.ts.map +1 -0
- package/build/lib/graphql-document/schema-context.js +11 -0
- package/build/lib/graphql-document/schema-context.js.map +1 -0
- package/build/lib/graphql-document/schema-integration-example.d.ts +27 -0
- package/build/lib/graphql-document/schema-integration-example.d.ts.map +1 -0
- package/build/lib/graphql-document/schema-integration-example.js +297 -0
- package/build/lib/graphql-document/schema-integration-example.js.map +1 -0
- package/build/lib/graphql-document/schema-integration.d.ts +135 -0
- package/build/lib/graphql-document/schema-integration.d.ts.map +1 -0
- package/build/lib/graphql-document/schema-integration.js +328 -0
- package/build/lib/graphql-document/schema-integration.js.map +1 -0
- package/build/lib/graphql-document/types.d.ts +117 -0
- package/build/lib/graphql-document/types.d.ts.map +1 -0
- package/build/lib/graphql-document/types.js +2 -0
- package/build/lib/graphql-document/types.js.map +1 -0
- package/build/template/components/ArgumentAnnotation.js +10 -0
- package/build/template/components/ArgumentAnnotation.js.map +1 -0
- package/build/template/components/ArgumentList.js +9 -0
- package/build/template/components/ArgumentList.js.map +1 -0
- package/build/template/components/ArgumentListAnnotation.js +15 -0
- package/build/template/components/ArgumentListAnnotation.js.map +1 -0
- package/build/template/components/Changelog.js +44 -0
- package/build/template/components/Changelog.js.map +1 -0
- package/build/template/components/{CodeBlock.jsx ā CodeBlock.js} +4 -5
- package/build/template/components/{CodeBlock.jsx.map ā CodeBlock.js.map} +1 -1
- package/build/template/components/{CodeBlockEnhancer.jsx ā CodeBlockEnhancer.js} +4 -4
- package/build/template/components/CodeBlockEnhancer.js.map +1 -0
- package/build/template/components/DeprecationReason.js +9 -0
- package/build/template/components/DeprecationReason.js.map +1 -0
- package/build/template/components/Description.js +9 -0
- package/build/template/components/Description.js.map +1 -0
- package/build/template/components/Field.js +14 -0
- package/build/template/components/Field.js.map +1 -0
- package/build/template/components/{FieldList.jsx ā FieldList.js} +4 -5
- package/build/template/components/FieldList.js.map +1 -0
- package/build/template/components/{FieldListSection.jsx ā FieldListSection.js} +4 -6
- package/build/template/components/FieldListSection.js.map +1 -0
- package/build/template/components/HamburgerMenu.js +30 -0
- package/build/template/components/HamburgerMenu.js.map +1 -0
- package/build/template/components/Link.d.ts +1 -1
- package/build/template/components/{Link.jsx ā Link.js} +4 -5
- package/build/template/components/Link.js.map +1 -0
- package/build/template/components/Logo.js +20 -0
- package/build/template/components/Logo.js.map +1 -0
- package/build/template/components/MDXComponents.d.ts +11 -0
- package/build/template/components/MDXComponents.d.ts.map +1 -0
- package/build/template/components/MDXComponents.js +70 -0
- package/build/template/components/MDXComponents.js.map +1 -0
- package/build/template/components/{Markdown.jsx ā Markdown.js} +3 -2
- package/build/template/components/Markdown.js.map +1 -0
- package/build/template/components/MissingSchema.d.ts +1 -1
- package/build/template/components/MissingSchema.d.ts.map +1 -1
- package/build/template/components/MissingSchema.js +5 -0
- package/build/template/components/MissingSchema.js.map +1 -0
- package/build/template/components/NamedType.js +12 -0
- package/build/template/components/NamedType.js.map +1 -0
- package/build/template/components/NotFound.js +7 -0
- package/build/template/components/NotFound.js.map +1 -0
- package/build/template/components/{RadixLink.jsx ā RadixLink.js} +1 -1
- package/build/template/components/RadixLink.js.map +1 -0
- package/build/template/components/TestComponent.d.ts +5 -0
- package/build/template/components/TestComponent.d.ts.map +1 -0
- package/build/template/components/TestComponent.js +7 -0
- package/build/template/components/TestComponent.js.map +1 -0
- package/build/template/components/Texts/{MinorHeading.jsx ā MinorHeading.js} +4 -3
- package/build/template/components/Texts/MinorHeading.js.map +1 -0
- package/build/template/components/Texts/texts.js +1 -1
- package/build/template/components/Texts/texts.js.map +1 -1
- package/build/template/components/ThemeToggle.js +9 -0
- package/build/template/components/ThemeToggle.js.map +1 -0
- package/build/template/components/{TypeAnnotation.jsx ā TypeAnnotation.js} +8 -18
- package/build/template/components/TypeAnnotation.js.map +1 -0
- package/build/template/components/TypeFieldsLinkList.js +9 -0
- package/build/template/components/TypeFieldsLinkList.js.map +1 -0
- package/build/template/components/TypeIndex.js +17 -0
- package/build/template/components/TypeIndex.js.map +1 -0
- package/build/template/components/content/$$.d.ts +1 -0
- package/build/template/components/content/$$.d.ts.map +1 -1
- package/build/template/components/content/$$.js +1 -0
- package/build/template/components/content/$$.js.map +1 -1
- package/build/template/components/content/GraphQLDocumentWithSchema.d.ts +8 -0
- package/build/template/components/content/GraphQLDocumentWithSchema.d.ts.map +1 -0
- package/build/template/components/content/GraphQLDocumentWithSchema.js +16 -0
- package/build/template/components/content/GraphQLDocumentWithSchema.js.map +1 -0
- package/build/template/components/content/GraphQLDocumentWrapper.d.ts +7 -0
- package/build/template/components/content/GraphQLDocumentWrapper.d.ts.map +1 -0
- package/build/template/components/content/GraphQLDocumentWrapper.js +62 -0
- package/build/template/components/content/GraphQLDocumentWrapper.js.map +1 -0
- package/build/template/components/graphql/graphql.d.ts +2 -2
- package/build/template/components/graphql/graphql.js +3 -0
- package/build/template/components/graphql/graphql.js.map +1 -0
- package/build/template/components/graphql/index.d.ts +1 -1
- package/build/template/components/graphql/index.js +1 -1
- package/build/template/components/graphql/index.js.map +1 -1
- package/build/template/components/graphql/{type-kind-icon.jsx ā type-kind-icon.js} +3 -2
- package/build/template/components/graphql/type-kind-icon.js.map +1 -0
- package/build/template/components/graphql/type-link.js +11 -0
- package/build/template/components/graphql/type-link.js.map +1 -0
- package/build/template/components/sidebar/Sidebar.d.ts +1 -1
- package/build/template/components/sidebar/Sidebar.d.ts.map +1 -1
- package/build/template/components/sidebar/Sidebar.js +11 -0
- package/build/template/components/sidebar/Sidebar.js.map +1 -0
- package/build/template/components/sidebar/{SidebarItem.jsx ā SidebarItem.js} +15 -32
- package/build/template/components/sidebar/SidebarItem.js.map +1 -0
- package/build/template/components/sidebar/ToggleButton.d.ts +1 -1
- package/build/template/components/sidebar/ToggleButton.d.ts.map +1 -1
- package/build/template/components/sidebar/ToggleButton.js +5 -0
- package/build/template/components/sidebar/ToggleButton.js.map +1 -0
- package/build/template/contexts/{ThemeContext.jsx ā ThemeContext.js} +3 -4
- package/build/template/contexts/{ThemeContext.jsx.map ā ThemeContext.js.map} +1 -1
- package/build/template/entry.client.d.ts +1 -0
- package/build/template/entry.client.d.ts.map +1 -1
- package/build/template/{entry.client.jsx ā entry.client.js} +5 -6
- package/build/template/entry.client.js.map +1 -0
- package/build/template/routes/changelog.d.ts +1 -1
- package/build/template/routes/{changelog.jsx ā changelog.js} +5 -4
- package/build/template/routes/changelog.js.map +1 -0
- package/build/template/routes/{index.jsx ā index.js} +3 -2
- package/build/template/routes/index.js.map +1 -0
- package/build/template/routes/reference.$type.$field.d.ts +1 -1
- package/build/template/routes/{reference.$type.$field.jsx ā reference.$type.$field.js} +6 -5
- package/build/template/routes/reference.$type.$field.js.map +1 -0
- package/build/template/routes/reference.$type.d.ts +1 -1
- package/build/template/routes/{reference.$type.jsx ā reference.$type.js} +6 -5
- package/build/template/routes/reference.$type.js.map +1 -0
- package/build/template/routes/reference.d.ts +2 -2
- package/build/template/routes/{reference.jsx ā reference.js} +6 -7
- package/build/template/routes/reference.js.map +1 -0
- package/build/template/routes/root.d.ts +2 -2
- package/build/template/routes/root.d.ts.map +1 -1
- package/build/template/routes/{root.jsx ā root.js} +46 -88
- package/build/template/routes/root.js.map +1 -0
- package/build/template/routes.js +5 -0
- package/build/template/routes.js.map +1 -0
- package/build/template/server/app.js +1 -1
- package/build/template/server/app.js.map +1 -1
- package/build/template/server/{render-page.jsx ā render-page.js} +3 -4
- package/build/template/server/render-page.js.map +1 -0
- package/build/template/server/ssg/generate.js +1 -1
- package/build/template/server/ssg/generate.js.map +1 -1
- package/build/template/server/ssg/get-route-paths.js +1 -1
- package/build/template/server/ssg/get-route-paths.js.map +1 -1
- package/build/template/server/view.js +1 -1
- package/build/template/server/view.js.map +1 -1
- package/package.json +57 -8
- package/src/api/vite/plugins/core.ts +0 -3
- package/src/api/vite/plugins/pages.ts +1 -1
- package/src/exports/components.ts +4 -1
- package/src/lib/graphql-document/$$.ts +4 -0
- package/src/lib/graphql-document/$.test.ts +132 -0
- package/src/lib/graphql-document/$.ts +1 -0
- package/src/lib/graphql-document/README.md +102 -0
- package/src/lib/graphql-document/analysis.ts +415 -0
- package/src/lib/graphql-document/components/CopyButton.tsx +76 -0
- package/src/lib/graphql-document/components/GraphQLDocument.tsx +250 -0
- package/src/lib/graphql-document/components/GraphQLDocument.unit.test.ts +188 -0
- package/src/lib/graphql-document/components/GraphQLDocumentWithSchema.tsx +70 -0
- package/src/lib/graphql-document/components/GraphQLIdentifierPopover.tsx +197 -0
- package/src/lib/graphql-document/components/IdentifierLink.tsx +160 -0
- package/src/lib/graphql-document/components/graphql-document-styles.ts +167 -0
- package/src/lib/graphql-document/components/index.ts +5 -0
- package/src/lib/graphql-document/demo.md +155 -0
- package/src/lib/graphql-document/example.ts +163 -0
- package/src/lib/graphql-document/graphql-document.ts +37 -0
- package/src/lib/graphql-document/hooks/use-tooltip-state.test.ts +76 -0
- package/src/lib/graphql-document/hooks/use-tooltip-state.ts +191 -0
- package/src/lib/graphql-document/positioning-simple.test.ts +252 -0
- package/src/lib/graphql-document/positioning-simple.ts +271 -0
- package/src/lib/graphql-document/schema-context.tsx +20 -0
- package/src/lib/graphql-document/schema-integration-example.ts +341 -0
- package/src/lib/graphql-document/schema-integration.test.ts +365 -0
- package/src/lib/graphql-document/schema-integration.ts +497 -0
- package/src/lib/graphql-document/types.ts +129 -0
- package/src/template/components/ArgumentAnnotation.tsx +1 -1
- package/src/template/components/ArgumentList.tsx +1 -1
- package/src/template/components/ArgumentListAnnotation.tsx +2 -2
- package/src/template/components/CodeBlockEnhancer.tsx +21 -21
- package/src/template/components/DeprecationReason.tsx +1 -1
- package/src/template/components/Description.tsx +1 -1
- package/src/template/components/Field.tsx +4 -4
- package/src/template/components/FieldList.tsx +1 -1
- package/src/template/components/FieldListSection.tsx +1 -1
- package/src/template/components/Link.tsx +2 -2
- package/src/template/components/MDXComponents.tsx +101 -0
- package/src/template/components/NamedType.tsx +2 -2
- package/src/template/components/TestComponent.tsx +6 -0
- package/src/template/components/TypeAnnotation.tsx +1 -1
- package/src/template/components/TypeFieldsLinkList.tsx +1 -1
- package/src/template/components/TypeIndex.tsx +1 -1
- package/src/template/components/content/$$.ts +1 -0
- package/src/template/components/content/GraphQLDocumentWithSchema.tsx +18 -0
- package/src/template/components/content/GraphQLDocumentWrapper.tsx +82 -0
- package/src/template/components/graphql/graphql.tsx +2 -2
- package/src/template/components/graphql/index.ts +1 -1
- package/src/template/components/graphql/type-link.tsx +2 -2
- package/src/template/entry.client.tsx +2 -2
- package/src/template/routes/changelog.tsx +1 -1
- package/src/template/routes/reference.$type.$field.tsx +3 -3
- package/src/template/routes/reference.$type.tsx +3 -3
- package/src/template/routes/reference.tsx +3 -3
- package/src/template/routes/root.tsx +36 -25
- package/src/template/routes.tsx +1 -1
- package/src/template/server/app.ts +1 -1
- package/src/template/server/ssg/generate.ts +1 -1
- package/src/template/server/ssg/get-route-paths.ts +1 -1
- package/src/template/server/view.ts +1 -1
- package/src/template/styles/code-block.css +32 -0
- package/build/template/components/ArgumentAnnotation.jsx +0 -16
- package/build/template/components/ArgumentAnnotation.jsx.map +0 -1
- package/build/template/components/ArgumentList.jsx +0 -16
- package/build/template/components/ArgumentList.jsx.map +0 -1
- package/build/template/components/ArgumentListAnnotation.jsx +0 -23
- package/build/template/components/ArgumentListAnnotation.jsx.map +0 -1
- package/build/template/components/Changelog.jsx +0 -68
- package/build/template/components/Changelog.jsx.map +0 -1
- package/build/template/components/CodeBlockEnhancer.jsx.map +0 -1
- package/build/template/components/DeprecationReason.jsx +0 -10
- package/build/template/components/DeprecationReason.jsx.map +0 -1
- package/build/template/components/Description.jsx +0 -10
- package/build/template/components/Description.jsx.map +0 -1
- package/build/template/components/Field.jsx +0 -22
- package/build/template/components/Field.jsx.map +0 -1
- package/build/template/components/FieldList.jsx.map +0 -1
- package/build/template/components/FieldListSection.jsx.map +0 -1
- package/build/template/components/HamburgerMenu.jsx +0 -53
- package/build/template/components/HamburgerMenu.jsx.map +0 -1
- package/build/template/components/Link.jsx.map +0 -1
- package/build/template/components/Logo.jsx +0 -29
- package/build/template/components/Logo.jsx.map +0 -1
- package/build/template/components/Markdown.jsx.map +0 -1
- package/build/template/components/MissingSchema.jsx +0 -4
- package/build/template/components/MissingSchema.jsx.map +0 -1
- package/build/template/components/NamedType.jsx +0 -17
- package/build/template/components/NamedType.jsx.map +0 -1
- package/build/template/components/NotFound.jsx +0 -26
- package/build/template/components/NotFound.jsx.map +0 -1
- package/build/template/components/RadixLink.jsx.map +0 -1
- package/build/template/components/Texts/MinorHeading.jsx.map +0 -1
- package/build/template/components/ThemeToggle.jsx +0 -10
- package/build/template/components/ThemeToggle.jsx.map +0 -1
- package/build/template/components/TypeAnnotation.jsx.map +0 -1
- package/build/template/components/TypeFieldsLinkList.jsx +0 -17
- package/build/template/components/TypeFieldsLinkList.jsx.map +0 -1
- package/build/template/components/TypeIndex.jsx +0 -27
- package/build/template/components/TypeIndex.jsx.map +0 -1
- package/build/template/components/graphql/graphql.jsx +0 -3
- package/build/template/components/graphql/graphql.jsx.map +0 -1
- package/build/template/components/graphql/type-kind-icon.jsx.map +0 -1
- package/build/template/components/graphql/type-link.jsx +0 -16
- package/build/template/components/graphql/type-link.jsx.map +0 -1
- package/build/template/components/sidebar/Sidebar.jsx +0 -15
- package/build/template/components/sidebar/Sidebar.jsx.map +0 -1
- package/build/template/components/sidebar/SidebarItem.jsx.map +0 -1
- package/build/template/components/sidebar/ToggleButton.jsx +0 -6
- package/build/template/components/sidebar/ToggleButton.jsx.map +0 -1
- package/build/template/entry.client.jsx.map +0 -1
- package/build/template/routes/changelog.jsx.map +0 -1
- package/build/template/routes/index.jsx.map +0 -1
- package/build/template/routes/reference.$type.$field.jsx.map +0 -1
- package/build/template/routes/reference.$type.jsx.map +0 -1
- package/build/template/routes/reference.jsx.map +0 -1
- package/build/template/routes/root.jsx.map +0 -1
- package/build/template/routes.jsx +0 -5
- package/build/template/routes.jsx.map +0 -1
- package/build/template/server/render-page.jsx.map +0 -1
@@ -0,0 +1,197 @@
|
|
1
|
+
/**
|
2
|
+
* Layer 3: Simplified Positioning & Layout Engine
|
3
|
+
*
|
4
|
+
* Maps GraphQL AST positions to DOM coordinates for overlay placement.
|
5
|
+
* This simplified version focuses on working with Polen's existing infrastructure.
|
6
|
+
*/
|
7
|
+
/**
|
8
|
+
* Simplified position calculator for Shiki-rendered code
|
9
|
+
*
|
10
|
+
* This version uses a more straightforward approach:
|
11
|
+
* 1. Find the line element by line number
|
12
|
+
* 2. Search for the identifier text within that line
|
13
|
+
* 3. Create a span around the identifier for positioning
|
14
|
+
*
|
15
|
+
* This approach modifies the DOM but is more reliable for testing
|
16
|
+
* and works well with React's reconciliation.
|
17
|
+
*/
|
18
|
+
export class SimplePositionCalculator {
|
19
|
+
/**
|
20
|
+
* Prepare a code block for positioning by wrapping identifiers in spans
|
21
|
+
*/
|
22
|
+
prepareCodeBlock(containerElement, identifiers) {
|
23
|
+
// Sort all identifiers by position (right to left, bottom to top)
|
24
|
+
const sortedIdentifiers = [...identifiers].sort((a, b) => {
|
25
|
+
// Sort by line first (bottom to top)
|
26
|
+
if (a.position.line !== b.position.line) {
|
27
|
+
return b.position.line - a.position.line;
|
28
|
+
}
|
29
|
+
// Then by column (right to left)
|
30
|
+
return b.position.column - a.position.column;
|
31
|
+
});
|
32
|
+
// Process all identifiers
|
33
|
+
let wrappedCount = 0;
|
34
|
+
for (const identifier of sortedIdentifiers) {
|
35
|
+
const wrapped = this.wrapIdentifier(containerElement, identifier);
|
36
|
+
if (wrapped)
|
37
|
+
wrappedCount++;
|
38
|
+
}
|
39
|
+
}
|
40
|
+
/**
|
41
|
+
* Get positions of all wrapped identifiers
|
42
|
+
*/
|
43
|
+
getIdentifierPositions(containerElement, relativeToElement) {
|
44
|
+
const results = new Map();
|
45
|
+
// Find all wrapped identifiers
|
46
|
+
const wrappedIdentifiers = containerElement.querySelectorAll('[data-graphql-id]');
|
47
|
+
// Use the provided element for relative positioning, or the container itself
|
48
|
+
const referenceElement = relativeToElement || containerElement;
|
49
|
+
for (const element of wrappedIdentifiers) {
|
50
|
+
const id = element.getAttribute('data-graphql-id');
|
51
|
+
if (!id)
|
52
|
+
continue;
|
53
|
+
// Get position relative to the reference element
|
54
|
+
const referenceRect = referenceElement.getBoundingClientRect();
|
55
|
+
const elementRect = element.getBoundingClientRect();
|
56
|
+
const position = {
|
57
|
+
top: elementRect.top - referenceRect.top,
|
58
|
+
left: elementRect.left - referenceRect.left,
|
59
|
+
width: elementRect.width,
|
60
|
+
height: elementRect.height,
|
61
|
+
};
|
62
|
+
// Reconstruct identifier from data attributes
|
63
|
+
const identifier = {
|
64
|
+
name: element.getAttribute('data-graphql-name') || '',
|
65
|
+
kind: (element.getAttribute('data-graphql-kind') || 'Field'),
|
66
|
+
position: {
|
67
|
+
start: parseInt(element.getAttribute('data-graphql-start') || '0'),
|
68
|
+
end: parseInt(element.getAttribute('data-graphql-end') || '0'),
|
69
|
+
line: parseInt(element.getAttribute('data-graphql-line') || '1'),
|
70
|
+
column: parseInt(element.getAttribute('data-graphql-column') || '1'),
|
71
|
+
},
|
72
|
+
schemaPath: (element.getAttribute('data-graphql-path') || '').split(',').filter(Boolean),
|
73
|
+
context: { selectionPath: [] },
|
74
|
+
};
|
75
|
+
results.set(id, { position, identifier });
|
76
|
+
}
|
77
|
+
return results;
|
78
|
+
}
|
79
|
+
/**
|
80
|
+
* Wrap an identifier in a span for positioning
|
81
|
+
* Returns true if the identifier was successfully wrapped
|
82
|
+
*/
|
83
|
+
wrapIdentifier(containerElement, identifier) {
|
84
|
+
const walker = document.createTreeWalker(containerElement, NodeFilter.SHOW_TEXT, null);
|
85
|
+
let currentLine = 1;
|
86
|
+
let currentColumn = 1;
|
87
|
+
let node;
|
88
|
+
while (node = walker.nextNode()) {
|
89
|
+
const textNode = node;
|
90
|
+
const text = textNode.textContent || '';
|
91
|
+
// Check if already wrapped
|
92
|
+
if (textNode.parentElement?.hasAttribute('data-graphql-id')) {
|
93
|
+
// Update position tracking and continue
|
94
|
+
for (const char of text) {
|
95
|
+
if (char === '\n') {
|
96
|
+
currentLine++;
|
97
|
+
currentColumn = 1;
|
98
|
+
}
|
99
|
+
else {
|
100
|
+
currentColumn++;
|
101
|
+
}
|
102
|
+
}
|
103
|
+
continue;
|
104
|
+
}
|
105
|
+
// Track position in the text
|
106
|
+
let textIndex = 0;
|
107
|
+
while (textIndex < text.length) {
|
108
|
+
// Check if we're at the identifier's position
|
109
|
+
if (currentLine === identifier.position.line
|
110
|
+
&& currentColumn === identifier.position.column) {
|
111
|
+
// Verify it's actually our identifier
|
112
|
+
const remainingText = text.substring(textIndex);
|
113
|
+
if (remainingText.startsWith(identifier.name)) {
|
114
|
+
// Create a unique ID for this identifier
|
115
|
+
const id = `${identifier.position.start}-${identifier.name}-${identifier.kind}`;
|
116
|
+
// Split the text node and wrap the identifier
|
117
|
+
const before = text.substring(0, textIndex);
|
118
|
+
const after = text.substring(textIndex + identifier.name.length);
|
119
|
+
const span = document.createElement('span');
|
120
|
+
span.setAttribute('data-graphql-id', id);
|
121
|
+
span.setAttribute('data-graphql-name', identifier.name);
|
122
|
+
span.setAttribute('data-graphql-kind', identifier.kind);
|
123
|
+
span.setAttribute('data-graphql-start', String(identifier.position.start));
|
124
|
+
span.setAttribute('data-graphql-end', String(identifier.position.end));
|
125
|
+
span.setAttribute('data-graphql-line', String(identifier.position.line));
|
126
|
+
span.setAttribute('data-graphql-column', String(identifier.position.column));
|
127
|
+
span.setAttribute('data-graphql-path', identifier.schemaPath.join(','));
|
128
|
+
span.textContent = identifier.name;
|
129
|
+
const parent = textNode.parentNode;
|
130
|
+
if (before) {
|
131
|
+
parent.insertBefore(document.createTextNode(before), textNode);
|
132
|
+
}
|
133
|
+
parent.insertBefore(span, textNode);
|
134
|
+
if (after) {
|
135
|
+
parent.insertBefore(document.createTextNode(after), textNode);
|
136
|
+
}
|
137
|
+
parent.removeChild(textNode);
|
138
|
+
return true;
|
139
|
+
}
|
140
|
+
}
|
141
|
+
// Update position tracking
|
142
|
+
const char = text[textIndex];
|
143
|
+
if (char === '\n') {
|
144
|
+
currentLine++;
|
145
|
+
currentColumn = 1;
|
146
|
+
}
|
147
|
+
else {
|
148
|
+
currentColumn++;
|
149
|
+
}
|
150
|
+
textIndex++;
|
151
|
+
}
|
152
|
+
}
|
153
|
+
return false; // Identifier not found
|
154
|
+
}
|
155
|
+
}
|
156
|
+
/**
|
157
|
+
* Create invisible overlay for a position
|
158
|
+
*/
|
159
|
+
export const createSimpleOverlay = (position, identifier, options) => {
|
160
|
+
const overlay = document.createElement('div');
|
161
|
+
// Base styles for positioning
|
162
|
+
overlay.style.position = 'absolute';
|
163
|
+
overlay.style.top = `${position.top}px`;
|
164
|
+
overlay.style.left = `${position.left}px`;
|
165
|
+
overlay.style.width = `${position.width}px`;
|
166
|
+
overlay.style.height = `${position.height}px`;
|
167
|
+
overlay.style.cursor = 'pointer';
|
168
|
+
overlay.style.zIndex = '10';
|
169
|
+
// Add custom class if provided
|
170
|
+
if (options?.className) {
|
171
|
+
overlay.className = options.className;
|
172
|
+
}
|
173
|
+
// Data attributes
|
174
|
+
overlay.setAttribute('data-graphql-overlay', 'true');
|
175
|
+
overlay.setAttribute('data-graphql-name', identifier.name);
|
176
|
+
overlay.setAttribute('data-graphql-kind', identifier.kind);
|
177
|
+
// Event handlers
|
178
|
+
if (options?.onClick) {
|
179
|
+
overlay.addEventListener('click', (e) => {
|
180
|
+
e.preventDefault();
|
181
|
+
options.onClick(identifier);
|
182
|
+
});
|
183
|
+
}
|
184
|
+
if (options?.onHover) {
|
185
|
+
overlay.addEventListener('mouseenter', (e) => {
|
186
|
+
options.onHover(identifier, e);
|
187
|
+
});
|
188
|
+
}
|
189
|
+
return overlay;
|
190
|
+
};
|
191
|
+
/**
|
192
|
+
* Factory function for position calculator
|
193
|
+
*/
|
194
|
+
export const createSimplePositionCalculator = () => {
|
195
|
+
return new SimplePositionCalculator();
|
196
|
+
};
|
197
|
+
//# sourceMappingURL=positioning-simple.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"positioning-simple.js","sourceRoot":"","sources":["../../../src/lib/graphql-document/positioning-simple.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4BH;;;;;;;;;;GAUG;AACH,MAAM,OAAO,wBAAwB;IACnC;;OAEG;IACH,gBAAgB,CACd,gBAAyB,EACzB,WAAyB;QAEzB,kEAAkE;QAClE,MAAM,iBAAiB,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACvD,qCAAqC;YACrC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAA;YAC1C,CAAC;YACD,iCAAiC;YACjC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAA;QAC9C,CAAC,CAAC,CAAA;QAEF,0BAA0B;QAC1B,IAAI,YAAY,GAAG,CAAC,CAAA;QACpB,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAA;YACjE,IAAI,OAAO;gBAAE,YAAY,EAAE,CAAA;QAC7B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,sBAAsB,CACpB,gBAAyB,EACzB,iBAA2B;QAE3B,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAA;QAEjD,+BAA+B;QAC/B,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAA;QAEjF,6EAA6E;QAC7E,MAAM,gBAAgB,GAAG,iBAAiB,IAAI,gBAAgB,CAAA;QAE9D,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;YACzC,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;YAClD,IAAI,CAAC,EAAE;gBAAE,SAAQ;YAEjB,iDAAiD;YACjD,MAAM,aAAa,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,CAAA;YAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAA;YAEnD,MAAM,QAAQ,GAAgB;gBAC5B,GAAG,EAAE,WAAW,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG;gBACxC,IAAI,EAAE,WAAW,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI;gBAC3C,KAAK,EAAE,WAAW,CAAC,KAAK;gBACxB,MAAM,EAAE,WAAW,CAAC,MAAM;aAC3B,CAAA;YAED,8CAA8C;YAC9C,MAAM,UAAU,GAAe;gBAC7B,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,EAAE;gBACrD,IAAI,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAuB;gBAClF,QAAQ,EAAE;oBACR,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,GAAG,CAAC;oBAClE,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC;oBAC9D,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC;oBAChE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,qBAAqB,CAAC,IAAI,GAAG,CAAC;iBACrE;gBACD,UAAU,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBACxF,OAAO,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;aAC/B,CAAA;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAA;QAC3C,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;OAGG;IACK,cAAc,CAAC,gBAAyB,EAAE,UAAsB;QACtE,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CACtC,gBAAgB,EAChB,UAAU,CAAC,SAAS,EACpB,IAAI,CACL,CAAA;QAED,IAAI,WAAW,GAAG,CAAC,CAAA;QACnB,IAAI,aAAa,GAAG,CAAC,CAAA;QACrB,IAAI,IAAiB,CAAA;QAErB,OAAO,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAY,CAAA;YAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAA;YAEvC,2BAA2B;YAC3B,IAAI,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAC5D,wCAAwC;gBACxC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;oBACxB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBAClB,WAAW,EAAE,CAAA;wBACb,aAAa,GAAG,CAAC,CAAA;oBACnB,CAAC;yBAAM,CAAC;wBACN,aAAa,EAAE,CAAA;oBACjB,CAAC;gBACH,CAAC;gBACD,SAAQ;YACV,CAAC;YAED,6BAA6B;YAC7B,IAAI,SAAS,GAAG,CAAC,CAAA;YACjB,OAAO,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC/B,8CAA8C;gBAC9C,IACE,WAAW,KAAK,UAAU,CAAC,QAAQ,CAAC,IAAI;uBACrC,aAAa,KAAK,UAAU,CAAC,QAAQ,CAAC,MAAM,EAC/C,CAAC;oBACD,sCAAsC;oBACtC,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;oBAC/C,IAAI,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC9C,yCAAyC;wBACzC,MAAM,EAAE,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,CAAA;wBAE/E,8CAA8C;wBAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;wBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;wBAEhE,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;wBAC3C,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAA;wBACxC,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;wBACvD,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;wBACvD,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;wBAC1E,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;wBACtE,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;wBACxE,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;wBAC5E,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;wBACvE,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,CAAA;wBAElC,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAW,CAAA;wBAEnC,IAAI,MAAM,EAAE,CAAC;4BACX,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAA;wBAChE,CAAC;wBAED,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;wBAEnC,IAAI,KAAK,EAAE,CAAC;4BACV,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAA;wBAC/D,CAAC;wBAED,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;wBAC5B,OAAO,IAAI,CAAA;oBACb,CAAC;gBACH,CAAC;gBAED,2BAA2B;gBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;gBAC5B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAClB,WAAW,EAAE,CAAA;oBACb,aAAa,GAAG,CAAC,CAAA;gBACnB,CAAC;qBAAM,CAAC;oBACN,aAAa,EAAE,CAAA;gBACjB,CAAC;gBACD,SAAS,EAAE,CAAA;YACb,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAA,CAAC,uBAAuB;IACtC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,QAAqB,EACrB,UAAsB,EACtB,OAIC,EACY,EAAE;IACf,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAE7C,8BAA8B;IAC9B,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAA;IACnC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAA;IACvC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,IAAI,CAAA;IACzC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,QAAQ,CAAC,KAAK,IAAI,CAAA;IAC3C,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAA;IAC7C,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAA;IAChC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;IAE3B,+BAA+B;IAC/B,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;IACvC,CAAC;IAED,kBAAkB;IAClB,OAAO,CAAC,YAAY,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;IACpD,OAAO,CAAC,YAAY,CAAC,mBAAmB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;IAC1D,OAAO,CAAC,YAAY,CAAC,mBAAmB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;IAE1D,iBAAiB;IACjB,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACtC,CAAC,CAAC,cAAc,EAAE,CAAA;YAClB,OAAO,CAAC,OAAQ,CAAC,UAAU,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;YAC3C,OAAO,CAAC,OAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAA6B,EAAE;IAC3E,OAAO,IAAI,wBAAwB,EAAE,CAAA;AACvC,CAAC,CAAA"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import type { GraphQLSchema } from 'graphql';
|
2
|
+
import React from 'react';
|
3
|
+
export declare const GraphQLSchemaContext: React.Context<GraphQLSchema | null>;
|
4
|
+
export declare const useGraphQLSchema: () => GraphQLSchema | null;
|
5
|
+
export declare const GraphQLSchemaProvider: React.FC<React.PropsWithChildren<{
|
6
|
+
schema: GraphQLSchema | null;
|
7
|
+
}>>;
|
8
|
+
//# sourceMappingURL=schema-context.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"schema-context.d.ts","sourceRoot":"","sources":["../../../src/lib/graphql-document/schema-context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,oBAAoB,qCAAkD,CAAA;AAEnF,eAAO,MAAM,gBAAgB,4BAG5B,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC;IAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAAA;CAAE,CAAC,CASrG,CAAA"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import React from 'react';
|
3
|
+
export const GraphQLSchemaContext = React.createContext(null);
|
4
|
+
export const useGraphQLSchema = () => {
|
5
|
+
const schema = React.useContext(GraphQLSchemaContext);
|
6
|
+
return schema;
|
7
|
+
};
|
8
|
+
export const GraphQLSchemaProvider = ({ children, schema, }) => {
|
9
|
+
return (_jsx(GraphQLSchemaContext.Provider, { value: schema, children: children }));
|
10
|
+
};
|
11
|
+
//# sourceMappingURL=schema-context.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"schema-context.js","sourceRoot":"","sources":["../../../src/lib/graphql-document/schema-context.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,aAAa,CAAuB,IAAI,CAAC,CAAA;AAEnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAA;IACrD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAwE,CAAC,EACzG,QAAQ,EACR,MAAM,GACP,EAAE,EAAE;IACH,OAAO,CACL,KAAC,oBAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,YACzC,QAAQ,GACqB,CACjC,CAAA;AACH,CAAC,CAAA"}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
/**
|
2
|
+
* Example usage of Schema Integration (Layer 2)
|
3
|
+
*
|
4
|
+
* Demonstrates how the schema integration layer resolves GraphQL identifiers
|
5
|
+
* against actual schemas, extracts documentation, and generates reference URLs.
|
6
|
+
*/
|
7
|
+
/**
|
8
|
+
* Demonstrate basic schema resolution
|
9
|
+
*/
|
10
|
+
export declare const demonstrateSchemaResolution: () => void;
|
11
|
+
/**
|
12
|
+
* Demonstrate full schema-aware analysis
|
13
|
+
*/
|
14
|
+
export declare const demonstrateSchemaAwareAnalysis: () => void;
|
15
|
+
/**
|
16
|
+
* Demonstrate tooltip data extraction
|
17
|
+
*/
|
18
|
+
export declare const demonstrateTooltipData: () => void;
|
19
|
+
/**
|
20
|
+
* Demonstrate URL generation customization
|
21
|
+
*/
|
22
|
+
export declare const demonstrateCustomURLGeneration: () => void;
|
23
|
+
/**
|
24
|
+
* Show integration with Polen's reference system
|
25
|
+
*/
|
26
|
+
export declare const demonstratePolenIntegration: () => void;
|
27
|
+
//# sourceMappingURL=schema-integration-example.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"schema-integration-example.d.ts","sourceRoot":"","sources":["../../../src/lib/graphql-document/schema-integration-example.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmFH;;GAEG;AACH,eAAO,MAAM,2BAA2B,YAkEvC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B,YA+C1C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,YAoClC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B,YA2B1C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,2BAA2B,YA4CvC,CAAA"}
|
@@ -0,0 +1,297 @@
|
|
1
|
+
/**
|
2
|
+
* Example usage of Schema Integration (Layer 2)
|
3
|
+
*
|
4
|
+
* Demonstrates how the schema integration layer resolves GraphQL identifiers
|
5
|
+
* against actual schemas, extracts documentation, and generates reference URLs.
|
6
|
+
*/
|
7
|
+
import { buildSchema } from 'graphql';
|
8
|
+
import { analyzeWithSchema, createPolenSchemaResolver } from "./schema-integration.js";
|
9
|
+
// Example schema - typical GraphQL API
|
10
|
+
const pokemonSchema = buildSchema(`
|
11
|
+
"""
|
12
|
+
A PokƩmon character
|
13
|
+
"""
|
14
|
+
type Pokemon {
|
15
|
+
"""
|
16
|
+
The PokƩmon's unique identifier
|
17
|
+
"""
|
18
|
+
id: ID!
|
19
|
+
|
20
|
+
"""
|
21
|
+
The PokƩmon's name
|
22
|
+
"""
|
23
|
+
name: String!
|
24
|
+
|
25
|
+
"""
|
26
|
+
The PokƩmon's type (e.g., Electric, Fire, Water)
|
27
|
+
"""
|
28
|
+
type: String!
|
29
|
+
|
30
|
+
"""
|
31
|
+
The PokƩmon's abilities
|
32
|
+
"""
|
33
|
+
abilities(
|
34
|
+
"""
|
35
|
+
Maximum number of abilities to return
|
36
|
+
"""
|
37
|
+
first: Int = 5
|
38
|
+
): [Ability!]!
|
39
|
+
|
40
|
+
"""
|
41
|
+
@deprecated Use evolutionChain instead
|
42
|
+
"""
|
43
|
+
evolutions: [Pokemon!] @deprecated(reason: "Use evolutionChain instead")
|
44
|
+
}
|
45
|
+
|
46
|
+
"""
|
47
|
+
A special ability that PokƩmon can have
|
48
|
+
"""
|
49
|
+
type Ability {
|
50
|
+
id: ID!
|
51
|
+
name: String!
|
52
|
+
description: String
|
53
|
+
isHidden: Boolean!
|
54
|
+
}
|
55
|
+
|
56
|
+
type Query {
|
57
|
+
"""
|
58
|
+
Get a PokƩmon by ID
|
59
|
+
"""
|
60
|
+
pokemon(id: ID!): Pokemon
|
61
|
+
|
62
|
+
"""
|
63
|
+
Search for PokƩmon by name
|
64
|
+
"""
|
65
|
+
searchPokemon(query: String!): [Pokemon!]!
|
66
|
+
}
|
67
|
+
`);
|
68
|
+
// Example GraphQL query with various constructs
|
69
|
+
const exampleQuery = `
|
70
|
+
query GetPokemonDetails($pokemonId: ID!, $abilityLimit: Int = 3) {
|
71
|
+
pokemon(id: $pokemonId) {
|
72
|
+
id
|
73
|
+
name
|
74
|
+
type
|
75
|
+
abilities(first: $abilityLimit) {
|
76
|
+
name
|
77
|
+
description
|
78
|
+
isHidden
|
79
|
+
}
|
80
|
+
evolutions # This field is deprecated
|
81
|
+
invalidField # This field doesn't exist
|
82
|
+
}
|
83
|
+
}
|
84
|
+
`;
|
85
|
+
/**
|
86
|
+
* Demonstrate basic schema resolution
|
87
|
+
*/
|
88
|
+
export const demonstrateSchemaResolution = () => {
|
89
|
+
console.log('š Schema Integration Demo\n');
|
90
|
+
const resolver = createPolenSchemaResolver(pokemonSchema);
|
91
|
+
// Example identifiers (normally extracted from AST)
|
92
|
+
const testIdentifiers = [
|
93
|
+
{
|
94
|
+
name: 'Pokemon',
|
95
|
+
kind: 'Type',
|
96
|
+
position: { start: 50, end: 57, line: 3, column: 5 },
|
97
|
+
schemaPath: ['Pokemon'],
|
98
|
+
context: { selectionPath: [] },
|
99
|
+
},
|
100
|
+
{
|
101
|
+
name: 'name',
|
102
|
+
kind: 'Field',
|
103
|
+
position: { start: 75, end: 79, line: 4, column: 7 },
|
104
|
+
parentType: 'Pokemon',
|
105
|
+
schemaPath: ['Pokemon', 'name'],
|
106
|
+
context: { selectionPath: ['pokemon', 'name'] },
|
107
|
+
},
|
108
|
+
{
|
109
|
+
name: 'evolutions',
|
110
|
+
kind: 'Field',
|
111
|
+
position: { start: 150, end: 160, line: 9, column: 7 },
|
112
|
+
parentType: 'Pokemon',
|
113
|
+
schemaPath: ['Pokemon', 'evolutions'],
|
114
|
+
context: { selectionPath: ['pokemon', 'evolutions'] },
|
115
|
+
},
|
116
|
+
{
|
117
|
+
name: 'first',
|
118
|
+
kind: 'Argument',
|
119
|
+
position: { start: 120, end: 125, line: 6, column: 20 },
|
120
|
+
parentType: 'Pokemon',
|
121
|
+
schemaPath: ['Pokemon', 'abilities', 'first'],
|
122
|
+
context: { selectionPath: ['pokemon', 'abilities'] },
|
123
|
+
},
|
124
|
+
];
|
125
|
+
console.log('š Identifier Resolutions:\n');
|
126
|
+
for (const identifier of testIdentifiers) {
|
127
|
+
const resolution = resolver.resolveIdentifier(identifier);
|
128
|
+
if (!resolution)
|
129
|
+
continue;
|
130
|
+
console.log(`š·ļø ${identifier.kind}: ${identifier.name}`);
|
131
|
+
console.log(` ā
Exists: ${resolution.exists}`);
|
132
|
+
console.log(` š URL: ${resolution.referenceUrl}`);
|
133
|
+
if (resolution.documentation) {
|
134
|
+
console.log(` š Type: ${resolution.documentation.typeInfo}`);
|
135
|
+
if (resolution.documentation.description) {
|
136
|
+
console.log(` š¬ Description: ${resolution.documentation.description}`);
|
137
|
+
}
|
138
|
+
if (resolution.documentation.defaultValue) {
|
139
|
+
console.log(` šÆ Default: ${resolution.documentation.defaultValue}`);
|
140
|
+
}
|
141
|
+
}
|
142
|
+
if (resolution.deprecated) {
|
143
|
+
console.log(` ā ļø DEPRECATED: ${resolution.deprecated.reason}`);
|
144
|
+
}
|
145
|
+
console.log();
|
146
|
+
}
|
147
|
+
};
|
148
|
+
/**
|
149
|
+
* Demonstrate full schema-aware analysis
|
150
|
+
*/
|
151
|
+
export const demonstrateSchemaAwareAnalysis = () => {
|
152
|
+
console.log('š Schema-Aware Analysis\n');
|
153
|
+
const result = analyzeWithSchema(exampleQuery, pokemonSchema);
|
154
|
+
console.log(`š Analysis Summary:`);
|
155
|
+
console.log(` ⢠Valid GraphQL: ${result.analysis.isValid}`);
|
156
|
+
console.log(` ⢠Total identifiers: ${result.analysis.identifiers.all.length}`);
|
157
|
+
console.log(` ⢠Schema resolutions: ${result.resolutions.size}`);
|
158
|
+
console.log(` ⢠Schema errors: ${result.schemaErrors.length}\n`);
|
159
|
+
// Show validation errors
|
160
|
+
if (result.schemaErrors.length > 0) {
|
161
|
+
console.log('šØ Schema Validation Issues:\n');
|
162
|
+
for (const error of result.schemaErrors) {
|
163
|
+
const emoji = error.severity === 'error' ? 'ā' : 'ā ļø';
|
164
|
+
const pos = `${error.identifier.position.line}:${error.identifier.position.column}`;
|
165
|
+
console.log(` ${emoji} ${error.message} @ ${pos}`);
|
166
|
+
}
|
167
|
+
console.log();
|
168
|
+
}
|
169
|
+
// Show successful resolutions with hyperlink potential
|
170
|
+
console.log('š Generated Hyperlinks:\n');
|
171
|
+
let linkCount = 0;
|
172
|
+
for (const [key, resolution] of result.resolutions) {
|
173
|
+
if (resolution.exists && linkCount < 8) { // Show first 8 successful resolutions
|
174
|
+
const identifier = result.analysis.identifiers.all.find(id => key.startsWith(`${id.position.start}-${id.name}-${id.kind}`));
|
175
|
+
if (identifier) {
|
176
|
+
const pos = `${identifier.position.line}:${identifier.position.column}`;
|
177
|
+
console.log(` š ${identifier.name} (${identifier.kind}) ā ${resolution.referenceUrl}`);
|
178
|
+
if (resolution.documentation?.description) {
|
179
|
+
const shortDesc = resolution.documentation.description.length > 50
|
180
|
+
? resolution.documentation.description.substring(0, 50) + '...'
|
181
|
+
: resolution.documentation.description;
|
182
|
+
console.log(` š¬ "${shortDesc}"`);
|
183
|
+
}
|
184
|
+
linkCount++;
|
185
|
+
}
|
186
|
+
}
|
187
|
+
}
|
188
|
+
};
|
189
|
+
/**
|
190
|
+
* Demonstrate tooltip data extraction
|
191
|
+
*/
|
192
|
+
export const demonstrateTooltipData = () => {
|
193
|
+
console.log('\nš¬ Tooltip Data Extraction\n');
|
194
|
+
const resolver = createPolenSchemaResolver(pokemonSchema);
|
195
|
+
// Simulate tooltip hover scenarios
|
196
|
+
const tooltipExamples = [
|
197
|
+
['Pokemon'],
|
198
|
+
['Pokemon', 'name'],
|
199
|
+
['Pokemon', 'abilities'],
|
200
|
+
['Pokemon', 'abilities', 'first'],
|
201
|
+
['Ability', 'isHidden'],
|
202
|
+
];
|
203
|
+
for (const schemaPath of tooltipExamples) {
|
204
|
+
const docs = resolver.getDocumentation(schemaPath);
|
205
|
+
if (docs) {
|
206
|
+
const pathStr = schemaPath.join(' ā ');
|
207
|
+
console.log(`š·ļø ${pathStr}`);
|
208
|
+
console.log(` š Type: ${docs.typeInfo}`);
|
209
|
+
if (docs.description) {
|
210
|
+
console.log(` š¬ Description: ${docs.description}`);
|
211
|
+
}
|
212
|
+
if (docs.defaultValue) {
|
213
|
+
console.log(` šÆ Default: ${docs.defaultValue}`);
|
214
|
+
}
|
215
|
+
if (docs.deprecated) {
|
216
|
+
console.log(` ā ļø DEPRECATED: ${docs.deprecated.reason}`);
|
217
|
+
}
|
218
|
+
console.log();
|
219
|
+
}
|
220
|
+
}
|
221
|
+
};
|
222
|
+
/**
|
223
|
+
* Demonstrate URL generation customization
|
224
|
+
*/
|
225
|
+
export const demonstrateCustomURLGeneration = () => {
|
226
|
+
console.log('š ļø Custom URL Generation\n');
|
227
|
+
// Different resolver configurations
|
228
|
+
const configurations = [
|
229
|
+
{ name: 'Default', config: {} },
|
230
|
+
{ name: 'Custom Base Path', config: { basePath: '/docs/api' } },
|
231
|
+
{ name: 'No Fragments', config: { includeFragments: false } },
|
232
|
+
{ name: 'Custom + No Fragments', config: { basePath: '/schema', includeFragments: false } },
|
233
|
+
];
|
234
|
+
const testPaths = [
|
235
|
+
['Pokemon'],
|
236
|
+
['Pokemon', 'name'],
|
237
|
+
['Pokemon', 'abilities', 'first'],
|
238
|
+
];
|
239
|
+
for (const { name, config } of configurations) {
|
240
|
+
console.log(`š ${name}:`);
|
241
|
+
const resolver = createPolenSchemaResolver(pokemonSchema, config);
|
242
|
+
for (const path of testPaths) {
|
243
|
+
const url = resolver.generateReferenceLink(path);
|
244
|
+
console.log(` ${path.join(' ā ')} ā ${url}`);
|
245
|
+
}
|
246
|
+
console.log();
|
247
|
+
}
|
248
|
+
};
|
249
|
+
/**
|
250
|
+
* Show integration with Polen's reference system
|
251
|
+
*/
|
252
|
+
export const demonstratePolenIntegration = () => {
|
253
|
+
console.log('šļø Polen Integration Preview\n');
|
254
|
+
// This demonstrates how the schema integration connects with Polen's existing systems
|
255
|
+
const result = analyzeWithSchema(exampleQuery, pokemonSchema, {
|
256
|
+
basePath: '/reference', // Polen's reference page base
|
257
|
+
includeFragments: true, // Enable field anchors
|
258
|
+
});
|
259
|
+
console.log('š How this integrates with Polen:\n');
|
260
|
+
console.log('1. š Schema Loading:');
|
261
|
+
console.log(" ⢠Uses PROJECT_DATA.schema from Polen's build system");
|
262
|
+
console.log(' ⢠Leverages existing schema processing pipeline');
|
263
|
+
console.log();
|
264
|
+
console.log('2. š Reference Links:');
|
265
|
+
console.log(" ⢠Generates URLs matching Polen's /reference/* structure");
|
266
|
+
console.log(' ⢠Works with existing TypeIndex and sidebar system');
|
267
|
+
console.log();
|
268
|
+
console.log('3. š¬ Documentation:');
|
269
|
+
console.log(' ⢠Extracts descriptions for hover tooltips');
|
270
|
+
console.log(' ⢠Provides type signatures for context');
|
271
|
+
console.log(' ⢠Detects deprecation warnings');
|
272
|
+
console.log();
|
273
|
+
console.log('4. ā
Validation:');
|
274
|
+
console.log(' ⢠Build-time validation against actual schema');
|
275
|
+
console.log(' ⢠Catches typos and invalid references');
|
276
|
+
console.log(' ⢠Reports deprecation usage');
|
277
|
+
console.log();
|
278
|
+
// Show some example integrations
|
279
|
+
const validFields = Array.from(result.resolutions.values())
|
280
|
+
.filter(r => r.exists)
|
281
|
+
.slice(0, 3);
|
282
|
+
if (validFields.length > 0) {
|
283
|
+
console.log('š Example Reference Links:');
|
284
|
+
for (const resolution of validFields) {
|
285
|
+
console.log(` ⢠${resolution.referenceUrl}`);
|
286
|
+
}
|
287
|
+
}
|
288
|
+
};
|
289
|
+
// Run examples if executed directly
|
290
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
291
|
+
demonstrateSchemaResolution();
|
292
|
+
demonstrateSchemaAwareAnalysis();
|
293
|
+
demonstrateTooltipData();
|
294
|
+
demonstrateCustomURLGeneration();
|
295
|
+
demonstratePolenIntegration();
|
296
|
+
}
|
297
|
+
//# sourceMappingURL=schema-integration-example.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"schema-integration-example.js","sourceRoot":"","sources":["../../../src/lib/graphql-document/schema-integration-example.ts"],"names":[],"mappings":"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"}
|