@mrck-labs/vanaheim-shared 0.1.1 → 0.2.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/README.md +162 -10
- package/dist/atoms/index.d.mts +92 -0
- package/dist/atoms/index.d.ts +92 -0
- package/dist/atoms/index.js +82 -0
- package/dist/atoms/index.js.map +1 -0
- package/dist/atoms/index.mjs +47 -0
- package/dist/atoms/index.mjs.map +1 -0
- package/dist/date/index.d.mts +176 -0
- package/dist/date/index.d.ts +176 -0
- package/dist/date/index.js +347 -0
- package/dist/date/index.js.map +1 -0
- package/dist/date/index.mjs +290 -0
- package/dist/date/index.mjs.map +1 -0
- package/dist/index.d.mts +4 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +600 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +557 -3
- package/dist/index.mjs.map +1 -1
- package/dist/query/index.d.mts +321 -0
- package/dist/query/index.d.ts +321 -0
- package/dist/query/index.js +257 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/index.mjs +232 -0
- package/dist/query/index.mjs.map +1 -0
- package/dist/utils/index.d.mts +2 -1
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/index.mjs +1 -1
- package/dist/utils/index.mjs.map +1 -1
- package/package.json +25 -1
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query Keys Factory
|
|
3
|
+
*
|
|
4
|
+
* Centralized query key management for TanStack Query.
|
|
5
|
+
* Used by both desktop and mobile apps for consistent cache invalidation.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* import { queryKeys } from '@mrck-labs/vanaheim-shared/query'
|
|
9
|
+
*
|
|
10
|
+
* // In a query hook
|
|
11
|
+
* useQuery({
|
|
12
|
+
* queryKey: queryKeys.focusSessions.today(),
|
|
13
|
+
* queryFn: ...
|
|
14
|
+
* })
|
|
15
|
+
*
|
|
16
|
+
* // Invalidating
|
|
17
|
+
* queryClient.invalidateQueries({ queryKey: queryKeys.focusSessions.all })
|
|
18
|
+
*/
|
|
19
|
+
declare const queryKeys: {
|
|
20
|
+
readonly expenses: {
|
|
21
|
+
readonly all: readonly ["expenses"];
|
|
22
|
+
readonly lists: () => readonly ["expenses", "list"];
|
|
23
|
+
readonly list: (filters?: {
|
|
24
|
+
isActive?: boolean;
|
|
25
|
+
categoryId?: string;
|
|
26
|
+
}) => readonly ["expenses", "list", {
|
|
27
|
+
isActive?: boolean;
|
|
28
|
+
categoryId?: string;
|
|
29
|
+
} | undefined];
|
|
30
|
+
readonly detail: (id: string) => readonly ["expenses", "detail", string];
|
|
31
|
+
};
|
|
32
|
+
readonly expenseCategories: {
|
|
33
|
+
readonly all: readonly ["expenseCategories"];
|
|
34
|
+
readonly list: () => readonly ["expenseCategories", "list"];
|
|
35
|
+
};
|
|
36
|
+
readonly expensePayments: {
|
|
37
|
+
readonly all: readonly ["expensePayments"];
|
|
38
|
+
readonly lists: () => readonly ["expensePayments", "list"];
|
|
39
|
+
readonly list: (filters?: {
|
|
40
|
+
expenseId?: string;
|
|
41
|
+
dateFrom?: string;
|
|
42
|
+
dateTo?: string;
|
|
43
|
+
}) => readonly ["expensePayments", "list", {
|
|
44
|
+
expenseId?: string;
|
|
45
|
+
dateFrom?: string;
|
|
46
|
+
dateTo?: string;
|
|
47
|
+
} | undefined];
|
|
48
|
+
readonly detail: (id: string) => readonly ["expensePayments", "detail", string];
|
|
49
|
+
};
|
|
50
|
+
readonly incomes: {
|
|
51
|
+
readonly all: readonly ["incomes"];
|
|
52
|
+
readonly lists: () => readonly ["incomes", "list"];
|
|
53
|
+
readonly list: (filters?: {
|
|
54
|
+
isActive?: boolean;
|
|
55
|
+
categoryId?: string;
|
|
56
|
+
}) => readonly ["incomes", "list", {
|
|
57
|
+
isActive?: boolean;
|
|
58
|
+
categoryId?: string;
|
|
59
|
+
} | undefined];
|
|
60
|
+
readonly detail: (id: string) => readonly ["incomes", "detail", string];
|
|
61
|
+
};
|
|
62
|
+
readonly incomeCategories: {
|
|
63
|
+
readonly all: readonly ["incomeCategories"];
|
|
64
|
+
readonly list: () => readonly ["incomeCategories", "list"];
|
|
65
|
+
};
|
|
66
|
+
readonly incomePayments: {
|
|
67
|
+
readonly all: readonly ["incomePayments"];
|
|
68
|
+
readonly lists: () => readonly ["incomePayments", "list"];
|
|
69
|
+
readonly list: (filters?: {
|
|
70
|
+
incomeId?: string;
|
|
71
|
+
dateFrom?: string;
|
|
72
|
+
dateTo?: string;
|
|
73
|
+
}) => readonly ["incomePayments", "list", {
|
|
74
|
+
incomeId?: string;
|
|
75
|
+
dateFrom?: string;
|
|
76
|
+
dateTo?: string;
|
|
77
|
+
} | undefined];
|
|
78
|
+
readonly detail: (id: string) => readonly ["incomePayments", "detail", string];
|
|
79
|
+
};
|
|
80
|
+
readonly exchangeRates: {
|
|
81
|
+
readonly all: readonly ["exchangeRates"];
|
|
82
|
+
readonly list: () => readonly ["exchangeRates", "list"];
|
|
83
|
+
};
|
|
84
|
+
readonly focusSessions: {
|
|
85
|
+
readonly all: readonly ["focusSessions"];
|
|
86
|
+
readonly lists: () => readonly ["focusSessions", "list"];
|
|
87
|
+
readonly list: (filters?: {
|
|
88
|
+
date?: string;
|
|
89
|
+
categoryId?: string;
|
|
90
|
+
status?: string;
|
|
91
|
+
startedAfter?: string;
|
|
92
|
+
startedBefore?: string;
|
|
93
|
+
}) => readonly ["focusSessions", "list", {
|
|
94
|
+
date?: string;
|
|
95
|
+
categoryId?: string;
|
|
96
|
+
status?: string;
|
|
97
|
+
startedAfter?: string;
|
|
98
|
+
startedBefore?: string;
|
|
99
|
+
} | undefined];
|
|
100
|
+
readonly today: () => readonly ["focusSessions", "today"];
|
|
101
|
+
readonly active: () => readonly ["focusSessions", "active"];
|
|
102
|
+
readonly detail: (id: string) => readonly ["focusSessions", "detail", string];
|
|
103
|
+
};
|
|
104
|
+
readonly focusCategories: {
|
|
105
|
+
readonly all: readonly ["focusCategories"];
|
|
106
|
+
readonly list: () => readonly ["focusCategories", "list"];
|
|
107
|
+
};
|
|
108
|
+
readonly settings: {
|
|
109
|
+
readonly all: readonly ["settings"];
|
|
110
|
+
readonly detail: (key: string) => readonly ["settings", string];
|
|
111
|
+
};
|
|
112
|
+
readonly lieuDays: {
|
|
113
|
+
readonly all: readonly ["lieuDays"];
|
|
114
|
+
readonly list: () => readonly ["lieuDays", "list"];
|
|
115
|
+
readonly balance: () => readonly ["lieuDays", "balance"];
|
|
116
|
+
readonly detail: (id: string) => readonly ["lieuDays", "detail", string];
|
|
117
|
+
};
|
|
118
|
+
readonly efLinks: {
|
|
119
|
+
readonly all: readonly ["efLinks"];
|
|
120
|
+
readonly list: () => readonly ["efLinks", "list"];
|
|
121
|
+
readonly detail: (id: string) => readonly ["efLinks", "detail", string];
|
|
122
|
+
};
|
|
123
|
+
readonly bankConnections: {
|
|
124
|
+
readonly all: readonly ["bankConnections"];
|
|
125
|
+
readonly list: () => readonly ["bankConnections", "list"];
|
|
126
|
+
readonly detail: (id: string) => readonly ["bankConnections", "detail", string];
|
|
127
|
+
};
|
|
128
|
+
readonly bankTransactions: {
|
|
129
|
+
readonly all: readonly ["bankTransactions"];
|
|
130
|
+
readonly lists: () => readonly ["bankTransactions", "list"];
|
|
131
|
+
readonly list: (filters?: {
|
|
132
|
+
connectionId?: string;
|
|
133
|
+
dateFrom?: string;
|
|
134
|
+
dateTo?: string;
|
|
135
|
+
}) => readonly ["bankTransactions", "list", {
|
|
136
|
+
connectionId?: string;
|
|
137
|
+
dateFrom?: string;
|
|
138
|
+
dateTo?: string;
|
|
139
|
+
} | undefined];
|
|
140
|
+
readonly stats: (connectionId?: string) => readonly ["bankTransactions", "stats", string | undefined];
|
|
141
|
+
};
|
|
142
|
+
readonly healthCategories: {
|
|
143
|
+
readonly all: readonly ["healthCategories"];
|
|
144
|
+
readonly list: () => readonly ["healthCategories", "list"];
|
|
145
|
+
readonly detail: (id: string) => readonly ["healthCategories", "detail", string];
|
|
146
|
+
};
|
|
147
|
+
readonly healthHabits: {
|
|
148
|
+
readonly all: readonly ["healthHabits"];
|
|
149
|
+
readonly lists: () => readonly ["healthHabits", "list"];
|
|
150
|
+
readonly list: (filters?: {
|
|
151
|
+
categoryId?: string;
|
|
152
|
+
isActive?: boolean;
|
|
153
|
+
}) => readonly ["healthHabits", "list", {
|
|
154
|
+
categoryId?: string;
|
|
155
|
+
isActive?: boolean;
|
|
156
|
+
} | undefined];
|
|
157
|
+
readonly detail: (id: string) => readonly ["healthHabits", "detail", string];
|
|
158
|
+
};
|
|
159
|
+
readonly healthCompletions: {
|
|
160
|
+
readonly all: readonly ["healthCompletions"];
|
|
161
|
+
readonly lists: () => readonly ["healthCompletions", "list"];
|
|
162
|
+
readonly list: (filters?: {
|
|
163
|
+
habitId?: string;
|
|
164
|
+
dateFrom?: string;
|
|
165
|
+
dateTo?: string;
|
|
166
|
+
}) => readonly ["healthCompletions", "list", {
|
|
167
|
+
habitId?: string;
|
|
168
|
+
dateFrom?: string;
|
|
169
|
+
dateTo?: string;
|
|
170
|
+
} | undefined];
|
|
171
|
+
readonly forHabit: (habitId: string) => readonly ["healthCompletions", "habit", string];
|
|
172
|
+
readonly forDate: (date: string) => readonly ["healthCompletions", "date", string];
|
|
173
|
+
};
|
|
174
|
+
readonly healthStats: {
|
|
175
|
+
readonly all: readonly ["healthStats"];
|
|
176
|
+
readonly forDate: (date?: string) => readonly ["healthStats", string];
|
|
177
|
+
};
|
|
178
|
+
readonly promptCategories: {
|
|
179
|
+
readonly all: readonly ["promptCategories"];
|
|
180
|
+
readonly list: () => readonly ["promptCategories", "list"];
|
|
181
|
+
readonly detail: (id: string) => readonly ["promptCategories", "detail", string];
|
|
182
|
+
};
|
|
183
|
+
readonly promptLabels: {
|
|
184
|
+
readonly all: readonly ["promptLabels"];
|
|
185
|
+
readonly list: () => readonly ["promptLabels", "list"];
|
|
186
|
+
readonly detail: (id: string) => readonly ["promptLabels", "detail", string];
|
|
187
|
+
};
|
|
188
|
+
readonly prompts: {
|
|
189
|
+
readonly all: readonly ["prompts"];
|
|
190
|
+
readonly lists: () => readonly ["prompts", "list"];
|
|
191
|
+
readonly list: (filters?: {
|
|
192
|
+
categoryId?: string;
|
|
193
|
+
labelId?: string;
|
|
194
|
+
isFavorite?: boolean;
|
|
195
|
+
search?: string;
|
|
196
|
+
}) => readonly ["prompts", "list", {
|
|
197
|
+
categoryId?: string;
|
|
198
|
+
labelId?: string;
|
|
199
|
+
isFavorite?: boolean;
|
|
200
|
+
search?: string;
|
|
201
|
+
} | undefined];
|
|
202
|
+
readonly detail: (id: string) => readonly ["prompts", "detail", string];
|
|
203
|
+
};
|
|
204
|
+
readonly trainingActivities: {
|
|
205
|
+
readonly all: readonly ["trainingActivities"];
|
|
206
|
+
readonly list: () => readonly ["trainingActivities", "list"];
|
|
207
|
+
readonly detail: (id: string) => readonly ["trainingActivities", "detail", string];
|
|
208
|
+
readonly byStravaType: (stravaType: string) => readonly ["trainingActivities", "strava", string];
|
|
209
|
+
};
|
|
210
|
+
readonly trainingSessions: {
|
|
211
|
+
readonly all: readonly ["trainingSessions"];
|
|
212
|
+
readonly lists: () => readonly ["trainingSessions", "list"];
|
|
213
|
+
readonly list: (filters?: {
|
|
214
|
+
activityId?: string;
|
|
215
|
+
dateFrom?: string;
|
|
216
|
+
dateTo?: string;
|
|
217
|
+
source?: "manual" | "strava";
|
|
218
|
+
}) => readonly ["trainingSessions", "list", {
|
|
219
|
+
activityId?: string;
|
|
220
|
+
dateFrom?: string;
|
|
221
|
+
dateTo?: string;
|
|
222
|
+
source?: "manual" | "strava";
|
|
223
|
+
} | undefined];
|
|
224
|
+
readonly detail: (id: string) => readonly ["trainingSessions", "detail", string];
|
|
225
|
+
readonly byStravaId: (stravaActivityId: string) => readonly ["trainingSessions", "strava", string];
|
|
226
|
+
};
|
|
227
|
+
readonly plannedSessions: {
|
|
228
|
+
readonly all: readonly ["plannedSessions"];
|
|
229
|
+
readonly lists: () => readonly ["plannedSessions", "list"];
|
|
230
|
+
readonly list: (filters?: {
|
|
231
|
+
activityId?: string;
|
|
232
|
+
dateFrom?: string;
|
|
233
|
+
dateTo?: string;
|
|
234
|
+
isCompleted?: boolean;
|
|
235
|
+
}) => readonly ["plannedSessions", "list", {
|
|
236
|
+
activityId?: string;
|
|
237
|
+
dateFrom?: string;
|
|
238
|
+
dateTo?: string;
|
|
239
|
+
isCompleted?: boolean;
|
|
240
|
+
} | undefined];
|
|
241
|
+
readonly detail: (id: string) => readonly ["plannedSessions", "detail", string];
|
|
242
|
+
readonly upcoming: () => readonly ["plannedSessions", "upcoming"];
|
|
243
|
+
};
|
|
244
|
+
readonly races: {
|
|
245
|
+
readonly all: readonly ["races"];
|
|
246
|
+
readonly lists: () => readonly ["races", "list"];
|
|
247
|
+
readonly list: (filters?: {
|
|
248
|
+
type?: "race" | "event" | "goal";
|
|
249
|
+
status?: "upcoming" | "completed" | "dns" | "dnf";
|
|
250
|
+
dateFrom?: string;
|
|
251
|
+
dateTo?: string;
|
|
252
|
+
}) => readonly ["races", "list", {
|
|
253
|
+
type?: "race" | "event" | "goal";
|
|
254
|
+
status?: "upcoming" | "completed" | "dns" | "dnf";
|
|
255
|
+
dateFrom?: string;
|
|
256
|
+
dateTo?: string;
|
|
257
|
+
} | undefined];
|
|
258
|
+
readonly detail: (id: string) => readonly ["races", "detail", string];
|
|
259
|
+
readonly next: () => readonly ["races", "next"];
|
|
260
|
+
};
|
|
261
|
+
readonly trainingStats: {
|
|
262
|
+
readonly all: readonly ["trainingStats"];
|
|
263
|
+
readonly forRange: (dateFrom?: string, dateTo?: string) => readonly ["trainingStats", string | undefined, string | undefined];
|
|
264
|
+
};
|
|
265
|
+
readonly strava: {
|
|
266
|
+
readonly all: readonly ["strava"];
|
|
267
|
+
readonly athlete: () => readonly ["strava", "athlete"];
|
|
268
|
+
readonly connected: () => readonly ["strava", "connected"];
|
|
269
|
+
readonly activities: (options?: {
|
|
270
|
+
after?: number;
|
|
271
|
+
before?: number;
|
|
272
|
+
}) => readonly ["strava", "activities", {
|
|
273
|
+
after?: number;
|
|
274
|
+
before?: number;
|
|
275
|
+
} | undefined];
|
|
276
|
+
};
|
|
277
|
+
readonly journalEntries: {
|
|
278
|
+
readonly all: readonly ["journalEntries"];
|
|
279
|
+
readonly lists: () => readonly ["journalEntries", "list"];
|
|
280
|
+
readonly list: (filters?: {
|
|
281
|
+
dateFrom?: string;
|
|
282
|
+
dateTo?: string;
|
|
283
|
+
}) => readonly ["journalEntries", "list", {
|
|
284
|
+
dateFrom?: string;
|
|
285
|
+
dateTo?: string;
|
|
286
|
+
} | undefined];
|
|
287
|
+
readonly forDate: (date: string) => readonly ["journalEntries", "date", string];
|
|
288
|
+
};
|
|
289
|
+
readonly journalData: {
|
|
290
|
+
readonly all: readonly ["journalData"];
|
|
291
|
+
readonly forDate: (date: string) => readonly ["journalData", string];
|
|
292
|
+
};
|
|
293
|
+
readonly chatConversations: {
|
|
294
|
+
readonly all: readonly ["chatConversations"];
|
|
295
|
+
readonly list: () => readonly ["chatConversations", "list"];
|
|
296
|
+
readonly detail: (id: string) => readonly ["chatConversations", "detail", string];
|
|
297
|
+
};
|
|
298
|
+
readonly chatMessages: {
|
|
299
|
+
readonly all: readonly ["chatMessages"];
|
|
300
|
+
readonly forConversation: (conversationId: string) => readonly ["chatMessages", "conversation", string];
|
|
301
|
+
};
|
|
302
|
+
readonly googleCalendar: {
|
|
303
|
+
readonly all: readonly ["googleCalendar"];
|
|
304
|
+
readonly calendars: () => readonly ["googleCalendar", "calendars"];
|
|
305
|
+
readonly events: (calendarId: string, timeMin?: string, timeMax?: string) => readonly ["googleCalendar", "events", string, string | undefined, string | undefined];
|
|
306
|
+
};
|
|
307
|
+
readonly linear: {
|
|
308
|
+
readonly all: readonly ["linear"];
|
|
309
|
+
readonly issues: (filters?: {
|
|
310
|
+
projectId?: string;
|
|
311
|
+
status?: string;
|
|
312
|
+
}) => readonly ["linear", "issues", {
|
|
313
|
+
projectId?: string;
|
|
314
|
+
status?: string;
|
|
315
|
+
} | undefined];
|
|
316
|
+
readonly projects: () => readonly ["linear", "projects"];
|
|
317
|
+
};
|
|
318
|
+
};
|
|
319
|
+
type QueryKeys = typeof queryKeys;
|
|
320
|
+
|
|
321
|
+
export { type QueryKeys, queryKeys };
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/query/index.ts
|
|
21
|
+
var query_exports = {};
|
|
22
|
+
__export(query_exports, {
|
|
23
|
+
queryKeys: () => queryKeys
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(query_exports);
|
|
26
|
+
var queryKeys = {
|
|
27
|
+
// -------------------------------------------------------------------------
|
|
28
|
+
// Expenses
|
|
29
|
+
// -------------------------------------------------------------------------
|
|
30
|
+
expenses: {
|
|
31
|
+
all: ["expenses"],
|
|
32
|
+
lists: () => [...queryKeys.expenses.all, "list"],
|
|
33
|
+
list: (filters) => [...queryKeys.expenses.lists(), filters],
|
|
34
|
+
detail: (id) => [...queryKeys.expenses.all, "detail", id]
|
|
35
|
+
},
|
|
36
|
+
// Expense Categories
|
|
37
|
+
expenseCategories: {
|
|
38
|
+
all: ["expenseCategories"],
|
|
39
|
+
list: () => [...queryKeys.expenseCategories.all, "list"]
|
|
40
|
+
},
|
|
41
|
+
// Expense Payments
|
|
42
|
+
expensePayments: {
|
|
43
|
+
all: ["expensePayments"],
|
|
44
|
+
lists: () => [...queryKeys.expensePayments.all, "list"],
|
|
45
|
+
list: (filters) => [...queryKeys.expensePayments.lists(), filters],
|
|
46
|
+
detail: (id) => [...queryKeys.expensePayments.all, "detail", id]
|
|
47
|
+
},
|
|
48
|
+
// -------------------------------------------------------------------------
|
|
49
|
+
// Income
|
|
50
|
+
// -------------------------------------------------------------------------
|
|
51
|
+
incomes: {
|
|
52
|
+
all: ["incomes"],
|
|
53
|
+
lists: () => [...queryKeys.incomes.all, "list"],
|
|
54
|
+
list: (filters) => [...queryKeys.incomes.lists(), filters],
|
|
55
|
+
detail: (id) => [...queryKeys.incomes.all, "detail", id]
|
|
56
|
+
},
|
|
57
|
+
// Income Categories
|
|
58
|
+
incomeCategories: {
|
|
59
|
+
all: ["incomeCategories"],
|
|
60
|
+
list: () => [...queryKeys.incomeCategories.all, "list"]
|
|
61
|
+
},
|
|
62
|
+
// Income Payments
|
|
63
|
+
incomePayments: {
|
|
64
|
+
all: ["incomePayments"],
|
|
65
|
+
lists: () => [...queryKeys.incomePayments.all, "list"],
|
|
66
|
+
list: (filters) => [...queryKeys.incomePayments.lists(), filters],
|
|
67
|
+
detail: (id) => [...queryKeys.incomePayments.all, "detail", id]
|
|
68
|
+
},
|
|
69
|
+
// Exchange Rates
|
|
70
|
+
exchangeRates: {
|
|
71
|
+
all: ["exchangeRates"],
|
|
72
|
+
list: () => [...queryKeys.exchangeRates.all, "list"]
|
|
73
|
+
},
|
|
74
|
+
// -------------------------------------------------------------------------
|
|
75
|
+
// Focus
|
|
76
|
+
// -------------------------------------------------------------------------
|
|
77
|
+
focusSessions: {
|
|
78
|
+
all: ["focusSessions"],
|
|
79
|
+
lists: () => [...queryKeys.focusSessions.all, "list"],
|
|
80
|
+
list: (filters) => [...queryKeys.focusSessions.lists(), filters],
|
|
81
|
+
today: () => [...queryKeys.focusSessions.all, "today"],
|
|
82
|
+
active: () => [...queryKeys.focusSessions.all, "active"],
|
|
83
|
+
detail: (id) => [...queryKeys.focusSessions.all, "detail", id]
|
|
84
|
+
},
|
|
85
|
+
// Focus Categories
|
|
86
|
+
focusCategories: {
|
|
87
|
+
all: ["focusCategories"],
|
|
88
|
+
list: () => [...queryKeys.focusCategories.all, "list"]
|
|
89
|
+
},
|
|
90
|
+
// -------------------------------------------------------------------------
|
|
91
|
+
// Settings
|
|
92
|
+
// -------------------------------------------------------------------------
|
|
93
|
+
settings: {
|
|
94
|
+
all: ["settings"],
|
|
95
|
+
detail: (key) => [...queryKeys.settings.all, key]
|
|
96
|
+
},
|
|
97
|
+
// -------------------------------------------------------------------------
|
|
98
|
+
// EF Work (Lieu Days & Links)
|
|
99
|
+
// -------------------------------------------------------------------------
|
|
100
|
+
lieuDays: {
|
|
101
|
+
all: ["lieuDays"],
|
|
102
|
+
list: () => [...queryKeys.lieuDays.all, "list"],
|
|
103
|
+
balance: () => [...queryKeys.lieuDays.all, "balance"],
|
|
104
|
+
detail: (id) => [...queryKeys.lieuDays.all, "detail", id]
|
|
105
|
+
},
|
|
106
|
+
efLinks: {
|
|
107
|
+
all: ["efLinks"],
|
|
108
|
+
list: () => [...queryKeys.efLinks.all, "list"],
|
|
109
|
+
detail: (id) => [...queryKeys.efLinks.all, "detail", id]
|
|
110
|
+
},
|
|
111
|
+
// -------------------------------------------------------------------------
|
|
112
|
+
// Banking
|
|
113
|
+
// -------------------------------------------------------------------------
|
|
114
|
+
bankConnections: {
|
|
115
|
+
all: ["bankConnections"],
|
|
116
|
+
list: () => [...queryKeys.bankConnections.all, "list"],
|
|
117
|
+
detail: (id) => [...queryKeys.bankConnections.all, "detail", id]
|
|
118
|
+
},
|
|
119
|
+
bankTransactions: {
|
|
120
|
+
all: ["bankTransactions"],
|
|
121
|
+
lists: () => [...queryKeys.bankTransactions.all, "list"],
|
|
122
|
+
list: (filters) => [...queryKeys.bankTransactions.lists(), filters],
|
|
123
|
+
stats: (connectionId) => [...queryKeys.bankTransactions.all, "stats", connectionId]
|
|
124
|
+
},
|
|
125
|
+
// -------------------------------------------------------------------------
|
|
126
|
+
// Health
|
|
127
|
+
// -------------------------------------------------------------------------
|
|
128
|
+
healthCategories: {
|
|
129
|
+
all: ["healthCategories"],
|
|
130
|
+
list: () => [...queryKeys.healthCategories.all, "list"],
|
|
131
|
+
detail: (id) => [...queryKeys.healthCategories.all, "detail", id]
|
|
132
|
+
},
|
|
133
|
+
healthHabits: {
|
|
134
|
+
all: ["healthHabits"],
|
|
135
|
+
lists: () => [...queryKeys.healthHabits.all, "list"],
|
|
136
|
+
list: (filters) => [...queryKeys.healthHabits.lists(), filters],
|
|
137
|
+
detail: (id) => [...queryKeys.healthHabits.all, "detail", id]
|
|
138
|
+
},
|
|
139
|
+
healthCompletions: {
|
|
140
|
+
all: ["healthCompletions"],
|
|
141
|
+
lists: () => [...queryKeys.healthCompletions.all, "list"],
|
|
142
|
+
list: (filters) => [...queryKeys.healthCompletions.lists(), filters],
|
|
143
|
+
forHabit: (habitId) => [...queryKeys.healthCompletions.all, "habit", habitId],
|
|
144
|
+
forDate: (date) => [...queryKeys.healthCompletions.all, "date", date]
|
|
145
|
+
},
|
|
146
|
+
healthStats: {
|
|
147
|
+
all: ["healthStats"],
|
|
148
|
+
forDate: (date) => [...queryKeys.healthStats.all, date ?? "today"]
|
|
149
|
+
},
|
|
150
|
+
// -------------------------------------------------------------------------
|
|
151
|
+
// Prompts
|
|
152
|
+
// -------------------------------------------------------------------------
|
|
153
|
+
promptCategories: {
|
|
154
|
+
all: ["promptCategories"],
|
|
155
|
+
list: () => [...queryKeys.promptCategories.all, "list"],
|
|
156
|
+
detail: (id) => [...queryKeys.promptCategories.all, "detail", id]
|
|
157
|
+
},
|
|
158
|
+
promptLabels: {
|
|
159
|
+
all: ["promptLabels"],
|
|
160
|
+
list: () => [...queryKeys.promptLabels.all, "list"],
|
|
161
|
+
detail: (id) => [...queryKeys.promptLabels.all, "detail", id]
|
|
162
|
+
},
|
|
163
|
+
prompts: {
|
|
164
|
+
all: ["prompts"],
|
|
165
|
+
lists: () => [...queryKeys.prompts.all, "list"],
|
|
166
|
+
list: (filters) => [...queryKeys.prompts.lists(), filters],
|
|
167
|
+
detail: (id) => [...queryKeys.prompts.all, "detail", id]
|
|
168
|
+
},
|
|
169
|
+
// -------------------------------------------------------------------------
|
|
170
|
+
// Training
|
|
171
|
+
// -------------------------------------------------------------------------
|
|
172
|
+
trainingActivities: {
|
|
173
|
+
all: ["trainingActivities"],
|
|
174
|
+
list: () => [...queryKeys.trainingActivities.all, "list"],
|
|
175
|
+
detail: (id) => [...queryKeys.trainingActivities.all, "detail", id],
|
|
176
|
+
byStravaType: (stravaType) => [...queryKeys.trainingActivities.all, "strava", stravaType]
|
|
177
|
+
},
|
|
178
|
+
trainingSessions: {
|
|
179
|
+
all: ["trainingSessions"],
|
|
180
|
+
lists: () => [...queryKeys.trainingSessions.all, "list"],
|
|
181
|
+
list: (filters) => [...queryKeys.trainingSessions.lists(), filters],
|
|
182
|
+
detail: (id) => [...queryKeys.trainingSessions.all, "detail", id],
|
|
183
|
+
byStravaId: (stravaActivityId) => [...queryKeys.trainingSessions.all, "strava", stravaActivityId]
|
|
184
|
+
},
|
|
185
|
+
plannedSessions: {
|
|
186
|
+
all: ["plannedSessions"],
|
|
187
|
+
lists: () => [...queryKeys.plannedSessions.all, "list"],
|
|
188
|
+
list: (filters) => [...queryKeys.plannedSessions.lists(), filters],
|
|
189
|
+
detail: (id) => [...queryKeys.plannedSessions.all, "detail", id],
|
|
190
|
+
upcoming: () => [...queryKeys.plannedSessions.all, "upcoming"]
|
|
191
|
+
},
|
|
192
|
+
races: {
|
|
193
|
+
all: ["races"],
|
|
194
|
+
lists: () => [...queryKeys.races.all, "list"],
|
|
195
|
+
list: (filters) => [...queryKeys.races.lists(), filters],
|
|
196
|
+
detail: (id) => [...queryKeys.races.all, "detail", id],
|
|
197
|
+
next: () => [...queryKeys.races.all, "next"]
|
|
198
|
+
},
|
|
199
|
+
trainingStats: {
|
|
200
|
+
all: ["trainingStats"],
|
|
201
|
+
forRange: (dateFrom, dateTo) => [...queryKeys.trainingStats.all, dateFrom, dateTo]
|
|
202
|
+
},
|
|
203
|
+
// Strava
|
|
204
|
+
strava: {
|
|
205
|
+
all: ["strava"],
|
|
206
|
+
athlete: () => [...queryKeys.strava.all, "athlete"],
|
|
207
|
+
connected: () => [...queryKeys.strava.all, "connected"],
|
|
208
|
+
activities: (options) => [...queryKeys.strava.all, "activities", options]
|
|
209
|
+
},
|
|
210
|
+
// -------------------------------------------------------------------------
|
|
211
|
+
// Journal
|
|
212
|
+
// -------------------------------------------------------------------------
|
|
213
|
+
journalEntries: {
|
|
214
|
+
all: ["journalEntries"],
|
|
215
|
+
lists: () => [...queryKeys.journalEntries.all, "list"],
|
|
216
|
+
list: (filters) => [...queryKeys.journalEntries.lists(), filters],
|
|
217
|
+
forDate: (date) => [...queryKeys.journalEntries.all, "date", date]
|
|
218
|
+
},
|
|
219
|
+
// Journal data (aggregated)
|
|
220
|
+
journalData: {
|
|
221
|
+
all: ["journalData"],
|
|
222
|
+
forDate: (date) => [...queryKeys.journalData.all, date]
|
|
223
|
+
},
|
|
224
|
+
// -------------------------------------------------------------------------
|
|
225
|
+
// Chat
|
|
226
|
+
// -------------------------------------------------------------------------
|
|
227
|
+
chatConversations: {
|
|
228
|
+
all: ["chatConversations"],
|
|
229
|
+
list: () => [...queryKeys.chatConversations.all, "list"],
|
|
230
|
+
detail: (id) => [...queryKeys.chatConversations.all, "detail", id]
|
|
231
|
+
},
|
|
232
|
+
chatMessages: {
|
|
233
|
+
all: ["chatMessages"],
|
|
234
|
+
forConversation: (conversationId) => [...queryKeys.chatMessages.all, "conversation", conversationId]
|
|
235
|
+
},
|
|
236
|
+
// -------------------------------------------------------------------------
|
|
237
|
+
// Google Calendar
|
|
238
|
+
// -------------------------------------------------------------------------
|
|
239
|
+
googleCalendar: {
|
|
240
|
+
all: ["googleCalendar"],
|
|
241
|
+
calendars: () => [...queryKeys.googleCalendar.all, "calendars"],
|
|
242
|
+
events: (calendarId, timeMin, timeMax) => [...queryKeys.googleCalendar.all, "events", calendarId, timeMin, timeMax]
|
|
243
|
+
},
|
|
244
|
+
// -------------------------------------------------------------------------
|
|
245
|
+
// Linear
|
|
246
|
+
// -------------------------------------------------------------------------
|
|
247
|
+
linear: {
|
|
248
|
+
all: ["linear"],
|
|
249
|
+
issues: (filters) => [...queryKeys.linear.all, "issues", filters],
|
|
250
|
+
projects: () => [...queryKeys.linear.all, "projects"]
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
254
|
+
0 && (module.exports = {
|
|
255
|
+
queryKeys
|
|
256
|
+
});
|
|
257
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/query/index.ts"],"sourcesContent":["/**\n * Query Keys Factory\n *\n * Centralized query key management for TanStack Query.\n * Used by both desktop and mobile apps for consistent cache invalidation.\n *\n * @example\n * import { queryKeys } from '@mrck-labs/vanaheim-shared/query'\n *\n * // In a query hook\n * useQuery({\n * queryKey: queryKeys.focusSessions.today(),\n * queryFn: ...\n * })\n *\n * // Invalidating\n * queryClient.invalidateQueries({ queryKey: queryKeys.focusSessions.all })\n */\n\n// ============================================================================\n// Query Keys Factory\n// ============================================================================\n\nexport const queryKeys = {\n // -------------------------------------------------------------------------\n // Expenses\n // -------------------------------------------------------------------------\n expenses: {\n all: ['expenses'] as const,\n lists: () => [...queryKeys.expenses.all, 'list'] as const,\n list: (filters?: { isActive?: boolean; categoryId?: string }) =>\n [...queryKeys.expenses.lists(), filters] as const,\n detail: (id: string) => [...queryKeys.expenses.all, 'detail', id] as const,\n },\n\n // Expense Categories\n expenseCategories: {\n all: ['expenseCategories'] as const,\n list: () => [...queryKeys.expenseCategories.all, 'list'] as const,\n },\n\n // Expense Payments\n expensePayments: {\n all: ['expensePayments'] as const,\n lists: () => [...queryKeys.expensePayments.all, 'list'] as const,\n list: (filters?: { expenseId?: string; dateFrom?: string; dateTo?: string }) =>\n [...queryKeys.expensePayments.lists(), filters] as const,\n detail: (id: string) => [...queryKeys.expensePayments.all, 'detail', id] as const,\n },\n\n // -------------------------------------------------------------------------\n // Income\n // -------------------------------------------------------------------------\n incomes: {\n all: ['incomes'] as const,\n lists: () => [...queryKeys.incomes.all, 'list'] as const,\n list: (filters?: { isActive?: boolean; categoryId?: string }) =>\n [...queryKeys.incomes.lists(), filters] as const,\n detail: (id: string) => [...queryKeys.incomes.all, 'detail', id] as const,\n },\n\n // Income Categories\n incomeCategories: {\n all: ['incomeCategories'] as const,\n list: () => [...queryKeys.incomeCategories.all, 'list'] as const,\n },\n\n // Income Payments\n incomePayments: {\n all: ['incomePayments'] as const,\n lists: () => [...queryKeys.incomePayments.all, 'list'] as const,\n list: (filters?: { incomeId?: string; dateFrom?: string; dateTo?: string }) =>\n [...queryKeys.incomePayments.lists(), filters] as const,\n detail: (id: string) => [...queryKeys.incomePayments.all, 'detail', id] as const,\n },\n\n // Exchange Rates\n exchangeRates: {\n all: ['exchangeRates'] as const,\n list: () => [...queryKeys.exchangeRates.all, 'list'] as const,\n },\n\n // -------------------------------------------------------------------------\n // Focus\n // -------------------------------------------------------------------------\n focusSessions: {\n all: ['focusSessions'] as const,\n lists: () => [...queryKeys.focusSessions.all, 'list'] as const,\n list: (filters?: {\n date?: string\n categoryId?: string\n status?: string\n startedAfter?: string\n startedBefore?: string\n }) => [...queryKeys.focusSessions.lists(), filters] as const,\n today: () => [...queryKeys.focusSessions.all, 'today'] as const,\n active: () => [...queryKeys.focusSessions.all, 'active'] as const,\n detail: (id: string) => [...queryKeys.focusSessions.all, 'detail', id] as const,\n },\n\n // Focus Categories\n focusCategories: {\n all: ['focusCategories'] as const,\n list: () => [...queryKeys.focusCategories.all, 'list'] as const,\n },\n\n // -------------------------------------------------------------------------\n // Settings\n // -------------------------------------------------------------------------\n settings: {\n all: ['settings'] as const,\n detail: (key: string) => [...queryKeys.settings.all, key] as const,\n },\n\n // -------------------------------------------------------------------------\n // EF Work (Lieu Days & Links)\n // -------------------------------------------------------------------------\n lieuDays: {\n all: ['lieuDays'] as const,\n list: () => [...queryKeys.lieuDays.all, 'list'] as const,\n balance: () => [...queryKeys.lieuDays.all, 'balance'] as const,\n detail: (id: string) => [...queryKeys.lieuDays.all, 'detail', id] as const,\n },\n\n efLinks: {\n all: ['efLinks'] as const,\n list: () => [...queryKeys.efLinks.all, 'list'] as const,\n detail: (id: string) => [...queryKeys.efLinks.all, 'detail', id] as const,\n },\n\n // -------------------------------------------------------------------------\n // Banking\n // -------------------------------------------------------------------------\n bankConnections: {\n all: ['bankConnections'] as const,\n list: () => [...queryKeys.bankConnections.all, 'list'] as const,\n detail: (id: string) => [...queryKeys.bankConnections.all, 'detail', id] as const,\n },\n\n bankTransactions: {\n all: ['bankTransactions'] as const,\n lists: () => [...queryKeys.bankTransactions.all, 'list'] as const,\n list: (filters?: { connectionId?: string; dateFrom?: string; dateTo?: string }) =>\n [...queryKeys.bankTransactions.lists(), filters] as const,\n stats: (connectionId?: string) =>\n [...queryKeys.bankTransactions.all, 'stats', connectionId] as const,\n },\n\n // -------------------------------------------------------------------------\n // Health\n // -------------------------------------------------------------------------\n healthCategories: {\n all: ['healthCategories'] as const,\n list: () => [...queryKeys.healthCategories.all, 'list'] as const,\n detail: (id: string) => [...queryKeys.healthCategories.all, 'detail', id] as const,\n },\n\n healthHabits: {\n all: ['healthHabits'] as const,\n lists: () => [...queryKeys.healthHabits.all, 'list'] as const,\n list: (filters?: { categoryId?: string; isActive?: boolean }) =>\n [...queryKeys.healthHabits.lists(), filters] as const,\n detail: (id: string) => [...queryKeys.healthHabits.all, 'detail', id] as const,\n },\n\n healthCompletions: {\n all: ['healthCompletions'] as const,\n lists: () => [...queryKeys.healthCompletions.all, 'list'] as const,\n list: (filters?: { habitId?: string; dateFrom?: string; dateTo?: string }) =>\n [...queryKeys.healthCompletions.lists(), filters] as const,\n forHabit: (habitId: string) => [...queryKeys.healthCompletions.all, 'habit', habitId] as const,\n forDate: (date: string) => [...queryKeys.healthCompletions.all, 'date', date] as const,\n },\n\n healthStats: {\n all: ['healthStats'] as const,\n forDate: (date?: string) => [...queryKeys.healthStats.all, date ?? 'today'] as const,\n },\n\n // -------------------------------------------------------------------------\n // Prompts\n // -------------------------------------------------------------------------\n promptCategories: {\n all: ['promptCategories'] as const,\n list: () => [...queryKeys.promptCategories.all, 'list'] as const,\n detail: (id: string) => [...queryKeys.promptCategories.all, 'detail', id] as const,\n },\n\n promptLabels: {\n all: ['promptLabels'] as const,\n list: () => [...queryKeys.promptLabels.all, 'list'] as const,\n detail: (id: string) => [...queryKeys.promptLabels.all, 'detail', id] as const,\n },\n\n prompts: {\n all: ['prompts'] as const,\n lists: () => [...queryKeys.prompts.all, 'list'] as const,\n list: (filters?: {\n categoryId?: string\n labelId?: string\n isFavorite?: boolean\n search?: string\n }) => [...queryKeys.prompts.lists(), filters] as const,\n detail: (id: string) => [...queryKeys.prompts.all, 'detail', id] as const,\n },\n\n // -------------------------------------------------------------------------\n // Training\n // -------------------------------------------------------------------------\n trainingActivities: {\n all: ['trainingActivities'] as const,\n list: () => [...queryKeys.trainingActivities.all, 'list'] as const,\n detail: (id: string) => [...queryKeys.trainingActivities.all, 'detail', id] as const,\n byStravaType: (stravaType: string) =>\n [...queryKeys.trainingActivities.all, 'strava', stravaType] as const,\n },\n\n trainingSessions: {\n all: ['trainingSessions'] as const,\n lists: () => [...queryKeys.trainingSessions.all, 'list'] as const,\n list: (filters?: {\n activityId?: string\n dateFrom?: string\n dateTo?: string\n source?: 'manual' | 'strava'\n }) => [...queryKeys.trainingSessions.lists(), filters] as const,\n detail: (id: string) => [...queryKeys.trainingSessions.all, 'detail', id] as const,\n byStravaId: (stravaActivityId: string) =>\n [...queryKeys.trainingSessions.all, 'strava', stravaActivityId] as const,\n },\n\n plannedSessions: {\n all: ['plannedSessions'] as const,\n lists: () => [...queryKeys.plannedSessions.all, 'list'] as const,\n list: (filters?: {\n activityId?: string\n dateFrom?: string\n dateTo?: string\n isCompleted?: boolean\n }) => [...queryKeys.plannedSessions.lists(), filters] as const,\n detail: (id: string) => [...queryKeys.plannedSessions.all, 'detail', id] as const,\n upcoming: () => [...queryKeys.plannedSessions.all, 'upcoming'] as const,\n },\n\n races: {\n all: ['races'] as const,\n lists: () => [...queryKeys.races.all, 'list'] as const,\n list: (filters?: {\n type?: 'race' | 'event' | 'goal'\n status?: 'upcoming' | 'completed' | 'dns' | 'dnf'\n dateFrom?: string\n dateTo?: string\n }) => [...queryKeys.races.lists(), filters] as const,\n detail: (id: string) => [...queryKeys.races.all, 'detail', id] as const,\n next: () => [...queryKeys.races.all, 'next'] as const,\n },\n\n trainingStats: {\n all: ['trainingStats'] as const,\n forRange: (dateFrom?: string, dateTo?: string) =>\n [...queryKeys.trainingStats.all, dateFrom, dateTo] as const,\n },\n\n // Strava\n strava: {\n all: ['strava'] as const,\n athlete: () => [...queryKeys.strava.all, 'athlete'] as const,\n connected: () => [...queryKeys.strava.all, 'connected'] as const,\n activities: (options?: { after?: number; before?: number }) =>\n [...queryKeys.strava.all, 'activities', options] as const,\n },\n\n // -------------------------------------------------------------------------\n // Journal\n // -------------------------------------------------------------------------\n journalEntries: {\n all: ['journalEntries'] as const,\n lists: () => [...queryKeys.journalEntries.all, 'list'] as const,\n list: (filters?: { dateFrom?: string; dateTo?: string }) =>\n [...queryKeys.journalEntries.lists(), filters] as const,\n forDate: (date: string) => [...queryKeys.journalEntries.all, 'date', date] as const,\n },\n\n // Journal data (aggregated)\n journalData: {\n all: ['journalData'] as const,\n forDate: (date: string) => [...queryKeys.journalData.all, date] as const,\n },\n\n // -------------------------------------------------------------------------\n // Chat\n // -------------------------------------------------------------------------\n chatConversations: {\n all: ['chatConversations'] as const,\n list: () => [...queryKeys.chatConversations.all, 'list'] as const,\n detail: (id: string) => [...queryKeys.chatConversations.all, 'detail', id] as const,\n },\n\n chatMessages: {\n all: ['chatMessages'] as const,\n forConversation: (conversationId: string) =>\n [...queryKeys.chatMessages.all, 'conversation', conversationId] as const,\n },\n\n // -------------------------------------------------------------------------\n // Google Calendar\n // -------------------------------------------------------------------------\n googleCalendar: {\n all: ['googleCalendar'] as const,\n calendars: () => [...queryKeys.googleCalendar.all, 'calendars'] as const,\n events: (calendarId: string, timeMin?: string, timeMax?: string) =>\n [...queryKeys.googleCalendar.all, 'events', calendarId, timeMin, timeMax] as const,\n },\n\n // -------------------------------------------------------------------------\n // Linear\n // -------------------------------------------------------------------------\n linear: {\n all: ['linear'] as const,\n issues: (filters?: { projectId?: string; status?: string }) =>\n [...queryKeys.linear.all, 'issues', filters] as const,\n projects: () => [...queryKeys.linear.all, 'projects'] as const,\n },\n} as const\n\n// ============================================================================\n// Type Exports\n// ============================================================================\n\nexport type QueryKeys = typeof queryKeys\n\n"],"mappings":"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","names":[]}
|