tungsten 0.4.12 → 0.4.14

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 (275) hide show
  1. package/dist/.build-complete +1 -1
  2. package/dist/AnyComponent.d.ts.map +1 -1
  3. package/dist/Components.d.ts +40 -0
  4. package/dist/Components.d.ts.map +1 -1
  5. package/dist/Components.js +66 -77
  6. package/dist/DomPointer.js +1 -1
  7. package/dist/DomRegion.js +2 -2
  8. package/dist/Framework.js +1 -1
  9. package/dist/FrameworkConfig.d.ts.map +1 -1
  10. package/dist/Instance/Instance.js +1 -1
  11. package/dist/RenderedContentNode.d.ts.map +1 -1
  12. package/dist/RenderedContentNode.js +2 -1
  13. package/dist/Sass.d.ts.map +1 -1
  14. package/dist/Sass.js +1 -0
  15. package/dist/Servers/DevServer.d.ts.map +1 -1
  16. package/dist/Servers/DevServer.js +4 -3
  17. package/dist/Servers/ProdServer.js +1 -1
  18. package/dist/Servers/StaticSiteServer.js +1 -1
  19. package/dist/Servers/loadEnvsDev.d.ts +1 -1
  20. package/dist/Servers/loadEnvsDev.d.ts.map +1 -1
  21. package/dist/Servers/loadEnvsDev.js +4 -2
  22. package/dist/Servers/routing.d.ts.map +1 -1
  23. package/dist/Servers/routing.js +1 -1
  24. package/dist/Store/Store.js +1 -1
  25. package/dist/Store/TypeSafeStore.js +1 -1
  26. package/dist/Store/makeStore.js +1 -1
  27. package/dist/Store/registerStore.js +1 -1
  28. package/dist/TElement.js +1 -1
  29. package/dist/TungstenApp.js +6 -2
  30. package/dist/_client/cjsHelpers.d.ts.map +1 -1
  31. package/dist/_client/cjsHelpers.js +4 -2
  32. package/dist/_client/client.js +0 -14
  33. package/dist/_client/hmr.d.ts +2 -0
  34. package/dist/_client/hmr.d.ts.map +1 -0
  35. package/dist/_client/hmr.js +65 -0
  36. package/dist/_client/liveReload.d.ts +2 -0
  37. package/dist/_client/liveReload.d.ts.map +1 -0
  38. package/dist/_client/liveReload.js +6 -0
  39. package/dist/_client/liveReloadSource.d.ts +3 -0
  40. package/dist/_client/liveReloadSource.d.ts.map +1 -0
  41. package/dist/_client/liveReloadSource.js +25 -0
  42. package/dist/api/getExport.d.ts.map +1 -1
  43. package/dist/api/getExport.js +1 -0
  44. package/dist/babelPlugins/BabelTransformBindDirect.js +2 -0
  45. package/dist/babelPlugins/BabelTransformBindVar.d.ts.map +1 -1
  46. package/dist/babelPlugins/BabelTransformComponentState.d.ts.map +1 -1
  47. package/dist/babelPlugins/BabelTransformComponentStyles.d.ts.map +1 -1
  48. package/dist/babelPlugins/BabelTransformComponentStyles.js +5 -4
  49. package/dist/babelPlugins/BabelTransformCssImports.d.ts.map +1 -1
  50. package/dist/babelPlugins/BabelTransformCssImports.js +2 -2
  51. package/dist/babelPlugins/BabelTransformDependencyImportsOld.js +1 -1
  52. package/dist/babelPlugins/BabelTransformDeproxyState.d.ts.map +1 -1
  53. package/dist/babelPlugins/BabelTransformPackageImports.d.ts.map +1 -1
  54. package/dist/babelPlugins/BabelTransformPackageImports.js +10 -5
  55. package/dist/babelPlugins/BabelTransformRemoveBlocks.d.ts.map +1 -1
  56. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.d.ts.map +1 -1
  57. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.js +2 -1
  58. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.d.ts.map +1 -1
  59. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.js +2 -1
  60. package/dist/babelPlugins/transformPackageImports/getWebLocationOfPackageFile.js +1 -1
  61. package/dist/bin/args.js +1 -1
  62. package/dist/bin/commands/build.js +1 -1
  63. package/dist/bin/commands/compileSimplePackage.js +1 -0
  64. package/dist/bin/index.d.ts.map +1 -1
  65. package/dist/bin/index.js +11 -3
  66. package/dist/bin/vendorHook.d.ts +3 -0
  67. package/dist/bin/vendorHook.d.ts.map +1 -0
  68. package/dist/bin/vendorHook.js +34 -0
  69. package/dist/browserStorage.js +4 -2
  70. package/dist/build/babel.user.common.config.d.ts +2 -0
  71. package/dist/build/babel.user.common.config.d.ts.map +1 -1
  72. package/dist/build/babel.user.common.config.js +10 -4
  73. package/dist/build/bundle.d.ts.map +1 -1
  74. package/dist/build/bundle.js +10 -1
  75. package/dist/build/compileJavascript.d.ts.map +1 -1
  76. package/dist/build/compileJavascript.js +40 -27
  77. package/dist/build/compileStyles.js +4 -4
  78. package/dist/build/copyAssets.js +3 -3
  79. package/dist/build/copyPublicFiles.js +3 -3
  80. package/dist/build/createClientFiles.d.ts.map +1 -1
  81. package/dist/build/createClientFiles.js +4 -8
  82. package/dist/build/frameworkStylesheets.js +1 -1
  83. package/dist/build/getAllSxyClientModules.d.ts.map +1 -1
  84. package/dist/build/getAllSxyClientModules.js +4 -28
  85. package/dist/build/getSxyClientPackageAliases.d.ts.map +1 -1
  86. package/dist/build/getSxyClientPackageAliases.js +3 -1
  87. package/dist/build/makeBabelUserDevConfig.d.ts.map +1 -1
  88. package/dist/build/makeBabelUserProdConfig.d.ts.map +1 -1
  89. package/dist/build/rollupExtractComponentStylesheets.js +1 -1
  90. package/dist/build/sassImportParser.js +2 -2
  91. package/dist/build/tallyBabel.d.ts +3 -0
  92. package/dist/build/tallyBabel.d.ts.map +1 -0
  93. package/dist/build/tallyBabel.js +11 -0
  94. package/dist/clone.js +4 -4
  95. package/dist/compat/context.d.ts.map +1 -1
  96. package/dist/compat/types.d.ts.map +1 -1
  97. package/dist/componentProxyHandlers.d.ts +20 -13
  98. package/dist/componentProxyHandlers.d.ts.map +1 -1
  99. package/dist/componentProxyHandlers.js +134 -94
  100. package/dist/components/Stylesheet.d.ts +1 -2
  101. package/dist/components/Stylesheet.d.ts.map +1 -1
  102. package/dist/components/Stylesheet.js +1 -1
  103. package/dist/components/bindable/BindableCheckbox.d.ts.map +1 -1
  104. package/dist/components/bindable/BindableInput.d.ts.map +1 -1
  105. package/dist/components/bindable/BindableInputTypedLegacy.d.ts.map +1 -1
  106. package/dist/components/bindable/BindableRadio.d.ts.map +1 -1
  107. package/dist/components/bindable/BindableTextarea.d.ts.map +1 -1
  108. package/dist/components/library/RichTextEditor/RichTextEditor.js +2 -2
  109. package/dist/components/library/RichTextEditor/contentTree.js +1 -1
  110. package/dist/concat.d.ts.map +1 -1
  111. package/dist/concat.js +2 -2
  112. package/dist/copy.d.ts.map +1 -1
  113. package/dist/createRoutes.d.ts +1 -1
  114. package/dist/createRoutes.d.ts.map +1 -1
  115. package/dist/env/Env.js +2 -2
  116. package/dist/env/getEnvSchemas.d.ts +2 -2
  117. package/dist/env/getEnvSchemas.d.ts.map +1 -1
  118. package/dist/env/getEnvSchemas.js +7 -5
  119. package/dist/env/windowGlobalEnvStatement.d.ts.map +1 -1
  120. package/dist/findProjectDir.d.ts.map +1 -1
  121. package/dist/findProjectDir.js +18 -4
  122. package/dist/findUserConfig.js +2 -2
  123. package/dist/foreach.js +1 -0
  124. package/dist/frameworkConfigSchema.js +2 -2
  125. package/dist/getComponent.d.ts.map +1 -1
  126. package/dist/getComponentDev.d.ts.map +1 -1
  127. package/dist/getRoutes.d.ts.map +1 -1
  128. package/dist/getRoutes.js +13 -22
  129. package/dist/getRoutesDevs.d.ts.map +1 -1
  130. package/dist/getStackTrace.js +1 -1
  131. package/dist/glob.d.ts +5 -0
  132. package/dist/glob.d.ts.map +1 -0
  133. package/dist/glob.js +103 -0
  134. package/dist/helpers/getFetchCompatibleHeaders.js +2 -2
  135. package/dist/hmr/applyHmrModule.js +5 -5
  136. package/dist/hmr/componentIdentity.js +1 -1
  137. package/dist/hmr/instanceRegistry.js +2 -2
  138. package/dist/hooks/useReducer.d.ts.map +1 -1
  139. package/dist/hooks/useState.d.ts.map +1 -1
  140. package/dist/hooks/useState.js +2 -8
  141. package/dist/hydrate/hydrate.d.ts +1 -1
  142. package/dist/hydrate/hydrate.d.ts.map +1 -1
  143. package/dist/hydrate/hydrate.js +29 -25
  144. package/dist/hydrate/reconcileHydratedAttributes.js +2 -2
  145. package/dist/indexInner.d.ts +1 -1
  146. package/dist/indexInner.d.ts.map +1 -1
  147. package/dist/indexInner.js +1 -0
  148. package/dist/makeFinalConfig.d.ts.map +1 -1
  149. package/dist/makeFinalConfig.js +2 -2
  150. package/dist/markOptionSelected.js +1 -1
  151. package/dist/mergeConfigs.d.ts.map +1 -1
  152. package/dist/mergeConfigs.js +11 -2
  153. package/dist/mutatingFunctions.d.ts +2 -1
  154. package/dist/mutatingFunctions.d.ts.map +1 -1
  155. package/dist/mutatingFunctions.js +10 -4
  156. package/dist/postcssPlugins/TransformCssNames.js +2 -2
  157. package/dist/rawHtml/parseHtml.js +1 -1
  158. package/dist/render/componentNodeToRenderingTree.d.ts.map +1 -1
  159. package/dist/render/componentNodeToRenderingTree.js +6 -17
  160. package/dist/render/contentToHtml.d.ts.map +1 -1
  161. package/dist/render/contentToHtml.js +1 -1
  162. package/dist/render/getFunctionBodyAsString.d.ts.map +1 -1
  163. package/dist/render/getFunctionBodyAsString.js +2 -5
  164. package/dist/render/processHead.d.ts.map +1 -1
  165. package/dist/render/processHead.js +5 -34
  166. package/dist/render/processProps.js +2 -2
  167. package/dist/render/renderingTreeToHtml.d.ts.map +1 -1
  168. package/dist/render/rootToHtml.d.ts.map +1 -1
  169. package/dist/routing/Route.js +1 -1
  170. package/dist/routing/RouteDataFunction.type.d.ts.map +1 -1
  171. package/dist/routing/RoutesWithSafeParams.js +1 -1
  172. package/dist/routing/WebRedirect.d.ts.map +1 -1
  173. package/dist/routing/compareRequestToRegex.js +2 -2
  174. package/dist/routing/getPathPriority.js +1 -1
  175. package/dist/serverRpc.d.ts.map +1 -1
  176. package/dist/signals/tracking.d.ts +33 -0
  177. package/dist/signals/tracking.d.ts.map +1 -0
  178. package/dist/signals/tracking.js +87 -0
  179. package/dist/slash.d.ts +2 -0
  180. package/dist/slash.d.ts.map +1 -0
  181. package/dist/slash.js +5 -0
  182. package/dist/spawnShellCommand.js +1 -1
  183. package/dist/staticGen/staticGen.d.ts.map +1 -1
  184. package/dist/staticGen/staticGen.js +9 -7
  185. package/dist/staticGen/staticGenFunctions.js +1 -1
  186. package/dist/style/jssToCss.d.ts.map +1 -1
  187. package/dist/style/jssToCss.js +11 -9
  188. package/dist/style/unusedStyles.d.ts.map +1 -1
  189. package/dist/testing/host.js +11 -11
  190. package/dist/testing/hydrateTestApp.d.ts.map +1 -1
  191. package/dist/testing/hydrateTestApp.js +9 -9
  192. package/dist/testing/index.d.ts.map +1 -1
  193. package/dist/testing/installTestStyleProcessors.js +1 -1
  194. package/dist/testing/loadEnv.d.ts +4 -1
  195. package/dist/testing/loadEnv.d.ts.map +1 -1
  196. package/dist/testing/loadEnv.js +2 -2
  197. package/dist/testing/temp/componentPackageMock.js +3 -3
  198. package/dist/timeProfiler.d.ts +4 -0
  199. package/dist/timeProfiler.d.ts.map +1 -1
  200. package/dist/timeProfiler.js +16 -0
  201. package/dist/todo.js +2 -1
  202. package/dist/update/integrateUpdateVdom.d.ts.map +1 -1
  203. package/dist/update/integrateUpdateVdom.js +17 -14
  204. package/dist/update/integrateUpdateVdomPrebuild.js +5 -5
  205. package/dist/warnOnFrameworkChange.js +1 -1
  206. package/dist/watch.js +2 -2
  207. package/package.json +14 -33
  208. package/types/modules.d.ts +0 -1
  209. package/vendor/babel-core.js +26 -0
  210. package/vendor/babel-parser.js +9 -0
  211. package/vendor/babel-plugin-syntax-import-assertions.js +50 -0
  212. package/vendor/babel-preset-react.js +872 -0
  213. package/vendor/babel-preset-typescript.js +26 -0
  214. package/vendor/babel-types.js +9 -0
  215. package/vendor/chalk-extensions.js +1994 -0
  216. package/vendor/chalk.js +647 -0
  217. package/vendor/chokidar.js +6889 -0
  218. package/vendor/chunk-1TN2rK3j.js +1218 -0
  219. package/vendor/chunk-1UuLTU0U.js +34 -0
  220. package/vendor/chunk-B_NeooyV.js +86 -0
  221. package/vendor/chunk-C12hSZn7.js +88 -0
  222. package/vendor/chunk-C3YkUGz5.js +19 -0
  223. package/vendor/chunk-C3fcZDjl.js +41964 -0
  224. package/vendor/chunk-C9FSKeSx.js +14603 -0
  225. package/vendor/chunk-CPArXGxa.js +14623 -0
  226. package/vendor/cjs-module-lexer.js +6 -0
  227. package/vendor/dotenv.js +412 -0
  228. package/vendor/express.js +40577 -0
  229. package/vendor/import-meta-resolve.js +2201 -0
  230. package/vendor/manifest.json +29 -0
  231. package/vendor/postcss.js +8546 -0
  232. package/vendor/serialize-javascript.js +293 -0
  233. package/vendor/sxy-lib-arrays.js +113 -0
  234. package/vendor/sxy-lib-object-copy.js +1781 -0
  235. package/vendor/sxy-lib-objects.js +156 -0
  236. package/vendor/sxy-lib-promises.js +47 -0
  237. package/vendor/sxy-package-investigator.js +202 -0
  238. package/vendor/valibot.js +7664 -0
  239. package/dist/Servers/hono/DevServerHono.d.ts +0 -2
  240. package/dist/Servers/hono/DevServerHono.d.ts.map +0 -1
  241. package/dist/Servers/hono/DevServerHono.js +0 -423
  242. package/dist/Servers/hono/ProdServerHono.d.ts +0 -2
  243. package/dist/Servers/hono/ProdServerHono.d.ts.map +0 -1
  244. package/dist/Servers/hono/ProdServerHono.js +0 -220
  245. package/dist/Servers/hono/TungstenServerHono.d.ts +0 -6
  246. package/dist/Servers/hono/TungstenServerHono.d.ts.map +0 -1
  247. package/dist/Servers/hono/TungstenServerHono.js +0 -36
  248. package/dist/api/ApiEndpointHono.d.ts +0 -3
  249. package/dist/api/ApiEndpointHono.d.ts.map +0 -1
  250. package/dist/api/ApiEndpointHono.js +0 -1
  251. package/dist/api/ApiRouteHono.d.ts +0 -7
  252. package/dist/api/ApiRouteHono.d.ts.map +0 -1
  253. package/dist/api/ApiRouteHono.js +0 -1
  254. package/dist/api/ApiRoutesHono.d.ts +0 -5
  255. package/dist/api/ApiRoutesHono.d.ts.map +0 -1
  256. package/dist/api/ApiRoutesHono.js +0 -1
  257. package/dist/api/getApiRoutesHono.d.ts +0 -6
  258. package/dist/api/getApiRoutesHono.d.ts.map +0 -1
  259. package/dist/api/getApiRoutesHono.js +0 -14
  260. package/dist/build/compilePackages.d.ts +0 -2
  261. package/dist/build/compilePackages.d.ts.map +0 -1
  262. package/dist/build/compilePackages.js +0 -89
  263. package/dist/build/findRequiredUserModule.d.ts +0 -2
  264. package/dist/build/findRequiredUserModule.d.ts.map +0 -1
  265. package/dist/build/findRequiredUserModule.js +0 -36
  266. package/dist/build/processPackage.d.ts +0 -4
  267. package/dist/build/processPackage.d.ts.map +0 -1
  268. package/dist/build/processPackage.js +0 -91
  269. package/dist/build/tallyBabelPlugins.d.ts +0 -3
  270. package/dist/build/tallyBabelPlugins.d.ts.map +0 -1
  271. package/dist/build/tallyBabelPlugins.js +0 -63
  272. package/dist/testing/loadEnvSetup.d.ts +0 -2
  273. package/dist/testing/loadEnvSetup.d.ts.map +0 -1
  274. package/dist/testing/loadEnvSetup.js +0 -7
  275. package/sxy-loader.config.js +0 -7
@@ -8,7 +8,6 @@ import { getStyledContentFromFunctionComponent } from '../getStyledContentFromFu
8
8
  import { FunctionElement } from '../FunctionComponentStandIn.js';
9
9
  import { jssToCss } from '../style/jssToCss.js';
10
10
  import { htmlEventHandlerKey } from '../htmlEventHandlerKey.js';
11
- import { todo } from '../todo.js';
12
11
  import { $contentNull } from '../symbols.js';
13
12
  import { throwError } from '../throwError.js';
14
13
  import { $number, $string, RenderedContentNodeIsArray, RenderedContentNodeIsLiteral, makeRenderedContentNodeNonRendered, makeRenderedContentNodeHtml, makeRenderedContentNodeLiteral, RenderedContentNodeIsNonRendered, WideRenderedContentNodeIsArray, WideRenderedContentNodeIsLiteral, WideRenderedContentNodeIsHtml, WideRenderedContentNodeIsComponent, RenderedContentNodeSingleIsHead, RenderedContentNodeSingleIsComponent, RenderedContentNodeSingleIsHtml, RenderedContentNodeIsElement, RenderedContentNodeSingleIsLiteral } from '../RenderedContentNode.js';
@@ -80,7 +79,7 @@ function debug(...texts) {
80
79
  //console.log(...texts)
81
80
  //console.log(getStackTrace().split('\n')[2])
82
81
  }
83
- const timing = false; // eslint-disable-line no-type-assertion/no-type-assertion
82
+ const timing = false; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
84
83
  // need to be adapted to work for func components?
85
84
  export async function integrateElementUpdateVdom(element, newContent) {
86
85
  let startTime = 0;
@@ -516,7 +515,7 @@ async function updateComponent({
516
515
  instance,
517
516
  newNode,
518
517
  oldNode: oldNode,
519
- // eslint-disable-line no-type-assertion/no-type-assertion -- oldNode is proven to be class comp, because type is the same as newNode
518
+ // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- oldNode is proven to be class comp, because type is the same as newNode
520
519
  domPointer
521
520
  });
522
521
  } else {
@@ -526,7 +525,7 @@ async function updateComponent({
526
525
  instance,
527
526
  newNode,
528
527
  oldNode: oldNode,
529
- // eslint-disable-line no-type-assertion/no-type-assertion -- oldNode is proven to be function comp, because type is the same as newNode
528
+ // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- oldNode is proven to be function comp, because type is the same as newNode
530
529
  domPointer
531
530
  });
532
531
  }
@@ -567,7 +566,7 @@ function moveDomNode(domNode, domPointer) {
567
566
  // is not a child at all (indexOf -1), or index is past the end (undefined).
568
567
  // one live-NodeList read, reused as the insertBefore reference below -- see
569
568
  // DomPointer.insert() for why these reads are worth counting
570
- const reference = domPointer.parent.childNodes[domPointer.index]; // eslint-disable-line no-type-assertion/no-type-assertion -- indexing past the end gives undefined, which the DOM types do not model
569
+ const reference = domPointer.parent.childNodes[domPointer.index]; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- indexing past the end gives undefined, which the DOM types do not model
571
570
  if (reference !== domNode) {
572
571
  //console.log('document.activeElement', document.activeElement, domNode == document.activeElement, domNode === document.activeElement)
573
572
  const ownerDocument = domNode.ownerDocument;
@@ -583,7 +582,7 @@ function moveDomNode(domNode, domPointer) {
583
582
  //console.log('had focus', hasFocus)
584
583
  if (hasFocus) domNode.focus();
585
584
  //console.log('post document.activeElement', document.activeElement)
586
- if (activeElement) activeElement.focus(); // eslint-disable-line no-type-assertion/no-type-assertion -- activeElement was a focused dom node, so it should have a focus method??
585
+ if (activeElement) activeElement.focus(); // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- activeElement was a focused dom node, so it should have a focus method??
587
586
  }
588
587
  domPointer.increment();
589
588
  }
@@ -836,7 +835,7 @@ async function createHtmlElement(tungstenElement, instance, node, domPointer, pa
836
835
  processHtmlNode(node, parentNode);
837
836
  debug('-createHtmlElement', node);
838
837
  const htmlEl = documentFromParent(domPointer.parent).createElement(node[$type]);
839
- const extendableEl = htmlEl; // eslint-disable-line no-type-assertion/no-type-assertion -- attributes are attached to the element later
838
+ const extendableEl = htmlEl; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- attributes are attached to the element later
840
839
  addAttributes(tungstenElement, instance, node, extendableEl);
841
840
  if (node[$type] === 'head') {
842
841
  for (const el of instance.persistentHeadChildren) {
@@ -887,7 +886,7 @@ async function createHtmlElement(tungstenElement, instance, node, domPointer, pa
887
886
  return {
888
887
  ...node,
889
888
  domNode: htmlEl,
890
- // eslint-disable-line no-type-assertion/no-type-assertion -- as TungstenHTMLElement allows us to attach additional props later (for storing event handler funcs)
889
+ // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- as TungstenHTMLElement allows us to attach additional props later (for storing event handler funcs)
891
890
  renderedChildren
892
891
  };
893
892
  }
@@ -903,9 +902,13 @@ function addAttributes(tungstenElement, instance, node, domNode) {
903
902
  if (StringIsHtmlEvent(key)) {
904
903
  debug('add', htmlEvents[key]);
905
904
  const eventName = htmlEvents[key];
906
- todo('addAttributes() warning - ensure type safety of event names');
907
- todo('addAttributes() warning - ensure type safety of event listener'); // we need to set all possible event listeners to take only EventListener funcs
908
- const handler = makeEventListener(tungstenElement, instance, eventName, attributes[key]);
905
+ const value = attributes[key];
906
+ // JSX types the prop as a handler; a non-function is a spread of foreign props or a raw
907
+ // content tree, and addEventListener would throw a bare TypeError for it
908
+ if (isDev && typeof value !== 'function') {
909
+ throwError('integrateUpdate', `<${node[$type]}> ${key} is ${typeof value}, not a function`);
910
+ }
911
+ const handler = makeEventListener(tungstenElement, instance, eventName, value);
909
912
  // // if its a button without type="submit", prevent default to stop it from submitting forms
910
913
  // const handler = (key === 'onClick' && node[$type] === 'button' && node[$props].type !== 'submit')
911
914
  // ? (event: Event) => { event.preventDefault(); return (attributes[key] as EventListener)(event) }
@@ -1431,10 +1434,10 @@ export async function hotSwapClassComponent(oldElement, NewType) {
1431
1434
  // carry the old state across, unwrapping the old proxy so the new instance's own
1432
1435
  // constructor-created proxy (bound to itself) is what ends up owning it
1433
1436
  if ('state' in oldElement && oldElement.state !== undefined && 'state' in newElement) {
1434
- const oldState = oldElement.state; // eslint-disable-line no-type-assertion/no-type-assertion -- state shape is unknown to this generic dev-only code path
1435
- const rawOldState = $original in oldState ? oldState[$original] // eslint-disable-line no-type-assertion/no-type-assertion -- $original always yields the raw backing object
1437
+ const oldState = oldElement.state; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- state shape is unknown to this generic dev-only code path
1438
+ const rawOldState = $original in oldState ? oldState[$original] // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- $original always yields the raw backing object
1436
1439
  : oldState;
1437
- const newState = newElement.state; // eslint-disable-line no-type-assertion/no-type-assertion -- state shape is unknown to this generic dev-only code path
1440
+ const newState = newElement.state; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- state shape is unknown to this generic dev-only code path
1438
1441
  for (const key in rawOldState) newState[key] = rawOldState[key];
1439
1442
  }
1440
1443
  await newElement.__init();
@@ -66,7 +66,7 @@ export {};
66
66
  // //console.log(...texts)
67
67
  // //console.log(getStackTrace().split('\n')[2])
68
68
  // }
69
- // const timing = true as boolean // eslint-disable-line no-type-assertion/no-type-assertion
69
+ // const timing = true as boolean // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
70
70
  // // need to be adapted to work for func components?
71
71
  // export async function integrateElementUpdateVdom(
72
72
  // element: AnyComponent, newContent: ContentNode
@@ -552,7 +552,7 @@ export {};
552
552
  // parent,
553
553
  // instance,
554
554
  // newNode,
555
- // oldNode: oldNode as RenderedContentNodeClassComponent, // eslint-disable-line no-type-assertion/no-type-assertion -- oldNode is proven to be class comp, because type is the same as newNode
555
+ // oldNode: oldNode as RenderedContentNodeClassComponent, // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- oldNode is proven to be class comp, because type is the same as newNode
556
556
  // domPointer,
557
557
  // })
558
558
  // } else {
@@ -561,7 +561,7 @@ export {};
561
561
  // parent,
562
562
  // instance,
563
563
  // newNode,
564
- // oldNode: oldNode as RenderedContentNodeFunctionComponent, // eslint-disable-line no-type-assertion/no-type-assertion -- oldNode is proven to be function comp, because type is the same as newNode
564
+ // oldNode: oldNode as RenderedContentNodeFunctionComponent, // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- oldNode is proven to be function comp, because type is the same as newNode
565
565
  // domPointer,
566
566
  // })
567
567
  // }
@@ -608,7 +608,7 @@ export {};
608
608
  // //console.log('had focus', hasFocus)
609
609
  // if (hasFocus) domNode.focus()
610
610
  // //console.log('post document.activeElement', document.activeElement)
611
- // if ( activeElement) (activeElement as Element & { focus: () => void } ).focus() // eslint-disable-line no-type-assertion/no-type-assertion -- activeElement was a focused dom node, so it should have a focus method??
611
+ // if ( activeElement) (activeElement as Element & { focus: () => void } ).focus() // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- activeElement was a focused dom node, so it should have a focus method??
612
612
  // }
613
613
  // domPointer.increment()
614
614
  // }
@@ -1061,7 +1061,7 @@ export {};
1061
1061
  // return htmlEl as TungstenHTMLElement
1062
1062
  // // return {
1063
1063
  // // ...node,
1064
- // // domNode: htmlEl as TungstenHTMLElement, // eslint-disable-line no-type-assertion/no-type-assertion -- as TungstenHTMLElement allows us to attach additional props later (for storing event handler funcs)
1064
+ // // domNode: htmlEl as TungstenHTMLElement, // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- as TungstenHTMLElement allows us to attach additional props later (for storing event handler funcs)
1065
1065
  // // renderedChildren
1066
1066
  // // }
1067
1067
  // }
@@ -8,7 +8,7 @@ import { cliWarn } from './cliOutput.js';
8
8
  // full process restart - this just tells the developer that's needed, rather than attempting it.
9
9
  //
10
10
  // Watches a single marker file (dist/.build-complete) rather than all of dist - tungsten's own
11
- // build scripts touch it as their last step (see scripts/writeBuildMarker.mjs), so one file
11
+ // build scripts touch it as their last step (see scripts/writeBuildMarker.ts), so one file
12
12
  // covers every file a build could have changed without chokidar scanning the whole tree. Watch
13
13
  // mode (build-babel --watch) does not yet write it on each cycle, only the one-shot builds do.
14
14
  export function warnOnFrameworkChange() {
package/dist/watch.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import chokidar from 'chokidar';
2
- import slash from 'slash';
2
+ import slash from './slash.js';
3
3
  export function watch({
4
4
  dir,
5
5
  patterns,
@@ -21,7 +21,7 @@ export function watch({
21
21
  });
22
22
  }
23
23
  function addBasePath(base, items) {
24
- if (base !== undefined && base !== '.' && base !== '') {
24
+ if (base !== '.' && base !== '') {
25
25
  items = Array.isArray(items) ? items.map(item => `${base}/${item}`) : `${base}/${items}`;
26
26
  }
27
27
  return items;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tungsten",
3
- "version": "0.4.12",
3
+ "version": "0.4.14",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "bin": {
@@ -20,15 +20,17 @@
20
20
  "files": [
21
21
  "dist",
22
22
  "!dist/**/*.sxyt.*",
23
+ "vendor",
23
24
  "types",
24
- "sxy-loader.config.js",
25
25
  "readme.md"
26
26
  ],
27
27
  "keywords": [],
28
28
  "author": "",
29
29
  "license": "UNLICENSED",
30
+ "engines": {
31
+ "node": ">=24"
32
+ },
30
33
  "dependencies": {
31
- "@babel/cli": "^7.28.6",
32
34
  "@babel/core": "^7.29.0",
33
35
  "@babel/parser": "^7.29.2",
34
36
  "@babel/plugin-syntax-import-assertions": "^7.29.7",
@@ -36,7 +38,6 @@
36
38
  "@babel/preset-react": "^7.28.5",
37
39
  "@babel/preset-typescript": "^7.29.7",
38
40
  "@babel/types": "^7.29.0",
39
- "@hono/node-server": "^1.19.11",
40
41
  "@rollup/plugin-babel": "^6.1.0",
41
42
  "@rollup/plugin-commonjs": "^28.0.9",
42
43
  "@rollup/plugin-json": "^6.1.0",
@@ -44,60 +45,36 @@
44
45
  "@rollup/plugin-terser": "^1.0.0",
45
46
  "@types/babel__core": "^7.20.5",
46
47
  "@types/express": "^5.0.6",
47
- "babel-plugin-css-to-js": "^0.0.4",
48
- "babel-plugin-sxy-transform-cjs-to-esm": "^0.2.6",
49
48
  "bcryptjs": "^3.0.3",
50
49
  "chalk": "^5.6.2",
51
50
  "chalk-extensions": "^2.0.24",
52
51
  "chokidar": "^3.6.0",
53
52
  "cjs-module-lexer": "^1.4.3",
54
- "cjstoesm": "^2.1.2",
55
- "cookie-parser": "^1.4.7",
56
- "cross-env": "^7.0.3",
57
53
  "csstype": "^3.2.3",
58
- "decamelize": "^6.0.1",
59
54
  "dotenv": "^16.6.1",
60
- "esm-reload": "^1.0.1",
61
55
  "express": "^5.2.1",
62
- "find-package-json": "^1.2.0",
63
- "fs-extra": "^10.1.0",
64
- "globby": "^13.2.2",
65
- "hono": "^4.12.32",
66
56
  "import-meta-resolve": "^4.2.0",
67
- "ini": "^4.1.3",
68
- "lodash.clonedeep": "^4.5.0",
69
- "npm-run-all": "^4.1.5",
70
57
  "open": "^8.4.2",
71
- "path-to-regexp": "^8.4.2",
72
58
  "postcss": "^8.5.24",
73
59
  "precinct": "^12.2.0",
74
- "react-router": "^6.30.3",
75
60
  "require-resolve-hook": "^1.1.0",
76
61
  "rollup": "^4.63.1",
77
62
  "rollup-plugin-gzip": "^3.1.2",
78
63
  "sass": "^1.102.0",
79
64
  "serialize-javascript": "^6.0.2",
80
- "slash": "^4.0.0",
81
- "sxy-dependency-tree": "^8.1.11",
82
- "sxy-filing-cabinet": "^3.4.2",
83
65
  "sxy-lib": "^3.0.7",
84
66
  "sxy-lib-object-copy": "^2.0.5",
85
- "sxy-loader": "^3.1.0",
86
67
  "sxy-package-investigator": "^1.0.0",
87
68
  "sxy-types": "^1.0.23",
88
69
  "valibot": "^1.4.2"
89
70
  },
90
71
  "devDependencies": {
72
+ "@babel/cli": "^7.29.7",
91
73
  "@babel/generator": "^7.29.1",
92
74
  "@stylistic/eslint-plugin": "^3.1.0",
93
75
  "@types/babel-types": "^7.0.16",
94
76
  "@types/babel__generator": "^7.27.0",
95
77
  "@types/chai": "^4.3.20",
96
- "@types/cookie-parser": "^1.4.10",
97
- "@types/find-package-json": "^1.2.7",
98
- "@types/fs-extra": "^11.0.4",
99
- "@types/ini": "^1.3.34",
100
- "@types/lodash.clonedeep": "^4.5.9",
101
78
  "@types/node": "^24.1.0",
102
79
  "@types/react": "19.1.9",
103
80
  "@types/react-dom": "19.1.7",
@@ -108,11 +85,14 @@
108
85
  "babel-plugin-sxy-transform-import-extensions": "^1.0.5",
109
86
  "babel-plugin-transform-import-extension": "^1.0.3",
110
87
  "chai": "^4.5.0",
88
+ "cross-env": "^7.0.3",
111
89
  "eslint": "^8.57.1",
112
90
  "eslint-import-resolver-typescript": "^2.7.1",
113
91
  "eslint-plugin-import": "^2.32.0",
114
92
  "eslint-plugin-no-type-assertion": "^1.3.0",
93
+ "eslint-plugin-unused-imports": "^3.2.0",
115
94
  "happy-dom": "^20.11.1",
95
+ "npm-run-all": "^4.1.5",
116
96
  "rimraf": "^5.0.10",
117
97
  "rollup-plugin-visualizer": "^5.14.0",
118
98
  "sxy-test-runner": "^2.4.9",
@@ -141,15 +121,16 @@
141
121
  "build": "run-s -c clean build-prep build-watch",
142
122
  "clean": "rimraf intermed dist",
143
123
  "build-once": "rimraf intermed dist && pnpm build-ts-once && pnpm build-babel-once && pnpm build-component-styles",
144
- "build-component-styles": "node scripts/buildComponentStyles.mjs",
145
- "build-once-nd": "rimraf intermed dist.building && pnpm build-ts-once && pnpm build-babel-staged && node scripts/syncDist.mjs && node scripts/writeBuildMarker.mjs",
124
+ "build-component-styles": "node scripts/buildComponentStyles.ts",
125
+ "build-vendor": "node scripts/bundleVendor.ts",
126
+ "build-once-nd": "rimraf intermed dist.building && pnpm build-ts-once && pnpm build-babel-staged && node scripts/syncDist.ts && node scripts/writeBuildMarker.ts",
146
127
  "build-quick": "pnpm build-watch",
147
128
  "build-prep": "pnpm build-ts-once",
148
129
  "build-watch": "run-p build-ts build-babel",
149
130
  "build-ts": "tsc --watch",
150
131
  "build-ts-once": "tsc",
151
- "build-babel": "node scripts/watchBabelAndMark.mjs",
152
- "build-babel-once": "babel intermed --out-dir dist --ignore \"**/*.cjs\" --copy-files --config-file ./babel.framework.config.js && node scripts/writeBuildMarker.mjs",
132
+ "build-babel": "node scripts/watchBabelAndMark.ts",
133
+ "build-babel-once": "babel intermed --out-dir dist --ignore \"**/*.cjs\" --copy-files --config-file ./babel.framework.config.js && node scripts/writeBuildMarker.ts",
153
134
  "build-babel-staged": "babel intermed --out-dir dist.building --ignore \"**/*.cjs\" --copy-files --config-file ./babel.framework.config.js",
154
135
  "test": "sxy-test-runner",
155
136
  "test-once": "sxy-test-runner once",
@@ -2,7 +2,6 @@ declare module '@babel/preset-react'
2
2
  declare module '@babel/preset-env'
3
3
  declare module '@babel/preset-typescript'
4
4
  declare module 'babel-plugin-sxy-module-resolver'
5
- declare module 'babel-plugin-css-to-js'
6
5
  declare module '@babel/plugin-transform-class-properties'
7
6
  declare module '@rollup/plugin-node-resolve'
8
7
  declare module '@rollup/plugin-commonjs'
@@ -0,0 +1,26 @@
1
+ import { createRequire as __tungstenCreateRequire } from 'node:module';
2
+ const require = __tungstenCreateRequire(import.meta.url);
3
+ import { r as requireLib } from './chunk-C3fcZDjl.js';
4
+ import './chunk-C9FSKeSx.js';
5
+ import './chunk-CPArXGxa.js';
6
+ import './chunk-C12hSZn7.js';
7
+ import './chunk-1TN2rK3j.js';
8
+ import 'tty';
9
+ import 'util';
10
+ import 'os';
11
+ import './chunk-C3YkUGz5.js';
12
+ import './chunk-1UuLTU0U.js';
13
+ import 'assert';
14
+ import 'path';
15
+ import 'fs';
16
+ import 'url';
17
+ import 'module';
18
+ import './chunk-B_NeooyV.js';
19
+ import 'process';
20
+ import 'v8';
21
+
22
+ var libExports = requireLib();
23
+
24
+ const __v0 = libExports["DEFAULT_EXTENSIONS"];const __v1 = libExports["File"];const __v2 = libExports["OptionManager"];const __v3 = libExports["Plugin"];const __v4 = libExports["__esModule"];const __v5 = libExports["buildExternalHelpers"];const __v6 = libExports["createConfigItem"];const __v7 = libExports["createConfigItemAsync"];const __v8 = libExports["createConfigItemSync"];const __v9 = libExports["getEnv"];const __v10 = libExports["loadOptions"];const __v11 = libExports["loadOptionsAsync"];const __v12 = libExports["loadOptionsSync"];const __v13 = libExports["loadPartialConfig"];const __v14 = libExports["loadPartialConfigAsync"];const __v15 = libExports["loadPartialConfigSync"];const __v16 = libExports["parse"];const __v17 = libExports["parseAsync"];const __v18 = libExports["parseSync"];const __v19 = libExports["resolvePlugin"];const __v20 = libExports["resolvePreset"];const __v21 = libExports["template"];const __v22 = libExports["tokTypes"];const __v23 = libExports["transform"];const __v24 = libExports["transformAsync"];const __v25 = libExports["transformFile"];const __v26 = libExports["transformFileAsync"];const __v27 = libExports["transformFileSync"];const __v28 = libExports["transformFromAst"];const __v29 = libExports["transformFromAstAsync"];const __v30 = libExports["transformFromAstSync"];const __v31 = libExports["transformSync"];const __v32 = libExports["traverse"];const __v33 = libExports["types"];const __v34 = libExports["version"];
25
+
26
+ export { __v0 as DEFAULT_EXTENSIONS, __v1 as File, __v2 as OptionManager, __v3 as Plugin, __v4 as __esModule, __v5 as buildExternalHelpers, __v6 as createConfigItem, __v7 as createConfigItemAsync, __v8 as createConfigItemSync, libExports as default, __v9 as getEnv, __v10 as loadOptions, __v11 as loadOptionsAsync, __v12 as loadOptionsSync, __v13 as loadPartialConfig, __v14 as loadPartialConfigAsync, __v15 as loadPartialConfigSync, __v16 as parse, __v17 as parseAsync, __v18 as parseSync, __v19 as resolvePlugin, __v20 as resolvePreset, __v21 as template, __v22 as tokTypes, __v23 as transform, __v24 as transformAsync, __v25 as transformFile, __v26 as transformFileAsync, __v27 as transformFileSync, __v28 as transformFromAst, __v29 as transformFromAstAsync, __v30 as transformFromAstSync, __v31 as transformSync, __v32 as traverse, __v33 as types, __v34 as version };
@@ -0,0 +1,9 @@
1
+ import { createRequire as __tungstenCreateRequire } from 'node:module';
2
+ const require = __tungstenCreateRequire(import.meta.url);
3
+ import { r as requireLib } from './chunk-CPArXGxa.js';
4
+
5
+ var libExports = requireLib();
6
+
7
+ const __v0 = libExports["__esModule"];const __v1 = libExports["parse"];const __v2 = libExports["parseExpression"];const __v3 = libExports["tokTypes"];
8
+
9
+ export { __v0 as __esModule, libExports as default, __v1 as parse, __v2 as parseExpression, __v3 as tokTypes };
@@ -0,0 +1,50 @@
1
+ import { createRequire as __tungstenCreateRequire } from 'node:module';
2
+ const require = __tungstenCreateRequire(import.meta.url);
3
+ import { r as requireLib$1 } from './chunk-B_NeooyV.js';
4
+
5
+ var lib = {};
6
+
7
+ var hasRequiredLib;
8
+
9
+ function requireLib () {
10
+ if (hasRequiredLib) return lib;
11
+ hasRequiredLib = 1;
12
+
13
+ Object.defineProperty(lib, "__esModule", {
14
+ value: true
15
+ });
16
+ lib.default = void 0;
17
+ var _helperPluginUtils = requireLib$1();
18
+ lib.default = (0, _helperPluginUtils.declare)(api => {
19
+ api.assertVersion("^7.0.0-0 || ^8.0.0-0");
20
+ const isPlugin = (plugin, name) => name === "plugin" || Array.isArray(plugin) && plugin[0] === "plugin";
21
+ const options = plugin => Array.isArray(plugin) && plugin.length > 1 ? plugin[1] : {};
22
+ return {
23
+ name: "syntax-import-assertions",
24
+ manipulateOptions(opts, {
25
+ plugins
26
+ }) {
27
+ for (let i = 0; i < plugins.length; i++) {
28
+ const plugin = plugins[i];
29
+ if (isPlugin(plugin, "deprecatedImportAssert")) return;
30
+ if (isPlugin(plugin, "importAttributes")) {
31
+ plugins.splice(i, 1, "deprecatedImportAssert", ["importAttributes", Object.assign({}, options(plugin), {
32
+ deprecatedAssertSyntax: true
33
+ })]);
34
+ return;
35
+ }
36
+ }
37
+ plugins.push("importAssertions");
38
+ }
39
+ };
40
+ });
41
+
42
+
43
+ return lib;
44
+ }
45
+
46
+ var libExports = requireLib();
47
+
48
+ const __v0 = libExports["__esModule"];
49
+
50
+ export { __v0 as __esModule, libExports as default };