@timber-js/app 0.2.0-alpha.212 → 0.2.0-alpha.214

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 (134) hide show
  1. package/dist/_chunks/{actions-CCdnVtWm.js → actions-CUh3cClk.js} +43 -8
  2. package/dist/_chunks/{actions-CCdnVtWm.js.map → actions-CUh3cClk.js.map} +1 -1
  3. package/dist/_chunks/{canonicalize-CgHoscYO.js → canonicalize-BAWkWiKK.js} +28 -2
  4. package/dist/_chunks/{canonicalize-CgHoscYO.js.map → canonicalize-BAWkWiKK.js.map} +1 -1
  5. package/dist/_chunks/{chains-BfoPFraI.js → chains-CjK1Eu6a.js} +2 -2
  6. package/dist/_chunks/{chains-BfoPFraI.js.map → chains-CjK1Eu6a.js.map} +1 -1
  7. package/dist/_chunks/{classify-BT66U83D.js → classify-GAdt6aiA.js} +2 -2
  8. package/dist/_chunks/{classify-BT66U83D.js.map → classify-GAdt6aiA.js.map} +1 -1
  9. package/dist/_chunks/{cli-check-BfQ54-UJ.js → cli-check-DOzjlycg.js} +3 -3
  10. package/dist/_chunks/{cli-check-BfQ54-UJ.js.map → cli-check-DOzjlycg.js.map} +1 -1
  11. package/dist/_chunks/{cli-schema-sync-czh2dsLs.js → cli-schema-sync-B9wDaQvW.js} +2 -2
  12. package/dist/_chunks/{cli-schema-sync-czh2dsLs.js.map → cli-schema-sync-B9wDaQvW.js.map} +1 -1
  13. package/dist/_chunks/{client-dep-entries-CQwpb8dI.js → client-dep-entries-DyDqXOF9.js} +2 -2
  14. package/dist/_chunks/{client-dep-entries-CQwpb8dI.js.map → client-dep-entries-DyDqXOF9.js.map} +1 -1
  15. package/dist/_chunks/{convention-lint-BEVW4EID.js → convention-lint-B3QEGJX7.js} +2 -2
  16. package/dist/_chunks/{convention-lint-BEVW4EID.js.map → convention-lint-B3QEGJX7.js.map} +1 -1
  17. package/dist/_chunks/{dev-server-FKxptbnI.js → dev-server-_9L4KWC-.js} +3 -3
  18. package/dist/_chunks/{dev-server-FKxptbnI.js.map → dev-server-_9L4KWC-.js.map} +1 -1
  19. package/dist/_chunks/{error-boundary-DsNScGRM.js → error-boundary-xxxLtXt6.js} +38 -5
  20. package/dist/_chunks/{error-boundary-DsNScGRM.js.map → error-boundary-xxxLtXt6.js.map} +1 -1
  21. package/dist/_chunks/{live-graph-C_4v-fHv.js → live-graph-Cd3YHvrH.js} +4 -4
  22. package/dist/_chunks/{live-graph-C_4v-fHv.js.map → live-graph-Cd3YHvrH.js.map} +1 -1
  23. package/dist/_chunks/{poison-scan-C92liMAr.js → poison-scan-BnJjBOkn.js} +2 -2
  24. package/dist/_chunks/{poison-scan-C92liMAr.js.map → poison-scan-BnJjBOkn.js.map} +1 -1
  25. package/dist/_chunks/{scanner-CQt12vE2.js → scanner-CKAT5gRx.js} +2 -2
  26. package/dist/_chunks/{scanner-CQt12vE2.js.map → scanner-CKAT5gRx.js.map} +1 -1
  27. package/dist/_chunks/{walkers-DAT4avhZ.js → walkers-DwCXEyRu.js} +3 -3
  28. package/dist/_chunks/{walkers-DAT4avhZ.js.map → walkers-DwCXEyRu.js.map} +1 -1
  29. package/dist/adapters/nitro-preview.d.ts.map +1 -1
  30. package/dist/adapters/nitro.js +11 -2
  31. package/dist/adapters/nitro.js.map +1 -1
  32. package/dist/analyze/crawl-entry.js +3 -3
  33. package/dist/analyze/graph-command.js +2 -2
  34. package/dist/cli.js +3 -3
  35. package/dist/client/browser-entry/action-dispatch.d.ts.map +1 -1
  36. package/dist/client/browser-entry/action-queue.d.ts +1 -0
  37. package/dist/client/browser-entry/action-queue.d.ts.map +1 -1
  38. package/dist/client/browser-entry/form-state.d.ts +22 -0
  39. package/dist/client/browser-entry/form-state.d.ts.map +1 -0
  40. package/dist/client/browser-entry/hydrate.d.ts +9 -1
  41. package/dist/client/browser-entry/hydrate.d.ts.map +1 -1
  42. package/dist/client/browser-entry/index.d.ts +2 -0
  43. package/dist/client/browser-entry/index.d.ts.map +1 -1
  44. package/dist/client/browser-entry/router-init.d.ts.map +1 -1
  45. package/dist/client/error-boundary.js +1 -1
  46. package/dist/client/index.d.ts +1 -0
  47. package/dist/client/index.d.ts.map +1 -1
  48. package/dist/client/index.js +90 -2
  49. package/dist/client/index.js.map +1 -1
  50. package/dist/client/internal.js +26 -10
  51. package/dist/client/internal.js.map +1 -1
  52. package/dist/client/navigation-transition.d.ts +11 -2
  53. package/dist/client/navigation-transition.d.ts.map +1 -1
  54. package/dist/client/router-effects.d.ts +70 -8
  55. package/dist/client/router-effects.d.ts.map +1 -1
  56. package/dist/client/router-pipeline.d.ts +3 -1
  57. package/dist/client/router-pipeline.d.ts.map +1 -1
  58. package/dist/client/router-types.d.ts +12 -1
  59. package/dist/client/router-types.d.ts.map +1 -1
  60. package/dist/client/router.d.ts.map +1 -1
  61. package/dist/client/use-form-field.d.ts +39 -0
  62. package/dist/client/use-form-field.d.ts.map +1 -0
  63. package/dist/config-types.d.ts +2 -1
  64. package/dist/config-types.d.ts.map +1 -1
  65. package/dist/index.js +5 -5
  66. package/dist/index.js.map +1 -1
  67. package/dist/routing/index.js +2 -2
  68. package/dist/server/action-client.d.ts +11 -2
  69. package/dist/server/action-client.d.ts.map +1 -1
  70. package/dist/server/canonicalize.d.ts +22 -0
  71. package/dist/server/canonicalize.d.ts.map +1 -1
  72. package/dist/server/flight-scripts.d.ts +9 -0
  73. package/dist/server/flight-scripts.d.ts.map +1 -1
  74. package/dist/server/form-data.d.ts +13 -4
  75. package/dist/server/form-data.d.ts.map +1 -1
  76. package/dist/server/form-state-flight.d.ts +32 -0
  77. package/dist/server/form-state-flight.d.ts.map +1 -0
  78. package/dist/server/index.js +37 -23
  79. package/dist/server/index.js.map +1 -1
  80. package/dist/server/internal.js +54 -3
  81. package/dist/server/internal.js.map +1 -1
  82. package/dist/server/pipeline-helpers.d.ts +31 -0
  83. package/dist/server/pipeline-helpers.d.ts.map +1 -1
  84. package/dist/server/pipeline.d.ts.map +1 -1
  85. package/dist/server/rsc-entry/action-dispatcher.d.ts.map +1 -1
  86. package/dist/server/rsc-entry/index.d.ts.map +1 -1
  87. package/dist/server/rsc-entry/render-route.d.ts +2 -0
  88. package/dist/server/rsc-entry/render-route.d.ts.map +1 -1
  89. package/dist/server/rsc-entry/ssr-renderer.d.ts +6 -0
  90. package/dist/server/rsc-entry/ssr-renderer.d.ts.map +1 -1
  91. package/dist/server/ssr-bridge-types.d.ts +7 -5
  92. package/dist/server/ssr-bridge-types.d.ts.map +1 -1
  93. package/dist/server/ssr-entry.d.ts.map +1 -1
  94. package/dist/server/ssr-form-state.d.ts +30 -0
  95. package/dist/server/ssr-form-state.d.ts.map +1 -0
  96. package/dist/shared/form-state-flight.d.ts +36 -0
  97. package/dist/shared/form-state-flight.d.ts.map +1 -0
  98. package/docs/api/31-api-client.mdx +22 -0
  99. package/docs/api/34-api-config.mdx +1 -1
  100. package/docs/learn/08-forms-and-actions.mdx +109 -22
  101. package/package.json +1 -1
  102. package/src/adapters/nitro-preview.ts +10 -1
  103. package/src/client/browser-entry/action-dispatch.ts +34 -10
  104. package/src/client/browser-entry/action-queue.ts +1 -1
  105. package/src/client/browser-entry/form-state.ts +48 -0
  106. package/src/client/browser-entry/hydrate.ts +9 -18
  107. package/src/client/browser-entry/index.ts +25 -7
  108. package/src/client/browser-entry/router-init.ts +3 -2
  109. package/src/client/index.ts +1 -0
  110. package/src/client/navigation-transition.ts +13 -2
  111. package/src/client/router-effects.ts +99 -10
  112. package/src/client/router-pipeline.ts +7 -3
  113. package/src/client/router-types.ts +12 -1
  114. package/src/client/router.ts +35 -6
  115. package/src/client/use-form-field.ts +132 -0
  116. package/src/config-types.ts +2 -1
  117. package/src/server/action-client.ts +68 -53
  118. package/src/server/canonicalize.ts +29 -0
  119. package/src/server/flight-scripts.ts +13 -0
  120. package/src/server/form-data.ts +62 -10
  121. package/src/server/form-state-flight.ts +67 -0
  122. package/src/server/pipeline-helpers.ts +61 -0
  123. package/src/server/pipeline.ts +13 -1
  124. package/src/server/rsc-entry/action-dispatcher.ts +3 -0
  125. package/src/server/rsc-entry/index.ts +1 -0
  126. package/src/server/rsc-entry/render-route.ts +16 -0
  127. package/src/server/rsc-entry/ssr-renderer.ts +12 -14
  128. package/src/server/ssr-bridge-types.ts +7 -6
  129. package/src/server/ssr-entry.ts +16 -3
  130. package/src/server/ssr-form-state.ts +58 -0
  131. package/src/shared/form-state-flight.ts +74 -0
  132. package/dist/server/form-state-embed.d.ts +0 -32
  133. package/dist/server/form-state-embed.d.ts.map +0 -1
  134. package/src/server/form-state-embed.ts +0 -63
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * See design/19-client-navigation.md §"Scroll Restoration"
10
10
  */
11
- import type { RenderOwner } from './navigation-transition.ts';
11
+ import type { CommitOutcome, RenderOwner } from './navigation-transition.ts';
12
12
  /** The subset of `RouterDeps` the post-paint scroll effects need. */
13
13
  export interface ScrollEffectDeps {
14
14
  scrollTo: (x: number, y: number) => void;
@@ -91,13 +91,75 @@ export interface NavigationRecoveryDeps {
91
91
  currentOwner: () => RenderOwner | null;
92
92
  leaveSpaIfOwned: SpaExits['leaveSpaIfOwned'];
93
93
  /**
94
- * Replace the current entry with `url` — the router's own `navigate()`,
95
- * rendering with `types`: the view transition types of the render the
96
- * redirect interrupted, so a redirected Back still animates as Back and a
97
- * link's own `transitionTypes` survive the hop (TIM-1471).
94
+ * Follow a redirect to `url` — the router's own `navigate()`, carrying
95
+ * the interrupted navigation's {@link RedirectHop}.
98
96
  */
99
- navigate: (url: string, types: readonly string[]) => Promise<void>;
97
+ navigate: (url: string, hop: RedirectHop) => Promise<void>;
100
98
  }
99
+ /**
100
+ * What a redirect hop inherits from the navigation the redirect interrupted.
101
+ */
102
+ export interface RedirectHop {
103
+ /**
104
+ * The view transition types of the interrupted render, so a redirected Back
105
+ * still animates as Back and a link's own `transitionTypes` survive the
106
+ * hop (TIM-1471).
107
+ */
108
+ types: readonly string[];
109
+ /**
110
+ * The interrupted navigation's history mode. A push stays a push: the
111
+ * address bar moves only when a destination commits, so the interrupted
112
+ * navigation wrote no entry, and replacing would overwrite the page being
113
+ * left — Back would skip it (TIM-1571). A refresh or a traversal replaces:
114
+ * the browser is already on the entry being redirected.
115
+ */
116
+ replace: boolean;
117
+ /**
118
+ * The interrupted navigation's scroll mode. `<Link scroll={false}>` to a
119
+ * URL that redirects — a non-canonical `/x/` among them — still keeps the
120
+ * scroll position; the hop would otherwise default to scrolling to the top.
121
+ */
122
+ scroll: boolean;
123
+ /**
124
+ * The interrupted navigation's `onCommit`, as {@link HeldCommit.settle}.
125
+ * A followed redirect is one logical navigation: the hop's commit is the
126
+ * one the caller is waiting for. `<Link>` holds `isPending` until it, and
127
+ * a `'failed'` from the interrupted render would release it on the hop's
128
+ * decode, ahead of a commit React is still holding (TIM-1571). Recovery
129
+ * delivers it itself on every path that does not follow the redirect.
130
+ */
131
+ onCommit?: (outcome: CommitOutcome) => void;
132
+ /**
133
+ * The interrupted navigation's `onHandOff`: a server action redirect
134
+ * waits for the tree that is finally handed to React, which is the
135
+ * redirected one (TIM-1573).
136
+ */
137
+ onHandOff?: () => void;
138
+ }
139
+ /**
140
+ * A navigation's `onCommit`, split around its failure.
141
+ *
142
+ * `navigateTransition` settles `onCommit` `'failed'` as soon as `perform`
143
+ * throws — before the router has seen the error, so before it knows the
144
+ * failure is a redirect it will follow. `transition` is what the render
145
+ * gets: every outcome but `'failed'` reaches the caller at once, and
146
+ * `'failed'` is left to recovery, which either hands `settle` to the
147
+ * redirect hop or delivers it. `settle` runs the caller's callback at most
148
+ * once, so a commit or supersession already delivered wins over a later
149
+ * `'failed'`.
150
+ */
151
+ export interface HeldCommit {
152
+ transition: ((outcome: CommitOutcome) => void) | undefined;
153
+ settle: ((outcome: CommitOutcome) => void) | undefined;
154
+ }
155
+ export declare function holdCommit(onCommit?: (outcome: CommitOutcome) => void): HeldCommit;
156
+ /**
157
+ * The URL a redirect hop navigates to. A redirect target without a fragment
158
+ * keeps the one the navigation asked for, as a browser does for a 3xx
159
+ * (RFC 9110 §10.2.2): the server never sees the fragment, so a soft redirect
160
+ * — `<Link href="/docs/#install">` answered with `/docs` — cannot carry it.
161
+ */
162
+ export declare function redirectHopUrl(redirectUrl: string, requestedUrl: string): string;
101
163
  /**
102
164
  * Answer the failures an RSC fetch can end on, or report that this one is not
103
165
  * ours to answer.
@@ -121,8 +183,8 @@ export interface NavigationRecoveryDeps {
121
183
  * {@link SpaExits.leaveSpaIfOwned}.
122
184
  */
123
185
  export declare function createNavigationRecovery({ currentOwner, leaveSpaIfOwned, navigate, }: NavigationRecoveryDeps): (error: unknown, owner: RenderOwner, url: string, fromUrl: string,
124
- /** The view transition types of the render that failed. */
125
- types: readonly string[]) => Promise<boolean>;
186
+ /** What a redirect hop inherits from the navigation that failed. */
187
+ hop: RedirectHop) => Promise<boolean>;
126
188
  /**
127
189
  * Perform the full document load.
128
190
  *
@@ -1 +1 @@
1
- {"version":3,"file":"router-effects.d.ts","sourceRoot":"","sources":["../../src/client/router-effects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAI9D,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,uBAAuB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD;;;;;OAKG;IACH,sBAAsB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,aAAa,CA2BzE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAIrE;AAED,MAAM,WAAW,WAAW;IAC1B,oEAAoE;IACpE,YAAY,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IACvC,0DAA0D;IAC1D,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB;;;;;;;;;;;;OAYG;IACH,eAAe,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAErF;;;;;;;;OAQG;IACH,mBAAmB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;CACvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,WAAW,GAAG,QAAQ,CAYjF;AAED,MAAM,WAAW,sBAAsB;IACrC,oEAAoE;IACpE,YAAY,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IACvC,eAAe,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7C;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,YAAY,EACZ,eAAe,EACf,QAAQ,GACT,EAAE,sBAAsB,WAEd,OAAO,SACP,WAAW,OACb,MAAM,WACF,MAAM;AACf,2DAA2D;OACpD,SAAS,MAAM,EAAE,KACvB,OAAO,CAAC,OAAO,CAAC,CAsBpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAS/D"}
1
+ {"version":3,"file":"router-effects.d.ts","sourceRoot":"","sources":["../../src/client/router-effects.ts"],"names":[],"mappings":"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"}
@@ -47,7 +47,9 @@ export interface NavigationPipeline {
47
47
  /** The view transition types the render adds (`NavigationRender`). */
48
48
  types: readonly string[], perform: () => Promise<NavigationPayload>,
49
49
  /** See `NavigationOptions.onCommit`. */
50
- onCommit?: (outcome: CommitOutcome) => void) => Promise<void>;
50
+ onCommit?: (outcome: CommitOutcome) => void,
51
+ /** See `NavigationOptions.onHandOff`. */
52
+ onHandOff?: () => void) => Promise<void>;
51
53
  }
52
54
  /**
53
55
  * Normalize a departing URL to the pathname the server is told about.
@@ -1 +1 @@
1
- {"version":3,"file":"router-pipeline.d.ts","sourceRoot":"","sources":["../../src/client/router-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAuB,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAsB7E,8EAA8E;AAC9E,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG;IAC5C,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAClD,mBAAmB,EACnB,mBAAmB,GAAG,kBAAkB,GAAG,0BAA0B,GAAG,qBAAqB,CAC9F;IACC,IAAI,EAAE,UAAU,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;IAC7B,8EAA8E;IAC9E,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,oEAAoE;IACpE,mBAAmB,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,sBAAsB,EAAE,CACtB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,sBAAsB,KAC5B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChC,mDAAmD;IACnD,mBAAmB,EAAE,CACnB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,WAAW;IAClB,sEAAsE;IACtE,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC;IACzC,wCAAwC;IACxC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,KACxC,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,SAAS,GAAG,SAAS,GAC/B,WAAW,CAEb;AAoCD,wBAAgB,wBAAwB,CAAC,EACvC,IAAI,EACJ,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,GACpB,EAAE,sBAAsB,GAAG,kBAAkB,CAsR7C"}
1
+ {"version":3,"file":"router-pipeline.d.ts","sourceRoot":"","sources":["../../src/client/router-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAuB,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAsB7E,8EAA8E;AAC9E,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG;IAC5C,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAClD,mBAAmB,EACnB,mBAAmB,GAAG,kBAAkB,GAAG,0BAA0B,GAAG,qBAAqB,CAC9F;IACC,IAAI,EAAE,UAAU,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;IAC7B,8EAA8E;IAC9E,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,oEAAoE;IACpE,mBAAmB,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,sBAAsB,EAAE,CACtB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,sBAAsB,KAC5B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChC,mDAAmD;IACnD,mBAAmB,EAAE,CACnB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,WAAW;IAClB,sEAAsE;IACtE,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC;IACzC,wCAAwC;IACxC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI;IAC3C,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,IAAI,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,SAAS,GAAG,SAAS,GAC/B,WAAW,CAEb;AAoCD,wBAAgB,wBAAwB,CAAC,EACvC,IAAI,EACJ,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,GACpB,EAAE,sBAAsB,GAAG,kBAAkB,CAwR7C"}
@@ -76,6 +76,15 @@ export interface NavigationOptions {
76
76
  * which of the three it was.
77
77
  */
78
78
  onCommit?: (outcome: CommitOutcome) => void;
79
+ /**
80
+ * @internal Runs once, synchronously after this navigation's tree is handed
81
+ * to React (its transition scheduled) and before React can commit it. Not
82
+ * at all if the navigation is superseded or fails first; the returned
83
+ * promise settles then. A server action that redirects settles its
84
+ * `useActionState` here, so React commits the action's result and the
85
+ * destination together (TIM-1573).
86
+ */
87
+ onHandOff?: () => void;
79
88
  }
80
89
  /**
81
90
  * Function that decodes an RSC Flight stream into the payload root.
@@ -131,7 +140,9 @@ export interface RouterDeps {
131
140
  */
132
141
  params: ParamsSource, segmentUpdates?: Map<string, unknown>) => unknown) => Promise<TransitionResult<unknown>>,
133
142
  /** See `NavigationOptions.onCommit`; forwarded to `navigateTransition`. */
134
- onCommit?: (outcome: CommitOutcome) => void) => Promise<void>;
143
+ onCommit?: (outcome: CommitOutcome) => void,
144
+ /** See `NavigationOptions.onHandOff`; forwarded to `navigateTransition`. */
145
+ onHandOff?: () => void) => Promise<void>;
135
146
  /**
136
147
  * Save scroll position via the Navigation API's per-entry state.
137
148
  * When provided, used instead of history.replaceState for scroll storage.
@@ -1 +1 @@
1
- {"version":3,"file":"router-types.d.ts","sourceRoot":"","sources":["../../src/client/router-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router-types.d.ts","sourceRoot":"","sources":["../../src/client/router-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC/F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,wBAAwB,GAChC,oBAAoB,GACpB,iBAAiB,GACjB,qBAAqB,GACrB,SAAS,GACT,YAAY,CAAC;AAEjB,0EAA0E;AAC1E,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACrC,wBAAwB,EACxB,oBAAoB,GAAG,iBAAiB,GAAG,qBAAqB,CACjE,CAAC;AAEF,4CAA4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAC5C;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC,wBAAwB,EAAE,SAAS,GAAG,YAAY,CAAC,CAAC;CAC9E;AAED,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAC5C;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC;AAEtE;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7D,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,aAAa,EAAE,MAAM,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,yDAAyD;IACzD,SAAS,EAAE,UAAU,CAAC;IACtB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC5C;;;;;;;;;;;;;;;OAeG;IACH,kBAAkB,EAAE,CAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,WAAW;IAClB,0EAA0E;IAC1E,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,EAAE,CACP,WAAW,EAAE,CACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,eAAe;IACzB;;;;;;OAMG;IACH,MAAM,EAAE,YAAY,EACpB,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,KAClC,OAAO,KACT,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACvC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI;IAC3C,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,IAAI,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;OAGG;IACH,yBAAyB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtD;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC;IAEnC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAEzC;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,iDAAiD;IACjD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,6DAA6D;IAC7D,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD;;;;;OAKG;IACH,cAAc,CACZ,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,MAAM,EAChB,cAAc,CAAC,EAAE,WAAW,EAC5B,SAAS,CAAC,EAAE,iBAAiB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,kDAAkD;IAClD,SAAS,IAAI,OAAO,CAAC;IACrB,4DAA4D;IAC5D,aAAa,IAAI,MAAM,GAAG,IAAI,CAAC;IAC/B,yCAAyC;IACzC,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAClE,6DAA6D;IAC7D,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;OAGG;IACH,KAAK,IAAI,eAAe,CAAC;IACzB;;;;;;OAMG;IACH,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC;IAChD;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5E;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACpC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IACzC;;;;;;OAMG;IACH,YAAY,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC1D;;;;OAIG;IACH,cAAc,IAAI,IAAI,CAAC;IACvB;;;;;;OAMG;IACH,oBAAoB,IAAI,IAAI,CAAC;IAC7B;;;;;;;;OAQG;IACH,gBAAgB,IAAI,IAAI,CAAC;IACzB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,eAAe,CAAC;IAE9C,gEAAgE;IAChE,YAAY,EAAE,YAAY,CAAC;IAC3B,iEAAiE;IACjE,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,qEAAqE;AACrE,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,OAAO,EAAE,OAAO,CAAC;IACjB,sCAAsC;IACtC,MAAM,EAAE,YAAY,CAAC;IACrB,yEAAyE;IACzE,WAAW,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/client/router.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAIV,UAAU,EACV,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAK3B;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,CAmf7D"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/client/router.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAIV,UAAU,EACV,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAK3B;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,CA2gB7D"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * useFormField — state for a form field that needs JavaScript (a combobox, a
3
+ * chip list, a row list), made to behave like a native uncontrolled input.
4
+ *
5
+ * React resets a form after its action settles, so a native field with a
6
+ * `defaultValue` lands on whatever default the page now renders: the action's
7
+ * `submittedValues`, or fresh page data after a redirect. State held in
8
+ * `useState` misses that reset and keeps showing the pre-submit edit. This
9
+ * hook shows `defaultValue` until the user edits, and drops the edit when the
10
+ * form resets, so it lands where the native fields do.
11
+ *
12
+ * See design/08-forms-and-actions.md §"The Form Model".
13
+ */
14
+ import { type Dispatch, type RefCallback, type SetStateAction } from 'react';
15
+ /**
16
+ * State for a field that follows its form's reset.
17
+ *
18
+ * Returns `[value, setValue, ref]`. Attach `ref` to any element inside the
19
+ * `<form>`, and render the value into the form data yourself (usually a
20
+ * hidden input). `value` is `defaultValue` until `setValue` is called, and is
21
+ * `defaultValue` again after the form resets, unless the form cancels its
22
+ * `reset` event. An edit dispatches a bubbling `change` event from the `ref`
23
+ * element after it commits, so a native `change` listener on the form sees it
24
+ * as it sees a native input's (React's synthetic `onChange` reports only
25
+ * inputs, selects and textareas). A reset and a new default fire none, as
26
+ * they fire none for a native input.
27
+ *
28
+ * @example
29
+ * ```tsx
30
+ * // draft: the form's defaults, read from result?.submittedValues ?? pageData
31
+ * const [tags, setTags, ref] = useFormField(draft.tags);
32
+ * <div ref={ref}>
33
+ * <input type="hidden" name="tags" value={tags.join(',')} />
34
+ * <TagPicker value={tags} onChange={setTags} />
35
+ * </div>
36
+ * ```
37
+ */
38
+ export declare function useFormField<T>(defaultValue: T): [value: T, setValue: Dispatch<SetStateAction<T>>, ref: RefCallback<HTMLElement>];
39
+ //# sourceMappingURL=use-form-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-form-field.d.ts","sourceRoot":"","sources":["../../src/client/use-form-field.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAML,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,OAAO,CAAC;AAEf;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,YAAY,EAAE,CAAC,GACd,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAiFlF"}
@@ -54,7 +54,8 @@ export interface TimberUserConfig {
54
54
  forms?: {
55
55
  /**
56
56
  * Strip sensitive fields (passwords, tokens, CVV, SSN, etc.) from the
57
- * `submittedValues` echoed back on validation failure.
57
+ * `submittedValues` echoed back when an action fails (a validation
58
+ * failure, or a `serverError` from a form submission).
58
59
  *
59
60
  * Applied to both the with-JS (`createActionClient`) and no-JS (form POST
60
61
  * re-render) paths. Safe-by-default: the built-in deny-list is active
@@ -1 +1 @@
1
- {"version":3,"file":"config-types.d.ts","sourceRoot":"","sources":["../src/config-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-types.d.ts","sourceRoot":"","sources":["../src/config-types.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,13 +1,13 @@
1
- import { a as reportConfigErrors, i as formatMissingPeers, n as timberDevServer, o as validateConfig, r as checkPeerDependencies } from "./_chunks/dev-server-FKxptbnI.js";
1
+ import { a as reportConfigErrors, i as formatMissingPeers, n as timberDevServer, o as validateConfig, r as checkPeerDependencies } from "./_chunks/dev-server-_9L4KWC-.js";
2
2
  import { i as resolveRenderTimeoutMs } from "./_chunks/render-timeout-DOf_BBcO.js";
3
3
  import { t as writeFileAtomic } from "./_chunks/write-file-atomic-D1qWqHb4.js";
4
- import { d as collectInterceptionRewrites, l as getPrerenderExport, n as scanRoutes } from "./_chunks/scanner-CQt12vE2.js";
4
+ import { d as collectInterceptionRewrites, l as getPrerenderExport, n as scanRoutes } from "./_chunks/scanner-CKAT5gRx.js";
5
5
  import { a as isDynamicMetadataExtension } from "./_chunks/metadata-routes-DSDjM_hJ.js";
6
6
  import { v as swallow } from "./_chunks/logger-CbLdcy-W.js";
7
- import { c as buildDirToRouteMap, n as formatConventionWarnings, o as flushCodegenWrites, r as lintConventions, s as writeRouteCodegen, t as checkAppDirExists } from "./_chunks/convention-lint-BEVW4EID.js";
7
+ import { c as buildDirToRouteMap, n as formatConventionWarnings, o as flushCodegenWrites, r as lintConventions, s as writeRouteCodegen, t as checkAppDirExists } from "./_chunks/convention-lint-B3QEGJX7.js";
8
8
  import { a as loadTimberConfigFile, c as resolveAppDir, d as createNoopTimer, l as resolveBuildDir, n as contextAdapter, o as mergeFileConfig, r as createPluginContext, t as adapterConfig, u as resolveClientJavascript } from "./_chunks/plugin-context-BPBPc3lL.js";
9
9
  import { i as withBasePath, n as normalizeBasePath, t as isRelativeBase } from "./_chunks/base-path-DaQrzbez.js";
10
- import { r as validateSchemaAgainstRoutes, t as collectLeafRoutes } from "./_chunks/walkers-DAT4avhZ.js";
10
+ import { r as validateSchemaAgainstRoutes, t as collectLeafRoutes } from "./_chunks/walkers-DwCXEyRu.js";
11
11
  import { i as poisonPillSource, r as markerFor, t as EXPLICIT_MARKERS } from "./_chunks/poison-rules-DoEhbqaY.js";
12
12
  import { n as rscPayloadPath, t as RSC_PAYLOAD_DIR } from "./_chunks/rsc-payload-path-dffcs4jp.js";
13
13
  import { a as REDIRECTS_FILE, n as detectFsIdentity, o as RESERVED_OUTPUT_PATHS, r as fsKey, t as EXACT_FS_IDENTITY } from "./_chunks/fs-identity-BRKuL215.js";
@@ -9637,7 +9637,7 @@ function timber(config) {
9637
9637
  let environments = envOutDirs;
9638
9638
  if (!isPreview) {
9639
9639
  ctx.timer.start("client-deps-scan");
9640
- const { clientOptimizeDepsEntries } = await import("./_chunks/client-dep-entries-CQwpb8dI.js");
9640
+ const { clientOptimizeDepsEntries } = await import("./_chunks/client-dep-entries-DyDqXOF9.js");
9641
9641
  const entries = await clientOptimizeDepsEntries(resolvedRoot, BROWSER_ENTRY_FILE, buildDir);
9642
9642
  ctx.timer.end("client-deps-scan");
9643
9643
  environments = {