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
@@ -11,13 +11,15 @@ import { tungstenCorePublicEnvSchema } from './tungstenCorePublicEnvSchema.js';
11
11
  import { checkIsObject, validate } from '../standardSchema.js';
12
12
  export async function loadEnvsDev(config,
13
13
  //load: Load,
14
- iteration, initialProcessEnv, _firstLoad, useTestEnvFiles = false) {
14
+ iteration, initialProcessEnv, _firstLoad, useTestEnvFiles = false,
15
+ // where the compiled env schemas module is, when not the dev build (a test run's own compile)
16
+ buildCodeFolder) {
15
17
  //console.log('loadEnvsDev')
16
18
  const tempEnv = {
17
19
  ...initialProcessEnv
18
20
  };
19
21
  // const envSchemas = await getEnvSchemasDev(config, load)
20
- const envSchemas = await getEnvSchemasDev(config, iteration);
22
+ const envSchemas = await getEnvSchemasDev(config, iteration, buildCodeFolder);
21
23
  const projectDir = process.cwd();
22
24
  const envLocation = join(projectDir, '.env');
23
25
  const privateEnvLocation = join(projectDir, '.env.private');
@@ -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;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
+ {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/Servers/routing.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,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"}
@@ -9,7 +9,7 @@ export async function routing(location, routes, serverDataLoading = null) {
9
9
  // this is assuming an array
10
10
  // should check whether we have an array, fragment, or single element instead
11
11
  for (const [_path, route] of Object.entries(routes)) {
12
- const path = _path; // eslint-disable-line no-type-assertion/no-type-assertion -- TS fails to infer type of path correctly
12
+ const path = _path; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- TS fails to infer type of path correctly
13
13
  if (path === 'default') {
14
14
  defaultRoute = route;
15
15
  continue;
@@ -226,7 +226,7 @@ export class Store {
226
226
  if (IsObject(o)) {
227
227
  throw new TungstenError(`Store.increment() error: data for ${key} is not an object. Is type ${typeof o} instead`)
228
228
  }
229
- Object.assign(this.data[key] as GenericObject, object) // eslint-disable-line no-type-assertion/no-type-assertion -- TS won't let me typecheck within this.data
229
+ Object.assign(this.data[key] as GenericObject, object) // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- TS won't let me typecheck within this.data
230
230
  this.push(key)
231
231
  }
232
232
  push(key: string) {
@@ -229,7 +229,7 @@ export class TypeSafeStore<Schema extends object> {
229
229
  if (IsObject(o)) {
230
230
  throw new TungstenError(`Store.increment() error: data for ${key} is not an object. Is type ${typeof o} instead`)
231
231
  }
232
- Object.assign(this.data[key] as GenericObject, object) // eslint-disable-line no-type-assertion/no-type-assertion -- TS won't let me typecheck within this.data
232
+ Object.assign(this.data[key] as GenericObject, object) // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- TS won't let me typecheck within this.data
233
233
  this.push(key)
234
234
  }
235
235
  push(key: string) {
@@ -119,5 +119,5 @@ export class StoreValue {
119
119
  export function makeStore(schema, subscribedElements, serverDataLoading = null) {
120
120
  //const Class = (isServer) ? StoreValueServer : StoreValue
121
121
  const store = objectMap(schema, (key, value) => serverDataLoading ? new StoreValueServer(key, value, subscribedElements, serverDataLoading) : new StoreValue(key, value, subscribedElements));
122
- return store; // eslint-disable-line no-type-assertion/no-type-assertion -- not sure, just want to get rid of squigglies
122
+ return store; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- not sure, just want to get rid of squigglies
123
123
  }
@@ -6,7 +6,7 @@ export function registerStore(StoreSchema) {
6
6
  storeSchemas[0] = StoreSchema;
7
7
  return {
8
8
  getComponentStore: element => {
9
- const store = element.__instance.stores[position]; // eslint-disable-line no-type-assertion/no-type-assertion -- we set this schema above
9
+ const store = element.__instance.stores[position]; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- we set this schema above
10
10
  const proxiedStore = element.__proxyStore(store);
11
11
  return proxiedStore;
12
12
  },
package/dist/TElement.js CHANGED
@@ -17,7 +17,7 @@ export {};
17
17
  // this.parentProxy = new Proxy(parent, {
18
18
  // get: function(obj: AnyComponent, key: string | symbol) {
19
19
  // global.__T_CurrentElement = this
20
- // return (obj as AnyComponent & Record<string | symbol, unknown>)[key] // eslint-disable-line no-type-assertion/no-type-assertion -- TS being difficult, whatcha gonna do?
20
+ // return (obj as AnyComponent & Record<string | symbol, unknown>)[key] // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- TS being difficult, whatcha gonna do?
21
21
  // },
22
22
  // })
23
23
  // this.type = type
@@ -29,8 +29,12 @@ export class TungstenApp {
29
29
  if (dev) cliLog('Starting Tungsten in Development mode');else cliLog('Starting Tungsten in Production mode');
30
30
  if (this.rootComponent === undefined) throwError('TungstenApp', 'No root component set.' + ' You must set a root component in the option objects of the TungstenApp constructor, ' + ' or by calling set tungstenApp.setRootComponent()');
31
31
  if (this.appRoutes === undefined) throwError('TungstenApp', 'No routes set.' + ' You must set your application routes in the options object of the TungstenApp constructor, ' + ' or by calling set tungstenApp.setRoutes()');
32
- if (this.rootComponent === undefined) throwError('TungstenApp', 'No Private Env Validator set.' + ' You must set a private env validator in the options object of the TungstenApp constructor, ' + ' or by calling set tungstenApp.setPrivateEnvValidator()');
33
- if (this.rootComponent === undefined) throwError('TungstenApp', 'No Public Env Validator set.' + ' You must set a public env validator in the options object of the TungstenApp constructor, ' + ' or by calling set tungstenApp.setPublicEnvValidator()');
32
+ if (this.privateEnvValidator === undefined) throwError(
33
+ // eslint-disable-line @typescript-eslint/no-unnecessary-condition -- validator types are `never` placeholders for now
34
+ 'TungstenApp', 'No Private Env Validator set.' + ' You must set a private env validator in the options object of the TungstenApp constructor, ' + ' or by calling set tungstenApp.setPrivateEnvValidator()');
35
+ if (this.publicEnvValidator === undefined) throwError(
36
+ // eslint-disable-line @typescript-eslint/no-unnecessary-condition -- as above
37
+ 'TungstenApp', 'No Public Env Validator set.' + ' You must set a public env validator in the options object of the TungstenApp constructor, ' + ' or by calling set tungstenApp.setPublicEnvValidator()');
34
38
  // start stuff
35
39
  const framework = new Framework();
36
40
  await framework.init();
@@ -1 +1 @@
1
- {"version":3,"file":"cjsHelpers.d.ts","sourceRoot":"","sources":["../../src/_client/cjsHelpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAa,MAAM,gBAAgB,CAAA;AAqCvD,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAC,CAAA;KAC/E;CACJ;AA6BD,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,mCAuC5C"}
1
+ {"version":3,"file":"cjsHelpers.d.ts","sourceRoot":"","sources":["../../src/_client/cjsHelpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAa,MAAM,gBAAgB,CAAA;AAyCvD,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAC,CAAA;KAC/E;CACJ;AAkCD,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,mCAuC5C"}
@@ -33,14 +33,16 @@ function pathCombine(baseFile, dest) {
33
33
  let dir = baseDir;
34
34
  let subDest = dest;
35
35
  while (subDest.startsWith('../')) {
36
- if (dir === '') throw new Error(`pathCombine() error, tried to back up too far. baseDir: ${baseDir} dest: ${dest}`);
36
+ if (dir === '') {
37
+ throw new Error(`pathCombine() error, tried to back up too far. baseDir: ${baseDir} dest: ${dest}`);
38
+ }
37
39
  dir = dir.slice(0, dir.lastIndexOf('/'));
38
40
  subDest = subDest.slice(3);
39
41
  }
40
42
  return dir + '/' + subDest;
41
43
  } else {
42
44
  // unknown
43
- throw new Error(`pathCombine error: unknown dest format, expected a relative import. baseDir: ${baseDir} dest: ${dest}`);
45
+ throw new Error('pathCombine error: unknown dest format, expected a relative import.' + ` baseDir: ${baseDir} dest: ${dest}`);
44
46
  }
45
47
  }
46
48
  export async function loadDeps(deps) {
@@ -22,20 +22,6 @@ const clientPromise = (async () => {
22
22
  );
23
23
  }
24
24
  await Promise.all(promises);
25
- //const rootComponentRelFilePath = (await import('./rootComponentRelFilePath.js')).rootComponentRelFilePath
26
- // let RootComponent: TungstenBaseComponentType
27
- // if ('default' in rootModule) {
28
- // // @ts-ignore
29
- // RootComponent = rootModule.default
30
- // } else {
31
- // const file = rootComponentRelFilePath.split('/').pop() as string
32
- // const componentName = file.slice(0, file.lastIndexOf('.'))
33
- // if (componentName in rootModule) {
34
- // RootComponent = rootModule[componentName]
35
- // } else {
36
- // throw new TungstenError(`Component not found in module ${rootComponentRelFilePath}`)
37
- // }
38
- // }
39
25
  // @ts-expect-error -- TS doesn't understand that RootComponent was assigned by the promise
40
26
  await hydrate(routes, RootComponent, instanceConfig);
41
27
  })();
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=hmr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmr.d.ts","sourceRoot":"","sources":["../../src/_client/hmr.ts"],"names":[],"mappings":""}
@@ -0,0 +1,65 @@
1
+ // Tier 2 HMR (config hmr: true): swap changed components and stylesheets in place, falling back to
2
+ // a full reload only when that cannot be done. See docs/hmr.md.
3
+ //
4
+ // This lives in _client rather than the framework's module graph because it fetches whichever file
5
+ // just recompiled via a computed import(), and a non-literal import() anywhere in the traced
6
+ // dependency graph makes the package-copying step throw (it must know every specifier statically).
7
+ // _client files are copied verbatim into the app's .client folder, so they are never traced.
8
+ /* eslint-disable no-console -- the console is this module's output: it reports what HMR did and why */
9
+ import { connectLiveReload } from './liveReloadSource.js';
10
+ function isJsPayload(value) {
11
+ return typeof value === 'object' && value !== null;
12
+ }
13
+ // the re-imported file's exports; applyHmrModule scans them for component definitions
14
+ function importFresh(file) {
15
+ return import(`${file}?t=${Date.now()}`).then(m => m); // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- a module namespace is always a string-keyed object
16
+ }
17
+ // Loaded on the first event, not statically: module scripts evaluate in document order and this one
18
+ // precedes cjsHelpers.js, whose globals the framework graph's converted CJS packages need at
19
+ // evaluation time. A static import here evaluated that graph first ("__tungsten_cjs_import is not
20
+ // defined"). Resolved by the import map (getSxyClientPackageAliases.ts).
21
+ const loadHmr = () => import('tungsten/hmr/applyHmrModule.js');
22
+ function fullReload(reason) {
23
+ console.info('[tungsten-hmr] full reload:', reason);
24
+ window.location.reload();
25
+ }
26
+ // CSS has no state to preserve, so re-applying it is always safe: refreshStylesheets() inserts the
27
+ // new link and only removes the old one once it has loaded, so nothing flashes.
28
+ function refreshCss() {
29
+ loadHmr().then(hmr => Promise.all(hmr.refreshStylesheets())).catch(e => console.error('[tungsten-hmr] stylesheet refresh failed', e));
30
+ }
31
+ const es = connectLiveReload(fullReload);
32
+ es.addEventListener('css', () => {
33
+ console.info('[tungsten-hmr] css change, refreshing stylesheets');
34
+ refreshCss();
35
+ });
36
+ es.addEventListener('js', ev => {
37
+ let payload;
38
+ try {
39
+ payload = JSON.parse(ev.data);
40
+ } catch {
41
+ fullReload('bad payload');
42
+ return;
43
+ }
44
+ const files = isJsPayload(payload) ? payload.files ?? [] : [];
45
+ if (files.length === 0) {
46
+ fullReload('no files in payload');
47
+ return;
48
+ }
49
+ console.info('[tungsten-hmr] fetching', files);
50
+ // a component's inline style block rides this same JS pipeline (it lives in the .tsx source, not
51
+ // a separate .css), so refresh stylesheets here too - independently of the swap below, so a
52
+ // stylesheet load error does not force a full reload
53
+ refreshCss();
54
+ loadHmr().then(hmr => Promise.all(files.map(importFresh)).then(modules => Promise.all(modules.map((m, i) => hmr.applyHmrModule(m, files[i]))))).then(results => {
55
+ console.info('[tungsten-hmr] results', results);
56
+ if (results.some(r => r.orphaned)) {
57
+ fullReload('a component export was renamed or removed');
58
+ return;
59
+ }
60
+ if (!results.some(r => r.matched)) fullReload('no matching live component found');
61
+ }).catch(e => {
62
+ console.error('[tungsten-hmr] swap failed', e);
63
+ fullReload('error during swap');
64
+ });
65
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=liveReload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liveReload.d.ts","sourceRoot":"","sources":["../../src/_client/liveReload.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ // Tier 1 live reload (config hmr: 'reload'): any change is a full page reload. Deliberately
2
+ // independent of hmr.ts so it stays a one-line escape hatch if Tier 2 misbehaves. See docs/hmr.md.
3
+ import { connectLiveReload } from './liveReloadSource.js';
4
+ const es = connectLiveReload(() => window.location.reload());
5
+ es.addEventListener('css', () => window.location.reload());
6
+ es.addEventListener('js', () => window.location.reload());
@@ -0,0 +1,3 @@
1
+ export type FullReload = (reason: string) => void;
2
+ export declare function connectLiveReload(fullReload: FullReload): EventSource;
3
+ //# sourceMappingURL=liveReloadSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liveReloadSource.d.ts","sourceRoot":"","sources":["../../src/_client/liveReloadSource.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;AASjD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,WAAW,CAerE"}
@@ -0,0 +1,25 @@
1
+ // Shared by the two live-reload entries (liveReload.ts, hmr.ts). _client files are copied verbatim
2
+ // into the app's .client folder by createClientFiles and served from there, outside the traced
3
+ // module graph - see the note atop hmr.ts for why that matters.
4
+ function bootIdOf(data) {
5
+ const payload = JSON.parse(data);
6
+ if (typeof payload !== 'object' || payload === null || !('bootId' in payload)) return undefined;
7
+ return typeof payload.bootId === 'string' ? payload.bootId : undefined;
8
+ }
9
+ // This module is served from <siteBasePath>/.client/, so the endpoint resolves relative to it.
10
+ export function connectLiveReload(fullReload) {
11
+ const es = new EventSource(new URL('../__tungsten_live_reload__', import.meta.url));
12
+ // The server sends its bootId as the first event on every connection (handleLiveReloadStream).
13
+ // A different one already in sessionStorage means this is a reconnect to a process that
14
+ // restarted since the page loaded (e.g. devmon after a framework rebuild) - EventSource retries
15
+ // silently on its own, so this is the only reliable signal that the page is now stale.
16
+ es.addEventListener('boot', ev => {
17
+ const bootId = bootIdOf(ev.data);
18
+ if (bootId === undefined) return;
19
+ const key = '__tungsten_boot_id__';
20
+ const prev = sessionStorage.getItem(key);
21
+ sessionStorage.setItem(key, bootId);
22
+ if (prev !== null && prev !== bootId) fullReload('dev server restarted');
23
+ });
24
+ return es;
25
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"getExport.d.ts","sourceRoot":"","sources":["../../src/api/getExport.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAQjC,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,IAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAuBpG"}
1
+ {"version":3,"file":"getExport.d.ts","sourceRoot":"","sources":["../../src/api/getExport.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAQjC,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,IAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAuBpG"}
@@ -1,3 +1,4 @@
1
+ // old loading method
1
2
  import { basename } from 'path';
2
3
  import { fixExtension } from '../fixExtension.js';
3
4
  import { TungstenError } from '../TungstenError.js';
@@ -147,6 +147,7 @@ export function MakeBabelTransformBindDirect(/*opts: Opts*/
147
147
  let setFieldExpression;
148
148
  if (stateBased) {
149
149
  if (stateSettingMode === 'assignment') {
150
+ // eslint-disable-line @typescript-eslint/no-unnecessary-condition -- other modes kept switchable
150
151
  stateAssignmentExpression = make.expressionStatement(make.assignmentExpression('=', originalVariable, make.identifier('value')));
151
152
  } else {
152
153
  //// unused
@@ -185,6 +186,7 @@ export function MakeBabelTransformBindDirect(/*opts: Opts*/
185
186
  else functionBodyExpressions.push(assignToValueVarExpression);
186
187
  if (stateBased) {
187
188
  if (stateSettingMode === 'assignment') {
189
+ // eslint-disable-line @typescript-eslint/no-unnecessary-condition -- other modes kept switchable
188
190
  if (stateAssignmentExpression === undefined) {
189
191
  throwError('BabelTransformBindDirect', 'failed to create the state assignment expression');
190
192
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BabelTransformBindVar.d.ts","sourceRoot":"","sources":["../../src/babelPlugins/BabelTransformBindVar.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAS,MAAM,aAAa,CAAA;AA0FhE,wBAAgB,yBAAyB,KACC,OAAO,SAAS;;;2BAKvB,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,UAAU;;EAgRjF"}
1
+ {"version":3,"file":"BabelTransformBindVar.d.ts","sourceRoot":"","sources":["../../src/babelPlugins/BabelTransformBindVar.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AA0FzD,wBAAgB,yBAAyB,KACC,OAAO,SAAS;;;2BAKvB,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,UAAU;;EAgRjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"BabelTransformComponentState.d.ts","sourceRoot":"","sources":["../../src/babelPlugins/BabelTransformComponentState.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAQ,QAAQ,EAAS,MAAM,aAAa,CAAA;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EACH,oBAAoB,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAChE,sBAAsB,EAAoB,gBAAgB,EAAE,mBAAmB,EAClF,MAAM,cAAc,CAAA;AAGrB,wBAAgB,gCAAgC,KACC,OAAO,SAAS;;;;wBAuFzC,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC;uBAOtC,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC;;;wBAPpC,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC;uBAOtC,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC;;mCAgBjB,QAAQ,CAAC,oBAAoB,CAAC;+BA0BlC,QAAQ,CAAC,gBAAgB,CAAC;6BAU5B,QAAQ,CAAC,cAAc,CAAC;kCAqCnB,QAAQ,CAAC,mBAAmB,CAAC;qCAgB1B,QAAQ,CAAC,sBAAsB,CAAC;;EA0B5E"}
1
+ {"version":3,"file":"BabelTransformComponentState.d.ts","sourceRoot":"","sources":["../../src/babelPlugins/BabelTransformComponentState.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EACH,oBAAoB,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAChE,sBAAsB,EAAoB,gBAAgB,EAAE,mBAAmB,EAClF,MAAM,cAAc,CAAA;AAGrB,wBAAgB,gCAAgC,KACC,OAAO,SAAS;;;;wBAuFzC,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC;uBAOtC,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC;;;wBAPpC,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC;uBAOtC,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC;;mCAgBjB,QAAQ,CAAC,oBAAoB,CAAC;+BA0BlC,QAAQ,CAAC,gBAAgB,CAAC;6BAU5B,QAAQ,CAAC,cAAc,CAAC;kCAqCnB,QAAQ,CAAC,mBAAmB,CAAC;qCAgB1B,QAAQ,CAAC,sBAAsB,CAAC;;EA0B5E"}
@@ -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;AAiRvD,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;IAEf,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAE7B,UAAU,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAID,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,IAAI,IAsMV,OAAO,KAAK;;;;6BAMjC,MAAM;;mBAIZ,MAAM;;;uCAkBkB,QAAQ,CAAC,wBAAwB,CAAC;sBAf3D,MAAM;kBACV;gBACF,IAAI;qCATS,MAAM;kBASL;aACjB;+BACkB,MAAM;;;EAsKpC"}
1
+ {"version":3,"file":"BabelTransformComponentStyles.d.ts","sourceRoot":"","sources":["../../src/babelPlugins/BabelTransformComponentStyles.ts"],"names":[],"mappings":"AAwCA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAYjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAiRvD,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;IAEf,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAE7B,UAAU,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAID,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,IAAI,IAsMV,OAAO,KAAK;;;;6BAMjC,MAAM;;mBAIZ,MAAM;;;uCAkBkB,QAAQ,CAAC,wBAAwB,CAAC;sBAf3D,MAAM;kBACV;gBACF,IAAI;qCATS,MAAM;kBASL;aACjB;+BACkB,MAAM;;;EAsKpC"}
@@ -15,7 +15,7 @@ import { TransformCssNames } from '../postcssPlugins/TransformCssNames.js';
15
15
  import { CssNames } from '../CssNames.js';
16
16
  //const CSSModulesSync = require('postcss-modules-sync').default
17
17
  import { watch } from '../watch.js';
18
- import slash from 'slash';
18
+ import slash from '../slash.js';
19
19
  import { resolveSassImport } from 'tungsten/build/resolveSassScssImports.js';
20
20
  import { sassImportParser } from 'tungsten/build/sassImportParser.js';
21
21
  import { modifySassImports } from 'tungsten/build/modifySassImports.js';
@@ -309,6 +309,7 @@ export function MakeBabelTransformComponentStyles(opts) {
309
309
  if (typeof opts.cssOutputFile === 'string' && opts.cssOutputFile !== '') {
310
310
  //console.log('css:', css)
311
311
  if (mode === 'new') {
312
+ // eslint-disable-line @typescript-eslint/no-unnecessary-condition -- 'old' kept switchable
312
313
  // write a bunch of @import statements
313
314
  fs.writeFileSync(opts.cssOutputFile, Object.values(stylesheets).map(file => `@import "${individualFolderName}/${file}";`).join('\n'));
314
315
  } else {
@@ -361,7 +362,7 @@ export function MakeBabelTransformComponentStyles(opts) {
361
362
  const tag = tte.tag;
362
363
  if (tag.type === 'Identifier' && tag.name in languages) {
363
364
  //if ( opts.functionNames.includes(tag.name) ) {
364
- const tagName = tag.name; // eslint-disable-line no-type-assertion/no-type-assertion -- fine, TS narrowing from the 'in' check above isn't working here
365
+ const tagName = tag.name; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- fine, TS narrowing from the 'in' check above isn't working here
365
366
  //console.log('found stylesheet', tag.name)
366
367
  const Assistant = languages[tagName];
367
368
  const template = tte.quasi.quasis[0];
@@ -437,13 +438,13 @@ export function MakeBabelTransformComponentStyles(opts) {
437
438
  const {
438
439
  names,
439
440
  transformedCss
440
- } = tagName === 'ReactZoneScss' ? cssToReactZoneStyles(css, fullFilePath, moduleName) : cssToLocalClassNames(css, fullFilePath, moduleName);
441
+ } = tallied('component css names (postcss)', () => tagName === 'ReactZoneScss' ? cssToReactZoneStyles(css, fullFilePath, moduleName) : cssToLocalClassNames(css, fullFilePath, moduleName));
441
442
  // `#` is a fragment delimiter in the `@import "i/….css"`
442
443
  // the manifest is built from, so it cannot survive into
443
444
  // a filename. The prefix's trailing `-` keeps the result
444
445
  // readable and distinct.
445
446
  stylesheets[moduleName] = moduleName.replaceAll('#', '') + '.css';
446
- writeOutIfNeeded(transformedCss, names, opts);
447
+ tallied('component css write', () => writeOutIfNeeded(transformedCss, names, opts));
447
448
  // Kept out of the style object, which ships to the browser: a separate
448
449
  // static the build can extract and then erase.
449
450
  const classBody = path.findParent(parent => parent.isClassBody());
@@ -1 +1 @@
1
- {"version":3,"file":"BabelTransformCssImports.d.ts","sourceRoot":"","sources":["../../src/babelPlugins/BabelTransformCssImports.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAc,MAAM,iBAAiB,CAAA;AAE7D,OAAO,EAAQ,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAQjD,KAAK,IAAI,GAAG;IACR,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;CACrB,CAAA;AACD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,IAAI,IACV,OAAO,KAAK;;iBAOvB,UAAU;;kCAUO,QAAQ,CAAC,iBAAiB,CAAC;;EAiJ7E"}
1
+ {"version":3,"file":"BabelTransformCssImports.d.ts","sourceRoot":"","sources":["../../src/babelPlugins/BabelTransformCssImports.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAQjD,KAAK,IAAI,GAAG;IACR,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;CACrB,CAAA;AACD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,IAAI,IACV,OAAO,KAAK;;iBAOvB,UAAU;;kCAUO,QAAQ,CAAC,iBAAiB,CAAC;;EAiJ7E"}
@@ -10,7 +10,7 @@
10
10
  // that stylesheet
11
11
  import { createRequire } from 'module';
12
12
  import { dirname } from 'path';
13
- import slash from 'slash';
13
+ import slash from '../slash.js';
14
14
  import { cliError } from 'tungsten/cliOutput.js';
15
15
  import { throwError } from 'tungsten/throwError.js';
16
16
  import { existsSync } from 'fs';
@@ -41,7 +41,7 @@ export function MakeBabelTransformCssImports(opts) {
41
41
  //console.log('found a css import in', filename)
42
42
  //console.log('absCodeDir', opts.absCodeDir)
43
43
  //console.log('found stylesheet import', location)
44
- let bare = false;
44
+ const bare = false;
45
45
  if (isBareImport(location)) {
46
46
  //bare = true
47
47
  // cliAlert('Bare CSS import:', location)
@@ -12,7 +12,7 @@
12
12
  // to relative imports e.g. '../../axios', pointing to local (and transpiled?)
13
13
  // copies of that package
14
14
  import { dirname, relative } from 'path';
15
- import slash from 'slash';
15
+ import slash from '../slash.js';
16
16
  import { createRequire } from 'module';
17
17
  export function MakeBabelTransformDependencyImports(opts) {
18
18
  return function BabelTransformDependencyImports(babel) {
@@ -1 +1 @@
1
- {"version":3,"file":"BabelTransformDeproxyState.d.ts","sourceRoot":"","sources":["../../src/babelPlugins/BabelTransformDeproxyState.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAQ,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAc,sBAAsB,EAAoB,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAanJ,wBAAgB,8BAA8B,KACC,OAAO,SAAS;;;mCAiDpB,QAAQ,CAAC,oBAAoB,CAAC;6BASpC,QAAQ,CAAC,cAAc,CAAC;kCAgBnB,QAAQ,CAAC,mBAAmB,CAAC;qCAW1B,QAAQ,CAAC,sBAAsB,CAAC;;gBAWrD,SAAS;EAgBhC"}
1
+ {"version":3,"file":"BabelTransformDeproxyState.d.ts","sourceRoot":"","sources":["../../src/babelPlugins/BabelTransformDeproxyState.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAc,sBAAsB,EAAoB,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAanJ,wBAAgB,8BAA8B,KACC,OAAO,SAAS;;;mCAiDpB,QAAQ,CAAC,oBAAoB,CAAC;6BASpC,QAAQ,CAAC,cAAc,CAAC;kCAgBnB,QAAQ,CAAC,mBAAmB,CAAC;qCAW1B,QAAQ,CAAC,sBAAsB,CAAC;;gBAWrD,SAAS;EAgBhC"}
@@ -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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"}
@@ -9,13 +9,12 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
9
9
  // The end of the page ('index.js') is determining through import
10
10
  // resolution
11
11
  import { join, dirname, relative } from 'path';
12
- import slash from 'slash';
13
- import precinct from 'precinct';
12
+ import slash from '../slash.js';
14
13
  import { existsSync, mkdirSync, promises as fsPromises, readFileSync, writeFileSync } from 'fs';
15
14
  import { createRequire } from 'module';
16
15
  import { transformFileSync as babelTransformFileSync, transformSync as babelTransformSync } from '@babel/core';
17
16
  import babelPluginSyntaxImportAssertionsModule from '@babel/plugin-syntax-import-assertions';
18
- import { arrays } from 'sxy-lib';
17
+ import { mapToObject } from 'sxy-lib/arrays.js';
19
18
  const babelPluginSyntaxImportAssertions = babelPluginSyntaxImportAssertionsModule.default;
20
19
  import { init as lexerInit, parse as lexerParse } from 'cjs-module-lexer';
21
20
  lexerInit();
@@ -34,6 +33,12 @@ import { throwError } from '../throwError.js';
34
33
  import { isProfiling, tallied } from '../timeProfiler.js';
35
34
  //import { copyPackageModulesToPackagesFolder } from '../build/copyPackageModulesToPackagesFolder.js'
36
35
  const require = createRequire(import.meta.url);
36
+ // precinct drags in typescript and the typescript-eslint parser (~250 modules), so it is only
37
+ // paid for on a packages-cache miss
38
+ let precinctLoaded;
39
+ function precinct() {
40
+ return precinctLoaded ??= require('precinct'); // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- require() is untyped
41
+ }
37
42
  function debug(...texts) {
38
43
  //console.log(...texts)
39
44
  }
@@ -219,7 +224,7 @@ export function MakeBabelTransformPackageImports(opts) {
219
224
  const {
220
225
  file
221
226
  } = fileInfo;
222
- const precinctResults = tallied('precinct.paperwork', () => precinct.paperwork(file, {
227
+ const precinctResults = tallied('precinct.paperwork', () => precinct().paperwork(file, {
223
228
  includeCore: false
224
229
  }));
225
230
  const deps = precinctResults.map(d => {
@@ -723,7 +728,7 @@ export function MakeBabelTransformPackageImports(opts) {
723
728
  reexports
724
729
  } = lexerParse(code);
725
730
  //console.log('lexInner exports', exports)
726
- const exportsMap = arrays.mapToObject(exports, value => [value, true]);
731
+ const exportsMap = mapToObject(exports, value => [value, true]);
727
732
  //console.log('lexInner exports map', exportsMap)
728
733
  for (const re of reexports) {
729
734
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"BabelTransformRemoveBlocks.d.ts","sourceRoot":"","sources":["../../src/babelPlugins/BabelTransformRemoveBlocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAc,qBAAqB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE7E,KAAK,IAAI,GAAG;IACR,KAAK,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,IAAI;;0BAmBvB,QAAQ,CAAC,WAAW,CAAC;oCAWX,QAAQ,CAAC,qBAAqB,CAAC;;EAS1E"}
1
+ {"version":3,"file":"BabelTransformRemoveBlocks.d.ts","sourceRoot":"","sources":["../../src/babelPlugins/BabelTransformRemoveBlocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAc,qBAAqB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE7E,KAAK,IAAI,GAAG;IACR,KAAK,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,IAAI;;0BAmBvB,QAAQ,CAAC,WAAW,CAAC;oCAWX,QAAQ,CAAC,qBAAqB,CAAC;;EAS1E"}
@@ -1 +1 @@
1
- {"version":3,"file":"BabelTransformDependencyImportsCjs.d.ts","sourceRoot":"","sources":["../../../src/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,KAAK,SAAS,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAc,MAAM,aAAa,CAAA;AAC7D,KAAK,KAAK,GAAG,OAAO,SAAS,CAAC;AAM9B,OAAO,EACH,oBAAoB,EAAE,sBAAsB,EAC5C,KAAK,cAAc,EAAmB,KAAK,iBAAiB,EAC/D,MAAM,cAAc,CAAA;AAIrB,OAAO,KAAK,EACR,oBAAoB,EAAE,qBAAqB,EAAE,oCAAoC,EACjF,uCAAuC,EAAE,oBAAoB,EAChE,MAAM,oCAAoC,CAAA;AAU3C,KAAK,IAAI,GAAG;IACR,UAAU,EAAE,MAAM,EAAE,CAAA;CACvB,CAAA;AAED,KAAK,KAAK,GAAG;IACT,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,oCAAoC,EAAE,oCAAoC,CAAA;IAC1E,uCAAuC,EAAE,uCAAuC,CAAA;IAChF,oBAAoB,EAAE,oBAAoB,CAAA;CAC7C,CAAA;AAED,wBAAgB,sCAAsC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IACxB,OAAO,KAAK;eAoC5C,SAAS;;kCAcmB,QAAQ,CAAC,iBAAiB,CAAC;uCAKtB,QAAQ,CAAC,sBAAsB,CAAC;qCAOlC,QAAQ,CAAC,oBAAoB,CAAC;6BAO/C,QAAQ,CAAC,cAAc,CAAC;;EAiE5D"}
1
+ {"version":3,"file":"BabelTransformDependencyImportsCjs.d.ts","sourceRoot":"","sources":["../../../src/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,KAAK,SAAS,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACjD,KAAK,KAAK,GAAG,OAAO,SAAS,CAAC;AAK9B,OAAO,EACH,oBAAoB,EAAE,sBAAsB,EAC5C,KAAK,cAAc,EAAmB,KAAK,iBAAiB,EAC/D,MAAM,cAAc,CAAA;AAIrB,OAAO,KAAK,EACR,oBAAoB,EAAE,qBAAqB,EAAE,oCAAoC,EACjF,uCAAuC,EAAE,oBAAoB,EAChE,MAAM,oCAAoC,CAAA;AAU3C,KAAK,IAAI,GAAG;IACR,UAAU,EAAE,MAAM,EAAE,CAAA;CACvB,CAAA;AAED,KAAK,KAAK,GAAG;IACT,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,oCAAoC,EAAE,oCAAoC,CAAA;IAC1E,uCAAuC,EAAE,uCAAuC,CAAA;IAChF,oBAAoB,EAAE,oBAAoB,CAAA;CAC7C,CAAA;AAED,wBAAgB,sCAAsC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IACxB,OAAO,KAAK;eAoC5C,SAAS;;kCAcmB,QAAQ,CAAC,iBAAiB,CAAC;uCAKtB,QAAQ,CAAC,sBAAsB,CAAC;qCAOlC,QAAQ,CAAC,oBAAoB,CAAC;6BAO/C,QAAQ,CAAC,cAAc,CAAC;;EAiE5D"}
@@ -7,8 +7,9 @@
7
7
  // funcs from the parent to do various things.
8
8
  // passed in from the parent because this allows them to use a central cache
9
9
  // }
10
+ //import type { types as Types } from '@babel/core';
10
11
  import { dirname, relative } from 'path';
11
- import slash from 'slash';
12
+ import slash from '../../slash.js';
12
13
  import { isBareImport } from '../isBareImport.js';
13
14
  import { cliWarn } from '../../cliOutput.js';
14
15
  import { warn } from '../../output.js';
@@ -1 +1 @@
1
- {"version":3,"file":"BabelTransformDependencyImportsEsm.d.ts","sourceRoot":"","sources":["../../../src/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,KAAK,SAAS,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAc,MAAM,aAAa,CAAA;AAC7D,KAAK,KAAK,GAAG,OAAO,SAAS,CAAC;AAO9B,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAI9G,OAAO,KAAK,EACR,oBAAoB,EAAE,qBAAqB,EAAE,oCAAoC,EACjF,oBAAoB,EAAE,gBAAgB,EACzC,MAAM,oCAAoC,CAAA;AAM3C,KAAK,IAAI,GAAG;IACR,UAAU,EAAE,MAAM,EAAE,CAAA;CACvB,CAAA;AAED,KAAK,KAAK,GAAG;IACT,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,oCAAoC,EAAE,oCAAoC,CAAA;IAC1E,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,gBAAgB,EAAE,gBAAgB,CAAA;CACrC,CAAA;AAED,wBAAgB,sCAAsC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IACxB,OAAO,KAAK;eA0B5C,SAAS;;gCAWQ,QAAQ,CAAC,iBAAiB,CAAC;uCAYX,QAAQ,CAAC,sBAAsB,CAAC;qCAalC,QAAQ,CAAC,oBAAoB,CAAC;6BAa/C,QAAQ,CAAC,cAAc,CAAC;;EAiC5D"}
1
+ {"version":3,"file":"BabelTransformDependencyImportsEsm.d.ts","sourceRoot":"","sources":["../../../src/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,KAAK,SAAS,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACjD,KAAK,KAAK,GAAG,OAAO,SAAS,CAAC;AAM9B,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAI9G,OAAO,KAAK,EACR,oBAAoB,EAAE,qBAAqB,EAAE,oCAAoC,EACjF,oBAAoB,EAAE,gBAAgB,EACzC,MAAM,oCAAoC,CAAA;AAM3C,KAAK,IAAI,GAAG;IACR,UAAU,EAAE,MAAM,EAAE,CAAA;CACvB,CAAA;AAED,KAAK,KAAK,GAAG;IACT,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,oCAAoC,EAAE,oCAAoC,CAAA;IAC1E,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,gBAAgB,EAAE,gBAAgB,CAAA;CACrC,CAAA;AAED,wBAAgB,sCAAsC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IACxB,OAAO,KAAK;eA0B5C,SAAS;;gCAWQ,QAAQ,CAAC,iBAAiB,CAAC;uCAYX,QAAQ,CAAC,sBAAsB,CAAC;qCAalC,QAAQ,CAAC,oBAAoB,CAAC;6BAa/C,QAAQ,CAAC,cAAc,CAAC;;EAiC5D"}
@@ -7,8 +7,9 @@
7
7
  // funcs from the parent to do various things.
8
8
  // passed in from the parent because this allows them to use a central cache
9
9
  // }
10
+ //import type { types as Types } from '@babel/core';
10
11
  import { dirname, relative } from 'path';
11
- import slash from 'slash';
12
+ import slash from '../../slash.js';
12
13
  import { isBareImport } from '../isBareImport.js';
13
14
  import { throwError } from 'tungsten/throwError.js';
14
15
  import { cliError, cliOut } from 'tungsten/cliOutput.js';
@@ -15,7 +15,7 @@ function getPackageDirForDir(dir) {
15
15
  }
16
16
  function getPackageDirForFile(file) {
17
17
  const dir = getPackageDirForDir(dirname(file));
18
- if (dir === undefined) throw new TungstenError(`MakeBabelTransformPackageImports Error: could not find package dir for file ${file}`);
18
+ if (dir === undefined) throw new TungstenError(`getPackageDirForFile Error: could not find package dir for file ${file}`);
19
19
  return dir;
20
20
  }
21
21
  // function getWebLocationOfPackageFile(file: string): string {
package/dist/bin/args.js CHANGED
@@ -59,7 +59,7 @@ export function cliArgs(specs, options = {}) {
59
59
  parsed[name] = flag.startsWith('--no-') ? !on : on;
60
60
  }
61
61
  }
62
- return parsed; // eslint-disable-line no-type-assertion/no-type-assertion -- built from specs' own keys
62
+ return parsed; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- built from specs' own keys
63
63
  }
64
64
  // '--ignore-dirs <dir>...' -> its flag, that it takes a value, and that it may be given more than once
65
65
  function shapeOf(spec) {
@@ -34,7 +34,7 @@ await sxyFramework.build('prod');
34
34
  // }
35
35
  // //// end dev
36
36
  if (sxyFramework.config.staticSite) {
37
- // eslint-disable-line @typescript-eslint/no-non-null-assertion, no-type-assertion/no-type-assertion -- config better be set
37
+ // eslint-disable-line @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-unsafe-type-assertion -- config better be set
38
38
  if (!quiet) cliOut(`Building static site`);
39
39
  await sxyFramework.clean('staticSite');
40
40
  await sxyFramework.staticGen();
@@ -1,3 +1,4 @@
1
+ // build
1
2
  import { findProjectDir } from '../../findProjectDir.js';
2
3
  import { cliInfo, cliLog } from '../../cliOutput.js';
3
4
  cliInfo('tungsten compile-simple-package is not ready yet');
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":"AA6GA,OAAO,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":"AAoHA,OAAO,EAAE,CAAA"}
package/dist/bin/index.js CHANGED
@@ -10,13 +10,21 @@ const profile = args.includes('--profile');
10
10
  // while it populates, so a single run straight after a rebuild looks like a regression.
11
11
  // NODE_DISABLE_COMPILE_CACHE=1 turns it off (NODE_COMPILE_CACHE does not - it names the cache
12
12
  // directory, so a value of 0 makes a folder called 0).
13
- const compileCache = enableCompileCache();
13
+ // OFF for a trial (2026-09-07): Robert is checking whether occasional slow starts persist without
14
+ // it. Measured worth ~200ms warm. Set TUNGSTEN_COMPILE_CACHE=1 to turn it back on meanwhile.
15
+ const compileCacheWanted = process.env.TUNGSTEN_COMPILE_CACHE === '1';
16
+ const compileCache = compileCacheWanted ? enableCompileCache() : undefined;
14
17
  // reported under --profile because "is it even on?" is otherwise only answerable by inspecting
15
18
  // the cache directory's timestamps - status 1 is enabled, 2 already enabled, 3 disabled
16
19
  if (profile) {
17
- cliOut(`compile cache: status ${compileCache.status}` + ` ${compileCache.directory ?? compileCache.message ?? ''}`);
20
+ cliOut(compileCache === undefined ? `compile cache: off (trial - TUNGSTEN_COMPILE_CACHE=1 enables)` : `compile cache: status ${compileCache.status} ${compileCache.directory ?? compileCache.message ?? ''}`);
18
21
  }
19
22
  // hooks have to be registered before the command module - and so its import tree - is loaded
23
+ const {
24
+ registerVendorHook
25
+ } = await import('./vendorHook.js');
26
+ const vendorStatus = registerVendorHook();
27
+ if (profile) cliOut(`vendor bundle: ${vendorStatus}`);
20
28
  const profileModulesArg = args.find(arg => arg === '--profile-modules' || arg.startsWith('--profile-modules='));
21
29
  if (profileModulesArg !== undefined) {
22
30
  const {
@@ -105,7 +113,7 @@ switch (command) {
105
113
  // exited - signals skip exit handling - so they would populate the cache and then throw it away,
106
114
  // paying the cold cost on every run forever. The import above has returned by here, which for a
107
115
  // server command means it has finished starting, so this persists what that startup compiled.
108
- flushCompileCache();
116
+ if (compileCacheWanted) flushCompileCache();
109
117
  // A profiled dev run has measured everything it will measure once the server is up and the report
110
118
  // has printed. Exit rather than leave a server to be killed - after the flush above, which a kill
111
119
  // would have skipped. (dev.ts itself must not exit: its import returning is what reaches here.)
@@ -0,0 +1,3 @@
1
+ export type VendorHookStatus = 'active' | 'none' | 'stale';
2
+ export declare function registerVendorHook(): VendorHookStatus;
3
+ //# sourceMappingURL=vendorHook.d.ts.map