tungsten 0.3.2 → 0.3.4

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 (397) hide show
  1. package/dist/.build-complete +1 -0
  2. package/dist/Components.d.ts +6 -1
  3. package/dist/Components.d.ts.map +1 -1
  4. package/dist/Components.js +103 -40
  5. package/dist/DomPointer.d.ts +11 -0
  6. package/dist/DomPointer.d.ts.map +1 -1
  7. package/dist/DomPointer.js +15 -0
  8. package/dist/DomRegion.d.ts +2 -0
  9. package/dist/DomRegion.d.ts.map +1 -1
  10. package/dist/DomRegion.js +23 -3
  11. package/dist/Framework.d.ts +2 -0
  12. package/dist/Framework.d.ts.map +1 -1
  13. package/dist/Framework.js +94 -61
  14. package/dist/FrameworkConfig.d.ts +4 -0
  15. package/dist/FrameworkConfig.d.ts.map +1 -1
  16. package/dist/Instance/Instance.d.ts +1 -1
  17. package/dist/Instance/Instance.d.ts.map +1 -1
  18. package/dist/Instance/Instance.js +18 -1
  19. package/dist/Instance/InstanceConfig.d.ts +1 -0
  20. package/dist/Instance/InstanceConfig.d.ts.map +1 -1
  21. package/dist/PopMessage.type.d.ts +6 -0
  22. package/dist/PopMessage.type.d.ts.map +1 -0
  23. package/dist/PopMessage.type.js +1 -0
  24. package/dist/Servers/DevServer.d.ts +2 -0
  25. package/dist/Servers/DevServer.d.ts.map +1 -1
  26. package/dist/Servers/DevServer.js +87 -11
  27. package/dist/Servers/MatchedRouteInfo.d.ts +1 -1
  28. package/dist/Servers/MatchedRouteInfo.d.ts.map +1 -1
  29. package/dist/Servers/ProdServer.d.ts +2 -1
  30. package/dist/Servers/ProdServer.d.ts.map +1 -1
  31. package/dist/Servers/ProdServer.js +92 -8
  32. package/dist/Servers/hono/DevServerHono.js +25 -29
  33. package/dist/Servers/hono/ProdServerHono.js +49 -142
  34. package/dist/Servers/hono/TungstenServerHono.d.ts +1 -1
  35. package/dist/Servers/hono/TungstenServerHono.d.ts.map +1 -1
  36. package/dist/Servers/hono/TungstenServerHono.js +12 -29
  37. package/dist/Servers/loadEnvsDev.d.ts.map +1 -1
  38. package/dist/Servers/loadEnvsDev.js +16 -5
  39. package/dist/Servers/routing.d.ts.map +1 -1
  40. package/dist/Servers/routing.js +10 -6
  41. package/dist/Servers/tungstenCorePrivateEnvSchema.d.ts +0 -3
  42. package/dist/Servers/tungstenCorePrivateEnvSchema.d.ts.map +1 -1
  43. package/dist/Servers/tungstenCorePrivateEnvSchema.js +3 -3
  44. package/dist/Servers/tungstenCorePublicEnvSchema.d.ts +8 -0
  45. package/dist/Servers/tungstenCorePublicEnvSchema.d.ts.map +1 -0
  46. package/dist/Servers/tungstenCorePublicEnvSchema.js +14 -0
  47. package/dist/Store/InternalStoreSchema.d.ts +2 -0
  48. package/dist/Store/InternalStoreSchema.d.ts.map +1 -1
  49. package/dist/Store/InternalStoreSchema.js +1 -0
  50. package/dist/api/Request.d.ts +1 -1
  51. package/dist/api/Request.d.ts.map +1 -1
  52. package/dist/api/Response.d.ts +1 -1
  53. package/dist/api/Response.d.ts.map +1 -1
  54. package/dist/babelPlugins/BabelExtractComponentStylesheet.d.ts +13 -0
  55. package/dist/babelPlugins/BabelExtractComponentStylesheet.d.ts.map +1 -0
  56. package/dist/babelPlugins/BabelExtractComponentStylesheet.js +24 -0
  57. package/dist/babelPlugins/BabelTransformComponentStyles.d.ts +2 -0
  58. package/dist/babelPlugins/BabelTransformComponentStyles.d.ts.map +1 -1
  59. package/dist/babelPlugins/BabelTransformComponentStyles.js +21 -5
  60. package/dist/babelPlugins/BabelTransformPackageImports.d.ts +1 -0
  61. package/dist/babelPlugins/BabelTransformPackageImports.d.ts.map +1 -1
  62. package/dist/babelPlugins/BabelTransformPackageImports.js +21 -9
  63. package/dist/babelPlugins/BabelTypes.d.ts +2 -2
  64. package/dist/babelPlugins/BabelTypes.d.ts.map +1 -1
  65. package/dist/babelPlugins/BabelTypes.js +0 -1
  66. package/dist/bin/commands/build.d.ts.map +1 -1
  67. package/dist/bin/commands/build.js +12 -2
  68. package/dist/bin/commands/compile.d.ts.map +1 -1
  69. package/dist/bin/commands/compile.js +7 -2
  70. package/dist/bin/commands/dev.d.ts.map +1 -1
  71. package/dist/bin/commands/dev.js +15 -4
  72. package/dist/bin/commands/devmon.d.ts +2 -0
  73. package/dist/bin/commands/devmon.d.ts.map +1 -0
  74. package/dist/bin/commands/devmon.js +66 -0
  75. package/dist/bin/index.d.ts.map +1 -1
  76. package/dist/bin/index.js +6 -0
  77. package/dist/booleanAttributeValue.d.ts +21 -0
  78. package/dist/booleanAttributeValue.d.ts.map +1 -0
  79. package/dist/booleanAttributeValue.js +23 -0
  80. package/dist/build/CompilationInfo.d.ts +1 -0
  81. package/dist/build/CompilationInfo.d.ts.map +1 -1
  82. package/dist/build/combineComponentCss.d.ts +1 -1
  83. package/dist/build/combineComponentCss.d.ts.map +1 -1
  84. package/dist/build/combineComponentCss.js +3 -3
  85. package/dist/build/compileJavascript.d.ts.map +1 -1
  86. package/dist/build/compileJavascript.js +3 -3
  87. package/dist/build/compileUserApp.d.ts +2 -1
  88. package/dist/build/compileUserApp.d.ts.map +1 -1
  89. package/dist/build/compileUserApp.js +18 -8
  90. package/dist/build/createInstanceConfigFile.js +1 -1
  91. package/dist/build/frameworkStylesheets.d.ts +5 -0
  92. package/dist/build/frameworkStylesheets.d.ts.map +1 -0
  93. package/dist/build/frameworkStylesheets.js +49 -0
  94. package/dist/build/getPackageDirForFile.d.ts +2 -0
  95. package/dist/build/getPackageDirForFile.d.ts.map +1 -0
  96. package/dist/build/getPackageDirForFile.js +11 -0
  97. package/dist/build/getSxyClientPackageAliases.d.ts.map +1 -1
  98. package/dist/build/getSxyClientPackageAliases.js +3 -1
  99. package/dist/build/makeBabelUserDevConfig.d.ts +1 -1
  100. package/dist/build/makeBabelUserDevConfig.d.ts.map +1 -1
  101. package/dist/build/makeBabelUserDevConfig.js +3 -2
  102. package/dist/build/makeBabelUserProdConfig.d.ts +1 -1
  103. package/dist/build/makeBabelUserProdConfig.d.ts.map +1 -1
  104. package/dist/build/makeBabelUserProdConfig.js +4 -2
  105. package/dist/build/rollup.user.prod.config.d.ts.map +1 -1
  106. package/dist/build/rollup.user.prod.config.js +4 -1
  107. package/dist/build/rollupExtractComponentStylesheets.d.ts +12 -0
  108. package/dist/build/rollupExtractComponentStylesheets.d.ts.map +1 -0
  109. package/dist/build/rollupExtractComponentStylesheets.js +35 -0
  110. package/dist/compat/context.d.ts +1 -1
  111. package/dist/compat/context.d.ts.map +1 -1
  112. package/dist/compat/types.d.ts +1 -1
  113. package/dist/compat/types.d.ts.map +1 -1
  114. package/dist/componentCss/i/T-components-library-RichTextEditor-RichTextEditor.css +115 -0
  115. package/dist/componentCss/i/T-components-library-__StatefulMessage-StatefulMessage.css +25 -0
  116. package/dist/componentCss/tungsten.css +2 -0
  117. package/dist/componentProxyHandlers.d.ts +2 -1
  118. package/dist/componentProxyHandlers.d.ts.map +1 -1
  119. package/dist/componentProxyHandlers.js +45 -9
  120. package/dist/components/GoToComponent.d.ts +1 -1
  121. package/dist/components/GoToComponent.d.ts.map +1 -1
  122. package/dist/components/PopMessages.d.ts +12 -0
  123. package/dist/components/PopMessages.d.ts.map +1 -0
  124. package/dist/components/PopMessages.js +45 -0
  125. package/dist/components/_GoToComponent.d.ts +10 -0
  126. package/dist/components/_GoToComponent.d.ts.map +1 -0
  127. package/dist/components/_GoToComponent.js +13 -0
  128. package/dist/components/library/RichTextEditor/RichTextEditor.d.ts +50 -0
  129. package/dist/components/library/RichTextEditor/RichTextEditor.d.ts.map +1 -0
  130. package/dist/components/library/RichTextEditor/RichTextEditor.js +458 -0
  131. package/dist/components/library/RichTextEditor/StoredContentNode.d.ts +5 -0
  132. package/dist/components/library/RichTextEditor/StoredContentNode.d.ts.map +1 -0
  133. package/dist/components/library/RichTextEditor/StoredContentNode.js +1 -0
  134. package/dist/components/library/RichTextEditor/activeFormats.d.ts +20 -0
  135. package/dist/components/library/RichTextEditor/activeFormats.d.ts.map +1 -0
  136. package/dist/components/library/RichTextEditor/activeFormats.js +48 -0
  137. package/dist/components/library/RichTextEditor/contentTree.d.ts +30 -0
  138. package/dist/components/library/RichTextEditor/contentTree.d.ts.map +1 -0
  139. package/dist/components/library/RichTextEditor/contentTree.js +81 -0
  140. package/dist/components/library/RichTextEditor/sanitizeAuthoredHtml.d.ts +30 -0
  141. package/dist/components/library/RichTextEditor/sanitizeAuthoredHtml.d.ts.map +1 -0
  142. package/dist/components/library/RichTextEditor/sanitizeAuthoredHtml.js +97 -0
  143. package/dist/components/library/__StatefulMessage/MessageData.d.ts +7 -0
  144. package/dist/components/library/__StatefulMessage/MessageData.d.ts.map +1 -0
  145. package/dist/components/library/__StatefulMessage/MessageData.js +1 -0
  146. package/dist/components/library/__StatefulMessage/StatefulMessage.d.ts +22 -0
  147. package/dist/components/library/__StatefulMessage/StatefulMessage.d.ts.map +1 -0
  148. package/dist/components/library/__StatefulMessage/StatefulMessage.js +88 -0
  149. package/dist/components/library/index.d.ts +5 -0
  150. package/dist/components/library/index.d.ts.map +1 -0
  151. package/dist/components/library/index.js +7 -0
  152. package/dist/defaultConfig.d.ts +2 -0
  153. package/dist/defaultConfig.d.ts.map +1 -1
  154. package/dist/defaultConfig.js +3 -1
  155. package/dist/env/Interfaces.d.ts +2 -1
  156. package/dist/env/Interfaces.d.ts.map +1 -1
  157. package/dist/env/getEnvSchemas.d.ts +1 -1
  158. package/dist/env/getEnvSchemas.d.ts.map +1 -1
  159. package/dist/env/injectEnv.d.ts +1 -1
  160. package/dist/env/injectEnv.d.ts.map +1 -1
  161. package/dist/env/injectEnv.js +16 -6
  162. package/dist/env/publicEnv.d.ts.map +1 -1
  163. package/dist/env/publicEnv.js +4 -1
  164. package/dist/findUserConfig.d.ts +1 -1
  165. package/dist/frameworkConfigSchema.d.ts +4 -0
  166. package/dist/frameworkConfigSchema.d.ts.map +1 -1
  167. package/dist/frameworkConfigSchema.js +2 -1
  168. package/dist/hooks/index.d.ts +1 -0
  169. package/dist/hooks/index.d.ts.map +1 -1
  170. package/dist/hooks/index.js +1 -0
  171. package/dist/hooks/useInstance.d.ts +3 -0
  172. package/dist/hooks/useInstance.d.ts.map +1 -0
  173. package/dist/hooks/useInstance.js +4 -0
  174. package/dist/hydrate/hydrate.d.ts +6 -4
  175. package/dist/hydrate/hydrate.d.ts.map +1 -1
  176. package/dist/hydrate/hydrate.js +51 -13
  177. package/dist/hydrate/reconcileHydratedAttributes.d.ts.map +1 -1
  178. package/dist/hydrate/reconcileHydratedAttributes.js +4 -3
  179. package/dist/hydrate/renderHydrationMismatchBanner.d.ts +7 -0
  180. package/dist/hydrate/renderHydrationMismatchBanner.d.ts.map +1 -0
  181. package/dist/hydrate/renderHydrationMismatchBanner.js +69 -0
  182. package/dist/indexInner.d.ts +13 -5
  183. package/dist/indexInner.d.ts.map +1 -1
  184. package/dist/indexInner.js +9 -2
  185. package/dist/makeInstanceConfigFromFrameworkConfig.d.ts.map +1 -1
  186. package/dist/makeInstanceConfigFromFrameworkConfig.js +2 -1
  187. package/dist/pop.d.ts +10 -0
  188. package/dist/pop.d.ts.map +1 -0
  189. package/dist/pop.js +49 -0
  190. package/dist/postcssPlugins/TransformCssNames.d.ts.map +1 -1
  191. package/dist/postcssPlugins/TransformCssNames.js +10 -2
  192. package/dist/propsAreEqual.d.ts +8 -0
  193. package/dist/propsAreEqual.d.ts.map +1 -0
  194. package/dist/propsAreEqual.js +97 -0
  195. package/dist/rawHtml/filterContentNode.d.ts +20 -0
  196. package/dist/rawHtml/filterContentNode.d.ts.map +1 -0
  197. package/dist/rawHtml/filterContentNode.js +96 -0
  198. package/dist/rawHtml/parseHtml.d.ts +14 -0
  199. package/dist/rawHtml/parseHtml.d.ts.map +1 -1
  200. package/dist/rawHtml/parseHtml.js +4 -4
  201. package/dist/rawHtml/sanitizeHtml.d.ts +17 -0
  202. package/dist/rawHtml/sanitizeHtml.d.ts.map +1 -0
  203. package/dist/rawHtml/sanitizeHtml.js +19 -0
  204. package/dist/render/HeadData.d.ts +2 -0
  205. package/dist/render/HeadData.d.ts.map +1 -1
  206. package/dist/render/contentNodeToHtml.d.ts +18 -0
  207. package/dist/render/contentNodeToHtml.d.ts.map +1 -0
  208. package/dist/render/contentNodeToHtml.js +66 -0
  209. package/dist/render/contentToHtml.d.ts.map +1 -1
  210. package/dist/render/contentToHtml.js +3 -1
  211. package/dist/render/instantiateClassComponent.d.ts.map +1 -1
  212. package/dist/render/instantiateClassComponent.js +4 -0
  213. package/dist/render/processHead.d.ts.map +1 -1
  214. package/dist/render/processHead.js +22 -3
  215. package/dist/render/renderingTreeToHtml.d.ts.map +1 -1
  216. package/dist/render/renderingTreeToHtml.js +8 -1
  217. package/dist/routing/ErrorRouteType.d.ts +6 -0
  218. package/dist/routing/ErrorRouteType.d.ts.map +1 -0
  219. package/dist/routing/ErrorRouteType.js +1 -0
  220. package/dist/routing/RouteTypes.d.ts +2 -1
  221. package/dist/routing/RouteTypes.d.ts.map +1 -1
  222. package/dist/routing/Routes.d.ts +5 -0
  223. package/dist/routing/Routes.d.ts.map +1 -1
  224. package/dist/routing/TungstenErrorInfo.d.ts +6 -0
  225. package/dist/routing/TungstenErrorInfo.d.ts.map +1 -0
  226. package/dist/routing/TungstenErrorInfo.js +6 -0
  227. package/dist/settings.d.ts +2 -0
  228. package/dist/settings.d.ts.map +1 -1
  229. package/dist/settings.js +3 -0
  230. package/dist/stateTracking.d.ts +47 -0
  231. package/dist/stateTracking.d.ts.map +1 -0
  232. package/dist/stateTracking.js +83 -0
  233. package/dist/staticGen/staticGen.d.ts.map +1 -1
  234. package/dist/staticGen/staticGen.js +117 -107
  235. package/dist/style/styleContentSxy.js +21 -0
  236. package/dist/testing/hydrateTestApp.d.ts +38 -0
  237. package/dist/testing/hydrateTestApp.d.ts.map +1 -0
  238. package/dist/testing/hydrateTestApp.js +242 -0
  239. package/dist/testing/index.d.ts +4 -3
  240. package/dist/testing/index.d.ts.map +1 -1
  241. package/dist/testing/index.js +16 -2
  242. package/dist/testing/installTestStyleProcessors.d.ts +2 -0
  243. package/dist/testing/installTestStyleProcessors.d.ts.map +1 -0
  244. package/dist/testing/installTestStyleProcessors.js +21 -0
  245. package/dist/testing/temp/componentPackageMock.d.ts +18 -0
  246. package/dist/testing/temp/componentPackageMock.d.ts.map +1 -0
  247. package/dist/testing/temp/componentPackageMock.js +37 -0
  248. package/dist/testing/temp/contentHtmlElements.d.ts +3 -0
  249. package/dist/testing/temp/contentHtmlElements.d.ts.map +1 -0
  250. package/dist/testing/temp/contentHtmlElements.js +12 -0
  251. package/dist/timeProfiler.d.ts +6 -0
  252. package/dist/timeProfiler.d.ts.map +1 -0
  253. package/dist/timeProfiler.js +31 -0
  254. package/dist/update/integrateUpdateVdom.d.ts +11 -0
  255. package/dist/update/integrateUpdateVdom.d.ts.map +1 -1
  256. package/dist/update/integrateUpdateVdom.js +169 -54
  257. package/dist/update/pendingMounts.d.ts +25 -0
  258. package/dist/update/pendingMounts.d.ts.map +1 -0
  259. package/dist/update/pendingMounts.js +55 -0
  260. package/dist/warnOnFrameworkChange.d.ts.map +1 -1
  261. package/dist/warnOnFrameworkChange.js +8 -8
  262. package/package.json +21 -17
  263. package/dist/FunctionComponentStandIn.sxyt.d.ts +0 -2
  264. package/dist/FunctionComponentStandIn.sxyt.d.ts.map +0 -1
  265. package/dist/FunctionComponentStandIn.sxyt.js +0 -52
  266. package/dist/Instance/gotoRedirect.sxyt.d.ts +0 -2
  267. package/dist/Instance/gotoRedirect.sxyt.d.ts.map +0 -1
  268. package/dist/Instance/gotoRedirect.sxyt.js +0 -148
  269. package/dist/Instance/runTrackedWork.sxyt.d.ts +0 -2
  270. package/dist/Instance/runTrackedWork.sxyt.d.ts.map +0 -1
  271. package/dist/Instance/runTrackedWork.sxyt.js +0 -35
  272. package/dist/Servers/devErrorPageAutoRetry.sxyt.d.ts +0 -2
  273. package/dist/Servers/devErrorPageAutoRetry.sxyt.d.ts.map +0 -1
  274. package/dist/Servers/devErrorPageAutoRetry.sxyt.js +0 -117
  275. package/dist/_client/cjsHelpers.sxyt.d.ts +0 -2
  276. package/dist/_client/cjsHelpers.sxyt.d.ts.map +0 -1
  277. package/dist/_client/cjsHelpers.sxyt.js +0 -45
  278. package/dist/auth/passwordHashing.sxyt.d.ts +0 -2
  279. package/dist/auth/passwordHashing.sxyt.d.ts.map +0 -1
  280. package/dist/auth/passwordHashing.sxyt.js +0 -46
  281. package/dist/auth/ref/checkPasswordResetToken.sxyt.d.ts +0 -2
  282. package/dist/auth/ref/checkPasswordResetToken.sxyt.d.ts.map +0 -1
  283. package/dist/auth/ref/checkPasswordResetToken.sxyt.js +0 -40
  284. package/dist/auth/ref/createPasswordResetToken.sxyt.d.ts +0 -2
  285. package/dist/auth/ref/createPasswordResetToken.sxyt.d.ts.map +0 -1
  286. package/dist/auth/ref/createPasswordResetToken.sxyt.js +0 -10
  287. package/dist/babelPlugins/BabelAddDevCacheBust.sxyt.d.ts +0 -2
  288. package/dist/babelPlugins/BabelAddDevCacheBust.sxyt.d.ts.map +0 -1
  289. package/dist/babelPlugins/BabelAddDevCacheBust.sxyt.js +0 -138
  290. package/dist/babelPlugins/fixImportsInSassErrorMessage.sxyt.d.ts +0 -2
  291. package/dist/babelPlugins/fixImportsInSassErrorMessage.sxyt.d.ts.map +0 -1
  292. package/dist/babelPlugins/fixImportsInSassErrorMessage.sxyt.js +0 -108
  293. package/dist/babelPlugins/transformPackageImports/resolveBareImport.sxyt.d.ts +0 -2
  294. package/dist/babelPlugins/transformPackageImports/resolveBareImport.sxyt.d.ts.map +0 -1
  295. package/dist/babelPlugins/transformPackageImports/resolveBareImport.sxyt.js +0 -104
  296. package/dist/bin/commands/compile.sxyt.d.ts +0 -2
  297. package/dist/bin/commands/compile.sxyt.d.ts.map +0 -1
  298. package/dist/bin/commands/compile.sxyt.js +0 -255
  299. package/dist/build/modifySassImports.sxyt.d.ts +0 -2
  300. package/dist/build/modifySassImports.sxyt.d.ts.map +0 -1
  301. package/dist/build/modifySassImports.sxyt.js +0 -55
  302. package/dist/build/sassImportParser.sxyt.d.ts +0 -2
  303. package/dist/build/sassImportParser.sxyt.d.ts.map +0 -1
  304. package/dist/build/sassImportParser.sxyt.js +0 -110
  305. package/dist/build/scssImportParserChatgpt.sxyt.d.ts +0 -2
  306. package/dist/build/scssImportParserChatgpt.sxyt.d.ts.map +0 -1
  307. package/dist/build/scssImportParserChatgpt.sxyt.js +0 -120
  308. package/dist/clone.sxyt.d.ts +0 -2
  309. package/dist/clone.sxyt.d.ts.map +0 -1
  310. package/dist/clone.sxyt.js +0 -24
  311. package/dist/componentProxyHandlers.sxyt.d.ts +0 -2
  312. package/dist/componentProxyHandlers.sxyt.d.ts.map +0 -1
  313. package/dist/componentProxyHandlers.sxyt.js +0 -130
  314. package/dist/components/RawHtml.sxyt.d.ts +0 -2
  315. package/dist/components/RawHtml.sxyt.d.ts.map +0 -1
  316. package/dist/components/RawHtml.sxyt.js +0 -104
  317. package/dist/components/bindable/BindableSelect.sxyt.d.ts +0 -2
  318. package/dist/components/bindable/BindableSelect.sxyt.d.ts.map +0 -1
  319. package/dist/components/bindable/BindableSelect.sxyt.js +0 -186
  320. package/dist/env/injectEnv.sxyt.d.ts +0 -2
  321. package/dist/env/injectEnv.sxyt.d.ts.map +0 -1
  322. package/dist/env/injectEnv.sxyt.js +0 -20
  323. package/dist/env/parseEnv.d.ts +0 -2
  324. package/dist/env/parseEnv.d.ts.map +0 -1
  325. package/dist/env/parseEnv.js +0 -14
  326. package/dist/env/parseEnv.sxyt.d.ts +0 -2
  327. package/dist/env/parseEnv.sxyt.d.ts.map +0 -1
  328. package/dist/env/parseEnv.sxyt.js +0 -11
  329. package/dist/findProjectDir.sxyt.d.ts +0 -2
  330. package/dist/findProjectDir.sxyt.d.ts.map +0 -1
  331. package/dist/findProjectDir.sxyt.js +0 -82
  332. package/dist/hmr/applyHmrModule.sxyt.d.ts +0 -2
  333. package/dist/hmr/applyHmrModule.sxyt.d.ts.map +0 -1
  334. package/dist/hmr/applyHmrModule.sxyt.js +0 -182
  335. package/dist/hmr/instanceRegistry.sxyt.d.ts +0 -2
  336. package/dist/hmr/instanceRegistry.sxyt.d.ts.map +0 -1
  337. package/dist/hmr/instanceRegistry.sxyt.js +0 -24
  338. package/dist/hmr/refreshStylesheets.sxyt.d.ts +0 -2
  339. package/dist/hmr/refreshStylesheets.sxyt.d.ts.map +0 -1
  340. package/dist/hmr/refreshStylesheets.sxyt.js +0 -46
  341. package/dist/hydrate/hydrate.sxyt.d.ts +0 -2
  342. package/dist/hydrate/hydrate.sxyt.d.ts.map +0 -1
  343. package/dist/hydrate/hydrate.sxyt.js +0 -302
  344. package/dist/hydrate/reconcileHydratedAttributes.sxyt.d.ts +0 -2
  345. package/dist/hydrate/reconcileHydratedAttributes.sxyt.d.ts.map +0 -1
  346. package/dist/hydrate/reconcileHydratedAttributes.sxyt.js +0 -190
  347. package/dist/importDevModuleWithRetry.sxyt.d.ts +0 -2
  348. package/dist/importDevModuleWithRetry.sxyt.d.ts.map +0 -1
  349. package/dist/importDevModuleWithRetry.sxyt.js +0 -104
  350. package/dist/innerHtmlFromProps.sxyt.d.ts +0 -2
  351. package/dist/innerHtmlFromProps.sxyt.d.ts.map +0 -1
  352. package/dist/innerHtmlFromProps.sxyt.js +0 -99
  353. package/dist/postcssPlugins/parseSelectors.sxyt.d.ts +0 -2
  354. package/dist/postcssPlugins/parseSelectors.sxyt.d.ts.map +0 -1
  355. package/dist/postcssPlugins/parseSelectors.sxyt.js +0 -62
  356. package/dist/postcssPlugins/parseSelectorsRich.sxyt.d.ts +0 -2
  357. package/dist/postcssPlugins/parseSelectorsRich.sxyt.d.ts.map +0 -1
  358. package/dist/postcssPlugins/parseSelectorsRich.sxyt.js +0 -155
  359. package/dist/rawHtml/parseHtml.sxyt.d.ts +0 -2
  360. package/dist/rawHtml/parseHtml.sxyt.d.ts.map +0 -1
  361. package/dist/rawHtml/parseHtml.sxyt.js +0 -239
  362. package/dist/render/getFunctionBodyAsString.sxyt.d.ts +0 -2
  363. package/dist/render/getFunctionBodyAsString.sxyt.d.ts.map +0 -1
  364. package/dist/render/getFunctionBodyAsString.sxyt.js +0 -37
  365. package/dist/render/processHead.sxyt.d.ts +0 -2
  366. package/dist/render/processHead.sxyt.d.ts.map +0 -1
  367. package/dist/render/processHead.sxyt.js +0 -93
  368. package/dist/render/processProps.sxyt.d.ts +0 -2
  369. package/dist/render/processProps.sxyt.d.ts.map +0 -1
  370. package/dist/render/processProps.sxyt.js +0 -90
  371. package/dist/routing/compareRequestToRegex.sxyt.d.ts +0 -2
  372. package/dist/routing/compareRequestToRegex.sxyt.d.ts.map +0 -1
  373. package/dist/routing/compareRequestToRegex.sxyt.js +0 -65
  374. package/dist/routing/getPathPriority.sxyt.d.ts +0 -2
  375. package/dist/routing/getPathPriority.sxyt.d.ts.map +0 -1
  376. package/dist/routing/getPathPriority.sxyt.js +0 -24
  377. package/dist/routing/matchPath.sxyt.d.ts +0 -2
  378. package/dist/routing/matchPath.sxyt.d.ts.map +0 -1
  379. package/dist/routing/matchPath.sxyt.js +0 -41
  380. package/dist/routing/patternToRegex.sxyt.d.ts +0 -2
  381. package/dist/routing/patternToRegex.sxyt.d.ts.map +0 -1
  382. package/dist/routing/patternToRegex.sxyt.js +0 -69
  383. package/dist/routing/splitRequest.sxyt.d.ts +0 -2
  384. package/dist/routing/splitRequest.sxyt.d.ts.map +0 -1
  385. package/dist/routing/splitRequest.sxyt.js +0 -47
  386. package/dist/style/jssToCss.sxyt.d.ts +0 -2
  387. package/dist/style/jssToCss.sxyt.d.ts.map +0 -1
  388. package/dist/style/jssToCss.sxyt.js +0 -17
  389. package/dist/testing/createTestApp.sxyt.d.ts +0 -2
  390. package/dist/testing/createTestApp.sxyt.d.ts.map +0 -1
  391. package/dist/testing/createTestApp.sxyt.js +0 -470
  392. package/dist/testing/ensureTestEnvLoaded.sxyt.d.ts +0 -2
  393. package/dist/testing/ensureTestEnvLoaded.sxyt.d.ts.map +0 -1
  394. package/dist/testing/ensureTestEnvLoaded.sxyt.js +0 -20
  395. package/dist/update/hotSwap.sxyt.d.ts +0 -2
  396. package/dist/update/hotSwap.sxyt.d.ts.map +0 -1
  397. package/dist/update/hotSwap.sxyt.js +0 -252
@@ -1,51 +1,34 @@
1
- //import type { Response as ExpressResponse } from 'express'
2
- import { Hono } from 'hono';
3
1
  import { ContentNodeIsClassComponent } from "../../ContentNode.js";
4
2
  import { RoutingRedirect } from "../../routing/RoutingRedirect.js";
5
3
  import { cliTodo } from "../../cliOutput.js";
6
4
  import { RouteRedirectComponent } from "../../components/RouteRedirectComponent.js";
5
+ import { WebRedirectComponent } from "../../components/WebRedirectComponent.js";
7
6
  import { $props, $type } from "../../contentNodeSymbols.js";
8
7
  import { WebRedirect } from "../../routing/WebRedirect.js";
9
- import { throwError } from "../../throwError.js";
10
- const app = new Hono();
11
- app.get(async c => {
12
- const id = c.req.param('id');
13
- c.res;
14
- // ...
15
- });
16
- function debug(...texts) {
17
- // console.log(...texts)
18
- }
19
8
  export class TungstenServerHono {
9
+ // Hono's c.redirect() builds a Response but doesn't send it - unlike Express's res.redirect()
10
+ // (which sends immediately), the caller here must return the Response itself for Hono to
11
+ // actually deliver it. Returns false when there's no redirect to make.
20
12
  handleRedirects(c /* any */, matchedRouteInfo) {
21
13
  // handle any redirect issued during routing
22
14
  if (matchedRouteInfo.data instanceof RoutingRedirect) {
23
15
  const redirect = matchedRouteInfo.data;
24
- c.redirect(redirect.to, redirect.code);
25
- return true;
16
+ return c.redirect(redirect.to, redirect.code);
26
17
  } else if (matchedRouteInfo.data instanceof WebRedirect) {
27
18
  const redirect = matchedRouteInfo.data;
28
- c.redirect(redirect.to, redirect.code);
29
- return true;
19
+ return c.redirect(redirect.to, redirect.code);
30
20
  }
31
- // console.log('content', matchedRouteInfo.content)
32
- // console.log('is func', typeof matchedRouteInfo.content !== 'function')
33
- // console.log('ContentNodeIsClassComponent', ContentNodeIsClassComponent(matchedRouteInfo.content as any))
34
- // console.log('instanceof', (matchedRouteInfo as any).content[$type] instanceof RedirectComponent)
35
- // console.log('prototype instanceof', (matchedRouteInfo as any).content[$type].prototype instanceof RedirectComponent)
36
- // console.log('__tungstenRedirect', (matchedRouteInfo as any).content[$type].__tungstenRedirect)
37
- // console.log('$type', (matchedRouteInfo as any).content[$type])
38
- //console.log('content[$type]', matchedRouteInfo.content[$type])
39
- //console.log('instanceof', matchedRouteInfo.content instanceof RedirectComponent)
40
21
  if (typeof matchedRouteInfo.content !== 'function' && ContentNodeIsClassComponent(matchedRouteInfo.content)) {
41
22
  if (matchedRouteInfo.content[$type] === RouteRedirectComponent || matchedRouteInfo.content[$type].prototype instanceof RouteRedirectComponent) {
42
23
  cliTodo('consider type of RedirectComponent props');
43
24
  const code = matchedRouteInfo.content[$props].code || 302;
44
25
  const to = matchedRouteInfo.content[$props].to;
45
- c.redirect(to, code);
46
- return true;
47
- } else {
48
- throwError('TungstenServerHono', 'Need to check for WebRedirectComponent here');
26
+ return c.redirect(to, code);
27
+ } else if (matchedRouteInfo.content[$type] === WebRedirectComponent || matchedRouteInfo.content[$type].prototype instanceof WebRedirectComponent) {
28
+ cliTodo('consider type of RedirectComponent props');
29
+ const code = matchedRouteInfo.content[$props].code || 302;
30
+ const to = matchedRouteInfo.content[$props].to;
31
+ return c.redirect(to, code);
49
32
  }
50
33
  }
51
34
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"loadEnvsDev.d.ts","sourceRoot":"","sources":["../../src/Servers/loadEnvsDev.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAQpE,KAAK,UAAU,GAAG;IACd,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;CACf,CAAA;AAED,wBAAsB,WAAW,CAC7B,MAAM,EAAE,uBAAuB,EAE/B,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,UAAU,EAC7B,UAAU,EAAE,OAAO,EACnB,eAAe,UAAQ,iBAsH1B"}
1
+ {"version":3,"file":"loadEnvsDev.d.ts","sourceRoot":"","sources":["../../src/Servers/loadEnvsDev.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAUpE,KAAK,UAAU,GAAG;IACd,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;CACf,CAAA;AAED,wBAAsB,WAAW,CAC7B,MAAM,EAAE,uBAAuB,EAE/B,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,UAAU,EAC7B,UAAU,EAAE,OAAO,EACnB,eAAe,UAAQ,iBAkI1B"}
@@ -7,6 +7,8 @@ import { cliLog, cliOut } from "../cliOutput.js";
7
7
  import { injectEnv } from "../env/injectEnv.js";
8
8
  import { throwError } from 'tungsten/throwError.js';
9
9
  import { tungstenCorePrivateEnvSchema } from "./tungstenCorePrivateEnvSchema.js";
10
+ import { tungstenCorePublicEnvSchema } from "./tungstenCorePublicEnvSchema.js";
11
+ import z from 'zod';
10
12
  export async function loadEnvsDev(config,
11
13
  //load: Load,
12
14
  iteration, initialProcessEnv, _firstLoad, useTestEnvFiles = false) {
@@ -42,7 +44,7 @@ iteration, initialProcessEnv, _firstLoad, useTestEnvFiles = false) {
42
44
  someEnvLoaded = true;
43
45
  if (_firstLoad) cliOut(`${fileName} loaded from ${filePath}`);
44
46
  //cliOut(fileName, JSON.stringify(env, null, 4))
45
- injectEnv(env, tempEnv, prefix);
47
+ injectEnv(env, tempEnv, prefix, initialProcessEnv, config.suppressEnvOverwriteWarnings);
46
48
  //if (_firstLoad) console.log('loaded env file', fileName)
47
49
  } catch (e) {
48
50
  if (e !== null && typeof e === 'object' && 'errno' in e && e.errno === -4058) {
@@ -65,7 +67,7 @@ iteration, initialProcessEnv, _firstLoad, useTestEnvFiles = false) {
65
67
  // global.tungstenPrivateEnv = envSchemas.privateEnvSchema.parse(process.env)
66
68
  const result = envSchemas.privateEnvSchema.safeParse(tempEnv);
67
69
  if (!result.success) {
68
- throwError('Your environment variables failed your privateEnvSchema validation', '\n' + JSON.stringify(result.error.format(), null, 4) + '\nenv: ' + JSON.stringify(tempEnv, null, 4)
70
+ throwError('Your environment variables failed your privateEnvSchema validation', '\n' + JSON.stringify(z.treeifyError(result.error), null, 4) + '\nenv: ' + JSON.stringify(tempEnv, null, 4)
69
71
  //+ '\nparsed env ' + JSON.stringify(tempEnv, null, 4)
70
72
  );
71
73
  }
@@ -74,7 +76,7 @@ iteration, initialProcessEnv, _firstLoad, useTestEnvFiles = false) {
74
76
  if (!coreResult.success) {
75
77
  throwError('Your private environment variables don\'t meet the Tungsten requirements. Ensure your .env and privateEnvSchema provide an output meeting these requirements. You may need to coerce data to the correct type.',
76
78
  // eslint-disable-line max-len
77
- '\n' + JSON.stringify(coreResult.error.format(), null, 4) + '\nenv: ' + JSON.stringify(tempEnv, null, 4)
79
+ '\n' + JSON.stringify(z.treeifyError(coreResult.error), null, 4) + '\nenv: ' + JSON.stringify(tempEnv, null, 4)
78
80
  //+ '\nparsed env ' + JSON.stringify(tempEnv, null, 4)
79
81
  );
80
82
  }
@@ -89,9 +91,18 @@ iteration, initialProcessEnv, _firstLoad, useTestEnvFiles = false) {
89
91
  });
90
92
  const result = envSchemas.publicEnvSchema.safeParse(tempPublicEnv);
91
93
  if (!result.success) {
92
- throwError('Public Env failed schema validation', '\n' + JSON.stringify(result.error.format(), null, 4) + '\nenv: ' + JSON.stringify(tempEnv, null, 4) + '\nparsed public env ' + JSON.stringify(tempPublicEnv, null, 4));
94
+ throwError('Public Env failed schema validation', '\n' + JSON.stringify(z.treeifyError(result.error), null, 4) + '\nenv: ' + JSON.stringify(tempEnv, null, 4) + '\nparsed public env ' + JSON.stringify(tempPublicEnv, null, 4));
93
95
  }
94
- global.tungstenPublicEnv = result.data;
96
+ const coreResult = tungstenCorePublicEnvSchema.safeParse(result.data);
97
+ //console.log('coreResult', coreResult)
98
+ if (!coreResult.success) {
99
+ throwError('Your private environment variables don\'t meet the Tungsten requirements. Ensure your .env and privateEnvSchema provide an output meeting these requirements. You may need to coerce data to the correct type.',
100
+ // eslint-disable-line max-len
101
+ '\n' + JSON.stringify(z.treeifyError(coreResult.error), null, 4) + '\nenv: ' + JSON.stringify(tempEnv, null, 4)
102
+ //+ '\nparsed env ' + JSON.stringify(tempEnv, null, 4)
103
+ );
104
+ }
105
+ global.tungstenPublicEnv = coreResult.data;
95
106
  //console.log('global.tungstenPublicEnv', global.tungstenPublicEnv)
96
107
  if (_firstLoad) cliOut('tungsten public env loaded and passed schema validation'); // save this so that we can show all messages about loading .env files first
97
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/Servers/routing.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAGjE,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAE,iBAAiB,GAAG,IAAW,GAC5G,OAAO,CAAC,gBAAgB,CAAC,CA0D9B"}
1
+ {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/Servers/routing.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAIjE,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAE,iBAAiB,GAAG,IAAW,GAC5G,OAAO,CAAC,gBAAgB,CAAC,CA+D9B"}
@@ -1,5 +1,6 @@
1
1
  import { Default404 } from "../routing/Default404.js";
2
2
  import { matchPath } from "../routing/matchPath.js";
3
+ import { makeTungstenErrorInfo } from "../routing/TungstenErrorInfo.js";
3
4
  import { jsx as _jsx } from "tungsten/jsxRuntime.js";
4
5
  export async function routing(location, routes, serverDataLoading = null) {
5
6
  let defaultRoute, _404Route, errorRoute;
@@ -25,7 +26,7 @@ export async function routing(location, routes, serverDataLoading = null) {
25
26
  if (match !== null) {
26
27
  const params = match.params;
27
28
  let data = undefined;
28
- if (route.data) {
29
+ if ('data' in route) {
29
30
  if (serverDataLoading) serverDataLoading.value = true;
30
31
  data = await route.data(params, location, match.query);
31
32
  if (serverDataLoading) serverDataLoading.value = false;
@@ -50,11 +51,14 @@ export async function routing(location, routes, serverDataLoading = null) {
50
51
  params: {},
51
52
  content: _404Route.content
52
53
  };
53
- if (errorRoute) return {
54
- key: 'error',
55
- params: {},
56
- content: errorRoute.content
57
- };
54
+ if (errorRoute) {
55
+ return {
56
+ key: 'error',
57
+ params: {},
58
+ content: errorRoute.content,
59
+ data: makeTungstenErrorInfo(new Error(`No route matched '${location}'`))
60
+ };
61
+ }
58
62
  return {
59
63
  key: null,
60
64
  params: {},
@@ -1,9 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  export declare const tungstenCorePrivateEnvSchema: z.ZodObject<{
3
3
  TUNGSTEN_SERVER_PORT: z.ZodOptional<z.ZodNumber>;
4
- FRONTEND_PROTO: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"http">, z.ZodLiteral<"https">]>>;
5
- FRONTEND_HOST: z.ZodOptional<z.ZodString>;
6
- FRONTEND_PORT: z.ZodOptional<z.ZodNumber>;
7
4
  DEBUG: z.ZodOptional<z.ZodBoolean>;
8
5
  }, z.core.$loose>;
9
6
  export type TungstenCorePrivateEnv = typeof tungstenCorePrivateEnvSchema._output;
@@ -1 +1 @@
1
- {"version":3,"file":"tungstenCorePrivateEnvSchema.d.ts","sourceRoot":"","sources":["../../src/Servers/tungstenCorePrivateEnvSchema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAkBvB,eAAO,MAAM,4BAA4B;;;;;;iBASvC,CAAA;AAGF,MAAM,MAAM,sBAAsB,GAAG,OAAO,4BAA4B,CAAC,OAAO,CAAA"}
1
+ {"version":3,"file":"tungstenCorePrivateEnvSchema.d.ts","sourceRoot":"","sources":["../../src/Servers/tungstenCorePrivateEnvSchema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAkBvB,eAAO,MAAM,4BAA4B;;;iBASvC,CAAA;AAGF,MAAM,MAAM,sBAAsB,GAAG,OAAO,4BAA4B,CAAC,OAAO,CAAA"}
@@ -14,9 +14,9 @@ const protoSchema = z.union([z.literal('http'), z.literal('https')]);
14
14
  const portSchema = z.number().gt(0);
15
15
  export const tungstenCorePrivateEnvSchema = z.looseObject({
16
16
  TUNGSTEN_SERVER_PORT: z.optional(portSchema),
17
- FRONTEND_PROTO: z.optional(protoSchema),
18
- FRONTEND_HOST: z.optional(z.string()),
19
- FRONTEND_PORT: z.optional(portSchema),
17
+ // FRONTEND_PROTO: z.optional(protoSchema),
18
+ // FRONTEND_HOST: z.optional(z.string()),
19
+ // FRONTEND_PORT: z.optional(portSchema),
20
20
  DEBUG: z.optional(z.boolean())
21
21
  // SUPPRESS: z.optional(z.object({
22
22
  // ORIGIN_MISMATCH_WARNING: z.optional(z.boolean())
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ export declare const tungstenCorePublicEnvSchema: z.ZodObject<{
3
+ FRONTEND_PROTO: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"http">, z.ZodLiteral<"https">]>>;
4
+ FRONTEND_HOST: z.ZodOptional<z.ZodString>;
5
+ FRONTEND_PORT: z.ZodOptional<z.ZodNumber>;
6
+ }, z.core.$loose>;
7
+ export type TungstenCorePublicEnv = typeof tungstenCorePublicEnvSchema._output;
8
+ //# sourceMappingURL=tungstenCorePublicEnvSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tungstenCorePublicEnvSchema.d.ts","sourceRoot":"","sources":["../../src/Servers/tungstenCorePublicEnvSchema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAWvB,eAAO,MAAM,2BAA2B;;;;iBAItC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,OAAO,2BAA2B,CAAC,OAAO,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ // FRONTEND_PROTO/FRONTEND_HOST/FRONTEND_PORT are tungsten's own fields (used to
3
+ // report the dev/prod server's own location - see DevServer.ts/ProdServer.ts).
4
+ // Optional here because most apps keep them in the private env instead - see
5
+ // tungstenCorePrivateEnvSchema.ts, which declares the same three fields. An
6
+ // app is free to declare either or both; the servers check private first,
7
+ // then public.
8
+ const protoSchema = z.union([z.literal('http'), z.literal('https')]);
9
+ const portSchema = z.number().gt(0);
10
+ export const tungstenCorePublicEnvSchema = z.looseObject({
11
+ FRONTEND_PROTO: z.optional(protoSchema),
12
+ FRONTEND_HOST: z.optional(z.string()),
13
+ FRONTEND_PORT: z.optional(portSchema)
14
+ });
@@ -1,7 +1,9 @@
1
1
  import type { MatchedRouteInfo } from '../Servers/MatchedRouteInfo.js';
2
+ import type { PopMessage } from '../PopMessage.type.js';
2
3
  export declare class InternalStoreSchema {
3
4
  location: string;
4
5
  matchedRouteInfo: MatchedRouteInfo;
6
+ popMessages: PopMessage[];
5
7
  constructor(location: string, matchedRouteInfo: MatchedRouteInfo);
6
8
  }
7
9
  //# sourceMappingURL=InternalStoreSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InternalStoreSchema.d.ts","sourceRoot":"","sources":["../../src/Store/InternalStoreSchema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEtE,qBAAa,mBAAmB;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,gBAAgB,CAAA;gBACtB,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;CAInE"}
1
+ {"version":3,"file":"InternalStoreSchema.d.ts","sourceRoot":"","sources":["../../src/Store/InternalStoreSchema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD,qBAAa,mBAAmB;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,WAAW,EAAE,UAAU,EAAE,CAAK;gBAClB,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;CAInE"}
@@ -5,6 +5,7 @@ export class InternalStoreSchema {
5
5
  constructor(location, matchedRouteInfo) {
6
6
  _defineProperty(this, "location", void 0);
7
7
  _defineProperty(this, "matchedRouteInfo", void 0);
8
+ _defineProperty(this, "popMessages", []);
8
9
  this.location = location;
9
10
  this.matchedRouteInfo = matchedRouteInfo;
10
11
  }
@@ -1,2 +1,2 @@
1
- export { Request } from 'express';
1
+ export type { Request } from 'express';
2
2
  //# sourceMappingURL=Request.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../../src/api/Request.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../../src/api/Request.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA"}
@@ -1,2 +1,2 @@
1
- export { Response } from 'express';
1
+ export type { Response } from 'express';
2
2
  //# sourceMappingURL=Response.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Response.d.ts","sourceRoot":"","sources":["../../src/api/Response.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"Response.d.ts","sourceRoot":"","sources":["../../src/api/Response.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA"}
@@ -0,0 +1,13 @@
1
+ import type { ClassProperty } from '@babel/types';
2
+ import type { Babel, NodePath, PluginPass } from './BabelTypes.js';
3
+ type Opts = {
4
+ onStylesheet: (rel: string, sourceFile: string) => void;
5
+ };
6
+ export declare function MakeBabelExtractComponentStylesheet(opts: Opts): (_babel: Babel) => {
7
+ name: string;
8
+ visitor: {
9
+ ClassProperty(path: NodePath<ClassProperty>, state: PluginPass): void;
10
+ };
11
+ };
12
+ export {};
13
+ //# sourceMappingURL=BabelExtractComponentStylesheet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BabelExtractComponentStylesheet.d.ts","sourceRoot":"","sources":["../../src/babelPlugins/BabelExtractComponentStylesheet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAElE,KAAK,IAAI,GAAG;IACR,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1D,CAAA;AAKD,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,IAAI,IACV,QAAQ,KAAK;;;4BAI7B,QAAQ,CAAC,aAAa,CAAC,SAAS,UAAU;;EAc7E"}
@@ -0,0 +1,24 @@
1
+ // Reads and erases the `$stylesheet` static emitted by BabelTransformComponentStyles. The value
2
+ // names a css file inside the package; it is extracted here so the file can be copied into the
3
+ // build, and removed so it never reaches the browser.
4
+ export function MakeBabelExtractComponentStylesheet(opts) {
5
+ return function BabelExtractComponentStylesheet(_babel) {
6
+ return {
7
+ name: 'extract-component-stylesheet',
8
+ visitor: {
9
+ ClassProperty(path, state) {
10
+ const {
11
+ key,
12
+ value
13
+ } = path.node;
14
+ if (key.type !== 'Identifier' || key.name !== '$stylesheet') return;
15
+ if (value === null || value === undefined || value.type !== 'StringLiteral') return;
16
+ const sourceFile = state.filename;
17
+ if (typeof sourceFile !== 'string') return;
18
+ opts.onStylesheet(value.value, sourceFile);
19
+ path.remove();
20
+ }
21
+ }
22
+ };
23
+ };
24
+ }
@@ -8,6 +8,8 @@ type Opts = {
8
8
  cssOutputFile?: string;
9
9
  cssModulesOutputDir?: string;
10
10
  functionNames?: string[];
11
+ modulePrefix?: string;
12
+ watch?: boolean;
11
13
  };
12
14
  export declare function MakeBabelTransformComponentStyles(opts: Opts): (babel: Babel) => {
13
15
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"BabelTransformComponentStyles.d.ts","sourceRoot":"","sources":["../../src/babelPlugins/BabelTransformComponentStyles.ts"],"names":[],"mappings":"AAwCA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAc,MAAM,iBAAiB,CAAA;AAa7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAmPvD,KAAK,IAAI,GAAG;IACR,iBAAiB,EAAE,MAAM,CAAA;IACzB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,wBAAwB,EAAE,MAAM,CAAA;IAChC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3B,CAAA;AAID,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,IAAI,IA4LV,OAAO,KAAK;;;;6BAMjC,MAAM;;mBAIZ,MAAM;;;uCAkBkB,QAAQ,CAAC,wBAAwB,CAAC;sBAf3D,MAAM;kBACV;gBACF,IAAI;qCATS,MAAM;kBASL;aACjB;+BACkB,MAAM;;;EAuKpC"}
1
+ {"version":3,"file":"BabelTransformComponentStyles.d.ts","sourceRoot":"","sources":["../../src/babelPlugins/BabelTransformComponentStyles.ts"],"names":[],"mappings":"AAwCA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAc,MAAM,iBAAiB,CAAA;AAa7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAmPvD,KAAK,IAAI,GAAG;IACR,iBAAiB,EAAE,MAAM,CAAA;IACzB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,wBAAwB,EAAE,MAAM,CAAA;IAChC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IAKxB,YAAY,CAAC,EAAE,MAAM,CAAA;IAIrB,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAID,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,IAAI,IAkMV,OAAO,KAAK;;;;6BAMjC,MAAM;;mBAIZ,MAAM;;;uCAkBkB,QAAQ,CAAC,wBAAwB,CAAC;sBAf3D,MAAM;kBACV;gBACF,IAAI;qCATS,MAAM;kBASL;aACjB;+BACkB,MAAM;;;EAsLpC"}
@@ -6,7 +6,7 @@
6
6
  // that can be applied to component output at runtime
7
7
  // (I think)
8
8
  import fs from 'fs';
9
- import { join, dirname, basename, sep, relative } from 'path';
9
+ import { join, dirname, basename, relative } from 'path';
10
10
  import * as sass from 'sass';
11
11
  import postcss from 'postcss';
12
12
  import { mapToArray as objectMapToArray } from 'sxy-lib/objects.js';
@@ -195,7 +195,7 @@ export function MakeBabelTransformComponentStyles(opts) {
195
195
  'ReactZoneScss': ReactZoneScss
196
196
  //'Less': Less,
197
197
  };
198
- const watchStyles = opts.cssOutputFile || opts.cssModulesOutputDir;
198
+ const watchStyles = opts.watch !== false && (opts.cssOutputFile !== '' || opts.cssModulesOutputDir !== '');
199
199
  // should this code be moved to babel - pre?
200
200
  // prepare the css file by creating a blank file or clearing the existing file
201
201
  if (opts.cssOutputFile) {
@@ -259,14 +259,19 @@ export function MakeBabelTransformComponentStyles(opts) {
259
259
  if (name === undefined) {
260
260
  throwError('BabelTransformComponentStyles', `could not derive a module name from ${relFilePath}`);
261
261
  }
262
- const parts = relFilePath.split(sep);
262
+ // Forward slash, not `sep`: relFilePath is sliced from a path that
263
+ // slash() has already normalised, so on Windows splitting by `\` gave
264
+ // a single part and every module name collapsed to its bare filename —
265
+ // platform-dependent class names, and two components sharing a filename
266
+ // scoped identically.
267
+ const parts = relFilePath.split('/');
263
268
  if (name === 'index') {
264
269
  parts.pop();
265
270
  } else {
266
271
  parts[parts.length - 1] = name;
267
272
  }
268
273
  if (index > 1) parts.push(index);
269
- const moduleName = parts.join('-');
274
+ const moduleName = (opts.modulePrefix ?? '') + parts.join('-');
270
275
  return moduleName;
271
276
  }
272
277
  function writeOutIfNeeded(css, names, opts) {
@@ -409,8 +414,19 @@ export function MakeBabelTransformComponentStyles(opts) {
409
414
  names,
410
415
  transformedCss
411
416
  } = tagName === 'ReactZoneScss' ? cssToReactZoneStyles(css, fullFilePath, moduleName) : cssToLocalClassNames(css, fullFilePath, moduleName);
412
- stylesheets[moduleName] = moduleName + '.css';
417
+ // `#` is a fragment delimiter in the `@import "i/….css"`
418
+ // the manifest is built from, so it cannot survive into
419
+ // a filename. The prefix's trailing `-` keeps the result
420
+ // readable and distinct.
421
+ stylesheets[moduleName] = moduleName.replaceAll('#', '') + '.css';
413
422
  writeOutIfNeeded(transformedCss, names, opts);
423
+ // Kept out of the style object, which ships to the browser: a separate
424
+ // static the build can extract and then erase.
425
+ const classBody = path.findParent(parent => parent.isClassBody());
426
+ if (classBody !== null && classBody.isClassBody()) {
427
+ classBody.node.body.push(t.classProperty(t.identifier('$stylesheet'), t.stringLiteral(`${individualFolderName}/${stylesheets[moduleName]}`), null, null, false, true // static
428
+ ));
429
+ }
414
430
  // increment for the next one
415
431
  state.__stylesheetIndex++;
416
432
  state.file.opts.stylesheetIndex++;
@@ -40,6 +40,7 @@ export type DependencyGraphNode = {
40
40
  cacheLocation: string;
41
41
  finalLocation: string;
42
42
  dependencies?: Dependencies;
43
+ stylesheet?: string;
43
44
  };
44
45
  export type DependencyGraphNodeWithIdentifier = DependencyGraphNode & {
45
46
  fileIdentifier: string;
@@ -1 +1 @@
1
- {"version":3,"file":"BabelTransformPackageImports.d.ts","sourceRoot":"","sources":["../../src/babelPlugins/BabelTransformPackageImports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BabelTransformPackageImports.d.ts","sourceRoot":"","sources":["../../src/babelPlugins/BabelTransformPackageImports.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,8 @@ const babelPluginSyntaxImportAssertions = babelPluginSyntaxImportAssertionsModul
21
21
  import { init as lexerInit, parse as lexerParse } from 'cjs-module-lexer';
22
22
  lexerInit();
23
23
  import { MakeBabelTransformCjsToFunction } from "./BabelTransformCjsToFunction.js";
24
+ import { MakeBabelExtractComponentStylesheet } from "./BabelExtractComponentStylesheet.js";
25
+ import { recordFrameworkStylesheet } from "../build/frameworkStylesheets.js";
24
26
  import { MakeBabelTransformDependencyImportsEsm } from "./transformPackageImports/BabelTransformDependencyImportsEsm.js";
25
27
  import { MakeBabelTransformDependencyImportsCjs } from "./transformPackageImports/BabelTransformDependencyImportsCjs.js";
26
28
  import { frameworkDistFolder, packageName as frameworkPackageName, packageName, packagesFolder /*, packagesCacheInfoName*/ } from "../settings.js";
@@ -325,7 +327,7 @@ export function MakeBabelTransformPackageImports(opts) {
325
327
  //console.log('packageDir', packageDir)
326
328
  return getPackageInfo(packageDir);
327
329
  };
328
- function makeModifyImportsEsmBabelOptions(nonEsmDeps) {
330
+ function makeModifyImportsEsmBabelOptions(nonEsmDeps, onStylesheet) {
329
331
  return {
330
332
  plugins: [babelPluginSyntaxImportAssertions, MakeBabelTransformDependencyImportsEsm({
331
333
  nonEsmDeps
@@ -335,11 +337,13 @@ export function MakeBabelTransformPackageImports(opts) {
335
337
  getExternalImportFinalImportLocation,
336
338
  getFileFinalLocation,
337
339
  makeCjsEntryFile
340
+ }), MakeBabelExtractComponentStylesheet({
341
+ onStylesheet
338
342
  })]
339
343
  };
340
344
  }
341
- async function babelFileEsm(file /*, packageInfo*/, nonEsmDeps) {
342
- const result = await babelTransformFileAsync(file, makeModifyImportsEsmBabelOptions(nonEsmDeps.map(d => d.webLocation)));
345
+ async function babelFileEsm(file /*, packageInfo*/, nonEsmDeps, onStylesheet) {
346
+ const result = await babelTransformFileAsync(file, makeModifyImportsEsmBabelOptions(nonEsmDeps.map(d => d.webLocation), onStylesheet));
343
347
  if (result === null) {
344
348
  throw new TungstenError(`BabelTransformPackageImports error: sub file babel transform (1) returned null: ${file}`);
345
349
  }
@@ -400,14 +404,14 @@ export function MakeBabelTransformPackageImports(opts) {
400
404
  //if (file.includes('domexception')) console.log('transformed imports', code)
401
405
  return result.code;
402
406
  }
403
- function addToDependencyGraphFromFileInfo(fileInfo, dependencies) {
404
- return addToDependencyGraph(fileInfo.fileIdentifier, fileInfo.file, fileInfo.cacheDest, fileInfo.finalDest, fileInfo.packageInfo.type, dependencies);
407
+ function addToDependencyGraphFromFileInfo(fileInfo, dependencies, stylesheet) {
408
+ return addToDependencyGraph(fileInfo.fileIdentifier, fileInfo.file, fileInfo.cacheDest, fileInfo.finalDest, fileInfo.packageInfo.type, dependencies, stylesheet);
405
409
  }
406
410
  function addToDependencyGraphFromCacheNode(fileIdentifier, cacheNode, dependencies) {
407
411
  //throw new TungstenError(`addToDependencyGraphFromCacheNode() not implemented yet`)
408
- return addToDependencyGraph(fileIdentifier, cacheNode.originalLocation, cacheNode.cacheLocation, cacheNode.finalLocation, cacheNode.type, dependencies);
412
+ return addToDependencyGraph(fileIdentifier, cacheNode.originalLocation, cacheNode.cacheLocation, cacheNode.finalLocation, cacheNode.type, dependencies, cacheNode.stylesheet);
409
413
  }
410
- function addToDependencyGraph(fileIdentifier, file, cacheLocation, finalLocation, fileType, dependencies) {
414
+ function addToDependencyGraph(fileIdentifier, file, cacheLocation, finalLocation, fileType, dependencies, stylesheet) {
411
415
  //console.log('addToDependencyGraph')
412
416
  //console.log(type, file, dependencies.length)
413
417
  opts.dependencyGraph[fileIdentifier] = {
@@ -417,6 +421,11 @@ export function MakeBabelTransformPackageImports(opts) {
417
421
  finalLocation: finalLocation
418
422
  };
419
423
  if (dependencies) opts.dependencyGraph[fileIdentifier].dependencies = dependencies;
424
+ // both paths land here, so a restored file contributes its css as a transformed one does
425
+ if (stylesheet !== undefined) {
426
+ opts.dependencyGraph[fileIdentifier].stylesheet = stylesheet;
427
+ recordFrameworkStylesheet(getPackageDirForFile(file), stylesheet);
428
+ }
420
429
  }
421
430
  function resolveFile(file) {
422
431
  //console.log('resolve file', file)
@@ -447,6 +456,7 @@ export function MakeBabelTransformPackageImports(opts) {
447
456
  finalDest,
448
457
  packageInfo
449
458
  } = fileInfo;
459
+ let stylesheet;
450
460
  //try {
451
461
  const dependencies = getFileDependencies(fileInfo, sourceFilename, history);
452
462
  // cliInfo(`deps for ${file}`)
@@ -464,7 +474,9 @@ export function MakeBabelTransformPackageImports(opts) {
464
474
  if (hasJavascriptFileExtension(file)) {
465
475
  if (getModuleFormatForFile(file) === 'esm' && file.endsWith('.js') || file.endsWith('.mjs')) {
466
476
  try {
467
- const code = await babelFileEsm(file /*, packageInfo*/, nonEsmDependenciesFull);
477
+ const code = await babelFileEsm(file /*, packageInfo*/, nonEsmDependenciesFull, rel => {
478
+ stylesheet = rel;
479
+ });
468
480
  //console.log('writing file', cacheDest)
469
481
  //console.log('writing file', finalDest)
470
482
  await fsPromises.writeFile(cacheDest, code); // rel contains the slash at start
@@ -494,7 +506,7 @@ export function MakeBabelTransformPackageImports(opts) {
494
506
  await fsPromises.copyFile(file, finalDest);
495
507
  }
496
508
  const dependenciesFileIndentifiers = dependenciesFull.map(d => d.fileIdentifier);
497
- addToDependencyGraphFromFileInfo(fileInfo, dependenciesFileIndentifiers);
509
+ addToDependencyGraphFromFileInfo(fileInfo, dependenciesFileIndentifiers, stylesheet);
498
510
  // add deps to dependencyGraph
499
511
  // returns the deps
500
512
  await processDependencies(dependenciesFull, sourceFilename, [...history, file]);
@@ -1,6 +1,6 @@
1
1
  import type * as BabelCore from '@babel/core';
2
- export { BabelCore };
3
- export { NodePath, PluginPass } from '@babel/core';
2
+ export type { BabelCore };
3
+ export type { NodePath, PluginPass } from '@babel/core';
4
4
  export type Babel = typeof BabelCore;
5
5
  export * as BabelTypes from '@babel/types';
6
6
  //# sourceMappingURL=BabelTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BabelTypes.d.ts","sourceRoot":"","sources":["../../src/babelPlugins/BabelTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,SAAS,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,CAAA;AACpB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAClD,MAAM,MAAM,KAAK,GAAG,OAAO,SAAS,CAAC;AAErC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"BabelTypes.d.ts","sourceRoot":"","sources":["../../src/babelPlugins/BabelTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,SAAS,MAAM,aAAa,CAAA;AAC7C,YAAY,EAAE,SAAS,EAAE,CAAA;AACzB,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACvD,MAAM,MAAM,KAAK,GAAG,OAAO,SAAS,CAAC;AAErC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAA"}
@@ -1,3 +1,2 @@
1
- export { NodePath } from '@babel/core';
2
1
  //import type { types as Types } from '@babel/core';
3
2
  export * as BabelTypes from '@babel/types';
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/build.ts"],"names":[],"mappings":"AAyCA,OAAO,EAAE,CAAA"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/build.ts"],"names":[],"mappings":"AAqDA,OAAO,EAAE,CAAA"}
@@ -1,10 +1,13 @@
1
1
  // build
2
2
  import chalk from 'chalk-extensions';
3
3
  import { Framework } from "../../Framework.js";
4
- import { cliOut, cliNews } from "../../cliOutput.js";
4
+ import { cliOut, cliNews, cliWarn } from "../../cliOutput.js";
5
5
  import { staticSiteFolder } from "../../settings.js";
6
+ import { createTimeProfiler } from "../../timeProfiler.js";
7
+ const profile = process.argv.slice(3).includes('--profile');
6
8
  //// prep the app
7
9
  const sxyFramework = new Framework();
10
+ sxyFramework.profiler = createTimeProfiler(profile);
8
11
  await sxyFramework.init();
9
12
  await sxyFramework.clean('prod');
10
13
  await sxyFramework.build('prod');
@@ -24,4 +27,11 @@ if (sxyFramework.config.staticSite) {
24
27
  } else {
25
28
  cliNews(`Production build complete`);
26
29
  }
27
- process.exit(0);
30
+ // The build no longer holds anything open, so it ends by draining the event loop - hard-exiting
31
+ // here used to abort the process outright when an fs-extra copy still had a chmod in flight
32
+ // (libuv `!(handle->flags & UV_HANDLE_CLOSING)`). Safety net only, in case a future change
33
+ // leaks a handle again: unref'd, so a clean build still exits the moment it is done.
34
+ setTimeout(() => {
35
+ cliWarn(`Build finished but something is still holding the process open - exiting anyway.`);
36
+ process.exit(0);
37
+ }, 10_000).unref();
@@ -1 +1 @@
1
- {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/compile.ts"],"names":[],"mappings":"AAgRA,OAAO,EAAE,CAAA"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/compile.ts"],"names":[],"mappings":"AAuRA,OAAO,EAAE,CAAA"}
@@ -3,12 +3,13 @@ import { promises as fsPromises } from 'fs';
3
3
  import { removeRecursive } from "../../removeRecursive.js";
4
4
  import { compileJavascript } from "../../build/compileJavascript.js";
5
5
  import { compileStyles } from "../../build/compileStyles.js";
6
+ import { writeFrameworkCss } from "../../build/frameworkStylesheets.js";
6
7
  import { copyAssets } from "../../build/copyAssets.js";
7
8
  import { copyPublicFiles } from "../../build/copyPublicFiles.js";
8
9
  import { createClientFiles } from "../../build/createClientFiles.js";
9
10
  import { createInstanceConfigFile } from "../../build/createInstanceConfigFile.js";
10
11
  import { getUserConfig } from "../../getUserConfig.js";
11
- import { buildCodeSubPath, assetsFolder, clientFolder, componentCssFolder, devBuildOuterFolder, packagesCacheFolder, packagesFolder, publicFolder, staticFolder } from "../../settings.js";
12
+ import { buildCodeSubPath, assetsFolder, clientFolder, componentCssFolder, devBuildOuterFolder, frameworkCssFolder, packagesCacheFolder, packagesFolder, publicFolder, staticFolder } from "../../settings.js";
12
13
  import { cliError, cliNews, cliOut } from "../../cliOutput.js";
13
14
  const targetOptions = {
14
15
  '--js': 'js',
@@ -121,7 +122,9 @@ async function markReady() {
121
122
  await clearReadyFile();
122
123
  const cleanTasks = [];
123
124
  if (clean && targets.has('js')) {
124
- cleanTasks.push(removeRecursive(buildCodeLocation), removeRecursive(join(buildLocation, componentCssFolder)), removeRecursive(join(buildLocation, packagesFolder)), removeRecursive(packagesCacheLocation));
125
+ cleanTasks.push(removeRecursive(buildCodeLocation), removeRecursive(join(buildLocation, componentCssFolder)),
126
+ // else a component the app no longer imports keeps its stale stylesheet linked
127
+ removeRecursive(join(buildLocation, frameworkCssFolder)), removeRecursive(join(buildLocation, packagesFolder)), removeRecursive(packagesCacheLocation));
125
128
  }
126
129
  if (clean && targets.has('css')) {
127
130
  cleanTasks.push(removeRecursive(join(buildLocation, staticFolder)));
@@ -171,6 +174,8 @@ if (targets.has('public')) {
171
174
  compilationTasks.push(copyPublicFiles(projectDir, config, buildLocation, watch));
172
175
  }
173
176
  const compilationResults = await Promise.allSettled(compilationTasks);
177
+ // after the js task: the package walk that records the stylesheets runs inside it
178
+ if (targets.has('js')) await writeFrameworkCss(buildLocation);
174
179
  const failures = compilationResults.filter(result => result.status === 'rejected').map(result => result.reason);
175
180
  const initialSuccess = failures.length === 0 && javascriptInitialSuccess;
176
181
  if (initialSuccess) {
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/dev.ts"],"names":[],"mappings":"AA2CA,OAAO,EAAE,CAAA"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/dev.ts"],"names":[],"mappings":"AAqDA,OAAO,EAAE,CAAA"}