meno-core 1.0.53 → 1.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 (415) hide show
  1. package/.claude/settings.local.json +1 -3
  2. package/bin/cli.ts +66 -261
  3. package/build-astro.ts +150 -128
  4. package/dist/bin/cli.js +42 -185
  5. package/dist/bin/cli.js.map +2 -2
  6. package/dist/chunks/chunk-2AR55GYH.js +42 -0
  7. package/dist/chunks/chunk-2AR55GYH.js.map +7 -0
  8. package/dist/chunks/{chunk-JGWFTO6P.js → chunk-2IIQK7T3.js} +2624 -1389
  9. package/dist/chunks/chunk-2IIQK7T3.js.map +7 -0
  10. package/dist/chunks/chunk-4ZRU52J2.js +169 -0
  11. package/dist/chunks/chunk-4ZRU52J2.js.map +7 -0
  12. package/dist/chunks/{chunk-UB44F4Z2.js → chunk-5X4HCN7J.js} +5 -7
  13. package/dist/chunks/chunk-5X4HCN7J.js.map +7 -0
  14. package/dist/chunks/{chunk-WQFG7PAH.js → chunk-7CCVOL5M.js} +15 -19
  15. package/dist/chunks/chunk-7CCVOL5M.js.map +7 -0
  16. package/dist/chunks/{chunk-YBLHKYFF.js → chunk-AR7LHIFY.js} +8 -2
  17. package/dist/chunks/chunk-AR7LHIFY.js.map +7 -0
  18. package/dist/chunks/{chunk-O3NAGJP4.js → chunk-NUP7H7D3.js} +135 -41
  19. package/dist/chunks/chunk-NUP7H7D3.js.map +7 -0
  20. package/dist/chunks/{chunk-X754AHS5.js → chunk-QWTQZHG3.js} +194 -90
  21. package/dist/chunks/chunk-QWTQZHG3.js.map +7 -0
  22. package/dist/chunks/{chunk-H3GJ4H2U.js → chunk-XTKNX4FW.js} +216 -87
  23. package/dist/chunks/chunk-XTKNX4FW.js.map +7 -0
  24. package/dist/chunks/{fs-JGINUXGL.js → fs-G3ANWEFP.js} +2 -2
  25. package/dist/lib/client/index.js +1003 -475
  26. package/dist/lib/client/index.js.map +3 -3
  27. package/dist/lib/server/index.js +14393 -6371
  28. package/dist/lib/server/index.js.map +4 -4
  29. package/dist/lib/shared/index.js +342 -101
  30. package/dist/lib/shared/index.js.map +4 -4
  31. package/dist/lib/shared/richtext/index.js +1 -1
  32. package/dist/lib/test-utils/index.js +64 -80
  33. package/dist/lib/test-utils/index.js.map +2 -2
  34. package/entries/client-router.tsx +10 -8
  35. package/lib/client/ClientInitializer.ts +8 -8
  36. package/lib/client/ErrorBoundary.test.tsx +246 -186
  37. package/lib/client/ErrorBoundary.tsx +183 -132
  38. package/lib/client/componentRegistry.test.ts +96 -108
  39. package/lib/client/componentRegistry.ts +1 -3
  40. package/lib/client/contexts/ThemeContext.tsx +3 -2
  41. package/lib/client/core/ComponentBuilder.test.ts +663 -560
  42. package/lib/client/core/ComponentBuilder.ts +427 -155
  43. package/lib/client/core/ComponentRenderer.test.tsx +2 -4
  44. package/lib/client/core/ComponentRenderer.tsx +46 -33
  45. package/lib/client/core/builders/embedBuilder.ts +242 -54
  46. package/lib/client/core/builders/linkBuilder.ts +72 -45
  47. package/lib/client/core/builders/linkNodeBuilder.ts +79 -54
  48. package/lib/client/core/builders/listBuilder.ts +155 -89
  49. package/lib/client/core/builders/localeListBuilder.ts +97 -62
  50. package/lib/client/core/builders/types.ts +5 -5
  51. package/lib/client/core/cmsTemplateProcessor.ts +8 -9
  52. package/lib/client/elementRegistry.ts +3 -3
  53. package/lib/client/fontFamiliesService.test.ts +2 -10
  54. package/lib/client/fontFamiliesService.ts +3 -3
  55. package/lib/client/hmr/HMRManager.tsx +47 -30
  56. package/lib/client/hmrCssReload.ts +49 -14
  57. package/lib/client/hmrWebSocket.ts +14 -19
  58. package/lib/client/hooks/useColorVariables.test.ts +21 -21
  59. package/lib/client/hooks/useColorVariables.ts +23 -18
  60. package/lib/client/hooks/usePropertyAutocomplete.ts +4 -6
  61. package/lib/client/hooks/useVariables.ts +6 -4
  62. package/lib/client/hydration/HydrationUtils.test.ts +24 -25
  63. package/lib/client/hydration/HydrationUtils.ts +3 -4
  64. package/lib/client/i18nConfigService.test.ts +2 -7
  65. package/lib/client/i18nConfigService.ts +2 -2
  66. package/lib/client/meno-filter/MenoFilter.test.ts +47 -49
  67. package/lib/client/meno-filter/MenoFilter.ts +14 -15
  68. package/lib/client/meno-filter/bindings.ts +18 -43
  69. package/lib/client/meno-filter/init.ts +4 -4
  70. package/lib/client/meno-filter/renderer.ts +30 -32
  71. package/lib/client/meno-filter/script.generated.ts +1 -3
  72. package/lib/client/meno-filter/ui.ts +4 -6
  73. package/lib/client/meno-filter/updates.ts +18 -23
  74. package/lib/client/meno-filter/utils.ts +1 -1
  75. package/lib/client/navigation.test.ts +174 -178
  76. package/lib/client/navigation.ts +0 -1
  77. package/lib/client/responsiveStyleResolver.knownTokens.test.ts +71 -0
  78. package/lib/client/responsiveStyleResolver.test.ts +234 -232
  79. package/lib/client/responsiveStyleResolver.ts +74 -20
  80. package/lib/client/routing/RouteLoader.test.ts +24 -25
  81. package/lib/client/routing/RouteLoader.ts +27 -35
  82. package/lib/client/routing/Router.tsx +210 -153
  83. package/lib/client/scripts/ScriptExecutor.test.ts +157 -158
  84. package/lib/client/scripts/ScriptExecutor.ts +18 -36
  85. package/lib/client/services/PrefetchService.test.ts +3 -3
  86. package/lib/client/services/PrefetchService.ts +23 -29
  87. package/lib/client/styleProcessor.test.ts +9 -9
  88. package/lib/client/styleProcessor.ts +24 -15
  89. package/lib/client/styles/StyleInjector.test.ts +122 -115
  90. package/lib/client/styles/StyleInjector.ts +10 -7
  91. package/lib/client/styles/UtilityClassCollector.ts +62 -28
  92. package/lib/client/styles/cspNonce.test.ts +2 -5
  93. package/lib/client/templateEngine.test.ts +554 -488
  94. package/lib/client/templateEngine.ts +203 -73
  95. package/lib/client/theme.test.ts +1 -1
  96. package/lib/client/theme.ts +0 -1
  97. package/lib/client/utils/toast.ts +0 -1
  98. package/lib/server/__integration__/api-routes.test.ts +8 -4
  99. package/lib/server/__integration__/cms-integration.test.ts +1 -4
  100. package/lib/server/__integration__/server-lifecycle.test.ts +4 -5
  101. package/lib/server/__integration__/ssr-rendering.test.ts +47 -37
  102. package/lib/server/__integration__/static-assets.test.ts +3 -3
  103. package/lib/server/__integration__/test-helpers.ts +87 -74
  104. package/lib/server/ab/generateFunctions.ts +12 -10
  105. package/lib/server/astro/cmsPageEmitter.ts +26 -42
  106. package/lib/server/astro/componentEmitter.ts +35 -43
  107. package/lib/server/astro/cssCollector.ts +10 -26
  108. package/lib/server/astro/nodeToAstro.test.ts +1754 -34
  109. package/lib/server/astro/nodeToAstro.ts +232 -216
  110. package/lib/server/astro/normalizeOrphanTemplateProps.test.ts +115 -119
  111. package/lib/server/astro/normalizeOrphanTemplateProps.ts +11 -18
  112. package/lib/server/astro/pageEmitter.ts +9 -13
  113. package/lib/server/astro/tailwindMapper.test.ts +10 -37
  114. package/lib/server/astro/tailwindMapper.ts +33 -40
  115. package/lib/server/astro/templateTransformer.ts +17 -20
  116. package/lib/server/createServer.ts +7 -19
  117. package/lib/server/cssGenerator.test.ts +35 -44
  118. package/lib/server/cssGenerator.ts +8 -19
  119. package/lib/server/fileWatcher.test.ts +164 -13
  120. package/lib/server/fileWatcher.ts +209 -124
  121. package/lib/server/index.ts +14 -17
  122. package/lib/server/jsonLoader.test.ts +39 -2
  123. package/lib/server/jsonLoader.ts +39 -34
  124. package/lib/server/middleware/cors.test.ts +21 -21
  125. package/lib/server/middleware/cors.ts +28 -4
  126. package/lib/server/middleware/errorHandler.test.ts +7 -5
  127. package/lib/server/middleware/errorHandler.ts +3 -8
  128. package/lib/server/middleware/index.ts +0 -1
  129. package/lib/server/middleware/logger.test.ts +10 -8
  130. package/lib/server/middleware/logger.ts +17 -29
  131. package/lib/server/migrateTemplates.ts +3 -3
  132. package/lib/server/pageCache.test.ts +76 -77
  133. package/lib/server/pageCache.ts +0 -1
  134. package/lib/server/projectContext.ts +5 -4
  135. package/lib/server/providers/fileSystemCMSProvider.test.ts +142 -99
  136. package/lib/server/providers/fileSystemCMSProvider.ts +62 -38
  137. package/lib/server/routes/api/cms.test.ts +26 -14
  138. package/lib/server/routes/api/cms.ts +9 -14
  139. package/lib/server/routes/api/colors.test.ts +2 -2
  140. package/lib/server/routes/api/components.ts +31 -35
  141. package/lib/server/routes/api/config.ts +3 -4
  142. package/lib/server/routes/api/core-routes.ts +49 -76
  143. package/lib/server/routes/api/enums.test.ts +2 -2
  144. package/lib/server/routes/api/functions.ts +9 -17
  145. package/lib/server/routes/api/index.ts +3 -6
  146. package/lib/server/routes/api/pages.ts +8 -11
  147. package/lib/server/routes/api/shared.test.ts +1 -1
  148. package/lib/server/routes/api/shared.ts +12 -9
  149. package/lib/server/routes/api/variables.test.ts +3 -5
  150. package/lib/server/routes/api/variables.ts +1 -1
  151. package/lib/server/routes/index.ts +25 -28
  152. package/lib/server/routes/pages.ts +35 -31
  153. package/lib/server/routes/static.ts +17 -6
  154. package/lib/server/runtime/bundler.ts +98 -61
  155. package/lib/server/runtime/fs.ts +16 -26
  156. package/lib/server/runtime/httpServer.ts +8 -12
  157. package/lib/server/services/ColorService.test.ts +3 -3
  158. package/lib/server/services/ColorService.ts +37 -29
  159. package/lib/server/services/EnumService.test.ts +4 -8
  160. package/lib/server/services/EnumService.ts +11 -3
  161. package/lib/server/services/VariableService.test.ts +8 -12
  162. package/lib/server/services/VariableService.ts +11 -3
  163. package/lib/server/services/cmsService.test.ts +158 -120
  164. package/lib/server/services/cmsService.ts +36 -146
  165. package/lib/server/services/componentService.test.ts +125 -45
  166. package/lib/server/services/componentService.ts +70 -46
  167. package/lib/server/services/configService.test.ts +22 -45
  168. package/lib/server/services/configService.ts +50 -27
  169. package/lib/server/services/fileWatcherService.ts +42 -8
  170. package/lib/server/services/index.ts +0 -1
  171. package/lib/server/services/pageService.test.ts +8 -10
  172. package/lib/server/services/pageService.ts +32 -18
  173. package/lib/server/ssr/attributeBuilder.ts +18 -8
  174. package/lib/server/ssr/buildErrorOverlay.ts +11 -12
  175. package/lib/server/ssr/clientDataInjector.ts +7 -21
  176. package/lib/server/ssr/cmsSSRProcessor.ts +4 -8
  177. package/lib/server/ssr/cssCollector.ts +1 -1
  178. package/lib/server/ssr/errorOverlay.test.ts +1 -1
  179. package/lib/server/ssr/errorOverlay.ts +3 -9
  180. package/lib/server/ssr/htmlGenerator.nonce.test.ts +9 -14
  181. package/lib/server/ssr/htmlGenerator.test.ts +120 -44
  182. package/lib/server/ssr/htmlGenerator.ts +126 -91
  183. package/lib/server/ssr/imageMetadata.test.ts +3 -1
  184. package/lib/server/ssr/imageMetadata.ts +27 -21
  185. package/lib/server/ssr/jsCollector.test.ts +8 -18
  186. package/lib/server/ssr/jsCollector.ts +3 -8
  187. package/lib/server/ssr/liveReloadIntegration.test.ts +76 -36
  188. package/lib/server/ssr/metaTagGenerator.ts +2 -2
  189. package/lib/server/ssr/ssrRenderer.branches.test.ts +1103 -0
  190. package/lib/server/ssr/ssrRenderer.test.ts +316 -256
  191. package/lib/server/ssr/ssrRenderer.ts +795 -243
  192. package/lib/server/ssrRenderer.test.ts +1048 -954
  193. package/lib/server/utils/jsonLineMapper.test.ts +28 -28
  194. package/lib/server/utils/jsonLineMapper.ts +7 -7
  195. package/lib/server/validateStyleCoverage.ts +18 -21
  196. package/lib/server/websocketManager.ts +28 -19
  197. package/lib/shared/attributeNodeUtils.test.ts +15 -15
  198. package/lib/shared/attributeNodeUtils.ts +5 -12
  199. package/lib/shared/breakpoints.test.ts +5 -5
  200. package/lib/shared/breakpoints.ts +4 -11
  201. package/lib/shared/cmsQuery.test.ts +81 -0
  202. package/lib/shared/cmsQuery.ts +92 -0
  203. package/lib/shared/cmsQueryParser.test.ts +50 -42
  204. package/lib/shared/cmsQueryParser.ts +60 -38
  205. package/lib/shared/colorConversions.ts +9 -9
  206. package/lib/shared/colorVariableUtils.test.ts +27 -5
  207. package/lib/shared/colorVariableUtils.ts +21 -12
  208. package/lib/shared/componentRefs.ts +1 -5
  209. package/lib/shared/constants.test.ts +3 -3
  210. package/lib/shared/constants.ts +8 -8
  211. package/lib/shared/cssGeneration.test.ts +285 -144
  212. package/lib/shared/cssGeneration.ts +217 -531
  213. package/lib/shared/cssNamedColors.ts +152 -30
  214. package/lib/shared/cssProperties.test.ts +69 -70
  215. package/lib/shared/cssProperties.ts +298 -114
  216. package/lib/shared/elementClassName.test.ts +109 -109
  217. package/lib/shared/elementClassName.ts +3 -3
  218. package/lib/shared/elementUtils.ts +12 -16
  219. package/lib/shared/errorLogger.test.ts +12 -12
  220. package/lib/shared/errorLogger.ts +2 -10
  221. package/lib/shared/errors.test.ts +2 -13
  222. package/lib/shared/errors.ts +2 -8
  223. package/lib/shared/expressionEvaluator.test.ts +145 -0
  224. package/lib/shared/expressionEvaluator.ts +52 -24
  225. package/lib/shared/fontLoader.test.ts +32 -18
  226. package/lib/shared/fontLoader.ts +2 -2
  227. package/lib/shared/friendlyError.ts +2 -3
  228. package/lib/shared/gradientUtils.test.ts +3 -7
  229. package/lib/shared/gradientUtils.ts +17 -14
  230. package/lib/shared/hrefRefs.test.ts +2 -2
  231. package/lib/shared/hrefRefs.ts +2 -10
  232. package/lib/shared/i18n.test.ts +4 -4
  233. package/lib/shared/i18n.ts +18 -38
  234. package/lib/shared/index.ts +27 -0
  235. package/lib/shared/inlineSvgStyleRules.ts +14 -13
  236. package/lib/shared/interactiveStyleMappings.test.ts +32 -54
  237. package/lib/shared/interactiveStyleMappings.ts +11 -24
  238. package/lib/shared/interactiveStyles.test.ts +165 -188
  239. package/lib/shared/interfaces/contentProvider.ts +1 -1
  240. package/lib/shared/itemTemplateUtils.test.ts +11 -17
  241. package/lib/shared/itemTemplateUtils.ts +27 -39
  242. package/lib/shared/jsonRepair.ts +16 -10
  243. package/lib/shared/libraryLoader.test.ts +21 -55
  244. package/lib/shared/libraryLoader.ts +7 -22
  245. package/lib/shared/linkUtils.ts +1 -1
  246. package/lib/shared/logger.test.ts +66 -0
  247. package/lib/shared/logger.ts +94 -0
  248. package/lib/shared/markdown.ts +25 -0
  249. package/lib/shared/netlifyLocale404.test.ts +179 -0
  250. package/lib/shared/netlifyLocale404.ts +110 -0
  251. package/lib/shared/nodeUtils.test.ts +28 -16
  252. package/lib/shared/nodeUtils.ts +76 -23
  253. package/lib/shared/pathArrayUtils.test.ts +1 -2
  254. package/lib/shared/pathArrayUtils.ts +1 -1
  255. package/lib/shared/pathSecurity.ts +2 -2
  256. package/lib/shared/pathUtils.test.ts +4 -6
  257. package/lib/shared/pathUtils.ts +42 -49
  258. package/lib/shared/paths/Path.test.ts +2 -2
  259. package/lib/shared/paths/Path.ts +0 -1
  260. package/lib/shared/paths/PathConverter.test.ts +1 -1
  261. package/lib/shared/paths/PathConverter.ts +17 -20
  262. package/lib/shared/paths/PathUtils.ts +13 -13
  263. package/lib/shared/paths/PathValidator.test.ts +2 -15
  264. package/lib/shared/paths/PathValidator.ts +12 -10
  265. package/lib/shared/paths/index.ts +1 -2
  266. package/lib/shared/permissions.test.ts +168 -0
  267. package/lib/shared/permissions.ts +162 -0
  268. package/lib/shared/propResolver.test.ts +240 -244
  269. package/lib/shared/propResolver.ts +15 -26
  270. package/lib/shared/pxToRem.test.ts +7 -6
  271. package/lib/shared/pxToRem.ts +2 -5
  272. package/lib/shared/registry/BaseNodeTypeRegistry.test.ts +12 -6
  273. package/lib/shared/registry/ClientRegistry.ts +0 -2
  274. package/lib/shared/registry/ComponentRegistry.test.ts +46 -32
  275. package/lib/shared/registry/ComponentRegistry.ts +12 -9
  276. package/lib/shared/registry/NodeTypeDefinition.ts +16 -9
  277. package/lib/shared/registry/RegistryManager.ts +1 -2
  278. package/lib/shared/registry/SSRRegistry.ts +0 -2
  279. package/lib/shared/registry/createNodeType.ts +7 -9
  280. package/lib/shared/registry/defineNodeType.ts +2 -6
  281. package/lib/shared/registry/fieldPresets.ts +3 -1
  282. package/lib/shared/registry/index.ts +0 -1
  283. package/lib/shared/registry/nodeTypes/ComponentInstanceNodeType.ts +14 -15
  284. package/lib/shared/registry/nodeTypes/CustomNodeType.ts +103 -0
  285. package/lib/shared/registry/nodeTypes/EmbedNodeType.ts +18 -11
  286. package/lib/shared/registry/nodeTypes/HtmlNodeType.ts +48 -19
  287. package/lib/shared/registry/nodeTypes/IslandNodeType.ts +129 -0
  288. package/lib/shared/registry/nodeTypes/LinkNodeType.ts +21 -19
  289. package/lib/shared/registry/nodeTypes/ListNodeType.ts +117 -77
  290. package/lib/shared/registry/nodeTypes/LocaleListNodeType.ts +27 -21
  291. package/lib/shared/registry/nodeTypes/MarkdownNodeType.ts +78 -0
  292. package/lib/shared/registry/nodeTypes/SlotMarkerType.ts +12 -8
  293. package/lib/shared/registry/nodeTypes/index.ts +26 -3
  294. package/lib/shared/responsiveScaling.test.ts +16 -34
  295. package/lib/shared/responsiveScaling.ts +61 -42
  296. package/lib/shared/responsiveStyleUtils.test.ts +0 -1
  297. package/lib/shared/responsiveStyleUtils.ts +11 -13
  298. package/lib/shared/richtext/htmlToTiptap.test.ts +139 -130
  299. package/lib/shared/richtext/htmlToTiptap.ts +2 -4
  300. package/lib/shared/richtext/tiptapToHtml.test.ts +5 -6
  301. package/lib/shared/richtext/types.ts +1 -8
  302. package/lib/shared/slugTranslator.test.ts +13 -13
  303. package/lib/shared/slugTranslator.ts +12 -16
  304. package/lib/shared/slugify.ts +9 -15
  305. package/lib/shared/styleNodeUtils.test.ts +8 -8
  306. package/lib/shared/styleNodeUtils.ts +18 -20
  307. package/lib/shared/styleUtils.test.ts +87 -61
  308. package/lib/shared/styleUtils.ts +5 -6
  309. package/lib/shared/themeDefaults.test.ts +11 -14
  310. package/lib/shared/themeDefaults.ts +3 -4
  311. package/lib/shared/tree/PathBuilder.test.ts +63 -145
  312. package/lib/shared/tree/PathBuilder.ts +59 -47
  313. package/lib/shared/treePathUtils.test.ts +51 -12
  314. package/lib/shared/treePathUtils.ts +91 -60
  315. package/lib/shared/types/api.ts +105 -8
  316. package/lib/shared/types/cms.test.ts +34 -0
  317. package/lib/shared/types/cms.ts +90 -34
  318. package/lib/shared/types/comment.ts +49 -16
  319. package/lib/shared/types/components.ts +51 -25
  320. package/lib/shared/types/errors.test.ts +1 -6
  321. package/lib/shared/types/errors.ts +3 -7
  322. package/lib/shared/types/experiments.ts +28 -28
  323. package/lib/shared/types/index.ts +25 -2
  324. package/lib/shared/types/permissions.ts +139 -0
  325. package/lib/shared/types/styles.ts +0 -1
  326. package/lib/shared/types/variables.test.ts +4 -13
  327. package/lib/shared/types/variables.ts +51 -30
  328. package/lib/shared/types.ts +1 -2
  329. package/lib/shared/utilityClassConfig.ts +751 -321
  330. package/lib/shared/utilityClassMapper.durability.test.ts +117 -0
  331. package/lib/shared/utilityClassMapper.test.ts +433 -95
  332. package/lib/shared/utilityClassMapper.ts +322 -249
  333. package/lib/shared/utilityClassNames.test.ts +38 -0
  334. package/lib/shared/utilityClassNames.ts +458 -0
  335. package/lib/shared/utils.test.ts +2 -10
  336. package/lib/shared/utils.ts +19 -10
  337. package/lib/shared/validation/cmsValidators.ts +2 -1
  338. package/lib/shared/validation/commentValidators.test.ts +53 -0
  339. package/lib/shared/validation/commentValidators.ts +12 -1
  340. package/lib/shared/validation/index.ts +1 -0
  341. package/lib/shared/validation/permissionsValidators.test.ts +49 -0
  342. package/lib/shared/validation/permissionsValidators.ts +49 -0
  343. package/lib/shared/validation/propValidator.test.ts +19 -21
  344. package/lib/shared/validation/propValidator.ts +13 -18
  345. package/lib/shared/validation/schemas.test.ts +64 -32
  346. package/lib/shared/validation/schemas.ts +616 -345
  347. package/lib/shared/validation/validators.test.ts +3 -8
  348. package/lib/shared/validation/validators.ts +89 -68
  349. package/lib/shared/viewportUnits.integration.test.ts +14 -10
  350. package/lib/shared/viewportUnits.test.ts +24 -23
  351. package/lib/shared/viewportUnits.ts +12 -5
  352. package/lib/test-utils/dom-setup.ts +1 -1
  353. package/lib/test-utils/factories/ConsoleMockFactory.ts +10 -14
  354. package/lib/test-utils/factories/DomMockFactory.ts +17 -23
  355. package/lib/test-utils/factories/EventMockFactory.ts +7 -13
  356. package/lib/test-utils/factories/FetchMockFactory.ts +39 -57
  357. package/lib/test-utils/factories/ServerMockFactory.ts +6 -10
  358. package/lib/test-utils/factories/StoreMockFactory.ts +18 -29
  359. package/lib/test-utils/fixtures.ts +45 -45
  360. package/lib/test-utils/helpers/asyncHelpers.test.ts +15 -18
  361. package/lib/test-utils/helpers/asyncHelpers.ts +11 -20
  362. package/lib/test-utils/helpers.ts +1 -5
  363. package/lib/test-utils/index.ts +0 -4
  364. package/lib/test-utils/mockFactories.ts +13 -19
  365. package/lib/test-utils/mocks.ts +6 -4
  366. package/package.json +3 -5
  367. package/scripts/build-for-publish.mjs +2 -4
  368. package/scripts/build-meno-filter.ts +4 -7
  369. package/tsconfig.json +1 -0
  370. package/vite.config.ts +4 -4
  371. package/build-next.ts +0 -1361
  372. package/build-static.test.ts +0 -424
  373. package/build-static.ts +0 -1074
  374. package/dist/build-static.js +0 -36
  375. package/dist/chunks/chunk-2MHDV5BF.js +0 -251
  376. package/dist/chunks/chunk-2MHDV5BF.js.map +0 -7
  377. package/dist/chunks/chunk-AZQYF6KE.js +0 -559
  378. package/dist/chunks/chunk-AZQYF6KE.js.map +0 -7
  379. package/dist/chunks/chunk-GZHGVVW3.js +0 -322
  380. package/dist/chunks/chunk-GZHGVVW3.js.map +0 -7
  381. package/dist/chunks/chunk-H3GJ4H2U.js.map +0 -7
  382. package/dist/chunks/chunk-I7YIGZXT.js +0 -467
  383. package/dist/chunks/chunk-I7YIGZXT.js.map +0 -7
  384. package/dist/chunks/chunk-IGYR22T6.js +0 -6192
  385. package/dist/chunks/chunk-IGYR22T6.js.map +0 -7
  386. package/dist/chunks/chunk-JGP5A3Y5.js +0 -1136
  387. package/dist/chunks/chunk-JGP5A3Y5.js.map +0 -7
  388. package/dist/chunks/chunk-JGWFTO6P.js.map +0 -7
  389. package/dist/chunks/chunk-O3NAGJP4.js.map +0 -7
  390. package/dist/chunks/chunk-QB2LNO4W.js +0 -77
  391. package/dist/chunks/chunk-QB2LNO4W.js.map +0 -7
  392. package/dist/chunks/chunk-R6XHAFBF.js +0 -3821
  393. package/dist/chunks/chunk-R6XHAFBF.js.map +0 -7
  394. package/dist/chunks/chunk-UB44F4Z2.js.map +0 -7
  395. package/dist/chunks/chunk-WQFG7PAH.js.map +0 -7
  396. package/dist/chunks/chunk-X754AHS5.js.map +0 -7
  397. package/dist/chunks/chunk-YBLHKYFF.js.map +0 -7
  398. package/dist/chunks/configService-R3OGU2UD.js +0 -13
  399. package/dist/chunks/configService-R3OGU2UD.js.map +0 -7
  400. package/dist/chunks/constants-STK2YBIW.js +0 -46
  401. package/dist/chunks/constants-STK2YBIW.js.map +0 -7
  402. package/dist/chunks/fs-JGINUXGL.js.map +0 -7
  403. package/dist/entries/server-router.js +0 -67
  404. package/dist/entries/server-router.js.map +0 -7
  405. package/entries/server-router.tsx +0 -81
  406. package/lib/server/providers/fileSystemPageProvider.ts +0 -160
  407. package/lib/server/webflow/buildWebflow.ts +0 -635
  408. package/lib/server/webflow/index.ts +0 -23
  409. package/lib/server/webflow/nodeToWebflow.test.ts +0 -3170
  410. package/lib/server/webflow/nodeToWebflow.ts +0 -2435
  411. package/lib/server/webflow/styleMapper.test.ts +0 -389
  412. package/lib/server/webflow/styleMapper.ts +0 -695
  413. package/lib/server/webflow/templateWrapper.ts +0 -49
  414. package/lib/server/webflow/types.ts +0 -396
  415. /package/dist/{build-static.js.map → chunks/fs-G3ANWEFP.js.map} +0 -0
@@ -3,7 +3,7 @@
3
3
  * Utilities for handling async operations in tests
4
4
  */
5
5
 
6
- import { mock } from 'bun:test';
6
+ import type { mock } from 'bun:test';
7
7
 
8
8
  /**
9
9
  * Wait for a condition to be true
@@ -12,7 +12,7 @@ import { mock } from 'bun:test';
12
12
  */
13
13
  export async function waitFor(
14
14
  condition: () => boolean | Promise<boolean>,
15
- options: { timeout?: number; interval?: number } = {}
15
+ options: { timeout?: number; interval?: number } = {},
16
16
  ): Promise<void> {
17
17
  const { timeout = 5000, interval = 50 } = options;
18
18
  const start = Date.now();
@@ -33,17 +33,16 @@ export async function waitFor(
33
33
  */
34
34
  export async function waitForMockCall(
35
35
  mockFn: ReturnType<typeof mock>,
36
- options: { timeout?: number; callCount?: number } = {}
36
+ options: { timeout?: number; callCount?: number } = {},
37
37
  ): Promise<void> {
38
38
  const { timeout = 5000, callCount = 1 } = options;
39
39
 
40
40
  await waitFor(
41
41
  () => {
42
- const calls = (mockFn as unknown as { mock: { calls: unknown[][] } }).mock
43
- ?.calls;
42
+ const calls = (mockFn as unknown as { mock: { calls: unknown[][] } }).mock?.calls;
44
43
  return (calls?.length ?? 0) >= callCount;
45
44
  },
46
- { timeout }
45
+ { timeout },
47
46
  );
48
47
  }
49
48
 
@@ -109,14 +108,11 @@ export function createDeferred<T>(): Deferred<T> {
109
108
  */
110
109
  export async function waitForElement(
111
110
  selector: string,
112
- options: { container?: Element; timeout?: number } = {}
111
+ options: { container?: Element; timeout?: number } = {},
113
112
  ): Promise<Element> {
114
113
  const { container = document, timeout = 5000 } = options;
115
114
 
116
- await waitFor(
117
- () => container.querySelector(selector) !== null,
118
- { timeout }
119
- );
115
+ await waitFor(() => container.querySelector(selector) !== null, { timeout });
120
116
 
121
117
  const element = container.querySelector(selector);
122
118
  if (!element) {
@@ -133,14 +129,11 @@ export async function waitForElement(
133
129
  */
134
130
  export async function waitForElementToBeRemoved(
135
131
  selector: string,
136
- options: { container?: Element; timeout?: number } = {}
132
+ options: { container?: Element; timeout?: number } = {},
137
133
  ): Promise<void> {
138
134
  const { container = document, timeout = 5000 } = options;
139
135
 
140
- await waitFor(
141
- () => container.querySelector(selector) === null,
142
- { timeout }
143
- );
136
+ await waitFor(() => container.querySelector(selector) === null, { timeout });
144
137
  }
145
138
 
146
139
  /**
@@ -150,7 +143,7 @@ export async function waitForElementToBeRemoved(
150
143
  */
151
144
  export async function retry<T>(
152
145
  fn: () => T | Promise<T>,
153
- options: { maxAttempts?: number; delay?: number } = {}
146
+ options: { maxAttempts?: number; delay?: number } = {},
154
147
  ): Promise<T> {
155
148
  const { maxAttempts = 3, delay = 100 } = options;
156
149
 
@@ -174,9 +167,7 @@ export async function retry<T>(
174
167
  * Create a function that resolves after being called N times
175
168
  * Useful for waiting for multiple async operations
176
169
  */
177
- export function createCallCounter(
178
- targetCount: number
179
- ): { increment: () => void; promise: Promise<void> } {
170
+ export function createCallCounter(targetCount: number): { increment: () => void; promise: Promise<void> } {
180
171
  let count = 0;
181
172
  let resolve!: () => void;
182
173
 
@@ -70,7 +70,7 @@ export function createTestTree(depth: number = 2, childrenPerNode: number = 2):
70
70
  * Wait for async operations to complete
71
71
  */
72
72
  export function wait(ms: number = 0): Promise<void> {
73
- return new Promise(resolve => setTimeout(resolve, ms));
73
+ return new Promise((resolve) => setTimeout(resolve, ms));
74
74
  }
75
75
 
76
76
  /**
@@ -84,7 +84,3 @@ export function createMockFetchResponse(data: any, options: { ok?: boolean; stat
84
84
  text: () => Promise.resolve(typeof data === 'string' ? data : JSON.stringify(data)),
85
85
  } as Response);
86
86
  }
87
-
88
-
89
-
90
-
@@ -12,7 +12,3 @@ export * from './mockFactories';
12
12
  export * from './factories';
13
13
  // Re-export from asyncHelpers but skip 'wait' to avoid conflict with helpers.ts
14
14
  export { waitFor, waitForMockCall, waitForElement, waitForElementToBeRemoved } from './helpers/asyncHelpers';
15
-
16
-
17
-
18
-
@@ -3,15 +3,13 @@
3
3
  * Factory functions for creating common test objects
4
4
  */
5
5
 
6
- import type { Path } from "../shared/pathArrayUtils";
6
+ import type { Path } from '../shared/pathArrayUtils';
7
7
 
8
8
  /**
9
9
  * Create a mock HTMLElement for testing
10
10
  */
11
- export function createMockElement(
12
- overrides: Partial<HTMLElement> = {}
13
- ): HTMLElement {
14
- const element = document.createElement("div");
11
+ export function createMockElement(overrides: Partial<HTMLElement> = {}): HTMLElement {
12
+ const element = document.createElement('div');
15
13
  element.scrollIntoView = (() => {}) as any;
16
14
  return Object.assign(element, overrides) as HTMLElement;
17
15
  }
@@ -19,13 +17,11 @@ export function createMockElement(
19
17
  /**
20
18
  * Create a mock component structure for testing
21
19
  */
22
- export function createMockComponentStructure(
23
- overrides: Partial<any> = {}
24
- ): any {
20
+ export function createMockComponentStructure(overrides: Partial<any> = {}): any {
25
21
  return {
26
- type: "div",
22
+ type: 'div',
27
23
  props: {
28
- className: "test-component",
24
+ className: 'test-component',
29
25
  },
30
26
  children: [],
31
27
  ...overrides,
@@ -42,12 +38,10 @@ export function createMockPath(depth: number = 2): Path {
42
38
  /**
43
39
  * Create mock component props
44
40
  */
45
- export function createMockComponentProps(
46
- overrides: Record<string, unknown> = {}
47
- ): Record<string, unknown> {
41
+ export function createMockComponentProps(overrides: Record<string, unknown> = {}): Record<string, unknown> {
48
42
  return {
49
- variant: "primary",
50
- size: "medium",
43
+ variant: 'primary',
44
+ size: 'medium',
51
45
  disabled: false,
52
46
  ...overrides,
53
47
  };
@@ -59,9 +53,9 @@ export function createMockComponentProps(
59
53
  export function createMockPageStructure(overrides: Partial<any> = {}): any {
60
54
  return {
61
55
  root: {
62
- type: "div",
56
+ type: 'div',
63
57
  props: {
64
- className: "page-container",
58
+ className: 'page-container',
65
59
  },
66
60
  children: [],
67
61
  },
@@ -74,7 +68,7 @@ export function createMockPageStructure(overrides: Partial<any> = {}): any {
74
68
  * Create test container for DOM tests
75
69
  */
76
70
  export function createTestContainer(): HTMLElement {
77
- const container = document.createElement("div");
71
+ const container = document.createElement('div');
78
72
  container.id = `test-container-${Date.now()}`;
79
73
  document.body.appendChild(container);
80
74
  return container;
@@ -86,7 +80,7 @@ export function createTestContainer(): HTMLElement {
86
80
  export function cleanupTestContainer(container: HTMLElement): void {
87
81
  try {
88
82
  document.body.removeChild(container);
89
- } catch (e) {
83
+ } catch (_e) {
90
84
  // Already removed
91
85
  }
92
86
  }
@@ -46,7 +46,10 @@ export function createMockComponentNode(overrides?: Partial<ComponentNode>): Com
46
46
  /**
47
47
  * Create a mock ComponentDefinition
48
48
  */
49
- export function createMockComponentDefinition(name: string, overrides?: Partial<ComponentDefinition>): ComponentDefinition {
49
+ export function createMockComponentDefinition(
50
+ _name: string,
51
+ overrides?: Partial<ComponentDefinition>,
52
+ ): ComponentDefinition {
50
53
  return {
51
54
  component: {
52
55
  interface: {},
@@ -281,7 +284,7 @@ export function createMockFs(files: Record<string, string> = {}) {
281
284
  const fileSystem = { ...files };
282
285
 
283
286
  return {
284
- readFile: mock(async (path: string, encoding?: string) => {
287
+ readFile: mock(async (path: string, _encoding?: string) => {
285
288
  if (path in fileSystem) {
286
289
  return fileSystem[path];
287
290
  }
@@ -301,7 +304,7 @@ export function createMockFs(files: Record<string, string> = {}) {
301
304
  delete fileSystem[path];
302
305
  }),
303
306
  readdir: mock(async (dir: string) => {
304
- const normalizedDir = dir.endsWith('/') ? dir : dir + '/';
307
+ const normalizedDir = dir.endsWith('/') ? dir : `${dir}/`;
305
308
  const entries = new Set<string>();
306
309
  for (const path of Object.keys(fileSystem)) {
307
310
  if (path.startsWith(normalizedDir)) {
@@ -338,4 +341,3 @@ export function createMockFs(files: Record<string, string> = {}) {
338
341
  _files: fileSystem,
339
342
  };
340
343
  }
341
-
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "meno-core",
3
- "version": "1.0.53",
3
+ "version": "1.1.0",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "meno": "./dist/bin/cli.js"
@@ -15,12 +15,8 @@
15
15
  "./test-utils": "./dist/lib/test-utils/index.js"
16
16
  },
17
17
  "scripts": {
18
- "dev": "cd ../../example && bun run ../packages/core/bin/cli.ts dev",
19
18
  "build": "vite build",
20
19
  "build:filter": "bun scripts/build-meno-filter.ts",
21
- "build:static": "cd ../../example && bun run ../packages/core/bin/cli.ts build",
22
- "serve": "cd ../../example && bun run ../packages/core/bin/cli.ts serve",
23
- "dev:full": "bun run build:static && bun run serve",
24
20
  "test": "bun test",
25
21
  "typecheck": "tsc --noEmit",
26
22
  "prepublishOnly": "node scripts/build-for-publish.mjs"
@@ -30,12 +26,14 @@
30
26
  "esbuild": "^0.25.0",
31
27
  "isomorphic-dompurify": "^2.32.0",
32
28
  "jsep": "^1.4.0",
29
+ "markdown-it": "^14.1.0",
33
30
  "react": "^18.2.0",
34
31
  "react-dom": "^18.2.0",
35
32
  "ws": "^8.18.0",
36
33
  "zod": "^3.22.4"
37
34
  },
38
35
  "devDependencies": {
36
+ "@types/markdown-it": "^14.1.2",
39
37
  "@types/react": "^18.2.0",
40
38
  "@types/react-dom": "^18.2.0",
41
39
  "@types/ws": "^8.5.13",
@@ -9,7 +9,7 @@
9
9
  */
10
10
 
11
11
  import { build } from 'esbuild';
12
- import { readFileSync, writeFileSync, rmSync } from 'fs';
12
+ import { readFileSync, writeFileSync, rmSync } from 'node:fs';
13
13
 
14
14
  // Clean previous build
15
15
  rmSync('dist', { recursive: true, force: true });
@@ -30,8 +30,6 @@ await build({
30
30
  ...shared,
31
31
  entryPoints: [
32
32
  'bin/cli.ts',
33
- 'build-static.ts',
34
- 'entries/server-router.tsx',
35
33
  'lib/server/index.ts',
36
34
  'lib/shared/index.ts',
37
35
  'lib/client/index.ts',
@@ -60,5 +58,5 @@ pkg.exports = {
60
58
  };
61
59
  delete pkg.publishConfig;
62
60
 
63
- writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');
61
+ writeFileSync('package.json', `${JSON.stringify(pkg, null, 2)}\n`);
64
62
  console.log('meno-core: package.json rewritten for publish');
@@ -8,9 +8,9 @@
8
8
  */
9
9
 
10
10
  import { build } from 'esbuild';
11
- import { writeFileSync } from 'fs';
12
- import { join, dirname } from 'path';
13
- import { fileURLToPath } from 'url';
11
+ import { writeFileSync } from 'node:fs';
12
+ import { join, dirname } from 'node:path';
13
+ import { fileURLToPath } from 'node:url';
14
14
 
15
15
  const __dirname = dirname(fileURLToPath(import.meta.url));
16
16
  const rootDir = join(__dirname, '..');
@@ -36,10 +36,7 @@ async function buildMenoFilter() {
36
36
  const code = result.outputFiles[0].text;
37
37
 
38
38
  // Escape backticks and ${} in the generated code for template literal
39
- const escapedCode = code
40
- .replace(/\\/g, '\\\\')
41
- .replace(/`/g, '\\`')
42
- .replace(/\$\{/g, '\\${');
39
+ const escapedCode = code.replace(/\\/g, '\\\\').replace(/`/g, '\\`').replace(/\$\{/g, '\\${');
43
40
 
44
41
  // Generate TypeScript file with exported string
45
42
  const output = `// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
package/tsconfig.json CHANGED
@@ -4,6 +4,7 @@
4
4
  "rootDir": ".",
5
5
  "outDir": "./dist",
6
6
  "baseUrl": ".",
7
+ "noUncheckedIndexedAccess": true,
7
8
  "paths": {
8
9
  "meno-core": ["./lib/shared/index.ts"],
9
10
  "meno-core/*": ["./lib/*"]
package/vite.config.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { defineConfig } from 'vite'
2
- import react from '@vitejs/plugin-react'
3
- import path from 'path'
1
+ import { defineConfig } from 'vite';
2
+ import react from '@vitejs/plugin-react';
3
+ import path from 'node:path';
4
4
 
5
5
  export default defineConfig({
6
6
  plugins: [react()],
@@ -40,4 +40,4 @@ export default defineConfig({
40
40
  'meno-core': path.resolve(__dirname, 'lib/shared/index.ts'),
41
41
  },
42
42
  },
43
- })
43
+ });