zele 0.3.0 → 0.3.6

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 (157) hide show
  1. package/README.md +1 -1
  2. package/bin/zele +27 -0
  3. package/dist/api-utils.d.ts +51 -2
  4. package/dist/api-utils.js +89 -3
  5. package/dist/api-utils.js.map +1 -1
  6. package/dist/auth.d.ts +27 -6
  7. package/dist/auth.js +185 -129
  8. package/dist/auth.js.map +1 -1
  9. package/dist/calendar-client.d.ts +16 -9
  10. package/dist/calendar-client.js +163 -59
  11. package/dist/calendar-client.js.map +1 -1
  12. package/dist/cli.js +34 -1
  13. package/dist/cli.js.map +1 -1
  14. package/dist/commands/attachment.js +17 -15
  15. package/dist/commands/attachment.js.map +1 -1
  16. package/dist/commands/auth-cmd.js +20 -9
  17. package/dist/commands/auth-cmd.js.map +1 -1
  18. package/dist/commands/calendar.js +67 -78
  19. package/dist/commands/calendar.js.map +1 -1
  20. package/dist/commands/draft.js +25 -18
  21. package/dist/commands/draft.js.map +1 -1
  22. package/dist/commands/label.js +33 -45
  23. package/dist/commands/label.js.map +1 -1
  24. package/dist/commands/mail-actions.js +11 -13
  25. package/dist/commands/mail-actions.js.map +1 -1
  26. package/dist/commands/mail.js +119 -127
  27. package/dist/commands/mail.js.map +1 -1
  28. package/dist/commands/profile.js +18 -21
  29. package/dist/commands/profile.js.map +1 -1
  30. package/dist/commands/watch.js +33 -261
  31. package/dist/commands/watch.js.map +1 -1
  32. package/dist/db.js +12 -13
  33. package/dist/db.js.map +1 -1
  34. package/dist/generated/browser.d.ts +12 -27
  35. package/dist/generated/client.d.ts +13 -28
  36. package/dist/generated/client.js +1 -1
  37. package/dist/generated/commonInputTypes.d.ts +90 -26
  38. package/dist/generated/enums.d.ts +0 -4
  39. package/dist/generated/enums.js +0 -3
  40. package/dist/generated/enums.js.map +1 -1
  41. package/dist/generated/internal/class.d.ts +22 -55
  42. package/dist/generated/internal/class.js +12 -4
  43. package/dist/generated/internal/class.js.map +1 -1
  44. package/dist/generated/internal/prismaNamespace.d.ts +272 -511
  45. package/dist/generated/internal/prismaNamespace.js +54 -66
  46. package/dist/generated/internal/prismaNamespace.js.map +1 -1
  47. package/dist/generated/internal/prismaNamespaceBrowser.d.ts +60 -74
  48. package/dist/generated/internal/prismaNamespaceBrowser.js +50 -62
  49. package/dist/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  50. package/dist/generated/models/Account.d.ts +1637 -0
  51. package/dist/generated/models/Account.js +2 -0
  52. package/dist/generated/models/Account.js.map +1 -0
  53. package/dist/generated/models/CalendarList.d.ts +1161 -0
  54. package/dist/generated/models/CalendarList.js +2 -0
  55. package/dist/generated/models/CalendarList.js.map +1 -0
  56. package/dist/generated/models/Label.d.ts +1161 -0
  57. package/dist/generated/models/Label.js +2 -0
  58. package/dist/generated/models/Label.js.map +1 -0
  59. package/dist/generated/models/Profile.d.ts +1269 -0
  60. package/dist/generated/models/Profile.js +2 -0
  61. package/dist/generated/models/Profile.js.map +1 -0
  62. package/dist/generated/models/SyncState.d.ts +1130 -0
  63. package/dist/generated/models/SyncState.js +2 -0
  64. package/dist/generated/models/SyncState.js.map +1 -0
  65. package/dist/generated/models/Thread.d.ts +1608 -0
  66. package/dist/generated/models/Thread.js +2 -0
  67. package/dist/generated/models/Thread.js.map +1 -0
  68. package/dist/generated/models.d.ts +6 -9
  69. package/dist/gmail-client.d.ts +119 -94
  70. package/dist/gmail-client.js +862 -322
  71. package/dist/gmail-client.js.map +1 -1
  72. package/dist/mail-tui.d.ts +1 -0
  73. package/dist/mail-tui.js +517 -0
  74. package/dist/mail-tui.js.map +1 -0
  75. package/dist/output.d.ts +6 -0
  76. package/dist/output.js +124 -11
  77. package/dist/output.js.map +1 -1
  78. package/package.json +39 -11
  79. package/schema.prisma +81 -113
  80. package/src/api-utils.ts +103 -5
  81. package/src/auth.ts +224 -143
  82. package/src/calendar-client.ts +196 -89
  83. package/src/cli.ts +39 -1
  84. package/src/commands/attachment.ts +18 -19
  85. package/src/commands/auth-cmd.ts +19 -9
  86. package/src/commands/calendar.ts +42 -85
  87. package/src/commands/draft.ts +19 -22
  88. package/src/commands/label.ts +21 -57
  89. package/src/commands/mail-actions.ts +11 -19
  90. package/src/commands/mail.ts +109 -148
  91. package/src/commands/profile.ts +12 -28
  92. package/src/commands/watch.ts +37 -304
  93. package/src/db.ts +13 -16
  94. package/src/generated/browser.ts +49 -0
  95. package/src/generated/client.ts +71 -0
  96. package/src/generated/commonInputTypes.ts +332 -0
  97. package/src/generated/enums.ts +17 -0
  98. package/src/generated/internal/class.ts +250 -0
  99. package/src/generated/internal/prismaNamespace.ts +1198 -0
  100. package/src/generated/internal/prismaNamespaceBrowser.ts +169 -0
  101. package/src/generated/models/Account.ts +1848 -0
  102. package/src/generated/models/CalendarList.ts +1331 -0
  103. package/src/generated/models/Label.ts +1331 -0
  104. package/src/generated/models/Profile.ts +1439 -0
  105. package/src/generated/models/SyncState.ts +1300 -0
  106. package/src/generated/models/Thread.ts +1787 -0
  107. package/src/generated/models.ts +17 -0
  108. package/src/gmail-client.test.ts +59 -0
  109. package/src/gmail-client.ts +1034 -429
  110. package/src/mail-tui.tsx +1061 -0
  111. package/src/output.test.ts +1093 -0
  112. package/src/output.ts +128 -13
  113. package/src/schema.sql +58 -68
  114. package/src/test-fixtures/email-html/safe-claude-event.html +28 -0
  115. package/src/test-fixtures/email-html/safe-product-announcement.html +25 -0
  116. package/src/test-fixtures/email-html/safe-tracked-links.html +27 -0
  117. package/src/test-fixtures/email-html-snapshots/safe-claude-event.html.md +9 -0
  118. package/src/test-fixtures/email-html-snapshots/safe-product-announcement.html.md +13 -0
  119. package/src/test-fixtures/email-html-snapshots/safe-tracked-links.html.md +7 -0
  120. package/AGENTS.md +0 -26
  121. package/CHANGELOG.md +0 -43
  122. package/dist/generated/models/accounts.d.ts +0 -2000
  123. package/dist/generated/models/accounts.js +0 -2
  124. package/dist/generated/models/accounts.js.map +0 -1
  125. package/dist/generated/models/calendar_events.d.ts +0 -1433
  126. package/dist/generated/models/calendar_events.js +0 -2
  127. package/dist/generated/models/calendar_events.js.map +0 -1
  128. package/dist/generated/models/calendar_lists.d.ts +0 -1131
  129. package/dist/generated/models/calendar_lists.js +0 -2
  130. package/dist/generated/models/calendar_lists.js.map +0 -1
  131. package/dist/generated/models/label_counts.d.ts +0 -1131
  132. package/dist/generated/models/label_counts.js +0 -2
  133. package/dist/generated/models/label_counts.js.map +0 -1
  134. package/dist/generated/models/labels.d.ts +0 -1131
  135. package/dist/generated/models/labels.js +0 -2
  136. package/dist/generated/models/labels.js.map +0 -1
  137. package/dist/generated/models/profiles.d.ts +0 -1131
  138. package/dist/generated/models/profiles.js +0 -2
  139. package/dist/generated/models/profiles.js.map +0 -1
  140. package/dist/generated/models/sync_states.d.ts +0 -1107
  141. package/dist/generated/models/sync_states.js +0 -2
  142. package/dist/generated/models/sync_states.js.map +0 -1
  143. package/dist/generated/models/thread_lists.d.ts +0 -1404
  144. package/dist/generated/models/thread_lists.js +0 -2
  145. package/dist/generated/models/thread_lists.js.map +0 -1
  146. package/dist/generated/models/threads.d.ts +0 -1247
  147. package/dist/generated/models/threads.js +0 -2
  148. package/dist/generated/models/threads.js.map +0 -1
  149. package/dist/gmail-cache.d.ts +0 -60
  150. package/dist/gmail-cache.js +0 -264
  151. package/dist/gmail-cache.js.map +0 -1
  152. package/docs/gogcli-gmail-implementation.md +0 -599
  153. package/scripts/test-device-code-clients.ts +0 -186
  154. package/scripts/test-micropython-scopes.ts +0 -72
  155. package/scripts/test-oauth-clients.ts +0 -257
  156. package/src/gmail-cache.ts +0 -339
  157. package/tsconfig.json +0 -16
@@ -0,0 +1,332 @@
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!! */
3
+ /* eslint-disable */
4
+ // biome-ignore-all lint: generated file
5
+ // @ts-nocheck
6
+ /*
7
+ * This file exports various common sort, input & filter types that are not directly linked to a particular model.
8
+ *
9
+ * 🟢 You can import this file directly.
10
+ */
11
+
12
+ import type * as runtime from "@prisma/client/runtime/client"
13
+ import * as $Enums from "./enums.js"
14
+ import type * as Prisma from "./internal/prismaNamespace.js"
15
+
16
+
17
+ export type StringFilter<$PrismaModel = never> = {
18
+ equals?: string | Prisma.StringFieldRefInput<$PrismaModel>
19
+ in?: string[]
20
+ notIn?: string[]
21
+ lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
22
+ lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
23
+ gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
24
+ gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
25
+ contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
26
+ startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
27
+ endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
28
+ not?: Prisma.NestedStringFilter<$PrismaModel> | string
29
+ }
30
+
31
+ export type EnumAccountStatusFilter<$PrismaModel = never> = {
32
+ equals?: $Enums.AccountStatus | Prisma.EnumAccountStatusFieldRefInput<$PrismaModel>
33
+ in?: $Enums.AccountStatus[]
34
+ notIn?: $Enums.AccountStatus[]
35
+ not?: Prisma.NestedEnumAccountStatusFilter<$PrismaModel> | $Enums.AccountStatus
36
+ }
37
+
38
+ export type DateTimeFilter<$PrismaModel = never> = {
39
+ equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
40
+ in?: Date[] | string[]
41
+ notIn?: Date[] | string[]
42
+ lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
43
+ lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
44
+ gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
45
+ gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
46
+ not?: Prisma.NestedDateTimeFilter<$PrismaModel> | Date | string
47
+ }
48
+
49
+ export type StringWithAggregatesFilter<$PrismaModel = never> = {
50
+ equals?: string | Prisma.StringFieldRefInput<$PrismaModel>
51
+ in?: string[]
52
+ notIn?: string[]
53
+ lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
54
+ lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
55
+ gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
56
+ gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
57
+ contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
58
+ startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
59
+ endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
60
+ not?: Prisma.NestedStringWithAggregatesFilter<$PrismaModel> | string
61
+ _count?: Prisma.NestedIntFilter<$PrismaModel>
62
+ _min?: Prisma.NestedStringFilter<$PrismaModel>
63
+ _max?: Prisma.NestedStringFilter<$PrismaModel>
64
+ }
65
+
66
+ export type EnumAccountStatusWithAggregatesFilter<$PrismaModel = never> = {
67
+ equals?: $Enums.AccountStatus | Prisma.EnumAccountStatusFieldRefInput<$PrismaModel>
68
+ in?: $Enums.AccountStatus[]
69
+ notIn?: $Enums.AccountStatus[]
70
+ not?: Prisma.NestedEnumAccountStatusWithAggregatesFilter<$PrismaModel> | $Enums.AccountStatus
71
+ _count?: Prisma.NestedIntFilter<$PrismaModel>
72
+ _min?: Prisma.NestedEnumAccountStatusFilter<$PrismaModel>
73
+ _max?: Prisma.NestedEnumAccountStatusFilter<$PrismaModel>
74
+ }
75
+
76
+ export type DateTimeWithAggregatesFilter<$PrismaModel = never> = {
77
+ equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
78
+ in?: Date[] | string[]
79
+ notIn?: Date[] | string[]
80
+ lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
81
+ lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
82
+ gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
83
+ gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
84
+ not?: Prisma.NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string
85
+ _count?: Prisma.NestedIntFilter<$PrismaModel>
86
+ _min?: Prisma.NestedDateTimeFilter<$PrismaModel>
87
+ _max?: Prisma.NestedDateTimeFilter<$PrismaModel>
88
+ }
89
+
90
+ export type IntFilter<$PrismaModel = never> = {
91
+ equals?: number | Prisma.IntFieldRefInput<$PrismaModel>
92
+ in?: number[]
93
+ notIn?: number[]
94
+ lt?: number | Prisma.IntFieldRefInput<$PrismaModel>
95
+ lte?: number | Prisma.IntFieldRefInput<$PrismaModel>
96
+ gt?: number | Prisma.IntFieldRefInput<$PrismaModel>
97
+ gte?: number | Prisma.IntFieldRefInput<$PrismaModel>
98
+ not?: Prisma.NestedIntFilter<$PrismaModel> | number
99
+ }
100
+
101
+ export type BoolFilter<$PrismaModel = never> = {
102
+ equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel>
103
+ not?: Prisma.NestedBoolFilter<$PrismaModel> | boolean
104
+ }
105
+
106
+ export type StringNullableFilter<$PrismaModel = never> = {
107
+ equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null
108
+ in?: string[] | null
109
+ notIn?: string[] | null
110
+ lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
111
+ lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
112
+ gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
113
+ gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
114
+ contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
115
+ startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
116
+ endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
117
+ not?: Prisma.NestedStringNullableFilter<$PrismaModel> | string | null
118
+ }
119
+
120
+ export type SortOrderInput = {
121
+ sort: Prisma.SortOrder
122
+ nulls?: Prisma.NullsOrder
123
+ }
124
+
125
+ export type IntWithAggregatesFilter<$PrismaModel = never> = {
126
+ equals?: number | Prisma.IntFieldRefInput<$PrismaModel>
127
+ in?: number[]
128
+ notIn?: number[]
129
+ lt?: number | Prisma.IntFieldRefInput<$PrismaModel>
130
+ lte?: number | Prisma.IntFieldRefInput<$PrismaModel>
131
+ gt?: number | Prisma.IntFieldRefInput<$PrismaModel>
132
+ gte?: number | Prisma.IntFieldRefInput<$PrismaModel>
133
+ not?: Prisma.NestedIntWithAggregatesFilter<$PrismaModel> | number
134
+ _count?: Prisma.NestedIntFilter<$PrismaModel>
135
+ _avg?: Prisma.NestedFloatFilter<$PrismaModel>
136
+ _sum?: Prisma.NestedIntFilter<$PrismaModel>
137
+ _min?: Prisma.NestedIntFilter<$PrismaModel>
138
+ _max?: Prisma.NestedIntFilter<$PrismaModel>
139
+ }
140
+
141
+ export type BoolWithAggregatesFilter<$PrismaModel = never> = {
142
+ equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel>
143
+ not?: Prisma.NestedBoolWithAggregatesFilter<$PrismaModel> | boolean
144
+ _count?: Prisma.NestedIntFilter<$PrismaModel>
145
+ _min?: Prisma.NestedBoolFilter<$PrismaModel>
146
+ _max?: Prisma.NestedBoolFilter<$PrismaModel>
147
+ }
148
+
149
+ export type StringNullableWithAggregatesFilter<$PrismaModel = never> = {
150
+ equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null
151
+ in?: string[] | null
152
+ notIn?: string[] | null
153
+ lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
154
+ lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
155
+ gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
156
+ gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
157
+ contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
158
+ startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
159
+ endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
160
+ not?: Prisma.NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null
161
+ _count?: Prisma.NestedIntNullableFilter<$PrismaModel>
162
+ _min?: Prisma.NestedStringNullableFilter<$PrismaModel>
163
+ _max?: Prisma.NestedStringNullableFilter<$PrismaModel>
164
+ }
165
+
166
+ export type NestedStringFilter<$PrismaModel = never> = {
167
+ equals?: string | Prisma.StringFieldRefInput<$PrismaModel>
168
+ in?: string[]
169
+ notIn?: string[]
170
+ lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
171
+ lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
172
+ gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
173
+ gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
174
+ contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
175
+ startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
176
+ endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
177
+ not?: Prisma.NestedStringFilter<$PrismaModel> | string
178
+ }
179
+
180
+ export type NestedEnumAccountStatusFilter<$PrismaModel = never> = {
181
+ equals?: $Enums.AccountStatus | Prisma.EnumAccountStatusFieldRefInput<$PrismaModel>
182
+ in?: $Enums.AccountStatus[]
183
+ notIn?: $Enums.AccountStatus[]
184
+ not?: Prisma.NestedEnumAccountStatusFilter<$PrismaModel> | $Enums.AccountStatus
185
+ }
186
+
187
+ export type NestedDateTimeFilter<$PrismaModel = never> = {
188
+ equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
189
+ in?: Date[] | string[]
190
+ notIn?: Date[] | string[]
191
+ lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
192
+ lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
193
+ gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
194
+ gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
195
+ not?: Prisma.NestedDateTimeFilter<$PrismaModel> | Date | string
196
+ }
197
+
198
+ export type NestedStringWithAggregatesFilter<$PrismaModel = never> = {
199
+ equals?: string | Prisma.StringFieldRefInput<$PrismaModel>
200
+ in?: string[]
201
+ notIn?: string[]
202
+ lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
203
+ lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
204
+ gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
205
+ gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
206
+ contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
207
+ startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
208
+ endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
209
+ not?: Prisma.NestedStringWithAggregatesFilter<$PrismaModel> | string
210
+ _count?: Prisma.NestedIntFilter<$PrismaModel>
211
+ _min?: Prisma.NestedStringFilter<$PrismaModel>
212
+ _max?: Prisma.NestedStringFilter<$PrismaModel>
213
+ }
214
+
215
+ export type NestedIntFilter<$PrismaModel = never> = {
216
+ equals?: number | Prisma.IntFieldRefInput<$PrismaModel>
217
+ in?: number[]
218
+ notIn?: number[]
219
+ lt?: number | Prisma.IntFieldRefInput<$PrismaModel>
220
+ lte?: number | Prisma.IntFieldRefInput<$PrismaModel>
221
+ gt?: number | Prisma.IntFieldRefInput<$PrismaModel>
222
+ gte?: number | Prisma.IntFieldRefInput<$PrismaModel>
223
+ not?: Prisma.NestedIntFilter<$PrismaModel> | number
224
+ }
225
+
226
+ export type NestedEnumAccountStatusWithAggregatesFilter<$PrismaModel = never> = {
227
+ equals?: $Enums.AccountStatus | Prisma.EnumAccountStatusFieldRefInput<$PrismaModel>
228
+ in?: $Enums.AccountStatus[]
229
+ notIn?: $Enums.AccountStatus[]
230
+ not?: Prisma.NestedEnumAccountStatusWithAggregatesFilter<$PrismaModel> | $Enums.AccountStatus
231
+ _count?: Prisma.NestedIntFilter<$PrismaModel>
232
+ _min?: Prisma.NestedEnumAccountStatusFilter<$PrismaModel>
233
+ _max?: Prisma.NestedEnumAccountStatusFilter<$PrismaModel>
234
+ }
235
+
236
+ export type NestedDateTimeWithAggregatesFilter<$PrismaModel = never> = {
237
+ equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
238
+ in?: Date[] | string[]
239
+ notIn?: Date[] | string[]
240
+ lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
241
+ lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
242
+ gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
243
+ gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
244
+ not?: Prisma.NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string
245
+ _count?: Prisma.NestedIntFilter<$PrismaModel>
246
+ _min?: Prisma.NestedDateTimeFilter<$PrismaModel>
247
+ _max?: Prisma.NestedDateTimeFilter<$PrismaModel>
248
+ }
249
+
250
+ export type NestedBoolFilter<$PrismaModel = never> = {
251
+ equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel>
252
+ not?: Prisma.NestedBoolFilter<$PrismaModel> | boolean
253
+ }
254
+
255
+ export type NestedStringNullableFilter<$PrismaModel = never> = {
256
+ equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null
257
+ in?: string[] | null
258
+ notIn?: string[] | null
259
+ lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
260
+ lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
261
+ gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
262
+ gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
263
+ contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
264
+ startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
265
+ endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
266
+ not?: Prisma.NestedStringNullableFilter<$PrismaModel> | string | null
267
+ }
268
+
269
+ export type NestedIntWithAggregatesFilter<$PrismaModel = never> = {
270
+ equals?: number | Prisma.IntFieldRefInput<$PrismaModel>
271
+ in?: number[]
272
+ notIn?: number[]
273
+ lt?: number | Prisma.IntFieldRefInput<$PrismaModel>
274
+ lte?: number | Prisma.IntFieldRefInput<$PrismaModel>
275
+ gt?: number | Prisma.IntFieldRefInput<$PrismaModel>
276
+ gte?: number | Prisma.IntFieldRefInput<$PrismaModel>
277
+ not?: Prisma.NestedIntWithAggregatesFilter<$PrismaModel> | number
278
+ _count?: Prisma.NestedIntFilter<$PrismaModel>
279
+ _avg?: Prisma.NestedFloatFilter<$PrismaModel>
280
+ _sum?: Prisma.NestedIntFilter<$PrismaModel>
281
+ _min?: Prisma.NestedIntFilter<$PrismaModel>
282
+ _max?: Prisma.NestedIntFilter<$PrismaModel>
283
+ }
284
+
285
+ export type NestedFloatFilter<$PrismaModel = never> = {
286
+ equals?: number | Prisma.FloatFieldRefInput<$PrismaModel>
287
+ in?: number[]
288
+ notIn?: number[]
289
+ lt?: number | Prisma.FloatFieldRefInput<$PrismaModel>
290
+ lte?: number | Prisma.FloatFieldRefInput<$PrismaModel>
291
+ gt?: number | Prisma.FloatFieldRefInput<$PrismaModel>
292
+ gte?: number | Prisma.FloatFieldRefInput<$PrismaModel>
293
+ not?: Prisma.NestedFloatFilter<$PrismaModel> | number
294
+ }
295
+
296
+ export type NestedBoolWithAggregatesFilter<$PrismaModel = never> = {
297
+ equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel>
298
+ not?: Prisma.NestedBoolWithAggregatesFilter<$PrismaModel> | boolean
299
+ _count?: Prisma.NestedIntFilter<$PrismaModel>
300
+ _min?: Prisma.NestedBoolFilter<$PrismaModel>
301
+ _max?: Prisma.NestedBoolFilter<$PrismaModel>
302
+ }
303
+
304
+ export type NestedStringNullableWithAggregatesFilter<$PrismaModel = never> = {
305
+ equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null
306
+ in?: string[] | null
307
+ notIn?: string[] | null
308
+ lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
309
+ lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
310
+ gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
311
+ gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
312
+ contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
313
+ startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
314
+ endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
315
+ not?: Prisma.NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null
316
+ _count?: Prisma.NestedIntNullableFilter<$PrismaModel>
317
+ _min?: Prisma.NestedStringNullableFilter<$PrismaModel>
318
+ _max?: Prisma.NestedStringNullableFilter<$PrismaModel>
319
+ }
320
+
321
+ export type NestedIntNullableFilter<$PrismaModel = never> = {
322
+ equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null
323
+ in?: number[] | null
324
+ notIn?: number[] | null
325
+ lt?: number | Prisma.IntFieldRefInput<$PrismaModel>
326
+ lte?: number | Prisma.IntFieldRefInput<$PrismaModel>
327
+ gt?: number | Prisma.IntFieldRefInput<$PrismaModel>
328
+ gte?: number | Prisma.IntFieldRefInput<$PrismaModel>
329
+ not?: Prisma.NestedIntNullableFilter<$PrismaModel> | number | null
330
+ }
331
+
332
+
@@ -0,0 +1,17 @@
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!! */
3
+ /* eslint-disable */
4
+ // biome-ignore-all lint: generated file
5
+ // @ts-nocheck
6
+ /*
7
+ * This file exports all enum related types from the schema.
8
+ *
9
+ * 🟢 You can import this file directly.
10
+ */
11
+
12
+ export const AccountStatus = {
13
+ active: 'active',
14
+ disabled: 'disabled'
15
+ } as const
16
+
17
+ export type AccountStatus = (typeof AccountStatus)[keyof typeof AccountStatus]
@@ -0,0 +1,250 @@
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!! */
3
+ /* eslint-disable */
4
+ // biome-ignore-all lint: generated file
5
+ // @ts-nocheck
6
+ /*
7
+ * WARNING: This is an internal file that is subject to change!
8
+ *
9
+ * 🛑 Under no circumstances should you import this file directly! 🛑
10
+ *
11
+ * Please import the `PrismaClient` class from the `client.ts` file instead.
12
+ */
13
+
14
+ import * as runtime from "@prisma/client/runtime/client"
15
+ import type * as Prisma from "./prismaNamespace.js"
16
+
17
+
18
+ const config: runtime.GetPrismaClientConfig = {
19
+ "previewFeatures": [],
20
+ "clientVersion": "7.4.0",
21
+ "engineVersion": "ab56fe763f921d033a6c195e7ddeb3e255bdbb57",
22
+ "activeProvider": "sqlite",
23
+ "inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"./src/generated\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n}\n\n// Lifecycle status for account credentials stored in `Account`.\nenum AccountStatus {\n active\n disabled\n}\n\n// Stores one OAuth credential set per (email, appId) pair.\n// appId is the Google OAuth client ID used during login, enabling\n// multiple OAuth apps per email (different quotas, scopes, etc.).\n// Default is the Thunderbird client ID (the original/only client).\nmodel Account {\n email String\n appId String\n accountStatus AccountStatus\n tokens String // JSON-encoded OAuth2 Credentials\n createdAt DateTime\n updatedAt DateTime @updatedAt\n\n threads Thread[]\n labels Label?\n profiles Profile?\n syncStates SyncState[]\n calendarLists CalendarList?\n\n @@id([email, appId])\n}\n\n// Caches hydrated thread payloads per account + thread ID.\n// Used by mail read and post-mutation cache invalidation.\n// rawData stores the raw Google gmail_v1.Schema$Thread response (format: full)\n// so the cache is resilient to changes in our own ThreadData type.\n// Indexed columns are extracted for queryability and display.\nmodel Thread {\n id Int @id @default(autoincrement())\n email String\n appId String\n threadId String\n subject String // extracted for display/search\n snippet String // extracted for display\n fromEmail String // extracted for filtering\n fromName String // extracted for display\n date String // extracted for sorting (RFC2822 from header)\n labelIds String // comma-separated, extracted for filtering\n hasUnread Boolean // extracted for filtering\n msgCount Int // extracted for display\n historyId String? // for sync\n rawData String // raw Google API response JSON (gmail_v1.Schema$Thread)\n ttlMs Int\n createdAt DateTime\n\n account Account @relation(fields: [email, appId], references: [email, appId], onDelete: Cascade)\n\n @@unique([email, appId, threadId])\n}\n\n// Caches label metadata per account (label id/name/type payload).\n// Used by label list/get and related command outputs.\n// rawData stores the raw Google gmail_v1.Schema$Label[] response.\nmodel Label {\n email String\n appId String\n rawData String // raw Google API response JSON (gmail_v1.Schema$Label[])\n ttlMs Int\n createdAt DateTime\n\n account Account @relation(fields: [email, appId], references: [email, appId], onDelete: Cascade)\n\n @@id([email, appId])\n}\n\n// Caches Gmail profile payload per account (totals/history id).\n// Used by profile command and account metadata lookups.\n// Fully flattened — no JSON blob needed, only 4 fields from Google.\nmodel Profile {\n email String\n appId String\n emailAddress String // from Gmail API\n messagesTotal Int // from Gmail API\n threadsTotal Int // from Gmail API\n historyId String // from Gmail API\n ttlMs Int\n createdAt DateTime\n\n account Account @relation(fields: [email, appId], references: [email, appId], onDelete: Cascade)\n\n @@id([email, appId])\n}\n\n// Caches calendar list per account.\n// Used by cal list to avoid fetching calendar metadata on every invocation.\n// rawData stores parsed CalendarListItem[] JSON (not raw tsdav — parsed at write time).\nmodel CalendarList {\n email String\n appId String\n rawData String // JSON blob of CalendarListItem[]\n ttlMs Int\n createdAt DateTime\n\n account Account @relation(fields: [email, appId], references: [email, appId], onDelete: Cascade)\n\n @@id([email, appId])\n}\n\n// Stores persistent per-account sync metadata as generic key/value pairs.\n// Use this for lightweight sync cursors and markers that are not cached API\n// payloads, for example `history_id` (incremental Gmail history cursor),\n// `last_full_sync_at`, or other small account-scoped checkpoints.\nmodel SyncState {\n email String\n appId String\n key String\n value String\n\n account Account @relation(fields: [email, appId], references: [email, appId], onDelete: Cascade)\n\n @@id([email, appId, key])\n}\n",
24
+ "runtimeDataModel": {
25
+ "models": {},
26
+ "enums": {},
27
+ "types": {}
28
+ },
29
+ "parameterizationSchema": {
30
+ "strings": [],
31
+ "graph": ""
32
+ }
33
+ }
34
+
35
+ config.runtimeDataModel = JSON.parse("{\"models\":{\"Account\":{\"fields\":[{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"appId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"accountStatus\",\"kind\":\"enum\",\"type\":\"AccountStatus\"},{\"name\":\"tokens\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"threads\",\"kind\":\"object\",\"type\":\"Thread\",\"relationName\":\"AccountToThread\"},{\"name\":\"labels\",\"kind\":\"object\",\"type\":\"Label\",\"relationName\":\"AccountToLabel\"},{\"name\":\"profiles\",\"kind\":\"object\",\"type\":\"Profile\",\"relationName\":\"AccountToProfile\"},{\"name\":\"syncStates\",\"kind\":\"object\",\"type\":\"SyncState\",\"relationName\":\"AccountToSyncState\"},{\"name\":\"calendarLists\",\"kind\":\"object\",\"type\":\"CalendarList\",\"relationName\":\"AccountToCalendarList\"}],\"dbName\":null},\"Thread\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"appId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"threadId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"subject\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snippet\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fromEmail\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fromName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"labelIds\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hasUnread\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"msgCount\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"historyId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"rawData\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ttlMs\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToThread\"}],\"dbName\":null},\"Label\":{\"fields\":[{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"appId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"rawData\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ttlMs\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToLabel\"}],\"dbName\":null},\"Profile\":{\"fields\":[{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"appId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"emailAddress\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"messagesTotal\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"threadsTotal\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"historyId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ttlMs\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToProfile\"}],\"dbName\":null},\"CalendarList\":{\"fields\":[{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"appId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"rawData\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ttlMs\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToCalendarList\"}],\"dbName\":null},\"SyncState\":{\"fields\":[{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"appId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"account\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToSyncState\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}")
36
+ config.parameterizationSchema = {
37
+ strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"account\",\"threads\",\"labels\",\"profiles\",\"syncStates\",\"calendarLists\",\"_count\",\"Account.findUnique\",\"Account.findUniqueOrThrow\",\"Account.findFirst\",\"Account.findFirstOrThrow\",\"Account.findMany\",\"data\",\"Account.createOne\",\"Account.createMany\",\"Account.createManyAndReturn\",\"Account.updateOne\",\"Account.updateMany\",\"Account.updateManyAndReturn\",\"create\",\"update\",\"Account.upsertOne\",\"Account.deleteOne\",\"Account.deleteMany\",\"having\",\"_min\",\"_max\",\"Account.groupBy\",\"Account.aggregate\",\"Thread.findUnique\",\"Thread.findUniqueOrThrow\",\"Thread.findFirst\",\"Thread.findFirstOrThrow\",\"Thread.findMany\",\"Thread.createOne\",\"Thread.createMany\",\"Thread.createManyAndReturn\",\"Thread.updateOne\",\"Thread.updateMany\",\"Thread.updateManyAndReturn\",\"Thread.upsertOne\",\"Thread.deleteOne\",\"Thread.deleteMany\",\"_avg\",\"_sum\",\"Thread.groupBy\",\"Thread.aggregate\",\"Label.findUnique\",\"Label.findUniqueOrThrow\",\"Label.findFirst\",\"Label.findFirstOrThrow\",\"Label.findMany\",\"Label.createOne\",\"Label.createMany\",\"Label.createManyAndReturn\",\"Label.updateOne\",\"Label.updateMany\",\"Label.updateManyAndReturn\",\"Label.upsertOne\",\"Label.deleteOne\",\"Label.deleteMany\",\"Label.groupBy\",\"Label.aggregate\",\"Profile.findUnique\",\"Profile.findUniqueOrThrow\",\"Profile.findFirst\",\"Profile.findFirstOrThrow\",\"Profile.findMany\",\"Profile.createOne\",\"Profile.createMany\",\"Profile.createManyAndReturn\",\"Profile.updateOne\",\"Profile.updateMany\",\"Profile.updateManyAndReturn\",\"Profile.upsertOne\",\"Profile.deleteOne\",\"Profile.deleteMany\",\"Profile.groupBy\",\"Profile.aggregate\",\"CalendarList.findUnique\",\"CalendarList.findUniqueOrThrow\",\"CalendarList.findFirst\",\"CalendarList.findFirstOrThrow\",\"CalendarList.findMany\",\"CalendarList.createOne\",\"CalendarList.createMany\",\"CalendarList.createManyAndReturn\",\"CalendarList.updateOne\",\"CalendarList.updateMany\",\"CalendarList.updateManyAndReturn\",\"CalendarList.upsertOne\",\"CalendarList.deleteOne\",\"CalendarList.deleteMany\",\"CalendarList.groupBy\",\"CalendarList.aggregate\",\"SyncState.findUnique\",\"SyncState.findUniqueOrThrow\",\"SyncState.findFirst\",\"SyncState.findFirstOrThrow\",\"SyncState.findMany\",\"SyncState.createOne\",\"SyncState.createMany\",\"SyncState.createManyAndReturn\",\"SyncState.updateOne\",\"SyncState.updateMany\",\"SyncState.updateManyAndReturn\",\"SyncState.upsertOne\",\"SyncState.deleteOne\",\"SyncState.deleteMany\",\"SyncState.groupBy\",\"SyncState.aggregate\",\"AND\",\"OR\",\"NOT\",\"email\",\"appId\",\"key\",\"value\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"contains\",\"startsWith\",\"endsWith\",\"not\",\"rawData\",\"ttlMs\",\"createdAt\",\"email_appId\",\"emailAddress\",\"messagesTotal\",\"threadsTotal\",\"historyId\",\"id\",\"threadId\",\"subject\",\"snippet\",\"fromEmail\",\"fromName\",\"date\",\"labelIds\",\"hasUnread\",\"msgCount\",\"AccountStatus\",\"accountStatus\",\"tokens\",\"updatedAt\",\"every\",\"some\",\"none\",\"email_appId_key\",\"email_appId_threadId\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"disconnect\",\"delete\",\"connect\",\"createMany\",\"set\",\"updateMany\",\"deleteMany\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"),
38
+ graph: "zAI6YA8EAADEAQAgBQAAxQEAIAYAAMYBACAHAADHAQAgCAAAyAEAIHIAAMIBADBzAAAUABB0AADCAQAwdQEArAEAIXYBAKwBACGGAUAArgEAIYcBAADPAQAglwEAAMMBlwEimAEBAKwBACGZAUAArgEAIQEAAAABACAUAwAArwEAIHIAAMwBADBzAAADABB0AADMAQAwdQEArAEAIXYBAKwBACGEAQEArAEAIYUBAgCtAQAhhgFAAK4BACGLAQEAzgEAIYwBAgCtAQAhjQEBAKwBACGOAQEArAEAIY8BAQCsAQAhkAEBAKwBACGRAQEArAEAIZIBAQCsAQAhkwEBAKwBACGUASAAzQEAIZUBAgCtAQAhAgMAAN8BACCLAQAA7gEAIBUDAACvAQAgcgAAzAEAMHMAAAMAEHQAAMwBADB1AQCsAQAhdgEArAEAIYQBAQCsAQAhhQECAK0BACGGAUAArgEAIYsBAQDOAQAhjAECAAAAAY0BAQCsAQAhjgEBAKwBACGPAQEArAEAIZABAQCsAQAhkQEBAKwBACGSAQEArAEAIZMBAQCsAQAhlAEgAM0BACGVAQIArQEAIZ4BAADLAQAgAwAAAAMAIAEAAAQAMAIAAAUAIAkDAACvAQAgcgAAtQEAMHMAAAcAEHQAALUBADB1AQCsAQAhdgEArAEAIYQBAQCsAQAhhQECAK0BACGGAUAArgEAIQEAAAAHACAMAwAArwEAIHIAALIBADBzAAAJABB0AACyAQAwdQEArAEAIXYBAKwBACGFAQIArQEAIYYBQACuAQAhiAEBAKwBACGJAQIArQEAIYoBAgCtAQAhiwEBAKwBACEBAAAACQAgCAMAAK8BACByAADKAQAwcwAACwAQdAAAygEAMHUBAKwBACF2AQCsAQAhdwEArAEAIXgBAKwBACEBAwAA3wEAIAkDAACvAQAgcgAAygEAMHMAAAsAEHQAAMoBADB1AQCsAQAhdgEArAEAIXcBAKwBACF4AQCsAQAhnQEAAMkBACADAAAACwAgAQAADAAwAgAADQAgCQMAAK8BACByAACrAQAwcwAADwAQdAAAqwEAMHUBAKwBACF2AQCsAQAhhAEBAKwBACGFAQIArQEAIYYBQACuAQAhAQAAAA8AIAEAAAADACABAAAACwAgAQAAAAEAIA4EAADEAQAgBQAAxQEAIAYAAMYBACAHAADHAQAgCAAAyAEAIHIAAMIBADBzAAAUABB0AADCAQAwdQEArAEAIXYBAKwBACGGAUAArgEAIZcBAADDAZcBIpgBAQCsAQAhmQFAAK4BACEFBAAArQIAIAUAAK4CACAGAACvAgAgBwAAsAIAIAgAALECACADAAAAFAAgAQAAFQAwAgAAAQAgAwAAABQAIAEAABUAMAIAAAEAIAMAAAAUACABAAAVADACAAABACALBAAAqAIAIAUAAKkCACAGAACqAgAgBwAAqwIAIAgAAKwCACB1AQAAAAF2AQAAAAGGAUAAAAABlwEAAACXAQKYAQEAAAABmQFAAAAAAQEPAAAZACAGdQEAAAABdgEAAAABhgFAAAAAAZcBAAAAlwECmAEBAAAAAZkBQAAAAAEBDwAAGwAwAQ8AABsAMAsEAAD8AQAgBQAA_QEAIAYAAP4BACAHAAD_AQAgCAAAgAIAIHUBANMBACF2AQDTAQAhhgFAANwBACGXAQAA-wGXASKYAQEA0wEAIZkBQADcAQAhAgAAAAEAIA8AAB4AIAZ1AQDTAQAhdgEA0wEAIYYBQADcAQAhlwEAAPsBlwEimAEBANMBACGZAUAA3AEAIQIAAAAUACAPAAAgACACAAAAFAAgDwAAIAAgAwAAAAEAIBYAABkAIBcAAB4AIAEAAAABACABAAAAFAAgAwkAAPgBACAcAAD6AQAgHQAA-QEAIAlyAAC-AQAwcwAAJwAQdAAAvgEAMHUBAJ8BACF2AQCfAQAhhgFAAKUBACGXAQAAvwGXASKYAQEAnwEAIZkBQAClAQAhAwAAABQAIAEAACYAMBsAACcAIAMAAAAUACABAAAVADACAAABACABAAAABQAgAQAAAAUAIAMAAAADACABAAAEADACAAAFACADAAAAAwAgAQAABAAwAgAABQAgAwAAAAMAIAEAAAQAMAIAAAUAIBEDAAD3AQAgdQEAAAABdgEAAAABhAEBAAAAAYUBAgAAAAGGAUAAAAABiwEBAAAAAYwBAgAAAAGNAQEAAAABjgEBAAAAAY8BAQAAAAGQAQEAAAABkQEBAAAAAZIBAQAAAAGTAQEAAAABlAEgAAAAAZUBAgAAAAEBDwAALwAgEHUBAAAAAXYBAAAAAYQBAQAAAAGFAQIAAAABhgFAAAAAAYsBAQAAAAGMAQIAAAABjQEBAAAAAY4BAQAAAAGPAQEAAAABkAEBAAAAAZEBAQAAAAGSAQEAAAABkwEBAAAAAZQBIAAAAAGVAQIAAAABAQ8AADEAMAEPAAAxADARAwAA9gEAIHUBANMBACF2AQDTAQAhhAEBANMBACGFAQIA2wEAIYYBQADcAQAhiwEBAPUBACGMAQIA2wEAIY0BAQDTAQAhjgEBANMBACGPAQEA0wEAIZABAQDTAQAhkQEBANMBACGSAQEA0wEAIZMBAQDTAQAhlAEgAPQBACGVAQIA2wEAIQIAAAAFACAPAAA0ACAQdQEA0wEAIXYBANMBACGEAQEA0wEAIYUBAgDbAQAhhgFAANwBACGLAQEA9QEAIYwBAgDbAQAhjQEBANMBACGOAQEA0wEAIY8BAQDTAQAhkAEBANMBACGRAQEA0wEAIZIBAQDTAQAhkwEBANMBACGUASAA9AEAIZUBAgDbAQAhAgAAAAMAIA8AADYAIAIAAAADACAPAAA2ACADAAAABQAgFgAALwAgFwAANAAgAQAAAAUAIAEAAAADACAGCQAA7wEAIBwAAPIBACAdAADxAQAgLgAA8AEAIC8AAPMBACCLAQAA7gEAIBNyAAC2AQAwcwAAPQAQdAAAtgEAMHUBAJ8BACF2AQCfAQAhhAEBAJ8BACGFAQIApAEAIYYBQAClAQAhiwEBALgBACGMAQIApAEAIY0BAQCfAQAhjgEBAJ8BACGPAQEAnwEAIZABAQCfAQAhkQEBAJ8BACGSAQEAnwEAIZMBAQCfAQAhlAEgALcBACGVAQIApAEAIQMAAAADACABAAA8ADAbAAA9ACADAAAAAwAgAQAABAAwAgAABQAgCgMAAK8BACByAAC1AQAwcwAABwAQdAAAtQEAMHUBAKwBACF2AQCsAQAhhAEBAKwBACGFAQIArQEAIYYBQACuAQAhhwEAALQBACABAAAAQAAgAQAAAEAAIAEDAADfAQAgAwAAAAcAIAEAAEMAMAIAAEAAIAMAAAAHACABAABDADACAABAACADAAAABwAgAQAAQwAwAgAAQAAgBgMAAO0BACB1AQAAAAF2AQAAAAGEAQEAAAABhQECAAAAAYYBQAAAAAEBDwAARwAgBXUBAAAAAXYBAAAAAYQBAQAAAAGFAQIAAAABhgFAAAAAAQEPAABJADABDwAASQAwBgMAAOwBACB1AQDTAQAhdgEA0wEAIYQBAQDTAQAhhQECANsBACGGAUAA3AEAIQIAAABAACAPAABMACAFdQEA0wEAIXYBANMBACGEAQEA0wEAIYUBAgDbAQAhhgFAANwBACECAAAABwAgDwAATgAgAgAAAAcAIA8AAE4AIAMAAABAACAWAABHACAXAABMACABAAAAQAAgAQAAAAcAIAUJAADnAQAgHAAA6gEAIB0AAOkBACAuAADoAQAgLwAA6wEAIAhyAACzAQAwcwAAVQAQdAAAswEAMHUBAJ8BACF2AQCfAQAhhAEBAJ8BACGFAQIApAEAIYYBQAClAQAhAwAAAAcAIAEAAFQAMBsAAFUAIAMAAAAHACABAABDADACAABAACANAwAArwEAIHIAALIBADBzAAAJABB0AACyAQAwdQEArAEAIXYBAKwBACGFAQIArQEAIYYBQACuAQAhhwEAALEBACCIAQEArAEAIYkBAgCtAQAhigECAK0BACGLAQEArAEAIQEAAABYACABAAAAWAAgAQMAAN8BACADAAAACQAgAQAAWwAwAgAAWAAgAwAAAAkAIAEAAFsAMAIAAFgAIAMAAAAJACABAABbADACAABYACAJAwAA5gEAIHUBAAAAAXYBAAAAAYUBAgAAAAGGAUAAAAABiAEBAAAAAYkBAgAAAAGKAQIAAAABiwEBAAAAAQEPAABfACAIdQEAAAABdgEAAAABhQECAAAAAYYBQAAAAAGIAQEA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-AgAAAAF_AgAAAAGDAQIAqAEAIQh5CAAAAAF6CAAAAAR7CAAAAAR8CAAAAAF9CAAAAAF-CAAAAAF_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IJsBAAALACCcAQAACwAgCwMAAK8BACByAACrAQAwcwAADwAQdAAAqwEAMHUBAKwBACF2AQCsAQAhhAEBAKwBACGFAQIArQEAIYYBQACuAQAhnwEAAA8AIKABAAAPACADdQEAAAABdgEAAAABdwEAAAABCAMAAK8BACByAADKAQAwcwAACwAQdAAAygEAMHUBAKwBACF2AQCsAQAhdwEArAEAIXgBAKwBACEDdQEAAAABdgEAAAABjQEBAAAAARQDAACvAQAgcgAAzAEAMHMAAAMAEHQAAMwBADB1AQCsAQAhdgEArAEAIYQBAQCsAQAhhQECAK0BACGGAUAArgEAIYsBAQDOAQAhjAECAK0BACGNAQEArAEAIY4BAQCsAQAhjwEBAKwBACGQAQEArAEAIZEBAQCsAQAhkgEBAKwBACGTAQEArAEAIZQBIADNAQAhlQECAK0BACECeSAAAAABgwEgAL0BACELeQEAAAABegEAAAAFewEAAAAFfAEAAAABfQEAAAABfgEAAAABfwEAAAABgAEBAAAAAYEBAQAAAAGCAQEAAAABgwEBALsBACECdQEAAAABdgEAAAABAAAAAacBAQAAAAEFFgAAyAIAIBcAAMsCACChAQAAyQIAIKIBAADKAgAgpQEAAAEAIAMWAADIAgAgoQEAAMkCACClAQAAAQAgAAAAAAAFpwECAAAAAaoBAgAAAAGrAQIAAAABrAECAAAAAa0BAgAAAAEBpwFAAAAAAQUWAADDAgAgFwAAxgIAIKEBAADEAgAgogEAAMUCACClAQAAAQAgAxYAAMMCACChAQAAxAIAIKUBAAABACAFBAAArQIAIAUAAK4CACAGAACvAgAgBwAAsAIAIAgAALECACAAAAAAAAUWAAC-AgAgFwAAwQIAIKEBAAC_AgAgogEAAMACACClAQAAAQAgAxYAAL4CACChAQAAvwIAIKUBAAABACAAAAAAAAUWAAC5AgAgFwAAvAIAIKEBAAC6AgAgogEAALsCACClAQAAAQAgAxYAALkCACChAQAAugIAIKUBAAABACAAAAAAAAABpwEgAAAAAQGnAQEAAAABBRYAALQCACAXAAC3AgAgoQEAALUCACCiAQAAtgIAIKUBAAABACADFgAAtAIAIKEBAAC1AgAgpQEAAAEAIAAAAAGnAQAAAJcBAgsWAACcAgAwFwAAoQIAMKEBAACdAgAwogEAAJ4CADCjAQAAoAIAMKQBAACgAgAwpQEAAKACADCmAQAAnwIAIKcBAACgAgAwqAEAAKICADCpAQAAowIAMAcWAACXAgAgFwAAmgIAIKEBAACYAgAgogEAAJkCACCjAQAABwAgpAEAAAcAIKUBAABAACAHFgAAkgIAIBcAAJUCACChAQAAkwIAIKIBAACUAgAgowEAAAkAIKQBAAAJACClAQAAWAAgCxYAAIYCADAXAACLAgAwoQEAAIcCADCiAQAAiAIAMKMBAACKAgAwpAEAAIoCADClAQAAigIAMKYBAACJAgAgpwEAAIoCADCoAQAAjAIAMKkBAACNAgAwBxYAAIECACAXAACEAgAgoQEAAIICACCiAQAAgwIAIKMBAAAPACCkAQAADwAgpQEAAHAAIAOEAQEAAAABhQECAAAAAYYBQAAAAAECAAAAcAAgFgAAgQIAIAMAAAAPACAWAACBAgAgFwAAhQIAIAUAAAAPACAPAACFAgAghAEBANMBACGFAQIA2wEAIYYBQADcAQAhA4QBAQDTAQAhhQECANsBACGGAUAA3AEAIQJ3AQAAAAF4AQAAAAECAAAADQAgFgAAkQIAIAMAAAANACAWAACRAgAgFwAAkAIAIAEPAACzAgAwCQMAAK8BACByAADKAQAwcwAACwAQdAAAygEAMHUBAKwBACF2AQCsAQAhdwEArAEAIXgBAKwBACGdAQAAyQEAIAIAAAANACAPAACQAgAgAgAAAI4CACAPAACPAgAgB3IAAI0CADBzAACOAgAQdAAAjQIAMHUBAKwBACF2AQCsAQAhdwEArAEAIXgBAKwBACEHcgAAjQIAMHMAAI4CABB0AACNAgAwdQEArAEAIXYBAKwBACF3AQCsAQAheAEArAEA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_QEAIAYAAP4BACAHAAD_AQAgCAAAgAIAIA8AALgCACB1AQDTAQAhdgEA0wEAIYYBQADcAQAhlwEAAPsBlwEimAEBANMBACGZAUAA3AEAIQoFAAD9AQAgBgAA_gEAIAcAAP8BACAIAACAAgAgdQEA0wEAIXYBANMBACGGAUAA3AEAIZcBAAD7AZcBIpgBAQDTAQAhmQFAANwBACEKBAAAqAIAIAYAAKoCACAHAACrAgAgCAAArAIAIHUBAAAAAXYBAAAAAYYBQAAAAAGXAQAAAJcBApgBAQAAAAGZAUAAAAABAgAAAAEAIBYAALkCACADAAAAFAAgFgAAuQIAIBcAAL0CACAMAAAAFAAgBAAA_AEAIAYAAP4BACAHAAD_AQAgCAAAgAIAIA8AAL0CACB1AQDTAQAhdgEA0wEAIYYBQADcAQAhlwEAAPsBlwEimAEBANMBACGZAUAA3AEAIQoEAAD8AQAgBgAA_gEAIAcAAP8BACAIAACAAgAgdQEA0wEAIXYBANMBACGGAUAA3AEAIZcBAAD7AZcBIpgBAQDTAQAhmQFAANwBACEKBAAAqAIAIAUAAKkCACAHAACrAgAgCAAArAIAIHUBAAAAAXYBAAAAAYYBQAAAAAGXAQAAAJcBApgBAQAAAAGZAUAAAAABAgAAAAEAIBYAAL4CACADAAAAFAAgFgAAvgIAIBcAAMICACAMAAAAFAAgBAAA_AEAIAUAAP0BACAHAAD_AQAgCAAAgAIAIA8AAMICACB1AQDTAQAhdgEA0wEAIYYBQADcAQAhlwEAAPsBlwEimAEBANMBACGZAUAA3AEAIQoEAAD8AQAgBQAA_QEAIAcAAP8BACAIAACAAgAgdQEA0wEAIXYBANMBACGGAUAA3AEAIZcBAAD7AZcBIpgBAQDTAQAhmQFAANwBACEKBAAAqAIAIAUAAKkCACAGAACqAgAgBwAAqwIAIHUBAAAAAXYBAAAAAYYBQAAAAAGXAQAAAJcBApgBAQAAAAGZAUAAAAABAgAAAAEAIBYAAMMCACADAAAAFAAgFgAAwwIAIBcAAMcCACAMAAAAFAAgBAAA_AEAIAUAAP0BACAGAAD-AQAgBwAA_wEAIA8AAMcCACB1AQDTAQAhdgEA0wEAIYYBQADcAQAhlwEAAPsBlwEimAEBANMBACGZAUAA3AEAIQoEAAD8AQAgBQAA_QEAIAYAAP4BACAHAAD_AQAgdQEA0wEAIXYBANMBACGGAUAA3AEAIZcBAAD7AZcBIpgBAQDTAQAhmQFAANwBACEKBAAAqAIAIAUAAKkCACAGAACqAgAgCAAArAIAIHUBAAAAAXYBAAAAAYYBQAAAAAGXAQAAAJcBApgBAQAAAAGZAUAAAAABAgAAAAEAIBYAAMgCACADAAAAFAAgFgAAyAIAIBcAAMwCACAMAAAAFAAgBAAA_AEAIAUAAP0BACAGAAD-AQAgCAAAgAIAIA8AAMwCACB1AQDTAQAhdgEA0wEAIYYBQADcAQAhlwEAAPsBlwEimAEBANMBACGZAUAA3AEAIQoEAAD8AQAgBQAA_QEAIAYAAP4BACAIAACAAgAgdQEA0wEAIXYBANMBACGGAUAA3AEAIZcBAAD7AZcBIpgBAQDTAQAhmQFAANwBACEGBAYCBQgDBgoEBw4FCBAGCQAHAQMAAQEDAAEBAwABAQMAAQEDAAECBBEABxIAAAAAAwkADBwADR0ADgAAAAMJAAwcAA0dAA4BAwABAQMAAQUJABMcABYdABcuABQvABUAAAAAAAUJABMcABYdABcuABQvABUBAwABAQMAAQUJABwcAB8dACAuAB0vAB4AAAAAAAUJABwcAB8dACAuAB0vAB4BAwABAQMAAQUJACUcACgdACkuACYvACcAAAAAAAUJACUcACgdACkuACYvACcBAwABAQMAAQUJAC4cADEdADIuAC8vADAAAAAAAAUJAC4cADEdADIuAC8vADABAwABAQMAAQMJADccADgdADkAAAADCQA3HAA4HQA5CgIBCxMBDBYBDRcBDhgBEBoBERwIEh0JEx8BFCEIFSIKGCMBGSQBGiUIHigLHykPICoCISsCIiwCIy0CJC4CJTACJjIIJzMQKDUCKTcIKjgRKzkCLDoCLTsIMD4SMT8YMkEDM0IDNEQDNUUDNkYDN0gDOEoIOUsZOk0DO08IPFAaPVEDPlIDP1MIQFYbQVchQlkEQ1oERFwERV0ERl4ER2AESGIISWMiSmUES2cITGgjTWkETmoET2sIUG4kUW8qUnEGU3IGVHQGVXUGVnYGV3gGWHoIWXsrWn0GW38IXIABLF2BAQZeggEGX4MBCGCGAS1hhwEzYogBBWOJAQVkigEFZYsBBWaMAQVnjgEFaJABCGmRATRqkwEFa5UBCGyWATVtlwEFbpgBBW-ZAQhwnAE2cZ0BOg"
39
+ }
40
+
41
+ async function decodeBase64AsWasm(wasmBase64: string): Promise<WebAssembly.Module> {
42
+ const { Buffer } = await import('node:buffer')
43
+ const wasmArray = Buffer.from(wasmBase64, 'base64')
44
+ return new WebAssembly.Module(wasmArray)
45
+ }
46
+
47
+ config.compilerWasm = {
48
+ getRuntime: async () => await import("@prisma/client/runtime/query_compiler_fast_bg.sqlite.mjs"),
49
+
50
+ getQueryCompilerWasmModule: async () => {
51
+ const { wasm } = await import("@prisma/client/runtime/query_compiler_fast_bg.sqlite.wasm-base64.mjs")
52
+ return await decodeBase64AsWasm(wasm)
53
+ },
54
+
55
+ importName: "./query_compiler_fast_bg.js"
56
+ }
57
+
58
+
59
+
60
+ export type LogOptions<ClientOptions extends Prisma.PrismaClientOptions> =
61
+ 'log' extends keyof ClientOptions ? ClientOptions['log'] extends Array<Prisma.LogLevel | Prisma.LogDefinition> ? Prisma.GetEvents<ClientOptions['log']> : never : never
62
+
63
+ export interface PrismaClientConstructor {
64
+ /**
65
+ * ## Prisma Client
66
+ *
67
+ * Type-safe database client for TypeScript
68
+ * @example
69
+ * ```
70
+ * const prisma = new PrismaClient()
71
+ * // Fetch zero or more Accounts
72
+ * const accounts = await prisma.account.findMany()
73
+ * ```
74
+ *
75
+ * Read more in our [docs](https://pris.ly/d/client).
76
+ */
77
+
78
+ new <
79
+ Options extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions,
80
+ LogOpts extends LogOptions<Options> = LogOptions<Options>,
81
+ OmitOpts extends Prisma.PrismaClientOptions['omit'] = Options extends { omit: infer U } ? U : Prisma.PrismaClientOptions['omit'],
82
+ ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs
83
+ >(options: Prisma.Subset<Options, Prisma.PrismaClientOptions> ): PrismaClient<LogOpts, OmitOpts, ExtArgs>
84
+ }
85
+
86
+ /**
87
+ * ## Prisma Client
88
+ *
89
+ * Type-safe database client for TypeScript
90
+ * @example
91
+ * ```
92
+ * const prisma = new PrismaClient()
93
+ * // Fetch zero or more Accounts
94
+ * const accounts = await prisma.account.findMany()
95
+ * ```
96
+ *
97
+ * Read more in our [docs](https://pris.ly/d/client).
98
+ */
99
+
100
+ export interface PrismaClient<
101
+ in LogOpts extends Prisma.LogLevel = never,
102
+ in out OmitOpts extends Prisma.PrismaClientOptions['omit'] = undefined,
103
+ in out ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs
104
+ > {
105
+ [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['other'] }
106
+
107
+ $on<V extends LogOpts>(eventType: V, callback: (event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent) => void): PrismaClient;
108
+
109
+ /**
110
+ * Connect with the database
111
+ */
112
+ $connect(): runtime.Types.Utils.JsPromise<void>;
113
+
114
+ /**
115
+ * Disconnect from the database
116
+ */
117
+ $disconnect(): runtime.Types.Utils.JsPromise<void>;
118
+
119
+ /**
120
+ * Executes a prepared raw query and returns the number of affected rows.
121
+ * @example
122
+ * ```
123
+ * const result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`
124
+ * ```
125
+ *
126
+ * Read more in our [docs](https://pris.ly/d/raw-queries).
127
+ */
128
+ $executeRaw<T = unknown>(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise<number>;
129
+
130
+ /**
131
+ * Executes a raw query and returns the number of affected rows.
132
+ * Susceptible to SQL injections, see documentation.
133
+ * @example
134
+ * ```
135
+ * const result = await prisma.$executeRawUnsafe('UPDATE User SET cool = $1 WHERE email = $2 ;', true, 'user@email.com')
136
+ * ```
137
+ *
138
+ * Read more in our [docs](https://pris.ly/d/raw-queries).
139
+ */
140
+ $executeRawUnsafe<T = unknown>(query: string, ...values: any[]): Prisma.PrismaPromise<number>;
141
+
142
+ /**
143
+ * Performs a prepared raw query and returns the `SELECT` data.
144
+ * @example
145
+ * ```
146
+ * const result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`
147
+ * ```
148
+ *
149
+ * Read more in our [docs](https://pris.ly/d/raw-queries).
150
+ */
151
+ $queryRaw<T = unknown>(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise<T>;
152
+
153
+ /**
154
+ * Performs a raw query and returns the `SELECT` data.
155
+ * Susceptible to SQL injections, see documentation.
156
+ * @example
157
+ * ```
158
+ * const result = await prisma.$queryRawUnsafe('SELECT * FROM User WHERE id = $1 OR email = $2;', 1, 'user@email.com')
159
+ * ```
160
+ *
161
+ * Read more in our [docs](https://pris.ly/d/raw-queries).
162
+ */
163
+ $queryRawUnsafe<T = unknown>(query: string, ...values: any[]): Prisma.PrismaPromise<T>;
164
+
165
+
166
+ /**
167
+ * Allows the running of a sequence of read/write operations that are guaranteed to either succeed or fail as a whole.
168
+ * @example
169
+ * ```
170
+ * const [george, bob, alice] = await prisma.$transaction([
171
+ * prisma.user.create({ data: { name: 'George' } }),
172
+ * prisma.user.create({ data: { name: 'Bob' } }),
173
+ * prisma.user.create({ data: { name: 'Alice' } }),
174
+ * ])
175
+ * ```
176
+ *
177
+ * Read more in our [docs](https://www.prisma.io/docs/concepts/components/prisma-client/transactions).
178
+ */
179
+ $transaction<P extends Prisma.PrismaPromise<any>[]>(arg: [...P], options?: { isolationLevel?: Prisma.TransactionIsolationLevel }): runtime.Types.Utils.JsPromise<runtime.Types.Utils.UnwrapTuple<P>>
180
+
181
+ $transaction<R>(fn: (prisma: Omit<PrismaClient, runtime.ITXClientDenyList>) => runtime.Types.Utils.JsPromise<R>, options?: { maxWait?: number, timeout?: number, isolationLevel?: Prisma.TransactionIsolationLevel }): runtime.Types.Utils.JsPromise<R>
182
+
183
+ $extends: runtime.Types.Extensions.ExtendsHook<"extends", Prisma.TypeMapCb<OmitOpts>, ExtArgs, runtime.Types.Utils.Call<Prisma.TypeMapCb<OmitOpts>, {
184
+ extArgs: ExtArgs
185
+ }>>
186
+
187
+ /**
188
+ * `prisma.account`: Exposes CRUD operations for the **Account** model.
189
+ * Example usage:
190
+ * ```ts
191
+ * // Fetch zero or more Accounts
192
+ * const accounts = await prisma.account.findMany()
193
+ * ```
194
+ */
195
+ get account(): Prisma.AccountDelegate<ExtArgs, { omit: OmitOpts }>;
196
+
197
+ /**
198
+ * `prisma.thread`: Exposes CRUD operations for the **Thread** model.
199
+ * Example usage:
200
+ * ```ts
201
+ * // Fetch zero or more Threads
202
+ * const threads = await prisma.thread.findMany()
203
+ * ```
204
+ */
205
+ get thread(): Prisma.ThreadDelegate<ExtArgs, { omit: OmitOpts }>;
206
+
207
+ /**
208
+ * `prisma.label`: Exposes CRUD operations for the **Label** model.
209
+ * Example usage:
210
+ * ```ts
211
+ * // Fetch zero or more Labels
212
+ * const labels = await prisma.label.findMany()
213
+ * ```
214
+ */
215
+ get label(): Prisma.LabelDelegate<ExtArgs, { omit: OmitOpts }>;
216
+
217
+ /**
218
+ * `prisma.profile`: Exposes CRUD operations for the **Profile** model.
219
+ * Example usage:
220
+ * ```ts
221
+ * // Fetch zero or more Profiles
222
+ * const profiles = await prisma.profile.findMany()
223
+ * ```
224
+ */
225
+ get profile(): Prisma.ProfileDelegate<ExtArgs, { omit: OmitOpts }>;
226
+
227
+ /**
228
+ * `prisma.calendarList`: Exposes CRUD operations for the **CalendarList** model.
229
+ * Example usage:
230
+ * ```ts
231
+ * // Fetch zero or more CalendarLists
232
+ * const calendarLists = await prisma.calendarList.findMany()
233
+ * ```
234
+ */
235
+ get calendarList(): Prisma.CalendarListDelegate<ExtArgs, { omit: OmitOpts }>;
236
+
237
+ /**
238
+ * `prisma.syncState`: Exposes CRUD operations for the **SyncState** model.
239
+ * Example usage:
240
+ * ```ts
241
+ * // Fetch zero or more SyncStates
242
+ * const syncStates = await prisma.syncState.findMany()
243
+ * ```
244
+ */
245
+ get syncState(): Prisma.SyncStateDelegate<ExtArgs, { omit: OmitOpts }>;
246
+ }
247
+
248
+ export function getPrismaClientClass(): PrismaClientConstructor {
249
+ return runtime.getPrismaClient(config) as unknown as PrismaClientConstructor
250
+ }