@blacklizard/inertia-express 2.0.0 → 3.0.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.
@@ -1,552 +1,2 @@
1
- //#region src/core/types.d.ts
2
- /**
3
- * Inertia.js v3 protocol types.
4
- *
5
- * Reference: https://inertiajs.com/the-protocol
6
- */
7
- /**
8
- * Free-form bag of page props handed to the client component.
9
- */
10
- type PageProps = Record<string, unknown>;
11
- /**
12
- * The page object returned to the Inertia client (for `X-Inertia` requests)
13
- * or embedded into the initial HTML response on first load.
14
- */
15
- interface InertiaPage<TProps extends PageProps = PageProps> {
16
- component: string;
17
- props: TProps;
18
- url: string;
19
- version: string | null;
20
- /**
21
- * v3: instructs the client to clear browser history state on this visit.
22
- */
23
- clearHistory: boolean;
24
- /**
25
- * v3: instructs the client to encrypt history state for this page.
26
- */
27
- encryptHistory: boolean;
28
- /**
29
- * v3: keys whose props should be deferred and fetched in a follow-up partial reload.
30
- * Grouped by deferred-load group name.
31
- */
32
- deferredProps?: Record<string, string[]>;
33
- /**
34
- * v3: keys whose props should be merged (appended) on the client rather than replaced.
35
- */
36
- mergeProps?: string[];
37
- /**
38
- * v3: keys whose props should be *deep*-merged on the client (recursive merge
39
- * rather than shallow append).
40
- */
41
- deepMergeProps?: string[];
42
- /**
43
- * v3: dotted `prop.field` paths telling the client which field to match on
44
- * when merging arrays of objects (used to dedupe rather than blindly append).
45
- */
46
- matchPropsOn?: string[];
47
- /**
48
- * Read-once flash data, surfaced as a *top-level* page key (sibling to
49
- * `props`) rather than a prop — mirroring inertia-laravel's
50
- * `Response::resolveFlashData`. Omitted entirely when there is no flash.
51
- */
52
- flash?: unknown;
53
- }
54
- /**
55
- * A prop value that is evaluated lazily on every visit.
56
- */
57
- type LazyProp<T = unknown> = (() => T | Promise<T>) & {
58
- __inertia_lazy: true;
59
- };
60
- /**
61
- * A prop value that is only sent on partial reloads when explicitly requested
62
- * (i.e. its key appears in `X-Inertia-Partial-Data`). On full visits the prop
63
- * is omitted entirely.
64
- */
65
- type OptionalProp<T = unknown> = (() => T | Promise<T>) & {
66
- __inertia_optional: true;
67
- };
68
- /**
69
- * A prop that is omitted on the initial visit and instead loaded by an
70
- * automatic follow-up partial reload after the page mounts. Grouped by
71
- * `group` so several deferred props can be loaded in a single round-trip.
72
- */
73
- type DeferredProp<T = unknown> = (() => T | Promise<T>) & {
74
- __inertia_deferred: true;
75
- group: string;
76
- };
77
- /**
78
- * A prop that is always included in the response — on full visits and on
79
- * partial reloads — regardless of `X-Inertia-Partial-Data` /
80
- * `X-Inertia-Partial-Except` filtering.
81
- */
82
- type AlwaysProp<T = unknown> = (() => T | Promise<T>) & {
83
- __inertia_always: true;
84
- };
85
- /**
86
- * A prop value the client should *append* to existing data rather than
87
- * replace (useful for paginated lists).
88
- */
89
- type MergeProp<T = unknown> = T & {
90
- __inertia_merge: true;
91
- __inertia_match_on?: string[];
92
- };
93
- /**
94
- * A prop value the client should recursively *deep*-merge into existing data
95
- * rather than shallow-append.
96
- */
97
- type DeepMergeProp<T = unknown> = T & {
98
- __inertia_deep_merge: true;
99
- __inertia_match_on?: string[];
100
- };
101
- /**
102
- * Any value accepted as a page prop: a plain JSON value, or one of the
103
- * wrapper types ({@link LazyProp}, {@link OptionalProp}, {@link DeferredProp},
104
- * {@link AlwaysProp}, {@link MergeProp}, {@link DeepMergeProp}). Structurally
105
- * this is `unknown` — the wrappers are documented here for discoverability.
106
- */
107
- type PropValue = unknown;
108
- /**
109
- * Globally shared props: either a static object merged into every page, or
110
- * a (possibly async) function that returns one for the current request.
111
- */
112
- type SharedPropsInput<TReq = unknown> = PageProps | ((req: TReq) => PageProps | Promise<PageProps>);
113
- /**
114
- * Per-response overrides for history-related page flags.
115
- */
116
- interface RenderOptions {
117
- /**
118
- * Override `clearHistory` for this response.
119
- */
120
- clearHistory?: boolean;
121
- /**
122
- * Override `encryptHistory` for this response.
123
- */
124
- encryptHistory?: boolean;
125
- }
126
- /**
127
- * Normalized view of an incoming HTTP request from the perspective of the
128
- * Inertia v3 protocol. Produced by {@link parseInertiaRequest}.
129
- */
130
- interface InertiaRequestInfo {
131
- isInertia: boolean;
132
- version: string | null;
133
- partialComponent: string | null;
134
- partialOnly: string[] | null;
135
- partialExcept: string[] | null;
136
- errorBag: string | null;
137
- resetKeys: string[] | null;
138
- method: string;
139
- url: string;
140
- }
141
- /**
142
- * Asset version source: a literal string, `null` (disables checks), or a
143
- * (possibly async) function that derives a version per request.
144
- */
145
- type VersionResolver<TReq = unknown> = string | null | (() => string | null | Promise<string | null>) | ((req: TReq) => string | null | Promise<string | null>);
146
- //#endregion
147
- //#region src/core/cache.d.ts
148
- /**
149
- * Pluggable storage interface for the SSR view cache.
150
- *
151
- * Implementations live outside the core package — see
152
- * `createMemoryCacheStore` in `@blacklizard/inertia-express` and
153
- * `createRedisCacheStore` in `@blacklizard/inertia-cache-redis`.
154
- *
155
- * Values are arbitrary JSON — usually `SsrCacheEntry` (`{ head, body, ... }`).
156
- * The store should not interpret them.
157
- */
158
- interface SsrCacheStore {
159
- get: (key: string) => Promise<SsrCacheEntry | null>;
160
- set: (key: string, value: SsrCacheEntry, ttlSeconds: number) => Promise<void>;
161
- delete: (key: string) => Promise<void>;
162
- }
163
- /**
164
- * What we actually store per cache hit. Includes everything needed to
165
- * reconstruct the HTML response without re-running the SSR renderer.
166
- */
167
- interface SsrCacheEntry {
168
- head: string | string[];
169
- body: string;
170
- bodyIsFullRoot?: boolean;
171
- /** ISO timestamp when this entry was stored. Useful for debugging. */
172
- storedAt: string;
173
- /**
174
- * The page object the entry corresponds to. Lets a custom rootView see
175
- * the same structure on a cache hit as on a fresh render.
176
- */
177
- page: InertiaPage;
178
- }
179
- /**
180
- * Stable JSON encoding: keys sorted recursively, undefined dropped, NaN/Inf
181
- * normalized. Two equal-by-value objects always produce the same string,
182
- * so they hash to the same cache key.
183
- *
184
- * @param value Arbitrary JSON-shaped input.
185
- */
186
- declare function canonicalStringify(value: unknown): string;
187
- /**
188
- * Inputs to {@link computeSsrCacheKey}.
189
- */
190
- interface ComputeCacheKeyInput {
191
- /** Cache namespace, e.g. `"inertia:ssr"`. */
192
- prefix: string;
193
- /** Asset version. Becomes part of the key so deploys auto-invalidate. */
194
- version: string | null;
195
- /** Component name being rendered. */
196
- component: string;
197
- /** Final, fully-resolved props (post shared-merge, post-lazy evaluation). */
198
- props: PageProps;
199
- /** Optional extra discriminator (locale, theme, A/B bucket, etc.). */
200
- discriminator?: string;
201
- }
202
- /**
203
- * Build the cache key for an SSR cache entry.
204
- *
205
- * Shape: `${prefix}:${version}:${component}:${sha256(props[+discriminator])}`
206
- *
207
- * Including `version` in the key namespace means a deploy that bumps the
208
- * asset version atomically retires every old key — no flush, no race.
209
- *
210
- * @param input Prefix, version, component, resolved props, optional discriminator.
211
- */
212
- declare function computeSsrCacheKey(input: ComputeCacheKeyInput): string;
213
- //#endregion
214
- //#region src/core/errors.d.ts
215
- /**
216
- * Flat map of `field → first error message`, the shape the Inertia client
217
- * expects under `props.errors`.
218
- */
219
- type ValidationErrors = Record<string, string>;
220
- /**
221
- * Apply error-bag scoping to a flat errors object, matching the official
222
- * Inertia behavior. When `bag` is set, errors are namespaced under
223
- * `props.errors[bag]`. When `bag` is null, errors live at `props.errors`.
224
- *
225
- * @param errors Flat field-to-message map.
226
- * @param bag Optional error-bag name (e.g. `"createUser"`); null for top-level.
227
- */
228
- declare function scopeErrors(errors: ValidationErrors, bag: string | null): PageProps;
229
- //#endregion
230
- //#region src/core/headers.d.ts
231
- /**
232
- * Canonical Inertia v3 protocol header names.
233
- *
234
- * The Inertia client sends these headers on every visit. The server uses
235
- * them to decide between a full HTML response and a JSON page response,
236
- * and to scope partial reloads.
237
- */
238
- declare const INERTIA_HEADERS: {
239
- readonly inertia: "x-inertia";
240
- readonly version: "x-inertia-version";
241
- readonly partialComponent: "x-inertia-partial-component";
242
- readonly partialData: "x-inertia-partial-data";
243
- readonly partialExcept: "x-inertia-partial-except";
244
- readonly errorBag: "x-inertia-error-bag";
245
- readonly reset: "x-inertia-reset";
246
- readonly location: "x-inertia-location";
247
- };
248
- type HeaderRecord = Record<string, string | string[] | undefined>;
249
- /**
250
- * Parse a request's headers into a normalized {@link InertiaRequestInfo}.
251
- *
252
- * @param input Headers, HTTP method, and request URL. Method is uppercased in
253
- * the returned object; the URL is passed through unchanged.
254
- */
255
- declare function parseInertiaRequest(input: {
256
- headers: HeaderRecord;
257
- method: string;
258
- url: string;
259
- }): InertiaRequestInfo;
260
- //#endregion
261
- //#region src/core/html.d.ts
262
- /**
263
- * Encode an Inertia page object for embedding inside a
264
- * `<script type="application/json" data-page="...">` tag — the Inertia v3
265
- * initial-page transport that the client reads via `getInitialPageFromDOM`.
266
- *
267
- * Every `<` is replaced with its JSON unicode escape so the payload cannot
268
- * terminate the surrounding `</script>` element or open an HTML comment. The
269
- * escape is transparent — JSON.parse decodes it back to `<`.
270
- *
271
- * @param page Resolved Inertia page object.
272
- */
273
- declare function encodePageScript(page: InertiaPage): string;
274
- /**
275
- * Inputs to {@link renderDefaultHtml}.
276
- */
277
- interface DefaultRootViewInput {
278
- page: InertiaPage;
279
- /** Optional `<title>` for the document. */
280
- title?: string;
281
- /** Optional <head> content (meta tags, links, etc.). */
282
- head?: string;
283
- /** ID of the SPA root element. Defaults to `app`. */
284
- rootId?: string;
285
- /** Path to the client entry script, e.g. `/assets/app.js`. */
286
- scriptSrc?: string;
287
- /**
288
- * Pre-rendered SSR HTML for the root element's *inner* content. When set,
289
- * the inner HTML of the root div is replaced with this string so the
290
- * client hydrates over server-rendered markup.
291
- */
292
- ssrBody?: string;
293
- /**
294
- * Pre-rendered SSR HTML representing the entire root element. When set,
295
- * `ssrBody`, `rootId`, and the page `<script>` tag are ignored — the
296
- * provided string is inserted into `<body>` as-is. Use this when your
297
- * SSR renderer already returns the full root element + page script (the
298
- * Inertia v3 SSR servers do).
299
- */
300
- ssrFull?: string;
301
- }
302
- /**
303
- * Minimal default HTML shell for use when no custom root view is provided.
304
- * Real apps should plug in a template engine (pug, ejs, react-dom/server,
305
- * etc.) and embed `encodePageScript(page)` themselves.
306
- *
307
- * The initial page object is emitted as a
308
- * `<script type="application/json" data-page="...">` tag, the Inertia v3
309
- * transport that the client reads on boot.
310
- *
311
- * @param input Page object plus optional title/head/rootId/scriptSrc/SSR markup
312
- * — see {@link DefaultRootViewInput}.
313
- */
314
- declare function renderDefaultHtml(input: DefaultRootViewInput): string;
315
- /**
316
- * Inputs to {@link renderErrorPage}.
317
- */
318
- interface ErrorPageInput {
319
- /** HTTP status code to surface to the user. */
320
- status: number;
321
- /** Optional message; falls back to a default for the status, then a generic line. */
322
- message?: string;
323
- }
324
- /**
325
- * Render a minimal, SPA-less standalone HTML error page. Used as the hard
326
- * fallback when no client `Error` component can be resolved (e.g. a plain
327
- * browser load, or an SSR/render failure on the Inertia path), so a user
328
- * never receives a raw JSON error or a blank page.
329
- *
330
- * @param input HTTP status plus an optional override message — see {@link ErrorPageInput}.
331
- */
332
- declare function renderErrorPage(input: ErrorPageInput): string;
333
- //#endregion
334
- //#region src/core/page.d.ts
335
- /**
336
- * Inputs to {@link createPage} — the fields of an {@link InertiaPage} plus
337
- * optional history flags and v3 prop-key metadata.
338
- */
339
- interface CreatePageInput<TProps extends PageProps = PageProps> {
340
- component: string;
341
- props: TProps;
342
- url: string;
343
- version: string | null;
344
- clearHistory?: boolean;
345
- encryptHistory?: boolean;
346
- deferredProps?: Record<string, string[]>;
347
- mergeProps?: string[];
348
- deepMergeProps?: string[];
349
- matchPropsOn?: string[];
350
- flash?: unknown;
351
- }
352
- /**
353
- * Build a normalized Inertia v3 page object. `clearHistory` and `encryptHistory`
354
- * default to `false`. Empty/absent `deferredProps` / `mergeProps` /
355
- * `deepMergeProps` / `matchPropsOn` are dropped so the JSON over the wire stays
356
- * compact. `flash` is emitted as a top-level key only when it carries data
357
- * (non-nullish, and a non-empty object when object-valued) — mirroring
358
- * inertia-laravel's `$flash ? ['flash' => $flash] : []`.
359
- *
360
- * @param input Required page fields plus the optional v3 extras.
361
- */
362
- declare function createPage<TProps extends PageProps>(input: CreatePageInput<TProps>): InertiaPage<TProps>;
363
- //#endregion
364
- //#region src/core/props.d.ts
365
- /**
366
- * Wrap a value-producing function as a "lazy" prop.
367
- *
368
- * Lazy props are evaluated on every visit (full or partial) when included.
369
- * They are NOT skipped on the initial visit — use {@link optional} for that.
370
- *
371
- * @param fn Producer called (and awaited) when the prop is included.
372
- */
373
- declare function lazy<T>(fn: () => T | Promise<T>): LazyProp<T>;
374
- /**
375
- * Wrap a value-producing function as an "optional" prop.
376
- *
377
- * Optional props are omitted from the initial response and only included
378
- * when explicitly requested via `X-Inertia-Partial-Data`.
379
- *
380
- * @param fn Producer called (and awaited) on partial reloads that request the key.
381
- */
382
- declare function optional<T>(fn: () => T | Promise<T>): OptionalProp<T>;
383
- /**
384
- * Wrap a value-producing function as a "deferred" prop.
385
- *
386
- * Deferred props are omitted from the initial visit. The client receives
387
- * the list of deferred prop keys (grouped by `group`) in the page object
388
- * and triggers an automatic partial reload to fetch them.
389
- *
390
- * @param fn Producer called (and awaited) on the deferred follow-up reload.
391
- * @param group Load-group name; keys in the same group are fetched in one round-trip.
392
- */
393
- declare function defer<T>(fn: () => T | Promise<T>, group?: string): DeferredProp<T>;
394
- /**
395
- * Wrap a value-producing function as an "always" prop.
396
- *
397
- * Always props are included on every response — full visits and partial
398
- * reloads alike — regardless of `X-Inertia-Partial-Data` /
399
- * `X-Inertia-Partial-Except` filtering.
400
- *
401
- * @param fn Producer called (and awaited) on every visit.
402
- */
403
- declare function always<T>(fn: () => T | Promise<T>): AlwaysProp<T>;
404
- /**
405
- * Mark a value as a "merge" prop. The Inertia client will append the new
406
- * value to the existing prop (typically used for paginated arrays).
407
- *
408
- * Pass `matchOn` (a field name or list of field names) to have the client
409
- * dedupe array items on that field instead of blindly appending.
410
- *
411
- * @param value Object or array to tag (mutated in place via non-enumerable properties).
412
- * @param matchOn Optional field name(s) to dedupe on.
413
- */
414
- declare function merge<T extends object>(value: T, matchOn?: string | string[]): MergeProp<T>;
415
- /**
416
- * Mark a value as a "deep merge" prop. The Inertia client recursively merges
417
- * the new value into the existing prop rather than shallow-appending.
418
- *
419
- * Pass `matchOn` (a field name or list of field names) to have the client
420
- * dedupe array items on that field.
421
- *
422
- * @param value Object or array to tag (mutated in place via non-enumerable properties).
423
- * @param matchOn Optional field name(s) to dedupe on.
424
- */
425
- declare function deepMerge<T extends object>(value: T, matchOn?: string | string[]): DeepMergeProp<T>;
426
- /**
427
- * Inputs to {@link resolveProps}.
428
- */
429
- interface ResolvePropsInput {
430
- /** Props passed to `res.inertia(component, props)`. */
431
- props: PageProps;
432
- /** Globally shared props after evaluation. */
433
- shared: PageProps;
434
- /** The component name being rendered. */
435
- component: string;
436
- /** Parsed Inertia request info. */
437
- request: InertiaRequestInfo;
438
- }
439
- /**
440
- * Result of {@link resolveProps}: the evaluated props plus the per-key
441
- * metadata the caller needs to populate the page object.
442
- */
443
- interface ResolvePropsResult {
444
- props: PageProps;
445
- /** Deferred prop key map by group, for the initial visit. */
446
- deferred: Record<string, string[]>;
447
- /** Shallow-merge prop key list. */
448
- merge: string[];
449
- /** Deep-merge prop key list. */
450
- deepMerge: string[];
451
- /** Dotted `prop.field` match-on paths for merge/deep-merge props. */
452
- matchOn: string[];
453
- }
454
- /**
455
- * Combine shared + page props, then apply partial-reload filtering and
456
- * lazy/optional/deferred evaluation per the Inertia v3 protocol.
457
- *
458
- * Resolution order matches the official adapters:
459
- * 1. Merge shared and page props (page wins on collision).
460
- * 2. Determine if this is a partial reload for the same component.
461
- * 3. For non-partial visits: drop optional and deferred props; keep everything
462
- * else (lazy props are evaluated).
463
- * 4. For partial visits: keep only keys in `partialOnly` (if set), then drop
464
- * keys in `partialExcept`. Optional props are now eligible.
465
- * 5. Evaluate every remaining function-shaped prop
466
- * (lazy/optional/deferred/always) by calling it and awaiting the result.
467
- * Independent props are evaluated in parallel via `Promise.all`.
468
- * 6. Collect merge / deep-merge / match-on keys, excluding any key the client
469
- * listed in `X-Inertia-Reset` — those props are reset (replaced) rather
470
- * than appended.
471
- *
472
- * @param input Page + shared props, the component name, and parsed request info.
473
- */
474
- declare function resolveProps(input: ResolvePropsInput): Promise<ResolvePropsResult>;
475
- //#endregion
476
- //#region src/core/redirects.d.ts
477
- /**
478
- * Status code Inertia uses for "soft" redirects after PUT/PATCH/DELETE so the
479
- * follow-up GET is forced to also be a GET on every browser.
480
- */
481
- declare const INERTIA_REDIRECT_STATUS = 303;
482
- /**
483
- * Status code used for the `X-Inertia-Location` external redirect
484
- * mechanism. The client intercepts the 409 and performs a window.location
485
- * navigation rather than a fetch.
486
- */
487
- declare const INERTIA_LOCATION_STATUS = 409;
488
- /**
489
- * Decide which status code to use for a redirect produced by an Inertia
490
- * request. After a non-GET/HEAD form submission the response must be 303
491
- * so the client's follow-up request becomes a GET.
492
- *
493
- * @param method HTTP method of the inbound request (case-insensitive).
494
- * @param fallback Status code to use for GET/HEAD/POST. Defaults to 302.
495
- */
496
- declare function inertiaRedirectStatus(method: string, fallback?: number): number;
497
- //#endregion
498
- //#region src/core/render.d.ts
499
- /**
500
- * Inputs to {@link buildPage}. `TReq` is the framework's request type so
501
- * `shared` (when a function) receives the correct argument shape.
502
- */
503
- interface BuildPageInput<TReq = unknown> {
504
- component: string;
505
- props: PageProps;
506
- request: InertiaRequestInfo;
507
- req: TReq;
508
- shared: SharedPropsInput<TReq> | undefined;
509
- version: string | null;
510
- options?: RenderOptions;
511
- /**
512
- * Read-once flash data to emit as a top-level page key. Resolved by the
513
- * caller (e.g. from the session); omitted from the page when nullish/empty.
514
- */
515
- flash?: unknown;
516
- }
517
- /**
518
- * Build the final {@link InertiaPage} object given a controller's component
519
- * + props, the request info, and configured shared props / version.
520
- *
521
- * Returned page is suitable for either:
522
- * - JSON serialization on `X-Inertia` requests, or
523
- * - embedding into the root HTML view via a `<script>` page tag.
524
- *
525
- * @param input Component, props, parsed request, shared resolver, version, and
526
- * optional `clearHistory` / `encryptHistory` flags.
527
- */
528
- declare function buildPage<TReq>(input: BuildPageInput<TReq>): Promise<InertiaPage>;
529
- //#endregion
530
- //#region src/core/versioning.d.ts
531
- /**
532
- * Resolve a version value (string, async function, or null) against a request.
533
- *
534
- * Returns `null` when no version is configured — in which case asset version
535
- * mismatch detection is disabled.
536
- *
537
- * @param resolver Static version string, a (possibly async) function, or undefined.
538
- * @param req Request passed to the resolver when it is a function.
539
- */
540
- declare function resolveVersion<TReq>(resolver: VersionResolver<TReq> | undefined, req: TReq): Promise<string | null>;
541
- /**
542
- * Returns true if the client's version (`X-Inertia-Version`) does not match
543
- * the server's current version. Mismatches on GET requests should trigger a
544
- * full reload via the `X-Inertia-Location` mechanism.
545
- *
546
- * @param serverVersion Currently configured server version; `null` disables checks.
547
- * @param clientVersion Value of the `X-Inertia-Version` header; `null` is treated as empty.
548
- */
549
- declare function isVersionMismatch(serverVersion: string | null, clientVersion: string | null): boolean;
550
- //#endregion
551
- export { type AlwaysProp, BuildPageInput, ComputeCacheKeyInput, CreatePageInput, type DeepMergeProp, DefaultRootViewInput, type DeferredProp, ErrorPageInput, INERTIA_HEADERS, INERTIA_LOCATION_STATUS, INERTIA_REDIRECT_STATUS, type InertiaPage, type InertiaRequestInfo, type LazyProp, type MergeProp, type OptionalProp, type PageProps, type PropValue, type RenderOptions, ResolvePropsInput, ResolvePropsResult, type SharedPropsInput, SsrCacheEntry, SsrCacheStore, ValidationErrors, type VersionResolver, always, buildPage, canonicalStringify, computeSsrCacheKey, createPage, deepMerge, defer, encodePageScript, inertiaRedirectStatus, isVersionMismatch, lazy, merge, optional, parseInertiaRequest, renderDefaultHtml, renderErrorPage, resolveProps, resolveVersion, scopeErrors };
552
- //# sourceMappingURL=index.d.ts.map
1
+ import { $ as OnceMetadata, A as leadsToOnly, B as renderErrorPage, C as once, D as PropKind, E as PropDescriptor, F as createPage, G as unpackDotProps, H as parseInertiaRequest, I as DefaultRootViewInput, J as SsrCacheStore, K as ComputeCacheKeyInput, L as ErrorPageInput, M as matchesOnly, N as pathIsSameOrDescendant, O as PropSource, P as CreatePageInput, Q as InertiaRequestInfo, R as encodePageScript, S as merge, T as scroll, U as ValidationErrors, V as INERTIA_HEADERS, W as scopeErrors, X as computeSsrCacheKey, Y as canonicalStringify, Z as InertiaPage, _ as ScrollProp, a as INERTIA_LOCATION_STATUS, at as SharedPropsInput, b as defer, c as PropsResolver, d as resolveProps, et as PageProps, f as AlwaysProp, g as OptionalProp, h as OnceProp, i as buildPage, it as ScrollMetadata, j as matchesExcept, k as ScrollOptions, l as ResolvePropsInput, m as MergeProp, n as resolveVersion, nt as RenderOptions, o as INERTIA_REDIRECT_STATUS, ot as VersionResolver, p as DeferProp, q as SsrCacheEntry, r as BuildPageInput, rt as RescueHandler, s as inertiaRedirectStatus, t as isVersionMismatch, tt as PropsMetadata, u as ResolvePropsResult, v as always, w as optional, x as isPropDescriptor, y as deepMerge, z as renderDefaultHtml } from "../index-PWaujyMo.js";
2
+ export { AlwaysProp, BuildPageInput, ComputeCacheKeyInput, CreatePageInput, DefaultRootViewInput, DeferProp, ErrorPageInput, INERTIA_HEADERS, INERTIA_LOCATION_STATUS, INERTIA_REDIRECT_STATUS, type InertiaPage, type InertiaRequestInfo, MergeProp, type OnceMetadata, OnceProp, OptionalProp, type PageProps, PropDescriptor, type PropKind, type PropSource, type PropsMetadata, PropsResolver, type RenderOptions, type RescueHandler, ResolvePropsInput, ResolvePropsResult, type ScrollMetadata, type ScrollOptions, ScrollProp, type SharedPropsInput, SsrCacheEntry, SsrCacheStore, ValidationErrors, type VersionResolver, always, buildPage, canonicalStringify, computeSsrCacheKey, createPage, deepMerge, defer, encodePageScript, inertiaRedirectStatus, isPropDescriptor, isVersionMismatch, leadsToOnly, matchesExcept, matchesOnly, merge, once, optional, parseInertiaRequest, pathIsSameOrDescendant, renderDefaultHtml, renderErrorPage, resolveProps, resolveVersion, scopeErrors, scroll, unpackDotProps };