@beorchid-llc/thrivo-contracts 0.7.0 → 0.9.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/admin.d.ts +11 -0
- package/dist/admin.d.ts.map +1 -1
- package/dist/auth.d.ts +36 -3
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +36 -3
- package/dist/auth.js.map +1 -1
- package/dist/common.d.ts +7 -0
- package/dist/common.d.ts.map +1 -1
- package/dist/common.js +6 -0
- package/dist/common.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/uploads.d.ts +194 -0
- package/dist/uploads.d.ts.map +1 -0
- package/dist/uploads.js +54 -0
- package/dist/uploads.js.map +1 -0
- package/dist/users.d.ts +16 -0
- package/dist/users.d.ts.map +1 -1
- package/dist/users.js +4 -0
- package/dist/users.js.map +1 -1
- package/package.json +5 -1
package/dist/admin.d.ts
CHANGED
|
@@ -151,6 +151,7 @@ export type AdminUserSubscription = z.infer<typeof adminUserSubscriptionSchema>;
|
|
|
151
151
|
export declare const adminUserDetailSchema: z.ZodObject<Omit<{
|
|
152
152
|
id: z.ZodString;
|
|
153
153
|
email: z.ZodString;
|
|
154
|
+
image: z.ZodNullable<z.ZodString>;
|
|
154
155
|
goal: z.ZodNullable<z.ZodEnum<["lose", "maintain", "gain"]>>;
|
|
155
156
|
sex: z.ZodNullable<z.ZodEnum<["male", "female", "prefer_not_to_say"]>>;
|
|
156
157
|
age: z.ZodNullable<z.ZodNumber>;
|
|
@@ -214,6 +215,7 @@ export declare const adminUserDetailSchema: z.ZodObject<Omit<{
|
|
|
214
215
|
cancelAtPeriodEnd: boolean;
|
|
215
216
|
} | null;
|
|
216
217
|
email: string;
|
|
218
|
+
image: string | null;
|
|
217
219
|
goal: "lose" | "maintain" | "gain" | null;
|
|
218
220
|
sex: "male" | "female" | "prefer_not_to_say" | null;
|
|
219
221
|
age: number | null;
|
|
@@ -254,6 +256,7 @@ export declare const adminUserDetailSchema: z.ZodObject<Omit<{
|
|
|
254
256
|
cancelAtPeriodEnd: boolean;
|
|
255
257
|
} | null;
|
|
256
258
|
email: string;
|
|
259
|
+
image: string | null;
|
|
257
260
|
goal: "lose" | "maintain" | "gain" | null;
|
|
258
261
|
sex: "male" | "female" | "prefer_not_to_say" | null;
|
|
259
262
|
age: number | null;
|
|
@@ -287,6 +290,7 @@ export type AdminUserDetail = z.infer<typeof adminUserDetailSchema>;
|
|
|
287
290
|
export declare const adminUserSchema: z.ZodObject<Omit<{
|
|
288
291
|
id: z.ZodString;
|
|
289
292
|
email: z.ZodString;
|
|
293
|
+
image: z.ZodNullable<z.ZodString>;
|
|
290
294
|
goal: z.ZodNullable<z.ZodEnum<["lose", "maintain", "gain"]>>;
|
|
291
295
|
sex: z.ZodNullable<z.ZodEnum<["male", "female", "prefer_not_to_say"]>>;
|
|
292
296
|
age: z.ZodNullable<z.ZodNumber>;
|
|
@@ -350,6 +354,7 @@ export declare const adminUserSchema: z.ZodObject<Omit<{
|
|
|
350
354
|
cancelAtPeriodEnd: boolean;
|
|
351
355
|
} | null;
|
|
352
356
|
email: string;
|
|
357
|
+
image: string | null;
|
|
353
358
|
goal: "lose" | "maintain" | "gain" | null;
|
|
354
359
|
sex: "male" | "female" | "prefer_not_to_say" | null;
|
|
355
360
|
age: number | null;
|
|
@@ -390,6 +395,7 @@ export declare const adminUserSchema: z.ZodObject<Omit<{
|
|
|
390
395
|
cancelAtPeriodEnd: boolean;
|
|
391
396
|
} | null;
|
|
392
397
|
email: string;
|
|
398
|
+
image: string | null;
|
|
393
399
|
goal: "lose" | "maintain" | "gain" | null;
|
|
394
400
|
sex: "male" | "female" | "prefer_not_to_say" | null;
|
|
395
401
|
age: number | null;
|
|
@@ -423,6 +429,7 @@ export declare const adminUserDetailResponseSchema: z.ZodObject<{
|
|
|
423
429
|
user: z.ZodObject<Omit<{
|
|
424
430
|
id: z.ZodString;
|
|
425
431
|
email: z.ZodString;
|
|
432
|
+
image: z.ZodNullable<z.ZodString>;
|
|
426
433
|
goal: z.ZodNullable<z.ZodEnum<["lose", "maintain", "gain"]>>;
|
|
427
434
|
sex: z.ZodNullable<z.ZodEnum<["male", "female", "prefer_not_to_say"]>>;
|
|
428
435
|
age: z.ZodNullable<z.ZodNumber>;
|
|
@@ -486,6 +493,7 @@ export declare const adminUserDetailResponseSchema: z.ZodObject<{
|
|
|
486
493
|
cancelAtPeriodEnd: boolean;
|
|
487
494
|
} | null;
|
|
488
495
|
email: string;
|
|
496
|
+
image: string | null;
|
|
489
497
|
goal: "lose" | "maintain" | "gain" | null;
|
|
490
498
|
sex: "male" | "female" | "prefer_not_to_say" | null;
|
|
491
499
|
age: number | null;
|
|
@@ -526,6 +534,7 @@ export declare const adminUserDetailResponseSchema: z.ZodObject<{
|
|
|
526
534
|
cancelAtPeriodEnd: boolean;
|
|
527
535
|
} | null;
|
|
528
536
|
email: string;
|
|
537
|
+
image: string | null;
|
|
529
538
|
goal: "lose" | "maintain" | "gain" | null;
|
|
530
539
|
sex: "male" | "female" | "prefer_not_to_say" | null;
|
|
531
540
|
age: number | null;
|
|
@@ -568,6 +577,7 @@ export declare const adminUserDetailResponseSchema: z.ZodObject<{
|
|
|
568
577
|
cancelAtPeriodEnd: boolean;
|
|
569
578
|
} | null;
|
|
570
579
|
email: string;
|
|
580
|
+
image: string | null;
|
|
571
581
|
goal: "lose" | "maintain" | "gain" | null;
|
|
572
582
|
sex: "male" | "female" | "prefer_not_to_say" | null;
|
|
573
583
|
age: number | null;
|
|
@@ -610,6 +620,7 @@ export declare const adminUserDetailResponseSchema: z.ZodObject<{
|
|
|
610
620
|
cancelAtPeriodEnd: boolean;
|
|
611
621
|
} | null;
|
|
612
622
|
email: string;
|
|
623
|
+
image: string | null;
|
|
613
624
|
goal: "lose" | "maintain" | "gain" | null;
|
|
614
625
|
sex: "male" | "female" | "prefer_not_to_say" | null;
|
|
615
626
|
age: number | null;
|
package/dist/admin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,eAAe,8CAA4C,CAAC;AACzE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;EAKtB,CAAC;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAMhD,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAmC,CAAC;AAC3E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,cAAc,WAAW,CAAC;AACvC,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC;AAE5B,eAAO,MAAM,4BAA4B;;;;;;EAEvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,2BAA2B;;;;;;;;;EAGtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAMhF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAKhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EACS,CAAC;AAMxE,eAAO,MAAM,sBAAsB,gCAA8B,CAAC;AAClE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,qBAAqB,+CAA6C,CAAC;AAChF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,6BAA6B,kEAMxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;EAKtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"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"}
|
package/dist/auth.d.ts
CHANGED
|
@@ -14,9 +14,11 @@ export declare const authSessionSchema: z.ZodObject<{
|
|
|
14
14
|
refreshExpiresAt: string;
|
|
15
15
|
}>;
|
|
16
16
|
export type AuthSession = z.infer<typeof authSessionSchema>;
|
|
17
|
+
/** Shared email primitive — RFC-validated, length-capped, case-normalized to match the backend. */
|
|
18
|
+
export declare const emailSchema: z.ZodEffects<z.ZodString, string, string>;
|
|
17
19
|
/** POST /auth/otp/request payload */
|
|
18
20
|
export declare const otpRequestPayloadSchema: z.ZodObject<{
|
|
19
|
-
email: z.ZodString
|
|
21
|
+
email: z.ZodEffects<z.ZodString, string, string>;
|
|
20
22
|
}, "strip", z.ZodTypeAny, {
|
|
21
23
|
email: string;
|
|
22
24
|
}, {
|
|
@@ -25,7 +27,7 @@ export declare const otpRequestPayloadSchema: z.ZodObject<{
|
|
|
25
27
|
export type OtpRequestPayload = z.infer<typeof otpRequestPayloadSchema>;
|
|
26
28
|
/** POST /auth/otp/verify payload */
|
|
27
29
|
export declare const otpVerifyPayloadSchema: z.ZodObject<{
|
|
28
|
-
email: z.ZodString
|
|
30
|
+
email: z.ZodEffects<z.ZodString, string, string>;
|
|
29
31
|
code: z.ZodString;
|
|
30
32
|
}, "strip", z.ZodTypeAny, {
|
|
31
33
|
code: string;
|
|
@@ -40,7 +42,7 @@ export type OtpVerifyPayload = z.infer<typeof otpVerifyPayloadSchema>;
|
|
|
40
42
|
* @deprecated Magic-link auth remains API-supported but is hidden in mobile while the UX is revisited.
|
|
41
43
|
*/
|
|
42
44
|
export declare const magicLinkRequestPayloadSchema: z.ZodObject<{
|
|
43
|
-
email: z.ZodString
|
|
45
|
+
email: z.ZodEffects<z.ZodString, string, string>;
|
|
44
46
|
}, "strip", z.ZodTypeAny, {
|
|
45
47
|
email: string;
|
|
46
48
|
}, {
|
|
@@ -68,6 +70,22 @@ export declare const refreshPayloadSchema: z.ZodObject<{
|
|
|
68
70
|
refreshToken: string;
|
|
69
71
|
}>;
|
|
70
72
|
export type RefreshPayload = z.infer<typeof refreshPayloadSchema>;
|
|
73
|
+
/**
|
|
74
|
+
* POST /auth/oauth/apple payload — native Sign in with Apple. The app posts the
|
|
75
|
+
* signed `identityToken` from `expo-apple-authentication`, plus the display name
|
|
76
|
+
* Apple supplies only on the first authorization (never re-sent).
|
|
77
|
+
*/
|
|
78
|
+
export declare const appleSignInPayloadSchema: z.ZodObject<{
|
|
79
|
+
identityToken: z.ZodString;
|
|
80
|
+
name: z.ZodOptional<z.ZodString>;
|
|
81
|
+
}, "strip", z.ZodTypeAny, {
|
|
82
|
+
identityToken: string;
|
|
83
|
+
name?: string | undefined;
|
|
84
|
+
}, {
|
|
85
|
+
identityToken: string;
|
|
86
|
+
name?: string | undefined;
|
|
87
|
+
}>;
|
|
88
|
+
export type AppleSignInPayload = z.infer<typeof appleSignInPayloadSchema>;
|
|
71
89
|
/** Lightweight session facts for mobile cold-start restore (navigation guard). */
|
|
72
90
|
export declare const userSessionSchema: z.ZodObject<{
|
|
73
91
|
userId: z.ZodString;
|
|
@@ -140,6 +158,11 @@ export declare const authRoutes: {
|
|
|
140
158
|
path: "/api/v1/auth/magic-link/verify";
|
|
141
159
|
auth: "public";
|
|
142
160
|
};
|
|
161
|
+
magicLinkCallback: {
|
|
162
|
+
method: "GET";
|
|
163
|
+
path: "/api/v1/auth/magic-link/callback";
|
|
164
|
+
auth: "public";
|
|
165
|
+
};
|
|
143
166
|
refresh: {
|
|
144
167
|
method: "POST";
|
|
145
168
|
path: "/api/v1/auth/refresh";
|
|
@@ -160,5 +183,15 @@ export declare const authRoutes: {
|
|
|
160
183
|
path: "/api/v1/auth/google/start";
|
|
161
184
|
auth: "public";
|
|
162
185
|
};
|
|
186
|
+
googleCallback: {
|
|
187
|
+
method: "GET";
|
|
188
|
+
path: "/api/v1/auth/google/callback";
|
|
189
|
+
auth: "public";
|
|
190
|
+
};
|
|
191
|
+
oauthApple: {
|
|
192
|
+
method: "POST";
|
|
193
|
+
path: "/api/v1/auth/oauth/apple";
|
|
194
|
+
auth: "public";
|
|
195
|
+
};
|
|
163
196
|
};
|
|
164
197
|
//# sourceMappingURL=auth.d.ts.map
|
package/dist/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,6GAA6G;AAC7G,eAAO,MAAM,iBAAiB;;;;;;;;;;;;EAI5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,qCAAqC;AACrC,eAAO,MAAM,uBAAuB;;;;;;EAElC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,oCAAoC;AACpC,eAAO,MAAM,sBAAsB;;;;;;;;;EAGjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,6BAA6B;;;;;;EAExC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF;;;GAGG;AACH,eAAO,MAAM,4BAA4B;;;;;;EAEvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,qDAAqD;AACrD,eAAO,MAAM,oBAAoB;;;;;;EAE/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,kFAAkF;AAClF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAK5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA2C,CAAC;AAClF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,6GAA6G;AAC7G,eAAO,MAAM,iBAAiB;;;;;;;;;;;;EAI5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,mGAAmG;AACnG,eAAO,MAAM,WAAW,2CAIY,CAAC;AAErC,qCAAqC;AACrC,eAAO,MAAM,uBAAuB;;;;;;EAElC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,oCAAoC;AACpC,eAAO,MAAM,sBAAsB;;;;;;;;;EAGjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,6BAA6B;;;;;;EAExC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF;;;GAGG;AACH,eAAO,MAAM,4BAA4B;;;;;;EAEvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,qDAAqD;AACrD,eAAO,MAAM,oBAAoB;;;;;;EAE/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;EAGnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,kFAAkF;AAClF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAK5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA2C,CAAC;AAClF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DkB,CAAC"}
|
package/dist/auth.js
CHANGED
|
@@ -6,13 +6,19 @@ export const authSessionSchema = z.object({
|
|
|
6
6
|
refreshToken: z.string(),
|
|
7
7
|
refreshExpiresAt: z.string(), // ISO-8601
|
|
8
8
|
});
|
|
9
|
+
/** Shared email primitive — RFC-validated, length-capped, case-normalized to match the backend. */
|
|
10
|
+
export const emailSchema = z
|
|
11
|
+
.string()
|
|
12
|
+
.email()
|
|
13
|
+
.max(254)
|
|
14
|
+
.transform((e) => e.toLowerCase());
|
|
9
15
|
/** POST /auth/otp/request payload */
|
|
10
16
|
export const otpRequestPayloadSchema = z.object({
|
|
11
|
-
email:
|
|
17
|
+
email: emailSchema,
|
|
12
18
|
});
|
|
13
19
|
/** POST /auth/otp/verify payload */
|
|
14
20
|
export const otpVerifyPayloadSchema = z.object({
|
|
15
|
-
email:
|
|
21
|
+
email: emailSchema,
|
|
16
22
|
code: z.string().regex(/^\d{6}$/),
|
|
17
23
|
});
|
|
18
24
|
/**
|
|
@@ -20,7 +26,7 @@ export const otpVerifyPayloadSchema = z.object({
|
|
|
20
26
|
* @deprecated Magic-link auth remains API-supported but is hidden in mobile while the UX is revisited.
|
|
21
27
|
*/
|
|
22
28
|
export const magicLinkRequestPayloadSchema = z.object({
|
|
23
|
-
email:
|
|
29
|
+
email: emailSchema,
|
|
24
30
|
});
|
|
25
31
|
/**
|
|
26
32
|
* POST /auth/magic-link/verify payload
|
|
@@ -33,6 +39,15 @@ export const magicLinkVerifyPayloadSchema = z.object({
|
|
|
33
39
|
export const refreshPayloadSchema = z.object({
|
|
34
40
|
refreshToken: z.string().min(1),
|
|
35
41
|
});
|
|
42
|
+
/**
|
|
43
|
+
* POST /auth/oauth/apple payload — native Sign in with Apple. The app posts the
|
|
44
|
+
* signed `identityToken` from `expo-apple-authentication`, plus the display name
|
|
45
|
+
* Apple supplies only on the first authorization (never re-sent).
|
|
46
|
+
*/
|
|
47
|
+
export const appleSignInPayloadSchema = z.object({
|
|
48
|
+
identityToken: z.string().min(1).max(4096),
|
|
49
|
+
name: z.string().max(120).optional(),
|
|
50
|
+
});
|
|
36
51
|
/** Lightweight session facts for mobile cold-start restore (navigation guard). */
|
|
37
52
|
export const userSessionSchema = z.object({
|
|
38
53
|
userId: z.string().uuid(),
|
|
@@ -64,6 +79,12 @@ export const authRoutes = {
|
|
|
64
79
|
path: "/api/v1/auth/magic-link/verify",
|
|
65
80
|
auth: "public",
|
|
66
81
|
},
|
|
82
|
+
// Email CTA lands here over HTTPS, then bounces to the app deep link.
|
|
83
|
+
magicLinkCallback: {
|
|
84
|
+
method: "GET",
|
|
85
|
+
path: "/api/v1/auth/magic-link/callback",
|
|
86
|
+
auth: "public",
|
|
87
|
+
},
|
|
67
88
|
refresh: {
|
|
68
89
|
method: "POST",
|
|
69
90
|
path: "/api/v1/auth/refresh",
|
|
@@ -84,5 +105,17 @@ export const authRoutes = {
|
|
|
84
105
|
path: "/api/v1/auth/google/start",
|
|
85
106
|
auth: "public",
|
|
86
107
|
},
|
|
108
|
+
// Google redirects here after consent; the server bounces back to the app deep link.
|
|
109
|
+
googleCallback: {
|
|
110
|
+
method: "GET",
|
|
111
|
+
path: "/api/v1/auth/google/callback",
|
|
112
|
+
auth: "public",
|
|
113
|
+
},
|
|
114
|
+
// Native Sign in with Apple → identity token → token pair.
|
|
115
|
+
oauthApple: {
|
|
116
|
+
method: "POST",
|
|
117
|
+
path: "/api/v1/auth/oauth/apple",
|
|
118
|
+
auth: "public",
|
|
119
|
+
},
|
|
87
120
|
};
|
|
88
121
|
//# sourceMappingURL=auth.js.map
|
package/dist/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,6GAA6G;AAC7G,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW;CAC1C,CAAC,CAAC;AAGH,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/common.d.ts
CHANGED
|
@@ -76,6 +76,13 @@ export type RouteContract = {
|
|
|
76
76
|
};
|
|
77
77
|
/** Generic success envelope `{ data: T, meta? }` — admin-panel alias of apiSuccessSchema. */
|
|
78
78
|
export declare const successEnvelope: typeof apiSuccessSchema;
|
|
79
|
+
/**
|
|
80
|
+
* Acknowledgement payload — the unwrapped `data` for endpoints that confirm an
|
|
81
|
+
* action without returning a body (e.g. `POST /auth/otp/request` 202, logout,
|
|
82
|
+
* push registration). The envelope still carries `responseCode`/`message`.
|
|
83
|
+
*/
|
|
84
|
+
export declare const ackSchema: z.ZodNull;
|
|
85
|
+
export type Ack = z.infer<typeof ackSchema>;
|
|
79
86
|
/** Untyped primitive schemas for ID fields and ISO date strings. */
|
|
80
87
|
export declare const idSchema: z.ZodString;
|
|
81
88
|
export declare const isoDateSchema: z.ZodString;
|
package/dist/common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe,kKAU1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,UAAU;;;;;;0BAIC,CAAC;AAEzB,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;;;;;;;;;;;;;;;kEAO/D;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC1B,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,CAAC,CAAC;IACR,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7D,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,WAAW,MAAM,EAAE,CAAC;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;CACjD,CAAC;AAMF,6FAA6F;AAC7F,eAAO,MAAM,eAAe,yBAAmB,CAAC;AAEhD,oEAAoE;AACpE,eAAO,MAAM,QAAQ,aAAoB,CAAC;AAC1C,eAAO,MAAM,aAAa,aAAa,CAAC;AACxC,eAAO,MAAM,cAAc,aAA0C,CAAC;AAEtE,8DAA8D;AAC9D,eAAO,MAAM,eAAe;;;;;;;;;EAAoD,CAAC;AACjF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe,kKAU1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,UAAU;;;;;;0BAIC,CAAC;AAEzB,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;;;;;;;;;;;;;;;kEAO/D;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC1B,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,CAAC,CAAC;IACR,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7D,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,WAAW,MAAM,EAAE,CAAC;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;CACjD,CAAC;AAMF,6FAA6F;AAC7F,eAAO,MAAM,eAAe,yBAAmB,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,SAAS,WAAW,CAAC;AAClC,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAE5C,oEAAoE;AACpE,eAAO,MAAM,QAAQ,aAAoB,CAAC;AAC1C,eAAO,MAAM,aAAa,aAAa,CAAC;AACxC,eAAO,MAAM,cAAc,aAA0C,CAAC;AAEtE,8DAA8D;AAC9D,eAAO,MAAM,eAAe;;;;;;;;;EAAoD,CAAC;AACjF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
package/dist/common.js
CHANGED
|
@@ -38,6 +38,12 @@ export function apiSuccessSchema(data) {
|
|
|
38
38
|
// ---------------------------------------------------------------------------
|
|
39
39
|
/** Generic success envelope `{ data: T, meta? }` — admin-panel alias of apiSuccessSchema. */
|
|
40
40
|
export const successEnvelope = apiSuccessSchema;
|
|
41
|
+
/**
|
|
42
|
+
* Acknowledgement payload — the unwrapped `data` for endpoints that confirm an
|
|
43
|
+
* action without returning a body (e.g. `POST /auth/otp/request` 202, logout,
|
|
44
|
+
* push registration). The envelope still carries `responseCode`/`message`.
|
|
45
|
+
*/
|
|
46
|
+
export const ackSchema = z.null();
|
|
41
47
|
/** Untyped primitive schemas for ID fields and ISO date strings. */
|
|
42
48
|
export const idSchema = z.string().min(1);
|
|
43
49
|
export const isoDateSchema = z.string();
|
package/dist/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;IACpC,kBAAkB;IAClB,iBAAiB;IACjB,WAAW;IACX,kBAAkB;IAClB,WAAW;IACX,UAAU;IACV,cAAc;IACd,gBAAgB;IAChB,gBAAgB;CACjB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC7C,CAAC;KACD,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAIzB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAChC,CAAC;IACF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAIH,MAAM,UAAU,gBAAgB,CAAyB,IAAO;IAC9D,OAAO,CAAC,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACxB,IAAI;QACJ,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;QACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;KACpB,CAAC,CAAC;AACL,CAAC;AAiBD,8EAA8E;AAC9E,gDAAgD;AAChD,8EAA8E;AAE9E,6FAA6F;AAC7F,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAEhD,oEAAoE;AACpE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AACxC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;AAEtE,8DAA8D;AAC9D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;IACpC,kBAAkB;IAClB,iBAAiB;IACjB,WAAW;IACX,kBAAkB;IAClB,WAAW;IACX,UAAU;IACV,cAAc;IACd,gBAAgB;IAChB,gBAAgB;CACjB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC7C,CAAC;KACD,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAIzB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAChC,CAAC;IACF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAIH,MAAM,UAAU,gBAAgB,CAAyB,IAAO;IAC9D,OAAO,CAAC,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACxB,IAAI;QACJ,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;QACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;KACpB,CAAC,CAAC;AACL,CAAC;AAiBD,8EAA8E;AAC9E,gDAAgD;AAChD,8EAA8E;AAE9E,6FAA6F;AAC7F,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAGlC,oEAAoE;AACpE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AACxC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;AAEtE,8DAA8D;AAC9D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Generic presigned-upload contract. Clients ask for a presigned PUT URL, upload
|
|
4
|
+
* the bytes straight to R2, then confirm. `intent` keeps one flow reusable across
|
|
5
|
+
* upload kinds — `avatar` ships now; `progress_photo`/`meal_photo` are reserved
|
|
6
|
+
* for the roadmap features and rejected by the service until wired up.
|
|
7
|
+
*/
|
|
8
|
+
export declare const uploadIntentSchema: z.ZodEnum<["avatar", "progress_photo", "meal_photo"]>;
|
|
9
|
+
export type UploadIntent = z.infer<typeof uploadIntentSchema>;
|
|
10
|
+
export declare const uploadStatusSchema: z.ZodEnum<["pending", "uploaded", "verified", "failed", "expired"]>;
|
|
11
|
+
export type UploadStatus = z.infer<typeof uploadStatusSchema>;
|
|
12
|
+
/** Image formats accepted for image intents (avatar/photos). */
|
|
13
|
+
export declare const imageExtensionSchema: z.ZodEnum<["jpg", "jpeg", "png", "webp", "heic"]>;
|
|
14
|
+
export type ImageExtension = z.infer<typeof imageExtensionSchema>;
|
|
15
|
+
export declare const requestUploadPayloadSchema: z.ZodObject<{
|
|
16
|
+
intent: z.ZodEnum<["avatar", "progress_photo", "meal_photo"]>;
|
|
17
|
+
fileExtension: z.ZodEnum<["jpg", "jpeg", "png", "webp", "heic"]>;
|
|
18
|
+
}, "strip", z.ZodTypeAny, {
|
|
19
|
+
intent: "avatar" | "progress_photo" | "meal_photo";
|
|
20
|
+
fileExtension: "jpg" | "jpeg" | "png" | "webp" | "heic";
|
|
21
|
+
}, {
|
|
22
|
+
intent: "avatar" | "progress_photo" | "meal_photo";
|
|
23
|
+
fileExtension: "jpg" | "jpeg" | "png" | "webp" | "heic";
|
|
24
|
+
}>;
|
|
25
|
+
export type RequestUploadPayload = z.infer<typeof requestUploadPayloadSchema>;
|
|
26
|
+
export declare const requestUploadResultSchema: z.ZodObject<{
|
|
27
|
+
uploadId: z.ZodString;
|
|
28
|
+
/** Presigned PUT URL — the client uploads the file bytes here. */
|
|
29
|
+
uploadUrl: z.ZodString;
|
|
30
|
+
/** Content-Type the client MUST send on the PUT so the signature matches. */
|
|
31
|
+
contentType: z.ZodString;
|
|
32
|
+
key: z.ZodString;
|
|
33
|
+
/** Public read URL the object will live at once verified. */
|
|
34
|
+
publicUrl: z.ZodString;
|
|
35
|
+
/**
|
|
36
|
+
* Server-owned max upload size in bytes for this intent. The client SHOULD
|
|
37
|
+
* reject larger files before uploading; the server re-checks on verify, so a
|
|
38
|
+
* tampered client can't bypass it.
|
|
39
|
+
*/
|
|
40
|
+
maxBytes: z.ZodNumber;
|
|
41
|
+
expiresAt: z.ZodDate;
|
|
42
|
+
}, "strip", z.ZodTypeAny, {
|
|
43
|
+
key: string;
|
|
44
|
+
uploadId: string;
|
|
45
|
+
uploadUrl: string;
|
|
46
|
+
contentType: string;
|
|
47
|
+
publicUrl: string;
|
|
48
|
+
maxBytes: number;
|
|
49
|
+
expiresAt: Date;
|
|
50
|
+
}, {
|
|
51
|
+
key: string;
|
|
52
|
+
uploadId: string;
|
|
53
|
+
uploadUrl: string;
|
|
54
|
+
contentType: string;
|
|
55
|
+
publicUrl: string;
|
|
56
|
+
maxBytes: number;
|
|
57
|
+
expiresAt: Date;
|
|
58
|
+
}>;
|
|
59
|
+
export type RequestUploadResult = z.infer<typeof requestUploadResultSchema>;
|
|
60
|
+
export declare const requestUploadResponseSchema: z.ZodObject<{
|
|
61
|
+
success: z.ZodLiteral<true>;
|
|
62
|
+
data: z.ZodObject<{
|
|
63
|
+
uploadId: z.ZodString;
|
|
64
|
+
/** Presigned PUT URL — the client uploads the file bytes here. */
|
|
65
|
+
uploadUrl: z.ZodString;
|
|
66
|
+
/** Content-Type the client MUST send on the PUT so the signature matches. */
|
|
67
|
+
contentType: z.ZodString;
|
|
68
|
+
key: z.ZodString;
|
|
69
|
+
/** Public read URL the object will live at once verified. */
|
|
70
|
+
publicUrl: z.ZodString;
|
|
71
|
+
/**
|
|
72
|
+
* Server-owned max upload size in bytes for this intent. The client SHOULD
|
|
73
|
+
* reject larger files before uploading; the server re-checks on verify, so a
|
|
74
|
+
* tampered client can't bypass it.
|
|
75
|
+
*/
|
|
76
|
+
maxBytes: z.ZodNumber;
|
|
77
|
+
expiresAt: z.ZodDate;
|
|
78
|
+
}, "strip", z.ZodTypeAny, {
|
|
79
|
+
key: string;
|
|
80
|
+
uploadId: string;
|
|
81
|
+
uploadUrl: string;
|
|
82
|
+
contentType: string;
|
|
83
|
+
publicUrl: string;
|
|
84
|
+
maxBytes: number;
|
|
85
|
+
expiresAt: Date;
|
|
86
|
+
}, {
|
|
87
|
+
key: string;
|
|
88
|
+
uploadId: string;
|
|
89
|
+
uploadUrl: string;
|
|
90
|
+
contentType: string;
|
|
91
|
+
publicUrl: string;
|
|
92
|
+
maxBytes: number;
|
|
93
|
+
expiresAt: Date;
|
|
94
|
+
}>;
|
|
95
|
+
responseCode: z.ZodNumber;
|
|
96
|
+
message: z.ZodString;
|
|
97
|
+
}, "strip", z.ZodTypeAny, {
|
|
98
|
+
message: string;
|
|
99
|
+
success: true;
|
|
100
|
+
responseCode: number;
|
|
101
|
+
data: {
|
|
102
|
+
key: string;
|
|
103
|
+
uploadId: string;
|
|
104
|
+
uploadUrl: string;
|
|
105
|
+
contentType: string;
|
|
106
|
+
publicUrl: string;
|
|
107
|
+
maxBytes: number;
|
|
108
|
+
expiresAt: Date;
|
|
109
|
+
};
|
|
110
|
+
}, {
|
|
111
|
+
message: string;
|
|
112
|
+
success: true;
|
|
113
|
+
responseCode: number;
|
|
114
|
+
data: {
|
|
115
|
+
key: string;
|
|
116
|
+
uploadId: string;
|
|
117
|
+
uploadUrl: string;
|
|
118
|
+
contentType: string;
|
|
119
|
+
publicUrl: string;
|
|
120
|
+
maxBytes: number;
|
|
121
|
+
expiresAt: Date;
|
|
122
|
+
};
|
|
123
|
+
}>;
|
|
124
|
+
export declare const verifyUploadResultSchema: z.ZodObject<{
|
|
125
|
+
uploadId: z.ZodString;
|
|
126
|
+
status: z.ZodEnum<["pending", "uploaded", "verified", "failed", "expired"]>;
|
|
127
|
+
publicUrl: z.ZodString;
|
|
128
|
+
size: z.ZodNullable<z.ZodNumber>;
|
|
129
|
+
}, "strip", z.ZodTypeAny, {
|
|
130
|
+
status: "failed" | "expired" | "pending" | "uploaded" | "verified";
|
|
131
|
+
uploadId: string;
|
|
132
|
+
publicUrl: string;
|
|
133
|
+
size: number | null;
|
|
134
|
+
}, {
|
|
135
|
+
status: "failed" | "expired" | "pending" | "uploaded" | "verified";
|
|
136
|
+
uploadId: string;
|
|
137
|
+
publicUrl: string;
|
|
138
|
+
size: number | null;
|
|
139
|
+
}>;
|
|
140
|
+
export type VerifyUploadResult = z.infer<typeof verifyUploadResultSchema>;
|
|
141
|
+
export declare const verifyUploadResponseSchema: z.ZodObject<{
|
|
142
|
+
success: z.ZodLiteral<true>;
|
|
143
|
+
data: z.ZodObject<{
|
|
144
|
+
uploadId: z.ZodString;
|
|
145
|
+
status: z.ZodEnum<["pending", "uploaded", "verified", "failed", "expired"]>;
|
|
146
|
+
publicUrl: z.ZodString;
|
|
147
|
+
size: z.ZodNullable<z.ZodNumber>;
|
|
148
|
+
}, "strip", z.ZodTypeAny, {
|
|
149
|
+
status: "failed" | "expired" | "pending" | "uploaded" | "verified";
|
|
150
|
+
uploadId: string;
|
|
151
|
+
publicUrl: string;
|
|
152
|
+
size: number | null;
|
|
153
|
+
}, {
|
|
154
|
+
status: "failed" | "expired" | "pending" | "uploaded" | "verified";
|
|
155
|
+
uploadId: string;
|
|
156
|
+
publicUrl: string;
|
|
157
|
+
size: number | null;
|
|
158
|
+
}>;
|
|
159
|
+
responseCode: z.ZodNumber;
|
|
160
|
+
message: z.ZodString;
|
|
161
|
+
}, "strip", z.ZodTypeAny, {
|
|
162
|
+
message: string;
|
|
163
|
+
success: true;
|
|
164
|
+
responseCode: number;
|
|
165
|
+
data: {
|
|
166
|
+
status: "failed" | "expired" | "pending" | "uploaded" | "verified";
|
|
167
|
+
uploadId: string;
|
|
168
|
+
publicUrl: string;
|
|
169
|
+
size: number | null;
|
|
170
|
+
};
|
|
171
|
+
}, {
|
|
172
|
+
message: string;
|
|
173
|
+
success: true;
|
|
174
|
+
responseCode: number;
|
|
175
|
+
data: {
|
|
176
|
+
status: "failed" | "expired" | "pending" | "uploaded" | "verified";
|
|
177
|
+
uploadId: string;
|
|
178
|
+
publicUrl: string;
|
|
179
|
+
size: number | null;
|
|
180
|
+
};
|
|
181
|
+
}>;
|
|
182
|
+
export declare const uploadRoutes: {
|
|
183
|
+
requestUpload: {
|
|
184
|
+
method: "POST";
|
|
185
|
+
path: "/api/v1/uploads/presigned-url";
|
|
186
|
+
auth: "user";
|
|
187
|
+
};
|
|
188
|
+
verifyUpload: {
|
|
189
|
+
method: "POST";
|
|
190
|
+
path: "/api/v1/uploads/:id/verify";
|
|
191
|
+
auth: "user";
|
|
192
|
+
};
|
|
193
|
+
};
|
|
194
|
+
//# sourceMappingURL=uploads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploads.d.ts","sourceRoot":"","sources":["../src/uploads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,uDAAqD,CAAC;AACrF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,kBAAkB,qEAAmE,CAAC;AACnG,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,mDAAiD,CAAC;AACnF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,0BAA0B;;;;;;;;;EAGrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,yBAAyB;;IAEpC,kEAAkE;;IAElE,6EAA6E;;;IAG7E,6DAA6D;;IAE7D;;;;OAIG;;;;;;;;;;;;;;;;;;;EAGH,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,eAAO,MAAM,2BAA2B;;;;QAhBtC,kEAAkE;;QAElE,6EAA6E;;;QAG7E,6DAA6D;;QAE7D;;;;WAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKiF,CAAC;AAEvF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;EAKnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA6C,CAAC;AAErF,eAAO,MAAM,YAAY;;;;;;;;;;;CAWgB,CAAC"}
|
package/dist/uploads.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { apiSuccessSchema } from "./common";
|
|
3
|
+
/**
|
|
4
|
+
* Generic presigned-upload contract. Clients ask for a presigned PUT URL, upload
|
|
5
|
+
* the bytes straight to R2, then confirm. `intent` keeps one flow reusable across
|
|
6
|
+
* upload kinds — `avatar` ships now; `progress_photo`/`meal_photo` are reserved
|
|
7
|
+
* for the roadmap features and rejected by the service until wired up.
|
|
8
|
+
*/
|
|
9
|
+
export const uploadIntentSchema = z.enum(["avatar", "progress_photo", "meal_photo"]);
|
|
10
|
+
export const uploadStatusSchema = z.enum(["pending", "uploaded", "verified", "failed", "expired"]);
|
|
11
|
+
/** Image formats accepted for image intents (avatar/photos). */
|
|
12
|
+
export const imageExtensionSchema = z.enum(["jpg", "jpeg", "png", "webp", "heic"]);
|
|
13
|
+
export const requestUploadPayloadSchema = z.object({
|
|
14
|
+
intent: uploadIntentSchema,
|
|
15
|
+
fileExtension: imageExtensionSchema,
|
|
16
|
+
});
|
|
17
|
+
export const requestUploadResultSchema = z.object({
|
|
18
|
+
uploadId: z.string().uuid(),
|
|
19
|
+
/** Presigned PUT URL — the client uploads the file bytes here. */
|
|
20
|
+
uploadUrl: z.string().url(),
|
|
21
|
+
/** Content-Type the client MUST send on the PUT so the signature matches. */
|
|
22
|
+
contentType: z.string(),
|
|
23
|
+
key: z.string(),
|
|
24
|
+
/** Public read URL the object will live at once verified. */
|
|
25
|
+
publicUrl: z.string().url(),
|
|
26
|
+
/**
|
|
27
|
+
* Server-owned max upload size in bytes for this intent. The client SHOULD
|
|
28
|
+
* reject larger files before uploading; the server re-checks on verify, so a
|
|
29
|
+
* tampered client can't bypass it.
|
|
30
|
+
*/
|
|
31
|
+
maxBytes: z.number().int().positive(),
|
|
32
|
+
expiresAt: z.coerce.date(),
|
|
33
|
+
});
|
|
34
|
+
export const requestUploadResponseSchema = apiSuccessSchema(requestUploadResultSchema);
|
|
35
|
+
export const verifyUploadResultSchema = z.object({
|
|
36
|
+
uploadId: z.string().uuid(),
|
|
37
|
+
status: uploadStatusSchema,
|
|
38
|
+
publicUrl: z.string().url(),
|
|
39
|
+
size: z.number().int().nullable(),
|
|
40
|
+
});
|
|
41
|
+
export const verifyUploadResponseSchema = apiSuccessSchema(verifyUploadResultSchema);
|
|
42
|
+
export const uploadRoutes = {
|
|
43
|
+
requestUpload: {
|
|
44
|
+
method: "POST",
|
|
45
|
+
path: "/api/v1/uploads/presigned-url",
|
|
46
|
+
auth: "user",
|
|
47
|
+
},
|
|
48
|
+
verifyUpload: {
|
|
49
|
+
method: "POST",
|
|
50
|
+
path: "/api/v1/uploads/:id/verify",
|
|
51
|
+
auth: "user",
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=uploads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploads.js","sourceRoot":"","sources":["../src/uploads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAsB,MAAM,UAAU,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC;AAGrF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAGnG,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAGnF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,kBAAkB;IAC1B,aAAa,EAAE,oBAAoB;CACpC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC3B,kEAAkE;IAClE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC3B,6EAA6E;IAC7E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,6DAA6D;IAC7D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC3B;;;;OAIG;IACH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACrC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;AAEvF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC3B,MAAM,EAAE,kBAAkB;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;AAErF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,aAAa,EAAE;QACb,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,+BAA+B;QACrC,IAAI,EAAE,MAAM;KACb;IACD,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,4BAA4B;QAClC,IAAI,EAAE,MAAM;KACb;CACsC,CAAC"}
|
package/dist/users.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export declare const userProfileSchema: z.ZodObject<{
|
|
|
9
9
|
id: z.ZodString;
|
|
10
10
|
email: z.ZodString;
|
|
11
11
|
name: z.ZodString;
|
|
12
|
+
image: z.ZodNullable<z.ZodString>;
|
|
12
13
|
goal: z.ZodNullable<z.ZodEnum<["lose", "maintain", "gain"]>>;
|
|
13
14
|
sex: z.ZodNullable<z.ZodEnum<["male", "female", "prefer_not_to_say"]>>;
|
|
14
15
|
age: z.ZodNullable<z.ZodNumber>;
|
|
@@ -36,6 +37,7 @@ export declare const userProfileSchema: z.ZodObject<{
|
|
|
36
37
|
id: string;
|
|
37
38
|
createdAt: Date;
|
|
38
39
|
email: string;
|
|
40
|
+
image: string | null;
|
|
39
41
|
goal: "lose" | "maintain" | "gain" | null;
|
|
40
42
|
sex: "male" | "female" | "prefer_not_to_say" | null;
|
|
41
43
|
age: number | null;
|
|
@@ -62,6 +64,7 @@ export declare const userProfileSchema: z.ZodObject<{
|
|
|
62
64
|
id: string;
|
|
63
65
|
createdAt: Date;
|
|
64
66
|
email: string;
|
|
67
|
+
image: string | null;
|
|
65
68
|
goal: "lose" | "maintain" | "gain" | null;
|
|
66
69
|
sex: "male" | "female" | "prefer_not_to_say" | null;
|
|
67
70
|
age: number | null;
|
|
@@ -91,6 +94,7 @@ export declare const getMeResponseSchema: z.ZodObject<{
|
|
|
91
94
|
id: z.ZodString;
|
|
92
95
|
email: z.ZodString;
|
|
93
96
|
name: z.ZodString;
|
|
97
|
+
image: z.ZodNullable<z.ZodString>;
|
|
94
98
|
goal: z.ZodNullable<z.ZodEnum<["lose", "maintain", "gain"]>>;
|
|
95
99
|
sex: z.ZodNullable<z.ZodEnum<["male", "female", "prefer_not_to_say"]>>;
|
|
96
100
|
age: z.ZodNullable<z.ZodNumber>;
|
|
@@ -118,6 +122,7 @@ export declare const getMeResponseSchema: z.ZodObject<{
|
|
|
118
122
|
id: string;
|
|
119
123
|
createdAt: Date;
|
|
120
124
|
email: string;
|
|
125
|
+
image: string | null;
|
|
121
126
|
goal: "lose" | "maintain" | "gain" | null;
|
|
122
127
|
sex: "male" | "female" | "prefer_not_to_say" | null;
|
|
123
128
|
age: number | null;
|
|
@@ -144,6 +149,7 @@ export declare const getMeResponseSchema: z.ZodObject<{
|
|
|
144
149
|
id: string;
|
|
145
150
|
createdAt: Date;
|
|
146
151
|
email: string;
|
|
152
|
+
image: string | null;
|
|
147
153
|
goal: "lose" | "maintain" | "gain" | null;
|
|
148
154
|
sex: "male" | "female" | "prefer_not_to_say" | null;
|
|
149
155
|
age: number | null;
|
|
@@ -177,6 +183,7 @@ export declare const getMeResponseSchema: z.ZodObject<{
|
|
|
177
183
|
id: string;
|
|
178
184
|
createdAt: Date;
|
|
179
185
|
email: string;
|
|
186
|
+
image: string | null;
|
|
180
187
|
goal: "lose" | "maintain" | "gain" | null;
|
|
181
188
|
sex: "male" | "female" | "prefer_not_to_say" | null;
|
|
182
189
|
age: number | null;
|
|
@@ -208,6 +215,7 @@ export declare const getMeResponseSchema: z.ZodObject<{
|
|
|
208
215
|
id: string;
|
|
209
216
|
createdAt: Date;
|
|
210
217
|
email: string;
|
|
218
|
+
image: string | null;
|
|
211
219
|
goal: "lose" | "maintain" | "gain" | null;
|
|
212
220
|
sex: "male" | "female" | "prefer_not_to_say" | null;
|
|
213
221
|
age: number | null;
|
|
@@ -234,6 +242,7 @@ export declare const getMeResponseSchema: z.ZodObject<{
|
|
|
234
242
|
export type GetMeResponse = z.infer<typeof getMeResponseSchema>;
|
|
235
243
|
export declare const updateProfilePayloadSchema: z.ZodObject<{
|
|
236
244
|
firstName: z.ZodOptional<z.ZodString>;
|
|
245
|
+
image: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
237
246
|
goal: z.ZodOptional<z.ZodEnum<["lose", "maintain", "gain"]>>;
|
|
238
247
|
currentWeightKg: z.ZodOptional<z.ZodNumber>;
|
|
239
248
|
targetWeightKg: z.ZodOptional<z.ZodNumber>;
|
|
@@ -248,6 +257,7 @@ export declare const updateProfilePayloadSchema: z.ZodObject<{
|
|
|
248
257
|
onboardingStep: z.ZodOptional<z.ZodNumber>;
|
|
249
258
|
activationIntent: z.ZodOptional<z.ZodEnum<["skip", "start_free_trial", "complete"]>>;
|
|
250
259
|
}, "strip", z.ZodTypeAny, {
|
|
260
|
+
image?: string | null | undefined;
|
|
251
261
|
goal?: "lose" | "maintain" | "gain" | undefined;
|
|
252
262
|
sex?: "male" | "female" | "prefer_not_to_say" | undefined;
|
|
253
263
|
heightCm?: number | undefined;
|
|
@@ -263,6 +273,7 @@ export declare const updateProfilePayloadSchema: z.ZodObject<{
|
|
|
263
273
|
unitSystem?: "metric" | "imperial" | undefined;
|
|
264
274
|
activationIntent?: "skip" | "start_free_trial" | "complete" | undefined;
|
|
265
275
|
}, {
|
|
276
|
+
image?: string | null | undefined;
|
|
266
277
|
goal?: "lose" | "maintain" | "gain" | undefined;
|
|
267
278
|
sex?: "male" | "female" | "prefer_not_to_say" | undefined;
|
|
268
279
|
heightCm?: number | undefined;
|
|
@@ -285,6 +296,7 @@ export declare const updateProfileResponseSchema: z.ZodObject<{
|
|
|
285
296
|
id: z.ZodString;
|
|
286
297
|
email: z.ZodString;
|
|
287
298
|
name: z.ZodString;
|
|
299
|
+
image: z.ZodNullable<z.ZodString>;
|
|
288
300
|
goal: z.ZodNullable<z.ZodEnum<["lose", "maintain", "gain"]>>;
|
|
289
301
|
sex: z.ZodNullable<z.ZodEnum<["male", "female", "prefer_not_to_say"]>>;
|
|
290
302
|
age: z.ZodNullable<z.ZodNumber>;
|
|
@@ -312,6 +324,7 @@ export declare const updateProfileResponseSchema: z.ZodObject<{
|
|
|
312
324
|
id: string;
|
|
313
325
|
createdAt: Date;
|
|
314
326
|
email: string;
|
|
327
|
+
image: string | null;
|
|
315
328
|
goal: "lose" | "maintain" | "gain" | null;
|
|
316
329
|
sex: "male" | "female" | "prefer_not_to_say" | null;
|
|
317
330
|
age: number | null;
|
|
@@ -338,6 +351,7 @@ export declare const updateProfileResponseSchema: z.ZodObject<{
|
|
|
338
351
|
id: string;
|
|
339
352
|
createdAt: Date;
|
|
340
353
|
email: string;
|
|
354
|
+
image: string | null;
|
|
341
355
|
goal: "lose" | "maintain" | "gain" | null;
|
|
342
356
|
sex: "male" | "female" | "prefer_not_to_say" | null;
|
|
343
357
|
age: number | null;
|
|
@@ -371,6 +385,7 @@ export declare const updateProfileResponseSchema: z.ZodObject<{
|
|
|
371
385
|
id: string;
|
|
372
386
|
createdAt: Date;
|
|
373
387
|
email: string;
|
|
388
|
+
image: string | null;
|
|
374
389
|
goal: "lose" | "maintain" | "gain" | null;
|
|
375
390
|
sex: "male" | "female" | "prefer_not_to_say" | null;
|
|
376
391
|
age: number | null;
|
|
@@ -402,6 +417,7 @@ export declare const updateProfileResponseSchema: z.ZodObject<{
|
|
|
402
417
|
id: string;
|
|
403
418
|
createdAt: Date;
|
|
404
419
|
email: string;
|
|
420
|
+
image: string | null;
|
|
405
421
|
goal: "lose" | "maintain" | "gain" | null;
|
|
406
422
|
sex: "male" | "female" | "prefer_not_to_say" | null;
|
|
407
423
|
age: number | null;
|
package/dist/users.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../src/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,UAAU,yCAAuC,CAAC;AAC/D,eAAO,MAAM,SAAS,oDAAkD,CAAC;AACzE,eAAO,MAAM,UAAU,gCAA8B,CAAC;AACtD,eAAO,MAAM,mBAAmB,2DAAyD,CAAC;AAC1F,eAAO,MAAM,mBAAmB,wEAM9B,CAAC;AACH,eAAO,MAAM,sBAAsB,qDAAmD,CAAC;AAEvF,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../src/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,UAAU,yCAAuC,CAAC;AAC/D,eAAO,MAAM,SAAS,oDAAkD,CAAC;AACzE,eAAO,MAAM,UAAU,gCAA8B,CAAC;AACtD,eAAO,MAAM,mBAAmB,2DAAyD,CAAC;AAC1F,eAAO,MAAM,mBAAmB,wEAM9B,CAAC;AACH,eAAO,MAAM,sBAAsB,qDAAmD,CAAC;AAEvF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2B5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAsC,CAAC;AAEvE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAsC,CAAC;AAE/E,eAAO,MAAM,sBAAsB,WAAW,CAAC;AAE/C,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;CAgBkB,CAAC"}
|
package/dist/users.js
CHANGED
|
@@ -16,6 +16,7 @@ export const userProfileSchema = z.object({
|
|
|
16
16
|
id: z.string().uuid(),
|
|
17
17
|
email: z.string().email(),
|
|
18
18
|
name: z.string(),
|
|
19
|
+
image: z.string().url().nullable(),
|
|
19
20
|
goal: goalSchema.nullable(),
|
|
20
21
|
sex: sexSchema.nullable(),
|
|
21
22
|
age: z.number().int().nullable(),
|
|
@@ -42,6 +43,9 @@ export const userProfileSchema = z.object({
|
|
|
42
43
|
export const getMeResponseSchema = apiSuccessSchema(userProfileSchema);
|
|
43
44
|
export const updateProfilePayloadSchema = z.object({
|
|
44
45
|
firstName: z.string().trim().min(1).optional(),
|
|
46
|
+
// Profile avatar URL — a verified R2 public URL from the upload flow, or null
|
|
47
|
+
// to clear it. Sending only `{ image }` is valid (every field is optional).
|
|
48
|
+
image: z.string().url().nullable().optional(),
|
|
45
49
|
goal: goalSchema.optional(),
|
|
46
50
|
currentWeightKg: z.number().positive().optional(),
|
|
47
51
|
targetWeightKg: z.number().positive().optional(),
|
package/dist/users.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.js","sourceRoot":"","sources":["../src/users.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"users.js","sourceRoot":"","sources":["../src/users.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beorchid-llc/thrivo-contracts",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Shared Thrivo API request and response contracts.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"private": false,
|
|
@@ -47,6 +47,10 @@
|
|
|
47
47
|
"./subscriptions": {
|
|
48
48
|
"types": "./dist/subscriptions.d.ts",
|
|
49
49
|
"import": "./dist/subscriptions.js"
|
|
50
|
+
},
|
|
51
|
+
"./uploads": {
|
|
52
|
+
"types": "./dist/uploads.d.ts",
|
|
53
|
+
"import": "./dist/uploads.js"
|
|
50
54
|
}
|
|
51
55
|
},
|
|
52
56
|
"files": [
|