@beorchid-llc/thrivo-contracts 0.7.0 → 0.8.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/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/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.8.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": [
|