@oxyhq/services 5.12.8 → 5.12.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/lib/commonjs/core/OxyServices.js +66 -7
  2. package/lib/commonjs/core/OxyServices.js.map +1 -1
  3. package/lib/commonjs/index.js.map +1 -1
  4. package/lib/commonjs/ui/components/StepBasedScreen.js.map +1 -1
  5. package/lib/commonjs/ui/components/internal/TextField.js.map +1 -1
  6. package/lib/commonjs/ui/hooks/useAssets.js +6 -3
  7. package/lib/commonjs/ui/hooks/useAssets.js.map +1 -1
  8. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +10 -1
  9. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  10. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +7 -0
  11. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  12. package/lib/module/core/OxyServices.js +66 -7
  13. package/lib/module/core/OxyServices.js.map +1 -1
  14. package/lib/module/index.js.map +1 -1
  15. package/lib/module/ui/components/StepBasedScreen.js.map +1 -1
  16. package/lib/module/ui/components/internal/TextField.js.map +1 -1
  17. package/lib/module/ui/hooks/useAssets.js +6 -3
  18. package/lib/module/ui/hooks/useAssets.js.map +1 -1
  19. package/lib/module/ui/screens/AccountSettingsScreen.js +10 -1
  20. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  21. package/lib/module/ui/screens/WelcomeNewUserScreen.js +7 -0
  22. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  23. package/lib/typescript/core/OxyServices.d.ts +27 -4
  24. package/lib/typescript/core/OxyServices.d.ts.map +1 -1
  25. package/lib/typescript/index.d.ts +1 -1
  26. package/lib/typescript/index.d.ts.map +1 -1
  27. package/lib/typescript/models/interfaces.d.ts +21 -0
  28. package/lib/typescript/models/interfaces.d.ts.map +1 -1
  29. package/lib/typescript/ui/components/StepBasedScreen.d.ts.map +1 -1
  30. package/lib/typescript/ui/hooks/useAssets.d.ts.map +1 -1
  31. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  32. package/lib/typescript/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  33. package/package.json +31 -17
  34. package/src/core/OxyServices.ts +68 -6
  35. package/src/index.ts +4 -1
  36. package/src/models/interfaces.ts +25 -0
  37. package/src/ui/components/StepBasedScreen.tsx +4 -3
  38. package/src/ui/components/internal/TextField.tsx +1 -1
  39. package/src/ui/hooks/useAssets.ts +8 -3
  40. package/src/ui/screens/AccountSettingsScreen.tsx +11 -1
  41. package/src/ui/screens/WelcomeNewUserScreen.tsx +33 -13
  42. package/lib/typescript/types/shims.d.ts +0 -24
  43. package/src/types/shims.d.ts +0 -24
@@ -177,6 +177,13 @@ export interface FileDeleteResponse {
177
177
  /**
178
178
  * Central Asset Service interfaces
179
179
  */
180
+ /**
181
+ * File visibility levels
182
+ * - private: Only accessible by owner (default)
183
+ * - public: Accessible by anyone without authentication (e.g., avatars, public profile content)
184
+ * - unlisted: Accessible with direct link but not listed publicly
185
+ */
186
+ export type FileVisibility = 'private' | 'public' | 'unlisted';
180
187
  export interface AssetLink {
181
188
  app: string;
182
189
  entityType: string;
@@ -203,6 +210,7 @@ export interface Asset {
203
210
  originalName?: string;
204
211
  ownerUserId: string;
205
212
  status: 'active' | 'trash' | 'deleted';
213
+ visibility: FileVisibility;
206
214
  usageCount: number;
207
215
  createdAt: string;
208
216
  updatedAt: string;
@@ -225,12 +233,14 @@ export interface AssetCompleteRequest {
225
233
  originalName: string;
226
234
  size: number;
227
235
  mime: string;
236
+ visibility?: FileVisibility;
228
237
  metadata?: AssetMetadata;
229
238
  }
230
239
  export interface AssetLinkRequest {
231
240
  app: string;
232
241
  entityType: string;
233
242
  entityId: string;
243
+ visibility?: FileVisibility;
234
244
  }
235
245
  export interface AssetUnlinkRequest {
236
246
  app: string;
@@ -250,6 +260,17 @@ export interface AssetDeleteSummary {
250
260
  remainingLinks: number;
251
261
  variants: string[];
252
262
  }
263
+ export interface AssetUpdateVisibilityRequest {
264
+ visibility: FileVisibility;
265
+ }
266
+ export interface AssetUpdateVisibilityResponse {
267
+ success: boolean;
268
+ file: {
269
+ id: string;
270
+ visibility: FileVisibility;
271
+ updatedAt: string;
272
+ };
273
+ }
253
274
  export interface AssetUploadProgress {
254
275
  fileId: string;
255
276
  uploaded: number;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/models/interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,eAAe,CAAC,EAAE;QAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CAEjB;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CAEjB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CAEnB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CAErB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAEhB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAEd;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;CAEhB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CAEnB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAElB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAEzF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,CAAC;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/models/interfaces.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"StepBasedScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/StepBasedScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAsB/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC;IAC3E,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IACnE,WAAW,EAAE,GAAG,CAAC;CACpB;AAyDD,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA4TnD,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"StepBasedScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/StepBasedScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAuB/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC;IAC3E,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IACnE,WAAW,EAAE,GAAG,CAAC;CACpB;AAyDD,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA4TnD,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAssets.d.ts","sourceRoot":"","sources":["../../../../src/ui/hooks/useAssets.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,KAAK,EAGL,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAKjC,eAAO,MAAM,mBAAmB,GAAI,UAAU,WAAW,SAExD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;mBA6BZ,IAAI,aACC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAC7B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;oBAyEb,MAAM,OACV,MAAM,cACC,MAAM,YACR,MAAM,KACf,OAAO,CAAC,IAAI,CAAC;sBAiCL,MAAM,OACV,MAAM,cACC,MAAM,YACR,MAAM,KACf,OAAO,CAAC,IAAI,CAAC;sBA2BL,MAAM,YACL,MAAM,cACJ,MAAM,KACjB,OAAO,CAAC,MAAM,CAAC;wBAc2B,MAAM,KAAG,OAAO,CAAC,KAAK,CAAC;2BAmBzD,MAAM,UACR,OAAO,KACb,OAAO,CAAC,IAAI,CAAC;uBAoB4B,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;2BAgBlB,MAAM;;;;;;;CAuCvD,CAAC"}
1
+ {"version":3,"file":"useAssets.d.ts","sourceRoot":"","sources":["../../../../src/ui/hooks/useAssets.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,KAAK,EAGL,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAKjC,eAAO,MAAM,mBAAmB,GAAI,UAAU,WAAW,SAExD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;mBA6BZ,IAAI,aACC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAC7B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;oBAyEb,MAAM,OACV,MAAM,cACC,MAAM,YACR,MAAM,KACf,OAAO,CAAC,IAAI,CAAC;sBAsCL,MAAM,OACV,MAAM,cACC,MAAM,YACR,MAAM,KACf,OAAO,CAAC,IAAI,CAAC;sBA2BL,MAAM,YACL,MAAM,cACJ,MAAM,KACjB,OAAO,CAAC,MAAM,CAAC;wBAc2B,MAAM,KAAG,OAAO,CAAC,KAAK,CAAC;2BAmBzD,MAAM,UACR,OAAO,KACb,OAAO,CAAC,IAAI,CAAC;uBAoB4B,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;2BAgBlB,MAAM;;;;;;;CAuCvD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccountSettingsScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/screens/AccountSettingsScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAcjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;AA40D3D,wBAAiD"}
1
+ {"version":3,"file":"AccountSettingsScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/screens/AccountSettingsScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAcjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;AAs1D3D,wBAAiD"}
@@ -1 +1 @@
1
- {"version":3,"file":"WelcomeNewUserScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/screens/WelcomeNewUserScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAU3D;;;;;GAKG;AACH,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,GAAG;IAAE,OAAO,CAAC,EAAE,GAAG,CAAA;CAAE,CAsIvE,CAAC;AAqIF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"WelcomeNewUserScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/screens/WelcomeNewUserScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAU3D;;;;;GAKG;AACH,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,GAAG;IAAE,OAAO,CAAC,EAAE,GAAG,CAAA;CAAE,CA0JvE,CAAC;AAqIF,eAAe,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/services",
3
- "version": "5.12.8",
3
+ "version": "5.12.9",
4
4
  "description": "Reusable OxyHQ module to handle authentication, user management, karma system, device-based session management and more 🚀",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -80,7 +80,7 @@
80
80
  "delete-debug-view": "rm -rf ./lib/commonjs/components/bottomSheetDebugView ./lib/module/components/bottomSheetDebugView ./lib/typescript/components/bottomSheetDebugView || true",
81
81
  "delete-dts.js": "find ./lib/commonjs -name '*.d.js*' -delete && find ./lib/module -name '*.d.js*' -delete",
82
82
  "release": "rm -rf lib && npm run build && release-it",
83
- "prepublishOnly": "npm run typescript && npm run build"
83
+ "prepublishOnly": "npm run typescript && npm test && npm run build"
84
84
  },
85
85
  "dependencies": {
86
86
  "@amir-hossein-karimi/bottom-sheet": "^9.1.2",
@@ -104,39 +104,49 @@
104
104
  "@commitlint/cli": "^17.6.5",
105
105
  "@commitlint/config-conventional": "^17.6.5",
106
106
  "@release-it/conventional-changelog": "^8.0.1",
107
+ "@testing-library/jest-dom": "^6.4.2",
108
+ "@testing-library/react": "^14.2.1",
109
+ "@testing-library/react-native": "^12.4.3",
107
110
  "@types/invariant": "^2.2.34",
108
111
  "@types/jest": "^29.5.14",
109
112
  "@types/jwt-decode": "^2.2.1",
110
- "@types/node": "^20.19.24",
111
- "@types/react": "~19.0.10",
113
+ "@types/node": "^20.19.9",
114
+ "@types/react": "~19.1.0",
112
115
  "@types/react-native": "~0.73.0",
113
116
  "copyfiles": "^2.4.1",
114
- "expo-font": "^13.3.2",
115
- "expo-image": "^2.4.0",
117
+ "expo-font": "~14.0.9",
118
+ "expo-image": "~3.0.10",
116
119
  "husky": "^4.3.8",
120
+ "jest": "~29.7.0",
117
121
  "lint-staged": "^13.2.2",
118
122
  "metro-react-native-babel-preset": "^0.77.0",
119
123
  "react-native-builder-bob": "^0.30.3",
124
+ "react-native-gesture-handler": "~2.28.0",
125
+ "react-native-reanimated": "~4.1.1",
126
+ "react-native-safe-area-context": "~5.6.0",
127
+ "react-native-svg": "15.11.2",
128
+ "react-test-renderer": "^18.3.1",
120
129
  "release-it": "^17.6.0",
121
- "typescript": "^5.9.3"
130
+ "ts-jest": "^29.4.0",
131
+ "typescript": "^5.9.2"
122
132
  },
123
133
  "peerDependencies": {
124
- "@expo/vector-icons": "^14.1.0",
125
- "@react-navigation/native": "^7.0.0",
134
+ "@expo/vector-icons": "^15.0.3",
135
+ "@react-navigation/native": "^7.1.8",
126
136
  "@types/react": "*",
127
137
  "@types/react-native": "*",
128
138
  "axios": "^1.9.0",
129
- "expo": "^54.0.0",
130
- "expo-font": "^13.0.0",
131
- "expo-image": "^2.4.0",
139
+ "expo": "~54.0.22",
140
+ "expo-font": "~14.0.9",
141
+ "expo-image": "~3.0.10",
132
142
  "expo-linear-gradient": "^14.0.0",
133
143
  "invariant": "^2.2.4",
134
144
  "jwt-decode": "^4.0.0",
135
145
  "react": ">=18.0.0",
136
- "react-native": ">=0.81.0",
137
- "react-native-gesture-handler": ">=2.24.0",
138
- "react-native-reanimated": ">=4.1.0",
139
- "react-native-safe-area-context": "^5.4.0",
146
+ "react-native": ">=0.76.0",
147
+ "react-native-gesture-handler": "~2.28.0",
148
+ "react-native-reanimated": "~4.1.1",
149
+ "react-native-safe-area-context": "~5.6.0",
140
150
  "react-native-svg": ">=13.0.0"
141
151
  },
142
152
  "peerDependenciesMeta": {
@@ -177,5 +187,9 @@
177
187
  "module",
178
188
  "typescript"
179
189
  ]
190
+ },
191
+ "resolutions": {
192
+ "react-native-gesture-handler": "~2.28.0",
193
+ "react-native-reanimated": "~4.1.1"
180
194
  }
181
- }
195
+ }
@@ -1260,9 +1260,9 @@ export class OxyServices {
1260
1260
  /**
1261
1261
  * Upload raw file data
1262
1262
  */
1263
- async uploadRawFile(file: File | Blob, metadata?: Record<string, any>): Promise<any> {
1263
+ async uploadRawFile(file: File | Blob, visibility?: 'private' | 'public' | 'unlisted', metadata?: Record<string, any>): Promise<any> {
1264
1264
  // Switch to Central Asset Service upload flow
1265
- return this.assetUpload(file as File, metadata);
1265
+ return this.assetUpload(file as File, visibility, metadata);
1266
1266
  }
1267
1267
 
1268
1268
  // ============================================================================
@@ -1298,13 +1298,14 @@ export class OxyServices {
1298
1298
  /**
1299
1299
  * Complete asset upload - commit metadata and trigger variant generation
1300
1300
  */
1301
- async assetComplete(fileId: string, originalName: string, size: number, mime: string, metadata?: Record<string, any>): Promise<any> {
1301
+ async assetComplete(fileId: string, originalName: string, size: number, mime: string, visibility?: 'private' | 'public' | 'unlisted', metadata?: Record<string, any>): Promise<any> {
1302
1302
  try {
1303
1303
  const res = await this.client.post('/api/assets/complete', {
1304
1304
  fileId,
1305
1305
  originalName,
1306
1306
  size,
1307
1307
  mime,
1308
+ visibility,
1308
1309
  metadata
1309
1310
  });
1310
1311
  return res.data;
@@ -1316,7 +1317,7 @@ export class OxyServices {
1316
1317
  /**
1317
1318
  * Upload file using Central Asset Service
1318
1319
  */
1319
- async assetUpload(file: File, metadata?: Record<string, any>, onProgress?: (progress: number) => void): Promise<any> {
1320
+ async assetUpload(file: File, visibility?: 'private' | 'public' | 'unlisted', metadata?: Record<string, any>, onProgress?: (progress: number) => void): Promise<any> {
1320
1321
  try {
1321
1322
  // Calculate SHA256
1322
1323
  const sha256 = await this.calculateSHA256(file);
@@ -1342,6 +1343,7 @@ export class OxyServices {
1342
1343
  file.name,
1343
1344
  file.size,
1344
1345
  file.type,
1346
+ visibility,
1345
1347
  metadata
1346
1348
  );
1347
1349
  } catch (error) {
@@ -1384,12 +1386,13 @@ export class OxyServices {
1384
1386
  /**
1385
1387
  * Link asset to an entity
1386
1388
  */
1387
- async assetLink(fileId: string, app: string, entityType: string, entityId: string): Promise<any> {
1389
+ async assetLink(fileId: string, app: string, entityType: string, entityId: string, visibility?: 'private' | 'public' | 'unlisted'): Promise<any> {
1388
1390
  try {
1389
1391
  const res = await this.client.post(`/api/assets/${fileId}/links`, {
1390
1392
  app,
1391
1393
  entityType,
1392
- entityId
1394
+ entityId,
1395
+ visibility
1393
1396
  });
1394
1397
  return res.data;
1395
1398
  } catch (error) {
@@ -1483,6 +1486,65 @@ export class OxyServices {
1483
1486
  }
1484
1487
  }
1485
1488
 
1489
+ /**
1490
+ * Update asset visibility
1491
+ * @param fileId - The file ID
1492
+ * @param visibility - New visibility level ('private', 'public', or 'unlisted')
1493
+ * @returns Updated asset information
1494
+ */
1495
+ async assetUpdateVisibility(fileId: string, visibility: 'private' | 'public' | 'unlisted'): Promise<any> {
1496
+ try {
1497
+ const res = await this.client.patch(`/api/assets/${fileId}/visibility`, {
1498
+ visibility
1499
+ });
1500
+ return res.data;
1501
+ } catch (error) {
1502
+ throw this.handleError(error);
1503
+ }
1504
+ }
1505
+
1506
+ /**
1507
+ * Helper: Upload and link avatar with automatic public visibility
1508
+ * @param file - The avatar file
1509
+ * @param userId - User ID to link to
1510
+ * @param app - App name (defaults to 'profiles')
1511
+ * @returns The uploaded and linked asset
1512
+ */
1513
+ async uploadAvatar(file: File, userId: string, app: string = 'profiles'): Promise<any> {
1514
+ try {
1515
+ // Upload as public
1516
+ const asset = await this.assetUpload(file, 'public');
1517
+
1518
+ // Link to user profile as avatar
1519
+ await this.assetLink(asset.file.id, app, 'avatar', userId, 'public');
1520
+
1521
+ return asset;
1522
+ } catch (error) {
1523
+ throw this.handleError(error);
1524
+ }
1525
+ }
1526
+
1527
+ /**
1528
+ * Helper: Upload and link profile banner with automatic public visibility
1529
+ * @param file - The banner file
1530
+ * @param userId - User ID to link to
1531
+ * @param app - App name (defaults to 'profiles')
1532
+ * @returns The uploaded and linked asset
1533
+ */
1534
+ async uploadProfileBanner(file: File, userId: string, app: string = 'profiles'): Promise<any> {
1535
+ try {
1536
+ // Upload as public
1537
+ const asset = await this.assetUpload(file, 'public');
1538
+
1539
+ // Link to user profile as banner
1540
+ await this.assetLink(asset.file.id, app, 'profile-banner', userId, 'public');
1541
+
1542
+ return asset;
1543
+ } catch (error) {
1544
+ throw this.handleError(error);
1545
+ }
1546
+ }
1547
+
1486
1548
  // ============================================================================
1487
1549
  // LOCATION METHODS
1488
1550
  // ============================================================================
package/src/index.ts CHANGED
@@ -56,6 +56,7 @@ export type {
56
56
  DeviceSessionLogoutResponse,
57
57
  UpdateDeviceNameResponse,
58
58
  // Central Asset Service types
59
+ FileVisibility,
59
60
  AssetLink,
60
61
  AssetVariant,
61
62
  Asset,
@@ -66,7 +67,9 @@ export type {
66
67
  AssetUnlinkRequest,
67
68
  AssetUrlResponse,
68
69
  AssetDeleteSummary,
69
- AssetUploadProgress
70
+ AssetUploadProgress,
71
+ AssetUpdateVisibilityRequest,
72
+ AssetUpdateVisibilityResponse
70
73
  } from './models/interfaces';
71
74
 
72
75
  export type {
@@ -215,6 +215,15 @@ export interface FileDeleteResponse {
215
215
  /**
216
216
  * Central Asset Service interfaces
217
217
  */
218
+
219
+ /**
220
+ * File visibility levels
221
+ * - private: Only accessible by owner (default)
222
+ * - public: Accessible by anyone without authentication (e.g., avatars, public profile content)
223
+ * - unlisted: Accessible with direct link but not listed publicly
224
+ */
225
+ export type FileVisibility = 'private' | 'public' | 'unlisted';
226
+
218
227
  export interface AssetLink {
219
228
  app: string;
220
229
  entityType: string;
@@ -244,6 +253,7 @@ export interface Asset {
244
253
  originalName?: string;
245
254
  ownerUserId: string;
246
255
  status: 'active' | 'trash' | 'deleted';
256
+ visibility: FileVisibility;
247
257
  usageCount: number;
248
258
  createdAt: string;
249
259
  updatedAt: string;
@@ -269,6 +279,7 @@ export interface AssetCompleteRequest {
269
279
  originalName: string;
270
280
  size: number;
271
281
  mime: string;
282
+ visibility?: FileVisibility;
272
283
  metadata?: AssetMetadata;
273
284
  }
274
285
 
@@ -276,6 +287,7 @@ export interface AssetLinkRequest {
276
287
  app: string;
277
288
  entityType: string;
278
289
  entityId: string;
290
+ visibility?: FileVisibility;
279
291
  }
280
292
 
281
293
  export interface AssetUnlinkRequest {
@@ -299,6 +311,19 @@ export interface AssetDeleteSummary {
299
311
  variants: string[];
300
312
  }
301
313
 
314
+ export interface AssetUpdateVisibilityRequest {
315
+ visibility: FileVisibility;
316
+ }
317
+
318
+ export interface AssetUpdateVisibilityResponse {
319
+ success: boolean;
320
+ file: {
321
+ id: string;
322
+ visibility: FileVisibility;
323
+ updatedAt: string;
324
+ };
325
+ }
326
+
302
327
  export interface AssetUploadProgress {
303
328
  fileId: string;
304
329
  uploaded: number;
@@ -18,6 +18,7 @@ import Animated, {
18
18
  withSpring,
19
19
  runOnJS,
20
20
  interpolate,
21
+ type SharedValue,
21
22
  } from 'react-native-reanimated';
22
23
  import { useThemeColors, createAuthStyles } from '../styles';
23
24
  import type { BaseScreenProps } from '../navigation/types';
@@ -75,9 +76,9 @@ const ProgressIndicator: React.FC<{
75
76
  // Step container with animations
76
77
  const AnimatedStepContainer: React.FC<{
77
78
  children: React.ReactNode;
78
- fadeAnim: Animated.SharedValue<number>;
79
- slideAnim: Animated.SharedValue<number>;
80
- scaleAnim: Animated.SharedValue<number>;
79
+ fadeAnim: SharedValue<number>;
80
+ slideAnim: SharedValue<number>;
81
+ scaleAnim: SharedValue<number>;
81
82
  styles: any;
82
83
  stepKey: string;
83
84
  }> = ({ children, fadeAnim, slideAnim, scaleAnim, styles, stepKey }) => {
@@ -597,7 +597,7 @@ const TextField = forwardRef<TextInput, TextFieldProps>(({
597
597
 
598
598
  // Render trailing elements
599
599
  const renderTrailingElements = () => {
600
- const elements: React.ReactElement[] = [];
600
+ const elements = [];
601
601
 
602
602
  // Loading indicator
603
603
  if (isValidating) {
@@ -70,8 +70,8 @@ export const useAssets = () => {
70
70
  status: 'uploading'
71
71
  };
72
72
 
73
- // Upload with progress callback
74
- const result = await oxyInstance.assetUpload(file, metadata, (percentage) => {
73
+ // Upload with progress callback (visibility undefined, metadata, then onProgress)
74
+ const result = await oxyInstance.assetUpload(file, undefined, metadata, (percentage: number) => {
75
75
  if (initialProgress.fileId) {
76
76
  setUploadProgress(initialProgress.fileId, {
77
77
  ...initialProgress,
@@ -135,7 +135,12 @@ export const useAssets = () => {
135
135
  clearErrors();
136
136
  setLinking(true);
137
137
 
138
- const result = await oxyInstance.assetLink(assetId, app, entityType, entityId);
138
+ // Auto-detect visibility for avatars and profile banners
139
+ const visibility = (entityType === 'avatar' || entityType === 'profile-banner')
140
+ ? 'public' as const
141
+ : undefined;
142
+
143
+ const result = await oxyInstance.assetLink(assetId, app, entityType, entityId, visibility);
139
144
 
140
145
  if (result.file) {
141
146
  setAsset(result.file);
@@ -251,7 +251,7 @@ const AccountSettingsScreen: React.FC<BaseScreenProps> = ({
251
251
  selectMode: true,
252
252
  multiSelect: false,
253
253
  afterSelect: 'back',
254
- onSelect: (file: FileMetadata) => {
254
+ onSelect: async (file: FileMetadata) => {
255
255
  if (!file.contentType.startsWith('image/')) {
256
256
  toast.error(t('editProfile.toasts.selectImage') || 'Please select an image file');
257
257
  return;
@@ -268,6 +268,16 @@ const AccountSettingsScreen: React.FC<BaseScreenProps> = ({
268
268
  try {
269
269
  console.log('[AccountSettings] Auto-saving avatar', file.id);
270
270
  setIsSaving(true);
271
+
272
+ // Update file visibility to public for avatar
273
+ try {
274
+ await oxyServices.assetUpdateVisibility(file.id, 'public');
275
+ console.log('[AccountSettings] Avatar visibility updated to public');
276
+ } catch (visError) {
277
+ console.warn('[AccountSettings] Failed to update avatar visibility, continuing anyway:', visError);
278
+ // Continue with avatar update even if visibility update fails
279
+ }
280
+
271
281
  await updateUser({ avatar: file.id }, oxyServices);
272
282
  // Force refresh current user cache (updateUser already does a fetch with force=true internally)
273
283
  // Extra safeguard: ensure avatarFileId reflects saved id (already set) and trigger any dependent UI.
@@ -42,17 +42,21 @@ const WelcomeNewUserScreen: React.FC<BaseScreenProps & { newUser?: any }> = ({
42
42
  : (t('welcomeNew.welcome.title') || 'Welcome 👋');
43
43
  const steps: Array<{ key: string; title: string; bullets?: string[]; body?: string; showAvatar?: boolean; }> = [
44
44
  { key: 'welcome', title: welcomeTitle, body: t('welcomeNew.welcome.body') || "You just created an account in a calm, ethical space. A few quick things — then you're in." },
45
- { key: 'account', title: t('welcomeNew.account.title') || 'One Account. Simple.', bullets: [
46
- t('welcomeNew.account.bullets.0') || 'One identity across everything',
47
- t('welcomeNew.account.bullets.1') || 'No re‑signing in all the time',
48
- t('welcomeNew.account.bullets.2') || 'Your preferences stay with you',
49
- ] },
50
- { key: 'principles', title: t('welcomeNew.principles.title') || 'What We Stand For', bullets: [
51
- t('welcomeNew.principles.bullets.0') || 'Privacy by default',
52
- t('welcomeNew.principles.bullets.1') || 'No manipulative feeds',
53
- t('welcomeNew.principles.bullets.2') || 'You decide what to share',
54
- t('welcomeNew.principles.bullets.3') || 'No selling your data',
55
- ] },
45
+ {
46
+ key: 'account', title: t('welcomeNew.account.title') || 'One Account. Simple.', bullets: [
47
+ t('welcomeNew.account.bullets.0') || 'One identity across everything',
48
+ t('welcomeNew.account.bullets.1') || 'No re‑signing in all the time',
49
+ t('welcomeNew.account.bullets.2') || 'Your preferences stay with you',
50
+ ]
51
+ },
52
+ {
53
+ key: 'principles', title: t('welcomeNew.principles.title') || 'What We Stand For', bullets: [
54
+ t('welcomeNew.principles.bullets.0') || 'Privacy by default',
55
+ t('welcomeNew.principles.bullets.1') || 'No manipulative feeds',
56
+ t('welcomeNew.principles.bullets.2') || 'You decide what to share',
57
+ t('welcomeNew.principles.bullets.3') || 'No selling your data',
58
+ ]
59
+ },
56
60
  { key: 'karma', title: t('welcomeNew.karma.title') || 'Karma = Trust & Growth', body: t('welcomeNew.karma.body') || 'Oxy Karma is a points system that reacts to what you do. Helpful, respectful, constructive actions earn it. Harmful or low‑effort stuff chips it away. More karma can unlock benefits; low karma can limit features. It keeps things fair and rewards real contribution.' },
57
61
  { key: 'avatar', title: t('welcomeNew.avatar.title') || 'Make It Yours', body: t('welcomeNew.avatar.body') || 'Add an avatar so people recognize you. It will show anywhere you show up here. Skip if you want — you can add it later.', showAvatar: true },
58
62
  { key: 'ready', title: t('welcomeNew.ready.title') || "You're Ready", body: t('welcomeNew.ready.body') || 'Explore. Contribute. Earn karma. Stay in control.' }
@@ -82,8 +86,24 @@ const WelcomeNewUserScreen: React.FC<BaseScreenProps & { newUser?: any }> = ({
82
86
  disabledMimeTypes: ['video/', 'audio/', 'application/pdf'],
83
87
  afterSelect: 'back',
84
88
  onSelect: async (file: any) => {
85
- if (!file.contentType.startsWith('image/')) { toast.error(t('editProfile.toasts.selectImage') || 'Please select an image file'); return; }
86
- try { await updateUser({ avatar: file.id }, oxyServices); toast.success(t('editProfile.toasts.avatarUpdated') || 'Avatar updated'); } catch (e: any) { toast.error(e.message || t('editProfile.toasts.updateAvatarFailed') || 'Failed to update avatar'); }
89
+ if (!file.contentType.startsWith('image/')) {
90
+ toast.error(t('editProfile.toasts.selectImage') || 'Please select an image file');
91
+ return;
92
+ }
93
+ try {
94
+ // Update file visibility to public for avatar
95
+ try {
96
+ await oxyServices.assetUpdateVisibility(file.id, 'public');
97
+ console.log('[WelcomeNewUser] Avatar visibility updated to public');
98
+ } catch (visError) {
99
+ console.warn('[WelcomeNewUser] Failed to update avatar visibility, continuing anyway:', visError);
100
+ }
101
+
102
+ await updateUser({ avatar: file.id }, oxyServices);
103
+ toast.success(t('editProfile.toasts.avatarUpdated') || 'Avatar updated');
104
+ } catch (e: any) {
105
+ toast.error(e.message || t('editProfile.toasts.updateAvatarFailed') || 'Failed to update avatar');
106
+ }
87
107
  }
88
108
  });
89
109
  }, [navigate, updateUser, oxyServices]);
@@ -1,24 +0,0 @@
1
- declare module 'react-native-gesture-handler';
2
- declare module 'react-native-safe-area-context';
3
- declare module 'react-native-svg';
4
-
5
- declare module 'react-native-reanimated' {
6
- export type SharedValue<T = any> = any;
7
- export const withTiming: any,
8
- withSpring: any,
9
- withSequence: any,
10
- withDelay: any,
11
- useSharedValue: any,
12
- useAnimatedStyle: any,
13
- runOnJS: any,
14
- interpolate: any,
15
- interpolateColor: any,
16
- Easing: any;
17
- const _d: any;
18
- export default _d;
19
- }
20
-
21
- declare type SharedValue<T = any> = any;
22
- declare namespace Animated {
23
- type SharedValue<T = any> = any;
24
- }
@@ -1,24 +0,0 @@
1
- declare module 'react-native-gesture-handler';
2
- declare module 'react-native-safe-area-context';
3
- declare module 'react-native-svg';
4
-
5
- declare module 'react-native-reanimated' {
6
- export type SharedValue<T = any> = any;
7
- export const withTiming: any,
8
- withSpring: any,
9
- withSequence: any,
10
- withDelay: any,
11
- useSharedValue: any,
12
- useAnimatedStyle: any,
13
- runOnJS: any,
14
- interpolate: any,
15
- interpolateColor: any,
16
- Easing: any;
17
- const _d: any;
18
- export default _d;
19
- }
20
-
21
- declare type SharedValue<T = any> = any;
22
- declare namespace Animated {
23
- type SharedValue<T = any> = any;
24
- }