@valbuild/shared 0.150.20 → 0.152.0

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 (36) hide show
  1. package/CHANGELOG.md +268 -0
  2. package/client/dist/valbuild-shared-client.cjs.dev.js +1 -1
  3. package/client/dist/valbuild-shared-client.cjs.prod.js +1 -1
  4. package/client/dist/valbuild-shared-client.esm.js +1 -1
  5. package/dist/declarations/src/internal/ApiRoutes.d.ts +270 -2
  6. package/dist/declarations/src/internal/aiTools/toolNames.d.ts +1 -1
  7. package/dist/declarations/src/internal/content/applyChain.d.ts +124 -0
  8. package/dist/declarations/src/internal/content/buildRegistry.d.ts +36 -0
  9. package/dist/declarations/src/internal/content/jsonValuesOps.d.ts +110 -0
  10. package/dist/declarations/src/internal/content/moduleStore.d.ts +119 -0
  11. package/dist/declarations/src/internal/content/source.d.ts +71 -0
  12. package/dist/declarations/src/internal/content/version.d.ts +151 -0
  13. package/dist/declarations/src/internal/index.d.ts +8 -1
  14. package/dist/declarations/src/internal/publish/projectSource.d.ts +28 -0
  15. package/dist/declarations/src/internal/search/searchIndex.d.ts +34 -3
  16. package/dist/declarations/src/internal/server/types.d.ts +9 -1
  17. package/dist/declarations/src/internal/sketchpad/sketchFormat.d.ts +41 -6
  18. package/dist/declarations/src/internal/valCanvasProtocol.d.ts +46 -0
  19. package/dist/declarations/src/internal/valClientHeader.d.ts +36 -0
  20. package/dist/declarations/src/publish/callJson.d.ts +15 -0
  21. package/dist/declarations/src/publish/jobClient.d.ts +7 -1
  22. package/dist/declarations/src/publish/publishClient.d.ts +2 -14
  23. package/dist/{getSitemapTree-fef55872.esm.js → getSitemapTree-3c1b9e57.esm.js} +18 -2
  24. package/dist/{getSitemapTree-6dfa2f4e.cjs.dev.js → getSitemapTree-59c5ed5d.cjs.dev.js} +18 -2
  25. package/dist/{getSitemapTree-8a04f3cf.cjs.prod.js → getSitemapTree-6b9024d1.cjs.prod.js} +18 -2
  26. package/dist/{protocol-d0efb8cd.cjs.dev.js → projectSource-2a58ef15.cjs.dev.js} +221 -0
  27. package/dist/{protocol-55cfa3cf.esm.js → projectSource-7f0ee83c.esm.js} +216 -1
  28. package/dist/{protocol-b1055ef0.cjs.prod.js → projectSource-ed6aec39.cjs.prod.js} +221 -0
  29. package/internal/dist/valbuild-shared-internal.cjs.dev.js +2521 -192
  30. package/internal/dist/valbuild-shared-internal.cjs.prod.js +2521 -192
  31. package/internal/dist/valbuild-shared-internal.esm.js +2463 -175
  32. package/package.json +3 -3
  33. package/publish/dist/valbuild-shared-publish.cjs.dev.js +48 -155
  34. package/publish/dist/valbuild-shared-publish.cjs.prod.js +48 -155
  35. package/publish/dist/valbuild-shared-publish.esm.js +17 -123
  36. package/dist/declarations/src/internal/server/requestScopedMemo.d.ts +0 -49
package/CHANGELOG.md CHANGED
@@ -1,5 +1,273 @@
1
1
  # @valbuild/shared
2
2
 
3
+ ## 0.152.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#1015](https://github.com/valbuild/val/pull/1015) [`08a3977`](https://github.com/valbuild/val/commit/08a39779dbe43702a72ae57cbf8cf29b14e64672) Thanks [@freekh](https://github.com/freekh)! - The Sketchpad covers several pages, builds what it shows, and can be linked to the content.
8
+
9
+ - **Route dividers.** A sketchpad is no longer about one page. A `--- /about` line starts the part about a page, so one sketch can cover a page and the pages it links to. Press a route to see that page beside the sketch, in the Studio's own live preview, which follows edits as they are made. A divider's menu changes its page, or adds a new one from a page type the site has (`/blog/[slug]`). A route the site has no page type for is allowed too, and is marked as needing code.
10
+ - **Start from a page.** An empty sketchpad offers to start from a page. The assistant writes that page into it, images and all, and changes nothing.
11
+ - **Build.** The button that sent the sketchpad to the assistant is now **Build**. It sends the sketchpad as a card in the chat (press it to open the sketchpad), with a request to change the pages to match the sketch. It is disabled while the sketch is empty.
12
+ - **Images that exist.** A box shows an image from a gallery, from the site's content, or one uploaded to the chat, and the picker offers exactly those, with search and Upload (which puts the file in the chat first). A box naming any other image says so. When the assistant writes a sketch with an image that is not in the project, the write is refused. Images are named by their content path (`/public/val/hero.webp`) and shown where the site serves them, including uploads that are not published yet.
13
+ - **Block types.** A box's kind is a combobox of the kinds of section the site's pages have, read from the schema. Any other word is allowed, and is marked as a new type that needs code.
14
+ - **Drag.** Blocks, rows, columns and images can be dragged to a new place. Columns share a row equally, so the width controls are gone.
15
+ - **Highlights.** The assistant can point at blocks, in a colour and with a note (for example, the ones that need code), with `highlight_sketchpad_blocks`. The highlights can be cleared, by the person or by the assistant.
16
+ - **Linked text (a try-out).** A heading or paragraph can be linked to a plain text field with `{field: <source path>}`. Typing in it then changes that field, as typing in the field would. The block shows what it is linked to and has an **Unlink** button. When the field was changed elsewhere, the block says so and offers the field's text. A sketchpad the assistant starts from a page links its text this way.
17
+ - **Converting images.** The assistant can convert an image in the chat to WebP, or scale it down, with `convert_session_image`, using the same encoder as the Studio's uploads.
18
+
19
+ ### Patch Changes
20
+
21
+ - [#1013](https://github.com/valbuild/val/pull/1013) [`3bb76d7`](https://github.com/valbuild/val/commit/3bb76d74d82b499aa15023838d63018a70fd7ce7) Thanks [@freekh](https://github.com/freekh)! - A save that the content service fails to take no longer looks like a successful one.
22
+
23
+ Before, when the content service answered a save with a server error (or could not be reached), the Studio treated the edit as invalid and dropped it: the field went back to its old value, and the status bar kept saying "All changes saved". Now:
24
+
25
+ - **Your edit is kept.** The field keeps what you typed.
26
+ - **The Studio says the save failed.** The status bar shows "Could not save" (never "All changes saved" while a save has failed or is still pending), and a notice says which service failed, with the service's own message under **Details**.
27
+ - **Try again** sends the same save again. The Studio also retries by itself in the background, so if you leave the tab open your changes are saved once the service is back.
28
+
29
+ Pressing Publish while a save has failed now says what failed, in the service's words, with a **Save again** button, instead of "Check the connection and try again".
30
+
31
+ Saves that the service refuses because of your plan, and saves that conflict with someone else's change, work as before.
32
+
33
+ Error messages from the content service also stop blaming your network. "Could not get your changes. It is most likely due to a network issue. Check your network connection" was shown even when the service had answered with a 500. These messages now say what actually happened (the service answered with an error, refused the request, or could not be reached from your site's server) and name the service. The status code and the service's response are kept as details for whoever needs to look into it. Publish failures now also show the service's own message, where they used to say "Unknown error".
34
+
35
+ ## 0.151.0
36
+
37
+ ### Patch Changes
38
+
39
+ - [#1006](https://github.com/valbuild/val/pull/1006) [`59faf33`](https://github.com/valbuild/val/commit/59faf332418af836617e09150fb89007e468394e) Thanks [@freekh](https://github.com/freekh)! - Code mode now works in a hosted Studio. In a proposal, the `</>` beside the
40
+ proposal's name turns code mode on for everyone in it, and the assistant can
41
+ then change the proposal's code. On the site, the `</>` lists the open
42
+ proposals and opens the one you choose with code mode on.
43
+
44
+ - **Nothing you typed is lost when code changes.** Turning code mode on saves
45
+ every pending change first, and so does each of the assistant's code
46
+ changes, so a field the assistant adds can be filled in and stays filled
47
+ in. Turning code mode off discards nothing.
48
+ - **Each person chooses what they see.** While code mode is on you can stay
49
+ in the content editor, or see the proposal's preview and its code changes.
50
+ The proposal's menu says who turned code mode on, and when.
51
+ - **The assistant asks.** With code mode off, its code tools refuse and say
52
+ who turned it off; it asks for code mode with a button in the chat instead.
53
+ - **Save is the one main button** in a proposal, and also updates the
54
+ preview when the code changed. Its menu holds **Commit**, in a project
55
+ connected to git, which puts the proposal on its git branch as one commit,
56
+ and **Publish**, which commits and then merges into the site. Both use the
57
+ project's commit message setting. In code mode, Save saves even when
58
+ content has validation errors; Publish is still refused until they are
59
+ fixed. If someone else pushed to the proposal's branch, Commit says who and
60
+ when, and links to their commit, instead of committing over it.
61
+ - The "schema changed, reload" dialog is not shown in code mode, where the
62
+ schema changes with every build.
63
+
64
+ - [#1006](https://github.com/valbuild/val/pull/1006) [`abf6148`](https://github.com/valbuild/val/commit/abf6148a255abe795620fede66006462bccb8322) Thanks [@freekh](https://github.com/freekh)! - The assistant's code tools now see a publish of the site made while the Studio
65
+ is open. They read the site's code once and kept that copy for as long as the
66
+ page was open, so a file published in the meantime was shown as it was before.
67
+ They now ask on every call, and the content service answers "unchanged" without
68
+ sending the code again unless it did change.
69
+
70
+ - [#1006](https://github.com/valbuild/val/pull/1006) [`1f08b65`](https://github.com/valbuild/val/commit/1f08b6517adeac27fd9e43c7bf726976daefee3b) Thanks [@freekh](https://github.com/freekh)! - Search and a library entry's "used by" no longer freeze the Studio on a large `.jsonValues()` record.
71
+
72
+ Both have to see every entry of the records they look in. The Studio used to ask for those entries one request at a time and rebuild the record after each one, which grew with the square of the record's size: about a second for 1,000 entries, and most of a minute for 10,000. Now:
73
+
74
+ - entries are requested many to a request (`GET /json` with a list of keys), with at most three such requests at a time, so what you open meanwhile is not queued behind them;
75
+ - what arrives is applied a batch at a time, with the browser free to handle clicks and typing between batches;
76
+ - search and "used by" show a progress bar with how many entries are loaded, show what they have found so far, and offer **Try again** if some entries could not be loaded;
77
+ - closing search or leaving the entry stops the requests that have not been sent;
78
+ - the search index adds only the entries that arrived, rather than re-reading the whole record each time.
79
+
80
+ A record's rows on screen are now also fetched in one request rather than one per row.
81
+
82
+ - [#1006](https://github.com/valbuild/val/pull/1006) [`04bae7e`](https://github.com/valbuild/val/commit/04bae7e54e6b191fc70f45e6f10bbce820b6069c) Thanks [@freekh](https://github.com/freekh)! - **No more "A new version has been deployed" dialog.** A Studio that is open
83
+ while the site is deployed no longer stops you with a dialog you can only
84
+ answer by reloading. Instead:
85
+
86
+ - **On Val's hosting**, the Studio takes the new build's fields in where you
87
+ are, without reloading: a field the deploy added can be filled in at once,
88
+ and the assistant's chat, the page you were on and your unsaved edits stay
89
+ as they were. Each build now carries its content schemas as a small file of
90
+ its own beside its scripts, which the Studio loads.
91
+ - **Anywhere else** (a Next.js site, or a TanStack Start site hosted
92
+ somewhere else), the Studio reloads itself a few seconds after the deploy,
93
+ once everything you typed has been saved. Nothing is lost: where you were is
94
+ in the address, and every edit is on the server.
95
+ - **In local development** nothing changes: your dev server's hot reload
96
+ brings the new fields, as before.
97
+
98
+ When a deploy upgrades Val itself, the Studio reloads itself the same way,
99
+ since its own code changed too.
100
+
101
+ - [#1006](https://github.com/valbuild/val/pull/1006) [`4fd35f3`](https://github.com/valbuild/val/commit/4fd35f321fe510cfb5b9b679ca14ce2b9e852d40) Thanks [@freekh](https://github.com/freekh)! - Unpublished edits are now applied the same way everywhere the server reads
102
+ them, and a few cases that showed something different from what Publish would
103
+ save are fixed:
104
+
105
+ - A field you emptied to `null`, `""`, `0` or `false` no longer jumps back to
106
+ its published value at your next edit.
107
+ - When an edit cannot be applied, later edits to `.jsonValues()` entries stop
108
+ there too, instead of showing an entry the page will never get.
109
+ - An image or file added to a `.jsonValues()` entry no longer fails the whole
110
+ entry when the upload comes before the field in the edit.
111
+ - Clearing a nullable `.jsonValues()` record removes its entries from drafts
112
+ as well.
113
+
114
+ Long chains of unpublished edits are also much faster to read: a draft with
115
+ 650 edits went from about 580 ms to about 110 ms.
116
+
117
+ - [#1006](https://github.com/valbuild/val/pull/1006) [`346e6fd`](https://github.com/valbuild/val/commit/346e6fdc8e242bf826ab66a729eacd9f8d4be1a6) Thanks [@freekh](https://github.com/freekh)! - **Draft pages read what was edited, not the whole site.** A page in draft
118
+ mode used to make Val's server read every module, apply every pending
119
+ change, and preview and validate the whole project on every request -- and
120
+ then ask again for each `.jsonValues()` entry it showed. Now there is one
121
+ copy of the draft per process, made once per change and shared by every
122
+ editor and every request:
123
+
124
+ - A module nobody edited costs nothing: the page reads its own build, as a
125
+ visitor's does.
126
+ - A request asks one cheap question -- has anything changed? -- once, and
127
+ the draft is only re-read when it has. An edit is applied once, to the
128
+ version before it, however many pages read it afterwards.
129
+ - `fetchVal`, `fetchValKey`, `fetchValRoute`, `fetchValRouteUrl` and
130
+ `fetchValDraft` (Next.js and TanStack Start alike) and Val's API routes
131
+ read that one copy, so a save through the API is seen by every reader at
132
+ once. Before, each kept its own, and a publish moved only the copy of the
133
+ server that handled it: in a host that keeps its content in memory, a
134
+ draft page read through `fetchValKey` or `fetchValRoute` went on showing
135
+ the content from before the publish.
136
+ - The MCP tools (`initValMcp`) read the same copy in local development and
137
+ on Val's hosting, where Val's options come from your config and the
138
+ environment. `initValMcp` takes no patch store or source files of its
139
+ own, so in a host that keeps its content in memory it keeps a copy of its
140
+ own, as before.
141
+ - If `initValServer` and `initValContent` (or `initValRsc`) are given
142
+ different options for the same `val.modules` (a different patch store,
143
+ say), they keep separate copies, and Val logs a warning saying which
144
+ options differ.
145
+
146
+ On a site of 20 MB of content a draft read went from about half a second per
147
+ request to well under a millisecond once the draft is in memory, and the
148
+ memory it holds grows with what was edited rather than with the size of the
149
+ site. Hosted sites in proxy mode ask the content service one small question
150
+ per request instead of reading every pending change; with a content service
151
+ that predates it, Val reads the pending changes as before.
152
+
153
+ `ValDraft` (what `fetchValDraft` returns and `<ValProvider draft>` takes)
154
+ has a new optional `versions` field, filled in by the server: the page uses
155
+ it to tell that what the Studio sends is what it already shows, without
156
+ comparing the content. Nothing to change in your app.
157
+
158
+ **Changed:** `PUT /api/val/sources/~` no longer computes previews or
159
+ validates the content (the Studio does both itself, and `/api/val/validate`
160
+ checks a module on request); its `validate_sources` and
161
+ `validate_binary_files` flags are accepted and ignored.
162
+
163
+ **Deprecated, and removed in the next release.** These stay for one release
164
+ only so that a Studio, a page or a server of the previous release keeps
165
+ working while a deploy rolls out. Nothing in this release uses them; if
166
+ your own code calls any of them, move off it now:
167
+
168
+ - `PUT /api/val/sources/~`, the whole route. This release's Studio reads
169
+ `GET /api/val/manifest` and `GET /api/val/modules/~<path>`, and the draft
170
+ readers and MCP read in-process.
171
+ - The `source` field of the overlay's `source-update` event and the canvas's
172
+ `sourceUpdate` message, and a page's support for an event that carries
173
+ only `source` (this release sends `read` beside it).
174
+ - `ValDraft.base`: not sent and not read; the type stays one release so
175
+ code written against the previous one still compiles.
176
+ - `/api/val/stat`'s `sourcesSha` and `schemaSha`: the next release's Studio
177
+ stops depending on them, and the release after it stops sending them.
178
+
179
+ - [#1006](https://github.com/valbuild/val/pull/1006) [`b0ad7f4`](https://github.com/valbuild/val/commit/b0ad7f496f2dc0384b8df847b1d77becf617b7bf) Thanks [@freekh](https://github.com/freekh)! - A draft page now catches up with an edit as soon as the server has it, instead
180
+ of on a timer.
181
+
182
+ - **The page settles faster, and without the 10 second fallback.** Content your
183
+ page reads on the server (a TanStack Start loader, a Next.js server component)
184
+ is refreshed when the editor's change has been saved, once per saved change.
185
+ It used to be refreshed the moment you typed — before the change was saved,
186
+ so the refresh often came back without it — and then again every 10 seconds
187
+ for half a minute in case it had. That safety refresh is gone, and so are the
188
+ extra requests it made while you edited. Another editor's change refreshes
189
+ the page too, once the server has it. While a deploy rolls out, a Studio of
190
+ the previous release (which never says it has saved) still refreshes the
191
+ page as each change arrives, as before.
192
+ - **Next.js: `ValProvider` takes an optional `draft` prop**, as
193
+ `@valbuild/tanstack`'s does: the editor's draft, read on the server for the
194
+ request. With it, the server renders the draft and the browser hydrates the
195
+ same thing, so a draft page no longer shows the published text first, and a
196
+ page that exists only as an unpublished change is found on the first render
197
+ instead of answering 404. Without it, nothing changes. See "The `draft` prop"
198
+ in the `@valbuild/next` README.
199
+ - **Next.js: `initValRsc` returns `fetchValDraft`**, which reads that draft:
200
+ pass `draft={await fetchValDraft()}` to `ValProvider` in your root layout. It
201
+ returns `null` unless the request is in draft mode, after one `draftMode()`
202
+ lookup and no other work, so visitors pay nothing and a static page stays
203
+ static. It reads the draft the way `@valbuild/tanstack/server`'s
204
+ `fetchValDraft` does and returns the same type, `ValDraft | null`, which
205
+ is now exported from `@valbuild/next` and `@valbuild/next/rsc` too.
206
+ - **`suspend` waits for the editor's changes properly.** With `suspend` on
207
+ `ValProvider`, a page could be told it had everything before the editor had
208
+ sent the pending change it needed, and render the published content first —
209
+ for a page that exists only as an unpublished change, a 404. It now waits
210
+ until the change is there.
211
+ - A draft page whose draft was discarded or published before the editor's
212
+ overlay or canvas connected now shows what the editor has, instead of keeping
213
+ the draft it was rendered with -- an edit inside a `.jsonValues()` entry
214
+ included.
215
+ - Turning draft mode on or off refreshes the page once. In development (React's
216
+ `StrictMode`) it could refresh twice, and Next.js could log "Cannot call
217
+ startTransition while rendering" while the page refreshed.
218
+
219
+ - [#1006](https://github.com/valbuild/val/pull/1006) [`3aff85e`](https://github.com/valbuild/val/commit/3aff85e9a40cb0879285b86fd41fa8167db1bb5e) Thanks [@freekh](https://github.com/freekh)! - **A JSON Patch `test` op now fails when it does not hold.** A `test` op is a
220
+ precondition: "only apply this patch if the value at this path is still
221
+ this". Val used to accept every `test` op without checking it, so a patch
222
+ that should have been refused was applied anyway.
223
+
224
+ Now a `test` op fails its patch when the path does not exist, or when the
225
+ value there is not deeply equal to the one given (objects and arrays are
226
+ compared all the way down, and `0`, `""`, `false` and `null` are all
227
+ different from each other). The ops after it are not applied. This holds in
228
+ every place Val applies a patch -- the Studio's drafts, a draft page, the
229
+ content tools for MCP, and Publish -- so a patch a draft shows is a patch
230
+ Publish accepts.
231
+
232
+ Nothing in the Studio, the CLI or the content tools writes `test` ops of
233
+ its own, so this only changes anything for a patch you, or an agent through
234
+ the MCP `create_patch` tool, wrote with a `test` op in it: one whose test
235
+ does not hold is now refused with `Test failed` (or, for a path that does
236
+ not exist, `Path refers to non-existing object/array`) instead of applied.
237
+
238
+ - [#1006](https://github.com/valbuild/val/pull/1006) [`809873c`](https://github.com/valbuild/val/commit/809873cd7dd2c17e261b7e92716397a6bb4d6e56) Thanks [@freekh](https://github.com/freekh)! - Every content reader in `@valbuild/next` and `@valbuild/tanstack` — `fetchVal`,
239
+ `useVal`, the key and route readers, on the server and in the browser — now
240
+ loads content the same way, so they can no longer disagree about which content
241
+ wins. Nothing you call changes. What you may notice:
242
+
243
+ - `useValRoute` on a `.jsonValues()` router loads only the entry for the
244
+ current route. It used to load every entry of the record first.
245
+ `useValRouteUrl` and `fetchValRouteUrl` load none at all: a URL does not need
246
+ them.
247
+ - In development, an edited `*.val.json` entry shows its new content after a
248
+ hot reload. The hooks kept the entry they had loaded before it.
249
+ - Next.js: `useValKey` no longer shows the published entry of a nullable
250
+ `.jsonValues()` record that a draft has set to `null`, nor anything for an
251
+ entry named like a built-in object property (such as `toString`) that the
252
+ draft does not have.
253
+ - With `suspend` on `ValProvider`, `useValKey` now waits for draft mode and the
254
+ editor's changes too, as `useVal` and `useValRoute` already did.
255
+ - When one entry of a `.jsonValues()` record cannot be loaded, `useVal` logs
256
+ the error and renders the others, as `fetchVal` already did, instead of
257
+ failing the whole component.
258
+
259
+ - [#1006](https://github.com/valbuild/val/pull/1006) [`4dc1481`](https://github.com/valbuild/val/commit/4dc1481cfb7cad4072bdbeaeb51b2b2ad43a9f5d) Thanks [@freekh](https://github.com/freekh)! - The Studio now shows each module as your server has it, by version, with only your own unsaved edits on top.
260
+
261
+ - **Publishing is faster.** After a publish, or when your site serves content published without a build, the Studio used to download every module's content before it showed anything new. It now reads only the modules that changed, one at a time: in our measurements with a 1,000-entry `.jsonValues()` record, the Studio was ready again after a publish in about 35 ms instead of 300–800 ms.
262
+ - **No flicker of old content on a draft page.** For up to a minute after a deploy, a request can still reach the build before it; that build now says it has been replaced (when Val's content service can tell it), and the Studio asks again rather than taking its content for the current one. In local development the same holds after you change a `.val.ts`: an answer from the code before the change is no longer taken for the new code's, so a page in draft mode no longer shows the new text, then the old, then the new again.
263
+ - **Another editor's change appears as your server has it.** The Studio no longer replays other people's changes on top of the content it loaded with, so a change made against a newer deployment can no longer show up twice or out of order.
264
+ - **Less sent with every draft page.** A page in draft mode no longer embeds the whole published content of a site served without a rebuild for the Studio to start from; `ValDraft.base` is deprecated and no longer filled in.
265
+ - **When the editor opens on a page that already shows your changes,** the Studio no longer sends them to the page again.
266
+
267
+ - [#1011](https://github.com/valbuild/val/pull/1011) [`4edd384`](https://github.com/valbuild/val/commit/4edd384cf04a25836df77aae6d88378f8750a761) Thanks [@freekh](https://github.com/freekh)! - Requests that `@valbuild/server` and the `val` CLI send to Val Build now carry an `x-val-client` header naming the package and its version, for example `x-val-client: @valbuild/server@0.150.24`. It lets Val Build see which versions are still in use, and which old endpoints they still call, before anything is retired. The header holds no credential and nothing about your site's visitors, and nothing changes in how your app behaves.
268
+ - Updated dependencies [[`a325152`](https://github.com/valbuild/val/commit/a325152856a881faec84c112fcf226828739f563), [`f5110c9`](https://github.com/valbuild/val/commit/f5110c9aa2a0a6ff0586e9f0f2a29eb1baef557d), [`3aff85e`](https://github.com/valbuild/val/commit/3aff85e9a40cb0879285b86fd41fa8167db1bb5e)]:
269
+ - @valbuild/core@0.151.0
270
+
3
271
  ## 0.150.20
4
272
 
5
273
  ### Patch Changes
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var getSitemapTree = require('../../dist/getSitemapTree-6dfa2f4e.cjs.dev.js');
5
+ var getSitemapTree = require('../../dist/getSitemapTree-59c5ed5d.cjs.dev.js');
6
6
  require('../../dist/createForOfIteratorHelper-f2d7ac6d.cjs.dev.js');
7
7
  require('@valbuild/core');
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var getSitemapTree = require('../../dist/getSitemapTree-8a04f3cf.cjs.prod.js');
5
+ var getSitemapTree = require('../../dist/getSitemapTree-6b9024d1.cjs.prod.js');
6
6
  require('../../dist/createForOfIteratorHelper-9ca2078d.cjs.prod.js');
7
7
  require('@valbuild/core');
8
8
 
@@ -1,3 +1,3 @@
1
- export { D as DEFAULT_CANVAS_SELECTION, e as DEFAULT_CANVAS_SELECTION_SOFT, Q as QUICK_PREVIEW_PARAM, v as QUICK_PREVIEW_RENDER_SCRIPT, u as QUICK_PREVIEW_SERVICE_WORKER_PATH, z as QUICK_PREVIEW_SERVICE_WORKER_SOURCE, x as QUICK_PREVIEW_STORE_MESSAGE, b as VAL_AI_SESSION_STORAGE_KEY, d as VAL_CANVAS_MESSAGE, c as VAL_CANVAS_PARAM, V as VAL_CONFIG_SESSION_STORAGE_KEY, a as VAL_THEME_SESSION_STORAGE_KEY, j as attachElementPicker, k as createPickerOverlay, h as describeElement, l as elementLabel, q as findBySelector, G as formatRoutePattern, H as getNextAppRouterSourceFolder, L as getPageRouterSitemapTree, J as getPageRouterSourceFolder, M as getPatternFromModuleFilePath, I as getTanStackRouterSourceFolder, E as isDesignTabOrigin, y as isQuickPreviewFiles, K as isTanStackRoutesFolder, g as isValCanvasFrame, i as isValCanvasPageMessage, f as isValCanvasStudioMessage, m as modifierLabel, p as pageLocationOf, F as parseRoutePattern, C as quickPreviewSiteOrigin, o as readPageSnapshot, r as restoreScroll, t as screenshotPage, s as startElementPicking, A as storeQuickPreview, n as watchPageLocation, B as withQuickPreviewParam, w as withValCanvasParam } from '../../dist/getSitemapTree-fef55872.esm.js';
1
+ export { D as DEFAULT_CANVAS_SELECTION, e as DEFAULT_CANVAS_SELECTION_SOFT, Q as QUICK_PREVIEW_PARAM, v as QUICK_PREVIEW_RENDER_SCRIPT, u as QUICK_PREVIEW_SERVICE_WORKER_PATH, z as QUICK_PREVIEW_SERVICE_WORKER_SOURCE, x as QUICK_PREVIEW_STORE_MESSAGE, b as VAL_AI_SESSION_STORAGE_KEY, d as VAL_CANVAS_MESSAGE, c as VAL_CANVAS_PARAM, V as VAL_CONFIG_SESSION_STORAGE_KEY, a as VAL_THEME_SESSION_STORAGE_KEY, j as attachElementPicker, k as createPickerOverlay, h as describeElement, l as elementLabel, q as findBySelector, G as formatRoutePattern, H as getNextAppRouterSourceFolder, L as getPageRouterSitemapTree, J as getPageRouterSourceFolder, M as getPatternFromModuleFilePath, I as getTanStackRouterSourceFolder, E as isDesignTabOrigin, y as isQuickPreviewFiles, K as isTanStackRoutesFolder, g as isValCanvasFrame, i as isValCanvasPageMessage, f as isValCanvasStudioMessage, m as modifierLabel, p as pageLocationOf, F as parseRoutePattern, C as quickPreviewSiteOrigin, o as readPageSnapshot, r as restoreScroll, t as screenshotPage, s as startElementPicking, A as storeQuickPreview, n as watchPageLocation, B as withQuickPreviewParam, w as withValCanvasParam } from '../../dist/getSitemapTree-3c1b9e57.esm.js';
2
2
  import '../../dist/createForOfIteratorHelper-9b80f1a2.esm.js';
3
3
  import '@valbuild/core';