@timber-js/app 0.1.48 → 0.1.49

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 (70) hide show
  1. package/dist/_chunks/{als-registry-c0AGnbqS.js → als-registry-k-AtAQ9R.js} +4 -2
  2. package/dist/_chunks/{als-registry-c0AGnbqS.js.map → als-registry-k-AtAQ9R.js.map} +1 -1
  3. package/dist/_chunks/interception-DGDIjDbR.js.map +1 -1
  4. package/dist/_chunks/{request-context-C69VW4xS.js → request-context-CRj2Zh1E.js} +2 -2
  5. package/dist/_chunks/request-context-CRj2Zh1E.js.map +1 -0
  6. package/dist/_chunks/{tracing-tIvqStk8.js → tracing-DF0G3FB7.js} +2 -2
  7. package/dist/_chunks/{tracing-tIvqStk8.js.map → tracing-DF0G3FB7.js.map} +1 -1
  8. package/dist/_chunks/use-query-states-DAhgj8Gx.js.map +1 -1
  9. package/dist/adapters/nitro.d.ts.map +1 -1
  10. package/dist/adapters/nitro.js +32 -5
  11. package/dist/adapters/nitro.js.map +1 -1
  12. package/dist/cache/index.js +2 -2
  13. package/dist/client/index.js.map +1 -1
  14. package/dist/client/navigation-context.d.ts +1 -1
  15. package/dist/client/navigation-context.d.ts.map +1 -1
  16. package/dist/client/router.d.ts.map +1 -1
  17. package/dist/client/transition-root.d.ts.map +1 -1
  18. package/dist/client/use-query-states.d.ts.map +1 -1
  19. package/dist/client/use-router.d.ts.map +1 -1
  20. package/dist/cookies/index.js +2 -2
  21. package/dist/index.d.ts +8 -12
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +53 -10
  24. package/dist/index.js.map +1 -1
  25. package/dist/plugins/chunks.d.ts.map +1 -1
  26. package/dist/plugins/entries.d.ts +10 -0
  27. package/dist/plugins/entries.d.ts.map +1 -1
  28. package/dist/routing/scanner.d.ts.map +1 -1
  29. package/dist/server/als-registry.d.ts +4 -0
  30. package/dist/server/als-registry.d.ts.map +1 -1
  31. package/dist/server/index.js +39 -7
  32. package/dist/server/index.js.map +1 -1
  33. package/dist/server/metadata-platform.d.ts.map +1 -1
  34. package/dist/server/metadata-social.d.ts.map +1 -1
  35. package/dist/server/pipeline.d.ts.map +1 -1
  36. package/dist/server/primitives.d.ts +8 -4
  37. package/dist/server/primitives.d.ts.map +1 -1
  38. package/dist/server/request-context.d.ts.map +1 -1
  39. package/dist/server/rsc-entry/index.d.ts +1 -0
  40. package/dist/server/rsc-entry/index.d.ts.map +1 -1
  41. package/dist/server/rsc-entry/rsc-stream.d.ts.map +1 -1
  42. package/dist/server/rsc-entry/ssr-renderer.d.ts.map +1 -1
  43. package/dist/server/rsc-prop-warnings.d.ts.map +1 -1
  44. package/dist/server/waituntil-bridge.d.ts +27 -0
  45. package/dist/server/waituntil-bridge.d.ts.map +1 -0
  46. package/package.json +2 -2
  47. package/src/adapters/nitro.ts +44 -8
  48. package/src/client/browser-entry.ts +80 -12
  49. package/src/client/navigation-context.ts +4 -1
  50. package/src/client/router.ts +5 -7
  51. package/src/client/transition-root.tsx +5 -11
  52. package/src/client/use-query-states.ts +4 -1
  53. package/src/client/use-router.ts +3 -1
  54. package/src/index.ts +8 -25
  55. package/src/plugins/chunks.ts +2 -1
  56. package/src/plugins/entries.ts +66 -2
  57. package/src/routing/scanner.ts +1 -4
  58. package/src/server/als-registry.ts +10 -0
  59. package/src/server/compress.ts +0 -1
  60. package/src/server/metadata-platform.ts +4 -1
  61. package/src/server/metadata-social.ts +4 -1
  62. package/src/server/pipeline.ts +6 -23
  63. package/src/server/primitives.ts +19 -9
  64. package/src/server/request-context.ts +1 -5
  65. package/src/server/rsc-entry/index.ts +16 -0
  66. package/src/server/rsc-entry/rsc-stream.ts +1 -4
  67. package/src/server/rsc-entry/ssr-renderer.ts +1 -3
  68. package/src/server/rsc-prop-warnings.ts +7 -17
  69. package/src/server/waituntil-bridge.ts +34 -0
  70. package/dist/_chunks/request-context-C69VW4xS.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -34,16 +34,6 @@ export interface TimberUserConfig {
34
34
  * Server-side JS still runs — this only affects what is sent to the browser.
35
35
  */
36
36
  clientJavascript?: boolean | ClientJavascriptConfig;
37
- /**
38
- * @deprecated Use `clientJavascript: false` or `clientJavascript: { disabled: true }` instead.
39
- *
40
- * Disable all client-side JavaScript output. When true, no client JS
41
- * bundles are emitted or referenced in HTML. Pages work entirely via
42
- * server-rendered HTML. Works in both 'server' and 'static' modes.
43
- *
44
- * Server-side JS still runs — this only affects what is sent to the browser.
45
- */
46
- noClientJavascript?: boolean;
47
37
  adapter?: unknown;
48
38
  cacheHandler?: unknown;
49
39
  allowedOrigins?: string[];
@@ -54,6 +44,13 @@ export interface TimberUserConfig {
54
44
  maxFields?: number;
55
45
  };
56
46
  pageExtensions?: string[];
47
+ /**
48
+ * Slow request threshold in milliseconds. Requests exceeding this emit
49
+ * a warning via the logger. Set to 0 to disable. Default: 3000.
50
+ *
51
+ * See design/17-logging.md §"slowRequestMs".
52
+ */
53
+ slowRequestMs?: number;
57
54
  /** Dev-mode options. These have no effect in production builds. */
58
55
  dev?: {
59
56
  /** Threshold in ms to highlight slow phases in dev logging output. Default: 200. */
@@ -88,8 +85,7 @@ export interface TimberUserConfig {
88
85
  };
89
86
  }
90
87
  /**
91
- * Resolve `clientJavascript` (new) and `noClientJavascript` (deprecated) into
92
- * a fully resolved config. Emits a deprecation warning for the old option.
88
+ * Resolve `clientJavascript` into a fully resolved config.
93
89
  */
94
90
  export declare function resolveClientJavascript(config: TimberUserConfig): ResolvedClientJavascript;
95
91
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -11856,7 +11856,8 @@ var VIRTUAL_IDS = {
11856
11856
  rscEntry: "virtual:timber-rsc-entry",
11857
11857
  ssrEntry: "virtual:timber-ssr-entry",
11858
11858
  browserEntry: "virtual:timber-browser-entry",
11859
- config: "virtual:timber-config"
11859
+ config: "virtual:timber-config",
11860
+ instrumentation: "virtual:timber-instrumentation"
11860
11861
  };
11861
11862
  /**
11862
11863
  * Map from virtual module IDs to their resolved file paths.
@@ -11874,6 +11875,8 @@ var ENTRY_FILE_MAP = {
11874
11875
  };
11875
11876
  /** The \0-prefixed resolved ID for virtual:timber-config */
11876
11877
  var RESOLVED_CONFIG_ID = `\0${VIRTUAL_IDS.config}`;
11878
+ /** The \0-prefixed resolved ID for virtual:timber-instrumentation */
11879
+ var RESOLVED_INSTRUMENTATION_ID = `\0${VIRTUAL_IDS.instrumentation}`;
11877
11880
  /**
11878
11881
  * Strip the \0 prefix from a module ID.
11879
11882
  *
@@ -11914,6 +11917,7 @@ function generateConfigModule(ctx) {
11914
11917
  clientJavascript: ctx.clientJavascript,
11915
11918
  dev: ctx.dev ?? false,
11916
11919
  slowPhaseMs: ctx.config.dev?.slowPhaseMs ?? 200,
11920
+ slowRequestMs: ctx.config.slowRequestMs ?? 3e3,
11917
11921
  cookieSecrets
11918
11922
  };
11919
11923
  return [
@@ -11926,6 +11930,51 @@ function generateConfigModule(ctx) {
11926
11930
  ].join("\n");
11927
11931
  }
11928
11932
  /**
11933
+ * Detect the user's instrumentation.ts file at the project root.
11934
+ *
11935
+ * Checks for instrumentation.ts, .js, and .mjs — matching the same
11936
+ * extensions as timber.config.ts detection.
11937
+ */
11938
+ function detectInstrumentationFile(root) {
11939
+ for (const ext of [
11940
+ ".ts",
11941
+ ".js",
11942
+ ".mjs"
11943
+ ]) {
11944
+ const candidate = resolve(root, `instrumentation${ext}`);
11945
+ if (existsSync(candidate)) return candidate;
11946
+ }
11947
+ return null;
11948
+ }
11949
+ /**
11950
+ * Generate the virtual:timber-instrumentation module source.
11951
+ *
11952
+ * When the user's instrumentation.ts exists, generates a module that
11953
+ * dynamically imports it. When it doesn't exist, generates a module
11954
+ * that returns null. The RSC entry calls this loader at startup time.
11955
+ *
11956
+ * See design/17-logging.md §"instrumentation.ts — The Entry Point"
11957
+ */
11958
+ function generateInstrumentationModule(instrumentationPath) {
11959
+ if (instrumentationPath) return [
11960
+ "// Auto-generated instrumentation loader — do not edit.",
11961
+ "// Generated by timber-entries plugin.",
11962
+ "",
11963
+ `export default async function loadUserInstrumentation() {`,
11964
+ ` return import(${JSON.stringify(instrumentationPath)});`,
11965
+ `}`
11966
+ ].join("\n");
11967
+ return [
11968
+ "// Auto-generated instrumentation loader — do not edit.",
11969
+ "// Generated by timber-entries plugin.",
11970
+ "// No instrumentation.ts found at project root.",
11971
+ "",
11972
+ `export default async function loadUserInstrumentation() {`,
11973
+ ` return null;`,
11974
+ `}`
11975
+ ].join("\n");
11976
+ }
11977
+ /**
11929
11978
  * Create the timber-entries Vite plugin.
11930
11979
  *
11931
11980
  * Hooks: resolveId, load
@@ -11938,10 +11987,12 @@ function timberEntries(ctx) {
11938
11987
  cleanId = stripRootPrefix(cleanId, ctx.root);
11939
11988
  if (cleanId in ENTRY_FILE_MAP) return ENTRY_FILE_MAP[cleanId];
11940
11989
  if (cleanId === VIRTUAL_IDS.config) return RESOLVED_CONFIG_ID;
11990
+ if (cleanId === VIRTUAL_IDS.instrumentation) return RESOLVED_INSTRUMENTATION_ID;
11941
11991
  return null;
11942
11992
  },
11943
11993
  load(id) {
11944
11994
  if (id === RESOLVED_CONFIG_ID) return generateConfigModule(ctx);
11995
+ if (id === RESOLVED_INSTRUMENTATION_ID) return generateInstrumentationModule(detectInstrumentationFile(ctx.root));
11945
11996
  return null;
11946
11997
  }
11947
11998
  };
@@ -14733,8 +14784,7 @@ function createNoopTimer() {
14733
14784
  //#endregion
14734
14785
  //#region src/index.ts
14735
14786
  /**
14736
- * Resolve `clientJavascript` (new) and `noClientJavascript` (deprecated) into
14737
- * a fully resolved config. Emits a deprecation warning for the old option.
14787
+ * Resolve `clientJavascript` into a fully resolved config.
14738
14788
  */
14739
14789
  function resolveClientJavascript(config) {
14740
14790
  if (config.clientJavascript !== void 0) {
@@ -14747,13 +14797,6 @@ function resolveClientJavascript(config) {
14747
14797
  enableHMRInDev: config.clientJavascript.enableHMRInDev ?? config.clientJavascript.disabled
14748
14798
  };
14749
14799
  }
14750
- if (config.noClientJavascript !== void 0) {
14751
- console.warn("[timber] `noClientJavascript` is deprecated. Use `clientJavascript: false` or `clientJavascript: { disabled: true, enableHMRInDev: true }` instead.");
14752
- return {
14753
- disabled: config.noClientJavascript,
14754
- enableHMRInDev: config.noClientJavascript
14755
- };
14756
- }
14757
14800
  return {
14758
14801
  disabled: false,
14759
14802
  enableHMRInDev: false