@oxyhq/services 5.13.21 → 5.13.23

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 (67) hide show
  1. package/lib/commonjs/core/OxyServices.base.js +34 -21
  2. package/lib/commonjs/core/OxyServices.base.js.map +1 -1
  3. package/lib/commonjs/ui/components/ErrorBoundary.js +145 -0
  4. package/lib/commonjs/ui/components/ErrorBoundary.js.map +1 -0
  5. package/lib/commonjs/ui/navigation/OxyRouter.js +83 -30
  6. package/lib/commonjs/ui/navigation/OxyRouter.js.map +1 -1
  7. package/lib/commonjs/ui/screens/AccountCenterScreen.js +19 -14
  8. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  9. package/lib/commonjs/ui/screens/SessionManagementScreen.js +90 -77
  10. package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
  11. package/lib/commonjs/ui/screens/SignInScreen.js +1 -1
  12. package/lib/commonjs/ui/screens/SignInScreen.js.map +1 -1
  13. package/lib/module/core/OxyServices.base.js +34 -21
  14. package/lib/module/core/OxyServices.base.js.map +1 -1
  15. package/lib/module/ui/components/ErrorBoundary.js +139 -0
  16. package/lib/module/ui/components/ErrorBoundary.js.map +1 -0
  17. package/lib/module/ui/navigation/OxyRouter.js +83 -31
  18. package/lib/module/ui/navigation/OxyRouter.js.map +1 -1
  19. package/lib/module/ui/screens/AccountCenterScreen.js +19 -14
  20. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  21. package/lib/module/ui/screens/SessionManagementScreen.js +91 -78
  22. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
  23. package/lib/module/ui/screens/SignInScreen.js +1 -1
  24. package/lib/module/ui/screens/SignInScreen.js.map +1 -1
  25. package/lib/typescript/core/OxyServices.base.d.ts +16 -10
  26. package/lib/typescript/core/OxyServices.base.d.ts.map +1 -1
  27. package/lib/typescript/core/mixins/OxyServices.analytics.d.ts +0 -2
  28. package/lib/typescript/core/mixins/OxyServices.analytics.d.ts.map +1 -1
  29. package/lib/typescript/core/mixins/OxyServices.assets.d.ts +0 -2
  30. package/lib/typescript/core/mixins/OxyServices.assets.d.ts.map +1 -1
  31. package/lib/typescript/core/mixins/OxyServices.auth.d.ts +0 -2
  32. package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -1
  33. package/lib/typescript/core/mixins/OxyServices.developer.d.ts +0 -2
  34. package/lib/typescript/core/mixins/OxyServices.developer.d.ts.map +1 -1
  35. package/lib/typescript/core/mixins/OxyServices.devices.d.ts +0 -2
  36. package/lib/typescript/core/mixins/OxyServices.devices.d.ts.map +1 -1
  37. package/lib/typescript/core/mixins/OxyServices.karma.d.ts +0 -2
  38. package/lib/typescript/core/mixins/OxyServices.karma.d.ts.map +1 -1
  39. package/lib/typescript/core/mixins/OxyServices.language.d.ts +0 -2
  40. package/lib/typescript/core/mixins/OxyServices.language.d.ts.map +1 -1
  41. package/lib/typescript/core/mixins/OxyServices.location.d.ts +0 -2
  42. package/lib/typescript/core/mixins/OxyServices.location.d.ts.map +1 -1
  43. package/lib/typescript/core/mixins/OxyServices.payment.d.ts +0 -2
  44. package/lib/typescript/core/mixins/OxyServices.payment.d.ts.map +1 -1
  45. package/lib/typescript/core/mixins/OxyServices.privacy.d.ts +0 -2
  46. package/lib/typescript/core/mixins/OxyServices.privacy.d.ts.map +1 -1
  47. package/lib/typescript/core/mixins/OxyServices.totp.d.ts +0 -2
  48. package/lib/typescript/core/mixins/OxyServices.totp.d.ts.map +1 -1
  49. package/lib/typescript/core/mixins/OxyServices.user.d.ts +0 -2
  50. package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -1
  51. package/lib/typescript/core/mixins/OxyServices.utility.d.ts +0 -2
  52. package/lib/typescript/core/mixins/OxyServices.utility.d.ts.map +1 -1
  53. package/lib/typescript/core/mixins/index.d.ts +0 -26
  54. package/lib/typescript/core/mixins/index.d.ts.map +1 -1
  55. package/lib/typescript/ui/components/ErrorBoundary.d.ts +31 -0
  56. package/lib/typescript/ui/components/ErrorBoundary.d.ts.map +1 -0
  57. package/lib/typescript/ui/navigation/OxyRouter.d.ts +3 -1
  58. package/lib/typescript/ui/navigation/OxyRouter.d.ts.map +1 -1
  59. package/lib/typescript/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  60. package/lib/typescript/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  61. package/package.json +1 -1
  62. package/src/core/OxyServices.base.ts +37 -22
  63. package/src/ui/components/ErrorBoundary.tsx +154 -0
  64. package/src/ui/navigation/OxyRouter.tsx +90 -29
  65. package/src/ui/screens/AccountCenterScreen.tsx +17 -14
  66. package/src/ui/screens/SessionManagementScreen.tsx +81 -69
  67. package/src/ui/screens/SignInScreen.tsx +1 -1
@@ -105,8 +105,6 @@ export declare function OxyServicesPrivacyMixin<T extends typeof OxyServicesBase
105
105
  hasValidToken(): boolean;
106
106
  getAccessToken(): string | null;
107
107
  waitForAuth(timeoutMs?: number): Promise<boolean>;
108
- waitForAuthentication(timeoutMs?: number): Promise<boolean>;
109
- hasAccessToken(): boolean;
110
108
  withAuthRetry<T_1>(operation: () => Promise<T_1>, operationName: string, options?: {
111
109
  maxRetries?: number;
112
110
  retryDelay?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"OxyServices.privacy.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.privacy.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAExD,GAAG,EAAE;QAG1B;;WAEG;mCAC+B,MAAM,GAAG;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,MAAM;QAIvG;;WAEG;iCACiC,WAAW,GAAG,cAAc,UACtD,MAAM,eACD,MAAM,OAAO,CAAC,GAAC,EAAE,CAAC,cACnB,CAAC,IAAI,EAAE,GAAC,KAAK,MAAM,GAAG;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,GACpF,OAAO,CAAC,OAAO,CAAC;QAuBnB;;;WAGG;2BACsB,OAAO,CAAC,WAAW,EAAE,CAAC;QAW/C;;;;WAIG;0BACqB,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAa7D;;;;WAIG;4BACuB,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAa/D;;;;WAIG;8BACyB,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;QAYrD;;;WAGG;8BACyB,OAAO,CAAC,cAAc,EAAE,CAAC;QAWrD;;;;WAIG;6BACwB,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAahE;;;;WAIG;+BAC0B,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAalE;;;;WAIG;iCAC4B,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAC5C,CAAC;sBACN,CAAC;yBACa,CAAC;;;;;;iBAOgqF,CAAC;qBAAwB,CAAC;;;;;MAFntF"}
1
+ {"version":3,"file":"OxyServices.privacy.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.privacy.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAExD,GAAG,EAAE;QAG1B;;WAEG;mCAC+B,MAAM,GAAG;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,MAAM;QAIvG;;WAEG;iCACiC,WAAW,GAAG,cAAc,UACtD,MAAM,eACD,MAAM,OAAO,CAAC,GAAC,EAAE,CAAC,cACnB,CAAC,IAAI,EAAE,GAAC,KAAK,MAAM,GAAG;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,GACpF,OAAO,CAAC,OAAO,CAAC;QAuBnB;;;WAGG;2BACsB,OAAO,CAAC,WAAW,EAAE,CAAC;QAW/C;;;;WAIG;0BACqB,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAa7D;;;;WAIG;4BACuB,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAa/D;;;;WAIG;8BACyB,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;QAYrD;;;WAGG;8BACyB,OAAO,CAAC,cAAc,EAAE,CAAC;QAWrD;;;;WAIG;6BACwB,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAahE;;;;WAIG;+BAC0B,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAalE;;;;WAIG;iCAC4B,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAUye,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAiwF,CAAC;qBAAwB,CAAC;;;;;MAFz3G"}
@@ -48,8 +48,6 @@ export declare function OxyServicesTotpMixin<T extends typeof OxyServicesBase>(B
48
48
  hasValidToken(): boolean;
49
49
  getAccessToken(): string | null;
50
50
  waitForAuth(timeoutMs?: number): Promise<boolean>;
51
- waitForAuthentication(timeoutMs?: number): Promise<boolean>;
52
- hasAccessToken(): boolean;
53
51
  withAuthRetry<T_1>(operation: () => Promise<T_1>, operationName: string, options?: {
54
52
  maxRetries?: number;
55
53
  retryDelay?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"OxyServices.totp.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.totp.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAErD,GAAG,EAAE;uCAGW,MAAM,GAAG,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;wCAQtF,MAAM,QAAQ,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;+BAQ3G,MAAM,QAAQ,MAAM,GAAG,OAAO,CAAC;YAAE,QAAQ,EAAE,OAAO,CAAA;SAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAUs+H,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAA4wF,CAAC;qBAAwB,CAAC;;;;;MAF35N"}
1
+ {"version":3,"file":"OxyServices.totp.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.totp.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAErD,GAAG,EAAE;uCAGW,MAAM,GAAG,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;wCAQtF,MAAM,QAAQ,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;+BAQ3G,MAAM,QAAQ,MAAM,GAAG,OAAO,CAAC;YAAE,QAAQ,EAAE,OAAO,CAAA;SAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAUupJ,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAiwF,CAAC;qBAAwB,CAAC;;;;;MAFjkP"}
@@ -168,8 +168,6 @@ export declare function OxyServicesUserMixin<T extends typeof OxyServicesBase>(B
168
168
  hasValidToken(): boolean;
169
169
  getAccessToken(): string | null;
170
170
  waitForAuth(timeoutMs?: number): Promise<boolean>;
171
- waitForAuthentication(timeoutMs?: number): Promise<boolean>;
172
- hasAccessToken(): boolean;
173
171
  withAuthRetry<T_1>(operation: () => Promise<T_1>, operationName: string, options?: {
174
172
  maxRetries?: number;
175
173
  retryDelay?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"OxyServices.user.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.user.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,sBAAsB,EAAkB,MAAM,yBAAyB,CAAC;AAC1G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAA4C,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEvG,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAErD,GAAG,EAAE;QAG1B;;WAEG;uCACkC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;QAW3D;;WAEG;8BACyB,MAAM,eAAe,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QA0DnG;;WAEG;qCACgC,OAAO,CAAC,KAAK,CAAC;YAC/C,EAAE,EAAE,MAAM,CAAC;YACX,QAAQ,EAAE,MAAM,CAAC;YACjB,IAAI,CAAC,EAAE;gBAAE,KAAK,CAAC,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YACxD,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,MAAM,CAAC,EAAE;gBAAE,SAAS,EAAE,MAAM,CAAC;gBAAC,SAAS,EAAE,MAAM,CAAA;aAAE,CAAC;YAClD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;SACpB,CAAC,CAAC;QAMH;;WAEG;4BACuB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;QAWhD;;WAEG;0BACqB,OAAO,CAAC,IAAI,CAAC;QASrC;;WAEG;+BAC0B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;QAQhE;;;WAGG;oCAC+B,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAYvD;;;;WAIG;wCACmC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAWzF;;WAEG;2CACsC,MAAM,aAAa,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;QAWpH;;WAEG;qCAC+B,MAAM,GAAG,KAAK,GAAY,OAAO,CAAC,IAAI,CAAC;QAezE;;;;WAIG;gCAC2B,MAAM,eAAe,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAWxF;;WAEG;2BACsB,MAAM,WAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;QAQ7E;;WAEG;2BACsB,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAQhF;;WAEG;6BACwB,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAQlF;;WAEG;gCAC2B,MAAM,GAAG,OAAO,CAAC;YAAE,WAAW,EAAE,OAAO,CAAA;SAAE,CAAC;QAWxE;;WAEG;iCAEO,MAAM,eACD,gBAAgB,GAC5B,OAAO,CAAC;YAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAA;SAAE,CAAC;QAiBlE;;WAEG;iCAEO,MAAM,eACD,gBAAgB,GAC5B,OAAO,CAAC;YAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAA;SAAE,CAAC;QAiBlE;;WAEG;4BACuB,OAAO,CAAC,YAAY,EAAE,CAAC;QAQjD;;WAEG;0BACqB,OAAO,CAAC,MAAM,CAAC;QAWvC;;WAEG;iCAC4B,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;QAQ5E;;WAEG;+CAC0C,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;QAQnE;;WAEG;sCACiC,OAAO,CAAC,IAAI,CAAC;QAQjD;;WAEG;2CACsC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBArNJ,CAAC;sBAA0B,CAAC;yBAE/E,CAAC;;;;;;iBA6FT,CAAH;qBAAwB,CAAC;;;;;MA8HzB"}
1
+ {"version":3,"file":"OxyServices.user.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.user.ts"],"names":[],"mappings":"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"}
@@ -76,8 +76,6 @@ export declare function OxyServicesUtilityMixin<T extends typeof OxyServicesBase
76
76
  hasValidToken(): boolean;
77
77
  getAccessToken(): string | null;
78
78
  waitForAuth(timeoutMs?: number): Promise<boolean>;
79
- waitForAuthentication(timeoutMs?: number): Promise<boolean>;
80
- hasAccessToken(): boolean;
81
79
  withAuthRetry<T_1>(operation: () => Promise<T_1>, operationName: string, options?: {
82
80
  maxRetries?: number;
83
81
  retryDelay?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"OxyServices.utility.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.utility.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAQ,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAW3D,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAExD,GAAG,EAAE;QAG1B;;WAEG;+BAC0B,MAAM,GAAG,OAAO,CAAC;YAC5C,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,MAAM,CAAC;YACpB,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC;QAgBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA4BG;uBACW;YACZ,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,GAAG,CAAC;YACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB,OAAO,CAAC,EAAE,OAAO,CAAC;SACnB,IAIS,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAiFG,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAuB8mE,CAAC;qBAAwB,CAAC;;;;;MAF/uE"}
1
+ {"version":3,"file":"OxyServices.utility.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.utility.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAQ,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAW3D,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAExD,GAAG,EAAE;QAG1B;;WAEG;+BAC0B,MAAM,GAAG,OAAO,CAAC;YAC5C,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,MAAM,CAAC;YACpB,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC;QAgBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA4BG;uBACW;YACZ,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,GAAG,CAAC;YACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB,OAAO,CAAC,EAAE,OAAO,CAAC;SACnB,IAIS,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAwGsB,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAiwF,CAAC;qBAAwB,CAAC;;;;;MAFr5F"}
@@ -57,8 +57,6 @@ export declare function composeOxyServices(): {
57
57
  hasValidToken(): boolean;
58
58
  getAccessToken(): string | null;
59
59
  waitForAuth(timeoutMs?: number): Promise<boolean>;
60
- waitForAuthentication(timeoutMs?: number): Promise<boolean>;
61
- hasAccessToken(): boolean;
62
60
  withAuthRetry<T>(operation: () => Promise<T>, operationName: string, options?: {
63
61
  maxRetries?: number;
64
62
  retryDelay?: number;
@@ -112,8 +110,6 @@ export declare function composeOxyServices(): {
112
110
  hasValidToken(): boolean;
113
111
  getAccessToken(): string | null;
114
112
  waitForAuth(timeoutMs?: number): Promise<boolean>;
115
- waitForAuthentication(timeoutMs?: number): Promise<boolean>;
116
- hasAccessToken(): boolean;
117
113
  withAuthRetry<T>(operation: () => Promise<T>, operationName: string, options?: {
118
114
  maxRetries?: number;
119
115
  retryDelay?: number;
@@ -163,8 +159,6 @@ export declare function composeOxyServices(): {
163
159
  hasValidToken(): boolean;
164
160
  getAccessToken(): string | null;
165
161
  waitForAuth(timeoutMs?: number): Promise<boolean>;
166
- waitForAuthentication(timeoutMs?: number): Promise<boolean>;
167
- hasAccessToken(): boolean;
168
162
  withAuthRetry<T>(operation: () => Promise<T>, operationName: string, options?: {
169
163
  maxRetries?: number;
170
164
  retryDelay?: number;
@@ -214,8 +208,6 @@ export declare function composeOxyServices(): {
214
208
  hasValidToken(): boolean;
215
209
  getAccessToken(): string | null;
216
210
  waitForAuth(timeoutMs?: number): Promise<boolean>;
217
- waitForAuthentication(timeoutMs?: number): Promise<boolean>;
218
- hasAccessToken(): boolean;
219
211
  withAuthRetry<T>(operation: () => Promise<T>, operationName: string, options?: {
220
212
  maxRetries?: number;
221
213
  retryDelay?: number;
@@ -281,8 +273,6 @@ export declare function composeOxyServices(): {
281
273
  hasValidToken(): boolean;
282
274
  getAccessToken(): string | null;
283
275
  waitForAuth(timeoutMs?: number): Promise<boolean>;
284
- waitForAuthentication(timeoutMs?: number): Promise<boolean>;
285
- hasAccessToken(): boolean;
286
276
  withAuthRetry<T>(operation: () => Promise<T>, operationName: string, options?: {
287
277
  maxRetries?: number;
288
278
  retryDelay?: number;
@@ -363,8 +353,6 @@ export declare function composeOxyServices(): {
363
353
  hasValidToken(): boolean;
364
354
  getAccessToken(): string | null;
365
355
  waitForAuth(timeoutMs?: number): Promise<boolean>;
366
- waitForAuthentication(timeoutMs?: number): Promise<boolean>;
367
- hasAccessToken(): boolean;
368
356
  withAuthRetry<T>(operation: () => Promise<T>, operationName: string, options?: {
369
357
  maxRetries?: number;
370
358
  retryDelay?: number;
@@ -418,8 +406,6 @@ export declare function composeOxyServices(): {
418
406
  hasValidToken(): boolean;
419
407
  getAccessToken(): string | null;
420
408
  waitForAuth(timeoutMs?: number): Promise<boolean>;
421
- waitForAuthentication(timeoutMs?: number): Promise<boolean>;
422
- hasAccessToken(): boolean;
423
409
  withAuthRetry<T>(operation: () => Promise<T>, operationName: string, options?: {
424
410
  maxRetries?: number;
425
411
  retryDelay?: number;
@@ -470,8 +456,6 @@ export declare function composeOxyServices(): {
470
456
  hasValidToken(): boolean;
471
457
  getAccessToken(): string | null;
472
458
  waitForAuth(timeoutMs?: number): Promise<boolean>;
473
- waitForAuthentication(timeoutMs?: number): Promise<boolean>;
474
- hasAccessToken(): boolean;
475
459
  withAuthRetry<T>(operation: () => Promise<T>, operationName: string, options?: {
476
460
  maxRetries?: number;
477
461
  retryDelay?: number;
@@ -528,8 +512,6 @@ export declare function composeOxyServices(): {
528
512
  hasValidToken(): boolean;
529
513
  getAccessToken(): string | null;
530
514
  waitForAuth(timeoutMs?: number): Promise<boolean>;
531
- waitForAuthentication(timeoutMs?: number): Promise<boolean>;
532
- hasAccessToken(): boolean;
533
515
  withAuthRetry<T>(operation: () => Promise<T>, operationName: string, options?: {
534
516
  maxRetries?: number;
535
517
  retryDelay?: number;
@@ -603,8 +585,6 @@ export declare function composeOxyServices(): {
603
585
  hasValidToken(): boolean;
604
586
  getAccessToken(): string | null;
605
587
  waitForAuth(timeoutMs?: number): Promise<boolean>;
606
- waitForAuthentication(timeoutMs?: number): Promise<boolean>;
607
- hasAccessToken(): boolean;
608
588
  withAuthRetry<T>(operation: () => Promise<T>, operationName: string, options?: {
609
589
  maxRetries?: number;
610
590
  retryDelay?: number;
@@ -666,8 +646,6 @@ export declare function composeOxyServices(): {
666
646
  hasValidToken(): boolean;
667
647
  getAccessToken(): string | null;
668
648
  waitForAuth(timeoutMs?: number): Promise<boolean>;
669
- waitForAuthentication(timeoutMs?: number): Promise<boolean>;
670
- hasAccessToken(): boolean;
671
649
  withAuthRetry<T>(operation: () => Promise<T>, operationName: string, options?: {
672
650
  maxRetries?: number;
673
651
  retryDelay?: number;
@@ -773,8 +751,6 @@ export declare function composeOxyServices(): {
773
751
  hasValidToken(): boolean;
774
752
  getAccessToken(): string | null;
775
753
  waitForAuth(timeoutMs?: number): Promise<boolean>;
776
- waitForAuthentication(timeoutMs?: number): Promise<boolean>;
777
- hasAccessToken(): boolean;
778
754
  withAuthRetry<T>(operation: () => Promise<T>, operationName: string, options?: {
779
755
  maxRetries?: number;
780
756
  retryDelay?: number;
@@ -884,8 +860,6 @@ export declare function composeOxyServices(): {
884
860
  hasValidToken(): boolean;
885
861
  getAccessToken(): string | null;
886
862
  waitForAuth(timeoutMs?: number): Promise<boolean>;
887
- waitForAuthentication(timeoutMs?: number): Promise<boolean>;
888
- hasAccessToken(): boolean;
889
863
  withAuthRetry<T>(operation: () => Promise<T>, operationName: string, options?: {
890
864
  maxRetries?: number;
891
865
  retryDelay?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAetD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB;;;;;;;;;;;;;aA4Bwe,QAAQ,EAAC,QAAS,EAAC,SAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAktF,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAA4wF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAh2F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAA4wF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAh2F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAA4wF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAh2F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAA4wF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAh2F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAA4wF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAh2F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAA4wF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAh2F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAA4wF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAh2F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAA4wF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAh2F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAA4wF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAh2F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAA4wF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAh2F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAA4wF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAh2F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAA4wF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAh2F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAA4wF,CAAC;qBAAwB,CAAC;;;;;2BAFxlM"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAetD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB;;;;;;;;;;;;;aA4Bwe,QAAQ,EAAC,QAAS,EAAC,SAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAm4G,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAiwF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAr1F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAiwF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAr1F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAiwF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAr1F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAiwF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAr1F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAiwF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAr1F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAiwF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAr1F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAiwF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAr1F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAiwF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAr1F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAiwF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAr1F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAiwF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAr1F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAiwF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAr1F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAiwF,CAAC;qBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAr1F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAiwF,CAAC;qBAAwB,CAAC;;;;;2BAF9vN"}
@@ -0,0 +1,31 @@
1
+ import React, { Component, ErrorInfo, ReactNode } from 'react';
2
+ interface Props {
3
+ children: ReactNode;
4
+ fallback?: ReactNode;
5
+ onError?: (error: Error, errorInfo: ErrorInfo) => void;
6
+ }
7
+ interface State {
8
+ hasError: boolean;
9
+ error: Error | null;
10
+ errorInfo: ErrorInfo | null;
11
+ }
12
+ /**
13
+ * Error Boundary Component
14
+ *
15
+ * Catches JavaScript errors anywhere in the child component tree,
16
+ * logs those errors, and displays a fallback UI instead of crashing.
17
+ *
18
+ * Usage:
19
+ * <ErrorBoundary>
20
+ * <YourComponent />
21
+ * </ErrorBoundary>
22
+ */
23
+ export declare class ErrorBoundary extends Component<Props, State> {
24
+ constructor(props: Props);
25
+ static getDerivedStateFromError(error: Error): Partial<State>;
26
+ componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
27
+ handleReset: () => void;
28
+ render(): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
29
+ }
30
+ export default ErrorBoundary;
31
+ //# sourceMappingURL=ErrorBoundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/ErrorBoundary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG/D,UAAU,KAAK;IACX,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;CAC1D;AAED,UAAU,KAAK;IACX,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;;;;;GAUG;AACH,qBAAa,aAAc,SAAQ,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;gBAC1C,KAAK,EAAE,KAAK;IASxB,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAQ7D,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;IAkBpD,WAAW,aAMT;IAEF,MAAM;CAiCT;AAiDD,eAAe,aAAa,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import type React from 'react';
2
2
  import type { OxyRouterProps } from './types';
3
3
  declare const OxyRouter: React.FC<OxyRouterProps>;
4
- export default OxyRouter;
4
+ declare const MemoizedOxyRouter: React.NamedExoticComponent<OxyRouterProps>;
5
+ export { OxyRouter };
6
+ export default MemoizedOxyRouter;
5
7
  //# sourceMappingURL=OxyRouter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OxyRouter.d.ts","sourceRoot":"","sources":["../../../../src/ui/navigation/OxyRouter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAkIvC,CAAC;AAcF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"OxyRouter.d.ts","sourceRoot":"","sources":["../../../../src/ui/navigation/OxyRouter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAsC9C,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAuJvC,CAAC;AAGF,QAAA,MAAM,iBAAiB,4CAAkB,CAAC;AAe1C,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,eAAe,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccountCenterScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/screens/AccountCenterScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAc3D,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA0PlD,CAAC;AA6BF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"AccountCenterScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/screens/AccountCenterScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAc3D,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA4PlD,CAAC;AA6BF,eAAe,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SessionManagementScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/screens/SessionManagementScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAO3D,QAAA,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAsRtD,CAAC;AAuFF,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"SessionManagementScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/screens/SessionManagementScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAO3D,QAAA,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAkStD,CAAC;AAuFF,eAAe,uBAAuB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/services",
3
- "version": "5.13.21",
3
+ "version": "5.13.23",
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",
@@ -164,37 +164,52 @@ export class OxyServicesBase {
164
164
  }
165
165
 
166
166
  /**
167
- * Wait for authentication to be ready (public method)
168
- * Useful for apps that want to ensure authentication is complete before proceeding
167
+ * Wait for authentication to be ready
168
+ *
169
+ * Optimized for high-scale usage with immediate synchronous check and adaptive polling.
170
+ * Returns immediately if token is already available (0ms delay), otherwise uses
171
+ * adaptive polling that starts fast (50ms) and gradually increases to reduce CPU usage.
172
+ *
173
+ * @param timeoutMs Maximum time to wait in milliseconds (default: 5000ms)
174
+ * @returns Promise that resolves to true if authentication is ready, false if timeout
175
+ *
176
+ * @example
177
+ * ```typescript
178
+ * const isReady = await oxyServices.waitForAuth(3000);
179
+ * if (isReady) {
180
+ * // Proceed with authenticated operations
181
+ * }
182
+ * ```
169
183
  */
170
184
  public async waitForAuth(timeoutMs = 5000): Promise<boolean> {
171
- return this.waitForAuthentication(timeoutMs);
172
- }
173
-
174
- /**
175
- * Wait for authentication to be ready with timeout
176
- */
177
- public async waitForAuthentication(timeoutMs = 5000): Promise<boolean> {
178
- const startTime = Date.now();
179
- const checkInterval = 100; // Check every 100ms
185
+ // Immediate synchronous check - no delay if token is ready
186
+ if (this.httpClient.hasAccessToken()) {
187
+ return true;
188
+ }
180
189
 
181
- while (Date.now() - startTime < timeoutMs) {
190
+ const startTime = performance.now();
191
+ const maxTime = startTime + timeoutMs;
192
+
193
+ // Adaptive polling: start fast, then slow down to reduce CPU usage
194
+ let pollInterval = 50; // Start with 50ms
195
+
196
+ while (performance.now() < maxTime) {
197
+ await new Promise(resolve => setTimeout(resolve, pollInterval));
198
+
182
199
  if (this.httpClient.hasAccessToken()) {
183
200
  return true;
184
201
  }
185
- await new Promise(resolve => setTimeout(resolve, checkInterval));
202
+
203
+ // Increase interval after first few checks (adaptive polling)
204
+ // This reduces CPU usage for long waits while maintaining responsiveness
205
+ if (pollInterval < 200) {
206
+ pollInterval = Math.min(pollInterval * 1.5, 200);
207
+ }
186
208
  }
187
209
 
188
210
  return false;
189
211
  }
190
212
 
191
- /**
192
- * Check if the client has a valid access token
193
- */
194
- public hasAccessToken(): boolean {
195
- return this.httpClient.hasAccessToken();
196
- }
197
-
198
213
  /**
199
214
  * Execute a function with automatic authentication retry logic
200
215
  * This handles the common case where API calls are made before authentication completes
@@ -220,7 +235,7 @@ export class OxyServicesBase {
220
235
  if (!this.httpClient.hasAccessToken()) {
221
236
  if (attempt === 0) {
222
237
  // On first attempt, wait briefly for authentication to complete
223
- const authReady = await this.waitForAuthentication(authTimeoutMs);
238
+ const authReady = await this.waitForAuth(authTimeoutMs);
224
239
 
225
240
  if (!authReady) {
226
241
  throw new OxyAuthenticationTimeoutError(operationName, authTimeoutMs);
@@ -265,7 +280,7 @@ export class OxyServicesBase {
265
280
  * Validate the current access token with the server
266
281
  */
267
282
  async validate(): Promise<boolean> {
268
- if (!this.hasAccessToken()) {
283
+ if (!this.hasValidToken()) {
269
284
  return false;
270
285
  }
271
286
 
@@ -0,0 +1,154 @@
1
+ import React, { Component, ErrorInfo, ReactNode } from 'react';
2
+ import { View, Text, StyleSheet, TouchableOpacity } from 'react-native';
3
+
4
+ interface Props {
5
+ children: ReactNode;
6
+ fallback?: ReactNode;
7
+ onError?: (error: Error, errorInfo: ErrorInfo) => void;
8
+ }
9
+
10
+ interface State {
11
+ hasError: boolean;
12
+ error: Error | null;
13
+ errorInfo: ErrorInfo | null;
14
+ }
15
+
16
+ /**
17
+ * Error Boundary Component
18
+ *
19
+ * Catches JavaScript errors anywhere in the child component tree,
20
+ * logs those errors, and displays a fallback UI instead of crashing.
21
+ *
22
+ * Usage:
23
+ * <ErrorBoundary>
24
+ * <YourComponent />
25
+ * </ErrorBoundary>
26
+ */
27
+ export class ErrorBoundary extends Component<Props, State> {
28
+ constructor(props: Props) {
29
+ super(props);
30
+ this.state = {
31
+ hasError: false,
32
+ error: null,
33
+ errorInfo: null,
34
+ };
35
+ }
36
+
37
+ static getDerivedStateFromError(error: Error): Partial<State> {
38
+ // Update state so the next render will show the fallback UI
39
+ return {
40
+ hasError: true,
41
+ error,
42
+ };
43
+ }
44
+
45
+ componentDidCatch(error: Error, errorInfo: ErrorInfo) {
46
+ // Log error to console in development
47
+ if (__DEV__) {
48
+ console.error('ErrorBoundary caught an error:', error, errorInfo);
49
+ }
50
+
51
+ // Call optional error handler
52
+ if (this.props.onError) {
53
+ this.props.onError(error, errorInfo);
54
+ }
55
+
56
+ // Update state with error info
57
+ this.setState({
58
+ error,
59
+ errorInfo,
60
+ });
61
+ }
62
+
63
+ handleReset = () => {
64
+ this.setState({
65
+ hasError: false,
66
+ error: null,
67
+ errorInfo: null,
68
+ });
69
+ };
70
+
71
+ render() {
72
+ if (this.state.hasError) {
73
+ // Use custom fallback if provided
74
+ if (this.props.fallback) {
75
+ return this.props.fallback;
76
+ }
77
+
78
+ // Default fallback UI
79
+ return (
80
+ <View style={styles.container}>
81
+ <View style={styles.errorContainer}>
82
+ <Text style={styles.errorTitle}>Something went wrong</Text>
83
+ <Text style={styles.errorMessage}>
84
+ {this.state.error?.message || 'An unexpected error occurred'}
85
+ </Text>
86
+ {__DEV__ && this.state.errorInfo && (
87
+ <Text style={styles.errorDetails}>
88
+ {this.state.errorInfo.componentStack}
89
+ </Text>
90
+ )}
91
+ <TouchableOpacity
92
+ style={styles.resetButton}
93
+ onPress={this.handleReset}
94
+ >
95
+ <Text style={styles.resetButtonText}>Try Again</Text>
96
+ </TouchableOpacity>
97
+ </View>
98
+ </View>
99
+ );
100
+ }
101
+
102
+ return this.props.children;
103
+ }
104
+ }
105
+
106
+ const styles = StyleSheet.create({
107
+ container: {
108
+ flex: 1,
109
+ justifyContent: 'center',
110
+ alignItems: 'center',
111
+ padding: 20,
112
+ backgroundColor: '#fff',
113
+ },
114
+ errorContainer: {
115
+ maxWidth: 400,
116
+ width: '100%',
117
+ padding: 20,
118
+ borderRadius: 8,
119
+ backgroundColor: '#f5f5f5',
120
+ borderWidth: 1,
121
+ borderColor: '#e0e0e0',
122
+ },
123
+ errorTitle: {
124
+ fontSize: 20,
125
+ fontWeight: 'bold',
126
+ marginBottom: 10,
127
+ color: '#d32f2f',
128
+ },
129
+ errorMessage: {
130
+ fontSize: 14,
131
+ marginBottom: 15,
132
+ color: '#666',
133
+ },
134
+ errorDetails: {
135
+ fontSize: 12,
136
+ marginBottom: 15,
137
+ color: '#999',
138
+ fontFamily: 'monospace',
139
+ },
140
+ resetButton: {
141
+ backgroundColor: '#007AFF',
142
+ padding: 12,
143
+ borderRadius: 6,
144
+ alignItems: 'center',
145
+ },
146
+ resetButtonText: {
147
+ color: '#fff',
148
+ fontSize: 16,
149
+ fontWeight: '600',
150
+ },
151
+ });
152
+
153
+ export default ErrorBoundary;
154
+