meno-core 1.0.30 → 1.0.31

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 (398) hide show
  1. package/dist/bin/cli.js +359 -0
  2. package/dist/bin/cli.js.map +7 -0
  3. package/dist/build-static.js +36 -0
  4. package/dist/build-static.js.map +7 -0
  5. package/dist/chunks/chunk-2NBGG2LJ.js +433 -0
  6. package/dist/chunks/chunk-2NBGG2LJ.js.map +7 -0
  7. package/dist/chunks/chunk-4KWEMYQE.js +588 -0
  8. package/dist/chunks/chunk-4KWEMYQE.js.map +7 -0
  9. package/{lib/server/ssr/buildErrorOverlay.ts → dist/chunks/chunk-4OFZP5NQ.js} +19 -49
  10. package/dist/chunks/chunk-4OFZP5NQ.js.map +7 -0
  11. package/dist/chunks/chunk-7ZZIWLUS.js +3555 -0
  12. package/dist/chunks/chunk-7ZZIWLUS.js.map +7 -0
  13. package/dist/chunks/chunk-GB2LHWZF.js +183 -0
  14. package/dist/chunks/chunk-GB2LHWZF.js.map +7 -0
  15. package/dist/chunks/chunk-HE67KV43.js +1116 -0
  16. package/dist/chunks/chunk-HE67KV43.js.map +7 -0
  17. package/dist/chunks/chunk-INK4UWAN.js +3055 -0
  18. package/dist/chunks/chunk-INK4UWAN.js.map +7 -0
  19. package/dist/chunks/chunk-KSBZ2L7C.js +34 -0
  20. package/dist/chunks/chunk-KSBZ2L7C.js.map +7 -0
  21. package/dist/chunks/chunk-KULPBDC7.js +217 -0
  22. package/dist/chunks/chunk-KULPBDC7.js.map +7 -0
  23. package/dist/chunks/chunk-LIHJ6OUH.js +54 -0
  24. package/dist/chunks/chunk-LIHJ6OUH.js.map +7 -0
  25. package/dist/chunks/chunk-M4B7T6NE.js +200 -0
  26. package/dist/chunks/chunk-M4B7T6NE.js.map +7 -0
  27. package/dist/chunks/chunk-MJD62IUJ.js +462 -0
  28. package/dist/chunks/chunk-MJD62IUJ.js.map +7 -0
  29. package/dist/chunks/chunk-NBMAZOCJ.js +4503 -0
  30. package/dist/chunks/chunk-NBMAZOCJ.js.map +7 -0
  31. package/dist/chunks/chunk-PGH3ATYI.js +310 -0
  32. package/dist/chunks/chunk-PGH3ATYI.js.map +7 -0
  33. package/dist/chunks/chunk-RWTKZPWJ.js +201 -0
  34. package/dist/chunks/chunk-RWTKZPWJ.js.map +7 -0
  35. package/dist/chunks/chunk-UB44F4Z2.js +706 -0
  36. package/dist/chunks/chunk-UB44F4Z2.js.map +7 -0
  37. package/dist/chunks/configService-UJGQY46I.js +13 -0
  38. package/dist/chunks/configService-UJGQY46I.js.map +7 -0
  39. package/dist/chunks/constants-5CRJRQNR.js +46 -0
  40. package/dist/chunks/constants-5CRJRQNR.js.map +7 -0
  41. package/dist/chunks/fs-JMN4XQPQ.js +30 -0
  42. package/dist/chunks/fs-JMN4XQPQ.js.map +7 -0
  43. package/dist/entries/server-router.js +67 -0
  44. package/dist/entries/server-router.js.map +7 -0
  45. package/dist/lib/client/index.js +4763 -0
  46. package/dist/lib/client/index.js.map +7 -0
  47. package/dist/lib/server/index.js +202 -0
  48. package/dist/lib/server/index.js.map +7 -0
  49. package/dist/lib/shared/index.js +1516 -0
  50. package/dist/lib/shared/index.js.map +7 -0
  51. package/dist/lib/shared/richtext/index.js +18 -0
  52. package/dist/lib/shared/richtext/index.js.map +7 -0
  53. package/dist/lib/test-utils/index.js +1525 -0
  54. package/dist/lib/test-utils/index.js.map +7 -0
  55. package/package.json +2 -1
  56. package/.claude/settings.local.json +0 -7
  57. package/build-static.test.ts +0 -424
  58. package/build-static.ts +0 -1042
  59. package/bunfig.toml +0 -42
  60. package/entries/client-router.tsx +0 -206
  61. package/entries/server-router.tsx +0 -77
  62. package/lib/client/ClientInitializer.test.ts +0 -9
  63. package/lib/client/ClientInitializer.test.ts.skip +0 -92
  64. package/lib/client/ClientInitializer.ts +0 -110
  65. package/lib/client/ErrorBoundary.test.tsx +0 -595
  66. package/lib/client/ErrorBoundary.tsx +0 -230
  67. package/lib/client/InteractiveStylesRegistry.ts +0 -96
  68. package/lib/client/componentRegistry.test.ts +0 -211
  69. package/lib/client/componentRegistry.ts +0 -18
  70. package/lib/client/contexts/ThemeContext.tsx +0 -73
  71. package/lib/client/core/ComponentBuilder.test.ts +0 -1699
  72. package/lib/client/core/ComponentBuilder.ts +0 -994
  73. package/lib/client/core/ComponentRenderer.test.tsx +0 -175
  74. package/lib/client/core/ComponentRenderer.tsx +0 -90
  75. package/lib/client/core/builders/embedBuilder.ts +0 -229
  76. package/lib/client/core/builders/index.ts +0 -30
  77. package/lib/client/core/builders/linkBuilder.ts +0 -136
  78. package/lib/client/core/builders/linkNodeBuilder.ts +0 -216
  79. package/lib/client/core/builders/listBuilder.ts +0 -599
  80. package/lib/client/core/builders/localeListBuilder.ts +0 -235
  81. package/lib/client/core/builders/types.ts +0 -97
  82. package/lib/client/core/cmsTemplateProcessor.ts +0 -147
  83. package/lib/client/elementRegistry.ts +0 -117
  84. package/lib/client/hmr/HMRManager.tsx +0 -205
  85. package/lib/client/hmr/index.ts +0 -5
  86. package/lib/client/hmrWebSocket.test.ts +0 -9
  87. package/lib/client/hmrWebSocket.ts +0 -269
  88. package/lib/client/hooks/useColorVariables.test.ts +0 -166
  89. package/lib/client/hooks/useColorVariables.ts +0 -249
  90. package/lib/client/hooks/usePropertyAutocomplete.test.ts +0 -9
  91. package/lib/client/hooks/usePropertyAutocomplete.ts +0 -40
  92. package/lib/client/hooks/useVariables.ts +0 -101
  93. package/lib/client/hydration/HydrationUtils.test.ts +0 -154
  94. package/lib/client/hydration/HydrationUtils.ts +0 -35
  95. package/lib/client/i18nConfigService.test.ts +0 -73
  96. package/lib/client/i18nConfigService.ts +0 -78
  97. package/lib/client/index.ts +0 -61
  98. package/lib/client/meno-filter/MenoFilter.test.ts +0 -1230
  99. package/lib/client/meno-filter/MenoFilter.ts +0 -1281
  100. package/lib/client/meno-filter/bindings.ts +0 -555
  101. package/lib/client/meno-filter/constants.ts +0 -72
  102. package/lib/client/meno-filter/index.ts +0 -58
  103. package/lib/client/meno-filter/init.ts +0 -259
  104. package/lib/client/meno-filter/renderer.ts +0 -410
  105. package/lib/client/meno-filter/script.generated.ts +0 -56
  106. package/lib/client/meno-filter/types.ts +0 -165
  107. package/lib/client/meno-filter/ui.ts +0 -364
  108. package/lib/client/meno-filter/updates.ts +0 -674
  109. package/lib/client/meno-filter/utils.ts +0 -44
  110. package/lib/client/navigation.test.ts +0 -441
  111. package/lib/client/navigation.ts +0 -23
  112. package/lib/client/responsiveStyleResolver.test.ts +0 -496
  113. package/lib/client/responsiveStyleResolver.ts +0 -196
  114. package/lib/client/routing/RouteLoader.test.ts +0 -753
  115. package/lib/client/routing/RouteLoader.ts +0 -380
  116. package/lib/client/routing/Router.tsx +0 -651
  117. package/lib/client/scripts/ScriptExecutor.test.ts +0 -465
  118. package/lib/client/scripts/ScriptExecutor.ts +0 -317
  119. package/lib/client/scripts/formHandler.ts +0 -103
  120. package/lib/client/services/PrefetchService.test.ts +0 -362
  121. package/lib/client/services/PrefetchService.ts +0 -344
  122. package/lib/client/styleProcessor.test.ts +0 -126
  123. package/lib/client/styleProcessor.ts +0 -93
  124. package/lib/client/styles/StyleInjector.test.ts +0 -370
  125. package/lib/client/styles/StyleInjector.ts +0 -195
  126. package/lib/client/styles/UtilityClassCollector.ts +0 -208
  127. package/lib/client/templateEngine.test.ts +0 -787
  128. package/lib/client/templateEngine.ts +0 -828
  129. package/lib/client/theme.test.ts +0 -173
  130. package/lib/client/theme.ts +0 -147
  131. package/lib/client/utils/toast.ts +0 -47
  132. package/lib/server/__integration__/api-routes.test.ts +0 -148
  133. package/lib/server/__integration__/cms-integration.test.ts +0 -161
  134. package/lib/server/__integration__/server-lifecycle.test.ts +0 -101
  135. package/lib/server/__integration__/ssr-rendering.test.ts +0 -131
  136. package/lib/server/__integration__/static-assets.test.ts +0 -80
  137. package/lib/server/__integration__/test-helpers.ts +0 -205
  138. package/lib/server/ab/generateFunctions.ts +0 -346
  139. package/lib/server/ab/trackingScript.ts +0 -45
  140. package/lib/server/createServer.ts +0 -171
  141. package/lib/server/cssGenerator.test.ts +0 -172
  142. package/lib/server/cssGenerator.ts +0 -146
  143. package/lib/server/errors.ts +0 -65
  144. package/lib/server/fileWatcher.ts +0 -273
  145. package/lib/server/index.ts +0 -78
  146. package/lib/server/jsonLoader.test.ts +0 -106
  147. package/lib/server/jsonLoader.ts +0 -504
  148. package/lib/server/middleware/cors.test.ts +0 -177
  149. package/lib/server/middleware/cors.ts +0 -69
  150. package/lib/server/middleware/errorHandler.test.ts +0 -208
  151. package/lib/server/middleware/errorHandler.ts +0 -63
  152. package/lib/server/middleware/index.ts +0 -9
  153. package/lib/server/middleware/logger.test.ts +0 -233
  154. package/lib/server/middleware/logger.ts +0 -99
  155. package/lib/server/migrateTemplates.ts +0 -22
  156. package/lib/server/pageCache.test.ts +0 -167
  157. package/lib/server/pageCache.ts +0 -97
  158. package/lib/server/projectContext.ts +0 -58
  159. package/lib/server/providers/fileSystemCMSProvider.test.ts +0 -345
  160. package/lib/server/providers/fileSystemCMSProvider.ts +0 -340
  161. package/lib/server/providers/fileSystemPageProvider.ts +0 -152
  162. package/lib/server/routes/api/cms.test.ts +0 -183
  163. package/lib/server/routes/api/cms.ts +0 -131
  164. package/lib/server/routes/api/colors.test.ts +0 -103
  165. package/lib/server/routes/api/colors.ts +0 -44
  166. package/lib/server/routes/api/components.ts +0 -81
  167. package/lib/server/routes/api/config.test.ts +0 -9
  168. package/lib/server/routes/api/config.ts +0 -47
  169. package/lib/server/routes/api/core-routes.ts +0 -262
  170. package/lib/server/routes/api/enums.test.ts +0 -53
  171. package/lib/server/routes/api/enums.ts +0 -16
  172. package/lib/server/routes/api/functions.ts +0 -168
  173. package/lib/server/routes/api/index.ts +0 -69
  174. package/lib/server/routes/api/pages.ts +0 -97
  175. package/lib/server/routes/api/shared.test.ts +0 -81
  176. package/lib/server/routes/api/shared.ts +0 -31
  177. package/lib/server/routes/api/variables.test.ts +0 -74
  178. package/lib/server/routes/api/variables.ts +0 -32
  179. package/lib/server/routes/editor.test.ts +0 -9
  180. package/lib/server/routes/index.ts +0 -147
  181. package/lib/server/routes/pages.ts +0 -265
  182. package/lib/server/routes/static.ts +0 -95
  183. package/lib/server/runtime/bundler.ts +0 -285
  184. package/lib/server/runtime/fs.ts +0 -232
  185. package/lib/server/runtime/httpServer.ts +0 -228
  186. package/lib/server/runtime/index.ts +0 -36
  187. package/lib/server/scriptCache.ts +0 -36
  188. package/lib/server/services/CachedConfigLoader.ts +0 -55
  189. package/lib/server/services/ColorService.test.ts +0 -216
  190. package/lib/server/services/ColorService.ts +0 -224
  191. package/lib/server/services/EnumService.test.ts +0 -192
  192. package/lib/server/services/EnumService.ts +0 -123
  193. package/lib/server/services/VariableService.test.ts +0 -183
  194. package/lib/server/services/VariableService.ts +0 -101
  195. package/lib/server/services/cmsService.test.ts +0 -792
  196. package/lib/server/services/cmsService.ts +0 -682
  197. package/lib/server/services/componentService.test.ts +0 -276
  198. package/lib/server/services/componentService.ts +0 -570
  199. package/lib/server/services/configService.test.ts +0 -856
  200. package/lib/server/services/configService.ts +0 -271
  201. package/lib/server/services/fileWatcherService.ts +0 -122
  202. package/lib/server/services/index.ts +0 -10
  203. package/lib/server/services/pageService.test.ts +0 -258
  204. package/lib/server/services/pageService.ts +0 -402
  205. package/lib/server/ssr/attributeBuilder.ts +0 -90
  206. package/lib/server/ssr/clientDataInjector.test.ts +0 -337
  207. package/lib/server/ssr/clientDataInjector.ts +0 -161
  208. package/lib/server/ssr/cmsSSRProcessor.ts +0 -113
  209. package/lib/server/ssr/cssCollector.ts +0 -33
  210. package/lib/server/ssr/errorOverlay.test.ts +0 -73
  211. package/lib/server/ssr/errorOverlay.ts +0 -263
  212. package/lib/server/ssr/htmlGenerator.test.ts +0 -993
  213. package/lib/server/ssr/htmlGenerator.ts +0 -461
  214. package/lib/server/ssr/imageMetadata.test.ts +0 -168
  215. package/lib/server/ssr/imageMetadata.ts +0 -179
  216. package/lib/server/ssr/index.ts +0 -35
  217. package/lib/server/ssr/jsCollector.test.ts +0 -287
  218. package/lib/server/ssr/jsCollector.ts +0 -155
  219. package/lib/server/ssr/metaTagGenerator.ts +0 -137
  220. package/lib/server/ssr/ssrRenderer.test.ts +0 -3868
  221. package/lib/server/ssr/ssrRenderer.ts +0 -1712
  222. package/lib/server/ssrRenderer.test.ts +0 -2114
  223. package/lib/server/ssrRenderer.ts +0 -11
  224. package/lib/server/utilityClassGenerator.ts +0 -11
  225. package/lib/server/utils/index.ts +0 -5
  226. package/lib/server/utils/jsonLineMapper.test.ts +0 -100
  227. package/lib/server/utils/jsonLineMapper.ts +0 -166
  228. package/lib/server/validateStyleCoverage.test.ts +0 -9
  229. package/lib/server/validateStyleCoverage.ts +0 -163
  230. package/lib/server/websocketManager.test.ts +0 -9
  231. package/lib/server/websocketManager.ts +0 -135
  232. package/lib/shared/attributeNodeUtils.test.ts +0 -152
  233. package/lib/shared/attributeNodeUtils.ts +0 -50
  234. package/lib/shared/breakpoints.test.ts +0 -353
  235. package/lib/shared/breakpoints.ts +0 -172
  236. package/lib/shared/cmsQueryParser.test.ts +0 -288
  237. package/lib/shared/cmsQueryParser.ts +0 -188
  238. package/lib/shared/colorConversions.test.ts +0 -140
  239. package/lib/shared/colorConversions.ts +0 -181
  240. package/lib/shared/colorProperties.test.ts +0 -111
  241. package/lib/shared/colorProperties.ts +0 -40
  242. package/lib/shared/colorVariableUtils.test.ts +0 -319
  243. package/lib/shared/colorVariableUtils.ts +0 -97
  244. package/lib/shared/constants.test.ts +0 -175
  245. package/lib/shared/constants.ts +0 -177
  246. package/lib/shared/cssGeneration.test.ts +0 -192
  247. package/lib/shared/cssGeneration.ts +0 -903
  248. package/lib/shared/cssProperties.test.ts +0 -252
  249. package/lib/shared/cssProperties.ts +0 -470
  250. package/lib/shared/elementClassName.test.ts +0 -319
  251. package/lib/shared/elementClassName.ts +0 -102
  252. package/lib/shared/elementUtils.test.ts +0 -245
  253. package/lib/shared/elementUtils.ts +0 -90
  254. package/lib/shared/errorLogger.test.ts +0 -136
  255. package/lib/shared/errorLogger.ts +0 -87
  256. package/lib/shared/errors.test.ts +0 -99
  257. package/lib/shared/errors.ts +0 -50
  258. package/lib/shared/expressionEvaluator.ts +0 -161
  259. package/lib/shared/fontLoader.test.ts +0 -344
  260. package/lib/shared/fontLoader.ts +0 -158
  261. package/lib/shared/globalTemplateContext.ts +0 -45
  262. package/lib/shared/gradientUtils.test.ts +0 -183
  263. package/lib/shared/gradientUtils.ts +0 -184
  264. package/lib/shared/i18n.test.ts +0 -419
  265. package/lib/shared/i18n.ts +0 -312
  266. package/lib/shared/index.ts +0 -128
  267. package/lib/shared/interactiveStyleMappings.test.ts +0 -463
  268. package/lib/shared/interactiveStyleMappings.ts +0 -284
  269. package/lib/shared/interactiveStyles.test.ts +0 -486
  270. package/lib/shared/interfaces/contentProvider.test.ts +0 -9
  271. package/lib/shared/interfaces/contentProvider.ts +0 -124
  272. package/lib/shared/itemTemplateUtils.test.ts +0 -740
  273. package/lib/shared/itemTemplateUtils.ts +0 -472
  274. package/lib/shared/libraryLoader.test.ts +0 -503
  275. package/lib/shared/libraryLoader.ts +0 -217
  276. package/lib/shared/linkUtils.ts +0 -24
  277. package/lib/shared/nodeUtils.test.ts +0 -543
  278. package/lib/shared/nodeUtils.ts +0 -419
  279. package/lib/shared/pathArrayUtils.test.ts +0 -315
  280. package/lib/shared/pathArrayUtils.ts +0 -17
  281. package/lib/shared/pathSecurity.test.ts +0 -156
  282. package/lib/shared/pathSecurity.ts +0 -95
  283. package/lib/shared/pathUtils.test.ts +0 -260
  284. package/lib/shared/pathUtils.ts +0 -244
  285. package/lib/shared/paths/Path.test.ts +0 -74
  286. package/lib/shared/paths/Path.ts +0 -23
  287. package/lib/shared/paths/PathConverter.test.ts +0 -232
  288. package/lib/shared/paths/PathConverter.ts +0 -141
  289. package/lib/shared/paths/PathUtils.ts +0 -290
  290. package/lib/shared/paths/PathValidator.test.ts +0 -193
  291. package/lib/shared/paths/PathValidator.ts +0 -53
  292. package/lib/shared/paths/index.ts +0 -48
  293. package/lib/shared/propResolver.test.ts +0 -744
  294. package/lib/shared/propResolver.ts +0 -211
  295. package/lib/shared/registry/BaseNodeTypeRegistry.test.ts +0 -190
  296. package/lib/shared/registry/BaseNodeTypeRegistry.ts +0 -200
  297. package/lib/shared/registry/ClientNodeTypeRegistry.ts +0 -34
  298. package/lib/shared/registry/ClientRegistry.test.ts +0 -26
  299. package/lib/shared/registry/ClientRegistry.ts +0 -15
  300. package/lib/shared/registry/ComponentRegistry.test.ts +0 -293
  301. package/lib/shared/registry/ComponentRegistry.ts +0 -100
  302. package/lib/shared/registry/NodeTypeDefinition.ts +0 -198
  303. package/lib/shared/registry/NodeTypeManager.ts +0 -94
  304. package/lib/shared/registry/RegistryManager.test.ts +0 -58
  305. package/lib/shared/registry/RegistryManager.ts +0 -60
  306. package/lib/shared/registry/SSRNodeTypeRegistry.ts +0 -33
  307. package/lib/shared/registry/SSRRegistry.test.ts +0 -26
  308. package/lib/shared/registry/SSRRegistry.ts +0 -15
  309. package/lib/shared/registry/createNodeType.ts +0 -175
  310. package/lib/shared/registry/defineNodeType.ts +0 -73
  311. package/lib/shared/registry/fieldPresets.ts +0 -109
  312. package/lib/shared/registry/index.ts +0 -51
  313. package/lib/shared/registry/nodeTypes/ComponentInstanceNodeType.ts +0 -75
  314. package/lib/shared/registry/nodeTypes/EmbedNodeType.ts +0 -67
  315. package/lib/shared/registry/nodeTypes/HtmlNodeType.ts +0 -92
  316. package/lib/shared/registry/nodeTypes/LinkNodeType.ts +0 -79
  317. package/lib/shared/registry/nodeTypes/ListNodeType.ts +0 -176
  318. package/lib/shared/registry/nodeTypes/LocaleListNodeType.ts +0 -72
  319. package/lib/shared/registry/nodeTypes/SlotMarkerType.ts +0 -55
  320. package/lib/shared/registry/nodeTypes/index.ts +0 -76
  321. package/lib/shared/responsiveScaling.test.ts +0 -368
  322. package/lib/shared/responsiveScaling.ts +0 -203
  323. package/lib/shared/responsiveStyleUtils.test.ts +0 -300
  324. package/lib/shared/responsiveStyleUtils.ts +0 -145
  325. package/lib/shared/richtext/htmlToTiptap.test.ts +0 -948
  326. package/lib/shared/richtext/htmlToTiptap.ts +0 -542
  327. package/lib/shared/richtext/index.ts +0 -8
  328. package/lib/shared/richtext/tiptapToHtml.test.ts +0 -322
  329. package/lib/shared/richtext/tiptapToHtml.ts +0 -448
  330. package/lib/shared/richtext/types.ts +0 -86
  331. package/lib/shared/slugTranslator.test.ts +0 -325
  332. package/lib/shared/slugTranslator.ts +0 -179
  333. package/lib/shared/slugify.ts +0 -118
  334. package/lib/shared/styleNodeUtils.test.ts +0 -132
  335. package/lib/shared/styleNodeUtils.ts +0 -102
  336. package/lib/shared/styleUtils.test.ts +0 -238
  337. package/lib/shared/styleUtils.ts +0 -63
  338. package/lib/shared/styleValueRegistry.ts +0 -106
  339. package/lib/shared/themeDefaults.test.ts +0 -163
  340. package/lib/shared/themeDefaults.ts +0 -129
  341. package/lib/shared/tree/PathBuilder.test.ts +0 -395
  342. package/lib/shared/tree/PathBuilder.ts +0 -409
  343. package/lib/shared/treePathUtils.test.ts +0 -539
  344. package/lib/shared/treePathUtils.ts +0 -357
  345. package/lib/shared/types/api.ts +0 -64
  346. package/lib/shared/types/cms.ts +0 -291
  347. package/lib/shared/types/colors.ts +0 -55
  348. package/lib/shared/types/components.ts +0 -188
  349. package/lib/shared/types/config.ts +0 -38
  350. package/lib/shared/types/errors.test.ts +0 -103
  351. package/lib/shared/types/errors.ts +0 -69
  352. package/lib/shared/types/experiments.ts +0 -55
  353. package/lib/shared/types/index.ts +0 -174
  354. package/lib/shared/types/libraries.ts +0 -74
  355. package/lib/shared/types/nodes.ts +0 -19
  356. package/lib/shared/types/prefetch.ts +0 -78
  357. package/lib/shared/types/rendering.ts +0 -62
  358. package/lib/shared/types/styles.ts +0 -83
  359. package/lib/shared/types/variables.test.ts +0 -132
  360. package/lib/shared/types/variables.ts +0 -215
  361. package/lib/shared/types.ts +0 -11
  362. package/lib/shared/utilityClassConfig.ts +0 -454
  363. package/lib/shared/utilityClassMapper.test.ts +0 -175
  364. package/lib/shared/utilityClassMapper.ts +0 -350
  365. package/lib/shared/utils/fileUtils.test.ts +0 -99
  366. package/lib/shared/utils/fileUtils.ts +0 -56
  367. package/lib/shared/utils.test.ts +0 -261
  368. package/lib/shared/utils.ts +0 -112
  369. package/lib/shared/validation/cmsValidators.ts +0 -38
  370. package/lib/shared/validation/index.ts +0 -8
  371. package/lib/shared/validation/propValidator.test.ts +0 -272
  372. package/lib/shared/validation/propValidator.ts +0 -265
  373. package/lib/shared/validation/schemas.test.ts +0 -177
  374. package/lib/shared/validation/schemas.ts +0 -640
  375. package/lib/shared/validation/validators.test.ts +0 -108
  376. package/lib/shared/validation/validators.ts +0 -304
  377. package/lib/test-utils/dom-setup.ts +0 -56
  378. package/lib/test-utils/factories/ConsoleMockFactory.ts +0 -200
  379. package/lib/test-utils/factories/DomMockFactory.ts +0 -487
  380. package/lib/test-utils/factories/EventMockFactory.ts +0 -244
  381. package/lib/test-utils/factories/FetchMockFactory.ts +0 -210
  382. package/lib/test-utils/factories/ServerMockFactory.ts +0 -223
  383. package/lib/test-utils/factories/StoreMockFactory.ts +0 -370
  384. package/lib/test-utils/factories/index.ts +0 -11
  385. package/lib/test-utils/fixtures.ts +0 -134
  386. package/lib/test-utils/helpers/asyncHelpers.test.ts +0 -112
  387. package/lib/test-utils/helpers/asyncHelpers.ts +0 -196
  388. package/lib/test-utils/helpers/index.ts +0 -6
  389. package/lib/test-utils/helpers.test.ts +0 -73
  390. package/lib/test-utils/helpers.ts +0 -90
  391. package/lib/test-utils/index.ts +0 -18
  392. package/lib/test-utils/mockFactories.ts +0 -92
  393. package/lib/test-utils/mocks.ts +0 -341
  394. package/scripts/build-for-publish.mjs +0 -43
  395. package/scripts/build-meno-filter.ts +0 -110
  396. package/templates/index-router.html +0 -34
  397. package/tsconfig.json +0 -14
  398. package/vite.config.ts +0 -43
@@ -0,0 +1,359 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ generateBuildErrorPage
4
+ } from "../chunks/chunk-4OFZP5NQ.js";
5
+ import {
6
+ createRuntimeServer,
7
+ setProjectRoot
8
+ } from "../chunks/chunk-MJD62IUJ.js";
9
+ import {
10
+ fileExists,
11
+ serveFile
12
+ } from "../chunks/chunk-GB2LHWZF.js";
13
+ import "../chunks/chunk-KSBZ2L7C.js";
14
+
15
+ // bin/cli.ts
16
+ import { resolve, join } from "path";
17
+ import { existsSync, mkdirSync, writeFileSync, readFileSync } from "fs";
18
+ var args = process.argv.slice(2);
19
+ var command = args[0];
20
+ function printHelp() {
21
+ console.log(`
22
+ meno - Visual editor for JSON-based pages
23
+
24
+ Requirements:
25
+ - Bun or Node.js 18+
26
+
27
+ Usage:
28
+ meno <command> [options]
29
+
30
+ Commands:
31
+ dev Start development server with hot reload
32
+ build Build static HTML files for production
33
+ serve Serve built files from ./dist on port 8080
34
+ init Initialize a new project
35
+
36
+ Options:
37
+ build --dev Include draft pages in build (for local preview)
38
+
39
+ Examples:
40
+ meno dev Start dev server in current directory
41
+ meno build Build static files to ./dist (excludes drafts)
42
+ meno build --dev Build including draft pages
43
+ meno serve Serve built files on port 8080
44
+ meno init my-project Create new project in ./my-project
45
+ `);
46
+ }
47
+ function parseHeadersFile(distPath) {
48
+ const headersPath = join(distPath, "_headers");
49
+ const headers = /* @__PURE__ */ new Map();
50
+ if (!existsSync(headersPath)) return headers;
51
+ const content = readFileSync(headersPath, "utf-8");
52
+ let currentPath = "";
53
+ for (const line of content.split("\n")) {
54
+ const trimmed = line.trim();
55
+ if (!trimmed || trimmed.startsWith("#")) continue;
56
+ if (!line.startsWith(" ") && !line.startsWith(" ")) {
57
+ currentPath = trimmed;
58
+ if (!headers.has(currentPath)) {
59
+ headers.set(currentPath, {});
60
+ }
61
+ } else if (currentPath && trimmed.includes(":")) {
62
+ const colonIndex = trimmed.indexOf(":");
63
+ const name = trimmed.substring(0, colonIndex).trim();
64
+ const value = trimmed.substring(colonIndex + 1).trim();
65
+ headers.get(currentPath)[name] = value;
66
+ }
67
+ }
68
+ return headers;
69
+ }
70
+ function getMatchingHeaders(pathname, headersMap) {
71
+ const result = {};
72
+ headersMap.forEach((headers, pattern) => {
73
+ if (pattern === pathname || pattern === "/*") {
74
+ Object.assign(result, headers);
75
+ } else if (pattern.endsWith("/*")) {
76
+ const prefix = pattern.slice(0, -1);
77
+ if (pathname.startsWith(prefix)) {
78
+ Object.assign(result, headers);
79
+ }
80
+ }
81
+ });
82
+ return result;
83
+ }
84
+ async function startStaticServer(distPath) {
85
+ const { SERVE_PORT } = await import("../chunks/constants-5CRJRQNR.js");
86
+ const headersMap = parseHeadersFile(distPath);
87
+ const server = await createRuntimeServer({
88
+ port: SERVE_PORT,
89
+ hostname: "localhost",
90
+ async fetch(req) {
91
+ const url = new URL(req.url);
92
+ let pathname = url.pathname;
93
+ if (pathname !== "/_errors.json") {
94
+ const errorsPath = join(distPath, "_errors.json");
95
+ if (existsSync(errorsPath)) {
96
+ try {
97
+ const errorsData = JSON.parse(readFileSync(errorsPath, "utf-8"));
98
+ return new Response(generateBuildErrorPage(errorsData), {
99
+ headers: { "Content-Type": "text/html; charset=utf-8" }
100
+ });
101
+ } catch {
102
+ }
103
+ }
104
+ }
105
+ if (pathname === "/") {
106
+ pathname = "/index.html";
107
+ }
108
+ const customHeaders = getMatchingHeaders(pathname, headersMap);
109
+ const filePath = join(distPath, pathname);
110
+ if (await fileExists(filePath)) {
111
+ return await serveFile(filePath, customHeaders);
112
+ }
113
+ const htmlPath = filePath.endsWith(".html") ? filePath : `${filePath}.html`;
114
+ if (await fileExists(htmlPath)) {
115
+ return await serveFile(htmlPath, customHeaders);
116
+ }
117
+ const indexPath = join(filePath, "index.html");
118
+ if (await fileExists(indexPath)) {
119
+ return await serveFile(indexPath, customHeaders);
120
+ }
121
+ return new Response("Not Found", { status: 404 });
122
+ }
123
+ });
124
+ return server;
125
+ }
126
+ async function runDev() {
127
+ const projectRoot = process.cwd();
128
+ if (!existsSync(join(projectRoot, "pages"))) {
129
+ console.error("\u274C No pages directory found. Are you in a valid project directory?");
130
+ console.error(' Run "meno init <project-name>" to create a new project.');
131
+ process.exit(1);
132
+ }
133
+ setProjectRoot(projectRoot);
134
+ console.log(`\u{1F4C1} Project root: ${projectRoot}`);
135
+ const distPath = join(projectRoot, "dist");
136
+ if (existsSync(distPath)) {
137
+ const staticServer = await startStaticServer(distPath);
138
+ console.log(`\u{1F680} Static server running at http://localhost:${staticServer.port}`);
139
+ }
140
+ await import("../entries/server-router.js");
141
+ }
142
+ async function runBuild(isDev = false) {
143
+ const projectRoot = process.cwd();
144
+ if (!existsSync(join(projectRoot, "pages"))) {
145
+ console.error("\u274C No pages directory found. Are you in a valid project directory?");
146
+ process.exit(1);
147
+ }
148
+ setProjectRoot(projectRoot);
149
+ if (isDev) {
150
+ process.env.MENO_DEV_BUILD = "true";
151
+ }
152
+ console.log(`\u{1F4C1} Building project: ${projectRoot}${isDev ? " (dev mode - including drafts)" : ""}`);
153
+ const { buildStaticPages } = await import("../build-static.js");
154
+ await buildStaticPages();
155
+ }
156
+ async function runServe() {
157
+ const projectRoot = process.cwd();
158
+ const distPath = join(projectRoot, "dist");
159
+ if (!existsSync(distPath)) {
160
+ console.error('\u274C No dist directory found. Run "meno build" first.');
161
+ process.exit(1);
162
+ }
163
+ console.log(`\u{1F4C1} Serving built files from: ${distPath}`);
164
+ const server = await startStaticServer(distPath);
165
+ console.log(`\u{1F680} Static server running at http://localhost:${server.port}`);
166
+ await new Promise(() => {
167
+ });
168
+ }
169
+ async function runInit(projectName) {
170
+ if (!projectName) {
171
+ console.error("\u274C Please provide a project name: meno init <project-name>");
172
+ process.exit(1);
173
+ }
174
+ const projectPath = resolve(process.cwd(), projectName);
175
+ if (existsSync(projectPath)) {
176
+ console.error(`\u274C Directory "${projectName}" already exists.`);
177
+ process.exit(1);
178
+ }
179
+ console.log(`
180
+ \u{1F680} Creating new meno project: ${projectName}
181
+ `);
182
+ mkdirSync(projectPath, { recursive: true });
183
+ mkdirSync(join(projectPath, "pages"));
184
+ mkdirSync(join(projectPath, "components"));
185
+ mkdirSync(join(projectPath, "fonts"));
186
+ mkdirSync(join(projectPath, "images"));
187
+ const defaultConfig = {
188
+ fonts: [],
189
+ editor: {
190
+ theme: "dark"
191
+ }
192
+ };
193
+ writeFileSync(
194
+ join(projectPath, "project.config.json"),
195
+ JSON.stringify(defaultConfig, null, 2)
196
+ );
197
+ const defaultColors = {
198
+ default: "light",
199
+ themes: {
200
+ light: {
201
+ label: "Light",
202
+ colors: {
203
+ text: "#1f2937",
204
+ bg: "#ffffff"
205
+ }
206
+ }
207
+ }
208
+ };
209
+ writeFileSync(
210
+ join(projectPath, "colors.json"),
211
+ JSON.stringify(defaultColors, null, 2)
212
+ );
213
+ const packageJson = {
214
+ name: projectName,
215
+ version: "1.0.0",
216
+ private: true,
217
+ scripts: {
218
+ dev: "meno dev",
219
+ build: "meno build"
220
+ },
221
+ dependencies: {
222
+ "meno-core": "^1.0.0"
223
+ }
224
+ };
225
+ writeFileSync(
226
+ join(projectPath, "package.json"),
227
+ JSON.stringify(packageJson, null, 2)
228
+ );
229
+ const gitignore = `# Dependencies
230
+ node_modules/
231
+
232
+ # Build output
233
+ dist/
234
+
235
+ # OS files
236
+ .DS_Store
237
+ `;
238
+ writeFileSync(
239
+ join(projectPath, ".gitignore"),
240
+ gitignore
241
+ );
242
+ const netlifyConfig = `[build]
243
+ command = "bun install && bun run build"
244
+ publish = "dist"
245
+
246
+ [build.environment]
247
+ BUN_VERSION = "1"
248
+ `;
249
+ writeFileSync(
250
+ join(projectPath, "netlify.toml"),
251
+ netlifyConfig
252
+ );
253
+ const vercelConfig = {
254
+ buildCommand: "bun run build",
255
+ outputDirectory: "dist",
256
+ installCommand: "bun install"
257
+ };
258
+ writeFileSync(
259
+ join(projectPath, "vercel.json"),
260
+ JSON.stringify(vercelConfig, null, 2)
261
+ );
262
+ const cloudflareConfig = `name = "${projectName}"
263
+ compatibility_date = "2024-01-01"
264
+ pages_build_output_dir = "dist"
265
+
266
+ [build]
267
+ command = "bun install && bun run build"
268
+ `;
269
+ writeFileSync(
270
+ join(projectPath, "wrangler.toml"),
271
+ cloudflareConfig
272
+ );
273
+ const defaultPage = {
274
+ meta: {
275
+ title: "Your Project Title",
276
+ description: "Your Project Description",
277
+ keywords: "",
278
+ ogTitle: "Your Project Title",
279
+ ogDescription: "Your Project Description",
280
+ ogType: "website"
281
+ },
282
+ root: {
283
+ type: "node",
284
+ tag: "div",
285
+ style: {
286
+ base: {
287
+ padding: "40px"
288
+ },
289
+ tablet: {},
290
+ mobile: {}
291
+ },
292
+ children: [
293
+ {
294
+ type: "node",
295
+ tag: "h1",
296
+ style: {
297
+ base: {}
298
+ },
299
+ children: "Hello"
300
+ }
301
+ ]
302
+ }
303
+ };
304
+ writeFileSync(
305
+ join(projectPath, "pages", "index.json"),
306
+ JSON.stringify(defaultPage, null, 2)
307
+ );
308
+ console.log("\u2705 Created project structure:");
309
+ console.log(` ${projectName}/`);
310
+ console.log(" \u251C\u2500\u2500 pages/");
311
+ console.log(" \u2502 \u2514\u2500\u2500 index.json");
312
+ console.log(" \u251C\u2500\u2500 components/");
313
+ console.log(" \u251C\u2500\u2500 fonts/");
314
+ console.log(" \u251C\u2500\u2500 images/");
315
+ console.log(" \u251C\u2500\u2500 colors.json");
316
+ console.log(" \u251C\u2500\u2500 project.config.json");
317
+ console.log(" \u251C\u2500\u2500 package.json");
318
+ console.log(" \u251C\u2500\u2500 netlify.toml");
319
+ console.log(" \u251C\u2500\u2500 vercel.json");
320
+ console.log(" \u251C\u2500\u2500 wrangler.toml");
321
+ console.log(" \u2514\u2500\u2500 .gitignore");
322
+ console.log("\n\u{1F389} Project created successfully!\n");
323
+ console.log("Requirements:");
324
+ console.log(" Bun - https://bun.sh");
325
+ console.log("");
326
+ console.log("Next steps:");
327
+ console.log(` cd ${projectName}`);
328
+ console.log(" bun install # Install dependencies");
329
+ console.log(" bun run dev # Start dev server");
330
+ console.log("");
331
+ console.log("Deploy:");
332
+ console.log(" Push to GitHub and connect to Netlify/Vercel/Cloudflare");
333
+ console.log(" Config files included - auto-detected!");
334
+ console.log("");
335
+ }
336
+ switch (command) {
337
+ case "dev":
338
+ runDev();
339
+ break;
340
+ case "build":
341
+ runBuild(args.includes("--dev"));
342
+ break;
343
+ case "serve":
344
+ runServe();
345
+ break;
346
+ case "init":
347
+ runInit(args[1]);
348
+ break;
349
+ case "--help":
350
+ case "-h":
351
+ case void 0:
352
+ printHelp();
353
+ break;
354
+ default:
355
+ console.error(`Unknown command: ${command}`);
356
+ printHelp();
357
+ process.exit(1);
358
+ }
359
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../bin/cli.ts"],
4
+ "sourcesContent": ["#!/usr/bin/env node\n/**\n * meno CLI\n * Commands: dev, build, init\n */\n\nimport { resolve, join } from 'path';\nimport { existsSync, mkdirSync, writeFileSync, cpSync, readFileSync } from 'fs';\nimport { setProjectRoot } from '../lib/server/projectContext';\nimport { generateBuildErrorPage, type BuildErrorsData } from '../lib/server/ssr/buildErrorOverlay';\nimport { createRuntimeServer, serveFile, fileExists as runtimeFileExists } from '../lib/server/runtime';\n\nconst args = process.argv.slice(2);\nconst command = args[0];\n\nfunction printHelp() {\n console.log(`\nmeno - Visual editor for JSON-based pages\n\nRequirements:\n - Bun or Node.js 18+\n\nUsage:\n meno <command> [options]\n\nCommands:\n dev Start development server with hot reload\n build Build static HTML files for production\n serve Serve built files from ./dist on port 8080\n init Initialize a new project\n\nOptions:\n build --dev Include draft pages in build (for local preview)\n\nExamples:\n meno dev Start dev server in current directory\n meno build Build static files to ./dist (excludes drafts)\n meno build --dev Build including draft pages\n meno serve Serve built files on port 8080\n meno init my-project Create new project in ./my-project\n`);\n}\n\n// Parse _headers file (Netlify/Cloudflare format)\nfunction parseHeadersFile(distPath: string): Map<string, Record<string, string>> {\n const headersPath = join(distPath, '_headers');\n const headers = new Map<string, Record<string, string>>();\n\n if (!existsSync(headersPath)) return headers;\n\n const content = readFileSync(headersPath, 'utf-8');\n let currentPath = '';\n\n for (const line of content.split('\\n')) {\n const trimmed = line.trim();\n if (!trimmed || trimmed.startsWith('#')) continue;\n\n if (!line.startsWith(' ') && !line.startsWith('\\t')) {\n // Path line\n currentPath = trimmed;\n if (!headers.has(currentPath)) {\n headers.set(currentPath, {});\n }\n } else if (currentPath && trimmed.includes(':')) {\n // Header line\n const colonIndex = trimmed.indexOf(':');\n const name = trimmed.substring(0, colonIndex).trim();\n const value = trimmed.substring(colonIndex + 1).trim();\n headers.get(currentPath)![name] = value;\n }\n }\n\n return headers;\n}\n\n// Get headers matching a pathname\nfunction getMatchingHeaders(\n pathname: string,\n headersMap: Map<string, Record<string, string>>\n): Record<string, string> {\n const result: Record<string, string> = {};\n\n headersMap.forEach((headers, pattern) => {\n if (pattern === pathname || pattern === '/*') {\n Object.assign(result, headers);\n } else if (pattern.endsWith('/*')) {\n const prefix = pattern.slice(0, -1);\n if (pathname.startsWith(prefix)) {\n Object.assign(result, headers);\n }\n }\n });\n\n return result;\n}\n\n// Start static file server on port 8080 (non-blocking)\nasync function startStaticServer(distPath: string) {\n const { SERVE_PORT } = await import('../lib/shared/constants');\n\n // Parse _headers file once on startup\n const headersMap = parseHeadersFile(distPath);\n\n const server = await createRuntimeServer({\n port: SERVE_PORT,\n hostname: 'localhost',\n async fetch(req: Request) {\n const url = new URL(req.url);\n let pathname = url.pathname;\n\n // Check for build errors and show overlay (except for _errors.json itself)\n if (pathname !== '/_errors.json') {\n const errorsPath = join(distPath, '_errors.json');\n if (existsSync(errorsPath)) {\n try {\n const errorsData: BuildErrorsData = JSON.parse(readFileSync(errorsPath, 'utf-8'));\n return new Response(generateBuildErrorPage(errorsData), {\n headers: { 'Content-Type': 'text/html; charset=utf-8' },\n });\n } catch {\n // If we can't parse errors file, continue normally\n }\n }\n }\n\n // Default to index.html for root\n if (pathname === '/') {\n pathname = '/index.html';\n }\n\n // Get custom headers for this path\n const customHeaders = getMatchingHeaders(pathname, headersMap);\n\n // Try to serve the file\n const filePath = join(distPath, pathname);\n\n // Check if file exists and serve it\n if (await runtimeFileExists(filePath)) {\n return await serveFile(filePath, customHeaders);\n }\n\n // Try with .html extension for clean URLs\n const htmlPath = filePath.endsWith('.html') ? filePath : `${filePath}.html`;\n if (await runtimeFileExists(htmlPath)) {\n return await serveFile(htmlPath, customHeaders);\n }\n\n // Try index.html in directory\n const indexPath = join(filePath, 'index.html');\n if (await runtimeFileExists(indexPath)) {\n return await serveFile(indexPath, customHeaders);\n }\n\n return new Response('Not Found', { status: 404 });\n },\n });\n\n return server;\n}\n\nasync function runDev() {\n const projectRoot = process.cwd();\n\n // Validate project structure\n if (!existsSync(join(projectRoot, 'pages'))) {\n console.error('\u274C No pages directory found. Are you in a valid project directory?');\n console.error(' Run \"meno init <project-name>\" to create a new project.');\n process.exit(1);\n }\n\n // Set project root for path resolution\n setProjectRoot(projectRoot);\n\n console.log(`\uD83D\uDCC1 Project root: ${projectRoot}`);\n\n // Start static server on 8080 if dist exists\n const distPath = join(projectRoot, 'dist');\n if (existsSync(distPath)) {\n const staticServer = await startStaticServer(distPath);\n console.log(`\uD83D\uDE80 Static server running at http://localhost:${staticServer.port}`);\n }\n\n // Import and run the dev server (it handles all initialization internally)\n await import('../entries/server-router');\n}\n\nasync function runBuild(isDev: boolean = false) {\n const projectRoot = process.cwd();\n\n // Validate project structure\n if (!existsSync(join(projectRoot, 'pages'))) {\n console.error('\u274C No pages directory found. Are you in a valid project directory?');\n process.exit(1);\n }\n\n // Set project root for path resolution\n setProjectRoot(projectRoot);\n\n // Set dev mode environment variable (drafts are built in dev mode)\n if (isDev) {\n process.env.MENO_DEV_BUILD = 'true';\n }\n\n console.log(`\uD83D\uDCC1 Building project: ${projectRoot}${isDev ? ' (dev mode - including drafts)' : ''}`);\n\n // Import and run build\n const { buildStaticPages } = await import('../build-static.ts');\n await buildStaticPages();\n}\n\nasync function runServe() {\n const projectRoot = process.cwd();\n const distPath = join(projectRoot, 'dist');\n\n // Validate dist directory exists\n if (!existsSync(distPath)) {\n console.error('\u274C No dist directory found. Run \"meno build\" first.');\n process.exit(1);\n }\n\n console.log(`\uD83D\uDCC1 Serving built files from: ${distPath}`);\n const server = await startStaticServer(distPath);\n console.log(`\uD83D\uDE80 Static server running at http://localhost:${server.port}`);\n\n // Keep the process alive\n await new Promise(() => {});\n}\n\nasync function runInit(projectName?: string) {\n if (!projectName) {\n console.error('\u274C Please provide a project name: meno init <project-name>');\n process.exit(1);\n }\n\n const projectPath = resolve(process.cwd(), projectName);\n\n if (existsSync(projectPath)) {\n console.error(`\u274C Directory \"${projectName}\" already exists.`);\n process.exit(1);\n }\n\n console.log(`\\n\uD83D\uDE80 Creating new meno project: ${projectName}\\n`);\n\n // Create project structure\n mkdirSync(projectPath, { recursive: true });\n mkdirSync(join(projectPath, 'pages'));\n mkdirSync(join(projectPath, 'components'));\n mkdirSync(join(projectPath, 'fonts'));\n mkdirSync(join(projectPath, 'images'));\n\n // Create default project.config.json\n const defaultConfig = {\n fonts: [],\n editor: {\n theme: 'dark'\n }\n };\n writeFileSync(\n join(projectPath, 'project.config.json'),\n JSON.stringify(defaultConfig, null, 2)\n );\n\n // Create default colors.json\n const defaultColors = {\n default: 'light',\n themes: {\n light: {\n label: 'Light',\n colors: {\n text: '#1f2937',\n bg: '#ffffff'\n }\n }\n }\n };\n writeFileSync(\n join(projectPath, 'colors.json'),\n JSON.stringify(defaultColors, null, 2)\n );\n\n // Create package.json for deployment\n const packageJson = {\n name: projectName,\n version: '1.0.0',\n private: true,\n scripts: {\n dev: 'meno dev',\n build: 'meno build',\n },\n dependencies: {\n 'meno-core': '^1.0.0'\n }\n };\n writeFileSync(\n join(projectPath, 'package.json'),\n JSON.stringify(packageJson, null, 2)\n );\n\n // Create .gitignore\n const gitignore = `# Dependencies\nnode_modules/\n\n# Build output\ndist/\n\n# OS files\n.DS_Store\n`;\n writeFileSync(\n join(projectPath, '.gitignore'),\n gitignore\n );\n\n // Create netlify.toml\n const netlifyConfig = `[build]\n command = \"bun install && bun run build\"\n publish = \"dist\"\n\n[build.environment]\n BUN_VERSION = \"1\"\n`;\n writeFileSync(\n join(projectPath, 'netlify.toml'),\n netlifyConfig\n );\n\n // Create vercel.json\n const vercelConfig = {\n buildCommand: 'bun run build',\n outputDirectory: 'dist',\n installCommand: 'bun install'\n };\n writeFileSync(\n join(projectPath, 'vercel.json'),\n JSON.stringify(vercelConfig, null, 2)\n );\n\n // Create wrangler.toml for Cloudflare Pages\n const cloudflareConfig = `name = \"${projectName}\"\ncompatibility_date = \"2024-01-01\"\npages_build_output_dir = \"dist\"\n\n[build]\ncommand = \"bun install && bun run build\"\n`;\n writeFileSync(\n join(projectPath, 'wrangler.toml'),\n cloudflareConfig\n );\n\n // Create default index page\n const defaultPage = {\n meta: {\n title: 'Your Project Title',\n description: 'Your Project Description',\n keywords: '',\n ogTitle: 'Your Project Title',\n ogDescription: 'Your Project Description',\n ogType: 'website'\n },\n root: {\n type: 'node',\n tag: 'div',\n style: {\n base: {\n padding: '40px'\n },\n tablet: {},\n mobile: {}\n },\n children: [\n {\n type: 'node',\n tag: 'h1',\n style: {\n base: {}\n },\n children: 'Hello'\n }\n ]\n }\n };\n writeFileSync(\n join(projectPath, 'pages', 'index.json'),\n JSON.stringify(defaultPage, null, 2)\n );\n\n console.log('\u2705 Created project structure:');\n console.log(` ${projectName}/`);\n console.log(' \u251C\u2500\u2500 pages/');\n console.log(' \u2502 \u2514\u2500\u2500 index.json');\n console.log(' \u251C\u2500\u2500 components/');\n console.log(' \u251C\u2500\u2500 fonts/');\n console.log(' \u251C\u2500\u2500 images/');\n console.log(' \u251C\u2500\u2500 colors.json');\n console.log(' \u251C\u2500\u2500 project.config.json');\n console.log(' \u251C\u2500\u2500 package.json');\n console.log(' \u251C\u2500\u2500 netlify.toml');\n console.log(' \u251C\u2500\u2500 vercel.json');\n console.log(' \u251C\u2500\u2500 wrangler.toml');\n console.log(' \u2514\u2500\u2500 .gitignore');\n console.log('\\n\uD83C\uDF89 Project created successfully!\\n');\n console.log('Requirements:');\n console.log(' Bun - https://bun.sh');\n console.log('');\n console.log('Next steps:');\n console.log(` cd ${projectName}`);\n console.log(' bun install # Install dependencies');\n console.log(' bun run dev # Start dev server');\n console.log('');\n console.log('Deploy:');\n console.log(' Push to GitHub and connect to Netlify/Vercel/Cloudflare');\n console.log(' Config files included - auto-detected!');\n console.log('');\n}\n\n// Main\nswitch (command) {\n case 'dev':\n runDev();\n break;\n case 'build':\n runBuild(args.includes('--dev'));\n break;\n case 'serve':\n runServe();\n break;\n case 'init':\n runInit(args[1]);\n break;\n case '--help':\n case '-h':\n case undefined:\n printHelp();\n break;\n default:\n console.error(`Unknown command: ${command}`);\n printHelp();\n process.exit(1);\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,36 @@
1
+ import {
2
+ buildCMSItemPath,
3
+ buildStaticPages,
4
+ formatBunLog,
5
+ generateRobotsTxt,
6
+ generateSitemap,
7
+ getDisplayPath,
8
+ getLocalizedOutputPath,
9
+ hashContent,
10
+ injectTrackingScript,
11
+ isCMSPage
12
+ } from "./chunks/chunk-HE67KV43.js";
13
+ import "./chunks/chunk-7ZZIWLUS.js";
14
+ import "./chunks/chunk-M4B7T6NE.js";
15
+ import "./chunks/chunk-MJD62IUJ.js";
16
+ import "./chunks/chunk-GB2LHWZF.js";
17
+ import "./chunks/chunk-RWTKZPWJ.js";
18
+ import "./chunks/chunk-4KWEMYQE.js";
19
+ import "./chunks/chunk-NBMAZOCJ.js";
20
+ import "./chunks/chunk-PGH3ATYI.js";
21
+ import "./chunks/chunk-UB44F4Z2.js";
22
+ import "./chunks/chunk-KULPBDC7.js";
23
+ import "./chunks/chunk-KSBZ2L7C.js";
24
+ export {
25
+ buildCMSItemPath,
26
+ buildStaticPages,
27
+ formatBunLog,
28
+ generateRobotsTxt,
29
+ generateSitemap,
30
+ getDisplayPath,
31
+ getLocalizedOutputPath,
32
+ hashContent,
33
+ injectTrackingScript,
34
+ isCMSPage
35
+ };
36
+ //# sourceMappingURL=build-static.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }