@lickle/docs 0.0.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/dist/esm/_lib/fs/index.js +20 -0
- package/dist/esm/_lib/fs/index.js.map +1 -0
- package/dist/esm/_lib/fs/watch.js +30 -0
- package/dist/esm/_lib/fs/watch.js.map +1 -0
- package/dist/esm/_lib/index.js +9 -0
- package/dist/esm/_lib/index.js.map +1 -0
- package/dist/esm/_lib/jiti/index.js +16 -0
- package/dist/esm/_lib/jiti/index.js.map +1 -0
- package/dist/esm/_lib/path/index.js +42 -0
- package/dist/esm/_lib/path/index.js.map +1 -0
- package/dist/esm/_lib/pkg/index.js +128 -0
- package/dist/esm/_lib/pkg/index.js.map +1 -0
- package/dist/esm/_lib/repo/index.js +100 -0
- package/dist/esm/_lib/repo/index.js.map +1 -0
- package/dist/esm/_lib/slug/index.js +23 -0
- package/dist/esm/_lib/slug/index.js.map +1 -0
- package/dist/esm/_lib/t.js +2 -0
- package/dist/esm/_lib/t.js.map +1 -0
- package/dist/esm/_lib/tsconfig/index.js +12 -0
- package/dist/esm/_lib/tsconfig/index.js.map +1 -0
- package/dist/esm/_lib/util/index.js +54 -0
- package/dist/esm/_lib/util/index.js.map +1 -0
- package/dist/esm/cli/cmd/dev.js +74 -0
- package/dist/esm/cli/cmd/dev.js.map +1 -0
- package/dist/esm/cli/cmd/index.js +4 -0
- package/dist/esm/cli/cmd/index.js.map +1 -0
- package/dist/esm/cli/cmd/init.js +74 -0
- package/dist/esm/cli/cmd/init.js.map +1 -0
- package/dist/esm/cli/cmd/json.js +28 -0
- package/dist/esm/cli/cmd/json.js.map +1 -0
- package/dist/esm/cli/env.js +5 -0
- package/dist/esm/cli/env.js.map +1 -0
- package/dist/esm/cli/index.js +13 -0
- package/dist/esm/cli/index.js.map +1 -0
- package/dist/esm/cli/vite/client/index.jsx +20 -0
- package/dist/esm/cli/vite/client/index.jsx.map +1 -0
- package/dist/esm/cli/vite/index.js +100 -0
- package/dist/esm/cli/vite/index.js.map +1 -0
- package/dist/esm/cli.js +5 -0
- package/dist/esm/cli.js.map +1 -0
- package/dist/esm/config/defaults.js +32 -0
- package/dist/esm/config/defaults.js.map +1 -0
- package/dist/esm/config/file.js +48 -0
- package/dist/esm/config/file.js.map +1 -0
- package/dist/esm/config/index.js +7 -0
- package/dist/esm/config/index.js.map +1 -0
- package/dist/esm/config/load.js +79 -0
- package/dist/esm/config/load.js.map +1 -0
- package/dist/esm/config/types.js +2 -0
- package/dist/esm/config/types.js.map +1 -0
- package/dist/esm/core/index.js +3 -0
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/core/project/debug.js +26 -0
- package/dist/esm/core/project/debug.js.map +1 -0
- package/dist/esm/core/project/index.js +39 -0
- package/dist/esm/core/project/index.js.map +1 -0
- package/dist/esm/core/project/naming.js +39 -0
- package/dist/esm/core/project/naming.js.map +1 -0
- package/dist/esm/core/project/routing.js +173 -0
- package/dist/esm/core/project/routing.js.map +1 -0
- package/dist/esm/core/project/types.js +4 -0
- package/dist/esm/core/project/types.js.map +1 -0
- package/dist/esm/core/reflect/index.js +10 -0
- package/dist/esm/core/reflect/index.js.map +1 -0
- package/dist/esm/core/reflect/indexed.js +195 -0
- package/dist/esm/core/reflect/indexed.js.map +1 -0
- package/dist/esm/core/reflect/resolve.js +157 -0
- package/dist/esm/core/reflect/resolve.js.map +1 -0
- package/dist/esm/core/reflect/scan.js +787 -0
- package/dist/esm/core/reflect/scan.js.map +1 -0
- package/dist/esm/core/reflect/state.js +29 -0
- package/dist/esm/core/reflect/state.js.map +1 -0
- package/dist/esm/core/reflect/types.js +16 -0
- package/dist/esm/core/reflect/types.js.map +1 -0
- package/dist/esm/core/reflect/walk.js +106 -0
- package/dist/esm/core/reflect/walk.js.map +1 -0
- package/dist/esm/solidjs/index.js +2 -0
- package/dist/esm/solidjs/index.js.map +1 -0
- package/dist/esm/solidjs/jsx-runtime.js +2 -0
- package/dist/esm/solidjs/jsx-runtime.js.map +1 -0
- package/dist/esm/ui/App.jsx +71 -0
- package/dist/esm/ui/App.jsx.map +1 -0
- package/dist/esm/ui/components/Breadcrumb.jsx +45 -0
- package/dist/esm/ui/components/Breadcrumb.jsx.map +1 -0
- package/dist/esm/ui/components/Code/index.jsx +89 -0
- package/dist/esm/ui/components/Code/index.jsx.map +1 -0
- package/dist/esm/ui/components/Comment.jsx +176 -0
- package/dist/esm/ui/components/Comment.jsx.map +1 -0
- package/dist/esm/ui/components/Declaration.jsx +147 -0
- package/dist/esm/ui/components/Declaration.jsx.map +1 -0
- package/dist/esm/ui/components/Header.jsx +66 -0
- package/dist/esm/ui/components/Header.jsx.map +1 -0
- package/dist/esm/ui/components/Layout.jsx +44 -0
- package/dist/esm/ui/components/Layout.jsx.map +1 -0
- package/dist/esm/ui/components/Link.jsx +34 -0
- package/dist/esm/ui/components/Link.jsx.map +1 -0
- package/dist/esm/ui/components/LivePreview/Example.jsx +76 -0
- package/dist/esm/ui/components/LivePreview/Example.jsx.map +1 -0
- package/dist/esm/ui/components/LivePreview/Sandbox.jsx +25 -0
- package/dist/esm/ui/components/LivePreview/Sandbox.jsx.map +1 -0
- package/dist/esm/ui/components/LivePreview/index.js +4 -0
- package/dist/esm/ui/components/LivePreview/index.js.map +1 -0
- package/dist/esm/ui/components/LivePreview/transform.js +16 -0
- package/dist/esm/ui/components/LivePreview/transform.js.map +1 -0
- package/dist/esm/ui/components/Markdown.jsx +14 -0
- package/dist/esm/ui/components/Markdown.jsx.map +1 -0
- package/dist/esm/ui/components/Page.jsx +121 -0
- package/dist/esm/ui/components/Page.jsx.map +1 -0
- package/dist/esm/ui/components/References.jsx +32 -0
- package/dist/esm/ui/components/References.jsx.map +1 -0
- package/dist/esm/ui/components/SearchPalette.jsx +178 -0
- package/dist/esm/ui/components/SearchPalette.jsx.map +1 -0
- package/dist/esm/ui/components/Sidebar.jsx +63 -0
- package/dist/esm/ui/components/Sidebar.jsx.map +1 -0
- package/dist/esm/ui/components/Syntax.jsx +10 -0
- package/dist/esm/ui/components/Syntax.jsx.map +1 -0
- package/dist/esm/ui/components/ThemeToggle.jsx +25 -0
- package/dist/esm/ui/components/ThemeToggle.jsx.map +1 -0
- package/dist/esm/ui/components/Type.jsx +444 -0
- package/dist/esm/ui/components/Type.jsx.map +1 -0
- package/dist/esm/ui/components/index.js +16 -0
- package/dist/esm/ui/components/index.js.map +1 -0
- package/dist/esm/ui/context/components.jsx +30 -0
- package/dist/esm/ui/context/components.jsx.map +1 -0
- package/dist/esm/ui/context/global.js +15 -0
- package/dist/esm/ui/context/global.js.map +1 -0
- package/dist/esm/ui/context/index.js +5 -0
- package/dist/esm/ui/context/index.js.map +1 -0
- package/dist/esm/ui/context/markup/index.jsx +25 -0
- package/dist/esm/ui/context/markup/index.jsx.map +1 -0
- package/dist/esm/ui/context/markup/markdown.js +34 -0
- package/dist/esm/ui/context/markup/markdown.js.map +1 -0
- package/dist/esm/ui/context/markup/shiki.js +58 -0
- package/dist/esm/ui/context/markup/shiki.js.map +1 -0
- package/dist/esm/ui/context/markup/util.js +22 -0
- package/dist/esm/ui/context/markup/util.js.map +1 -0
- package/dist/esm/ui/context/project/index.jsx +27 -0
- package/dist/esm/ui/context/project/index.jsx.map +1 -0
- package/dist/esm/ui/context/project/indexed.js +47 -0
- package/dist/esm/ui/context/project/indexed.js.map +1 -0
- package/dist/esm/ui/context/project/types.js +2 -0
- package/dist/esm/ui/context/project/types.js.map +1 -0
- package/dist/esm/ui/context/theme.jsx +36 -0
- package/dist/esm/ui/context/theme.jsx.map +1 -0
- package/dist/esm/ui/hooks/index.js +94 -0
- package/dist/esm/ui/hooks/index.js.map +1 -0
- package/dist/esm/ui/index.js +5 -0
- package/dist/esm/ui/index.js.map +1 -0
- package/dist/esm/ui/renderer.jsx +21 -0
- package/dist/esm/ui/renderer.jsx.map +1 -0
- package/dist/esm/ui/util/comment.js +14 -0
- package/dist/esm/ui/util/comment.js.map +1 -0
- package/dist/esm/ui/util/kind.js +85 -0
- package/dist/esm/ui/util/kind.js.map +1 -0
- package/dist/esm/ui/util/markdown.js +66 -0
- package/dist/esm/ui/util/markdown.js.map +1 -0
- package/dist/esm/ui/util/search.js +75 -0
- package/dist/esm/ui/util/search.js.map +1 -0
- package/dist/ts/_lib/fs/index.d.ts +6 -0
- package/dist/ts/_lib/fs/index.d.ts.map +1 -0
- package/dist/ts/_lib/fs/watch.d.ts +14 -0
- package/dist/ts/_lib/fs/watch.d.ts.map +1 -0
- package/dist/ts/_lib/index.d.ts +10 -0
- package/dist/ts/_lib/index.d.ts.map +1 -0
- package/dist/ts/_lib/jiti/index.d.ts +2 -0
- package/dist/ts/_lib/jiti/index.d.ts.map +1 -0
- package/dist/ts/_lib/path/index.d.ts +12 -0
- package/dist/ts/_lib/path/index.d.ts.map +1 -0
- package/dist/ts/_lib/pkg/index.d.ts +28 -0
- package/dist/ts/_lib/pkg/index.d.ts.map +1 -0
- package/dist/ts/_lib/repo/index.d.ts +30 -0
- package/dist/ts/_lib/repo/index.d.ts.map +1 -0
- package/dist/ts/_lib/slug/index.d.ts +4 -0
- package/dist/ts/_lib/slug/index.d.ts.map +1 -0
- package/dist/ts/_lib/t.d.ts +11 -0
- package/dist/ts/_lib/t.d.ts.map +1 -0
- package/dist/ts/_lib/tsconfig/index.d.ts +8 -0
- package/dist/ts/_lib/tsconfig/index.d.ts.map +1 -0
- package/dist/ts/_lib/util/index.d.ts +9 -0
- package/dist/ts/_lib/util/index.d.ts.map +1 -0
- package/dist/ts/cli/cmd/dev.d.ts +27 -0
- package/dist/ts/cli/cmd/dev.d.ts.map +1 -0
- package/dist/ts/cli/cmd/index.d.ts +4 -0
- package/dist/ts/cli/cmd/index.d.ts.map +1 -0
- package/dist/ts/cli/cmd/init.d.ts +14 -0
- package/dist/ts/cli/cmd/init.d.ts.map +1 -0
- package/dist/ts/cli/cmd/json.d.ts +12 -0
- package/dist/ts/cli/cmd/json.d.ts.map +1 -0
- package/dist/ts/cli/env.d.ts +2 -0
- package/dist/ts/cli/env.d.ts.map +1 -0
- package/dist/ts/cli/index.d.ts +78 -0
- package/dist/ts/cli/index.d.ts.map +1 -0
- package/dist/ts/cli/vite/client/index.d.ts +10 -0
- package/dist/ts/cli/vite/client/index.d.ts.map +1 -0
- package/dist/ts/cli/vite/index.d.ts +12 -0
- package/dist/ts/cli/vite/index.d.ts.map +1 -0
- package/dist/ts/cli.d.ts +3 -0
- package/dist/ts/cli.d.ts.map +1 -0
- package/dist/ts/config/defaults.d.ts +10 -0
- package/dist/ts/config/defaults.d.ts.map +1 -0
- package/dist/ts/config/file.d.ts +3 -0
- package/dist/ts/config/file.d.ts.map +1 -0
- package/dist/ts/config/index.d.ts +6 -0
- package/dist/ts/config/index.d.ts.map +1 -0
- package/dist/ts/config/load.d.ts +36 -0
- package/dist/ts/config/load.d.ts.map +1 -0
- package/dist/ts/config/types.d.ts +56 -0
- package/dist/ts/config/types.d.ts.map +1 -0
- package/dist/ts/core/index.d.ts +3 -0
- package/dist/ts/core/index.d.ts.map +1 -0
- package/dist/ts/core/project/debug.d.ts +3 -0
- package/dist/ts/core/project/debug.d.ts.map +1 -0
- package/dist/ts/core/project/index.d.ts +17 -0
- package/dist/ts/core/project/index.d.ts.map +1 -0
- package/dist/ts/core/project/naming.d.ts +23 -0
- package/dist/ts/core/project/naming.d.ts.map +1 -0
- package/dist/ts/core/project/routing.d.ts +61 -0
- package/dist/ts/core/project/routing.d.ts.map +1 -0
- package/dist/ts/core/project/types.d.ts +56 -0
- package/dist/ts/core/project/types.d.ts.map +1 -0
- package/dist/ts/core/reflect/index.d.ts +22 -0
- package/dist/ts/core/reflect/index.d.ts.map +1 -0
- package/dist/ts/core/reflect/indexed.d.ts +83 -0
- package/dist/ts/core/reflect/indexed.d.ts.map +1 -0
- package/dist/ts/core/reflect/resolve.d.ts +3 -0
- package/dist/ts/core/reflect/resolve.d.ts.map +1 -0
- package/dist/ts/core/reflect/scan.d.ts +218 -0
- package/dist/ts/core/reflect/scan.d.ts.map +1 -0
- package/dist/ts/core/reflect/state.d.ts +44 -0
- package/dist/ts/core/reflect/state.d.ts.map +1 -0
- package/dist/ts/core/reflect/types.d.ts +289 -0
- package/dist/ts/core/reflect/types.d.ts.map +1 -0
- package/dist/ts/core/reflect/walk.d.ts +28 -0
- package/dist/ts/core/reflect/walk.d.ts.map +1 -0
- package/dist/ts/solidjs/index.d.ts +2 -0
- package/dist/ts/solidjs/index.d.ts.map +1 -0
- package/dist/ts/solidjs/jsx-runtime.d.ts +2 -0
- package/dist/ts/solidjs/jsx-runtime.d.ts.map +1 -0
- package/dist/ts/ui/App.d.ts +17 -0
- package/dist/ts/ui/App.d.ts.map +1 -0
- package/dist/ts/ui/components/Breadcrumb.d.ts +4 -0
- package/dist/ts/ui/components/Breadcrumb.d.ts.map +1 -0
- package/dist/ts/ui/components/Code/index.d.ts +17 -0
- package/dist/ts/ui/components/Code/index.d.ts.map +1 -0
- package/dist/ts/ui/components/Comment.d.ts +49 -0
- package/dist/ts/ui/components/Comment.d.ts.map +1 -0
- package/dist/ts/ui/components/Declaration.d.ts +122 -0
- package/dist/ts/ui/components/Declaration.d.ts.map +1 -0
- package/dist/ts/ui/components/Header.d.ts +5 -0
- package/dist/ts/ui/components/Header.d.ts.map +1 -0
- package/dist/ts/ui/components/Layout.d.ts +5 -0
- package/dist/ts/ui/components/Layout.d.ts.map +1 -0
- package/dist/ts/ui/components/Link.d.ts +15 -0
- package/dist/ts/ui/components/Link.d.ts.map +1 -0
- package/dist/ts/ui/components/LivePreview/Example.d.ts +16 -0
- package/dist/ts/ui/components/LivePreview/Example.d.ts.map +1 -0
- package/dist/ts/ui/components/LivePreview/Sandbox.d.ts +20 -0
- package/dist/ts/ui/components/LivePreview/Sandbox.d.ts.map +1 -0
- package/dist/ts/ui/components/LivePreview/index.d.ts +4 -0
- package/dist/ts/ui/components/LivePreview/index.d.ts.map +1 -0
- package/dist/ts/ui/components/LivePreview/transform.d.ts +19 -0
- package/dist/ts/ui/components/LivePreview/transform.d.ts.map +1 -0
- package/dist/ts/ui/components/Markdown.d.ts +11 -0
- package/dist/ts/ui/components/Markdown.d.ts.map +1 -0
- package/dist/ts/ui/components/Page.d.ts +21 -0
- package/dist/ts/ui/components/Page.d.ts.map +1 -0
- package/dist/ts/ui/components/References.d.ts +2 -0
- package/dist/ts/ui/components/References.d.ts.map +1 -0
- package/dist/ts/ui/components/SearchPalette.d.ts +5 -0
- package/dist/ts/ui/components/SearchPalette.d.ts.map +1 -0
- package/dist/ts/ui/components/Sidebar.d.ts +5 -0
- package/dist/ts/ui/components/Sidebar.d.ts.map +1 -0
- package/dist/ts/ui/components/Syntax.d.ts +15 -0
- package/dist/ts/ui/components/Syntax.d.ts.map +1 -0
- package/dist/ts/ui/components/ThemeToggle.d.ts +2 -0
- package/dist/ts/ui/components/ThemeToggle.d.ts.map +1 -0
- package/dist/ts/ui/components/Type.d.ts +82 -0
- package/dist/ts/ui/components/Type.d.ts.map +1 -0
- package/dist/ts/ui/components/index.d.ts +15 -0
- package/dist/ts/ui/components/index.d.ts.map +1 -0
- package/dist/ts/ui/context/components.d.ts +124 -0
- package/dist/ts/ui/context/components.d.ts.map +1 -0
- package/dist/ts/ui/context/global.d.ts +210 -0
- package/dist/ts/ui/context/global.d.ts.map +1 -0
- package/dist/ts/ui/context/index.d.ts +5 -0
- package/dist/ts/ui/context/index.d.ts.map +1 -0
- package/dist/ts/ui/context/markup/index.d.ts +20 -0
- package/dist/ts/ui/context/markup/index.d.ts.map +1 -0
- package/dist/ts/ui/context/markup/markdown.d.ts +4 -0
- package/dist/ts/ui/context/markup/markdown.d.ts.map +1 -0
- package/dist/ts/ui/context/markup/shiki.d.ts +17 -0
- package/dist/ts/ui/context/markup/shiki.d.ts.map +1 -0
- package/dist/ts/ui/context/markup/util.d.ts +11 -0
- package/dist/ts/ui/context/markup/util.d.ts.map +1 -0
- package/dist/ts/ui/context/project/index.d.ts +25 -0
- package/dist/ts/ui/context/project/index.d.ts.map +1 -0
- package/dist/ts/ui/context/project/indexed.d.ts +4 -0
- package/dist/ts/ui/context/project/indexed.d.ts.map +1 -0
- package/dist/ts/ui/context/project/types.d.ts +13 -0
- package/dist/ts/ui/context/project/types.d.ts.map +1 -0
- package/dist/ts/ui/context/theme.d.ts +12 -0
- package/dist/ts/ui/context/theme.d.ts.map +1 -0
- package/dist/ts/ui/hooks/index.d.ts +29 -0
- package/dist/ts/ui/hooks/index.d.ts.map +1 -0
- package/dist/ts/ui/index.d.ts +5 -0
- package/dist/ts/ui/index.d.ts.map +1 -0
- package/dist/ts/ui/renderer.d.ts +200 -0
- package/dist/ts/ui/renderer.d.ts.map +1 -0
- package/dist/ts/ui/util/comment.d.ts +4 -0
- package/dist/ts/ui/util/comment.d.ts.map +1 -0
- package/dist/ts/ui/util/kind.d.ts +15 -0
- package/dist/ts/ui/util/kind.d.ts.map +1 -0
- package/dist/ts/ui/util/markdown.d.ts +8 -0
- package/dist/ts/ui/util/markdown.d.ts.map +1 -0
- package/dist/ts/ui/util/search.d.ts +20 -0
- package/dist/ts/ui/util/search.d.ts.map +1 -0
- package/package.json +89 -0
- package/src/_lib/fs/index.ts +23 -0
- package/src/_lib/fs/watch.ts +40 -0
- package/src/_lib/index.ts +9 -0
- package/src/_lib/jiti/index.ts +18 -0
- package/src/_lib/path/index.ts +44 -0
- package/src/_lib/pkg/index.ts +165 -0
- package/src/_lib/repo/index.ts +138 -0
- package/src/_lib/slug/index.ts +26 -0
- package/src/_lib/t.ts +17 -0
- package/src/_lib/tsconfig/index.ts +20 -0
- package/src/_lib/util/index.ts +53 -0
- package/src/cli/cmd/dev.ts +86 -0
- package/src/cli/cmd/index.ts +3 -0
- package/src/cli/cmd/init.ts +80 -0
- package/src/cli/cmd/json.ts +28 -0
- package/src/cli/env.ts +6 -0
- package/src/cli/index.ts +14 -0
- package/src/cli/vite/client/index.html +27 -0
- package/src/cli/vite/client/index.tsx +30 -0
- package/src/cli/vite/client/public/apple-touch-icon.png +0 -0
- package/src/cli/vite/client/public/favicon-96x96.png +0 -0
- package/src/cli/vite/client/public/favicon.ico +0 -0
- package/src/cli/vite/client/public/favicon.svg +1 -0
- package/src/cli/vite/client/public/site.webmanifest +21 -0
- package/src/cli/vite/client/public/web-app-manifest-192x192.png +0 -0
- package/src/cli/vite/client/public/web-app-manifest-512x512.png +0 -0
- package/src/cli/vite/index.ts +115 -0
- package/src/cli.ts +6 -0
- package/src/config/defaults.ts +36 -0
- package/src/config/file.ts +53 -0
- package/src/config/index.ts +11 -0
- package/src/config/load.ts +95 -0
- package/src/config/types.ts +59 -0
- package/src/core/index.ts +2 -0
- package/src/core/project/debug.ts +30 -0
- package/src/core/project/index.ts +58 -0
- package/src/core/project/naming.ts +49 -0
- package/src/core/project/routing.ts +234 -0
- package/src/core/project/types.ts +47 -0
- package/src/core/reflect/index.ts +18 -0
- package/src/core/reflect/indexed.ts +242 -0
- package/src/core/reflect/resolve.ts +159 -0
- package/src/core/reflect/scan.ts +816 -0
- package/src/core/reflect/state.ts +75 -0
- package/src/core/reflect/types.ts +164 -0
- package/src/core/reflect/walk.ts +121 -0
- package/src/solidjs/index.ts +1 -0
- package/src/solidjs/jsx-runtime.ts +1 -0
- package/src/ui/App.tsx +115 -0
- package/src/ui/components/Breadcrumb.tsx +53 -0
- package/src/ui/components/Code/index.tsx +112 -0
- package/src/ui/components/Comment.tsx +221 -0
- package/src/ui/components/Declaration.tsx +210 -0
- package/src/ui/components/Header.tsx +99 -0
- package/src/ui/components/Layout.tsx +62 -0
- package/src/ui/components/Link.tsx +43 -0
- package/src/ui/components/LivePreview/Example.tsx +104 -0
- package/src/ui/components/LivePreview/Sandbox.tsx +36 -0
- package/src/ui/components/LivePreview/index.ts +3 -0
- package/src/ui/components/LivePreview/transform.ts +28 -0
- package/src/ui/components/Markdown.tsx +16 -0
- package/src/ui/components/Page.tsx +162 -0
- package/src/ui/components/References.tsx +34 -0
- package/src/ui/components/SearchPalette.tsx +266 -0
- package/src/ui/components/Sidebar.tsx +107 -0
- package/src/ui/components/Syntax.tsx +10 -0
- package/src/ui/components/ThemeToggle.tsx +50 -0
- package/src/ui/components/Type.tsx +583 -0
- package/src/ui/components/index.ts +15 -0
- package/src/ui/context/components.tsx +103 -0
- package/src/ui/context/global.ts +33 -0
- package/src/ui/context/index.ts +4 -0
- package/src/ui/context/markup/index.tsx +39 -0
- package/src/ui/context/markup/markdown.ts +37 -0
- package/src/ui/context/markup/shiki.ts +72 -0
- package/src/ui/context/markup/util.ts +20 -0
- package/src/ui/context/project/index.tsx +47 -0
- package/src/ui/context/project/indexed.ts +52 -0
- package/src/ui/context/project/types.ts +14 -0
- package/src/ui/context/theme.tsx +45 -0
- package/src/ui/hooks/index.ts +116 -0
- package/src/ui/index.ts +4 -0
- package/src/ui/renderer.tsx +31 -0
- package/src/ui/util/comment.ts +12 -0
- package/src/ui/util/kind.ts +120 -0
- package/src/ui/util/markdown.ts +74 -0
- package/src/ui/util/search.ts +84 -0
- package/theme.css +301 -0
- package/tsconfig.client.json +12 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import * as reflect from "../reflect/index.js";
|
|
2
|
+
import * as config from "../../config/load.js";
|
|
3
|
+
import * as naming from "./naming.js";
|
|
4
|
+
/** Default naming: entry modules from their path/alias, everything else nested under its parent. */
|
|
5
|
+
const defaultName = (cx) => cx.parent === undefined
|
|
6
|
+
? naming.rootParts(cx.decl, cx.options)
|
|
7
|
+
: naming.childParts(cx.alias ?? cx.decl.name, cx.parent);
|
|
8
|
+
/**
|
|
9
|
+
* Compose a provider from optional overrides; unset hooks fall back to the
|
|
10
|
+
* stock behaviour (path-derived names, everything navigable, no groups).
|
|
11
|
+
*/
|
|
12
|
+
export const createRouteProvider = (overrides = {}) => ({
|
|
13
|
+
name: overrides.name ?? defaultName,
|
|
14
|
+
nav: overrides.nav ?? (() => true),
|
|
15
|
+
group: overrides.group ?? (() => undefined),
|
|
16
|
+
});
|
|
17
|
+
// ----------------------------------------------------------------------------
|
|
18
|
+
// Build
|
|
19
|
+
// ----------------------------------------------------------------------------
|
|
20
|
+
/**
|
|
21
|
+
* Build the navigation tree from the reflect index. The shape mirrors the
|
|
22
|
+
* exposure graph (`index.exposed`) rather than the raw declaration tree, so
|
|
23
|
+
* `export * from`, `export * as ns`, renames and namespaces are already
|
|
24
|
+
* resolved. Each declaration is routed once — the first exposure path wins —
|
|
25
|
+
* which keeps slugs unique and avoids duplicate pages.
|
|
26
|
+
*/
|
|
27
|
+
export const buildRoutes = (index, opts) => {
|
|
28
|
+
const options = {
|
|
29
|
+
rootName: opts.rootName,
|
|
30
|
+
aliases: new Map((opts.entrypoints ?? []).map((e) => [e.path, e.as.replace(/^\.\//, '')])),
|
|
31
|
+
commonDir: index.commonDir(),
|
|
32
|
+
};
|
|
33
|
+
const provider = opts.provider ?? createRouteProvider();
|
|
34
|
+
const full = opts.mode === 'full';
|
|
35
|
+
const seen = new Set();
|
|
36
|
+
// Keep slugs unique across the whole tree (and any reserved/README slugs).
|
|
37
|
+
// The empty root slug falls back to `index` so a README can own `/`.
|
|
38
|
+
const usedSlugs = new Set(opts.reserved ?? []);
|
|
39
|
+
const uniqueSlug = (slug) => {
|
|
40
|
+
if (!usedSlugs.has(slug))
|
|
41
|
+
return (usedSlugs.add(slug), slug);
|
|
42
|
+
const base = slug || 'index';
|
|
43
|
+
let next = base;
|
|
44
|
+
for (let n = 2; usedSlugs.has(next); n++)
|
|
45
|
+
next = `${base}-${n}`;
|
|
46
|
+
return (usedSlugs.add(next), next);
|
|
47
|
+
};
|
|
48
|
+
// Children of a route: the exposure graph in `exposed` mode, the raw
|
|
49
|
+
// declaration tree (minus re-export clauses) in `full` mode.
|
|
50
|
+
const childrenOf = (id) => {
|
|
51
|
+
if (!full)
|
|
52
|
+
return index.exposed(id);
|
|
53
|
+
const out = [];
|
|
54
|
+
for (const c of index.children(id))
|
|
55
|
+
if (c.kind !== 'export')
|
|
56
|
+
out.push({ id: c.id });
|
|
57
|
+
return out;
|
|
58
|
+
};
|
|
59
|
+
// Canonical parts for every routed declaration, so a page re-exposed
|
|
60
|
+
// elsewhere can link back to where it actually lives. Seeded with the roots
|
|
61
|
+
// up front (below) so a root re-exported by another resolves to its own slug.
|
|
62
|
+
const routed = new Map();
|
|
63
|
+
const nameOf = (id, parent, alias) => {
|
|
64
|
+
const named = provider.name({ decl: index.get(id), alias, parent, index, options });
|
|
65
|
+
return { ...named, slug: uniqueSlug(named.slug) };
|
|
66
|
+
};
|
|
67
|
+
const makePage = (id, parts) => ({
|
|
68
|
+
kind: index.get(id).kind === 'module' ? 'module' : 'declaration',
|
|
69
|
+
id,
|
|
70
|
+
alias: parts.label,
|
|
71
|
+
qualified: parts.qualified,
|
|
72
|
+
referencedIn: [...index.referencedIn(id)],
|
|
73
|
+
});
|
|
74
|
+
// A page already owned by another route, surfaced here as a link only: it
|
|
75
|
+
// shows in the parent's child list but stays out of the sidebar and carries
|
|
76
|
+
// no subtree, so clicking it lands on the canonical route.
|
|
77
|
+
const linkNode = (id, parent, alias, canon) => {
|
|
78
|
+
const cx = { decl: index.get(id), alias, parent, index, options };
|
|
79
|
+
const group = provider.group(cx);
|
|
80
|
+
return {
|
|
81
|
+
label: provider.name(cx).label,
|
|
82
|
+
slug: canon.slug,
|
|
83
|
+
page: makePage(id, canon),
|
|
84
|
+
children: [],
|
|
85
|
+
sidebar: false,
|
|
86
|
+
...(group ? { group } : {}),
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
const buildRoute = (id, parent, alias) => {
|
|
90
|
+
const decl = index.get(id);
|
|
91
|
+
const cx = { decl, alias, parent, index, options };
|
|
92
|
+
const parts = routed.get(id) ?? nameOf(id, parent, alias);
|
|
93
|
+
routed.set(id, parts);
|
|
94
|
+
seen.add(id);
|
|
95
|
+
const children = [];
|
|
96
|
+
for (const e of childrenOf(id)) {
|
|
97
|
+
if (e.id === id)
|
|
98
|
+
continue;
|
|
99
|
+
if (seen.has(e.id)) {
|
|
100
|
+
const canon = routed.get(e.id);
|
|
101
|
+
if (canon)
|
|
102
|
+
children.push(linkNode(e.id, parts, e.alias, canon));
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
children.push(buildRoute(e.id, parts, e.alias));
|
|
106
|
+
}
|
|
107
|
+
const group = provider.group(cx);
|
|
108
|
+
return {
|
|
109
|
+
label: parts.label,
|
|
110
|
+
slug: parts.slug,
|
|
111
|
+
page: makePage(id, parts),
|
|
112
|
+
children,
|
|
113
|
+
sidebar: provider.nav(cx),
|
|
114
|
+
...(group ? { group } : {}),
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
// `full` lists every module; `exposed` only the entrypoints. Name (and slug-
|
|
118
|
+
// reserve) every root up front so one re-exported by another stays top-level
|
|
119
|
+
// and re-exposures resolve to its canonical slug.
|
|
120
|
+
const roots = full ? [...index.declarations()].filter((d) => d.kind === 'module') : [...index.roots()];
|
|
121
|
+
for (const r of roots)
|
|
122
|
+
(seen.add(r.id), routed.set(r.id, nameOf(r.id)));
|
|
123
|
+
// Build a root *after* any entrypoint modules it re-exports, so a declaration
|
|
124
|
+
// reachable both directly (a barrel `export *`) and through its own module is
|
|
125
|
+
// owned by the module — the barrel only links to it. Display order is kept as
|
|
126
|
+
// the config order regardless.
|
|
127
|
+
const built = new Map();
|
|
128
|
+
for (const id of buildOrder(roots, index))
|
|
129
|
+
built.set(id, buildRoute(id));
|
|
130
|
+
return roots.map((root) => built.get(root.id));
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* Roots topologically sorted so an entrypoint module is built before any other
|
|
134
|
+
* root that re-exports its declarations (a barrel `export *`). That way each
|
|
135
|
+
* declaration is owned by the module that defines it, and the barrel only links.
|
|
136
|
+
*/
|
|
137
|
+
const buildOrder = (roots, index) => {
|
|
138
|
+
const rootIds = new Set(roots.map((r) => r.id));
|
|
139
|
+
// The entrypoint module a declaration is defined in (walk to its module ancestor).
|
|
140
|
+
const moduleOf = (id) => {
|
|
141
|
+
let d = index.get(id);
|
|
142
|
+
while (d && d.kind !== 'module')
|
|
143
|
+
d = index.get(d.parent);
|
|
144
|
+
return d?.id;
|
|
145
|
+
};
|
|
146
|
+
// Roots whose declarations `rootId` re-exposes from elsewhere.
|
|
147
|
+
const deps = (rootId) => {
|
|
148
|
+
const out = new Set();
|
|
149
|
+
for (const e of index.exposed(rootId)) {
|
|
150
|
+
const m = moduleOf(e.id);
|
|
151
|
+
if (m !== undefined && m !== rootId && rootIds.has(m))
|
|
152
|
+
out.add(m);
|
|
153
|
+
}
|
|
154
|
+
return out;
|
|
155
|
+
};
|
|
156
|
+
const order = [];
|
|
157
|
+
const placed = new Set();
|
|
158
|
+
const stack = new Set();
|
|
159
|
+
const visit = (id) => {
|
|
160
|
+
if (placed.has(id) || stack.has(id))
|
|
161
|
+
return;
|
|
162
|
+
stack.add(id);
|
|
163
|
+
for (const dep of deps(id))
|
|
164
|
+
visit(dep);
|
|
165
|
+
stack.delete(id);
|
|
166
|
+
placed.add(id);
|
|
167
|
+
order.push(id);
|
|
168
|
+
};
|
|
169
|
+
for (const r of roots)
|
|
170
|
+
visit(r.id);
|
|
171
|
+
return order;
|
|
172
|
+
};
|
|
173
|
+
//# sourceMappingURL=routing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../../../../src/core/project/routing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/project/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,MAAM,qBAAqB,CAAA;AAE5C,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as indexed from "./indexed.js";
|
|
2
|
+
import { resolve } from "./resolve.js";
|
|
3
|
+
import { scan } from "./scan.js";
|
|
4
|
+
export {} from "./indexed.js";
|
|
5
|
+
export const generate = (rootFiles, options) => {
|
|
6
|
+
const s = scan(rootFiles.map((r) => r.path), options);
|
|
7
|
+
const r = resolve(s);
|
|
8
|
+
return indexed.create(r, rootFiles);
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/reflect/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAGhC,OAAO,EAAc,MAAM,cAAc,CAAA;AAGzC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,SAAyC,EAAE,OAAoB,EAAE,EAAE;IAC1F,MAAM,CAAC,GAAG,IAAI,CACZ,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAC5B,OAAO,CACR,CAAA;IACD,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IACpB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;AACrC,CAAC,CAAA"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { path } from "../../_lib/index.js";
|
|
2
|
+
import * as T from "./types.js";
|
|
3
|
+
export const create = (s, entries) => index(s, [roots(entries), treeIndex, referenceIndex, exposerIndex]);
|
|
4
|
+
export const roots = (entries) => (b) => {
|
|
5
|
+
const roots = new Map();
|
|
6
|
+
const modules = [];
|
|
7
|
+
const byPath = new Map();
|
|
8
|
+
let commonDir = '';
|
|
9
|
+
b.init((d) => {
|
|
10
|
+
if (d.kind === 'module' && d.path) {
|
|
11
|
+
modules.push(d);
|
|
12
|
+
byPath.set(d.path, d.id);
|
|
13
|
+
for (const entry of entries) {
|
|
14
|
+
if (d.path === entry.path) {
|
|
15
|
+
roots.set(entry.as, d);
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
b.after(() => {
|
|
22
|
+
commonDir = path.common(Array.from(byPath.keys()));
|
|
23
|
+
});
|
|
24
|
+
return { roots: () => roots.values(), commonDir: () => commonDir, modules: () => modules };
|
|
25
|
+
};
|
|
26
|
+
export const treeIndex = (s) => {
|
|
27
|
+
const byId = new Map();
|
|
28
|
+
const byParent = new Map();
|
|
29
|
+
s.init((d) => {
|
|
30
|
+
byId.set(d.id, d);
|
|
31
|
+
const parent = d.parent;
|
|
32
|
+
let children = byParent.get(parent);
|
|
33
|
+
if (!children)
|
|
34
|
+
byParent.set(parent, (children = new Set()));
|
|
35
|
+
children.add(d.id);
|
|
36
|
+
});
|
|
37
|
+
const EMPTY = new Set();
|
|
38
|
+
return {
|
|
39
|
+
get: (id) => byId.get(id),
|
|
40
|
+
*children(id) {
|
|
41
|
+
for (const child of byParent.get(id) ?? EMPTY)
|
|
42
|
+
yield byId.get(child);
|
|
43
|
+
},
|
|
44
|
+
declarations: () => byId.values(),
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
export const referenceIndex = (s) => {
|
|
48
|
+
const referencedIn = new Map();
|
|
49
|
+
for (const ref of s.references) {
|
|
50
|
+
if (ref.type === 'internal') {
|
|
51
|
+
let refs = referencedIn.get(ref.targetId);
|
|
52
|
+
if (!refs)
|
|
53
|
+
referencedIn.set(ref.targetId, (refs = new Set()));
|
|
54
|
+
refs.add(ref.owner);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const EMPTY = new Set();
|
|
58
|
+
return { referencedIn: (id) => referencedIn.get(id) ?? EMPTY };
|
|
59
|
+
};
|
|
60
|
+
export const exposerIndex = (b, deps) => {
|
|
61
|
+
const exposedBy = new Map();
|
|
62
|
+
const direct = new Map();
|
|
63
|
+
const exposedModules = new Map();
|
|
64
|
+
const modulesByExposer = new Map();
|
|
65
|
+
const setModule = (exposer, m) => {
|
|
66
|
+
exposedModules.set(m.id, m);
|
|
67
|
+
let g = modulesByExposer.get(exposer);
|
|
68
|
+
if (!g)
|
|
69
|
+
modulesByExposer.set(exposer, (g = new Map()));
|
|
70
|
+
g.set(m.id, m);
|
|
71
|
+
};
|
|
72
|
+
// Records id under exposer/alias. Returns whether this (exposer → id) edge
|
|
73
|
+
// is new — used to stop infinite recursion on cycles, NOT to globally
|
|
74
|
+
// dedup, since the same id can be exposed by many exposers.
|
|
75
|
+
const seenEdge = new Set();
|
|
76
|
+
const record = (id, exposer, alias) => {
|
|
77
|
+
const edge = exposer + ':' + id;
|
|
78
|
+
if (seenEdge.has(edge))
|
|
79
|
+
return false;
|
|
80
|
+
seenEdge.add(edge);
|
|
81
|
+
let by = exposedBy.get(id);
|
|
82
|
+
if (!by)
|
|
83
|
+
exposedBy.set(id, (by = []));
|
|
84
|
+
by.push({ exposer, alias });
|
|
85
|
+
let list = direct.get(exposer);
|
|
86
|
+
if (!list)
|
|
87
|
+
direct.set(exposer, (list = []));
|
|
88
|
+
list.push({ id, alias });
|
|
89
|
+
return true;
|
|
90
|
+
};
|
|
91
|
+
// Public members of a module / namespace: exported declarations plus the
|
|
92
|
+
// `export …` statements themselves (which carry re-exports). Internal,
|
|
93
|
+
// non-exported helpers are left out of the exposure graph.
|
|
94
|
+
const members = function* (id) {
|
|
95
|
+
for (const child of deps.children(id))
|
|
96
|
+
if (child.exported)
|
|
97
|
+
yield child;
|
|
98
|
+
};
|
|
99
|
+
const expose = (id, exposer, alias) => {
|
|
100
|
+
const d = deps.get(id);
|
|
101
|
+
if (!d)
|
|
102
|
+
return;
|
|
103
|
+
if (d.kind === 'export') {
|
|
104
|
+
for (const name of d.names) {
|
|
105
|
+
if (d.star && name.name) {
|
|
106
|
+
const target = deps.get(name.ref);
|
|
107
|
+
if (target?.kind === 'module' || target?.kind === 'namespace') {
|
|
108
|
+
setModule(exposer, { id: name.ref, kind: 'namespace', alias: name.name });
|
|
109
|
+
}
|
|
110
|
+
if (record(name.ref, exposer, name.name)) {
|
|
111
|
+
for (const child of members(name.ref))
|
|
112
|
+
expose(child.id, name.ref);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else if (d.star) {
|
|
116
|
+
if (deps.get(name.ref)?.kind === 'module')
|
|
117
|
+
setModule(exposer, { id: name.ref, kind: 'star' });
|
|
118
|
+
for (const child of members(name.ref))
|
|
119
|
+
expose(child.id, exposer);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
if (deps.get(name.ref)?.kind === 'module')
|
|
123
|
+
addNamed(exposer, name.ref, name.name);
|
|
124
|
+
expose(name.ref, exposer, name.name);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (d.kind === 'namespace') {
|
|
130
|
+
setModule(exposer, { id, kind: 'namespace', alias: alias ?? d.name });
|
|
131
|
+
if (record(id, exposer, alias ?? d.name)) {
|
|
132
|
+
for (const child of members(id))
|
|
133
|
+
expose(child.id, id);
|
|
134
|
+
}
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
// A re-exported module (`export * as ns from './m'`) nests its members.
|
|
138
|
+
if (d.kind === 'module') {
|
|
139
|
+
if (record(id, exposer, alias ?? d.name)) {
|
|
140
|
+
for (const child of members(id))
|
|
141
|
+
expose(child.id, id);
|
|
142
|
+
}
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
record(id, exposer, alias ?? d.name);
|
|
146
|
+
};
|
|
147
|
+
// A module pulled in by a plain `export { … }` accumulates its named members.
|
|
148
|
+
const addNamed = (exposer, id, name) => {
|
|
149
|
+
const m = exposedModules.get(id);
|
|
150
|
+
if (m?.kind === 'named') {
|
|
151
|
+
m.names.push({ name });
|
|
152
|
+
setModule(exposer, m);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
setModule(exposer, { id, kind: 'named', names: [{ name }] });
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
b.after(() => {
|
|
159
|
+
for (const root of deps.roots()) {
|
|
160
|
+
for (const child of members(root.id))
|
|
161
|
+
expose(child.id, root.id);
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
const EMPTY_BY = [];
|
|
165
|
+
const EMPTY_EXP = [];
|
|
166
|
+
const exposes = function* (id) {
|
|
167
|
+
for (const e of direct.get(id) ?? EMPTY_EXP) {
|
|
168
|
+
yield e;
|
|
169
|
+
yield* exposes(e.id);
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
const EMPTY_MODULES = new Map();
|
|
173
|
+
return {
|
|
174
|
+
exposedBy: (id) => exposedBy.get(id) ?? EMPTY_BY,
|
|
175
|
+
exposes: (id) => exposes(id),
|
|
176
|
+
exposed: (id) => direct.get(id) ?? EMPTY_EXP,
|
|
177
|
+
exposedModules: (exposer) => exposer === undefined ? exposedModules.values() : (modulesByExposer.get(exposer) ?? EMPTY_MODULES).values(),
|
|
178
|
+
};
|
|
179
|
+
};
|
|
180
|
+
export const index = (s, indexers) => {
|
|
181
|
+
const inits = [];
|
|
182
|
+
const afters = [];
|
|
183
|
+
const builder = { ...s, init: (cb) => inits.push(cb), after: (cb) => afters.push(cb) };
|
|
184
|
+
// `acc` accumulates results and is passed as `deps` to each subsequent indexer.
|
|
185
|
+
const acc = {};
|
|
186
|
+
for (const indexer of indexers)
|
|
187
|
+
Object.assign(acc, indexer(builder, acc));
|
|
188
|
+
for (const d of s.declarations)
|
|
189
|
+
for (const init of inits)
|
|
190
|
+
init(d);
|
|
191
|
+
for (const after of afters)
|
|
192
|
+
after();
|
|
193
|
+
return acc;
|
|
194
|
+
};
|
|
195
|
+
//# sourceMappingURL=indexed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexed.js","sourceRoot":"","sources":["../../../../src/core/reflect/indexed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAU,MAAM,qBAAqB,CAAA;AAElD,OAAO,KAAK,CAAC,MAAM,YAAY,CAAA;AAE/B,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAY,EAAE,OAAuC,EAAE,EAAE,CAC9E,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,CAAA;AAUrE,MAAM,CAAC,MAAM,KAAK,GAChB,CAAC,OAAuC,EAAkB,EAAE,CAC5D,CAAC,CAAC,EAAS,EAAE;IACX,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmC,CAAA;IACxD,MAAM,OAAO,GAA8B,EAAE,CAAA;IAC7C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IACxC,IAAI,SAAS,GAAG,EAAE,CAAA;IAClB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACf,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;YACxB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC1B,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;oBACtB,MAAK;gBACP,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IACF,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACX,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;AAC5F,CAAC,CAAA;AAOH,MAAM,CAAC,MAAM,SAAS,GAAuB,CAAC,CAAC,EAAa,EAAE;IAC5D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAyB,CAAA;IAC7C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAA;IAC/C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;QACjB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAA;QACvB,IAAI,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACnC,IAAI,CAAC,QAAQ;YAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAA;QAC3D,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACpB,CAAC,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;IAC/B,OAAO;QACL,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,CAAC,QAAQ,CAAC,EAAE;YACV,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK;gBAAE,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAE,CAAA;QACvE,CAAC;QACD,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;KAClC,CAAA;AACH,CAAC,CAAA;AAID,MAAM,CAAC,MAAM,cAAc,GAA4B,CAAC,CAAC,EAAkB,EAAE;IAC3E,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAA;IACnD,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;QAC/B,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC5B,IAAI,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACzC,IAAI,CAAC,IAAI;gBAAE,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAA;YAC7D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;IAC/B,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAA;AAChE,CAAC,CAAA;AAqBD,MAAM,CAAC,MAAM,YAAY,GAA6C,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;IAChF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAsB,CAAA;IAC/C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAA;IAC3C,MAAM,cAAc,GAAG,IAAI,GAAG,EAAyB,CAAA;IACvD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAsC,CAAA;IAEtE,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,CAAgB,EAAQ,EAAE;QAC5D,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;QAC3B,IAAI,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACrC,IAAI,CAAC,CAAC;YAAE,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAA;QACtD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAChB,CAAC,CAAA;IAED,2EAA2E;IAC3E,sEAAsE;IACtE,4DAA4D;IAC5D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAA;IAClC,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,OAAe,EAAE,KAAc,EAAW,EAAE;QACtE,MAAM,IAAI,GAAG,OAAO,GAAG,GAAG,GAAG,EAAE,CAAA;QAC/B,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAA;QACpC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAElB,IAAI,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC1B,IAAI,CAAC,EAAE;YAAE,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QACrC,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QAE3B,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAC9B,IAAI,CAAC,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAA;QAC3C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QACxB,OAAO,IAAI,CAAA;IACb,CAAC,CAAA;IAED,yEAAyE;IACzE,uEAAuE;IACvE,2DAA2D;IAC3D,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,EAAU;QACnC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,IAAI,KAAK,CAAC,QAAQ;gBAAE,MAAM,KAAK,CAAA;IACxE,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,OAAe,EAAE,KAAc,EAAQ,EAAE;QACnE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACtB,IAAI,CAAC,CAAC;YAAE,OAAM;QACd,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxB,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC3B,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;oBACjC,IAAI,MAAM,EAAE,IAAI,KAAK,QAAQ,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;wBAC9D,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;oBAC3E,CAAC;oBACD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBACzC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;4BAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;oBACnE,CAAC;gBACH,CAAC;qBAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;oBAClB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,KAAK,QAAQ;wBAAE,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;oBAC7F,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;wBAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;gBAClE,CAAC;qBAAM,CAAC;oBACN,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,KAAK,QAAQ;wBAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;oBACjF,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;gBACtC,CAAC;YACH,CAAC;YACD,OAAM;QACR,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC3B,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;YACrE,IAAI,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,EAAE,CAAC;oBAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;YACvD,CAAC;YACD,OAAM;QACR,CAAC;QACD,wEAAwE;QACxE,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxB,IAAI,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,EAAE,CAAC;oBAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;YACvD,CAAC;YACD,OAAM;QACR,CAAC;QACD,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC,CAAA;IAED,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,EAAU,EAAE,IAAY,EAAQ,EAAE;QACnE,MAAM,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAChC,IAAI,CAAC,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;YACxB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;YACtB,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC,CAAA;IAED,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACX,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YAChC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QACjE,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAe,EAAE,CAAA;IAC/B,MAAM,SAAS,GAAc,EAAE,CAAA;IAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,EAAU;QACnC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YAC5C,MAAM,CAAC,CAAA;YACP,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QACtB,CAAC;IACH,CAAC,CAAA;IACD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAyB,CAAA;IACtD,OAAO;QACL,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ;QAChD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS;QAC5C,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE,CAC1B,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,CAAC,MAAM,EAAE;KAC9G,CAAA;AACH,CAAC,CAAA;AAeD,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,CAAY,EACZ,QAAW,EAC8C,EAAE;IAC3D,MAAM,KAAK,GAAmC,EAAE,CAAA;IAChD,MAAM,MAAM,GAAmB,EAAE,CAAA;IACjC,MAAM,OAAO,GAAiB,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAA;IAEpG,gFAAgF;IAChF,MAAM,GAAG,GAAG,EAAS,CAAA;IACrB,KAAK,MAAM,OAAO,IAAI,QAAQ;QAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;IACzE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY;QAAE,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IACjE,KAAK,MAAM,KAAK,IAAI,MAAM;QAAE,KAAK,EAAE,CAAA;IAEnC,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
import * as T from "./types.js";
|
|
3
|
+
export const resolve = (s) => {
|
|
4
|
+
const idByDecl = new Map();
|
|
5
|
+
for (const [id, sym] of s.symbolsById)
|
|
6
|
+
sym.declarations?.forEach((d) => idByDecl.set(d, id));
|
|
7
|
+
for (const ref of s.references) {
|
|
8
|
+
const sym = s.referenceSymbols.get(ref.id) ?? symbolAt(s.checker, s.referenceOrigins.get(ref.id));
|
|
9
|
+
if (!sym) {
|
|
10
|
+
asExternal(ref, 'anonymous');
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
const ids = idsForSymbol(idByDecl, s.checker, sym);
|
|
14
|
+
if (ids[0])
|
|
15
|
+
asInternal(ref, ids[0]);
|
|
16
|
+
else
|
|
17
|
+
asExternal(ref, classifySymbol(sym));
|
|
18
|
+
}
|
|
19
|
+
const moduleIdForSpecifier = (origin) => {
|
|
20
|
+
if (!origin.moduleSpecifier)
|
|
21
|
+
return undefined;
|
|
22
|
+
const sym = s.checker.getSymbolAtLocation(origin.moduleSpecifier);
|
|
23
|
+
if (!sym)
|
|
24
|
+
return undefined;
|
|
25
|
+
const file = symbolSourceFile(sym);
|
|
26
|
+
return file ? idByDecl.get(file) : undefined;
|
|
27
|
+
};
|
|
28
|
+
for (const c1 of s.exports)
|
|
29
|
+
resolveExport(s, c1, idByDecl, moduleIdForSpecifier);
|
|
30
|
+
return s;
|
|
31
|
+
};
|
|
32
|
+
const resolveExport = (s, exp, idByDecl, moduleIdForSpecifier) => {
|
|
33
|
+
const form = s.exportsForm.get(exp.id);
|
|
34
|
+
const origin = s.exportsOrigin.get(exp.id);
|
|
35
|
+
if (!form || !origin)
|
|
36
|
+
return;
|
|
37
|
+
// export default <expr> / export = <expr> → one name pointing at the target.
|
|
38
|
+
if (ts.isExportAssignment(origin)) {
|
|
39
|
+
const sym = s.checker.getSymbolAtLocation(origin.expression);
|
|
40
|
+
if (!sym)
|
|
41
|
+
return;
|
|
42
|
+
const id = idsForSymbol(idByDecl, s.checker, sym)[0];
|
|
43
|
+
if (id !== undefined)
|
|
44
|
+
exp.names.push({ name: origin.isExportEquals ? 'export=' : 'default', ref: id });
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
// export * as foo from './x' → one name, points at the module itself.
|
|
48
|
+
if (form === 'namespace-from') {
|
|
49
|
+
const alias = s.exportsAlias.get(exp.id);
|
|
50
|
+
const moduleId = moduleIdForSpecifier(origin);
|
|
51
|
+
if (alias && moduleId !== undefined)
|
|
52
|
+
exp.names.push({ name: alias, ref: moduleId });
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
// export * from './x' → re-export every named export of the module.
|
|
56
|
+
if (form === 'star') {
|
|
57
|
+
if (!origin.moduleSpecifier)
|
|
58
|
+
return;
|
|
59
|
+
const moduleSym = s.checker.getSymbolAtLocation(origin.moduleSpecifier);
|
|
60
|
+
if (!moduleSym)
|
|
61
|
+
return;
|
|
62
|
+
exp.star = true;
|
|
63
|
+
for (const sym of s.checker.getExportsOfModule(moduleSym)) {
|
|
64
|
+
const id = idsForSymbol(idByDecl, s.checker, sym)[0];
|
|
65
|
+
if (id !== undefined)
|
|
66
|
+
exp.names.push({ name: sym.getName(), ref: id });
|
|
67
|
+
}
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const entries = s.exportsEntries.get(exp.id) ?? [];
|
|
71
|
+
// export { a, b as c } from './x' → resolve each name in the module's exports.
|
|
72
|
+
if (form === 'named-from') {
|
|
73
|
+
if (!origin.moduleSpecifier)
|
|
74
|
+
return;
|
|
75
|
+
const moduleSym = s.checker.getSymbolAtLocation(origin.moduleSpecifier);
|
|
76
|
+
if (!moduleSym)
|
|
77
|
+
return;
|
|
78
|
+
const exportSyms = s.checker.getExportsOfModule(moduleSym);
|
|
79
|
+
for (const e of entries) {
|
|
80
|
+
const sym = exportSyms.find((x) => x.getName() === e.name);
|
|
81
|
+
if (!sym)
|
|
82
|
+
continue;
|
|
83
|
+
const id = idsForSymbol(idByDecl, s.checker, sym)[0];
|
|
84
|
+
if (id !== undefined)
|
|
85
|
+
exp.names.push({ name: e.as ?? e.name, ref: id });
|
|
86
|
+
}
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
// named-local: export { a, b as c } → look each name up in local scope.
|
|
90
|
+
if (origin.exportClause && ts.isNamedExports(origin.exportClause)) {
|
|
91
|
+
for (const el of origin.exportClause.elements) {
|
|
92
|
+
const sym = s.checker.getSymbolAtLocation(el.propertyName ?? el.name);
|
|
93
|
+
if (!sym)
|
|
94
|
+
continue;
|
|
95
|
+
const id = idsForSymbol(idByDecl, s.checker, sym)[0];
|
|
96
|
+
if (id !== undefined)
|
|
97
|
+
exp.names.push({ name: el.name.text, ref: id });
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
const idsForSymbol = (idByDecl, checker, sym) => {
|
|
102
|
+
const collect = (s, out) => {
|
|
103
|
+
for (const decl of s.declarations ?? []) {
|
|
104
|
+
const id = idByDecl.get(decl);
|
|
105
|
+
if (id !== undefined && !out.includes(id))
|
|
106
|
+
out.push(id);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
const ids = [];
|
|
110
|
+
collect(sym, ids);
|
|
111
|
+
// Export specifiers / import aliases declare themselves as the symbol's
|
|
112
|
+
// declarations, which are never in `idByDecl`. Follow the alias chain so
|
|
113
|
+
// local re-exports (`export { Foo }`) and re-exported re-exports resolve.
|
|
114
|
+
if (sym.flags & ts.SymbolFlags.Alias) {
|
|
115
|
+
const target = checker.getAliasedSymbol(sym);
|
|
116
|
+
if (target !== sym)
|
|
117
|
+
collect(target, ids);
|
|
118
|
+
}
|
|
119
|
+
return ids;
|
|
120
|
+
};
|
|
121
|
+
const symbolAt = (checker, origin) => {
|
|
122
|
+
if (!origin)
|
|
123
|
+
return undefined;
|
|
124
|
+
if (ts.isTypeReferenceNode(origin) || ts.isExpressionWithTypeArguments(origin)) {
|
|
125
|
+
const target = ts.isTypeReferenceNode(origin) ? origin.typeName : origin.expression;
|
|
126
|
+
const direct = checker.getSymbolAtLocation(target);
|
|
127
|
+
if (direct)
|
|
128
|
+
return direct;
|
|
129
|
+
}
|
|
130
|
+
return undefined;
|
|
131
|
+
};
|
|
132
|
+
const asExternal = (ref, external) => {
|
|
133
|
+
const r = ref;
|
|
134
|
+
r.type = 'external';
|
|
135
|
+
r.external = external;
|
|
136
|
+
};
|
|
137
|
+
const asInternal = (ref, targetId) => {
|
|
138
|
+
const r = ref;
|
|
139
|
+
r.type = 'internal';
|
|
140
|
+
r.targetId = targetId;
|
|
141
|
+
};
|
|
142
|
+
const symbolSourceFile = (sym) => sym?.declarations?.find(ts.isSourceFile) ?? sym?.declarations?.[0]?.getSourceFile();
|
|
143
|
+
const classifySymbol = (sym) => {
|
|
144
|
+
if (sym.flags & ts.SymbolFlags.TypeParameter)
|
|
145
|
+
return 'type-parameter';
|
|
146
|
+
const decl = sym.declarations?.[0];
|
|
147
|
+
if (!decl)
|
|
148
|
+
return 'anonymous';
|
|
149
|
+
const file = decl.getSourceFile().fileName;
|
|
150
|
+
if (/[\\/]node_modules[\\/]typescript[\\/]lib[\\/]/.test(file) || /[\\/]lib\.[^\\/]+\.d\.ts$/.test(file)) {
|
|
151
|
+
return 'stdlib';
|
|
152
|
+
}
|
|
153
|
+
if (file.includes('/node_modules/') || file.includes('\\node_modules\\'))
|
|
154
|
+
return 'package';
|
|
155
|
+
return 'anonymous';
|
|
156
|
+
};
|
|
157
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../../src/core/reflect/resolve.ts"],"names":[],"mappings":"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"}
|