@oxy.so/services 11.5.0 → 11.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/android/src/main/java/so/oxy/security/OxyCallerPolicy.kt +18 -0
  2. package/lib/commonjs/assets/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  3. package/lib/commonjs/assets/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  4. package/lib/commonjs/assets/assets/fonts/icons/manifest.json +6 -4
  5. package/lib/commonjs/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  6. package/lib/commonjs/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  7. package/lib/commonjs/assets/fonts/icons/manifest.json +6 -4
  8. package/lib/commonjs/ui/components/organizations/OrganizationClaimReview.js +2 -2
  9. package/lib/commonjs/ui/components/organizations/OrganizationClaimReview.js.map +1 -1
  10. package/lib/commonjs/ui/components/organizations/OrganizationDirectorySearch.js +5 -5
  11. package/lib/commonjs/ui/components/organizations/OrganizationDirectorySearch.js.map +1 -1
  12. package/lib/commonjs/ui/components/organizations/OrganizationSettings.js +4 -4
  13. package/lib/commonjs/ui/components/organizations/OrganizationSettings.js.map +1 -1
  14. package/lib/commonjs/ui/components/organizations/OrganizationTypePicker.js +2 -2
  15. package/lib/commonjs/ui/components/organizations/OrganizationTypePicker.js.map +1 -1
  16. package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js +3 -3
  17. package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -1
  18. package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js +6 -2
  19. package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
  20. package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js +4 -4
  21. package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js.map +1 -1
  22. package/lib/commonjs/ui/components/signIn/OxySignInPanel.js +7 -7
  23. package/lib/commonjs/ui/components/signIn/OxySignInPanel.js.map +1 -1
  24. package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js +6 -6
  25. package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js.map +1 -1
  26. package/lib/commonjs/ui/components/signIn/ReauthStep.js +4 -4
  27. package/lib/commonjs/ui/components/signIn/ReauthStep.js.map +1 -1
  28. package/lib/commonjs/ui/components/signIn/accountFlowParts.js +23 -23
  29. package/lib/commonjs/ui/components/signIn/accountFlowParts.js.map +1 -1
  30. package/lib/commonjs/ui/components/supervision/PersonPicker.js +69 -0
  31. package/lib/commonjs/ui/components/supervision/PersonPicker.js.map +1 -0
  32. package/lib/commonjs/ui/components/supervision/presentation.js +23 -0
  33. package/lib/commonjs/ui/components/supervision/presentation.js.map +1 -0
  34. package/lib/commonjs/ui/context/OxyContext.js +7 -4
  35. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  36. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +5 -2
  37. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  38. package/lib/commonjs/ui/hooks/queries/useSupervision.js +37 -0
  39. package/lib/commonjs/ui/hooks/queries/useSupervision.js.map +1 -0
  40. package/lib/commonjs/ui/icons/subsetGlyphMaps.js +2 -0
  41. package/lib/commonjs/ui/icons/subsetGlyphMaps.js.map +1 -1
  42. package/lib/commonjs/ui/index.js +13 -0
  43. package/lib/commonjs/ui/index.js.map +1 -1
  44. package/lib/commonjs/ui/navigation/routes.js +1 -0
  45. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  46. package/lib/commonjs/ui/navigation/surfaceRegistry.js.map +1 -1
  47. package/lib/commonjs/ui/oauth/applicationSessionLane.js +2 -2
  48. package/lib/commonjs/ui/oauth/applicationSessionLane.js.map +1 -1
  49. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +3 -3
  50. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  51. package/lib/commonjs/ui/screens/CreateAccountScreen.js +22 -14
  52. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  53. package/lib/commonjs/ui/screens/ManageAccountScreen.js +7 -0
  54. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  55. package/lib/commonjs/ui/screens/SupervisionScreen.js +529 -0
  56. package/lib/commonjs/ui/screens/SupervisionScreen.js.map +1 -0
  57. package/lib/commonjs/ui/screens/index.js +7 -0
  58. package/lib/commonjs/ui/screens/index.js.map +1 -1
  59. package/lib/commonjs/ui/utils/identityCrypto.js +19 -0
  60. package/lib/commonjs/ui/utils/identityCrypto.js.map +1 -0
  61. package/lib/module/assets/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  62. package/lib/module/assets/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  63. package/lib/module/assets/assets/fonts/icons/manifest.json +6 -4
  64. package/lib/module/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  65. package/lib/module/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  66. package/lib/module/assets/fonts/icons/manifest.json +6 -4
  67. package/lib/module/ui/components/organizations/OrganizationClaimReview.js +2 -2
  68. package/lib/module/ui/components/organizations/OrganizationClaimReview.js.map +1 -1
  69. package/lib/module/ui/components/organizations/OrganizationDirectorySearch.js +5 -5
  70. package/lib/module/ui/components/organizations/OrganizationDirectorySearch.js.map +1 -1
  71. package/lib/module/ui/components/organizations/OrganizationSettings.js +4 -4
  72. package/lib/module/ui/components/organizations/OrganizationSettings.js.map +1 -1
  73. package/lib/module/ui/components/organizations/OrganizationTypePicker.js +1 -1
  74. package/lib/module/ui/components/organizations/OrganizationTypePicker.js.map +1 -1
  75. package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js +1 -1
  76. package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -1
  77. package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js +5 -1
  78. package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
  79. package/lib/module/ui/components/signIn/OxyPasswordPanel.js +1 -1
  80. package/lib/module/ui/components/signIn/OxyPasswordPanel.js.map +1 -1
  81. package/lib/module/ui/components/signIn/OxySignInPanel.js +1 -1
  82. package/lib/module/ui/components/signIn/OxySignInPanel.js.map +1 -1
  83. package/lib/module/ui/components/signIn/OxySignUpPanel.js +5 -5
  84. package/lib/module/ui/components/signIn/OxySignUpPanel.js.map +1 -1
  85. package/lib/module/ui/components/signIn/ReauthStep.js +1 -1
  86. package/lib/module/ui/components/signIn/ReauthStep.js.map +1 -1
  87. package/lib/module/ui/components/signIn/accountFlowParts.js +1 -1
  88. package/lib/module/ui/components/signIn/accountFlowParts.js.map +1 -1
  89. package/lib/module/ui/components/supervision/PersonPicker.js +65 -0
  90. package/lib/module/ui/components/supervision/PersonPicker.js.map +1 -0
  91. package/lib/module/ui/components/supervision/presentation.js +19 -0
  92. package/lib/module/ui/components/supervision/presentation.js.map +1 -0
  93. package/lib/module/ui/context/OxyContext.js +6 -3
  94. package/lib/module/ui/context/OxyContext.js.map +1 -1
  95. package/lib/module/ui/context/hooks/useAuthOperations.js +4 -1
  96. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  97. package/lib/module/ui/hooks/queries/useSupervision.js +32 -0
  98. package/lib/module/ui/hooks/queries/useSupervision.js.map +1 -0
  99. package/lib/module/ui/icons/subsetGlyphMaps.js +2 -0
  100. package/lib/module/ui/icons/subsetGlyphMaps.js.map +1 -1
  101. package/lib/module/ui/index.js +1 -0
  102. package/lib/module/ui/index.js.map +1 -1
  103. package/lib/module/ui/navigation/routes.js +1 -0
  104. package/lib/module/ui/navigation/routes.js.map +1 -1
  105. package/lib/module/ui/navigation/surfaceRegistry.js.map +1 -1
  106. package/lib/module/ui/oauth/applicationSessionLane.js +2 -2
  107. package/lib/module/ui/oauth/applicationSessionLane.js.map +1 -1
  108. package/lib/module/ui/screens/AccountSettingsScreen.js +2 -2
  109. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  110. package/lib/module/ui/screens/CreateAccountScreen.js +16 -8
  111. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  112. package/lib/module/ui/screens/ManageAccountScreen.js +7 -0
  113. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  114. package/lib/module/ui/screens/SupervisionScreen.js +525 -0
  115. package/lib/module/ui/screens/SupervisionScreen.js.map +1 -0
  116. package/lib/module/ui/screens/index.js +1 -0
  117. package/lib/module/ui/screens/index.js.map +1 -1
  118. package/lib/module/ui/utils/identityCrypto.js +13 -0
  119. package/lib/module/ui/utils/identityCrypto.js.map +1 -0
  120. package/lib/typescript/commonjs/ui/components/organizations/OrganizationClaimReview.d.ts.map +1 -1
  121. package/lib/typescript/commonjs/ui/components/organizations/OrganizationDirectorySearch.d.ts +1 -1
  122. package/lib/typescript/commonjs/ui/components/organizations/OrganizationDirectorySearch.d.ts.map +1 -1
  123. package/lib/typescript/commonjs/ui/components/organizations/OrganizationSettings.d.ts.map +1 -1
  124. package/lib/typescript/commonjs/ui/components/organizations/OrganizationTypePicker.d.ts +1 -1
  125. package/lib/typescript/commonjs/ui/components/organizations/OrganizationTypePicker.d.ts.map +1 -1
  126. package/lib/typescript/commonjs/ui/components/signIn/OxyAuthenticatorPanel.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/ui/components/signIn/OxyLinkCommonsPanel.d.ts.map +1 -1
  128. package/lib/typescript/commonjs/ui/components/signIn/OxySignInPanel.d.ts.map +1 -1
  129. package/lib/typescript/commonjs/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -1
  130. package/lib/typescript/commonjs/ui/components/signIn/ReauthStep.d.ts +1 -1
  131. package/lib/typescript/commonjs/ui/components/signIn/ReauthStep.d.ts.map +1 -1
  132. package/lib/typescript/commonjs/ui/components/signIn/accountFlowParts.d.ts +1 -1
  133. package/lib/typescript/commonjs/ui/components/signIn/accountFlowParts.d.ts.map +1 -1
  134. package/lib/typescript/commonjs/ui/components/supervision/PersonPicker.d.ts +6 -0
  135. package/lib/typescript/commonjs/ui/components/supervision/PersonPicker.d.ts.map +1 -0
  136. package/lib/typescript/commonjs/ui/components/supervision/presentation.d.ts +3 -0
  137. package/lib/typescript/commonjs/ui/components/supervision/presentation.d.ts.map +1 -0
  138. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  139. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  140. package/lib/typescript/commonjs/ui/hooks/queries/useSupervision.d.ts +475 -0
  141. package/lib/typescript/commonjs/ui/hooks/queries/useSupervision.d.ts.map +1 -0
  142. package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts +1 -1
  143. package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  144. package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts.map +1 -1
  145. package/lib/typescript/commonjs/ui/icons/subsetGlyphMaps.d.ts +2 -0
  146. package/lib/typescript/commonjs/ui/icons/subsetGlyphMaps.d.ts.map +1 -1
  147. package/lib/typescript/commonjs/ui/index.d.ts +1 -0
  148. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
  149. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
  150. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  151. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts +4 -0
  152. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  153. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  154. package/lib/typescript/commonjs/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  155. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  156. package/lib/typescript/commonjs/ui/screens/SupervisionScreen.d.ts +3 -0
  157. package/lib/typescript/commonjs/ui/screens/SupervisionScreen.d.ts.map +1 -0
  158. package/lib/typescript/commonjs/ui/screens/index.d.ts +1 -0
  159. package/lib/typescript/commonjs/ui/screens/index.d.ts.map +1 -1
  160. package/lib/typescript/commonjs/ui/utils/identityCrypto.d.ts +44 -0
  161. package/lib/typescript/commonjs/ui/utils/identityCrypto.d.ts.map +1 -0
  162. package/lib/typescript/module/ui/components/organizations/OrganizationClaimReview.d.ts.map +1 -1
  163. package/lib/typescript/module/ui/components/organizations/OrganizationDirectorySearch.d.ts +1 -1
  164. package/lib/typescript/module/ui/components/organizations/OrganizationDirectorySearch.d.ts.map +1 -1
  165. package/lib/typescript/module/ui/components/organizations/OrganizationSettings.d.ts.map +1 -1
  166. package/lib/typescript/module/ui/components/organizations/OrganizationTypePicker.d.ts +1 -1
  167. package/lib/typescript/module/ui/components/organizations/OrganizationTypePicker.d.ts.map +1 -1
  168. package/lib/typescript/module/ui/components/signIn/OxyAuthenticatorPanel.d.ts.map +1 -1
  169. package/lib/typescript/module/ui/components/signIn/OxyLinkCommonsPanel.d.ts.map +1 -1
  170. package/lib/typescript/module/ui/components/signIn/OxySignInPanel.d.ts.map +1 -1
  171. package/lib/typescript/module/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -1
  172. package/lib/typescript/module/ui/components/signIn/ReauthStep.d.ts +1 -1
  173. package/lib/typescript/module/ui/components/signIn/ReauthStep.d.ts.map +1 -1
  174. package/lib/typescript/module/ui/components/signIn/accountFlowParts.d.ts +1 -1
  175. package/lib/typescript/module/ui/components/signIn/accountFlowParts.d.ts.map +1 -1
  176. package/lib/typescript/module/ui/components/supervision/PersonPicker.d.ts +6 -0
  177. package/lib/typescript/module/ui/components/supervision/PersonPicker.d.ts.map +1 -0
  178. package/lib/typescript/module/ui/components/supervision/presentation.d.ts +3 -0
  179. package/lib/typescript/module/ui/components/supervision/presentation.d.ts.map +1 -0
  180. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  181. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  182. package/lib/typescript/module/ui/hooks/queries/useSupervision.d.ts +475 -0
  183. package/lib/typescript/module/ui/hooks/queries/useSupervision.d.ts.map +1 -0
  184. package/lib/typescript/module/ui/icons/Ionicons.d.ts +1 -1
  185. package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  186. package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts.map +1 -1
  187. package/lib/typescript/module/ui/icons/subsetGlyphMaps.d.ts +2 -0
  188. package/lib/typescript/module/ui/icons/subsetGlyphMaps.d.ts.map +1 -1
  189. package/lib/typescript/module/ui/index.d.ts +1 -0
  190. package/lib/typescript/module/ui/index.d.ts.map +1 -1
  191. package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
  192. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  193. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts +4 -0
  194. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  195. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  196. package/lib/typescript/module/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  197. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  198. package/lib/typescript/module/ui/screens/SupervisionScreen.d.ts +3 -0
  199. package/lib/typescript/module/ui/screens/SupervisionScreen.d.ts.map +1 -0
  200. package/lib/typescript/module/ui/screens/index.d.ts +1 -0
  201. package/lib/typescript/module/ui/screens/index.d.ts.map +1 -1
  202. package/lib/typescript/module/ui/utils/identityCrypto.d.ts +44 -0
  203. package/lib/typescript/module/ui/utils/identityCrypto.d.ts.map +1 -0
  204. package/package.json +6 -22
  205. package/src/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  206. package/src/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  207. package/src/assets/fonts/icons/manifest.json +6 -4
  208. package/src/ui/components/organizations/OrganizationClaimReview.tsx +3 -5
  209. package/src/ui/components/organizations/OrganizationDirectorySearch.tsx +12 -9
  210. package/src/ui/components/organizations/OrganizationSettings.tsx +6 -9
  211. package/src/ui/components/organizations/OrganizationTypePicker.tsx +2 -1
  212. package/src/ui/components/signIn/OxyAuthenticatorPanel.tsx +2 -1
  213. package/src/ui/components/signIn/OxyLinkCommonsPanel.tsx +3 -1
  214. package/src/ui/components/signIn/OxyPasswordPanel.tsx +1 -1
  215. package/src/ui/components/signIn/OxySignInPanel.tsx +6 -4
  216. package/src/ui/components/signIn/OxySignUpPanel.tsx +6 -9
  217. package/src/ui/components/signIn/ReauthStep.tsx +2 -6
  218. package/src/ui/components/signIn/accountFlowParts.tsx +2 -2
  219. package/src/ui/components/supervision/PersonPicker.tsx +67 -0
  220. package/src/ui/components/supervision/presentation.ts +17 -0
  221. package/src/ui/context/OxyContext.tsx +7 -3
  222. package/src/ui/context/hooks/useAuthOperations.ts +2 -1
  223. package/src/ui/hooks/queries/useSupervision.ts +25 -0
  224. package/src/ui/icons/subsetGlyphMaps.ts +2 -0
  225. package/src/ui/index.ts +2 -0
  226. package/src/ui/navigation/routes.ts +2 -0
  227. package/src/ui/navigation/surfaceRegistry.ts +1 -0
  228. package/src/ui/oauth/applicationSessionLane.ts +2 -2
  229. package/src/ui/screens/AccountSettingsScreen.tsx +6 -2
  230. package/src/ui/screens/CreateAccountScreen.tsx +25 -10
  231. package/src/ui/screens/ManageAccountScreen.tsx +10 -0
  232. package/src/ui/screens/SupervisionScreen.tsx +593 -0
  233. package/src/ui/screens/index.ts +2 -0
  234. package/src/ui/utils/identityCrypto.ts +10 -0
@@ -3,6 +3,7 @@ import type { BaseScreenProps } from '../types/navigation';
3
3
 
4
4
  // Define all available route names
5
5
  export type RouteName =
6
+ | 'Supervision'
6
7
  | 'ManageAccount' // Unified "Manage your Oxy Account" surface
7
8
  | 'AccountVerification'
8
9
  | 'PaymentGateway'
@@ -71,6 +72,7 @@ export type RouteName =
71
72
  * confines the gap to one documented widening in {@link getScreenComponent}.
72
73
  */
73
74
  const screenComponents: Record<RouteName, ComponentType<never>> = {
75
+ Supervision: lazy(() => import('../screens/SupervisionScreen')),
74
76
  ManageAccount: lazy(() => import('../screens/ManageAccountScreen')),
75
77
  AccountVerification: lazy(() => import('../screens/AccountVerificationScreen')),
76
78
  PaymentGateway: lazy(() => import('../screens/PaymentGatewayScreen')),
@@ -24,6 +24,7 @@ type SurfaceRoute<Props = Record<string, unknown>, Result = void> = {
24
24
  };
25
25
 
26
26
  export interface SurfaceRegistry {
27
+ Supervision: SurfaceRoute<{ approvalId?: string; childAccountId?: string }>;
27
28
  ManageAccount: SurfaceRoute;
28
29
  AccountVerification: SurfaceRoute;
29
30
  PaymentGateway: SurfaceRoute;
@@ -1,8 +1,8 @@
1
- import { publicApplicationSchema } from '@oxy.so/contracts';
1
+ import { publicApplicationCheck, parseContract } from '@oxy.so/contracts/client';
2
2
  import type { OxyServices } from '@oxy.so/core';
3
3
 
4
4
  export function classifyApplicationSessionLane(metadata: unknown): 'device' | 'oauth' {
5
- const application = publicApplicationSchema.parse(metadata);
5
+ const application = parseContract(publicApplicationCheck, metadata);
6
6
  return application.type === 'third_party' && !application.isOfficial && !application.isInternal
7
7
  ? 'oauth'
8
8
  : 'device';
@@ -1,5 +1,9 @@
1
1
  import type React from 'react';
2
- import { ORGANIZATION_NAME_MAX_LENGTH, organizationNameSchema } from '@oxy.so/contracts';
2
+ import {
3
+ ORGANIZATION_NAME_MAX_LENGTH,
4
+ organizationNameCheck,
5
+ checkContract,
6
+ } from '@oxy.so/contracts/client';
3
7
  import { OrganizationSettings } from '../components/organizations/OrganizationSettings';
4
8
  import { useCallback, useMemo, useState } from 'react';
5
9
  import { View, ActivityIndicator } from 'react-native';
@@ -152,7 +156,7 @@ const AccountSettingsScreen: React.FC<BaseScreenProps> = ({
152
156
  }
153
157
  if (node?.account.kind === 'organization') {
154
158
  setDisplayNameError(
155
- organizationNameSchema.safeParse(trimmed).success
159
+ checkContract(organizationNameCheck, trimmed) !== null
156
160
  ? ''
157
161
  : t('organizationDirectory.invalidName'),
158
162
  );
@@ -1,9 +1,10 @@
1
1
  import type React from 'react';
2
+ import type { OrganizationType } from '@oxy.so/contracts';
2
3
  import {
3
4
  ORGANIZATION_NAME_MAX_LENGTH,
4
- organizationNameSchema,
5
- type OrganizationType,
6
- } from '@oxy.so/contracts';
5
+ organizationNameCheck,
6
+ checkContract,
7
+ } from '@oxy.so/contracts/client';
7
8
  import { OrganizationDirectorySearch } from '../components/organizations/OrganizationDirectorySearch';
8
9
  import { OrganizationTypePicker } from '../components/organizations/OrganizationTypePicker';
9
10
  import { useState, useCallback, useRef, useEffect } from 'react';
@@ -21,12 +22,12 @@ import {
21
22
  import {
22
23
  applyBotUsernameSuffix,
23
24
  stripDisallowedUsernameCharacters,
24
- usernameSchemaForAccountKind,
25
+ usernameCheckForAccountKind,
25
26
  BOT_USERNAME_INVALID_MESSAGE,
26
27
  USERNAME_INVALID_MESSAGE,
27
28
  USERNAME_MAX_LENGTH,
28
29
  USERNAME_MIN_LENGTH,
29
- } from '@oxy.so/contracts';
30
+ } from '@oxy.so/contracts/client';
30
31
  import type { BaseScreenProps } from '../types/navigation';
31
32
  import { useI18n } from '../hooks/useI18n';
32
33
  import { useSurfaceHeader } from '../hooks/useSurfaceHeader';
@@ -119,7 +120,12 @@ const ACCOUNT_CATEGORY_OPTIONS: readonly AccountCategoryId[] = SELECTABLE_ACCOUN
119
120
  * account via the `parentAccountId` prop. NOT the cryptographic Commons/DID
120
121
  * "identity" — that is a separate concept.
121
122
  */
122
- const CreateAccountScreen: React.FC<BaseScreenProps> = ({ onClose, goBack, parentAccountId }) => {
123
+ const CreateAccountScreen: React.FC<BaseScreenProps> = ({
124
+ onClose,
125
+ goBack,
126
+ parentAccountId,
127
+ navigate,
128
+ }) => {
123
129
  const bloomTheme = useTheme();
124
130
  const { oxyServices, createAccount, switchToAccount, user, canUsePrivateApi } = useOxy();
125
131
  const { t, locale } = useI18n();
@@ -196,9 +202,9 @@ const CreateAccountScreen: React.FC<BaseScreenProps> = ({ onClose, goBack, paren
196
202
  // somebody who typed `a.b` to append `bot` sends them to be refused a second
197
203
  // time. The issue is read to choose between two LOCALIZED strings rather than
198
204
  // shown directly — the schema's message is English, and this screen is not.
199
- const parsed = usernameSchemaForAccountKind(forKind).safeParse(value);
200
- if (!parsed.success) {
201
- const failedTheLabel = parsed.error.issues[0]?.message === BOT_USERNAME_INVALID_MESSAGE;
205
+ const checked = usernameCheckForAccountKind(forKind)(value, []);
206
+ if (!checked.ok) {
207
+ const failedTheLabel = checked.issue.message === BOT_USERNAME_INVALID_MESSAGE;
202
208
  setUsernameStatus('invalid');
203
209
  setUsernameMessage(
204
210
  failedTheLabel
@@ -282,7 +288,7 @@ const CreateAccountScreen: React.FC<BaseScreenProps> = ({ onClose, goBack, paren
282
288
  }
283
289
  if (kind === 'organization') {
284
290
  setDisplayNameError(
285
- organizationNameSchema.safeParse(trimmed).success
291
+ checkContract(organizationNameCheck, trimmed) !== null
286
292
  ? ''
287
293
  : t('organizationDirectory.invalidName'),
288
294
  );
@@ -398,6 +404,15 @@ const CreateAccountScreen: React.FC<BaseScreenProps> = ({ onClose, goBack, paren
398
404
 
399
405
  return (
400
406
  <View className="gap-space-16 px-screen-margin pt-space-16 pb-space-32">
407
+ {user?.kind === 'personal' && !parentId ? (
408
+ <SettingsListGroup title={t('supervision.title')}>
409
+ <SettingsListItem
410
+ title={t('supervision.setupOwn')}
411
+ description={t('supervision.setupOwnDescription')}
412
+ onPress={() => navigate?.('Supervision')}
413
+ />
414
+ </SettingsListGroup>
415
+ ) : null}
401
416
  {/* Account type — canonical grouped selection rows (checkmark on the chosen one) */}
402
417
  <SettingsListGroup title={t('accounts.create.typeSection') || 'Account type'}>
403
418
  {KIND_OPTIONS.map((option) => {
@@ -414,6 +414,16 @@ const ManageAccountScreen: React.FC<BaseScreenProps> = ({ onClose, goBack, navig
414
414
  </>
415
415
  ) : null}
416
416
 
417
+ {user?.kind === 'personal' ? (
418
+ <SettingsListGroup title={t('supervision.title')}>
419
+ <SettingsListItem
420
+ title={t('supervision.title')}
421
+ description={t('supervision.entryDescription')}
422
+ onPress={() => navigate?.('Supervision')}
423
+ />
424
+ </SettingsListGroup>
425
+ ) : null}
426
+
417
427
  {/* Sessions section */}
418
428
  <SettingsListGroup title={t('manageAccount.sections.sessions') || 'Sessions & devices'}>
419
429
  {deviceSessionsLoading ? (