@inertiajs/core 2.2.13 → 2.2.15

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inertiajs/core",
3
- "version": "2.2.13",
3
+ "version": "2.2.15",
4
4
  "license": "MIT",
5
5
  "description": "A framework for creating server-driven single page apps.",
6
6
  "contributors": [
package/types/config.d.ts CHANGED
@@ -6,12 +6,17 @@ type ConfigValue<T, K extends ConfigKeys<T>> = K extends `${infer P}.${infer Res
6
6
  type ConfigSetObject<T> = {
7
7
  [K in ConfigKeys<T>]?: ConfigValue<T, K>;
8
8
  };
9
+ type FirstLevelOptional<T> = {
10
+ [K in keyof T]?: T[K] extends object ? {
11
+ [P in keyof T[K]]?: T[K][P];
12
+ } : T[K];
13
+ };
9
14
  export declare class Config<TConfig extends {} = {}> {
10
- protected config: Partial<TConfig>;
15
+ protected config: FirstLevelOptional<TConfig>;
11
16
  protected defaults: TConfig;
12
17
  constructor(defaults: TConfig);
13
18
  extend<TExtension extends {}>(defaults?: TExtension): Config<TConfig & TExtension>;
14
- replace(newConfig: Partial<TConfig>): void;
19
+ replace(newConfig: FirstLevelOptional<TConfig>): void;
15
20
  get<K extends ConfigKeys<TConfig>>(key: K): ConfigValue<TConfig, K>;
16
21
  set<K extends ConfigKeys<TConfig>>(keyOrValues: K | Partial<ConfigSetObject<TConfig>>, value?: ConfigValue<TConfig, K>): void;
17
22
  }
package/types/router.d.ts CHANGED
@@ -11,7 +11,7 @@ export declare class Router {
11
11
  delete<T extends RequestPayload = RequestPayload>(url: URL | string | UrlMethodPair, options?: Omit<VisitOptions<T>, 'method'>): void;
12
12
  reload<T extends RequestPayload = RequestPayload>(options?: ReloadOptions<T>): void;
13
13
  remember(data: unknown, key?: string): void;
14
- restore(key?: string): unknown;
14
+ restore<T = unknown>(key?: string): T | undefined;
15
15
  on<TEventName extends GlobalEventNames>(type: TEventName, callback: (event: GlobalEvent<TEventName>) => GlobalEventResult<TEventName>): VoidFunction;
16
16
  cancel(): void;
17
17
  cancelAll(): void;
package/types/types.d.ts CHANGED
@@ -41,10 +41,21 @@ export type FormDataConvertible = Array<FormDataConvertible> | {
41
41
  export type FormDataType<T extends object> = {
42
42
  [K in keyof T]: T[K] extends infer U ? U extends FormDataConvertibleValue ? U : U extends (...args: unknown[]) => unknown ? never : U extends object | Array<unknown> ? FormDataType<U> : never : never;
43
43
  };
44
- export type FormDataKeys<T> = T extends Function | FormDataConvertibleValue ? never : T extends Array<unknown> ? number extends T['length'] ? `${number}` | `${number}.${FormDataKeys<T[number]>}` : Extract<keyof T, `${number}`> | {
45
- [Key in Extract<keyof T, `${number}`>]: `${Key & string}.${FormDataKeys<T[Key & string]> & string}`;
46
- }[Extract<keyof T, `${number}`>] : string extends keyof T ? string : Extract<keyof T, string> | {
47
- [Key in Extract<keyof T, string>]: `${Key}.${FormDataKeys<T[Key]> & string}`;
44
+ /**
45
+ * Uses `0 extends 1 & T` to detect `any` type and prevent infinite recursion.
46
+ */
47
+ export type FormDataKeys<T> = T extends Function | FormDataConvertibleValue ? never : T extends unknown[] ? ArrayFormDataKeys<T> : T extends Record<string, unknown> ? ObjectFormDataKeys<T> : never;
48
+ /**
49
+ * Helper type for array form data keys
50
+ */
51
+ type ArrayFormDataKeys<T extends unknown[]> = number extends T['length'] ? `${number}` | (0 extends 1 & T[number] ? never : T[number] extends FormDataConvertibleValue ? never : `${number}.${FormDataKeys<T[number]>}`) : Extract<keyof T, `${number}`> | {
52
+ [Key in Extract<keyof T, `${number}`>]: 0 extends 1 & T[Key] ? never : T[Key] extends FormDataConvertibleValue ? never : `${Key & string}.${FormDataKeys<T[Key & string] & string>}`;
53
+ }[Extract<keyof T, `${number}`>];
54
+ /**
55
+ * Helper type for object form data keys
56
+ */
57
+ type ObjectFormDataKeys<T extends Record<string, unknown>> = string extends keyof T ? string : Extract<keyof T, string> | {
58
+ [Key in Extract<keyof T, string>]: 0 extends 1 & T[Key] ? never : T[Key] extends FormDataConvertibleValue ? never : T[Key] extends any[] ? `${Key}.${FormDataKeys<T[Key]> & string}` : T[Key] extends Record<string, any> ? `${Key}.${FormDataKeys<T[Key]> & string}` : never;
48
59
  }[Extract<keyof T, string>];
49
60
  type PartialFormDataErrors<T> = {
50
61
  [K in string extends keyof T ? string : Extract<keyof FormDataError<T>, string>]?: ErrorValue;
@@ -280,11 +291,16 @@ export type InternalActiveVisit = ActiveVisit & {
280
291
  };
281
292
  export type VisitId = unknown;
282
293
  export type Component = unknown;
294
+ type FirstLevelOptional<T> = {
295
+ [K in keyof T]?: T[K] extends object ? {
296
+ [P in keyof T[K]]?: T[K][P];
297
+ } : T[K];
298
+ };
283
299
  interface CreateInertiaAppOptions<TComponentResolver, TSetupOptions, TSetupReturn, TAdditionalInertiaAppConfig> {
284
300
  resolve: TComponentResolver;
285
301
  setup: (options: TSetupOptions) => TSetupReturn;
286
302
  title?: HeadManagerTitleCallback;
287
- defaults?: Partial<InertiaAppConfig & TAdditionalInertiaAppConfig>;
303
+ defaults?: FirstLevelOptional<InertiaAppConfig & TAdditionalInertiaAppConfig>;
288
304
  }
289
305
  export interface CreateInertiaAppOptionsForCSR<SharedProps extends PageProps, TComponentResolver, TSetupOptions, TSetupReturn, TAdditionalInertiaAppConfig> extends CreateInertiaAppOptions<TComponentResolver, TSetupOptions, TSetupReturn, TAdditionalInertiaAppConfig> {
290
306
  id?: string;
@@ -331,12 +347,13 @@ export type InertiaAppConfig = {
331
347
  recentlySuccessfulDuration: number;
332
348
  };
333
349
  future: {
334
- preserveEqualProps?: boolean;
335
- useDataInertiaHeadAttribute?: boolean;
336
- useDialogForErrorModal?: boolean;
350
+ preserveEqualProps: boolean;
351
+ useDataInertiaHeadAttribute: boolean;
352
+ useDialogForErrorModal: boolean;
337
353
  };
338
354
  prefetch: {
339
355
  cacheFor: CacheForOption | CacheForOption[];
356
+ hoverDelay: number;
340
357
  };
341
358
  visitOptions?: (href: string, options: VisitOptions) => VisitOptions;
342
359
  };