@oxyhq/services 27.1.3 → 28.0.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.
Files changed (75) hide show
  1. package/LICENSE +202 -661
  2. package/NOTICE +15 -0
  3. package/README.md +3 -1
  4. package/lib/commonjs/index.js +18 -0
  5. package/lib/commonjs/index.js.map +1 -1
  6. package/lib/commonjs/ui/components/authChooser/signInProgress.js +5 -0
  7. package/lib/commonjs/ui/components/authChooser/signInProgress.js.map +1 -1
  8. package/lib/commonjs/ui/screens/AccountMembersScreen.js +3 -4
  9. package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
  10. package/lib/commonjs/ui/screens/CreateAccountScreen.js +3 -12
  11. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  12. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +6 -5
  13. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  14. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +4 -4
  15. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  16. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +1 -1
  17. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +4 -2
  18. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  19. package/lib/commonjs/ui/stores/followTargetStore.js +27 -0
  20. package/lib/commonjs/ui/stores/followTargetStore.js.map +1 -1
  21. package/lib/module/index.js +4 -1
  22. package/lib/module/index.js.map +1 -1
  23. package/lib/module/ui/components/authChooser/signInProgress.js +5 -0
  24. package/lib/module/ui/components/authChooser/signInProgress.js.map +1 -1
  25. package/lib/module/ui/screens/AccountMembersScreen.js +4 -5
  26. package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
  27. package/lib/module/ui/screens/CreateAccountScreen.js +4 -13
  28. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  29. package/lib/module/ui/screens/trust/TrustCenterScreen.js +6 -5
  30. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  31. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +5 -5
  32. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  33. package/lib/module/ui/screens/trust/TrustRewardsScreen.js +1 -1
  34. package/lib/module/ui/screens/trust/TrustRulesScreen.js +4 -2
  35. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  36. package/lib/module/ui/stores/followTargetStore.js +25 -0
  37. package/lib/module/ui/stores/followTargetStore.js.map +1 -1
  38. package/lib/typescript/commonjs/index.d.ts +1 -1
  39. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  40. package/lib/typescript/commonjs/ui/components/authChooser/signInProgress.d.ts.map +1 -1
  41. package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  42. package/lib/typescript/commonjs/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  43. package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  44. package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  45. package/lib/typescript/commonjs/ui/stores/followTargetStore.d.ts +8 -1
  46. package/lib/typescript/commonjs/ui/stores/followTargetStore.d.ts.map +1 -1
  47. package/lib/typescript/module/index.d.ts +1 -1
  48. package/lib/typescript/module/index.d.ts.map +1 -1
  49. package/lib/typescript/module/ui/components/authChooser/signInProgress.d.ts.map +1 -1
  50. package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  51. package/lib/typescript/module/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  52. package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  53. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  54. package/lib/typescript/module/ui/stores/followTargetStore.d.ts +8 -1
  55. package/lib/typescript/module/ui/stores/followTargetStore.d.ts.map +1 -1
  56. package/package.json +6 -5
  57. package/src/index.ts +5 -0
  58. package/src/ui/components/__tests__/followTargetButton.test.ts +39 -0
  59. package/src/ui/components/authChooser/signInProgress.ts +4 -0
  60. package/src/ui/screens/AccountMembersScreen.tsx +6 -5
  61. package/src/ui/screens/CreateAccountScreen.tsx +3 -16
  62. package/src/ui/screens/trust/TrustCenterScreen.tsx +7 -7
  63. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +4 -5
  64. package/src/ui/screens/trust/TrustRewardsScreen.tsx +1 -1
  65. package/src/ui/screens/trust/TrustRulesScreen.tsx +3 -2
  66. package/src/ui/stores/followTargetStore.ts +24 -1
  67. package/lib/commonjs/ui/screens/trust/trustTier.js +0 -23
  68. package/lib/commonjs/ui/screens/trust/trustTier.js.map +0 -1
  69. package/lib/module/ui/screens/trust/trustTier.js +0 -19
  70. package/lib/module/ui/screens/trust/trustTier.js.map +0 -1
  71. package/lib/typescript/commonjs/ui/screens/trust/trustTier.d.ts +0 -9
  72. package/lib/typescript/commonjs/ui/screens/trust/trustTier.d.ts.map +0 -1
  73. package/lib/typescript/module/ui/screens/trust/trustTier.d.ts +0 -9
  74. package/lib/typescript/module/ui/screens/trust/trustTier.d.ts.map +0 -1
  75. package/src/ui/screens/trust/trustTier.ts +0 -20
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useMemo","useState","View","Text","SettingsListGroup","SettingsListItem","Chip","useTheme","useSurfaceHeader","Loading","useI18n","useOxy","jsx","_jsx","Fragment","_Fragment","CATEGORY_ORDER","TrustRulesScreen","oxyServices","t","title","subtitle","bloomTheme","rules","setRules","isLoading","setIsLoading","error","setError","getReputationRules","then","data","Array","isArray","catch","err","Error","message","finally","groupedRules","buckets","Map","rule","category","includes","bucket","get","push","set","filter","has","map","items","children","size","color","colors","primary","className","length","description","showChevron","rightElement","variant","points","accessibilityLabel","id"],"sourceRoot":"../../../../../src","sources":["ui/screens/trust/TrustRulesScreen.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useMemo","useState","View","Text","SettingsListGroup","SettingsListItem","Chip","useTheme","reputationCategoryLabel","useSurfaceHeader","Loading","useI18n","useOxy","jsx","_jsx","Fragment","_Fragment","CATEGORY_ORDER","TrustRulesScreen","oxyServices","t","locale","title","subtitle","bloomTheme","rules","setRules","isLoading","setIsLoading","error","setError","getReputationRules","then","data","Array","isArray","catch","err","Error","message","finally","groupedRules","buckets","Map","rule","category","includes","bucket","get","push","set","filter","has","map","items","children","size","color","colors","primary","className","length","description","showChevron","rightElement","variant","points","accessibilityLabel","id"],"sourceRoot":"../../../../../src","sources":["ui/screens/trust/TrustRulesScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -101,6 +101,31 @@ export function isCompleteFollowStatus(status) {
101
101
  return true;
102
102
  }
103
103
 
104
+ /** Convert one list row into the status shape the follow-target store expects. */
105
+ export function followRecordToStatus(record) {
106
+ return {
107
+ relationshipId: record.relationshipId,
108
+ globalState: record.globalState,
109
+ applicationMode: record.applicationMode,
110
+ effectiveState: record.effectiveState,
111
+ ...(record.expiresAt ? {
112
+ expiresAt: record.expiresAt
113
+ } : {})
114
+ };
115
+ }
116
+
117
+ /**
118
+ * Bulk-convert a follow list page into a status map keyed by target id — the
119
+ * input shape for `useFollowTargetStore.getState().seed(...)`.
120
+ */
121
+ export function followRecordsToStatusMap(records) {
122
+ const entries = {};
123
+ for (const record of records) {
124
+ entries[record.target.id] = followRecordToStatus(record);
125
+ }
126
+ return entries;
127
+ }
128
+
104
129
  /**
105
130
  * Apply a mode change to a cached status without a round trip.
106
131
  *
@@ -1 +1 @@
1
- {"version":3,"names":["create","UNKNOWN_FOLLOW_STATUS","globalState","applicationMode","effectiveState","useFollowTargetStore","set","statuses","pending","errors","setStatus","targetId","status","s","seed","entries","setPending","setError","error","reset","isFollowedGlobally","isCompleteFollowStatus","Boolean","relationshipId","withApplicationMode","mode"],"sourceRoot":"../../../../src","sources":["ui/stores/followTargetStore.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,MAAM,QAAQ,SAAS;;AAGhC;;AAsBA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,qBAAmC,GAAG;EACjDC,WAAW,EAAE,MAAM;EACnBC,eAAe,EAAE,SAAS;EAC1BC,cAAc,EAAE;AAClB,CAAC;AAED,OAAO,MAAMC,oBAAoB,GAAGL,MAAM,CAAqBM,GAAG,KAAM;EACtEC,QAAQ,EAAE,CAAC,CAAC;EACZC,OAAO,EAAE,CAAC,CAAC;EACXC,MAAM,EAAE,CAAC,CAAC;EAEVC,SAAS,EAAEA,CAACC,QAAQ,EAAEC,MAAM,KAC1BN,GAAG,CAAEO,CAAC,KAAM;IAAEN,QAAQ,EAAE;MAAE,GAAGM,CAAC,CAACN,QAAQ;MAAE,CAACI,QAAQ,GAAGC;IAAO;EAAE,CAAC,CAAC,CAAC;EAEnEE,IAAI,EAAGC,OAAO,IAAKT,GAAG,CAAEO,CAAC,KAAM;IAAEN,QAAQ,EAAE;MAAE,GAAGM,CAAC,CAACN,QAAQ;MAAE,GAAGQ;IAAQ;EAAE,CAAC,CAAC,CAAC;EAE5EC,UAAU,EAAEA,CAACL,QAAQ,EAAEH,OAAO,KAC5BF,GAAG,CAAEO,CAAC,KAAM;IAAEL,OAAO,EAAE;MAAE,GAAGK,CAAC,CAACL,OAAO;MAAE,CAACG,QAAQ,GAAGH;IAAQ;EAAE,CAAC,CAAC,CAAC;EAElES,QAAQ,EAAEA,CAACN,QAAQ,EAAEO,KAAK,KAAKZ,GAAG,CAAEO,CAAC,KAAM;IAAEJ,MAAM,EAAE;MAAE,GAAGI,CAAC,CAACJ,MAAM;MAAE,CAACE,QAAQ,GAAGO;IAAM;EAAE,CAAC,CAAC,CAAC;EAE3F;EACA;EACA;EACA;EACAC,KAAK,EAAEA,CAAA,KAAMb,GAAG,CAAC;IAAEC,QAAQ,EAAE,CAAC,CAAC;IAAEC,OAAO,EAAE,CAAC,CAAC;IAAEC,MAAM,EAAE,CAAC;EAAE,CAAC;AAC5D,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASW,kBAAkBA,CAACR,MAAoB,EAAW;EAChE,OAAOA,MAAM,CAACV,WAAW,KAAK,QAAQ,IAAIU,MAAM,CAACV,WAAW,KAAK,WAAW;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASmB,sBAAsBA,CAACT,MAAoB,EAAW;EACpE,IAAIQ,kBAAkB,CAACR,MAAM,CAAC,EAAE,OAAOU,OAAO,CAACV,MAAM,CAACW,cAAc,CAAC;EACrE,OAAO,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CACjCZ,MAAoB,EACpBa,IAA2B,EACb;EACd,OAAO;IACL,GAAGb,MAAM;IACTT,eAAe,EAAEsB,IAAI;IACrBrB,cAAc,EACZqB,IAAI,KAAK,UAAU,GACf,eAAe,GACfb,MAAM,CAACV,WAAW,KAAK,QAAQ,GAC7B,WAAW,GACXU,MAAM,CAACV,WAAW,KAAK,WAAW,GAChC,WAAW,GACX;EACZ,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["create","UNKNOWN_FOLLOW_STATUS","globalState","applicationMode","effectiveState","useFollowTargetStore","set","statuses","pending","errors","setStatus","targetId","status","s","seed","entries","setPending","setError","error","reset","isFollowedGlobally","isCompleteFollowStatus","Boolean","relationshipId","followRecordToStatus","record","expiresAt","followRecordsToStatusMap","records","target","id","withApplicationMode","mode"],"sourceRoot":"../../../../src","sources":["ui/stores/followTargetStore.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,MAAM,QAAQ,SAAS;;AAGhC;;AAsBA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,qBAAmC,GAAG;EACjDC,WAAW,EAAE,MAAM;EACnBC,eAAe,EAAE,SAAS;EAC1BC,cAAc,EAAE;AAClB,CAAC;AAED,OAAO,MAAMC,oBAAoB,GAAGL,MAAM,CAAqBM,GAAG,KAAM;EACtEC,QAAQ,EAAE,CAAC,CAAC;EACZC,OAAO,EAAE,CAAC,CAAC;EACXC,MAAM,EAAE,CAAC,CAAC;EAEVC,SAAS,EAAEA,CAACC,QAAQ,EAAEC,MAAM,KAC1BN,GAAG,CAAEO,CAAC,KAAM;IAAEN,QAAQ,EAAE;MAAE,GAAGM,CAAC,CAACN,QAAQ;MAAE,CAACI,QAAQ,GAAGC;IAAO;EAAE,CAAC,CAAC,CAAC;EAEnEE,IAAI,EAAGC,OAAO,IAAKT,GAAG,CAAEO,CAAC,KAAM;IAAEN,QAAQ,EAAE;MAAE,GAAGM,CAAC,CAACN,QAAQ;MAAE,GAAGQ;IAAQ;EAAE,CAAC,CAAC,CAAC;EAE5EC,UAAU,EAAEA,CAACL,QAAQ,EAAEH,OAAO,KAC5BF,GAAG,CAAEO,CAAC,KAAM;IAAEL,OAAO,EAAE;MAAE,GAAGK,CAAC,CAACL,OAAO;MAAE,CAACG,QAAQ,GAAGH;IAAQ;EAAE,CAAC,CAAC,CAAC;EAElES,QAAQ,EAAEA,CAACN,QAAQ,EAAEO,KAAK,KAAKZ,GAAG,CAAEO,CAAC,KAAM;IAAEJ,MAAM,EAAE;MAAE,GAAGI,CAAC,CAACJ,MAAM;MAAE,CAACE,QAAQ,GAAGO;IAAM;EAAE,CAAC,CAAC,CAAC;EAE3F;EACA;EACA;EACA;EACAC,KAAK,EAAEA,CAAA,KAAMb,GAAG,CAAC;IAAEC,QAAQ,EAAE,CAAC,CAAC;IAAEC,OAAO,EAAE,CAAC,CAAC;IAAEC,MAAM,EAAE,CAAC;EAAE,CAAC;AAC5D,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASW,kBAAkBA,CAACR,MAAoB,EAAW;EAChE,OAAOA,MAAM,CAACV,WAAW,KAAK,QAAQ,IAAIU,MAAM,CAACV,WAAW,KAAK,WAAW;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASmB,sBAAsBA,CAACT,MAAoB,EAAW;EACpE,IAAIQ,kBAAkB,CAACR,MAAM,CAAC,EAAE,OAAOU,OAAO,CAACV,MAAM,CAACW,cAAc,CAAC;EACrE,OAAO,IAAI;AACb;;AAEA;AACA,OAAO,SAASC,oBAAoBA,CAACC,MAAoB,EAAgB;EACvE,OAAO;IACLF,cAAc,EAAEE,MAAM,CAACF,cAAc;IACrCrB,WAAW,EAAEuB,MAAM,CAACvB,WAAW;IAC/BC,eAAe,EAAEsB,MAAM,CAACtB,eAAe;IACvCC,cAAc,EAAEqB,MAAM,CAACrB,cAAc;IACrC,IAAIqB,MAAM,CAACC,SAAS,GAAG;MAAEA,SAAS,EAAED,MAAM,CAACC;IAAU,CAAC,GAAG,CAAC,CAAC;EAC7D,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,wBAAwBA,CAACC,OAAuB,EAAgC;EAC9F,MAAMb,OAAqC,GAAG,CAAC,CAAC;EAChD,KAAK,MAAMU,MAAM,IAAIG,OAAO,EAAE;IAC5Bb,OAAO,CAACU,MAAM,CAACI,MAAM,CAACC,EAAE,CAAC,GAAGN,oBAAoB,CAACC,MAAM,CAAC;EAC1D;EACA,OAAOV,OAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASgB,mBAAmBA,CACjCnB,MAAoB,EACpBoB,IAA2B,EACb;EACd,OAAO;IACL,GAAGpB,MAAM;IACTT,eAAe,EAAE6B,IAAI;IACrB5B,cAAc,EACZ4B,IAAI,KAAK,UAAU,GACf,eAAe,GACfpB,MAAM,CAACV,WAAW,KAAK,QAAQ,GAC7B,WAAW,GACXU,MAAM,CAACV,WAAW,KAAK,WAAW,GAChC,WAAW,GACX;EACZ,CAAC;AACH","ignoreList":[]}
@@ -76,7 +76,7 @@ export { FollowTargetButton, buildFollowMenuItems, resolveFollowPrimaryAction, F
76
76
  export type { FollowTargetButtonProps, FollowVerb, FollowLabels, FollowDuration, } from './ui/components/FollowTargetButton';
77
77
  export { useFollowTarget } from './ui/hooks/useFollowTarget';
78
78
  export type { UseFollowTargetResult } from './ui/hooks/useFollowTarget';
79
- export { useFollowTargetStore, UNKNOWN_FOLLOW_STATUS, isFollowedGlobally, withApplicationMode, } from './ui/stores/followTargetStore';
79
+ export { useFollowTargetStore, UNKNOWN_FOLLOW_STATUS, isFollowedGlobally, withApplicationMode, isCompleteFollowStatus, followRecordToStatus, followRecordsToStatusMap, } from './ui/stores/followTargetStore';
80
80
  export { default as OxyPayButton } from './ui/components/OxyPayButton';
81
81
  export { LogoIcon } from './ui/components/logo/LogoIcon';
82
82
  export { LogoText } from './ui/components/logo/LogoText';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"signInProgress.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/authChooser/signInProgress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,oBAAoB,GAAG,IAAI,EAClC,CAAC,EAAE,SAAS,GACX,MAAM,GAAG,IAAI,CAuBf"}
1
+ {"version":3,"file":"signInProgress.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/authChooser/signInProgress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,oBAAoB,GAAG,IAAI,EAClC,CAAC,EAAE,SAAS,GACX,MAAM,GAAG,IAAI,CA2Bf"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccountMembersScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountMembersScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkB/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAkB3D;;;;GAIG;AACH,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAgbnD,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"AccountMembersScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountMembersScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkB/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAkB3D;;;;GAIG;AACH,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAibnD,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateAccountScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/CreateAccountScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAmG3D;;;;;GAKG;AACH,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAkVlD,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"CreateAccountScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/CreateAccountScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAsF3D;;;;;GAKG;AACH,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAkVlD,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TrustLeaderboardScreen.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/trust/TrustLeaderboardScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgB/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAa9D,QAAA,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuJrD,CAAC;AA0CF,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"TrustLeaderboardScreen.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/trust/TrustLeaderboardScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgB/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAY9D,QAAA,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuJrD,CAAC;AA0CF,eAAe,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TrustRulesScreen.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/trust/TrustRulesScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAiB9D,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAqF/C,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"TrustRulesScreen.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/trust/TrustRulesScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAiB9D,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAqF/C,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -21,7 +21,7 @@
21
21
  * three separate answers, and a UI that keeps only the last one cannot explain
22
22
  * why a follow the user can see in their list does nothing in this app.
23
23
  */
24
- import type { FollowApplicationMode, FollowStatus } from '@oxyhq/contracts';
24
+ import type { FollowApplicationMode, FollowRecord, FollowStatus } from '@oxyhq/contracts';
25
25
  /** The status of one target, or `undefined` when it has never been read. */
26
26
  type StatusMap = Record<string, FollowStatus | undefined>;
27
27
  interface FollowTargetState {
@@ -65,6 +65,13 @@ export declare function isFollowedGlobally(status: FollowStatus): boolean;
65
65
  * that as authoritative would leave disable/unfollow as no-ops forever.
66
66
  */
67
67
  export declare function isCompleteFollowStatus(status: FollowStatus): boolean;
68
+ /** Convert one list row into the status shape the follow-target store expects. */
69
+ export declare function followRecordToStatus(record: FollowRecord): FollowStatus;
70
+ /**
71
+ * Bulk-convert a follow list page into a status map keyed by target id — the
72
+ * input shape for `useFollowTargetStore.getState().seed(...)`.
73
+ */
74
+ export declare function followRecordsToStatusMap(records: FollowRecord[]): Record<string, FollowStatus>;
68
75
  /**
69
76
  * Apply a mode change to a cached status without a round trip.
70
77
  *
@@ -1 +1 @@
1
- {"version":3,"file":"followTargetStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/followTargetStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE5E,4EAA4E;AAC5E,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;AAE1D,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAE3C,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5D;;;;OAIG;IACH,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,IAAI,CAAC;IACtD,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAChE,uEAAuE;IACvE,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAInC,CAAC;AAEF,eAAO,MAAM,oBAAoB,gFAoB9B,CAAC;AAEJ;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAGpE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,qBAAqB,GAC1B,YAAY,CAad"}
1
+ {"version":3,"file":"followTargetStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/followTargetStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE1F,4EAA4E;AAC5E,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;AAE1D,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAE3C,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5D;;;;OAIG;IACH,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,IAAI,CAAC;IACtD,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAChE,uEAAuE;IACvE,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAInC,CAAC;AAEF,eAAO,MAAM,oBAAoB,gFAoB9B,CAAC;AAEJ;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAGpE;AAED,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAQvE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAM9F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,qBAAqB,GAC1B,YAAY,CAad"}
@@ -76,7 +76,7 @@ export { FollowTargetButton, buildFollowMenuItems, resolveFollowPrimaryAction, F
76
76
  export type { FollowTargetButtonProps, FollowVerb, FollowLabels, FollowDuration, } from './ui/components/FollowTargetButton.js';
77
77
  export { useFollowTarget } from './ui/hooks/useFollowTarget.js';
78
78
  export type { UseFollowTargetResult } from './ui/hooks/useFollowTarget.js';
79
- export { useFollowTargetStore, UNKNOWN_FOLLOW_STATUS, isFollowedGlobally, withApplicationMode, } from './ui/stores/followTargetStore.js';
79
+ export { useFollowTargetStore, UNKNOWN_FOLLOW_STATUS, isFollowedGlobally, withApplicationMode, isCompleteFollowStatus, followRecordToStatus, followRecordsToStatusMap, } from './ui/stores/followTargetStore.js';
80
80
  export { default as OxyPayButton } from './ui/components/OxyPayButton.js';
81
81
  export { LogoIcon } from './ui/components/logo/LogoIcon.js';
82
82
  export { LogoText } from './ui/components/logo/LogoText.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"signInProgress.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/authChooser/signInProgress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAS,CAAC;AAEzC;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,oBAAoB,GAAG,IAAI,EAClC,CAAC,EAAE,SAAS,GACX,MAAM,GAAG,IAAI,CAuBf"}
1
+ {"version":3,"file":"signInProgress.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/authChooser/signInProgress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAS,CAAC;AAEzC;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,oBAAoB,GAAG,IAAI,EAClC,CAAC,EAAE,SAAS,GACX,MAAM,GAAG,IAAI,CA2Bf"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccountMembersScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountMembersScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkB/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;AAkB3D;;;;GAIG;AACH,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAgbnD,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"AccountMembersScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountMembersScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkB/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;AAkB3D;;;;GAIG;AACH,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAibnD,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateAccountScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/CreateAccountScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;AAmG3D;;;;;GAKG;AACH,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAkVlD,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"CreateAccountScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/CreateAccountScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;AAsF3D;;;;;GAKG;AACH,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAkVlD,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TrustLeaderboardScreen.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/trust/TrustLeaderboardScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgB/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAAwB,CAAC;AAa9D,QAAA,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuJrD,CAAC;AA0CF,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"TrustLeaderboardScreen.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/trust/TrustLeaderboardScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgB/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAAwB,CAAC;AAY9D,QAAA,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuJrD,CAAC;AA0CF,eAAe,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TrustRulesScreen.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/trust/TrustRulesScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAAwB,CAAC;AAiB9D,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAqF/C,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"TrustRulesScreen.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/trust/TrustRulesScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAAwB,CAAC;AAiB9D,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAqF/C,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -21,7 +21,7 @@
21
21
  * three separate answers, and a UI that keeps only the last one cannot explain
22
22
  * why a follow the user can see in their list does nothing in this app.
23
23
  */
24
- import type { FollowApplicationMode, FollowStatus } from '@oxyhq/contracts';
24
+ import type { FollowApplicationMode, FollowRecord, FollowStatus } from '@oxyhq/contracts';
25
25
  /** The status of one target, or `undefined` when it has never been read. */
26
26
  type StatusMap = Record<string, FollowStatus | undefined>;
27
27
  interface FollowTargetState {
@@ -65,6 +65,13 @@ export declare function isFollowedGlobally(status: FollowStatus): boolean;
65
65
  * that as authoritative would leave disable/unfollow as no-ops forever.
66
66
  */
67
67
  export declare function isCompleteFollowStatus(status: FollowStatus): boolean;
68
+ /** Convert one list row into the status shape the follow-target store expects. */
69
+ export declare function followRecordToStatus(record: FollowRecord): FollowStatus;
70
+ /**
71
+ * Bulk-convert a follow list page into a status map keyed by target id — the
72
+ * input shape for `useFollowTargetStore.getState().seed(...)`.
73
+ */
74
+ export declare function followRecordsToStatusMap(records: FollowRecord[]): Record<string, FollowStatus>;
68
75
  /**
69
76
  * Apply a mode change to a cached status without a round trip.
70
77
  *
@@ -1 +1 @@
1
- {"version":3,"file":"followTargetStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/followTargetStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE5E,4EAA4E;AAC5E,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;AAE1D,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAE3C,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5D;;;;OAIG;IACH,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,IAAI,CAAC;IACtD,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAChE,uEAAuE;IACvE,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAInC,CAAC;AAEF,eAAO,MAAM,oBAAoB,gFAoB9B,CAAC;AAEJ;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAGpE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,qBAAqB,GAC1B,YAAY,CAad"}
1
+ {"version":3,"file":"followTargetStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/followTargetStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE1F,4EAA4E;AAC5E,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;AAE1D,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAE3C,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5D;;;;OAIG;IACH,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,IAAI,CAAC;IACtD,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAChE,uEAAuE;IACvE,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAInC,CAAC;AAEF,eAAO,MAAM,oBAAoB,gFAoB9B,CAAC;AAEJ;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAGpE;AAED,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAQvE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAM9F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,qBAAqB,GAC1B,YAAY,CAad"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/services",
3
- "version": "27.1.3",
3
+ "version": "28.0.0",
4
4
  "description": "OxyHQ Expo/React Native SDK — UI components, screens, and native features",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -77,6 +77,7 @@
77
77
  "./package.json": "./package.json"
78
78
  },
79
79
  "files": [
80
+ "NOTICE",
80
81
  "src",
81
82
  "lib",
82
83
  "assets",
@@ -103,7 +104,7 @@
103
104
  "directory": "packages/services"
104
105
  },
105
106
  "author": "OxyHQ",
106
- "license": "AGPL-3.0-only",
107
+ "license": "Apache-2.0",
107
108
  "engines": {
108
109
  "node": ">=18.0.0"
109
110
  },
@@ -138,7 +139,7 @@
138
139
  }
139
140
  },
140
141
  "dependencies": {
141
- "@oxyhq/contracts": "0.24.0",
142
+ "@oxyhq/contracts": "0.25.0",
142
143
  "@simplewebauthn/browser": "^13.3.0",
143
144
  "color": "^4.2.3"
144
145
  },
@@ -147,7 +148,7 @@
147
148
  "@commitlint/cli": "^21.2.1",
148
149
  "@commitlint/config-conventional": "^21.2.0",
149
150
  "@expo/vector-icons": "^15.0.3",
150
- "@oxyhq/core": "19.1.2",
151
+ "@oxyhq/core": "20.0.0",
151
152
  "@react-native-async-storage/async-storage": "^2.0.0",
152
153
  "@react-native-community/netinfo": "^11.4.1",
153
154
  "@react-native/babel-preset": "^0.86.0",
@@ -190,7 +191,7 @@
190
191
  "peerDependencies": {
191
192
  "@expo/vector-icons": "^15.0.3",
192
193
  "@oxyhq/bloom": ">=0.59.0",
193
- "@oxyhq/core": "^19.0.0",
194
+ "@oxyhq/core": "^20.0.0",
194
195
  "@react-native-async-storage/async-storage": "^2.0.0",
195
196
  "@react-native-community/netinfo": ">=11.4.1",
196
197
  "@tanstack/query-async-storage-persister": "^5.101",
package/src/index.ts CHANGED
@@ -306,6 +306,11 @@ export {
306
306
  // guide most likely to be reached for did not resolve.
307
307
  isFollowedGlobally,
308
308
  withApplicationMode,
309
+ // Whether a cached status is safe to act on without a round trip — list rows
310
+ // often carry globalState without relationshipId.
311
+ isCompleteFollowStatus,
312
+ followRecordToStatus,
313
+ followRecordsToStatusMap,
309
314
  } from './ui/stores/followTargetStore';
310
315
  export { default as OxyPayButton } from './ui/components/OxyPayButton';
311
316
  export { LogoIcon } from './ui/components/logo/LogoIcon';
@@ -19,6 +19,8 @@ import {
19
19
  } from '../FollowTargetButton';
20
20
  import {
21
21
  isCompleteFollowStatus,
22
+ followRecordToStatus,
23
+ followRecordsToStatusMap,
22
24
  isFollowedGlobally,
23
25
  UNKNOWN_FOLLOW_STATUS,
24
26
  withApplicationMode,
@@ -165,6 +167,43 @@ describe('withApplicationMode', () => {
165
167
  ).toBe(false);
166
168
  expect(isCompleteFollowStatus(UNKNOWN_FOLLOW_STATUS)).toBe(true);
167
169
  });
170
+
171
+ it('converts a list row into a complete follow status', () => {
172
+ const status = followRecordToStatus({
173
+ relationshipId: 'rel-1',
174
+ target: { id: 'tgt-1', uri: 'https://example.test/t/1', kind: 'oxy.topic' },
175
+ globalState: 'active',
176
+ applicationMode: 'inherit',
177
+ effectiveState: 'following',
178
+ originApplicationId: 'app-a',
179
+ createdAt: '2026-01-01T00:00:00.000Z',
180
+ });
181
+ expect(status).toEqual({
182
+ relationshipId: 'rel-1',
183
+ globalState: 'active',
184
+ applicationMode: 'inherit',
185
+ effectiveState: 'following',
186
+ });
187
+ expect(isCompleteFollowStatus(status)).toBe(true);
188
+ expect(followRecordsToStatusMap([
189
+ {
190
+ relationshipId: 'rel-1',
191
+ target: { id: 'tgt-1', uri: 'https://example.test/t/1', kind: 'oxy.topic' },
192
+ globalState: 'active',
193
+ applicationMode: 'disabled',
194
+ effectiveState: 'not_following',
195
+ originApplicationId: null,
196
+ createdAt: '2026-01-01T00:00:00.000Z',
197
+ },
198
+ ])).toEqual({
199
+ 'tgt-1': {
200
+ relationshipId: 'rel-1',
201
+ globalState: 'active',
202
+ applicationMode: 'disabled',
203
+ effectiveState: 'not_following',
204
+ },
205
+ });
206
+ });
168
207
  });
169
208
 
170
209
  describe('what onChange reports', () => {
@@ -50,5 +50,9 @@ export function signInProgressLabel(
50
50
  return t('accountSwitcher.progress.confirming');
51
51
  case 'identity-confirmed':
52
52
  return t('accountSwitcher.progress.confirmed');
53
+ default: {
54
+ const _exhaustive: never = progress;
55
+ return _exhaustive;
56
+ }
53
57
  }
54
58
  }
@@ -15,7 +15,7 @@ import { Button } from '@oxyhq/bloom/button';
15
15
  import { TextField, TextFieldInput } from '@oxyhq/bloom/text-field';
16
16
  import { Divider } from '@oxyhq/bloom/divider';
17
17
  import type { AccountMember, AccountRole } from '@oxyhq/core';
18
- import { getNormalizedUserHandle } from '@oxyhq/core';
18
+ import { accountRoleLabel, getNormalizedUserHandle } from '@oxyhq/core';
19
19
  import type { BaseScreenProps } from '../types/navigation';
20
20
  import { useOxy } from '../context/OxyContext';
21
21
  import { useI18n } from '../hooks/useI18n';
@@ -42,7 +42,7 @@ const isUserNotFound = (error: unknown): boolean => {
42
42
  const AccountMembersScreen: React.FC<BaseScreenProps> = ({ onClose, goBack, accountId }) => {
43
43
  const bloomTheme = useTheme();
44
44
  const colors = bloomTheme.colors;
45
- const { t } = useI18n();
45
+ const { t, locale } = useI18n();
46
46
 
47
47
  useSurfaceHeader({
48
48
  title: t('accounts.members.title') || 'Members',
@@ -53,9 +53,10 @@ const AccountMembersScreen: React.FC<BaseScreenProps> = ({ onClose, goBack, acco
53
53
 
54
54
  const id = typeof accountId === 'string' ? accountId : '';
55
55
 
56
- const roleLabel = useCallback((role: AccountRole): string => {
57
- return t(`accounts.roles.${role}.label`) || role.charAt(0).toUpperCase() + role.slice(1);
58
- }, [t]);
56
+ const roleLabel = useCallback(
57
+ (role: AccountRole): string => accountRoleLabel(locale, role),
58
+ [locale],
59
+ );
59
60
 
60
61
  const accountQuery = useQuery({
61
62
  queryKey: ['accounts', 'detail', id],
@@ -3,7 +3,7 @@ import { useState, useCallback, useRef, useEffect } from 'react';
3
3
  import { View, ActivityIndicator } from 'react-native';
4
4
  import Ionicons from '@expo/vector-icons/Ionicons';
5
5
  import type { AccountCategoryId, AccountKind, CreateAccountInput } from '@oxyhq/core';
6
- import { DISPLAY_NAME_INVALID_MESSAGE, isValidDisplayName, MAX_ACCOUNT_CATEGORIES, MAX_DISPLAY_NAME_LENGTH, SELECTABLE_ACCOUNT_CATEGORY_IDS } from '@oxyhq/core';
6
+ import { accountCategoryLabel, DISPLAY_NAME_INVALID_MESSAGE, isValidDisplayName, MAX_ACCOUNT_CATEGORIES, MAX_DISPLAY_NAME_LENGTH, SELECTABLE_ACCOUNT_CATEGORY_IDS } from '@oxyhq/core';
7
7
  import type { BaseScreenProps } from '../types/navigation';
8
8
  import { useI18n } from '../hooks/useI18n';
9
9
  import { useSurfaceHeader } from '../hooks/useSurfaceHeader';
@@ -83,19 +83,6 @@ const kindDescription = (
83
83
  }
84
84
  };
85
85
 
86
- /**
87
- * The visible label for a category id.
88
- *
89
- * A lookup, deliberately not a `switch` with a `default`: a `default` would let
90
- * an id with no translation render as some OTHER category's label, silently and
91
- * only in the languages that are missing it. Falling back to the raw id is ugly
92
- * and correct — it is visibly wrong, and it names the missing key.
93
- */
94
- const accountCategoryLabel = (
95
- t: (key: string, vars?: Record<string, string | number>) => string,
96
- category: AccountCategoryId,
97
- ): string => t(`accounts.accountCategory.${category}`) || category;
98
-
99
86
  /**
100
87
  * Only the SELECTABLE ids are offered. The full `ACCOUNT_CATEGORY_IDS` still
101
88
  * contains withdrawn ones so that accounts already carrying them keep working —
@@ -116,7 +103,7 @@ const CreateAccountScreen: React.FC<BaseScreenProps> = ({
116
103
  }) => {
117
104
  const bloomTheme = useTheme();
118
105
  const { oxyServices, createAccount, switchToAccount } = useOxy();
119
- const { t } = useI18n();
106
+ const { t, locale } = useI18n();
120
107
 
121
108
  useSurfaceHeader({
122
109
  title: t('accounts.create.title') || 'Create account',
@@ -337,7 +324,7 @@ const CreateAccountScreen: React.FC<BaseScreenProps> = ({
337
324
  {ACCOUNT_CATEGORY_OPTIONS.map((option) => {
338
325
  const position = accountCategories.indexOf(option);
339
326
  const selected = position >= 0;
340
- const label = accountCategoryLabel(t, option);
327
+ const label = accountCategoryLabel(locale, option);
341
328
  return (
342
329
  <SettingsListItem
343
330
  key={option}
@@ -13,7 +13,7 @@ import { Loading } from '@oxyhq/bloom/loading';
13
13
  import { useI18n } from '../../hooks/useI18n';
14
14
  import { useSurfaceHeader } from '../../hooks/useSurfaceHeader';
15
15
  import { useOxy } from '../../context/OxyContext';
16
- import { getTrustTierLabel } from './trustTier';
16
+ import { trustTierLabel } from '@oxyhq/core';
17
17
 
18
18
  const TrustCenterScreen: React.FC<BaseScreenProps> = ({
19
19
  navigate,
@@ -21,7 +21,7 @@ const TrustCenterScreen: React.FC<BaseScreenProps> = ({
21
21
  // Reputation/trust is the ACTIVE account's standing (the org/project/bot
22
22
  // when switched, else the personal user).
23
23
  const { user, oxyServices, isAuthenticated } = useOxy();
24
- const { t } = useI18n();
24
+ const { t, locale } = useI18n();
25
25
  const [reputationTotal, setReputationTotal] = useState<number | null>(null);
26
26
  const [trustTier, setTrustTier] = useState<TrustTier | null>(null);
27
27
  const [transactions, setTransactions] = useState<ReputationTransaction[]>([]);
@@ -53,9 +53,9 @@ const TrustCenterScreen: React.FC<BaseScreenProps> = ({
53
53
  .finally(() => setIsLoading(false));
54
54
  }, [user, oxyServices, t]);
55
55
 
56
- const trustTierLabel = useMemo(
57
- () => (trustTier ? getTrustTierLabel(trustTier, t) : null),
58
- [trustTier, t],
56
+ const resolvedTrustTierLabel = useMemo(
57
+ () => (trustTier ? trustTierLabel(locale, trustTier) : null),
58
+ [trustTier, locale],
59
59
  );
60
60
 
61
61
  const title = t('trust.center.title') || 'Trust Center';
@@ -87,7 +87,7 @@ const TrustCenterScreen: React.FC<BaseScreenProps> = ({
87
87
  <Text className="text-text-tertiary text-base mt-space-2 mb-space-12">
88
88
  {t('trust.center.balance') || 'Reputation Balance'}
89
89
  </Text>
90
- {trustTierLabel ? (
90
+ {resolvedTrustTierLabel ? (
91
91
  <Chip
92
92
  variant="soft"
93
93
  color="primary"
@@ -99,7 +99,7 @@ const TrustCenterScreen: React.FC<BaseScreenProps> = ({
99
99
  />
100
100
  }
101
101
  >
102
- {trustTierLabel}
102
+ {resolvedTrustTierLabel}
103
103
  </Chip>
104
104
  ) : null}
105
105
  <Text
@@ -8,7 +8,7 @@ import {
8
8
  TouchableOpacity,
9
9
  } from 'react-native';
10
10
  import type { ReputationLeaderboardEntry } from '@oxyhq/contracts';
11
- import { getNormalizedUserHandle, logger } from '@oxyhq/core';
11
+ import { getNormalizedUserHandle, logger, trustTierLabel } from '@oxyhq/core';
12
12
  import { useTheme } from '@oxyhq/bloom/theme';
13
13
  import { H6, Text } from '@oxyhq/bloom/typography';
14
14
  import { Chip } from '@oxyhq/bloom/chip';
@@ -19,7 +19,6 @@ import { Avatar } from '@oxyhq/bloom/avatar';
19
19
  import { useI18n } from '../../hooks/useI18n';
20
20
  import { useSurfaceHeader } from '../../hooks/useSurfaceHeader';
21
21
  import { useOxy } from '../../context/OxyContext';
22
- import { getTrustTierLabel } from './trustTier';
23
22
 
24
23
  const AVATAR_SIZE = 40;
25
24
  const EMPTY_ICON_SIZE = 64;
@@ -29,7 +28,7 @@ const PODIUM_RANK = 3;
29
28
 
30
29
  const TrustLeaderboardScreen: React.FC<BaseScreenProps> = ({ navigate }) => {
31
30
  const { oxyServices, user: currentUser } = useOxy();
32
- const { t } = useI18n();
31
+ const { t, locale } = useI18n();
33
32
  const bloomTheme = useTheme();
34
33
 
35
34
  const [leaderboard, setLeaderboard] = useState<ReputationLeaderboardEntry[]>([]);
@@ -106,7 +105,7 @@ const TrustLeaderboardScreen: React.FC<BaseScreenProps> = ({ navigate }) => {
106
105
  </Text>
107
106
  <View style={styles.tierRow} className="mt-space-4">
108
107
  <Chip size="small" variant="soft" color={isPodium ? 'primary' : 'default'}>
109
- {getTrustTierLabel(item.trustTier, t)}
108
+ {trustTierLabel(locale, item.trustTier)}
110
109
  </Chip>
111
110
  </View>
112
111
  </View>
@@ -116,7 +115,7 @@ const TrustLeaderboardScreen: React.FC<BaseScreenProps> = ({ navigate }) => {
116
115
  </TouchableOpacity>
117
116
  );
118
117
  },
119
- [oxyServices, currentUserId, handleEntryPress, t],
118
+ [oxyServices, currentUserId, handleEntryPress, locale],
120
119
  );
121
120
 
122
121
  const keyExtractor = useCallback(
@@ -26,7 +26,7 @@ interface Achievement {
26
26
  }
27
27
 
28
28
  /**
29
- * Per-achievement identity tints. Like the trust-tier palette in `trustTier.ts`,
29
+ * Per-achievement identity tints. Like the trust-tier palette in `trustTierLabels`,
30
30
  * these are data, not theme surfaces — they brand each badge regardless of theme.
31
31
  */
32
32
  const ACHIEVEMENT_TINT = {
@@ -4,6 +4,7 @@ import { View, Text } from 'react-native';
4
4
  import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
5
5
  import { Chip } from '@oxyhq/bloom/chip';
6
6
  import { useTheme } from '@oxyhq/bloom/theme';
7
+ import { reputationCategoryLabel } from '@oxyhq/core';
7
8
  import type { ReputationRule, ReputationCategory } from '@oxyhq/contracts';
8
9
  import type { BaseScreenProps } from '../../types/navigation';
9
10
  import { useSurfaceHeader } from '../../hooks/useSurfaceHeader';
@@ -24,7 +25,7 @@ const CATEGORY_ORDER: ReputationCategory[] = [
24
25
 
25
26
  const TrustRulesScreen: React.FC<BaseScreenProps> = () => {
26
27
  const { oxyServices } = useOxy();
27
- const { t } = useI18n();
28
+ const { t, locale } = useI18n();
28
29
 
29
30
  useSurfaceHeader({
30
31
  title: t('trust.rules.title') || 'Trust Rules',
@@ -82,7 +83,7 @@ const TrustRulesScreen: React.FC<BaseScreenProps> = () => {
82
83
  {groupedRules.map(({ category, items }) => (
83
84
  <SettingsListGroup
84
85
  key={category}
85
- title={t(`trust.rules.categories.${category}`) || category}
86
+ title={reputationCategoryLabel(locale, category)}
86
87
  >
87
88
  {items.map((rule) => (
88
89
  <SettingsListItem