@questpie/tanstack-query 3.6.1 → 3.7.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.
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { DefaultError, QueryKey, UseMutationOptions, UseQueryOptions } from "@tanstack/react-query";
2
- import { QuestpieApp, QuestpieClient, RealtimeAPI, TopicConfig, buildCollectionTopic, buildGlobalTopic } from "questpie/client";
2
+ import { ApplyQuery, CollectionRelations, CollectionSelect, FindManyOptions, FindOneOptionsBase, FindResult, GetCollection, GetGlobal, GlobalRelations, GlobalSelect, QuestpieApp, QuestpieClient, RealtimeAPI, ResolveRelationsDeep, TopicConfig, With, buildCollectionTopic, buildGlobalTopic } from "questpie/client";
3
3
 
4
4
  //#region src/index.d.ts
5
5
  type QuestpieQueryErrorMap = (error: unknown) => unknown;
@@ -37,9 +37,11 @@ type MutationBuilder<TVariables, TData> = () => UseMutationOptions<TData, Defaul
37
37
  type CollectionKeys<TApp extends QuestpieApp> = Extract<keyof QuestpieClient<TApp>["collections"], string>;
38
38
  /** Extract global keys from QuestpieClient */
39
39
  type GlobalKeys<TApp extends QuestpieApp> = Extract<keyof QuestpieClient<TApp>["globals"], string>;
40
- type CollectionFind<TApp extends QuestpieApp, K$1 extends CollectionKeys<TApp>> = QuestpieClient<TApp>["collections"][K$1]["find"];
40
+ type CollectionSelectOf<TApp extends QuestpieApp, K$1 extends CollectionKeys<TApp>> = CollectionSelect<GetCollection<TApp["collections"], K$1>>;
41
+ type CollectionRelationsOf<TApp extends QuestpieApp, K$1 extends CollectionKeys<TApp>> = ResolveRelationsDeep<CollectionRelations<GetCollection<TApp["collections"], K$1>>, TApp["collections"]>;
42
+ type GlobalSelectOf<TApp extends QuestpieApp, K$1 extends GlobalKeys<TApp>> = GlobalSelect<GetGlobal<NonNullable<TApp["globals"]>, K$1>>;
43
+ type GlobalRelationsOf<TApp extends QuestpieApp, K$1 extends GlobalKeys<TApp>> = ResolveRelationsDeep<GlobalRelations<GetGlobal<NonNullable<TApp["globals"]>, K$1>>, TApp["collections"]>;
41
44
  type CollectionCount<TApp extends QuestpieApp, K$1 extends CollectionKeys<TApp>> = QuestpieClient<TApp>["collections"][K$1]["count"];
42
- type CollectionFindOne<TApp extends QuestpieApp, K$1 extends CollectionKeys<TApp>> = QuestpieClient<TApp>["collections"][K$1]["findOne"];
43
45
  type CollectionCreate<TApp extends QuestpieApp, K$1 extends CollectionKeys<TApp>> = QuestpieClient<TApp>["collections"][K$1]["create"];
44
46
  type CollectionUpdate<TApp extends QuestpieApp, K$1 extends CollectionKeys<TApp>> = QuestpieClient<TApp>["collections"][K$1]["update"];
45
47
  type CollectionDelete<TApp extends QuestpieApp, K$1 extends CollectionKeys<TApp>> = QuestpieClient<TApp>["collections"][K$1]["delete"];
@@ -47,9 +49,6 @@ type CollectionRestore<TApp extends QuestpieApp, K$1 extends CollectionKeys<TApp
47
49
  type CollectionFindVersions<TApp extends QuestpieApp, K$1 extends CollectionKeys<TApp>> = QuestpieClient<TApp>["collections"][K$1]["findVersions"];
48
50
  type CollectionRevertToVersion<TApp extends QuestpieApp, K$1 extends CollectionKeys<TApp>> = QuestpieClient<TApp>["collections"][K$1]["revertToVersion"];
49
51
  type CollectionTransitionStage<TApp extends QuestpieApp, K$1 extends CollectionKeys<TApp>> = QuestpieClient<TApp>["collections"][K$1]["transitionStage"];
50
- type GlobalGet<TApp extends QuestpieApp, K$1 extends GlobalKeys<TApp>> = QuestpieClient<TApp>["globals"][K$1] extends {
51
- get: infer TGet;
52
- } ? TGet extends AnyAsyncFn ? TGet : never : never;
53
52
  type GlobalUpdate<TApp extends QuestpieApp, K$1 extends GlobalKeys<TApp>> = QuestpieClient<TApp>["globals"][K$1] extends {
54
53
  update: infer TUpdate;
55
54
  } ? TUpdate extends AnyAsyncFn ? TUpdate : never : never;
@@ -69,9 +68,14 @@ type RouteLeafQueryOptionsAPI<TFn extends AnyAsyncFn> = {
69
68
  };
70
69
  type RoutesQueryOptionsAPI<TNode> = TNode extends AnyAsyncFn ? RouteLeafQueryOptionsAPI<TNode> : TNode extends Record<string, any> ? { [K in keyof TNode]: RoutesQueryOptionsAPI<TNode[K]> } : never;
71
70
  type CollectionQueryOptionsAPI<TApp extends QuestpieApp, K$1 extends CollectionKeys<TApp>> = {
72
- find: LiveQueryBuilder<CollectionFind<TApp, K$1>>;
71
+ /**
72
+ * Generic per call — `TQuery` narrows the result exactly like the direct
73
+ * client's `find()` (a `ReturnType`-based extraction would instantiate the
74
+ * client generic at its constraint and collapse docs to `{}`).
75
+ */
76
+ find: <TQuery extends FindManyOptions<CollectionSelectOf<TApp, K$1>, CollectionRelationsOf<TApp, K$1>> | undefined = undefined>(options?: TQuery, queryConfig?: RealtimeQueryConfig) => UseQueryOptions<FindResult<CollectionSelectOf<TApp, K$1>, CollectionRelationsOf<TApp, K$1>, TQuery>>;
73
77
  count: LiveQueryBuilder<CollectionCount<TApp, K$1>>;
74
- findOne: QueryBuilder<CollectionFindOne<TApp, K$1>>;
78
+ findOne: <TQuery extends FindOneOptionsBase<CollectionSelectOf<TApp, K$1>, CollectionRelationsOf<TApp, K$1>> | undefined = undefined>(options?: TQuery) => UseQueryOptions<ApplyQuery<CollectionSelectOf<TApp, K$1>, CollectionRelationsOf<TApp, K$1>, TQuery> | null>;
75
79
  create: MutationBuilder<FirstArg<CollectionCreate<TApp, K$1>>, QueryData<CollectionCreate<TApp, K$1>>>;
76
80
  update: MutationBuilder<FirstArg<CollectionUpdate<TApp, K$1>>, QueryData<CollectionUpdate<TApp, K$1>>>;
77
81
  delete: MutationBuilder<FirstArg<CollectionDelete<TApp, K$1>>, QueryData<CollectionDelete<TApp, K$1>>>;
@@ -91,7 +95,14 @@ type CollectionQueryOptionsAPI<TApp extends QuestpieApp, K$1 extends CollectionK
91
95
  }>;
92
96
  };
93
97
  type GlobalQueryOptionsAPI<TApp extends QuestpieApp, K$1 extends GlobalKeys<TApp>> = {
94
- get: LiveQueryBuilder<GlobalGet<TApp, K$1>>;
98
+ /** Generic per call — mirrors the direct client's `get()` narrowing. */
99
+ get: <TQuery extends {
100
+ with?: With<GlobalRelationsOf<TApp, K$1>>;
101
+ columns?: Record<string, boolean>;
102
+ locale?: string;
103
+ localeFallback?: boolean;
104
+ stage?: string;
105
+ } | undefined = undefined>(options?: TQuery, queryConfig?: RealtimeQueryConfig) => UseQueryOptions<ApplyQuery<GlobalSelectOf<TApp, K$1>, GlobalRelationsOf<TApp, K$1>, TQuery>>;
95
106
  update: MutationBuilder<{
96
107
  data: Parameters<GlobalUpdate<TApp, K$1>>[0];
97
108
  options?: Parameters<GlobalUpdate<TApp, K$1>>[1];
@@ -129,9 +140,9 @@ type QuestpieQueryOptionsProxy<TApp extends QuestpieApp = QuestpieApp> = {
129
140
  * ```ts
130
141
  * import { createQuestpieQueryOptions } from "@questpie/tanstack-query"
131
142
  * import { createClient } from "questpie/client"
132
- * import type { App, AppRpc } from "@/app"
143
+ * import type { AppConfig } from "@/questpie/server/.generated"
133
144
  *
134
- * const client = createClient<App, AppRpc>({ baseURL: "http://localhost:3000" })
145
+ * const client = createClient<AppConfig>({ baseURL: "http://localhost:3000" })
135
146
  * const cmsQueries = createQuestpieQueryOptions(client)
136
147
  *
137
148
  * // Use with useQuery
package/dist/index.mjs CHANGED
@@ -79,9 +79,9 @@ async function* streamRealtimeQuery(options) {
79
79
  * ```ts
80
80
  * import { createQuestpieQueryOptions } from "@questpie/tanstack-query"
81
81
  * import { createClient } from "questpie/client"
82
- * import type { App, AppRpc } from "@/app"
82
+ * import type { AppConfig } from "@/questpie/server/.generated"
83
83
  *
84
- * const client = createClient<App, AppRpc>({ baseURL: "http://localhost:3000" })
84
+ * const client = createClient<AppConfig>({ baseURL: "http://localhost:3000" })
85
85
  * const cmsQueries = createQuestpieQueryOptions(client)
86
86
  *
87
87
  * // Use with useQuery
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@questpie/tanstack-query",
3
- "version": "3.6.1",
3
+ "version": "3.7.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/questpie/questpie.git",