mordoc 0.1.13 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +7 -0
- package/bin/cli.js +24 -71
- package/dist/cli/asset-rewrite.d.ts +40 -0
- package/dist/cli/asset-rewrite.d.ts.map +1 -0
- package/dist/cli/asset-rewrite.js +67 -0
- package/dist/cli/asset-rewrite.js.map +1 -0
- package/dist/cli/build.d.ts +45 -15
- package/dist/cli/build.d.ts.map +1 -1
- package/dist/cli/build.js +186 -101
- package/dist/cli/build.js.map +1 -1
- package/dist/cli/dev.d.ts +26 -14
- package/dist/cli/dev.d.ts.map +1 -1
- package/dist/cli/dev.js +116 -159
- package/dist/cli/dev.js.map +1 -1
- package/dist/cli/pagefind-indexer.d.ts +15 -0
- package/dist/cli/pagefind-indexer.d.ts.map +1 -0
- package/dist/cli/pagefind-indexer.js +68 -0
- package/dist/cli/pagefind-indexer.js.map +1 -0
- package/dist/cli/paths.d.ts +26 -0
- package/dist/cli/paths.d.ts.map +1 -0
- package/dist/cli/paths.js +32 -0
- package/dist/cli/paths.js.map +1 -0
- package/dist/cli/ssg-runner.d.ts +58 -0
- package/dist/cli/ssg-runner.d.ts.map +1 -0
- package/dist/cli/ssg-runner.js +126 -0
- package/dist/cli/ssg-runner.js.map +1 -0
- package/dist/config/assets-loader.d.ts +11 -0
- package/dist/config/assets-loader.d.ts.map +1 -0
- package/dist/config/assets-loader.js +46 -0
- package/dist/config/assets-loader.js.map +1 -0
- package/dist/config/language-loader.d.ts +11 -0
- package/dist/config/language-loader.d.ts.map +1 -0
- package/dist/config/language-loader.js +61 -0
- package/dist/config/language-loader.js.map +1 -0
- package/dist/config/language.d.ts +11 -0
- package/dist/config/language.d.ts.map +1 -0
- package/dist/config/language.js +61 -0
- package/dist/config/language.js.map +1 -0
- package/dist/config/sidenav-loader.d.ts +14 -0
- package/dist/config/sidenav-loader.d.ts.map +1 -0
- package/dist/config/sidenav-loader.js +78 -0
- package/dist/config/sidenav-loader.js.map +1 -0
- package/dist/config/site-loader.d.ts +11 -0
- package/dist/config/site-loader.d.ts.map +1 -0
- package/dist/config/site-loader.js +72 -0
- package/dist/config/site-loader.js.map +1 -0
- package/dist/config/site.d.ts +11 -0
- package/dist/config/site.d.ts.map +1 -0
- package/dist/config/site.js +72 -0
- package/dist/config/site.js.map +1 -0
- package/dist/config/topnav-loader.d.ts +10 -0
- package/dist/config/topnav-loader.d.ts.map +1 -0
- package/dist/config/topnav-loader.js +78 -0
- package/dist/config/topnav-loader.js.map +1 -0
- package/dist/config/translations-loader.d.ts +7 -0
- package/dist/config/translations-loader.d.ts.map +1 -0
- package/dist/config/translations-loader.js +51 -0
- package/dist/config/translations-loader.js.map +1 -0
- package/dist/content/content-loader.d.ts +16 -0
- package/dist/content/content-loader.d.ts.map +1 -0
- package/dist/content/content-loader.js +126 -0
- package/dist/content/content-loader.js.map +1 -0
- package/dist/content/content-parser.d.ts +12 -0
- package/dist/content/content-parser.d.ts.map +1 -0
- package/dist/content/content-parser.js +54 -0
- package/dist/content/content-parser.js.map +1 -0
- package/dist/content/content-transformer.d.ts +17 -0
- package/dist/content/content-transformer.d.ts.map +1 -0
- package/dist/content/content-transformer.js +94 -0
- package/dist/content/content-transformer.js.map +1 -0
- package/dist/content/markdoc-config.d.ts +13 -0
- package/dist/content/markdoc-config.d.ts.map +1 -0
- package/dist/content/markdoc-config.js +210 -0
- package/dist/content/markdoc-config.js.map +1 -0
- package/dist/content/slug.d.ts +26 -0
- package/dist/content/slug.d.ts.map +1 -0
- package/dist/content/slug.js +31 -0
- package/dist/content/slug.js.map +1 -0
- package/dist/pipeline.d.ts +61 -0
- package/dist/pipeline.d.ts.map +1 -0
- package/dist/pipeline.js +123 -0
- package/dist/pipeline.js.map +1 -0
- package/dist/types/assets.d.ts +15 -0
- package/dist/types/assets.d.ts.map +1 -0
- package/dist/types/assets.js +2 -0
- package/dist/types/assets.js.map +1 -0
- package/dist/types/content.d.ts +114 -32
- package/dist/types/content.d.ts.map +1 -1
- package/dist/types/content.js +1 -6
- package/dist/types/content.js.map +1 -1
- package/dist/types/language.d.ts +9 -0
- package/dist/types/language.d.ts.map +1 -0
- package/dist/types/language.js +2 -0
- package/dist/types/language.js.map +1 -0
- package/dist/types/navigation.d.ts +24 -36
- package/dist/types/navigation.d.ts.map +1 -1
- package/dist/types/navigation.js +1 -6
- package/dist/types/navigation.js.map +1 -1
- package/dist/types/pipeline.d.ts +70 -0
- package/dist/types/pipeline.d.ts.map +1 -0
- package/dist/types/pipeline.js +2 -0
- package/dist/types/pipeline.js.map +1 -0
- package/dist/types/site.d.ts +20 -0
- package/dist/types/site.d.ts.map +1 -0
- package/dist/types/site.js +2 -0
- package/dist/types/site.js.map +1 -0
- package/dist/utils/lang-utils.d.ts +23 -0
- package/dist/utils/lang-utils.d.ts.map +1 -0
- package/dist/utils/lang-utils.js +40 -0
- package/dist/utils/lang-utils.js.map +1 -0
- package/dist/utils/paths.d.ts +25 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +31 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/vite/plugin.d.ts +93 -0
- package/dist/vite/plugin.d.ts.map +1 -0
- package/dist/vite/plugin.js +435 -0
- package/dist/vite/plugin.js.map +1 -0
- package/package.json +46 -61
- package/src/app/App.module.css +82 -0
- package/src/app/App.tsx +95 -0
- package/src/app/content/Content.module.css +357 -0
- package/src/app/content/Content.tsx +212 -0
- package/src/app/content/callout/Callout.module.css +110 -0
- package/src/app/content/callout/Callout.tsx +82 -0
- package/src/app/content/card/Card.module.css +146 -0
- package/src/app/content/card/Card.tsx +110 -0
- package/src/app/content/card/CardGrid.module.css +22 -0
- package/src/app/content/card/CardGrid.tsx +34 -0
- package/src/app/content/code-block/CodeBlock.module.css +237 -0
- package/src/app/content/code-block/CodeBlock.tsx +123 -0
- package/src/app/content/heading/Heading.module.css +52 -0
- package/src/app/content/heading/Heading.tsx +75 -0
- package/src/app/content/image/Image.module.css +113 -0
- package/src/app/content/image/Image.tsx +98 -0
- package/src/app/content/link/ContentLink.tsx +46 -0
- package/src/app/data-context.tsx +39 -0
- package/src/app/entry-server.tsx +58 -0
- package/src/app/footer/Footer.module.css +36 -0
- package/src/app/footer/Footer.tsx +28 -0
- package/src/app/globals.d.ts +40 -0
- package/src/app/header/Header.module.css +205 -0
- package/src/app/header/Header.tsx +188 -0
- package/src/app/header/LanguagePicker.module.css +97 -0
- package/src/app/header/LanguagePicker.tsx +174 -0
- package/src/app/header/SearchBar.module.css +92 -0
- package/src/app/header/SearchBar.tsx +37 -0
- package/src/app/header/SearchModal.module.css +185 -0
- package/src/app/header/SearchModal.tsx +245 -0
- package/src/app/header/Topnav.module.css +37 -0
- package/src/app/header/Topnav.tsx +30 -0
- package/src/app/index.css +119 -0
- package/src/app/index.html +13 -0
- package/src/app/landing/LandingPage.module.css +14 -0
- package/src/app/landing/LandingPage.tsx +62 -0
- package/src/app/landing/button/Button.module.css +37 -0
- package/src/app/landing/button/Button.tsx +50 -0
- package/src/app/landing/hero/Hero.module.css +108 -0
- package/src/app/landing/hero/Hero.tsx +81 -0
- package/src/app/landing/section/Section.module.css +100 -0
- package/src/app/landing/section/Section.tsx +61 -0
- package/src/app/lang-utils.ts +11 -0
- package/src/app/main.tsx +67 -0
- package/src/app/not-found/NotFound.module.css +92 -0
- package/src/app/not-found/NotFound.tsx +34 -0
- package/src/app/routes.tsx +86 -0
- package/src/app/sidenav/Sidenav.module.css +239 -0
- package/src/app/sidenav/Sidenav.tsx +182 -0
- package/src/app/skeleton/Skeleton.module.css +100 -0
- package/src/app/skeleton/Skeleton.tsx +75 -0
- package/src/app/toc/Toc.module.css +59 -0
- package/src/app/toc/Toc.tsx +77 -0
- package/src/app/tsconfig.json +18 -0
- package/src/app/virtual-modules.d.ts +74 -0
- package/dist/assets/fonts/inter/Inter-Italic-VariableFont_opsz,wght.ttf +0 -0
- package/dist/assets/fonts/inter/Inter-VariableFont_opsz,wght.ttf +0 -0
- package/dist/assets/fonts/inter/OFL.txt +0 -93
- package/dist/build/Builder.d.ts +0 -92
- package/dist/build/Builder.d.ts.map +0 -1
- package/dist/build/Builder.js +0 -394
- package/dist/build/Builder.js.map +0 -1
- package/dist/build/ClientBundler.d.ts +0 -48
- package/dist/build/ClientBundler.d.ts.map +0 -1
- package/dist/build/ClientBundler.js +0 -169
- package/dist/build/ClientBundler.js.map +0 -1
- package/dist/build/HtmlGenerator.d.ts +0 -46
- package/dist/build/HtmlGenerator.d.ts.map +0 -1
- package/dist/build/HtmlGenerator.js +0 -190
- package/dist/build/HtmlGenerator.js.map +0 -1
- package/dist/build/SearchIndexer.d.ts +0 -31
- package/dist/build/SearchIndexer.d.ts.map +0 -1
- package/dist/build/SearchIndexer.js +0 -116
- package/dist/build/SearchIndexer.js.map +0 -1
- package/dist/bundles/client.js +0 -126
- package/dist/cli/create-app.d.ts +0 -14
- package/dist/cli/create-app.d.ts.map +0 -1
- package/dist/cli/create-app.js +0 -241
- package/dist/cli/create-app.js.map +0 -1
- package/dist/client/App.d.ts +0 -17
- package/dist/client/App.d.ts.map +0 -1
- package/dist/client/App.js +0 -91
- package/dist/client/App.js.map +0 -1
- package/dist/client/contexts/ConfigContext.d.ts +0 -22
- package/dist/client/contexts/ConfigContext.d.ts.map +0 -1
- package/dist/client/contexts/ConfigContext.js +0 -27
- package/dist/client/contexts/ConfigContext.js.map +0 -1
- package/dist/client/contexts/ContentContext.d.ts +0 -31
- package/dist/client/contexts/ContentContext.d.ts.map +0 -1
- package/dist/client/contexts/ContentContext.js +0 -46
- package/dist/client/contexts/ContentContext.js.map +0 -1
- package/dist/client/contexts/SearchContext.d.ts +0 -38
- package/dist/client/contexts/SearchContext.d.ts.map +0 -1
- package/dist/client/contexts/SearchContext.js +0 -185
- package/dist/client/contexts/SearchContext.js.map +0 -1
- package/dist/client/contexts/ThemeContext.d.ts +0 -23
- package/dist/client/contexts/ThemeContext.d.ts.map +0 -1
- package/dist/client/contexts/ThemeContext.js +0 -53
- package/dist/client/contexts/ThemeContext.js.map +0 -1
- package/dist/client/hooks/useContent.d.ts +0 -12
- package/dist/client/hooks/useContent.d.ts.map +0 -1
- package/dist/client/hooks/useContent.js +0 -74
- package/dist/client/hooks/useContent.js.map +0 -1
- package/dist/client/hooks/useNavigation.d.ts +0 -15
- package/dist/client/hooks/useNavigation.d.ts.map +0 -1
- package/dist/client/hooks/useNavigation.js +0 -101
- package/dist/client/hooks/useNavigation.js.map +0 -1
- package/dist/client/hooks/useSearch.d.ts +0 -22
- package/dist/client/hooks/useSearch.d.ts.map +0 -1
- package/dist/client/hooks/useSearch.js +0 -64
- package/dist/client/hooks/useSearch.js.map +0 -1
- package/dist/client/main.d.ts +0 -5
- package/dist/client/main.d.ts.map +0 -1
- package/dist/client/main.js +0 -66
- package/dist/client/main.js.map +0 -1
- package/dist/components/Callout.d.ts +0 -9
- package/dist/components/Callout.d.ts.map +0 -1
- package/dist/components/Callout.js +0 -24
- package/dist/components/Callout.js.map +0 -1
- package/dist/components/Card.d.ts +0 -10
- package/dist/components/Card.d.ts.map +0 -1
- package/dist/components/Card.js +0 -15
- package/dist/components/Card.js.map +0 -1
- package/dist/components/CardGrid.d.ts +0 -8
- package/dist/components/CardGrid.d.ts.map +0 -1
- package/dist/components/CardGrid.js +0 -9
- package/dist/components/CardGrid.js.map +0 -1
- package/dist/components/CodeBlock.d.ts +0 -28
- package/dist/components/CodeBlock.d.ts.map +0 -1
- package/dist/components/CodeBlock.js +0 -80
- package/dist/components/CodeBlock.js.map +0 -1
- package/dist/components/ContentPage.d.ts +0 -9
- package/dist/components/ContentPage.d.ts.map +0 -1
- package/dist/components/ContentPage.js +0 -102
- package/dist/components/ContentPage.js.map +0 -1
- package/dist/components/Header.d.ts +0 -14
- package/dist/components/Header.d.ts.map +0 -1
- package/dist/components/Header.js +0 -30
- package/dist/components/Header.js.map +0 -1
- package/dist/components/Heading.d.ts +0 -16
- package/dist/components/Heading.d.ts.map +0 -1
- package/dist/components/Heading.js +0 -31
- package/dist/components/Heading.js.map +0 -1
- package/dist/components/Image.d.ts +0 -8
- package/dist/components/Image.d.ts.map +0 -1
- package/dist/components/Image.js +0 -24
- package/dist/components/Image.js.map +0 -1
- package/dist/components/Layout.d.ts +0 -14
- package/dist/components/Layout.d.ts.map +0 -1
- package/dist/components/Layout.js +0 -32
- package/dist/components/Layout.js.map +0 -1
- package/dist/components/MarkdocRenderer.d.ts +0 -15
- package/dist/components/MarkdocRenderer.d.ts.map +0 -1
- package/dist/components/MarkdocRenderer.js +0 -73
- package/dist/components/MarkdocRenderer.js.map +0 -1
- package/dist/components/MobileMenu.d.ts +0 -14
- package/dist/components/MobileMenu.d.ts.map +0 -1
- package/dist/components/MobileMenu.js +0 -45
- package/dist/components/MobileMenu.js.map +0 -1
- package/dist/components/PageNavigation.d.ts +0 -9
- package/dist/components/PageNavigation.d.ts.map +0 -1
- package/dist/components/PageNavigation.js +0 -23
- package/dist/components/PageNavigation.js.map +0 -1
- package/dist/components/SearchModal.d.ts +0 -9
- package/dist/components/SearchModal.d.ts.map +0 -1
- package/dist/components/SearchModal.js +0 -74
- package/dist/components/SearchModal.js.map +0 -1
- package/dist/components/SideNav.d.ts +0 -9
- package/dist/components/SideNav.d.ts.map +0 -1
- package/dist/components/SideNav.js +0 -66
- package/dist/components/SideNav.js.map +0 -1
- package/dist/components/TableOfContents.d.ts +0 -10
- package/dist/components/TableOfContents.d.ts.map +0 -1
- package/dist/components/TableOfContents.js +0 -151
- package/dist/components/TableOfContents.js.map +0 -1
- package/dist/config/ConfigLoader.d.ts +0 -50
- package/dist/config/ConfigLoader.d.ts.map +0 -1
- package/dist/config/ConfigLoader.js +0 -214
- package/dist/config/ConfigLoader.js.map +0 -1
- package/dist/config/StyleCompiler.d.ts +0 -17
- package/dist/config/StyleCompiler.d.ts.map +0 -1
- package/dist/config/StyleCompiler.js +0 -116
- package/dist/config/StyleCompiler.js.map +0 -1
- package/dist/config/ThemeGenerator.d.ts +0 -14
- package/dist/config/ThemeGenerator.d.ts.map +0 -1
- package/dist/config/ThemeGenerator.js +0 -129
- package/dist/config/ThemeGenerator.js.map +0 -1
- package/dist/content/ContentLoader.d.ts +0 -70
- package/dist/content/ContentLoader.d.ts.map +0 -1
- package/dist/content/ContentLoader.js +0 -146
- package/dist/content/ContentLoader.js.map +0 -1
- package/dist/content/ContentProcessor.d.ts +0 -84
- package/dist/content/ContentProcessor.d.ts.map +0 -1
- package/dist/content/ContentProcessor.js +0 -380
- package/dist/content/ContentProcessor.js.map +0 -1
- package/dist/content/RouteManager.d.ts +0 -69
- package/dist/content/RouteManager.d.ts.map +0 -1
- package/dist/content/RouteManager.js +0 -143
- package/dist/content/RouteManager.js.map +0 -1
- package/dist/styles/components/callout.d.ts +0 -11
- package/dist/styles/components/callout.d.ts.map +0 -1
- package/dist/styles/components/callout.js +0 -87
- package/dist/styles/components/callout.js.map +0 -1
- package/dist/styles/components/card.d.ts +0 -11
- package/dist/styles/components/card.d.ts.map +0 -1
- package/dist/styles/components/card.js +0 -179
- package/dist/styles/components/card.js.map +0 -1
- package/dist/styles/components/codeblock.d.ts +0 -11
- package/dist/styles/components/codeblock.d.ts.map +0 -1
- package/dist/styles/components/codeblock.js +0 -251
- package/dist/styles/components/codeblock.js.map +0 -1
- package/dist/styles/components/content.d.ts +0 -11
- package/dist/styles/components/content.d.ts.map +0 -1
- package/dist/styles/components/content.js +0 -197
- package/dist/styles/components/content.js.map +0 -1
- package/dist/styles/components/fonts.d.ts +0 -11
- package/dist/styles/components/fonts.d.ts.map +0 -1
- package/dist/styles/components/fonts.js +0 -34
- package/dist/styles/components/fonts.js.map +0 -1
- package/dist/styles/components/header.d.ts +0 -11
- package/dist/styles/components/header.d.ts.map +0 -1
- package/dist/styles/components/header.js +0 -293
- package/dist/styles/components/header.js.map +0 -1
- package/dist/styles/components/heading.d.ts +0 -11
- package/dist/styles/components/heading.d.ts.map +0 -1
- package/dist/styles/components/heading.js +0 -115
- package/dist/styles/components/heading.js.map +0 -1
- package/dist/styles/components/layout.d.ts +0 -11
- package/dist/styles/components/layout.d.ts.map +0 -1
- package/dist/styles/components/layout.js +0 -79
- package/dist/styles/components/layout.js.map +0 -1
- package/dist/styles/components/mobilemenu.d.ts +0 -11
- package/dist/styles/components/mobilemenu.d.ts.map +0 -1
- package/dist/styles/components/mobilemenu.js +0 -112
- package/dist/styles/components/mobilemenu.js.map +0 -1
- package/dist/styles/components/reset.d.ts +0 -11
- package/dist/styles/components/reset.d.ts.map +0 -1
- package/dist/styles/components/reset.js +0 -131
- package/dist/styles/components/reset.js.map +0 -1
- package/dist/styles/components/searchmodal.d.ts +0 -11
- package/dist/styles/components/searchmodal.d.ts.map +0 -1
- package/dist/styles/components/searchmodal.js +0 -333
- package/dist/styles/components/searchmodal.js.map +0 -1
- package/dist/styles/components/sidenav.d.ts +0 -11
- package/dist/styles/components/sidenav.d.ts.map +0 -1
- package/dist/styles/components/sidenav.js +0 -212
- package/dist/styles/components/sidenav.js.map +0 -1
- package/dist/styles/components/toc.d.ts +0 -11
- package/dist/styles/components/toc.d.ts.map +0 -1
- package/dist/styles/components/toc.js +0 -120
- package/dist/styles/components/toc.js.map +0 -1
- package/dist/styles/components/typography.d.ts +0 -11
- package/dist/styles/components/typography.d.ts.map +0 -1
- package/dist/styles/components/typography.js +0 -248
- package/dist/styles/components/typography.js.map +0 -1
- package/dist/styles/components/utility.d.ts +0 -11
- package/dist/styles/components/utility.d.ts.map +0 -1
- package/dist/styles/components/utility.js +0 -231
- package/dist/styles/components/utility.js.map +0 -1
- package/dist/styles/types.d.ts +0 -79
- package/dist/styles/types.d.ts.map +0 -1
- package/dist/styles/types.js +0 -7
- package/dist/styles/types.js.map +0 -1
- package/dist/styles/utils.d.ts +0 -21
- package/dist/styles/utils.d.ts.map +0 -1
- package/dist/styles/utils.js +0 -50
- package/dist/styles/utils.js.map +0 -1
- package/dist/styles/variables/main.d.ts +0 -15
- package/dist/styles/variables/main.d.ts.map +0 -1
- package/dist/styles/variables/main.js +0 -116
- package/dist/styles/variables/main.js.map +0 -1
- package/dist/types/config.d.ts +0 -43
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types/config.js +0 -7
- package/dist/types/config.js.map +0 -1
- package/dist/utils/language-utils.d.ts +0 -41
- package/dist/utils/language-utils.d.ts.map +0 -1
- package/dist/utils/language-utils.js +0 -79
- package/dist/utils/language-utils.js.map +0 -1
- package/dist/utils/slugify.d.ts +0 -20
- package/dist/utils/slugify.d.ts.map +0 -1
- package/dist/utils/slugify.js +0 -44
- package/dist/utils/slugify.js.map +0 -1
- package/templates/default/config/favicon.ico +0 -0
- package/templates/default/config/logo-dark.png +0 -0
- package/templates/default/config/logo.png +0 -0
- package/templates/default/config/sidenav.yaml +0 -36
- package/templates/default/config/site.json +0 -16
- package/templates/default/config/styles/main.json +0 -6
- package/templates/default/config/styles/typography.json +0 -6
- package/templates/default/content/en/changelog.md +0 -35
- package/templates/default/content/en/faq.md +0 -50
- package/templates/default/content/en/field-manual/engines.md +0 -59
- package/templates/default/content/en/field-manual/relativity.md +0 -46
- package/templates/default/content/en/field-manual/safety.md +0 -44
- package/templates/default/content/en/field-manual.md +0 -22
- package/templates/default/content/en/flight-school/navigation.md +0 -61
- package/templates/default/content/en/flight-school/primer.md +0 -64
- package/templates/default/content/en/flight-school.md +0 -48
- package/templates/default/content/en/index.md +0 -83
- package/templates/default/content/en/ship-systems/flux-sails.md +0 -33
- package/templates/default/content/en/ship-systems/photonic-core.md +0 -39
- package/templates/default/content/en/ship-systems.md +0 -25
- package/templates/default/package.json +0 -21
- package/templates/default/public/icons/academy.svg +0 -15
- package/templates/default/public/icons/manual.svg +0 -16
- package/templates/default/public/icons/relativity.svg +0 -16
- package/templates/default/public/icons/systems.svg +0 -14
- package/templates/default/public/icons/warning.svg +0 -14
- package/templates/default/public/images/flux-sails.svg +0 -33
- package/templates/default/public/images/photonic-core.svg +0 -44
- package/templates/default/public/images/starwake.svg +0 -49
package/dist/build/Builder.js
DELETED
|
@@ -1,394 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Builder - Main build orchestrator for Mordoc
|
|
4
|
-
* Coordinates the entire static site generation process
|
|
5
|
-
*/
|
|
6
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
-
};
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.Builder = void 0;
|
|
11
|
-
const fs_1 = __importDefault(require("fs"));
|
|
12
|
-
const path_1 = __importDefault(require("path"));
|
|
13
|
-
const ConfigLoader_1 = require("../config/ConfigLoader");
|
|
14
|
-
const ThemeGenerator_1 = require("../config/ThemeGenerator");
|
|
15
|
-
const ContentLoader_1 = require("../content/ContentLoader");
|
|
16
|
-
const ContentProcessor_1 = require("../content/ContentProcessor");
|
|
17
|
-
const RouteManager_1 = require("../content/RouteManager");
|
|
18
|
-
const HtmlGenerator_1 = require("./HtmlGenerator");
|
|
19
|
-
const ClientBundler_1 = require("./ClientBundler");
|
|
20
|
-
const StyleCompiler_1 = require("../config/StyleCompiler");
|
|
21
|
-
const main_1 = require("../styles/variables/main");
|
|
22
|
-
const SearchIndexer_1 = require("./SearchIndexer");
|
|
23
|
-
class Builder {
|
|
24
|
-
constructor(options) {
|
|
25
|
-
this.projectRoot = options.projectRoot;
|
|
26
|
-
this.outputDir = options.outputDir || path_1.default.join(this.projectRoot, 'dist');
|
|
27
|
-
this.contentDir = path_1.default.join(this.projectRoot, 'content');
|
|
28
|
-
this.configDir = path_1.default.join(this.projectRoot, 'config');
|
|
29
|
-
this.publicDir = path_1.default.join(this.projectRoot, 'public');
|
|
30
|
-
this.clean = options.clean ?? true;
|
|
31
|
-
this.includeDrafts = options.includeDrafts ?? false;
|
|
32
|
-
this.verbose = options.verbose ?? false;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Execute the complete build process
|
|
36
|
-
*/
|
|
37
|
-
async build() {
|
|
38
|
-
this.log('Starting Mordoc build...');
|
|
39
|
-
try {
|
|
40
|
-
// Step 1: Clean and prepare output directory
|
|
41
|
-
if (this.clean) {
|
|
42
|
-
this.log('Cleaning output directory...');
|
|
43
|
-
this.cleanOutputDir();
|
|
44
|
-
}
|
|
45
|
-
this.ensureOutputDir();
|
|
46
|
-
// Step 2: Load configuration
|
|
47
|
-
this.log('Loading configuration...');
|
|
48
|
-
const siteConfig = await this.loadConfig();
|
|
49
|
-
// Step 3: Load and process content
|
|
50
|
-
this.log('Loading content files...');
|
|
51
|
-
const processedContent = await this.loadAndProcessContent(siteConfig);
|
|
52
|
-
this.log(`Processed ${processedContent.length} content files`);
|
|
53
|
-
// Step 4: Generate static HTML pages
|
|
54
|
-
this.log('Generating static HTML pages...');
|
|
55
|
-
await this.generateHtmlPages(processedContent, siteConfig);
|
|
56
|
-
// Step 5: Generate content data JSON files (for SPA navigation)
|
|
57
|
-
this.log('Generating content data files...');
|
|
58
|
-
this.generateContentDataFiles(processedContent);
|
|
59
|
-
// Step 6: Generate theme CSS
|
|
60
|
-
this.log('Generating theme CSS...');
|
|
61
|
-
this.generateThemeCSS(siteConfig);
|
|
62
|
-
// Step 7: Bundle client React app
|
|
63
|
-
this.log('Bundling client application...');
|
|
64
|
-
await this.bundleClientApp();
|
|
65
|
-
// Step 8: Copy static assets
|
|
66
|
-
this.log('Copying static assets...');
|
|
67
|
-
this.copyStaticAssets(siteConfig);
|
|
68
|
-
// Step 9: Generate client config
|
|
69
|
-
this.log('Generating client configuration...');
|
|
70
|
-
this.generateClientConfig(siteConfig);
|
|
71
|
-
// Step 10: Generate search index with Pagefind
|
|
72
|
-
this.log('Generating search index...');
|
|
73
|
-
await this.generateSearchIndex();
|
|
74
|
-
this.log('✓ Build completed successfully!');
|
|
75
|
-
this.printBuildStats(processedContent);
|
|
76
|
-
}
|
|
77
|
-
catch (error) {
|
|
78
|
-
console.error('Build failed:', error.message);
|
|
79
|
-
if (this.verbose) {
|
|
80
|
-
console.error(error.stack);
|
|
81
|
-
}
|
|
82
|
-
throw error;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Load site configuration
|
|
87
|
-
*/
|
|
88
|
-
async loadConfig() {
|
|
89
|
-
const configLoader = new ConfigLoader_1.ConfigLoader(this.projectRoot);
|
|
90
|
-
return await configLoader.load();
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Load and process all content files
|
|
94
|
-
*/
|
|
95
|
-
async loadAndProcessContent(siteConfig) {
|
|
96
|
-
// Create route manager with language settings
|
|
97
|
-
const routeManager = new RouteManager_1.RouteManager(siteConfig.defaultLanguage, siteConfig.languages.map((lang) => lang.code));
|
|
98
|
-
// Load content files
|
|
99
|
-
const contentLoader = new ContentLoader_1.ContentLoader(this.contentDir, routeManager);
|
|
100
|
-
const rawFiles = await contentLoader.loadAll();
|
|
101
|
-
// Process content
|
|
102
|
-
const contentProcessor = new ContentProcessor_1.ContentProcessor();
|
|
103
|
-
const processedContent = contentProcessor.processAll(rawFiles);
|
|
104
|
-
return processedContent;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Generate static HTML pages for all content
|
|
108
|
-
*/
|
|
109
|
-
async generateHtmlPages(processedContent, siteConfig) {
|
|
110
|
-
const htmlGenerator = new HtmlGenerator_1.HtmlGenerator({ siteConfig });
|
|
111
|
-
for (const content of processedContent) {
|
|
112
|
-
// Skip drafts in production
|
|
113
|
-
if (!this.includeDrafts && content.metadata.frontmatter.draft) {
|
|
114
|
-
continue;
|
|
115
|
-
}
|
|
116
|
-
const html = htmlGenerator.generatePage(content);
|
|
117
|
-
this.writeHtmlFile(content, html);
|
|
118
|
-
}
|
|
119
|
-
// Generate 404 page
|
|
120
|
-
const html404 = htmlGenerator.generate404Page();
|
|
121
|
-
const path404 = path_1.default.join(this.outputDir, '404.html');
|
|
122
|
-
fs_1.default.writeFileSync(path404, html404, 'utf8');
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Write HTML file for a content page
|
|
126
|
-
*/
|
|
127
|
-
writeHtmlFile(content, html) {
|
|
128
|
-
const { metadata } = content;
|
|
129
|
-
const { language, slug, path: urlPath } = metadata;
|
|
130
|
-
// Determine output path
|
|
131
|
-
let outputPath;
|
|
132
|
-
if (language === metadata.frontmatter.sidenavRef || language === 'en') {
|
|
133
|
-
// Default language
|
|
134
|
-
outputPath = slug === 'index'
|
|
135
|
-
? path_1.default.join(this.outputDir, 'index.html')
|
|
136
|
-
: path_1.default.join(this.outputDir, urlPath, 'index.html');
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
// Non-default language
|
|
140
|
-
outputPath = slug === 'index'
|
|
141
|
-
? path_1.default.join(this.outputDir, language, 'index.html')
|
|
142
|
-
: path_1.default.join(this.outputDir, language, urlPath, 'index.html');
|
|
143
|
-
}
|
|
144
|
-
// Ensure directory exists
|
|
145
|
-
fs_1.default.mkdirSync(path_1.default.dirname(outputPath), { recursive: true });
|
|
146
|
-
// Write HTML file
|
|
147
|
-
fs_1.default.writeFileSync(outputPath, html, 'utf8');
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Generate JSON data files for SPA navigation
|
|
151
|
-
*/
|
|
152
|
-
generateContentDataFiles(processedContent) {
|
|
153
|
-
const contentDataDir = path_1.default.join(this.outputDir, 'content-data');
|
|
154
|
-
fs_1.default.mkdirSync(contentDataDir, { recursive: true });
|
|
155
|
-
for (const content of processedContent) {
|
|
156
|
-
// Skip drafts
|
|
157
|
-
if (!this.includeDrafts && content.metadata.frontmatter.draft) {
|
|
158
|
-
continue;
|
|
159
|
-
}
|
|
160
|
-
const dataFile = {
|
|
161
|
-
metadata: content.metadata,
|
|
162
|
-
renderable: content.renderable,
|
|
163
|
-
};
|
|
164
|
-
const json = JSON.stringify(dataFile);
|
|
165
|
-
const { language, slug, dirPath } = content.metadata;
|
|
166
|
-
// Determine output path
|
|
167
|
-
let outputPath;
|
|
168
|
-
if (language === 'en') {
|
|
169
|
-
// For default language
|
|
170
|
-
if (slug === 'index' && !dirPath) {
|
|
171
|
-
// Root index page
|
|
172
|
-
outputPath = path_1.default.join(contentDataDir, 'index.json');
|
|
173
|
-
}
|
|
174
|
-
else if (dirPath) {
|
|
175
|
-
// Page in subdirectory
|
|
176
|
-
outputPath = path_1.default.join(contentDataDir, dirPath, `${slug}.json`);
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
// Page at root level
|
|
180
|
-
outputPath = path_1.default.join(contentDataDir, `${slug}.json`);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
else {
|
|
184
|
-
// For non-default languages
|
|
185
|
-
const langDir = path_1.default.join(contentDataDir, language);
|
|
186
|
-
fs_1.default.mkdirSync(langDir, { recursive: true });
|
|
187
|
-
if (slug === 'index' && !dirPath) {
|
|
188
|
-
// Root index page in non-default language
|
|
189
|
-
outputPath = path_1.default.join(langDir, 'index.json');
|
|
190
|
-
}
|
|
191
|
-
else if (dirPath) {
|
|
192
|
-
// Page in subdirectory in non-default language
|
|
193
|
-
outputPath = path_1.default.join(langDir, dirPath, `${slug}.json`);
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
// Page at root level in non-default language
|
|
197
|
-
outputPath = path_1.default.join(langDir, `${slug}.json`);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
// Ensure directory exists
|
|
201
|
-
fs_1.default.mkdirSync(path_1.default.dirname(outputPath), { recursive: true });
|
|
202
|
-
// Write file
|
|
203
|
-
fs_1.default.writeFileSync(outputPath, json, 'utf8');
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* Generate theme CSS and component styles
|
|
208
|
-
*/
|
|
209
|
-
generateThemeCSS(siteConfig) {
|
|
210
|
-
const assetsDir = path_1.default.join(this.outputDir, 'assets');
|
|
211
|
-
fs_1.default.mkdirSync(assetsDir, { recursive: true });
|
|
212
|
-
// Load user style overrides and generate styles
|
|
213
|
-
const styleCompiler = new StyleCompiler_1.StyleCompiler(this.projectRoot);
|
|
214
|
-
const stylesCss = styleCompiler.generateCSS();
|
|
215
|
-
const stylesPath = path_1.default.join(assetsDir, 'styles.css');
|
|
216
|
-
fs_1.default.writeFileSync(stylesPath, stylesCss, 'utf8');
|
|
217
|
-
// Generate theme.css (CSS variables) using global defaults
|
|
218
|
-
const globalVars = (0, main_1.mergeGlobalOverrides)();
|
|
219
|
-
const themeGenerator = new ThemeGenerator_1.ThemeGenerator(globalVars);
|
|
220
|
-
const themeCss = themeGenerator.generateCSSVariables();
|
|
221
|
-
const themePath = path_1.default.join(assetsDir, 'theme.css');
|
|
222
|
-
fs_1.default.writeFileSync(themePath, themeCss, 'utf8');
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Bundle client React application
|
|
226
|
-
*/
|
|
227
|
-
async bundleClientApp() {
|
|
228
|
-
// Get the Mordoc package root (where src/ is located)
|
|
229
|
-
const mordocRoot = path_1.default.join(__dirname, '../..');
|
|
230
|
-
const bundler = new ClientBundler_1.ClientBundler({
|
|
231
|
-
projectRoot: mordocRoot,
|
|
232
|
-
outputDir: this.outputDir,
|
|
233
|
-
minify: !this.verbose, // Don't minify in verbose mode for debugging
|
|
234
|
-
sourcemap: this.verbose, // Generate sourcemaps in verbose mode
|
|
235
|
-
});
|
|
236
|
-
await bundler.bundle();
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* Copy static assets (logo, favicon, public/ folder, and MORDOC fonts)
|
|
240
|
-
*/
|
|
241
|
-
copyStaticAssets(siteConfig) {
|
|
242
|
-
const assetsDir = path_1.default.join(this.outputDir, 'assets');
|
|
243
|
-
fs_1.default.mkdirSync(assetsDir, { recursive: true });
|
|
244
|
-
// Copy MORDOC's built-in fonts
|
|
245
|
-
this.copyMordocAssets();
|
|
246
|
-
// Copy logo
|
|
247
|
-
if (siteConfig.assets.logo) {
|
|
248
|
-
const logoSrc = path_1.default.join(this.configDir, siteConfig.assets.logo);
|
|
249
|
-
if (fs_1.default.existsSync(logoSrc)) {
|
|
250
|
-
const logoDest = path_1.default.join(assetsDir, siteConfig.assets.logo);
|
|
251
|
-
fs_1.default.copyFileSync(logoSrc, logoDest);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
// Copy dark mode logo
|
|
255
|
-
if (siteConfig.assets.logoDark) {
|
|
256
|
-
const logoDarkSrc = path_1.default.join(this.configDir, siteConfig.assets.logoDark);
|
|
257
|
-
if (fs_1.default.existsSync(logoDarkSrc)) {
|
|
258
|
-
const logoDarkDest = path_1.default.join(assetsDir, siteConfig.assets.logoDark);
|
|
259
|
-
fs_1.default.copyFileSync(logoDarkSrc, logoDarkDest);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
// Copy favicon
|
|
263
|
-
if (siteConfig.assets.favicon) {
|
|
264
|
-
const faviconSrc = path_1.default.join(this.configDir, siteConfig.assets.favicon);
|
|
265
|
-
if (fs_1.default.existsSync(faviconSrc)) {
|
|
266
|
-
const faviconDest = path_1.default.join(assetsDir, siteConfig.assets.favicon);
|
|
267
|
-
fs_1.default.copyFileSync(faviconSrc, faviconDest);
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
// Copy public/ directory
|
|
271
|
-
if (fs_1.default.existsSync(this.publicDir)) {
|
|
272
|
-
this.copyDirectory(this.publicDir, this.outputDir);
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
/**
|
|
276
|
-
* Copy MORDOC's built-in assets (fonts, etc.)
|
|
277
|
-
* Uses pre-copied assets from dist/ in installed package
|
|
278
|
-
*/
|
|
279
|
-
copyMordocAssets() {
|
|
280
|
-
const mordocRoot = path_1.default.join(__dirname, '../..');
|
|
281
|
-
// Use dist/assets (created during package build)
|
|
282
|
-
const mordocAssetsDir = path_1.default.join(mordocRoot, 'dist/assets');
|
|
283
|
-
// Gracefully skip if assets directory doesn't exist
|
|
284
|
-
if (!fs_1.default.existsSync(mordocAssetsDir)) {
|
|
285
|
-
return;
|
|
286
|
-
}
|
|
287
|
-
const outputAssetsDir = path_1.default.join(this.outputDir, 'assets');
|
|
288
|
-
// Copy fonts
|
|
289
|
-
const fontsSource = path_1.default.join(mordocAssetsDir, 'fonts');
|
|
290
|
-
if (fs_1.default.existsSync(fontsSource)) {
|
|
291
|
-
const fontsDestination = path_1.default.join(outputAssetsDir, 'fonts');
|
|
292
|
-
this.copyDirectory(fontsSource, fontsDestination);
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
/**
|
|
296
|
-
* Generate client configuration JSON
|
|
297
|
-
*/
|
|
298
|
-
generateClientConfig(siteConfig) {
|
|
299
|
-
// Client config (subset of site config for browser)
|
|
300
|
-
const clientConfig = {
|
|
301
|
-
metadata: siteConfig.metadata,
|
|
302
|
-
languages: siteConfig.languages,
|
|
303
|
-
defaultLanguage: siteConfig.defaultLanguage,
|
|
304
|
-
navigation: siteConfig.navigation,
|
|
305
|
-
assets: siteConfig.assets,
|
|
306
|
-
};
|
|
307
|
-
const configPath = path_1.default.join(this.outputDir, 'config.json');
|
|
308
|
-
fs_1.default.writeFileSync(configPath, JSON.stringify(clientConfig), 'utf8');
|
|
309
|
-
}
|
|
310
|
-
/**
|
|
311
|
-
* Generate search index using Pagefind
|
|
312
|
-
*/
|
|
313
|
-
async generateSearchIndex() {
|
|
314
|
-
try {
|
|
315
|
-
const searchIndexer = new SearchIndexer_1.SearchIndexer({
|
|
316
|
-
outputDir: this.outputDir,
|
|
317
|
-
verbose: this.verbose,
|
|
318
|
-
});
|
|
319
|
-
await searchIndexer.generateIndex();
|
|
320
|
-
}
|
|
321
|
-
catch (error) {
|
|
322
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
323
|
-
console.warn(`⚠️ Search indexing failed: ${errorMessage}`);
|
|
324
|
-
console.warn(' Search functionality will not be available.');
|
|
325
|
-
console.warn(' The build will continue, but search will be disabled.');
|
|
326
|
-
// Don't throw - allow build to complete even if search indexing fails
|
|
327
|
-
// This is useful for development or if Pagefind binary has issues
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
/**
|
|
331
|
-
* Clean output directory
|
|
332
|
-
*/
|
|
333
|
-
cleanOutputDir() {
|
|
334
|
-
if (fs_1.default.existsSync(this.outputDir)) {
|
|
335
|
-
fs_1.default.rmSync(this.outputDir, { recursive: true, force: true });
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
/**
|
|
339
|
-
* Ensure output directory exists
|
|
340
|
-
*/
|
|
341
|
-
ensureOutputDir() {
|
|
342
|
-
if (!fs_1.default.existsSync(this.outputDir)) {
|
|
343
|
-
fs_1.default.mkdirSync(this.outputDir, { recursive: true });
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
/**
|
|
347
|
-
* Copy directory recursively
|
|
348
|
-
*/
|
|
349
|
-
copyDirectory(src, dest) {
|
|
350
|
-
const entries = fs_1.default.readdirSync(src, { withFileTypes: true });
|
|
351
|
-
for (const entry of entries) {
|
|
352
|
-
const srcPath = path_1.default.join(src, entry.name);
|
|
353
|
-
const destPath = path_1.default.join(dest, entry.name);
|
|
354
|
-
if (entry.isDirectory()) {
|
|
355
|
-
fs_1.default.mkdirSync(destPath, { recursive: true });
|
|
356
|
-
this.copyDirectory(srcPath, destPath);
|
|
357
|
-
}
|
|
358
|
-
else {
|
|
359
|
-
fs_1.default.copyFileSync(srcPath, destPath);
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
/**
|
|
364
|
-
* Log message if verbose mode is enabled
|
|
365
|
-
*/
|
|
366
|
-
log(message) {
|
|
367
|
-
if (this.verbose || true) {
|
|
368
|
-
// Always log for now
|
|
369
|
-
console.log(message);
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
/**
|
|
373
|
-
* Print build statistics
|
|
374
|
-
*/
|
|
375
|
-
printBuildStats(processedContent) {
|
|
376
|
-
const stats = {
|
|
377
|
-
total: processedContent.length,
|
|
378
|
-
byLanguage: {},
|
|
379
|
-
};
|
|
380
|
-
for (const content of processedContent) {
|
|
381
|
-
const lang = content.metadata.language;
|
|
382
|
-
stats.byLanguage[lang] = (stats.byLanguage[lang] || 0) + 1;
|
|
383
|
-
}
|
|
384
|
-
console.log('\nBuild Statistics:');
|
|
385
|
-
console.log(` Total pages: ${stats.total}`);
|
|
386
|
-
console.log(' By language:');
|
|
387
|
-
for (const [lang, count] of Object.entries(stats.byLanguage)) {
|
|
388
|
-
console.log(` ${lang}: ${count}`);
|
|
389
|
-
}
|
|
390
|
-
console.log(` Output: ${this.outputDir}`);
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
exports.Builder = Builder;
|
|
394
|
-
//# sourceMappingURL=Builder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Builder.js","sourceRoot":"","sources":["../../src/build/Builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ClientBundler - Bundles the React client app using esbuild
|
|
3
|
-
*/
|
|
4
|
-
export interface ClientBundlerOptions {
|
|
5
|
-
projectRoot: string;
|
|
6
|
-
outputDir: string;
|
|
7
|
-
minify?: boolean;
|
|
8
|
-
sourcemap?: boolean;
|
|
9
|
-
}
|
|
10
|
-
export declare class ClientBundler {
|
|
11
|
-
private projectRoot;
|
|
12
|
-
private outputDir;
|
|
13
|
-
private minify;
|
|
14
|
-
private sourcemap;
|
|
15
|
-
constructor(options: ClientBundlerOptions);
|
|
16
|
-
/**
|
|
17
|
-
* Bundle the client application
|
|
18
|
-
* Uses pre-bundled file if available, otherwise bundles from source
|
|
19
|
-
*/
|
|
20
|
-
bundle(): Promise<void>;
|
|
21
|
-
/**
|
|
22
|
-
* Copy pre-bundled client file to output directory
|
|
23
|
-
* This is the fast path used when running from an installed package
|
|
24
|
-
*/
|
|
25
|
-
private copyPreBundled;
|
|
26
|
-
/**
|
|
27
|
-
* Bundle client from source files
|
|
28
|
-
* This is the fallback path used during development
|
|
29
|
-
*/
|
|
30
|
-
private bundleFromSource;
|
|
31
|
-
/**
|
|
32
|
-
* Bundle CSS (placeholder for future CSS bundling)
|
|
33
|
-
*/
|
|
34
|
-
bundleCSS(): Promise<void>;
|
|
35
|
-
/**
|
|
36
|
-
* Watch mode for development (future enhancement)
|
|
37
|
-
* Always bundles from source in watch mode
|
|
38
|
-
*/
|
|
39
|
-
watch(): Promise<void>;
|
|
40
|
-
/**
|
|
41
|
-
* Get bundle statistics
|
|
42
|
-
*/
|
|
43
|
-
getStats(): Promise<{
|
|
44
|
-
size: number;
|
|
45
|
-
files: string[];
|
|
46
|
-
}>;
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=ClientBundler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClientBundler.d.ts","sourceRoot":"","sources":["../../src/build/ClientBundler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,SAAS,CAAU;gBAEf,OAAO,EAAE,oBAAoB;IAOzC;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB7B;;;OAGG;YACW,cAAc;IAe5B;;;OAGG;YACW,gBAAgB;IAoD9B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAMhC;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqC5B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;CAcH"}
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* ClientBundler - Bundles the React client app using esbuild
|
|
4
|
-
*/
|
|
5
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.ClientBundler = void 0;
|
|
10
|
-
const esbuild_1 = __importDefault(require("esbuild"));
|
|
11
|
-
const path_1 = __importDefault(require("path"));
|
|
12
|
-
const fs_1 = __importDefault(require("fs"));
|
|
13
|
-
class ClientBundler {
|
|
14
|
-
constructor(options) {
|
|
15
|
-
this.projectRoot = options.projectRoot;
|
|
16
|
-
this.outputDir = options.outputDir;
|
|
17
|
-
this.minify = options.minify ?? true;
|
|
18
|
-
this.sourcemap = options.sourcemap ?? false;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Bundle the client application
|
|
22
|
-
* Uses pre-bundled file if available, otherwise bundles from source
|
|
23
|
-
*/
|
|
24
|
-
async bundle() {
|
|
25
|
-
const assetsDir = path_1.default.join(this.outputDir, 'assets');
|
|
26
|
-
// Ensure assets directory exists
|
|
27
|
-
if (!fs_1.default.existsSync(assetsDir)) {
|
|
28
|
-
fs_1.default.mkdirSync(assetsDir, { recursive: true });
|
|
29
|
-
}
|
|
30
|
-
// Check for pre-bundled client (created during package build)
|
|
31
|
-
const preBundledClient = path_1.default.join(this.projectRoot, 'dist/bundles/client.js');
|
|
32
|
-
if (fs_1.default.existsSync(preBundledClient)) {
|
|
33
|
-
// Use pre-bundled file (fast path for installed package)
|
|
34
|
-
await this.copyPreBundled(preBundledClient, assetsDir);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
// Fallback to bundling from source (for development)
|
|
38
|
-
await this.bundleFromSource(assetsDir);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Copy pre-bundled client file to output directory
|
|
43
|
-
* This is the fast path used when running from an installed package
|
|
44
|
-
*/
|
|
45
|
-
async copyPreBundled(sourcePath, assetsDir) {
|
|
46
|
-
const outputFile = path_1.default.join(assetsDir, 'main.js');
|
|
47
|
-
try {
|
|
48
|
-
fs_1.default.copyFileSync(sourcePath, outputFile);
|
|
49
|
-
// Log bundle size
|
|
50
|
-
const stats = fs_1.default.statSync(outputFile);
|
|
51
|
-
const sizeInKB = (stats.size / 1024).toFixed(2);
|
|
52
|
-
console.log(` Client bundle: ${sizeInKB} KB (pre-bundled)`);
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
55
|
-
throw new Error(`Failed to copy pre-bundled client: ${error.message}`);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Bundle client from source files
|
|
60
|
-
* This is the fallback path used during development
|
|
61
|
-
*/
|
|
62
|
-
async bundleFromSource(assetsDir) {
|
|
63
|
-
// Entry point for client app (source files)
|
|
64
|
-
const entryPoint = path_1.default.join(this.projectRoot, 'src/client/main.tsx');
|
|
65
|
-
// Check if entry point exists
|
|
66
|
-
if (!fs_1.default.existsSync(entryPoint)) {
|
|
67
|
-
throw new Error(`Client entry point not found: ${entryPoint}\n` +
|
|
68
|
-
'Hint: Pre-bundled client not found. Run "npm run build" to create it.');
|
|
69
|
-
}
|
|
70
|
-
try {
|
|
71
|
-
const result = await esbuild_1.default.build({
|
|
72
|
-
entryPoints: [entryPoint],
|
|
73
|
-
bundle: true,
|
|
74
|
-
outfile: path_1.default.join(assetsDir, 'main.js'),
|
|
75
|
-
platform: 'browser',
|
|
76
|
-
target: ['es2020'],
|
|
77
|
-
format: 'iife',
|
|
78
|
-
minify: this.minify,
|
|
79
|
-
sourcemap: this.sourcemap,
|
|
80
|
-
jsx: 'automatic',
|
|
81
|
-
jsxImportSource: 'react',
|
|
82
|
-
define: {
|
|
83
|
-
'process.env.NODE_ENV': this.minify ? '"production"' : '"development"',
|
|
84
|
-
},
|
|
85
|
-
loader: {
|
|
86
|
-
'.tsx': 'tsx',
|
|
87
|
-
'.ts': 'ts',
|
|
88
|
-
'.jsx': 'jsx',
|
|
89
|
-
'.js': 'js',
|
|
90
|
-
},
|
|
91
|
-
external: [], // Bundle everything
|
|
92
|
-
logLevel: 'warning',
|
|
93
|
-
metafile: true,
|
|
94
|
-
});
|
|
95
|
-
// Log bundle size
|
|
96
|
-
if (result.metafile) {
|
|
97
|
-
const outputs = Object.values(result.metafile.outputs);
|
|
98
|
-
if (outputs.length > 0) {
|
|
99
|
-
const totalSize = outputs.reduce((sum, output) => sum + output.bytes, 0);
|
|
100
|
-
const sizeInKB = (totalSize / 1024).toFixed(2);
|
|
101
|
-
console.log(` Client bundle: ${sizeInKB} KB (bundled from source)`);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
throw new Error(`Failed to bundle client app: ${error.message}`);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Bundle CSS (placeholder for future CSS bundling)
|
|
111
|
-
*/
|
|
112
|
-
async bundleCSS() {
|
|
113
|
-
// For now, we generate theme.css via ThemeGenerator
|
|
114
|
-
// This method is a placeholder for bundling additional CSS files
|
|
115
|
-
// or processing CSS modules in the future
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Watch mode for development (future enhancement)
|
|
119
|
-
* Always bundles from source in watch mode
|
|
120
|
-
*/
|
|
121
|
-
async watch() {
|
|
122
|
-
const assetsDir = path_1.default.join(this.outputDir, 'assets');
|
|
123
|
-
// Entry point for client app (source files)
|
|
124
|
-
const entryPoint = path_1.default.join(this.projectRoot, 'src/client/main.tsx');
|
|
125
|
-
if (!fs_1.default.existsSync(assetsDir)) {
|
|
126
|
-
fs_1.default.mkdirSync(assetsDir, { recursive: true });
|
|
127
|
-
}
|
|
128
|
-
const context = await esbuild_1.default.context({
|
|
129
|
-
entryPoints: [entryPoint],
|
|
130
|
-
bundle: true,
|
|
131
|
-
outfile: path_1.default.join(assetsDir, 'main.js'),
|
|
132
|
-
platform: 'browser',
|
|
133
|
-
target: ['es2020'],
|
|
134
|
-
format: 'iife',
|
|
135
|
-
minify: false,
|
|
136
|
-
sourcemap: true,
|
|
137
|
-
jsx: 'automatic',
|
|
138
|
-
jsxImportSource: 'react',
|
|
139
|
-
define: {
|
|
140
|
-
'process.env.NODE_ENV': '"development"',
|
|
141
|
-
},
|
|
142
|
-
loader: {
|
|
143
|
-
'.tsx': 'tsx',
|
|
144
|
-
'.ts': 'ts',
|
|
145
|
-
'.jsx': 'jsx',
|
|
146
|
-
'.js': 'js',
|
|
147
|
-
},
|
|
148
|
-
logLevel: 'info',
|
|
149
|
-
});
|
|
150
|
-
await context.watch();
|
|
151
|
-
console.log('Watching for client changes...');
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Get bundle statistics
|
|
155
|
-
*/
|
|
156
|
-
async getStats() {
|
|
157
|
-
const mainJsPath = path_1.default.join(this.outputDir, 'assets/main.js');
|
|
158
|
-
if (!fs_1.default.existsSync(mainJsPath)) {
|
|
159
|
-
return { size: 0, files: [] };
|
|
160
|
-
}
|
|
161
|
-
const stats = fs_1.default.statSync(mainJsPath);
|
|
162
|
-
return {
|
|
163
|
-
size: stats.size,
|
|
164
|
-
files: ['main.js'],
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
exports.ClientBundler = ClientBundler;
|
|
169
|
-
//# sourceMappingURL=ClientBundler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClientBundler.js","sourceRoot":"","sources":["../../src/build/ClientBundler.ts"],"names":[],"mappings":"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"}
|