@useavalon/avalon 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/README.md +54 -0
  2. package/mod.ts +301 -0
  3. package/package.json +85 -0
  4. package/src/build/README.md +310 -0
  5. package/src/build/integration-bundler-plugin.ts +116 -0
  6. package/src/build/integration-config.ts +168 -0
  7. package/src/build/integration-detection-plugin.ts +117 -0
  8. package/src/build/integration-resolver-plugin.ts +90 -0
  9. package/src/build/island-manifest.ts +269 -0
  10. package/src/build/island-types-generator.ts +476 -0
  11. package/src/build/mdx-island-transform.ts +464 -0
  12. package/src/build/mdx-plugin.ts +98 -0
  13. package/src/build/page-island-transform.ts +598 -0
  14. package/src/build/prop-extractors/index.ts +21 -0
  15. package/src/build/prop-extractors/lit.ts +140 -0
  16. package/src/build/prop-extractors/qwik.ts +16 -0
  17. package/src/build/prop-extractors/solid.ts +125 -0
  18. package/src/build/prop-extractors/svelte.ts +194 -0
  19. package/src/build/prop-extractors/vue.ts +111 -0
  20. package/src/build/sidecar-file-manager.ts +104 -0
  21. package/src/build/sidecar-renderer.ts +30 -0
  22. package/src/client/adapters/index.ts +13 -0
  23. package/src/client/adapters/lit-adapter.ts +654 -0
  24. package/src/client/adapters/preact-adapter.ts +331 -0
  25. package/src/client/adapters/qwik-adapter.ts +345 -0
  26. package/src/client/adapters/react-adapter.ts +353 -0
  27. package/src/client/adapters/solid-adapter.ts +451 -0
  28. package/src/client/adapters/svelte-adapter.ts +524 -0
  29. package/src/client/adapters/vue-adapter.ts +467 -0
  30. package/src/client/components.ts +35 -0
  31. package/src/client/css-hmr-handler.ts +344 -0
  32. package/src/client/framework-adapter.ts +462 -0
  33. package/src/client/hmr-coordinator.ts +396 -0
  34. package/src/client/hmr-error-overlay.js +533 -0
  35. package/src/client/main.js +816 -0
  36. package/src/client/tests/css-hmr-handler.test.ts +360 -0
  37. package/src/client/tests/framework-adapter.test.ts +519 -0
  38. package/src/client/tests/hmr-coordinator.test.ts +176 -0
  39. package/src/client/tests/hydration-option-parsing.test.ts +107 -0
  40. package/src/client/tests/lit-adapter.test.ts +427 -0
  41. package/src/client/tests/preact-adapter.test.ts +353 -0
  42. package/src/client/tests/qwik-adapter.test.ts +343 -0
  43. package/src/client/tests/react-adapter.test.ts +317 -0
  44. package/src/client/tests/solid-adapter.test.ts +396 -0
  45. package/src/client/tests/svelte-adapter.test.ts +387 -0
  46. package/src/client/tests/vue-adapter.test.ts +407 -0
  47. package/src/client/types/framework-runtime.d.ts +68 -0
  48. package/src/client/types/vite-hmr.d.ts +46 -0
  49. package/src/client/types/vite-virtual-modules.d.ts +60 -0
  50. package/src/components/Image.tsx +123 -0
  51. package/src/components/IslandErrorBoundary.tsx +145 -0
  52. package/src/components/LayoutDataErrorBoundary.tsx +141 -0
  53. package/src/components/LayoutErrorBoundary.tsx +127 -0
  54. package/src/components/PersistentIsland.tsx +52 -0
  55. package/src/components/StreamingErrorBoundary.tsx +233 -0
  56. package/src/components/StreamingLayout.tsx +538 -0
  57. package/src/components/tests/component-analyzer.test.ts +96 -0
  58. package/src/components/tests/component-detection.test.ts +347 -0
  59. package/src/components/tests/persistent-islands.test.ts +398 -0
  60. package/src/core/components/component-analyzer.ts +192 -0
  61. package/src/core/components/component-detection.ts +508 -0
  62. package/src/core/components/enhanced-framework-detector.ts +500 -0
  63. package/src/core/components/framework-registry.ts +563 -0
  64. package/src/core/components/tests/enhanced-framework-detector.test.ts +577 -0
  65. package/src/core/components/tests/framework-registry.test.ts +465 -0
  66. package/src/core/content/mdx-processor.ts +46 -0
  67. package/src/core/integrations/README.md +282 -0
  68. package/src/core/integrations/index.ts +19 -0
  69. package/src/core/integrations/loader.ts +125 -0
  70. package/src/core/integrations/registry.ts +195 -0
  71. package/src/core/islands/island-persistence.ts +325 -0
  72. package/src/core/islands/island-state-serializer.ts +258 -0
  73. package/src/core/islands/persistent-island-context.tsx +80 -0
  74. package/src/core/islands/use-persistent-state.ts +68 -0
  75. package/src/core/layout/enhanced-layout-resolver.ts +322 -0
  76. package/src/core/layout/layout-cache-manager.ts +485 -0
  77. package/src/core/layout/layout-composer.ts +357 -0
  78. package/src/core/layout/layout-data-loader.ts +516 -0
  79. package/src/core/layout/layout-discovery.ts +243 -0
  80. package/src/core/layout/layout-matcher.ts +299 -0
  81. package/src/core/layout/layout-types.ts +110 -0
  82. package/src/core/layout/tests/enhanced-layout-resolver.test.ts +477 -0
  83. package/src/core/layout/tests/layout-cache-optimization.test.ts +149 -0
  84. package/src/core/layout/tests/layout-composer.test.ts +486 -0
  85. package/src/core/layout/tests/layout-data-loader.test.ts +443 -0
  86. package/src/core/layout/tests/layout-discovery.test.ts +253 -0
  87. package/src/core/layout/tests/layout-matcher.test.ts +480 -0
  88. package/src/core/modules/framework-module-resolver.ts +273 -0
  89. package/src/core/modules/tests/framework-module-resolver.test.ts +263 -0
  90. package/src/core/modules/tests/module-resolution-integration.test.ts +117 -0
  91. package/src/islands/component-analysis.ts +213 -0
  92. package/src/islands/css-utils.ts +565 -0
  93. package/src/islands/discovery/index.ts +80 -0
  94. package/src/islands/discovery/registry.ts +340 -0
  95. package/src/islands/discovery/resolver.ts +477 -0
  96. package/src/islands/discovery/scanner.ts +386 -0
  97. package/src/islands/discovery/tests/island-discovery.test.ts +881 -0
  98. package/src/islands/discovery/types.ts +117 -0
  99. package/src/islands/discovery/validator.ts +544 -0
  100. package/src/islands/discovery/watcher.ts +368 -0
  101. package/src/islands/framework-detection.ts +428 -0
  102. package/src/islands/integration-loader.ts +490 -0
  103. package/src/islands/island.tsx +565 -0
  104. package/src/islands/render-cache.ts +550 -0
  105. package/src/islands/types.ts +80 -0
  106. package/src/islands/universal-css-collector.ts +157 -0
  107. package/src/islands/universal-head-collector.ts +137 -0
  108. package/src/layout-system.d.ts +592 -0
  109. package/src/layout-system.ts +218 -0
  110. package/src/middleware/__tests__/discovery.test.ts +107 -0
  111. package/src/middleware/discovery.ts +268 -0
  112. package/src/middleware/executor.ts +315 -0
  113. package/src/middleware/index.ts +76 -0
  114. package/src/middleware/types.ts +99 -0
  115. package/src/nitro/build-config.ts +576 -0
  116. package/src/nitro/config.ts +483 -0
  117. package/src/nitro/error-handler.ts +636 -0
  118. package/src/nitro/index.ts +173 -0
  119. package/src/nitro/island-manifest.ts +584 -0
  120. package/src/nitro/middleware-adapter.ts +260 -0
  121. package/src/nitro/renderer.ts +1458 -0
  122. package/src/nitro/route-discovery.ts +439 -0
  123. package/src/nitro/types.ts +321 -0
  124. package/src/render/collect-css.ts +198 -0
  125. package/src/render/error-pages.ts +79 -0
  126. package/src/render/isolated-ssr-renderer.ts +654 -0
  127. package/src/render/ssr.ts +1030 -0
  128. package/src/schemas/api.ts +30 -0
  129. package/src/schemas/core.ts +64 -0
  130. package/src/schemas/index.ts +212 -0
  131. package/src/schemas/layout.ts +279 -0
  132. package/src/schemas/routing/index.ts +38 -0
  133. package/src/schemas/routing.ts +376 -0
  134. package/src/types/as-island.ts +20 -0
  135. package/src/types/image.d.ts +106 -0
  136. package/src/types/index.d.ts +22 -0
  137. package/src/types/island-jsx.d.ts +33 -0
  138. package/src/types/island-prop.d.ts +20 -0
  139. package/src/types/layout.ts +285 -0
  140. package/src/types/mdx.d.ts +6 -0
  141. package/src/types/routing.ts +555 -0
  142. package/src/types/tests/layout-types.test.ts +197 -0
  143. package/src/types/types.ts +5 -0
  144. package/src/types/urlpattern.d.ts +49 -0
  145. package/src/types/vite-env.d.ts +11 -0
  146. package/src/utils/dev-logger.ts +299 -0
  147. package/src/utils/fs.ts +151 -0
  148. package/src/vite-plugin/auto-discover.ts +551 -0
  149. package/src/vite-plugin/config.ts +266 -0
  150. package/src/vite-plugin/errors.ts +127 -0
  151. package/src/vite-plugin/image-optimization.ts +151 -0
  152. package/src/vite-plugin/integration-activator.ts +126 -0
  153. package/src/vite-plugin/island-sidecar-plugin.ts +176 -0
  154. package/src/vite-plugin/module-discovery.ts +189 -0
  155. package/src/vite-plugin/nitro-integration.ts +1334 -0
  156. package/src/vite-plugin/plugin.ts +329 -0
  157. package/src/vite-plugin/tests/image-optimization.test.ts +54 -0
  158. package/src/vite-plugin/types.ts +327 -0
  159. package/src/vite-plugin/validation.ts +228 -0
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Nitro Integration Module for Avalon
3
+ *
4
+ * This module provides the Nitro server runtime integration for Avalon,
5
+ * enabling universal deployment through Nitro presets while maintaining
6
+ * Avalon's multi-framework SSR and islands architecture.
7
+ */
8
+
9
+ // Configuration exports
10
+ export {
11
+ createNitroConfig,
12
+ isValidPreset,
13
+ mergeRouteRules,
14
+ createDefaultStaticAssetRouteRules,
15
+ DEFAULT_NITRO_CONFIG,
16
+ DEFAULT_STATIC_ASSETS_CONFIG,
17
+ type AvalonNitroConfig,
18
+ type CacheOptions,
19
+ type RouteRule,
20
+ type NitroConfigOutput,
21
+ type AvalonRuntimeConfig,
22
+ type StaticAssetsConfig,
23
+ } from "./config.ts";
24
+
25
+ // Type exports
26
+ export {
27
+ // Core types
28
+ type H3Event,
29
+ type NitroRenderContext,
30
+ type LayoutContext,
31
+ type DiscoveredRoute,
32
+ type NitroRouteConfig,
33
+ type SSRRenderOptions,
34
+ type SSRRenderResult,
35
+ type AvalonEventContext,
36
+
37
+ // Island types
38
+ type IslandEntry,
39
+ type IslandManifest,
40
+
41
+ // Page types
42
+ type PageModule,
43
+ type PageMetadata,
44
+
45
+ // Error types
46
+ type ErrorResponse,
47
+ HttpError,
48
+ isHttpError,
49
+ createNotFoundError,
50
+ createMethodNotAllowedError,
51
+ createInternalError,
52
+
53
+ // Options types
54
+ type DevServerOptions,
55
+ type BuildOptions,
56
+ } from "./types.ts";
57
+
58
+ // Renderer exports
59
+ export {
60
+ createNitroRenderer,
61
+ createNitroCatchAllRenderer,
62
+ createRenderContext,
63
+ renderPage,
64
+ renderPageStream,
65
+ createStreamingResponse,
66
+ injectHydrationScript,
67
+ validateHydrationMarkers,
68
+ extractIslandMarkers,
69
+ ensureHydrationMarkers,
70
+ processHydrationRequirements,
71
+ createErrorResponse,
72
+ getRequestURL as getRendererRequestURL,
73
+ toRequest as rendererToRequest,
74
+ setResponseHeader,
75
+ type RenderHandlerOptions,
76
+ type ResolvedPageRoute,
77
+ type StreamingSSROptions,
78
+ type IslandMarker,
79
+ type NitroCatchAllOptions,
80
+ } from "./renderer.ts";
81
+
82
+ // Middleware Adapter exports
83
+ export {
84
+ createMiddlewareContext,
85
+ storeMiddlewareContext,
86
+ getMiddlewareContext,
87
+ getOrCreateMiddlewareContext,
88
+ setMiddlewareState,
89
+ getMiddlewareState,
90
+ setMiddlewareLocal,
91
+ getMiddlewareLocal,
92
+ hasAvalonContext,
93
+ ensureAvalonContext,
94
+ getRequestURL as getMiddlewareRequestURL,
95
+ getRequestHeaders as getMiddlewareRequestHeaders,
96
+ toRequest as middlewareToRequest,
97
+ getRouterParams as getMiddlewareRouterParams,
98
+ type MiddlewareContextOptions,
99
+ } from "./middleware-adapter.ts";
100
+
101
+ // Route Discovery exports
102
+ // NOTE: API routes are now auto-discovered by Nitro from the api/ directory.
103
+ // Only page discovery is needed for SSR rendering of page components.
104
+ export {
105
+ discoverPageRoutes,
106
+ filePathToPattern,
107
+ isPrivateFile,
108
+ calculateRouteSpecificity,
109
+ sortRoutesBySpecificity,
110
+ validateRoutePattern,
111
+ extractParamsFromPattern,
112
+ matchRoutePattern,
113
+ PAGE_EXTENSIONS,
114
+ type PageDiscoveryOptions,
115
+ type FilePathPatternResult,
116
+ } from "./route-discovery.ts";
117
+
118
+ // Build Configuration exports
119
+ export {
120
+ createClientBuildConfig,
121
+ createServerBuildConfig,
122
+ createCombinedBuildConfig,
123
+ createNitroBuildPlugin,
124
+ getPresetOutputConfig,
125
+ presetSupportsStreaming,
126
+ validateBuildConfig,
127
+ createSourceMapConfig,
128
+ createSourceMapPlugin,
129
+ getViteSourceMapOption,
130
+ DEFAULT_BUILD_CONFIG,
131
+ DEFAULT_SOURCEMAP_CONFIG,
132
+ PRESET_OUTPUT_CONFIGS,
133
+ type BuildMode,
134
+ type PresetOutputConfig,
135
+ type AvalonBuildConfig,
136
+ type SourceMapConfig,
137
+ } from "./build-config.ts";
138
+
139
+ // Island Manifest exports
140
+ export {
141
+ createIslandManifestPlugin,
142
+ createIslandEntry,
143
+ detectIslandFramework,
144
+ generateContentHash,
145
+ extractIslandDependencies,
146
+ generatePreloadHints,
147
+ generatePreloadTags,
148
+ loadIslandManifest,
149
+ getIslandAssetPath,
150
+ getPageCssAssets,
151
+ DEFAULT_MANIFEST_OPTIONS,
152
+ type BuildIslandEntry,
153
+ type BuildIslandManifest,
154
+ type PreloadHint,
155
+ type IslandManifestOptions,
156
+ type AssetMetadata,
157
+ } from "./island-manifest.ts";
158
+
159
+ // Error Handler exports
160
+ export {
161
+ discoverErrorPages,
162
+ getErrorPageModule,
163
+ renderErrorPage,
164
+ generateDefaultErrorPage,
165
+ createErrorPageProps,
166
+ clearErrorPageCache,
167
+ handleRenderError,
168
+ handleApiError,
169
+ handleNotFound,
170
+ handleInternalError,
171
+ type ErrorPageProps,
172
+ type ErrorHandlerOptions,
173
+ } from "./error-handler.ts";