gemi 0.71.0 → 0.72.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/dist/{chunk-ksxes55e.js → chunk-481t5ewt.js} +1 -1
  2. package/dist/{chunk-ybtwp81a.js → chunk-c8jt128x.js} +1 -1
  3. package/dist/{chunk-ep1jte2d.js → chunk-fpx20wm3.js} +2 -2
  4. package/dist/{chunk-ep1jte2d.js.map → chunk-fpx20wm3.js.map} +1 -1
  5. package/dist/chunks/{ThemeProvider-Bz-y1g2i.js → ThemeProvider-D9v0VAbY.js} +53 -4
  6. package/dist/chunks/ThemeProvider-D9v0VAbY.js.map +1 -0
  7. package/dist/client/Mutation.d.ts +8 -1
  8. package/dist/client/Mutation.d.ts.map +1 -1
  9. package/dist/client/MutationError.d.ts +109 -0
  10. package/dist/client/MutationError.d.ts.map +1 -0
  11. package/dist/client/QueryResource.d.ts +24 -0
  12. package/dist/client/QueryResource.d.ts.map +1 -1
  13. package/dist/client/auth/useForgotPassword.d.ts +1 -1
  14. package/dist/client/auth/useResetPassword.d.ts +1 -1
  15. package/dist/client/auth/useSignIn.d.ts +1 -1
  16. package/dist/client/auth/useSignOut.d.ts +1 -1
  17. package/dist/client/auth/useSignUp.d.ts +1 -1
  18. package/dist/client/index.d.ts +4 -0
  19. package/dist/client/index.d.ts.map +1 -1
  20. package/dist/client/index.js +284 -16
  21. package/dist/client/index.js.map +1 -1
  22. package/dist/client/useInfiniteQuery.d.ts +59 -0
  23. package/dist/client/useInfiniteQuery.d.ts.map +1 -0
  24. package/dist/client/useMutate.d.ts +7 -1
  25. package/dist/client/useMutate.d.ts.map +1 -1
  26. package/dist/client/useMutation.d.ts +6 -21
  27. package/dist/client/useMutation.d.ts.map +1 -1
  28. package/dist/client/useQuery.d.ts +4 -4
  29. package/dist/client/useQuery.d.ts.map +1 -1
  30. package/dist/server/index.js +1 -1
  31. package/dist/testing/index.js +1 -1
  32. package/package.json +1 -1
  33. package/skills/gemi-react-best-practices/rules/controller-throw-framework-errors.md +3 -3
  34. package/dist/chunks/ThemeProvider-Bz-y1g2i.js.map +0 -1
  35. /package/dist/{chunk-ksxes55e.js.map → chunk-481t5ewt.js.map} +0 -0
  36. /package/dist/{chunk-ybtwp81a.js.map → chunk-c8jt128x.js.map} +0 -0
@@ -0,0 +1,59 @@
1
+ import type { NestedPrettify } from "../utils/type";
2
+ import { type Config, type Data, type GetRPC, type Options } from "./useQuery";
3
+ type Page<T extends keyof GetRPC> = NestedPrettify<Data<T>>;
4
+ /** What a page's `getNextPage` points at: a page number or a cursor. */
5
+ type PageCursor = string | number;
6
+ /** A page that is an array is its own list of items. */
7
+ type DefaultItem<P> = P extends readonly (infer U)[] ? U : never;
8
+ export interface InfiniteQueryConfig<P, Item> extends Omit<Config<P>, "lazy" | "refetchUntil" | "fallbackData"> {
9
+ /**
10
+ * The next page's cursor, read off the pages loaded so far — usually a page
11
+ * number, e.g. `(last, pages) => last.length === 48 ? pages.length + 1 :
12
+ * null`. `null`/`undefined`/`false` means there is no next page, which is
13
+ * what `hasMore` reports.
14
+ */
15
+ getNextPage: (lastPage: P, pages: P[]) => PageCursor | null | undefined | false;
16
+ /**
17
+ * The search key the cursor is sent under (default `"page"`). The first
18
+ * page is requested *without* it, so it is the same cached variant a plain
19
+ * `useQuery` — and a `Query.prefetch` — with the same `search` reads.
20
+ */
21
+ pageParam?: string;
22
+ /** A page's rows. Defaults to the page itself when it is an array. */
23
+ getItems?: (page: P) => readonly Item[];
24
+ /**
25
+ * An item's identity. With it, a row that shifts into the next page (an
26
+ * insert or delete between two offset-based fetches) is kept at its first
27
+ * position instead of being rendered twice.
28
+ */
29
+ getKey?: (item: Item) => unknown;
30
+ }
31
+ export interface InfiniteQueryReturn<P, Item> {
32
+ /** Every loaded page, in order. Empty until the first page has data. */
33
+ pages: P[];
34
+ /** The pages' rows flattened, de-duplicated by `getKey` when given. */
35
+ items: Item[];
36
+ /** Whether `getNextPage` points past the last loaded page. */
37
+ hasMore: boolean;
38
+ /**
39
+ * Load the next page. A no-op while one is loading or when there is none;
40
+ * when the last requested page failed, it retries that page.
41
+ */
42
+ fetchNextPage: () => void;
43
+ isFetchingNextPage: boolean;
44
+ /** The first page's `loading` — see `useQuery`. */
45
+ loading: boolean;
46
+ error: Record<string, unknown> | null;
47
+ /** Refetch every loaded page. */
48
+ refetch: () => void;
49
+ }
50
+ /**
51
+ * A paged list whose pages live in the query cache: page 1 is a plain
52
+ * `useQuery` (so it suspends, SSR-renders and `Query.prefetch`es exactly like
53
+ * one), and each further page is the same path with `pageParam` added to the
54
+ * search — its own cached variant, which `useMutate` updates and invalidates
55
+ * like any other. Changing `params` or `search` starts over from page 1.
56
+ */
57
+ export declare function useInfiniteQuery<T extends keyof GetRPC, Item = DefaultItem<Page<T>>>(url: T, options: Options<T> | undefined, config: InfiniteQueryConfig<Page<T>, Item>): InfiniteQueryReturn<Page<T>, Item>;
58
+ export {};
59
+ //# sourceMappingURL=useInfiniteQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInfiniteQuery.d.ts","sourceRoot":"","sources":["../../client/useInfiniteQuery.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAOpD,OAAO,EAEL,KAAK,MAAM,EACX,KAAK,IAAI,EACT,KAAK,MAAM,EACX,KAAK,OAAO,EACb,MAAM,YAAY,CAAC;AAEpB,KAAK,IAAI,CAAC,CAAC,SAAS,MAAM,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5D,wEAAwE;AACxE,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAElC,wDAAwD;AACxD,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAEjE,MAAM,WAAW,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAE,SAAQ,IAAI,CACxD,MAAM,CAAC,CAAC,CAAC,EACT,MAAM,GAAG,cAAc,GAAG,cAAc,CACzC;IACC;;;;;OAKG;IACH,WAAW,EAAE,CACX,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,CAAC,EAAE,KACP,UAAU,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,CAAC;IAC3C;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,IAAI,EAAE,CAAC;IACxC;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC,EAAE,IAAI;IAC1C,wEAAwE;IACxE,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,uEAAuE;IACvE,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,8DAA8D;IAC9D,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mDAAmD;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,iCAAiC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAsCD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,SAAS,MAAM,MAAM,EACtB,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAE3B,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,EAC/B,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GACzC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAsLpC"}
@@ -6,10 +6,16 @@ type GetRPC = {
6
6
  [K in keyof RPC as K extends `GET:${infer P}` ? P : never]: RPC[K];
7
7
  };
8
8
  type Data<T extends keyof GetRPC> = GetRPC[T] extends ApiRouterHandler<any, infer Data, any> ? UnwrapPromise<Data> : never;
9
+ /**
10
+ * Which cached search variants of the path a call updates: one search object
11
+ * (the variant a `useQuery` with that `search` reads), or a predicate over
12
+ * every variant the cache holds for the path.
13
+ */
14
+ type SearchTarget = Record<string, any> | ((search: URLSearchParams) => boolean);
9
15
  export declare function useMutate(): <T extends keyof GetRPC>(options: {
10
16
  path: T;
11
17
  params?: UrlParser<`${T & string}`>;
12
- search?: Record<string, any>;
18
+ search?: SearchTarget;
13
19
  }, fn?: ((data: NestedPrettify<Data<T>>) => NestedPrettify<Data<T>>) | NestedPrettify<Data<T>>) => any;
14
20
  export {};
15
21
  //# sourceMappingURL=useMutate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMutate.d.ts","sourceRoot":"","sources":["../../client/useMutate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGzC,KAAK,MAAM,GAAG;KACX,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,OAAO,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;CACnE,CAAC;AAEF,KAAK,IAAI,CAAC,CAAC,SAAS,MAAM,MAAM,IAC9B,MAAM,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,GAAG,CAAC,GACpD,aAAa,CAAC,IAAI,CAAC,GACnB,KAAK,CAAC;AAEZ,wBAAgB,SAAS,KAEA,CAAC,SAAS,MAAM,MAAM,EAC3C,SAAS;IACP,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B,EACD,KACI,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAC5D,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SA+C9B"}
1
+ {"version":3,"file":"useMutate.d.ts","sourceRoot":"","sources":["../../client/useMutate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGzC,KAAK,MAAM,GAAG;KACX,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,OAAO,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;CACnE,CAAC;AAEF,KAAK,IAAI,CAAC,CAAC,SAAS,MAAM,MAAM,IAC9B,MAAM,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,GAAG,CAAC,GACpD,aAAa,CAAC,IAAI,CAAC,GACnB,KAAK,CAAC;AAEZ;;;;GAIG;AACH,KAAK,YAAY,GACb,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACnB,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC;AAqC3C,wBAAgB,SAAS,KAEA,CAAC,SAAS,MAAM,MAAM,EAC3C,SAAS;IACP,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,EACD,KACI,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAC5D,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAqC9B"}
@@ -2,6 +2,7 @@ import type { RPC } from "./rpc";
2
2
  import type { ApiRouterHandler } from "../http/ApiRouter";
3
3
  import type { UnwrapPromise } from "../utils/type";
4
4
  import type { UrlParser } from "./types";
5
+ import type { MutationError } from "./MutationError";
5
6
  type Methods = {
6
7
  POST: {
7
8
  [K in keyof RPC as K extends `POST:${infer P}` ? P : never]: RPC[K];
@@ -24,22 +25,6 @@ type Config<T> = {
24
25
  };
25
26
  type Data<M extends keyof Methods, K extends keyof Methods[M]> = Methods[M][K] extends ApiRouterHandler<any, infer T, any> ? UnwrapPromise<T> : never;
26
27
  type Body<M extends keyof Methods, K extends keyof Methods[M]> = Methods[M][K] extends ApiRouterHandler<infer T, any, any> ? T : never;
27
- type MutationError = {
28
- kind: "validation_error";
29
- messages: Record<string, any>;
30
- } | {
31
- kind: "form_error";
32
- message: string;
33
- } | {
34
- kind: "server_error";
35
- message: string;
36
- } | {
37
- kind: "not_authorized";
38
- message: string;
39
- } | {
40
- kind: "insufficient_permissions";
41
- message: string;
42
- };
43
28
  type ParseParams<T> = UrlParser<`${T & string}`>;
44
29
  export declare function useMutation<M extends keyof Methods, K extends keyof Methods[M], T = Data<M, K>, U = Body<M, K>>(method: M, url: K, ...args: [
45
30
  options?: {
@@ -49,7 +34,7 @@ export declare function useMutation<M extends keyof Methods, K extends keyof Met
49
34
  config?: Partial<Config<T>>
50
35
  ]): {
51
36
  data: T;
52
- error: any;
37
+ error: MutationError;
53
38
  loading: boolean;
54
39
  formData: FormData;
55
40
  cancel: () => void;
@@ -65,7 +50,7 @@ export declare function usePost<K extends keyof Methods["POST"], T = Data<"POST"
65
50
  config?: Partial<Config<T>>
66
51
  ]): {
67
52
  data: Data<"POST", K>;
68
- error: any;
53
+ error: MutationError;
69
54
  loading: boolean;
70
55
  formData: FormData;
71
56
  cancel: () => void;
@@ -81,7 +66,7 @@ export declare function usePut<K extends keyof Methods["PUT"], T = Data<"PUT", K
81
66
  config?: Partial<Config<T>>
82
67
  ]): {
83
68
  data: Data<"PUT", K>;
84
- error: any;
69
+ error: MutationError;
85
70
  loading: boolean;
86
71
  formData: FormData;
87
72
  cancel: () => void;
@@ -97,7 +82,7 @@ export declare function usePatch<K extends keyof Methods["PATCH"], T = Data<"PAT
97
82
  config?: Partial<Config<T>>
98
83
  ]): {
99
84
  data: Data<"PATCH", K>;
100
- error: any;
85
+ error: MutationError;
101
86
  loading: boolean;
102
87
  formData: FormData;
103
88
  cancel: () => void;
@@ -113,7 +98,7 @@ export declare function useDelete<K extends keyof Methods["DELETE"], T = Data<"D
113
98
  config?: Partial<Config<T>>
114
99
  ]): {
115
100
  data: Data<"DELETE", K>;
116
- error: any;
101
+ error: MutationError;
117
102
  loading: boolean;
118
103
  formData: FormData;
119
104
  cancel: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useMutation.d.ts","sourceRoot":"","sources":["../../client/useMutation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMutation.d.ts","sourceRoot":"","sources":["../../client/useMutation.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { NestedPrettify } from "../utils/type";
3
3
  import type { ApiRouterHandler } from "../http/ApiRouter";
4
4
  import type { UnwrapPromise } from "../utils/type";
5
5
  import type { UrlParser } from "./types";
6
- interface Config<T> {
6
+ export interface Config<T> {
7
7
  fallbackData?: T;
8
8
  /**
9
9
  * When true (the default), a variant change keeps rendering the previous
@@ -45,13 +45,13 @@ interface Config<T> {
45
45
  suspense?: boolean;
46
46
  refetchUntil?: (data: T, duration: number) => number;
47
47
  }
48
- type GetRPC = {
48
+ export type GetRPC = {
49
49
  [K in keyof RPC as K extends `GET:${infer P}` ? P : never]: RPC[K];
50
50
  };
51
- type Data<T extends keyof GetRPC> = GetRPC[T] extends ApiRouterHandler<any, infer Data, any> ? UnwrapPromise<Data> : never;
51
+ export type Data<T extends keyof GetRPC> = GetRPC[T] extends ApiRouterHandler<any, infer Data, any> ? UnwrapPromise<Data> : never;
52
52
  type Error = Record<string, unknown>;
53
53
  export type QueryResult<T extends keyof GetRPC> = NestedPrettify<Data<T> & {}>;
54
- type Options<T extends keyof GetRPC> = {
54
+ export type Options<T extends keyof GetRPC> = {
55
55
  search?: Record<string, string | number | boolean | null>;
56
56
  params?: Partial<UrlParser<`${T & string}`>>;
57
57
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../client/useQuery.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAKnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAqBzC,UAAU,MAAM,CAAC,CAAC;IAChB,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CACtD;AAmBD,KAAK,MAAM,GAAG;KACX,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,OAAO,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;CACnE,CAAC;AAEF,KAAK,IAAI,CAAC,CAAC,SAAS,MAAM,MAAM,IAC9B,MAAM,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,GAAG,CAAC,GACpD,aAAa,CAAC,IAAI,CAAC,GACnB,KAAK,CAAC;AASZ,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAOrC,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAE/E,KAAK,OAAO,CAAC,CAAC,SAAS,MAAM,MAAM,IAAI;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;CAC9C,CAAC;AAEF,UAAU,WAAW,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE;QACN,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACrC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;KACzE,CAAC;IACF,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,UAAU,cAAc,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACtE,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,IAAI,CAAC,EAAE,KAAK,CAAC;CACd;AAED,oFAAoF;AACpF,UAAU,sBAAsB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAC9C,MAAM,CAAC,CAAC,CAAC,EACT,UAAU,GAAG,MAAM,CACpB;IACC,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC;CACd;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,iBAAiB;CAAG;AAErC,KAAK,WAAW,CAAC,CAAC,SAAS,MAAM,MAAM,IAAI,iBAAiB,SAAS;IACnE,QAAQ,EAAE,KAAK,CAAC;CACjB,GACG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GACnC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5B,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,MAAM,EAC7C,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,EAC/B,MAAM,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GACtC,WAAW,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,MAAM,EAC7C,GAAG,EAAE,CAAC,EACN,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EACpB,MAAM,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAC/B,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,MAAM,EAC7C,GAAG,EAAE,CAAC,EACN,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EACpB,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GACvB,WAAW,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAyBvD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,MAAM,EACtD,GAAG,EAAE,CAAC,EACN,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GACxD,WAAW,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAocrD"}
1
+ {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../client/useQuery.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{wa as Y}from"../chunk-8z37k28d.js";import{xa as L}from"../chunk-ev1pe2ry.js";import{qg as b,sg as C,tg as Q,ug as V,vg as X}from"../chunk-b2bpwb1d.js";import{zg as K}from"../chunk-25a65e4r.js";import"../chunk-ryynt7wx.js";import{Gg as J}from"../chunk-5fxqzs72.js";class Z{app;instrumentation;handleSignals;server;stopping;settings;constructor(z){this.app=new L({kernel:z.kernel}),this.handleSignals=z.handleSignals??!0,this.instrumentation=V(z.instrumentation??((B,$)=>$(B)))}async start(){process.env.ROOT_DIR=K();let z=Bun.env.NODE_ENV==="production";if(z){if(this.handleSignals)X(()=>this.stop());this.settings=C()}if(await this.app.waitForBoot(),z){let{httpProd:B}=await import("../chunk-ybtwp81a.js");this.server=await B(this.app,this.instrumentation.bind(this))}else{Y();let{httpDev:B}=await import("../chunk-ksxes55e.js");this.server=await B(this.app,this.instrumentation.bind(this))}return this.server}stop(z={}){return this.stopping??=Q({server:this.server,shutdownProviders:(B)=>this.app.shutdown(B),settings:{...this.settings??C(),...z}}),this.stopping}}export{b as isShuttingDown,Z as Server};
2
+ import{wa as Y}from"../chunk-8z37k28d.js";import{xa as L}from"../chunk-ev1pe2ry.js";import{qg as b,sg as C,tg as Q,ug as V,vg as X}from"../chunk-b2bpwb1d.js";import{zg as K}from"../chunk-25a65e4r.js";import"../chunk-ryynt7wx.js";import{Gg as J}from"../chunk-5fxqzs72.js";class Z{app;instrumentation;handleSignals;server;stopping;settings;constructor(z){this.app=new L({kernel:z.kernel}),this.handleSignals=z.handleSignals??!0,this.instrumentation=V(z.instrumentation??((B,$)=>$(B)))}async start(){process.env.ROOT_DIR=K();let z=Bun.env.NODE_ENV==="production";if(z){if(this.handleSignals)X(()=>this.stop());this.settings=C()}if(await this.app.waitForBoot(),z){let{httpProd:B}=await import("../chunk-c8jt128x.js");this.server=await B(this.app,this.instrumentation.bind(this))}else{Y();let{httpDev:B}=await import("../chunk-481t5ewt.js");this.server=await B(this.app,this.instrumentation.bind(this))}return this.server}stop(z={}){return this.stopping??=Q({server:this.server,shutdownProviders:(B)=>this.app.shutdown(B),settings:{...this.settings??C(),...z}}),this.stopping}}export{b as isShuttingDown,Z as Server};
3
3
 
4
4
  //# debugId=C4BB0C9EA167352964756E2164756E21
@@ -1,4 +1,4 @@
1
- import { E as ServerDataContext, F as applyParams, L as QueryManagerContext, M as Action, N as createMemoryHistory, P as toVariantKey, R as QueryManagerProvider, T as I18nProvider, V as Subject, a as m, c as ClientRouterContext, j as ProgressManager, o as RouteTransitionProvider, r as WebSocketContext, t as ThemeProvider } from "../chunks/ThemeProvider-Bz-y1g2i.js";
1
+ import { E as ServerDataContext, F as applyParams, L as QueryManagerContext, M as Action, N as createMemoryHistory, P as toVariantKey, R as QueryManagerProvider, T as I18nProvider, V as Subject, a as m, c as ClientRouterContext, j as ProgressManager, o as RouteTransitionProvider, r as WebSocketContext, t as ThemeProvider } from "../chunks/ThemeProvider-D9v0VAbY.js";
2
2
  import { r as RouteStateProvider } from "../chunks/useParams-BN3XXfmG.js";
3
3
  import { Suspense, useContext, useMemo, useRef, useState } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gemi",
3
- "version": "0.71.0",
3
+ "version": "0.72.0",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "Enes Tufekci <enes@gemijs.dev>",
@@ -7,9 +7,9 @@ tags: controller, errors, validation, client-contract
7
7
 
8
8
  ## Throw the Framework's Errors, Do Not Invent a Response Shape
9
9
 
10
- The client's mutation hooks and `<Form>` branch on a tagged error object —
11
- `validation_error`, `form_error`, `server_error`, `not_authorized`,
12
- `insufficient_permissions`. Returning an ad-hoc `{ error: "…" }` from a controller
10
+ The client's mutation hooks and `<Form>` hand these errors to `onError` as a
11
+ `MutationError`, which apps narrow with `isValidationError`, `isPermissionError` and
12
+ the other guards from `gemi/client`. Returning an ad-hoc `{ error: "…" }` from a controller
13
13
  produces a **200 with a body the client reads as success**, so the UI shows nothing
14
14
  and the failure disappears.
15
15