@vestcards/server-types 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apps/server/src/app.d.ts +288 -18
- package/dist/apps/server/src/config/env.d.ts +7 -1
- package/dist/apps/server/src/lib/metrics.d.ts +4 -0
- package/dist/apps/server/src/lib/posthog.d.ts +2 -0
- package/dist/apps/server/src/middleware/errorHandler.d.ts +1 -1
- package/dist/apps/server/src/middleware/logger.d.ts +12 -29
- package/dist/apps/server/src/modules/auth/lib.d.ts +27 -3
- package/dist/apps/server/src/modules/auth/profile.d.ts +5 -0
- package/dist/apps/server/src/modules/auth/utils.d.ts +1 -0
- package/dist/apps/server/src/modules/card/index.d.ts +2 -2
- package/dist/apps/server/src/modules/cron/cron.test.d.ts +1 -0
- package/dist/apps/server/src/modules/cron/index.d.ts +53 -0
- package/dist/apps/server/src/modules/cron/jobs/expire-memberships.d.ts +1 -0
- package/dist/apps/server/src/modules/cron/jobs/payment-expiry-reminder.d.ts +1 -0
- package/dist/apps/server/src/modules/deck/index.d.ts +19 -1
- package/dist/apps/server/src/modules/deck/model.d.ts +4 -0
- package/dist/apps/server/src/modules/deck/service.d.ts +5 -1
- package/dist/apps/server/src/modules/ranking/index.d.ts +412 -0
- package/dist/apps/server/src/modules/ranking/model.d.ts +28 -0
- package/dist/apps/server/src/modules/ranking/ranking.test.d.ts +1 -0
- package/dist/apps/server/src/modules/ranking/service.d.ts +4 -0
- package/dist/apps/server/src/modules/stats/index.d.ts +446 -0
- package/dist/apps/server/src/modules/stats/model.d.ts +85 -0
- package/dist/apps/server/src/modules/stats/service.d.ts +27 -0
- package/dist/apps/server/src/modules/stats/stats.test.d.ts +1 -0
- package/dist/apps/server/src/modules/study/service.d.ts +4 -4
- package/dist/apps/server/src/modules/user/index.d.ts +32 -15
- package/dist/apps/server/src/modules/user/model.d.ts +11 -1
- package/dist/apps/server/src/modules/user/service.d.ts +13 -29
- package/dist/apps/server/src/modules/vesty/index.d.ts +473 -0
- package/dist/apps/server/src/modules/vesty/model.d.ts +35 -0
- package/dist/apps/server/src/modules/vesty/service.d.ts +6 -0
- package/dist/apps/server/src/modules/vesty/services/generate-deck.d.ts +2 -0
- package/dist/apps/server/src/modules/vesty/services/insights.d.ts +3 -0
- package/dist/apps/server/src/modules/vesty/tools.d.ts +11 -0
- package/dist/apps/server/src/modules/vesty/utils.d.ts +69 -0
- package/dist/apps/server/src/modules/vesty/vesty.test.d.ts +1 -0
- package/dist/apps/server/src/server.d.ts +1 -0
- package/dist/apps/server/src/tests/helpers/fixtures.d.ts +8 -6
- package/dist/apps/server/src/tests/preload/vesty-mock.d.ts +1 -0
- package/dist/packages/db-core/src/index.d.ts +0 -1
- package/dist/packages/db-core/src/schema/auth.d.ts +34 -0
- package/dist/packages/db-core/src/schema/index.d.ts +0 -1
- package/dist/packages/db-core/src/schema/payment.d.ts +37 -1
- package/dist/packages/email-core/src/templates/index.d.ts +2 -0
- package/dist/packages/email-core/src/templates/paymentExpiryReminder.d.ts +9 -0
- package/dist/packages/shared/src/date/index.d.ts +1 -0
- package/dist/packages/shared/src/date/timezone.d.ts +29 -0
- package/dist/packages/shared/src/spaced-repetition/config.d.ts +17 -2
- package/dist/packages/shared/src/spaced-repetition/index.d.ts +1 -0
- package/dist/packages/shared/src/spaced-repetition/retention.d.ts +2 -0
- package/dist/packages/shared/src/theme/tokens/colors.d.ts +18 -18
- package/dist/packages/shared/src/types/index.d.ts +1 -0
- package/dist/packages/shared/src/types/permissions.d.ts +2 -0
- package/dist/packages/shared/src/types/user.d.ts +20 -0
- package/dist/packages/shared/src/types/vesty.d.ts +7 -0
- package/dist/packages/utils/src/logger/index.d.ts +2 -1
- package/dist/packages/utils/src/logger/posthog.d.ts +20 -0
- package/package.json +1 -1
- package/dist/apps/server/src/modules/study/constants.d.ts +0 -5
- package/dist/packages/db-core/src/views/deck.d.ts +0 -79
|
@@ -455,8 +455,8 @@ declare const app: Elysia<"", {
|
|
|
455
455
|
createdAt: Date;
|
|
456
456
|
updatedAt: Date;
|
|
457
457
|
userId: string;
|
|
458
|
-
cardId: string;
|
|
459
458
|
content: string;
|
|
459
|
+
cardId: string;
|
|
460
460
|
} | null;
|
|
461
461
|
422: {
|
|
462
462
|
type: "validation";
|
|
@@ -479,8 +479,8 @@ declare const app: Elysia<"", {
|
|
|
479
479
|
post: {
|
|
480
480
|
body: {
|
|
481
481
|
type: string;
|
|
482
|
-
cardId: string;
|
|
483
482
|
content: string;
|
|
483
|
+
cardId: string;
|
|
484
484
|
};
|
|
485
485
|
params: {};
|
|
486
486
|
query: {};
|
|
@@ -663,6 +663,22 @@ declare const app: Elysia<"", {
|
|
|
663
663
|
};
|
|
664
664
|
};
|
|
665
665
|
};
|
|
666
|
+
} & {
|
|
667
|
+
v1: {
|
|
668
|
+
decks: {
|
|
669
|
+
recommended: {
|
|
670
|
+
get: {
|
|
671
|
+
body: {};
|
|
672
|
+
params: {};
|
|
673
|
+
query: {};
|
|
674
|
+
headers: {};
|
|
675
|
+
response: {
|
|
676
|
+
200: import("@vestcards/shared").IDeck[];
|
|
677
|
+
};
|
|
678
|
+
};
|
|
679
|
+
};
|
|
680
|
+
};
|
|
681
|
+
};
|
|
666
682
|
} & {
|
|
667
683
|
v1: {
|
|
668
684
|
decks: {
|
|
@@ -672,7 +688,9 @@ declare const app: Elysia<"", {
|
|
|
672
688
|
params: {
|
|
673
689
|
deckId: string;
|
|
674
690
|
};
|
|
675
|
-
query: {
|
|
691
|
+
query: {
|
|
692
|
+
preview?: boolean | undefined;
|
|
693
|
+
};
|
|
676
694
|
headers: {};
|
|
677
695
|
response: {
|
|
678
696
|
200: import("@vestcards/shared").IDeckDetail;
|
|
@@ -1143,6 +1161,134 @@ declare const app: Elysia<"", {
|
|
|
1143
1161
|
};
|
|
1144
1162
|
};
|
|
1145
1163
|
};
|
|
1164
|
+
} & {
|
|
1165
|
+
v1: {
|
|
1166
|
+
ranking: {
|
|
1167
|
+
v1: {
|
|
1168
|
+
auth: {
|
|
1169
|
+
"validate-reset-token": {
|
|
1170
|
+
get: {
|
|
1171
|
+
body: unknown;
|
|
1172
|
+
params: {};
|
|
1173
|
+
query: {
|
|
1174
|
+
token: string;
|
|
1175
|
+
};
|
|
1176
|
+
headers: unknown;
|
|
1177
|
+
response: {
|
|
1178
|
+
200: {
|
|
1179
|
+
valid: boolean;
|
|
1180
|
+
};
|
|
1181
|
+
422: {
|
|
1182
|
+
type: "validation";
|
|
1183
|
+
on: string;
|
|
1184
|
+
summary?: string;
|
|
1185
|
+
message?: string;
|
|
1186
|
+
found?: unknown;
|
|
1187
|
+
property?: string;
|
|
1188
|
+
expected?: string;
|
|
1189
|
+
};
|
|
1190
|
+
};
|
|
1191
|
+
};
|
|
1192
|
+
};
|
|
1193
|
+
};
|
|
1194
|
+
};
|
|
1195
|
+
};
|
|
1196
|
+
};
|
|
1197
|
+
} & {
|
|
1198
|
+
v1: {
|
|
1199
|
+
ranking: {
|
|
1200
|
+
get: {
|
|
1201
|
+
body: {};
|
|
1202
|
+
params: {};
|
|
1203
|
+
query: {};
|
|
1204
|
+
headers: {};
|
|
1205
|
+
response: {
|
|
1206
|
+
200: import("./modules/ranking/model").RankingData;
|
|
1207
|
+
};
|
|
1208
|
+
};
|
|
1209
|
+
};
|
|
1210
|
+
};
|
|
1211
|
+
} & {
|
|
1212
|
+
v1: {
|
|
1213
|
+
stats: {
|
|
1214
|
+
v1: {
|
|
1215
|
+
auth: {
|
|
1216
|
+
"validate-reset-token": {
|
|
1217
|
+
get: {
|
|
1218
|
+
body: unknown;
|
|
1219
|
+
params: {};
|
|
1220
|
+
query: {
|
|
1221
|
+
token: string;
|
|
1222
|
+
};
|
|
1223
|
+
headers: unknown;
|
|
1224
|
+
response: {
|
|
1225
|
+
200: {
|
|
1226
|
+
valid: boolean;
|
|
1227
|
+
};
|
|
1228
|
+
422: {
|
|
1229
|
+
type: "validation";
|
|
1230
|
+
on: string;
|
|
1231
|
+
summary?: string;
|
|
1232
|
+
message?: string;
|
|
1233
|
+
found?: unknown;
|
|
1234
|
+
property?: string;
|
|
1235
|
+
expected?: string;
|
|
1236
|
+
};
|
|
1237
|
+
};
|
|
1238
|
+
};
|
|
1239
|
+
};
|
|
1240
|
+
};
|
|
1241
|
+
};
|
|
1242
|
+
};
|
|
1243
|
+
};
|
|
1244
|
+
} & {
|
|
1245
|
+
v1: {
|
|
1246
|
+
stats: {
|
|
1247
|
+
home: {
|
|
1248
|
+
get: {
|
|
1249
|
+
body: {};
|
|
1250
|
+
params: {};
|
|
1251
|
+
query: {};
|
|
1252
|
+
headers: {};
|
|
1253
|
+
response: {
|
|
1254
|
+
200: import("./modules/stats/model").StatsModel.HomePageStats;
|
|
1255
|
+
};
|
|
1256
|
+
};
|
|
1257
|
+
};
|
|
1258
|
+
};
|
|
1259
|
+
};
|
|
1260
|
+
} & {
|
|
1261
|
+
v1: {
|
|
1262
|
+
stats: {
|
|
1263
|
+
streak: {
|
|
1264
|
+
get: {
|
|
1265
|
+
body: {};
|
|
1266
|
+
params: {};
|
|
1267
|
+
query: {};
|
|
1268
|
+
headers: {};
|
|
1269
|
+
response: {
|
|
1270
|
+
200: import("./modules/stats/model").StatsModel.StreakResult;
|
|
1271
|
+
};
|
|
1272
|
+
};
|
|
1273
|
+
};
|
|
1274
|
+
};
|
|
1275
|
+
};
|
|
1276
|
+
} & {
|
|
1277
|
+
v1: {
|
|
1278
|
+
stats: {
|
|
1279
|
+
dashboard: {
|
|
1280
|
+
get: {
|
|
1281
|
+
body: {};
|
|
1282
|
+
params: {};
|
|
1283
|
+
query: {};
|
|
1284
|
+
headers: {};
|
|
1285
|
+
response: {
|
|
1286
|
+
200: import("./modules/stats/model").StatsModel.DashboardStats;
|
|
1287
|
+
};
|
|
1288
|
+
};
|
|
1289
|
+
};
|
|
1290
|
+
};
|
|
1291
|
+
};
|
|
1146
1292
|
} & {
|
|
1147
1293
|
v1: {
|
|
1148
1294
|
user: {
|
|
@@ -1186,20 +1332,7 @@ declare const app: Elysia<"", {
|
|
|
1186
1332
|
query: {};
|
|
1187
1333
|
headers: {};
|
|
1188
1334
|
response: {
|
|
1189
|
-
200:
|
|
1190
|
-
id: string;
|
|
1191
|
-
name: string;
|
|
1192
|
-
surname: string;
|
|
1193
|
-
email: string;
|
|
1194
|
-
image: string | null;
|
|
1195
|
-
role: import("@vestcards/shared").UserRole;
|
|
1196
|
-
goal: string | null;
|
|
1197
|
-
learnDailyLimit: number | null;
|
|
1198
|
-
universityId: number | null;
|
|
1199
|
-
universityName: string | null;
|
|
1200
|
-
courseId: number | null;
|
|
1201
|
-
courseName: string | null;
|
|
1202
|
-
};
|
|
1335
|
+
200: import("@vestcards/shared").IUserProfile | null;
|
|
1203
1336
|
};
|
|
1204
1337
|
};
|
|
1205
1338
|
};
|
|
@@ -1212,8 +1345,10 @@ declare const app: Elysia<"", {
|
|
|
1212
1345
|
patch: {
|
|
1213
1346
|
body: {
|
|
1214
1347
|
university?: number | null | undefined;
|
|
1348
|
+
timezone?: string | undefined;
|
|
1215
1349
|
course?: number | null | undefined;
|
|
1216
|
-
learnDailyLimit?: number | undefined;
|
|
1350
|
+
learnDailyLimit?: number | null | undefined;
|
|
1351
|
+
newCardsPerDeckDailyLimit?: number | null | undefined;
|
|
1217
1352
|
};
|
|
1218
1353
|
params: {};
|
|
1219
1354
|
query: {};
|
|
@@ -1335,6 +1470,33 @@ declare const app: Elysia<"", {
|
|
|
1335
1470
|
};
|
|
1336
1471
|
};
|
|
1337
1472
|
};
|
|
1473
|
+
} & {
|
|
1474
|
+
v1: {
|
|
1475
|
+
user: {
|
|
1476
|
+
password: {
|
|
1477
|
+
post: {
|
|
1478
|
+
body: {
|
|
1479
|
+
newPassword: string;
|
|
1480
|
+
currentPassword: string;
|
|
1481
|
+
};
|
|
1482
|
+
params: {};
|
|
1483
|
+
query: {};
|
|
1484
|
+
headers: {};
|
|
1485
|
+
response: {
|
|
1486
|
+
422: {
|
|
1487
|
+
type: "validation";
|
|
1488
|
+
on: string;
|
|
1489
|
+
summary?: string;
|
|
1490
|
+
message?: string;
|
|
1491
|
+
found?: unknown;
|
|
1492
|
+
property?: string;
|
|
1493
|
+
expected?: string;
|
|
1494
|
+
};
|
|
1495
|
+
};
|
|
1496
|
+
};
|
|
1497
|
+
};
|
|
1498
|
+
};
|
|
1499
|
+
};
|
|
1338
1500
|
} & {
|
|
1339
1501
|
v1: {
|
|
1340
1502
|
user: {
|
|
@@ -1343,6 +1505,7 @@ declare const app: Elysia<"", {
|
|
|
1343
1505
|
body: {
|
|
1344
1506
|
university?: number | undefined;
|
|
1345
1507
|
dayTimeReminder?: string | undefined;
|
|
1508
|
+
timezone?: string | undefined;
|
|
1346
1509
|
course?: number | undefined;
|
|
1347
1510
|
goal: string;
|
|
1348
1511
|
hoursStudied: string;
|
|
@@ -1430,6 +1593,113 @@ declare const app: Elysia<"", {
|
|
|
1430
1593
|
};
|
|
1431
1594
|
};
|
|
1432
1595
|
};
|
|
1596
|
+
} & {
|
|
1597
|
+
v1: {
|
|
1598
|
+
vesty: {
|
|
1599
|
+
v1: {
|
|
1600
|
+
auth: {
|
|
1601
|
+
"validate-reset-token": {
|
|
1602
|
+
get: {
|
|
1603
|
+
body: unknown;
|
|
1604
|
+
params: {};
|
|
1605
|
+
query: {
|
|
1606
|
+
token: string;
|
|
1607
|
+
};
|
|
1608
|
+
headers: unknown;
|
|
1609
|
+
response: {
|
|
1610
|
+
200: {
|
|
1611
|
+
valid: boolean;
|
|
1612
|
+
};
|
|
1613
|
+
422: {
|
|
1614
|
+
type: "validation";
|
|
1615
|
+
on: string;
|
|
1616
|
+
summary?: string;
|
|
1617
|
+
message?: string;
|
|
1618
|
+
found?: unknown;
|
|
1619
|
+
property?: string;
|
|
1620
|
+
expected?: string;
|
|
1621
|
+
};
|
|
1622
|
+
};
|
|
1623
|
+
};
|
|
1624
|
+
};
|
|
1625
|
+
};
|
|
1626
|
+
};
|
|
1627
|
+
};
|
|
1628
|
+
};
|
|
1629
|
+
} & {
|
|
1630
|
+
v1: {
|
|
1631
|
+
vesty: {
|
|
1632
|
+
chat: {
|
|
1633
|
+
post: {
|
|
1634
|
+
body: {
|
|
1635
|
+
data?: {} | undefined;
|
|
1636
|
+
messages: {
|
|
1637
|
+
role: "user" | "assistant";
|
|
1638
|
+
parts: any[];
|
|
1639
|
+
}[];
|
|
1640
|
+
};
|
|
1641
|
+
params: {};
|
|
1642
|
+
query: {};
|
|
1643
|
+
headers: {};
|
|
1644
|
+
response: {
|
|
1645
|
+
200: Response;
|
|
1646
|
+
422: {
|
|
1647
|
+
type: "validation";
|
|
1648
|
+
on: string;
|
|
1649
|
+
summary?: string;
|
|
1650
|
+
message?: string;
|
|
1651
|
+
found?: unknown;
|
|
1652
|
+
property?: string;
|
|
1653
|
+
expected?: string;
|
|
1654
|
+
};
|
|
1655
|
+
};
|
|
1656
|
+
};
|
|
1657
|
+
};
|
|
1658
|
+
};
|
|
1659
|
+
};
|
|
1660
|
+
} & {
|
|
1661
|
+
v1: {
|
|
1662
|
+
vesty: {
|
|
1663
|
+
"generate-deck": {
|
|
1664
|
+
post: {
|
|
1665
|
+
body: {
|
|
1666
|
+
prompt: string;
|
|
1667
|
+
};
|
|
1668
|
+
params: {};
|
|
1669
|
+
query: {};
|
|
1670
|
+
headers: {};
|
|
1671
|
+
response: {
|
|
1672
|
+
200: import("./modules/vesty/model").VestyModel.GeneratedDeck;
|
|
1673
|
+
422: {
|
|
1674
|
+
type: "validation";
|
|
1675
|
+
on: string;
|
|
1676
|
+
summary?: string;
|
|
1677
|
+
message?: string;
|
|
1678
|
+
found?: unknown;
|
|
1679
|
+
property?: string;
|
|
1680
|
+
expected?: string;
|
|
1681
|
+
};
|
|
1682
|
+
};
|
|
1683
|
+
};
|
|
1684
|
+
};
|
|
1685
|
+
};
|
|
1686
|
+
};
|
|
1687
|
+
} & {
|
|
1688
|
+
v1: {
|
|
1689
|
+
vesty: {
|
|
1690
|
+
insights: {
|
|
1691
|
+
get: {
|
|
1692
|
+
body: {};
|
|
1693
|
+
params: {};
|
|
1694
|
+
query: {};
|
|
1695
|
+
headers: {};
|
|
1696
|
+
response: {
|
|
1697
|
+
200: import("./modules/vesty/model").VestyModel.InsightsResult;
|
|
1698
|
+
};
|
|
1699
|
+
};
|
|
1700
|
+
};
|
|
1701
|
+
};
|
|
1702
|
+
};
|
|
1433
1703
|
} & {
|
|
1434
1704
|
health: {
|
|
1435
1705
|
get: {
|
|
@@ -8,9 +8,15 @@ export declare const config: {
|
|
|
8
8
|
googleClientId: string;
|
|
9
9
|
googleClientSecret: string;
|
|
10
10
|
appleClientId: string;
|
|
11
|
-
|
|
11
|
+
appleTeamId: string;
|
|
12
|
+
appleKeyId: string;
|
|
13
|
+
applePrivateKey: string;
|
|
14
|
+
appleAppBundleIdentifier: string;
|
|
15
|
+
geminiApiKey: string;
|
|
12
16
|
port: number;
|
|
13
17
|
nodeEnv: string;
|
|
14
18
|
corsOrigins: string | undefined;
|
|
15
19
|
debug: boolean;
|
|
20
|
+
posthogApiKey: string;
|
|
21
|
+
posthogHost: string;
|
|
16
22
|
};
|
|
@@ -1,29 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
macro: {};
|
|
14
|
-
macroFn: {};
|
|
15
|
-
parser: {};
|
|
16
|
-
response: {};
|
|
17
|
-
}, {}, {
|
|
18
|
-
derive: {};
|
|
19
|
-
resolve: {};
|
|
20
|
-
schema: {};
|
|
21
|
-
standaloneSchema: {};
|
|
22
|
-
response: {};
|
|
23
|
-
}, {
|
|
24
|
-
derive: {};
|
|
25
|
-
resolve: {};
|
|
26
|
-
schema: {};
|
|
27
|
-
standaloneSchema: {};
|
|
28
|
-
response: {};
|
|
29
|
-
}>;
|
|
1
|
+
export declare function onRequest({ request, store }: {
|
|
2
|
+
request: Request;
|
|
3
|
+
store: Record<string, unknown>;
|
|
4
|
+
}): Promise<void>;
|
|
5
|
+
export declare function onAfterResponse({ request, responseValue, set, store, }: {
|
|
6
|
+
request: Request;
|
|
7
|
+
responseValue: unknown;
|
|
8
|
+
set: {
|
|
9
|
+
status?: number | string;
|
|
10
|
+
};
|
|
11
|
+
store: Record<string, unknown>;
|
|
12
|
+
}): void;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { UserRole } from '@vestcards/shared';
|
|
2
2
|
import { type BetterAuthOptions } from 'better-auth';
|
|
3
|
+
import { mapAppleProfileToUser } from './profile';
|
|
3
4
|
export declare const auth: import("better-auth").Auth<{
|
|
4
5
|
plugins: ({
|
|
5
6
|
id: "open-api";
|
|
@@ -297,6 +298,8 @@ export declare const auth: import("better-auth").Auth<{
|
|
|
297
298
|
apple: {
|
|
298
299
|
clientId: string;
|
|
299
300
|
clientSecret: string;
|
|
301
|
+
appBundleIdentifier: string;
|
|
302
|
+
mapProfileToUser: typeof mapAppleProfileToUser;
|
|
300
303
|
};
|
|
301
304
|
};
|
|
302
305
|
user: {
|
|
@@ -331,17 +334,38 @@ export declare const auth: import("better-auth").Auth<{
|
|
|
331
334
|
image?: string | null | undefined;
|
|
332
335
|
} & Record<string, unknown>) => Promise<{
|
|
333
336
|
data: {
|
|
337
|
+
email: string;
|
|
334
338
|
entityId: string;
|
|
335
339
|
id: string;
|
|
336
340
|
createdAt: Date;
|
|
337
341
|
updatedAt: Date;
|
|
338
|
-
email: string;
|
|
339
342
|
emailVerified: boolean;
|
|
340
343
|
name: string;
|
|
341
344
|
image?: string | null | undefined;
|
|
342
345
|
};
|
|
343
346
|
}>;
|
|
344
347
|
};
|
|
348
|
+
update: {
|
|
349
|
+
before: (userData: Partial<{
|
|
350
|
+
id: string;
|
|
351
|
+
createdAt: Date;
|
|
352
|
+
updatedAt: Date;
|
|
353
|
+
email: string;
|
|
354
|
+
emailVerified: boolean;
|
|
355
|
+
name: string;
|
|
356
|
+
image?: string | null | undefined;
|
|
357
|
+
}> & Record<string, unknown>) => Promise<{
|
|
358
|
+
data: Partial<{
|
|
359
|
+
id: string;
|
|
360
|
+
createdAt: Date;
|
|
361
|
+
updatedAt: Date;
|
|
362
|
+
email: string;
|
|
363
|
+
emailVerified: boolean;
|
|
364
|
+
name: string;
|
|
365
|
+
image?: string | null | undefined;
|
|
366
|
+
}> & Record<string, unknown>;
|
|
367
|
+
}>;
|
|
368
|
+
};
|
|
345
369
|
};
|
|
346
370
|
session: {
|
|
347
371
|
create: {
|
|
@@ -370,14 +394,14 @@ export declare const auth: import("better-auth").Auth<{
|
|
|
370
394
|
};
|
|
371
395
|
};
|
|
372
396
|
logger: {
|
|
373
|
-
log(level: "
|
|
397
|
+
log(level: "debug" | "info" | "warn" | "error", message: string, ...args: any[]): void;
|
|
374
398
|
};
|
|
375
399
|
advanced: {
|
|
376
400
|
useSecureCookies: boolean;
|
|
377
401
|
disableOriginCheck: true;
|
|
378
402
|
cookiePrefix: string;
|
|
379
403
|
defaultCookieAttributes: {
|
|
380
|
-
sameSite: "
|
|
404
|
+
sameSite: "none" | "lax";
|
|
381
405
|
secure: boolean;
|
|
382
406
|
};
|
|
383
407
|
database: {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { BetterAuthOptions } from 'better-auth';
|
|
2
|
+
export declare function generateAppleClientSecret(clientId: string, teamId: string, keyId: string, privateKey: string): Promise<string>;
|
|
2
3
|
export declare function assertCredentialAccount(userId: string): Promise<void>;
|
|
3
4
|
type SendVerificationEmail = NonNullable<BetterAuthOptions['emailVerification']>['sendVerificationEmail'];
|
|
4
5
|
export declare const sendVerificationEmail: SendVerificationEmail;
|
|
@@ -397,8 +397,8 @@ export declare const cardModule: Elysia<"/v1/card", {
|
|
|
397
397
|
createdAt: Date;
|
|
398
398
|
updatedAt: Date;
|
|
399
399
|
userId: string;
|
|
400
|
-
cardId: string;
|
|
401
400
|
content: string;
|
|
401
|
+
cardId: string;
|
|
402
402
|
} | null;
|
|
403
403
|
422: {
|
|
404
404
|
type: "validation";
|
|
@@ -421,8 +421,8 @@ export declare const cardModule: Elysia<"/v1/card", {
|
|
|
421
421
|
post: {
|
|
422
422
|
body: {
|
|
423
423
|
type: string;
|
|
424
|
-
cardId: string;
|
|
425
424
|
content: string;
|
|
425
|
+
cardId: string;
|
|
426
426
|
};
|
|
427
427
|
params: {};
|
|
428
428
|
query: {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import Elysia from 'elysia';
|
|
2
|
+
export declare const cronModule: Elysia<"", {
|
|
3
|
+
decorator: {};
|
|
4
|
+
store: {
|
|
5
|
+
cron: Record<"expire-memberships", import("croner").Cron> & Record<"payment-expiry-reminder", import("croner").Cron>;
|
|
6
|
+
};
|
|
7
|
+
derive: {};
|
|
8
|
+
resolve: {};
|
|
9
|
+
}, {
|
|
10
|
+
typebox: {};
|
|
11
|
+
error: {};
|
|
12
|
+
} & {
|
|
13
|
+
typebox: {};
|
|
14
|
+
error: {};
|
|
15
|
+
}, {
|
|
16
|
+
schema: {};
|
|
17
|
+
standaloneSchema: {};
|
|
18
|
+
macro: {};
|
|
19
|
+
macroFn: {};
|
|
20
|
+
parser: {};
|
|
21
|
+
response: {};
|
|
22
|
+
} & {
|
|
23
|
+
schema: {};
|
|
24
|
+
standaloneSchema: {};
|
|
25
|
+
macro: {};
|
|
26
|
+
macroFn: {};
|
|
27
|
+
parser: {};
|
|
28
|
+
response: {};
|
|
29
|
+
}, {}, {
|
|
30
|
+
derive: {};
|
|
31
|
+
resolve: {};
|
|
32
|
+
schema: {};
|
|
33
|
+
standaloneSchema: {};
|
|
34
|
+
response: {};
|
|
35
|
+
} & {
|
|
36
|
+
derive: {};
|
|
37
|
+
resolve: {};
|
|
38
|
+
schema: {};
|
|
39
|
+
standaloneSchema: {};
|
|
40
|
+
response: {};
|
|
41
|
+
}, {
|
|
42
|
+
derive: {};
|
|
43
|
+
resolve: {};
|
|
44
|
+
schema: {};
|
|
45
|
+
standaloneSchema: {};
|
|
46
|
+
response: {};
|
|
47
|
+
} & {
|
|
48
|
+
derive: {};
|
|
49
|
+
resolve: {};
|
|
50
|
+
schema: {};
|
|
51
|
+
standaloneSchema: {};
|
|
52
|
+
response: {};
|
|
53
|
+
}>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function expireMemberships(): Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function sendPaymentExpiryReminders(): Promise<void>;
|
|
@@ -417,6 +417,22 @@ export declare const deckModule: Elysia<"/v1/decks", {
|
|
|
417
417
|
};
|
|
418
418
|
};
|
|
419
419
|
};
|
|
420
|
+
} & {
|
|
421
|
+
v1: {
|
|
422
|
+
decks: {
|
|
423
|
+
recommended: {
|
|
424
|
+
get: {
|
|
425
|
+
body: {};
|
|
426
|
+
params: {};
|
|
427
|
+
query: {};
|
|
428
|
+
headers: {};
|
|
429
|
+
response: {
|
|
430
|
+
200: import("@vestcards/shared").IDeck[];
|
|
431
|
+
};
|
|
432
|
+
};
|
|
433
|
+
};
|
|
434
|
+
};
|
|
435
|
+
};
|
|
420
436
|
} & {
|
|
421
437
|
v1: {
|
|
422
438
|
decks: {
|
|
@@ -426,7 +442,9 @@ export declare const deckModule: Elysia<"/v1/decks", {
|
|
|
426
442
|
params: {
|
|
427
443
|
deckId: string;
|
|
428
444
|
};
|
|
429
|
-
query: {
|
|
445
|
+
query: {
|
|
446
|
+
preview?: boolean | undefined;
|
|
447
|
+
};
|
|
430
448
|
headers: {};
|
|
431
449
|
response: {
|
|
432
450
|
200: import("@vestcards/shared").IDeckDetail;
|
|
@@ -19,6 +19,10 @@ export declare namespace DeckModel {
|
|
|
19
19
|
deckId: import("@sinclair/typebox").TString;
|
|
20
20
|
}>;
|
|
21
21
|
type DeckIdParams = typeof deckIdParams.static;
|
|
22
|
+
const deckDetailQuery: import("@sinclair/typebox").TObject<{
|
|
23
|
+
preview: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
24
|
+
}>;
|
|
25
|
+
type DeckDetailQuery = typeof deckDetailQuery.static;
|
|
22
26
|
const topicSubjectParams: import("@sinclair/typebox").TObject<{
|
|
23
27
|
subject: import("@sinclair/typebox").TString;
|
|
24
28
|
}>;
|
|
@@ -3,6 +3,10 @@ import { type Paginated } from '../../utils/api';
|
|
|
3
3
|
import { DeckModel } from './model';
|
|
4
4
|
export declare abstract class DeckService {
|
|
5
5
|
static getAllDecks(filters: DeckModel.DeckListFilters, loggedUserId?: string): Promise<Paginated<IDeck>>;
|
|
6
|
-
static getDeck(deckId: string
|
|
6
|
+
static getDeck(deckId: string, options?: {
|
|
7
|
+
cardLimit?: number;
|
|
8
|
+
}): Promise<IDeckDetail>;
|
|
9
|
+
static getRecommendedDecks(_userId: string, canReadPremiumDecks: boolean): Promise<IDeck[]>;
|
|
10
|
+
private static mapDeckOwnerInfo;
|
|
7
11
|
static getOwnerInfoById(ownerId: string): Promise<IOwnerInfo>;
|
|
8
12
|
}
|