@pyric/ui 0.1.0-alpha.10

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 (603) hide show
  1. package/LICENSE +216 -0
  2. package/README.md +79 -0
  3. package/dist/agents/ContextWindowUsage.d.ts +67 -0
  4. package/dist/agents/ContextWindowUsage.d.ts.map +1 -0
  5. package/dist/agents/ContextWindowUsage.js +115 -0
  6. package/dist/agents/ContextWindowUsage.js.map +1 -0
  7. package/dist/agents/EmptyState.d.ts +18 -0
  8. package/dist/agents/EmptyState.d.ts.map +1 -0
  9. package/dist/agents/EmptyState.js +11 -0
  10. package/dist/agents/EmptyState.js.map +1 -0
  11. package/dist/agents/Fold.d.ts +37 -0
  12. package/dist/agents/Fold.d.ts.map +1 -0
  13. package/dist/agents/Fold.js +18 -0
  14. package/dist/agents/Fold.js.map +1 -0
  15. package/dist/agents/Modal.d.ts +25 -0
  16. package/dist/agents/Modal.d.ts.map +1 -0
  17. package/dist/agents/Modal.js +28 -0
  18. package/dist/agents/Modal.js.map +1 -0
  19. package/dist/agents/PulsingDot.d.ts +21 -0
  20. package/dist/agents/PulsingDot.d.ts.map +1 -0
  21. package/dist/agents/PulsingDot.js +18 -0
  22. package/dist/agents/PulsingDot.js.map +1 -0
  23. package/dist/agents/index.d.ts +15 -0
  24. package/dist/agents/index.d.ts.map +1 -0
  25. package/dist/agents/index.js +15 -0
  26. package/dist/agents/index.js.map +1 -0
  27. package/dist/auth/authApi.d.ts +32 -0
  28. package/dist/auth/authApi.d.ts.map +1 -0
  29. package/dist/auth/authApi.js +27 -0
  30. package/dist/auth/authApi.js.map +1 -0
  31. package/dist/auth/claims.d.ts +27 -0
  32. package/dist/auth/claims.d.ts.map +1 -0
  33. package/dist/auth/claims.js +58 -0
  34. package/dist/auth/claims.js.map +1 -0
  35. package/dist/auth/components/AuthProviderToggles.d.ts +31 -0
  36. package/dist/auth/components/AuthProviderToggles.d.ts.map +1 -0
  37. package/dist/auth/components/AuthProviderToggles.js +48 -0
  38. package/dist/auth/components/AuthProviderToggles.js.map +1 -0
  39. package/dist/auth/components/AuthSignInHelper.d.ts +57 -0
  40. package/dist/auth/components/AuthSignInHelper.d.ts.map +1 -0
  41. package/dist/auth/components/AuthSignInHelper.js +69 -0
  42. package/dist/auth/components/AuthSignInHelper.js.map +1 -0
  43. package/dist/auth/components/AuthUserForm.d.ts +84 -0
  44. package/dist/auth/components/AuthUserForm.d.ts.map +1 -0
  45. package/dist/auth/components/AuthUserForm.js +89 -0
  46. package/dist/auth/components/AuthUserForm.js.map +1 -0
  47. package/dist/auth/components/AuthUserList.d.ts +62 -0
  48. package/dist/auth/components/AuthUserList.d.ts.map +1 -0
  49. package/dist/auth/components/AuthUserList.js +46 -0
  50. package/dist/auth/components/AuthUserList.js.map +1 -0
  51. package/dist/auth/components/ClaimsField.d.ts +22 -0
  52. package/dist/auth/components/ClaimsField.d.ts.map +1 -0
  53. package/dist/auth/components/ClaimsField.js +11 -0
  54. package/dist/auth/components/ClaimsField.js.map +1 -0
  55. package/dist/auth/components/confirmActions.d.ts +40 -0
  56. package/dist/auth/components/confirmActions.d.ts.map +1 -0
  57. package/dist/auth/components/confirmActions.js +49 -0
  58. package/dist/auth/components/confirmActions.js.map +1 -0
  59. package/dist/auth/controller.d.ts +73 -0
  60. package/dist/auth/controller.d.ts.map +1 -0
  61. package/dist/auth/controller.js +139 -0
  62. package/dist/auth/controller.js.map +1 -0
  63. package/dist/auth/hooks/index.d.ts +7 -0
  64. package/dist/auth/hooks/index.d.ts.map +1 -0
  65. package/dist/auth/hooks/index.js +7 -0
  66. package/dist/auth/hooks/index.js.map +1 -0
  67. package/dist/auth/hooks/useAuthFlowHelper.d.ts +30 -0
  68. package/dist/auth/hooks/useAuthFlowHelper.d.ts.map +1 -0
  69. package/dist/auth/hooks/useAuthFlowHelper.js +30 -0
  70. package/dist/auth/hooks/useAuthFlowHelper.js.map +1 -0
  71. package/dist/auth/hooks/useAuthProviderConfig.d.ts +37 -0
  72. package/dist/auth/hooks/useAuthProviderConfig.d.ts.map +1 -0
  73. package/dist/auth/hooks/useAuthProviderConfig.js +98 -0
  74. package/dist/auth/hooks/useAuthProviderConfig.js.map +1 -0
  75. package/dist/auth/hooks/useAuthUserEditor.d.ts +30 -0
  76. package/dist/auth/hooks/useAuthUserEditor.d.ts.map +1 -0
  77. package/dist/auth/hooks/useAuthUserEditor.js +27 -0
  78. package/dist/auth/hooks/useAuthUserEditor.js.map +1 -0
  79. package/dist/auth/hooks/useAuthUsers.d.ts +38 -0
  80. package/dist/auth/hooks/useAuthUsers.d.ts.map +1 -0
  81. package/dist/auth/hooks/useAuthUsers.js +111 -0
  82. package/dist/auth/hooks/useAuthUsers.js.map +1 -0
  83. package/dist/auth/index.d.ts +11 -0
  84. package/dist/auth/index.d.ts.map +1 -0
  85. package/dist/auth/index.js +13 -0
  86. package/dist/auth/index.js.map +1 -0
  87. package/dist/auth/providers.d.ts +11 -0
  88. package/dist/auth/providers.d.ts.map +1 -0
  89. package/dist/auth/providers.js +28 -0
  90. package/dist/auth/providers.js.map +1 -0
  91. package/dist/auth/reducers/userEditor.d.ts +55 -0
  92. package/dist/auth/reducers/userEditor.d.ts.map +1 -0
  93. package/dist/auth/reducers/userEditor.js +136 -0
  94. package/dist/auth/reducers/userEditor.js.map +1 -0
  95. package/dist/events/components/ActivityActionItems.d.ts +45 -0
  96. package/dist/events/components/ActivityActionItems.d.ts.map +1 -0
  97. package/dist/events/components/ActivityActionItems.js +68 -0
  98. package/dist/events/components/ActivityActionItems.js.map +1 -0
  99. package/dist/events/components/ActivityGrid.d.ts +65 -0
  100. package/dist/events/components/ActivityGrid.d.ts.map +1 -0
  101. package/dist/events/components/ActivityGrid.js +61 -0
  102. package/dist/events/components/ActivityGrid.js.map +1 -0
  103. package/dist/events/components/ActivityGridRow.d.ts +31 -0
  104. package/dist/events/components/ActivityGridRow.d.ts.map +1 -0
  105. package/dist/events/components/ActivityGridRow.js +23 -0
  106. package/dist/events/components/ActivityGridRow.js.map +1 -0
  107. package/dist/events/components/ProposedChangeDiff.d.ts +46 -0
  108. package/dist/events/components/ProposedChangeDiff.d.ts.map +1 -0
  109. package/dist/events/components/ProposedChangeDiff.js +60 -0
  110. package/dist/events/components/ProposedChangeDiff.js.map +1 -0
  111. package/dist/events/components/format.d.ts +11 -0
  112. package/dist/events/components/format.d.ts.map +1 -0
  113. package/dist/events/components/format.js +26 -0
  114. package/dist/events/components/format.js.map +1 -0
  115. package/dist/events/components/index.d.ts +6 -0
  116. package/dist/events/components/index.d.ts.map +1 -0
  117. package/dist/events/components/index.js +6 -0
  118. package/dist/events/components/index.js.map +1 -0
  119. package/dist/events/digest.d.ts +167 -0
  120. package/dist/events/digest.d.ts.map +1 -0
  121. package/dist/events/digest.js +426 -0
  122. package/dist/events/digest.js.map +1 -0
  123. package/dist/events/hooks/index.d.ts +3 -0
  124. package/dist/events/hooks/index.d.ts.map +1 -0
  125. package/dist/events/hooks/index.js +3 -0
  126. package/dist/events/hooks/index.js.map +1 -0
  127. package/dist/events/hooks/useActivityDigest.d.ts +27 -0
  128. package/dist/events/hooks/useActivityDigest.d.ts.map +1 -0
  129. package/dist/events/hooks/useActivityDigest.js +18 -0
  130. package/dist/events/hooks/useActivityDigest.js.map +1 -0
  131. package/dist/events/hooks/useActivityStream.d.ts +44 -0
  132. package/dist/events/hooks/useActivityStream.d.ts.map +1 -0
  133. package/dist/events/hooks/useActivityStream.js +38 -0
  134. package/dist/events/hooks/useActivityStream.js.map +1 -0
  135. package/dist/events/index.d.ts +15 -0
  136. package/dist/events/index.d.ts.map +1 -0
  137. package/dist/events/index.js +14 -0
  138. package/dist/events/index.js.map +1 -0
  139. package/dist/events/types.d.ts +160 -0
  140. package/dist/events/types.d.ts.map +1 -0
  141. package/dist/events/types.js +21 -0
  142. package/dist/events/types.js.map +1 -0
  143. package/dist/firestore/components/CollectionList.d.ts +22 -0
  144. package/dist/firestore/components/CollectionList.d.ts.map +1 -0
  145. package/dist/firestore/components/CollectionList.js +21 -0
  146. package/dist/firestore/components/CollectionList.js.map +1 -0
  147. package/dist/firestore/components/DeleteWithConfirm.d.ts +38 -0
  148. package/dist/firestore/components/DeleteWithConfirm.d.ts.map +1 -0
  149. package/dist/firestore/components/DeleteWithConfirm.js +33 -0
  150. package/dist/firestore/components/DeleteWithConfirm.js.map +1 -0
  151. package/dist/firestore/components/DocumentEditor.d.ts +47 -0
  152. package/dist/firestore/components/DocumentEditor.d.ts.map +1 -0
  153. package/dist/firestore/components/DocumentEditor.js +176 -0
  154. package/dist/firestore/components/DocumentEditor.js.map +1 -0
  155. package/dist/firestore/components/DocumentList.d.ts +63 -0
  156. package/dist/firestore/components/DocumentList.d.ts.map +1 -0
  157. package/dist/firestore/components/DocumentList.js +53 -0
  158. package/dist/firestore/components/DocumentList.js.map +1 -0
  159. package/dist/firestore/components/DocumentPreview.d.ts +68 -0
  160. package/dist/firestore/components/DocumentPreview.d.ts.map +1 -0
  161. package/dist/firestore/components/DocumentPreview.js +76 -0
  162. package/dist/firestore/components/DocumentPreview.js.map +1 -0
  163. package/dist/firestore/components/FieldRenderer.d.ts +17 -0
  164. package/dist/firestore/components/FieldRenderer.d.ts.map +1 -0
  165. package/dist/firestore/components/FieldRenderer.js +16 -0
  166. package/dist/firestore/components/FieldRenderer.js.map +1 -0
  167. package/dist/firestore/components/QueryBuilder.d.ts +25 -0
  168. package/dist/firestore/components/QueryBuilder.d.ts.map +1 -0
  169. package/dist/firestore/components/QueryBuilder.js +78 -0
  170. package/dist/firestore/components/QueryBuilder.js.map +1 -0
  171. package/dist/firestore/components/ReferencePicker.d.ts +33 -0
  172. package/dist/firestore/components/ReferencePicker.d.ts.map +1 -0
  173. package/dist/firestore/components/ReferencePicker.js +42 -0
  174. package/dist/firestore/components/ReferencePicker.js.map +1 -0
  175. package/dist/firestore/components/TreeEntry.d.ts +15 -0
  176. package/dist/firestore/components/TreeEntry.d.ts.map +1 -0
  177. package/dist/firestore/components/TreeEntry.js +23 -0
  178. package/dist/firestore/components/TreeEntry.js.map +1 -0
  179. package/dist/firestore/components/context.d.ts +18 -0
  180. package/dist/firestore/components/context.d.ts.map +1 -0
  181. package/dist/firestore/components/context.js +7 -0
  182. package/dist/firestore/components/context.js.map +1 -0
  183. package/dist/firestore/fieldEditors/array.d.ts +3 -0
  184. package/dist/firestore/fieldEditors/array.d.ts.map +1 -0
  185. package/dist/firestore/fieldEditors/array.js +16 -0
  186. package/dist/firestore/fieldEditors/array.js.map +1 -0
  187. package/dist/firestore/fieldEditors/boolean.d.ts +3 -0
  188. package/dist/firestore/fieldEditors/boolean.d.ts.map +1 -0
  189. package/dist/firestore/fieldEditors/boolean.js +13 -0
  190. package/dist/firestore/fieldEditors/boolean.js.map +1 -0
  191. package/dist/firestore/fieldEditors/bytes.d.ts +4 -0
  192. package/dist/firestore/fieldEditors/bytes.d.ts.map +1 -0
  193. package/dist/firestore/fieldEditors/bytes.js +31 -0
  194. package/dist/firestore/fieldEditors/bytes.js.map +1 -0
  195. package/dist/firestore/fieldEditors/geopoint.d.ts +4 -0
  196. package/dist/firestore/fieldEditors/geopoint.d.ts.map +1 -0
  197. package/dist/firestore/fieldEditors/geopoint.js +32 -0
  198. package/dist/firestore/fieldEditors/geopoint.js.map +1 -0
  199. package/dist/firestore/fieldEditors/map.d.ts +3 -0
  200. package/dist/firestore/fieldEditors/map.d.ts.map +1 -0
  201. package/dist/firestore/fieldEditors/map.js +19 -0
  202. package/dist/firestore/fieldEditors/map.js.map +1 -0
  203. package/dist/firestore/fieldEditors/null.d.ts +3 -0
  204. package/dist/firestore/fieldEditors/null.d.ts.map +1 -0
  205. package/dist/firestore/fieldEditors/null.js +17 -0
  206. package/dist/firestore/fieldEditors/null.js.map +1 -0
  207. package/dist/firestore/fieldEditors/number.d.ts +3 -0
  208. package/dist/firestore/fieldEditors/number.d.ts.map +1 -0
  209. package/dist/firestore/fieldEditors/number.js +24 -0
  210. package/dist/firestore/fieldEditors/number.js.map +1 -0
  211. package/dist/firestore/fieldEditors/reference.d.ts +4 -0
  212. package/dist/firestore/fieldEditors/reference.d.ts.map +1 -0
  213. package/dist/firestore/fieldEditors/reference.js +49 -0
  214. package/dist/firestore/fieldEditors/reference.js.map +1 -0
  215. package/dist/firestore/fieldEditors/registry.d.ts +16 -0
  216. package/dist/firestore/fieldEditors/registry.d.ts.map +1 -0
  217. package/dist/firestore/fieldEditors/registry.js +42 -0
  218. package/dist/firestore/fieldEditors/registry.js.map +1 -0
  219. package/dist/firestore/fieldEditors/string.d.ts +3 -0
  220. package/dist/firestore/fieldEditors/string.d.ts.map +1 -0
  221. package/dist/firestore/fieldEditors/string.js +13 -0
  222. package/dist/firestore/fieldEditors/string.js.map +1 -0
  223. package/dist/firestore/fieldEditors/timestamp.d.ts +4 -0
  224. package/dist/firestore/fieldEditors/timestamp.d.ts.map +1 -0
  225. package/dist/firestore/fieldEditors/timestamp.js +52 -0
  226. package/dist/firestore/fieldEditors/timestamp.js.map +1 -0
  227. package/dist/firestore/fieldEditors/types.d.ts +64 -0
  228. package/dist/firestore/fieldEditors/types.d.ts.map +1 -0
  229. package/dist/firestore/fieldEditors/types.js +2 -0
  230. package/dist/firestore/fieldEditors/types.js.map +1 -0
  231. package/dist/firestore/fieldEditors/vector.d.ts +29 -0
  232. package/dist/firestore/fieldEditors/vector.d.ts.map +1 -0
  233. package/dist/firestore/fieldEditors/vector.js +93 -0
  234. package/dist/firestore/fieldEditors/vector.js.map +1 -0
  235. package/dist/firestore/firestoreApi.d.ts +35 -0
  236. package/dist/firestore/firestoreApi.d.ts.map +1 -0
  237. package/dist/firestore/firestoreApi.js +29 -0
  238. package/dist/firestore/firestoreApi.js.map +1 -0
  239. package/dist/firestore/hooks/coerceError.d.ts +17 -0
  240. package/dist/firestore/hooks/coerceError.d.ts.map +1 -0
  241. package/dist/firestore/hooks/coerceError.js +41 -0
  242. package/dist/firestore/hooks/coerceError.js.map +1 -0
  243. package/dist/firestore/hooks/index.d.ts +10 -0
  244. package/dist/firestore/hooks/index.d.ts.map +1 -0
  245. package/dist/firestore/hooks/index.js +10 -0
  246. package/dist/firestore/hooks/index.js.map +1 -0
  247. package/dist/firestore/hooks/useCollectionList.d.ts +37 -0
  248. package/dist/firestore/hooks/useCollectionList.d.ts.map +1 -0
  249. package/dist/firestore/hooks/useCollectionList.js +51 -0
  250. package/dist/firestore/hooks/useCollectionList.js.map +1 -0
  251. package/dist/firestore/hooks/useDocumentEditor.d.ts +61 -0
  252. package/dist/firestore/hooks/useDocumentEditor.d.ts.map +1 -0
  253. package/dist/firestore/hooks/useDocumentEditor.js +71 -0
  254. package/dist/firestore/hooks/useDocumentEditor.js.map +1 -0
  255. package/dist/firestore/hooks/useDocumentList.d.ts +50 -0
  256. package/dist/firestore/hooks/useDocumentList.d.ts.map +1 -0
  257. package/dist/firestore/hooks/useDocumentList.js +162 -0
  258. package/dist/firestore/hooks/useDocumentList.js.map +1 -0
  259. package/dist/firestore/hooks/useDocumentSubcollections.d.ts +29 -0
  260. package/dist/firestore/hooks/useDocumentSubcollections.d.ts.map +1 -0
  261. package/dist/firestore/hooks/useDocumentSubcollections.js +48 -0
  262. package/dist/firestore/hooks/useDocumentSubcollections.js.map +1 -0
  263. package/dist/firestore/hooks/useFirestoreCollection.d.ts +14 -0
  264. package/dist/firestore/hooks/useFirestoreCollection.d.ts.map +1 -0
  265. package/dist/firestore/hooks/useFirestoreCollection.js +36 -0
  266. package/dist/firestore/hooks/useFirestoreCollection.js.map +1 -0
  267. package/dist/firestore/hooks/useFirestoreDoc.d.ts +17 -0
  268. package/dist/firestore/hooks/useFirestoreDoc.d.ts.map +1 -0
  269. package/dist/firestore/hooks/useFirestoreDoc.js +35 -0
  270. package/dist/firestore/hooks/useFirestoreDoc.js.map +1 -0
  271. package/dist/firestore/hooks/useQueryBuilder.d.ts +51 -0
  272. package/dist/firestore/hooks/useQueryBuilder.d.ts.map +1 -0
  273. package/dist/firestore/hooks/useQueryBuilder.js +110 -0
  274. package/dist/firestore/hooks/useQueryBuilder.js.map +1 -0
  275. package/dist/firestore/hooks/useRecursiveDelete.d.ts +40 -0
  276. package/dist/firestore/hooks/useRecursiveDelete.d.ts.map +1 -0
  277. package/dist/firestore/hooks/useRecursiveDelete.js +44 -0
  278. package/dist/firestore/hooks/useRecursiveDelete.js.map +1 -0
  279. package/dist/firestore/hooks/useReferencePicker.d.ts +70 -0
  280. package/dist/firestore/hooks/useReferencePicker.d.ts.map +1 -0
  281. package/dist/firestore/hooks/useReferencePicker.js +140 -0
  282. package/dist/firestore/hooks/useReferencePicker.js.map +1 -0
  283. package/dist/firestore/import/parseImport.d.ts +55 -0
  284. package/dist/firestore/import/parseImport.d.ts.map +1 -0
  285. package/dist/firestore/import/parseImport.js +101 -0
  286. package/dist/firestore/import/parseImport.js.map +1 -0
  287. package/dist/firestore/index.d.ts +21 -0
  288. package/dist/firestore/index.d.ts.map +1 -0
  289. package/dist/firestore/index.js +29 -0
  290. package/dist/firestore/index.js.map +1 -0
  291. package/dist/firestore/reducers/defaults.d.ts +10 -0
  292. package/dist/firestore/reducers/defaults.d.ts.map +1 -0
  293. package/dist/firestore/reducers/defaults.js +37 -0
  294. package/dist/firestore/reducers/defaults.js.map +1 -0
  295. package/dist/firestore/reducers/documentEditor.d.ts +23 -0
  296. package/dist/firestore/reducers/documentEditor.d.ts.map +1 -0
  297. package/dist/firestore/reducers/documentEditor.js +201 -0
  298. package/dist/firestore/reducers/documentEditor.js.map +1 -0
  299. package/dist/firestore/reducers/tree.d.ts +28 -0
  300. package/dist/firestore/reducers/tree.d.ts.map +1 -0
  301. package/dist/firestore/reducers/tree.js +129 -0
  302. package/dist/firestore/reducers/tree.js.map +1 -0
  303. package/dist/firestore/reducers/types.d.ts +115 -0
  304. package/dist/firestore/reducers/types.d.ts.map +1 -0
  305. package/dist/firestore/reducers/types.js +2 -0
  306. package/dist/firestore/reducers/types.js.map +1 -0
  307. package/dist/firestore/reducers/validation.d.ts +25 -0
  308. package/dist/firestore/reducers/validation.d.ts.map +1 -0
  309. package/dist/firestore/reducers/validation.js +121 -0
  310. package/dist/firestore/reducers/validation.js.map +1 -0
  311. package/dist/firestore/types.d.ts +77 -0
  312. package/dist/firestore/types.d.ts.map +1 -0
  313. package/dist/firestore/types.js +196 -0
  314. package/dist/firestore/types.js.map +1 -0
  315. package/dist/firestore/validation/ids.d.ts +23 -0
  316. package/dist/firestore/validation/ids.d.ts.map +1 -0
  317. package/dist/firestore/validation/ids.js +46 -0
  318. package/dist/firestore/validation/ids.js.map +1 -0
  319. package/dist/firestore/valueEquality.d.ts +4 -0
  320. package/dist/firestore/valueEquality.d.ts.map +1 -0
  321. package/dist/firestore/valueEquality.js +44 -0
  322. package/dist/firestore/valueEquality.js.map +1 -0
  323. package/dist/index.d.ts +2 -0
  324. package/dist/index.d.ts.map +1 -0
  325. package/dist/index.js +2 -0
  326. package/dist/index.js.map +1 -0
  327. package/dist/primitives/Badge.d.ts +28 -0
  328. package/dist/primitives/Badge.d.ts.map +1 -0
  329. package/dist/primitives/Badge.js +11 -0
  330. package/dist/primitives/Badge.js.map +1 -0
  331. package/dist/primitives/ConfirmDialog.d.ts +42 -0
  332. package/dist/primitives/ConfirmDialog.d.ts.map +1 -0
  333. package/dist/primitives/ConfirmDialog.js +61 -0
  334. package/dist/primitives/ConfirmDialog.js.map +1 -0
  335. package/dist/primitives/CopyButton.d.ts +28 -0
  336. package/dist/primitives/CopyButton.d.ts.map +1 -0
  337. package/dist/primitives/CopyButton.js +27 -0
  338. package/dist/primitives/CopyButton.js.map +1 -0
  339. package/dist/primitives/JsonView.d.ts +29 -0
  340. package/dist/primitives/JsonView.d.ts.map +1 -0
  341. package/dist/primitives/JsonView.js +56 -0
  342. package/dist/primitives/JsonView.js.map +1 -0
  343. package/dist/primitives/SegmentedControl.d.ts +37 -0
  344. package/dist/primitives/SegmentedControl.d.ts.map +1 -0
  345. package/dist/primitives/SegmentedControl.js +18 -0
  346. package/dist/primitives/SegmentedControl.js.map +1 -0
  347. package/dist/primitives/Toast.d.ts +48 -0
  348. package/dist/primitives/Toast.d.ts.map +1 -0
  349. package/dist/primitives/Toast.js +60 -0
  350. package/dist/primitives/Toast.js.map +1 -0
  351. package/dist/primitives/VirtualList.d.ts +37 -0
  352. package/dist/primitives/VirtualList.d.ts.map +1 -0
  353. package/dist/primitives/VirtualList.js +47 -0
  354. package/dist/primitives/VirtualList.js.map +1 -0
  355. package/dist/primitives/hooks/useContainerSize.d.ts +29 -0
  356. package/dist/primitives/hooks/useContainerSize.d.ts.map +1 -0
  357. package/dist/primitives/hooks/useContainerSize.js +45 -0
  358. package/dist/primitives/hooks/useContainerSize.js.map +1 -0
  359. package/dist/primitives/hooks/useUpdateHighlights.d.ts +18 -0
  360. package/dist/primitives/hooks/useUpdateHighlights.d.ts.map +1 -0
  361. package/dist/primitives/hooks/useUpdateHighlights.js +84 -0
  362. package/dist/primitives/hooks/useUpdateHighlights.js.map +1 -0
  363. package/dist/primitives/index.d.ts +11 -0
  364. package/dist/primitives/index.d.ts.map +1 -0
  365. package/dist/primitives/index.js +11 -0
  366. package/dist/primitives/index.js.map +1 -0
  367. package/dist/primitives/useConfirm.d.ts +34 -0
  368. package/dist/primitives/useConfirm.d.ts.map +1 -0
  369. package/dist/primitives/useConfirm.js +63 -0
  370. package/dist/primitives/useConfirm.js.map +1 -0
  371. package/dist/rtdb/components/RtdbPathBar.d.ts +31 -0
  372. package/dist/rtdb/components/RtdbPathBar.d.ts.map +1 -0
  373. package/dist/rtdb/components/RtdbPathBar.js +47 -0
  374. package/dist/rtdb/components/RtdbPathBar.js.map +1 -0
  375. package/dist/rtdb/components/RtdbTree.d.ts +38 -0
  376. package/dist/rtdb/components/RtdbTree.d.ts.map +1 -0
  377. package/dist/rtdb/components/RtdbTree.js +104 -0
  378. package/dist/rtdb/components/RtdbTree.js.map +1 -0
  379. package/dist/rtdb/editor.d.ts +25 -0
  380. package/dist/rtdb/editor.d.ts.map +1 -0
  381. package/dist/rtdb/editor.js +79 -0
  382. package/dist/rtdb/editor.js.map +1 -0
  383. package/dist/rtdb/hooks/useRtdbTree.d.ts +33 -0
  384. package/dist/rtdb/hooks/useRtdbTree.d.ts.map +1 -0
  385. package/dist/rtdb/hooks/useRtdbTree.js +67 -0
  386. package/dist/rtdb/hooks/useRtdbTree.js.map +1 -0
  387. package/dist/rtdb/index.d.ts +17 -0
  388. package/dist/rtdb/index.d.ts.map +1 -0
  389. package/dist/rtdb/index.js +21 -0
  390. package/dist/rtdb/index.js.map +1 -0
  391. package/dist/rtdb/pathInput.d.ts +28 -0
  392. package/dist/rtdb/pathInput.d.ts.map +1 -0
  393. package/dist/rtdb/pathInput.js +40 -0
  394. package/dist/rtdb/pathInput.js.map +1 -0
  395. package/dist/rtdb/reducers/tree.d.ts +86 -0
  396. package/dist/rtdb/reducers/tree.d.ts.map +1 -0
  397. package/dist/rtdb/reducers/tree.js +131 -0
  398. package/dist/rtdb/reducers/tree.js.map +1 -0
  399. package/dist/rtdb/rtdbApi.d.ts +20 -0
  400. package/dist/rtdb/rtdbApi.d.ts.map +1 -0
  401. package/dist/rtdb/rtdbApi.js +2 -0
  402. package/dist/rtdb/rtdbApi.js.map +1 -0
  403. package/dist/rtdb/values.d.ts +50 -0
  404. package/dist/rtdb/values.d.ts.map +1 -0
  405. package/dist/rtdb/values.js +186 -0
  406. package/dist/rtdb/values.js.map +1 -0
  407. package/dist/rules/components/DenialInspector.d.ts +18 -0
  408. package/dist/rules/components/DenialInspector.d.ts.map +1 -0
  409. package/dist/rules/components/DenialInspector.js +58 -0
  410. package/dist/rules/components/DenialInspector.js.map +1 -0
  411. package/dist/rules/components/format.d.ts +56 -0
  412. package/dist/rules/components/format.d.ts.map +1 -0
  413. package/dist/rules/components/format.js +137 -0
  414. package/dist/rules/components/format.js.map +1 -0
  415. package/dist/rules/components/index.d.ts +4 -0
  416. package/dist/rules/components/index.d.ts.map +1 -0
  417. package/dist/rules/components/index.js +4 -0
  418. package/dist/rules/components/index.js.map +1 -0
  419. package/dist/rules/components/scope.d.ts +10 -0
  420. package/dist/rules/components/scope.d.ts.map +1 -0
  421. package/dist/rules/components/scope.js +72 -0
  422. package/dist/rules/components/scope.js.map +1 -0
  423. package/dist/rules/hooks/index.d.ts +2 -0
  424. package/dist/rules/hooks/index.d.ts.map +1 -0
  425. package/dist/rules/hooks/index.js +2 -0
  426. package/dist/rules/hooks/index.js.map +1 -0
  427. package/dist/rules/hooks/useDenialTrace.d.ts +51 -0
  428. package/dist/rules/hooks/useDenialTrace.d.ts.map +1 -0
  429. package/dist/rules/hooks/useDenialTrace.js +58 -0
  430. package/dist/rules/hooks/useDenialTrace.js.map +1 -0
  431. package/dist/rules/index.d.ts +14 -0
  432. package/dist/rules/index.d.ts.map +1 -0
  433. package/dist/rules/index.js +13 -0
  434. package/dist/rules/index.js.map +1 -0
  435. package/dist/rules/types.d.ts +75 -0
  436. package/dist/rules/types.d.ts.map +1 -0
  437. package/dist/rules/types.js +2 -0
  438. package/dist/rules/types.js.map +1 -0
  439. package/dist/storage/collisionRename.d.ts +73 -0
  440. package/dist/storage/collisionRename.d.ts.map +1 -0
  441. package/dist/storage/collisionRename.js +113 -0
  442. package/dist/storage/collisionRename.js.map +1 -0
  443. package/dist/storage/components/DeleteSelectionWithConfirm.d.ts +66 -0
  444. package/dist/storage/components/DeleteSelectionWithConfirm.d.ts.map +1 -0
  445. package/dist/storage/components/DeleteSelectionWithConfirm.js +82 -0
  446. package/dist/storage/components/DeleteSelectionWithConfirm.js.map +1 -0
  447. package/dist/storage/components/ObjectBrowser.d.ts +78 -0
  448. package/dist/storage/components/ObjectBrowser.d.ts.map +1 -0
  449. package/dist/storage/components/ObjectBrowser.js +60 -0
  450. package/dist/storage/components/ObjectBrowser.js.map +1 -0
  451. package/dist/storage/components/ObjectInspector.d.ts +43 -0
  452. package/dist/storage/components/ObjectInspector.d.ts.map +1 -0
  453. package/dist/storage/components/ObjectInspector.js +92 -0
  454. package/dist/storage/components/ObjectInspector.js.map +1 -0
  455. package/dist/storage/components/PathBreadcrumb.d.ts +30 -0
  456. package/dist/storage/components/PathBreadcrumb.d.ts.map +1 -0
  457. package/dist/storage/components/PathBreadcrumb.js +26 -0
  458. package/dist/storage/components/PathBreadcrumb.js.map +1 -0
  459. package/dist/storage/components/UploadDropzone.d.ts +50 -0
  460. package/dist/storage/components/UploadDropzone.d.ts.map +1 -0
  461. package/dist/storage/components/UploadDropzone.js +109 -0
  462. package/dist/storage/components/UploadDropzone.js.map +1 -0
  463. package/dist/storage/folderPlaceholder.d.ts +20 -0
  464. package/dist/storage/folderPlaceholder.d.ts.map +1 -0
  465. package/dist/storage/folderPlaceholder.js +34 -0
  466. package/dist/storage/folderPlaceholder.js.map +1 -0
  467. package/dist/storage/hooks/index.d.ts +9 -0
  468. package/dist/storage/hooks/index.d.ts.map +1 -0
  469. package/dist/storage/hooks/index.js +9 -0
  470. package/dist/storage/hooks/index.js.map +1 -0
  471. package/dist/storage/hooks/useMetadataEditor.d.ts +114 -0
  472. package/dist/storage/hooks/useMetadataEditor.d.ts.map +1 -0
  473. package/dist/storage/hooks/useMetadataEditor.js +193 -0
  474. package/dist/storage/hooks/useMetadataEditor.js.map +1 -0
  475. package/dist/storage/hooks/useObjectUpload.d.ts +105 -0
  476. package/dist/storage/hooks/useObjectUpload.d.ts.map +1 -0
  477. package/dist/storage/hooks/useObjectUpload.js +134 -0
  478. package/dist/storage/hooks/useObjectUpload.js.map +1 -0
  479. package/dist/storage/hooks/usePathState.d.ts +43 -0
  480. package/dist/storage/hooks/usePathState.d.ts.map +1 -0
  481. package/dist/storage/hooks/usePathState.js +42 -0
  482. package/dist/storage/hooks/usePathState.js.map +1 -0
  483. package/dist/storage/hooks/useStorageDelete.d.ts +74 -0
  484. package/dist/storage/hooks/useStorageDelete.d.ts.map +1 -0
  485. package/dist/storage/hooks/useStorageDelete.js +120 -0
  486. package/dist/storage/hooks/useStorageDelete.js.map +1 -0
  487. package/dist/storage/hooks/useStorageList.d.ts +72 -0
  488. package/dist/storage/hooks/useStorageList.d.ts.map +1 -0
  489. package/dist/storage/hooks/useStorageList.js +164 -0
  490. package/dist/storage/hooks/useStorageList.js.map +1 -0
  491. package/dist/storage/hooks/useStorageObject.d.ts +33 -0
  492. package/dist/storage/hooks/useStorageObject.d.ts.map +1 -0
  493. package/dist/storage/hooks/useStorageObject.js +114 -0
  494. package/dist/storage/hooks/useStorageObject.js.map +1 -0
  495. package/dist/storage/hooks/useStorageRulesGate.d.ts +116 -0
  496. package/dist/storage/hooks/useStorageRulesGate.d.ts.map +1 -0
  497. package/dist/storage/hooks/useStorageRulesGate.js +150 -0
  498. package/dist/storage/hooks/useStorageRulesGate.js.map +1 -0
  499. package/dist/storage/hooks/useStorageSelection.d.ts +32 -0
  500. package/dist/storage/hooks/useStorageSelection.d.ts.map +1 -0
  501. package/dist/storage/hooks/useStorageSelection.js +55 -0
  502. package/dist/storage/hooks/useStorageSelection.js.map +1 -0
  503. package/dist/storage/index.d.ts +11 -0
  504. package/dist/storage/index.d.ts.map +1 -0
  505. package/dist/storage/index.js +17 -0
  506. package/dist/storage/index.js.map +1 -0
  507. package/dist/storage/pendingPrefixes.d.ts +77 -0
  508. package/dist/storage/pendingPrefixes.d.ts.map +1 -0
  509. package/dist/storage/pendingPrefixes.js +104 -0
  510. package/dist/storage/pendingPrefixes.js.map +1 -0
  511. package/dist/storage/previews.d.ts +51 -0
  512. package/dist/storage/previews.d.ts.map +1 -0
  513. package/dist/storage/previews.js +73 -0
  514. package/dist/storage/previews.js.map +1 -0
  515. package/dist/storage/storageApi.d.ts +30 -0
  516. package/dist/storage/storageApi.d.ts.map +1 -0
  517. package/dist/storage/storageApi.js +20 -0
  518. package/dist/storage/storageApi.js.map +1 -0
  519. package/dist/traffic/components/RuleHeatmap.d.ts +34 -0
  520. package/dist/traffic/components/RuleHeatmap.d.ts.map +1 -0
  521. package/dist/traffic/components/RuleHeatmap.js +40 -0
  522. package/dist/traffic/components/RuleHeatmap.js.map +1 -0
  523. package/dist/traffic/components/TrafficDetail.d.ts +33 -0
  524. package/dist/traffic/components/TrafficDetail.d.ts.map +1 -0
  525. package/dist/traffic/components/TrafficDetail.js +28 -0
  526. package/dist/traffic/components/TrafficDetail.js.map +1 -0
  527. package/dist/traffic/components/TrafficGroupRow.d.ts +28 -0
  528. package/dist/traffic/components/TrafficGroupRow.d.ts.map +1 -0
  529. package/dist/traffic/components/TrafficGroupRow.js +25 -0
  530. package/dist/traffic/components/TrafficGroupRow.js.map +1 -0
  531. package/dist/traffic/components/TrafficLineChart.d.ts +37 -0
  532. package/dist/traffic/components/TrafficLineChart.d.ts.map +1 -0
  533. package/dist/traffic/components/TrafficLineChart.js +49 -0
  534. package/dist/traffic/components/TrafficLineChart.js.map +1 -0
  535. package/dist/traffic/components/TrafficLog.d.ts +52 -0
  536. package/dist/traffic/components/TrafficLog.d.ts.map +1 -0
  537. package/dist/traffic/components/TrafficLog.js +34 -0
  538. package/dist/traffic/components/TrafficLog.js.map +1 -0
  539. package/dist/traffic/components/TrafficMetricCards.d.ts +26 -0
  540. package/dist/traffic/components/TrafficMetricCards.d.ts.map +1 -0
  541. package/dist/traffic/components/TrafficMetricCards.js +24 -0
  542. package/dist/traffic/components/TrafficMetricCards.js.map +1 -0
  543. package/dist/traffic/components/TrafficRow.d.ts +40 -0
  544. package/dist/traffic/components/TrafficRow.d.ts.map +1 -0
  545. package/dist/traffic/components/TrafficRow.js +27 -0
  546. package/dist/traffic/components/TrafficRow.js.map +1 -0
  547. package/dist/traffic/components/TrafficStats.d.ts +18 -0
  548. package/dist/traffic/components/TrafficStats.d.ts.map +1 -0
  549. package/dist/traffic/components/TrafficStats.js +19 -0
  550. package/dist/traffic/components/TrafficStats.js.map +1 -0
  551. package/dist/traffic/components/TrafficTimeline.d.ts +88 -0
  552. package/dist/traffic/components/TrafficTimeline.d.ts.map +1 -0
  553. package/dist/traffic/components/TrafficTimeline.js +86 -0
  554. package/dist/traffic/components/TrafficTimeline.js.map +1 -0
  555. package/dist/traffic/components/format.d.ts +13 -0
  556. package/dist/traffic/components/format.d.ts.map +1 -0
  557. package/dist/traffic/components/format.js +24 -0
  558. package/dist/traffic/components/format.js.map +1 -0
  559. package/dist/traffic/components/index.d.ts +11 -0
  560. package/dist/traffic/components/index.d.ts.map +1 -0
  561. package/dist/traffic/components/index.js +11 -0
  562. package/dist/traffic/components/index.js.map +1 -0
  563. package/dist/traffic/hooks/index.d.ts +8 -0
  564. package/dist/traffic/hooks/index.d.ts.map +1 -0
  565. package/dist/traffic/hooks/index.js +8 -0
  566. package/dist/traffic/hooks/index.js.map +1 -0
  567. package/dist/traffic/hooks/useRuleHeatmap.d.ts +33 -0
  568. package/dist/traffic/hooks/useRuleHeatmap.d.ts.map +1 -0
  569. package/dist/traffic/hooks/useRuleHeatmap.js +54 -0
  570. package/dist/traffic/hooks/useRuleHeatmap.js.map +1 -0
  571. package/dist/traffic/hooks/useTrafficBuckets.d.ts +71 -0
  572. package/dist/traffic/hooks/useTrafficBuckets.d.ts.map +1 -0
  573. package/dist/traffic/hooks/useTrafficBuckets.js +74 -0
  574. package/dist/traffic/hooks/useTrafficBuckets.js.map +1 -0
  575. package/dist/traffic/hooks/useTrafficFilter.d.ts +40 -0
  576. package/dist/traffic/hooks/useTrafficFilter.d.ts.map +1 -0
  577. package/dist/traffic/hooks/useTrafficFilter.js +33 -0
  578. package/dist/traffic/hooks/useTrafficFilter.js.map +1 -0
  579. package/dist/traffic/hooks/useTrafficGroups.d.ts +47 -0
  580. package/dist/traffic/hooks/useTrafficGroups.d.ts.map +1 -0
  581. package/dist/traffic/hooks/useTrafficGroups.js +73 -0
  582. package/dist/traffic/hooks/useTrafficGroups.js.map +1 -0
  583. package/dist/traffic/hooks/useTrafficMetrics.d.ts +66 -0
  584. package/dist/traffic/hooks/useTrafficMetrics.d.ts.map +1 -0
  585. package/dist/traffic/hooks/useTrafficMetrics.js +156 -0
  586. package/dist/traffic/hooks/useTrafficMetrics.js.map +1 -0
  587. package/dist/traffic/hooks/useTrafficMonitor.d.ts +56 -0
  588. package/dist/traffic/hooks/useTrafficMonitor.d.ts.map +1 -0
  589. package/dist/traffic/hooks/useTrafficMonitor.js +58 -0
  590. package/dist/traffic/hooks/useTrafficMonitor.js.map +1 -0
  591. package/dist/traffic/hooks/useTrafficStats.d.ts +32 -0
  592. package/dist/traffic/hooks/useTrafficStats.d.ts.map +1 -0
  593. package/dist/traffic/hooks/useTrafficStats.js +45 -0
  594. package/dist/traffic/hooks/useTrafficStats.js.map +1 -0
  595. package/dist/traffic/index.d.ts +4 -0
  596. package/dist/traffic/index.d.ts.map +1 -0
  597. package/dist/traffic/index.js +3 -0
  598. package/dist/traffic/index.js.map +1 -0
  599. package/dist/traffic/types.d.ts +72 -0
  600. package/dist/traffic/types.d.ts.map +1 -0
  601. package/dist/traffic/types.js +10 -0
  602. package/dist/traffic/types.js.map +1 -0
  603. package/package.json +127 -0
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Sign-in helper controller — the host side of `pyric/auth`'s
3
+ * `AuthFlowResolver` seam.
4
+ *
5
+ * `pyric/auth` stays UI-free: `signInWithPopup` / `signInWithRedirect`
6
+ * delegate to a resolver. This controller IS that resolver's host
7
+ * implementation — it parks the SDK's promise, drives a host UI (an
8
+ * account picker + add-account form, e.g. `<AuthSignInHelper>`), and
9
+ * settles the promise when the user picks an identity, adds one, or
10
+ * cancels. React components stay thin presentational shells over this;
11
+ * all the settle/seed logic lives here so it's testable without a DOM.
12
+ *
13
+ * Faithful to the Firebase emulator: "add account" mints a sandbox
14
+ * identity with optional custom claims (the emulator's
15
+ * `customAttributes`), so a rule gated on `request.auth.token.<claim>`
16
+ * works against live sandbox traffic. Credential + token synthesis is
17
+ * backend-owned (`sandbox.createSignInCredential`) — this controller
18
+ * only drives the UI flow and settles the parked promise.
19
+ */
20
+ import { sandbox as authSandbox, } from 'pyric/auth';
21
+ export class AuthFlowController {
22
+ auth;
23
+ pending = null;
24
+ listeners = new Set();
25
+ /** Memoized {@link snapshot} result, invalidated by {@link emit}.
26
+ * `useSyncExternalStore` compares consecutive `getSnapshot()` results
27
+ * with `Object.is` — an uncached object here re-renders forever. */
28
+ cached = null;
29
+ constructor(auth) {
30
+ this.auth = auth;
31
+ }
32
+ /** Wire this controller's resolver into the auth handle. Paired with
33
+ * {@link uninstall} for use in a React effect (install in the body,
34
+ * uninstall in the cleanup) — StrictMode-safe. */
35
+ install() {
36
+ authSandbox.setAuthFlowResolver(this.auth, this.resolver());
37
+ }
38
+ uninstall() {
39
+ authSandbox.setAuthFlowResolver(this.auth, null);
40
+ }
41
+ /** The resolver to hand to `sandbox.setAuthFlowResolver`. Popup and
42
+ * redirect share one implementation (the sandbox has no navigation). */
43
+ resolver() {
44
+ const open = (req) => new Promise((resolve, reject) => {
45
+ // One helper at a time: a new request supersedes any stale pending.
46
+ if (this.pending)
47
+ this.cancel();
48
+ this.pending = { req, resolve, reject };
49
+ this.emit();
50
+ });
51
+ return { openPopup: open, openRedirect: open };
52
+ }
53
+ // ─── React glue (subscribe + snapshot) ──────────────────────────────
54
+ subscribe(fn) {
55
+ this.listeners.add(fn);
56
+ return () => this.listeners.delete(fn);
57
+ }
58
+ snapshot() {
59
+ this.cached ??= {
60
+ request: this.pending?.req ?? null,
61
+ identities: authSandbox.listIdentities(this.auth),
62
+ };
63
+ return this.cached;
64
+ }
65
+ emit() {
66
+ this.cached = null;
67
+ for (const l of this.listeners)
68
+ l();
69
+ }
70
+ // ─── UI actions ─────────────────────────────────────────────────────
71
+ /** Pick an existing identity (by uid). The backend mints the credential
72
+ * (and records the provider on the identity). */
73
+ pick(uid) {
74
+ const pending = this.pending;
75
+ if (!pending)
76
+ return;
77
+ let cred;
78
+ try {
79
+ cred = authSandbox.createSignInCredential(this.auth, {
80
+ providerId: pending.req.providerId,
81
+ uid,
82
+ });
83
+ }
84
+ catch (e) {
85
+ this.take()?.reject(e);
86
+ return;
87
+ }
88
+ this.take()?.resolve(cred);
89
+ }
90
+ /** Add + sign in as a new identity. The backend creates the identity
91
+ * (so claims resolve in rules and it shows up in the picker next time)
92
+ * and mints the credential in one step.
93
+ *
94
+ * Credential creation happens BEFORE {@link take}'s emit: subscribers
95
+ * recompute the snapshot synchronously on emit, so creating after would
96
+ * publish a stale identity list (a `useSyncExternalStore` consumer
97
+ * would miss the new account until the next unrelated emit). */
98
+ add(spec) {
99
+ const pending = this.pending;
100
+ if (!pending)
101
+ return;
102
+ let cred;
103
+ try {
104
+ cred = authSandbox.createSignInCredential(this.auth, {
105
+ providerId: pending.req.providerId,
106
+ spec: {
107
+ email: spec.email,
108
+ displayName: spec.displayName,
109
+ customClaims: spec.customClaims,
110
+ },
111
+ });
112
+ }
113
+ catch (e) {
114
+ this.take()?.reject(e);
115
+ return;
116
+ }
117
+ this.take()?.resolve(cred);
118
+ }
119
+ /** Dismiss — rejects with the faithful `auth/popup-closed-by-user`. */
120
+ cancel() {
121
+ const p = this.take();
122
+ if (!p)
123
+ return;
124
+ p.reject(authError('auth/popup-closed-by-user', 'The popup has been closed by the user before finalizing the operation.'));
125
+ }
126
+ take() {
127
+ const p = this.pending;
128
+ this.pending = null;
129
+ this.emit();
130
+ return p;
131
+ }
132
+ }
133
+ function authError(code, message) {
134
+ const e = new Error(message);
135
+ e.name = 'FirebaseError';
136
+ e.code = code;
137
+ return e;
138
+ }
139
+ //# sourceMappingURL=controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/auth/controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { useAuthFlowHelper, type UseAuthFlowHelperResult, } from './useAuthFlowHelper.js';
2
+ export { useAuthUsers, type UseAuthUsersResult, } from './useAuthUsers.js';
3
+ export { useAuthProviderConfig, type AuthProviderConfigEntry, type UseAuthProviderConfigResult, } from './useAuthProviderConfig.js';
4
+ export { useAuthUserEditor, type UseAuthUserEditorOptions, type UseAuthUserEditorResult, } from './useAuthUserEditor.js';
5
+ export { authUserEditorReducer, initAuthUserEditorState, fieldsFromRecord, validateAuthUserFields, toCreateRequest, toUpdateRequest, type AuthUserEditorAction, type AuthUserEditorErrors, type AuthUserEditorFields, type AuthUserEditorState, } from '../reducers/userEditor.js';
6
+ export { AuthFlowController, type HelperState, type NewIdentitySpec, type SandboxIdentity, } from '../controller.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/auth/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,YAAY,EACZ,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,qBAAqB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,GACjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { useAuthFlowHelper, } from './useAuthFlowHelper.js';
2
+ export { useAuthUsers, } from './useAuthUsers.js';
3
+ export { useAuthProviderConfig, } from './useAuthProviderConfig.js';
4
+ export { useAuthUserEditor, } from './useAuthUserEditor.js';
5
+ export { authUserEditorReducer, initAuthUserEditorState, fieldsFromRecord, validateAuthUserFields, toCreateRequest, toUpdateRequest, } from '../reducers/userEditor.js';
6
+ export { AuthFlowController, } from '../controller.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,GAElB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,YAAY,GAEb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,qBAAqB,GAGtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,iBAAiB,GAGlB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,eAAe,GAKhB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,kBAAkB,GAInB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { Auth } from 'pyric/auth';
2
+ import { type HelperState, type NewIdentitySpec } from '../controller.js';
3
+ export interface UseAuthFlowHelperResult {
4
+ /** Render snapshot: the in-flight request (or null) + pickable identities. */
5
+ state: HelperState;
6
+ /** Settle the flow with an existing identity (by uid). */
7
+ pick: (uid: string) => void;
8
+ /** Create + sign in as a new identity (seeds it for next time). */
9
+ add: (spec: NewIdentitySpec) => void;
10
+ /** Dismiss — rejects the app's sign-in promise with
11
+ * `auth/popup-closed-by-user` (faithful to `firebase/auth`). */
12
+ cancel: () => void;
13
+ }
14
+ /**
15
+ * Emulator-style sign-in helper for a sandbox `Auth` handle.
16
+ *
17
+ * Installs an {@link AuthFlowController} as the handle's
18
+ * `AuthFlowResolver` for the lifetime of the calling component — the
19
+ * analog of browser `getAuth` wiring `browserPopupRedirectResolver`.
20
+ * While mounted, any `signInWithPopup` / `signInWithRedirect` call made
21
+ * against `auth` parks on `state.request`; render an account-picker UI
22
+ * (e.g. `<AuthSignInHelper>`) from `state` and settle with
23
+ * `pick` / `add` / `cancel`.
24
+ *
25
+ * Install/uninstall is a paired effect, so the StrictMode double-mount
26
+ * installs and cleanly uninstalls. Sandbox-only: the controller throws
27
+ * `failed-precondition` if `auth` is prod-backed.
28
+ */
29
+ export declare function useAuthFlowHelper(auth: Auth): UseAuthFlowHelperResult;
30
+ //# sourceMappingURL=useAuthFlowHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuthFlowHelper.d.ts","sourceRoot":"","sources":["../../../src/auth/hooks/useAuthFlowHelper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,uBAAuB;IACtC,8EAA8E;IAC9E,KAAK,EAAE,WAAW,CAAC;IACnB,0DAA0D;IAC1D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,mEAAmE;IACnE,GAAG,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACrC;qEACiE;IACjE,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,uBAAuB,CAmBrE"}
@@ -0,0 +1,30 @@
1
+ import { useCallback, useEffect, useMemo, useSyncExternalStore } from 'react';
2
+ import { AuthFlowController, } from '../controller.js';
3
+ /**
4
+ * Emulator-style sign-in helper for a sandbox `Auth` handle.
5
+ *
6
+ * Installs an {@link AuthFlowController} as the handle's
7
+ * `AuthFlowResolver` for the lifetime of the calling component — the
8
+ * analog of browser `getAuth` wiring `browserPopupRedirectResolver`.
9
+ * While mounted, any `signInWithPopup` / `signInWithRedirect` call made
10
+ * against `auth` parks on `state.request`; render an account-picker UI
11
+ * (e.g. `<AuthSignInHelper>`) from `state` and settle with
12
+ * `pick` / `add` / `cancel`.
13
+ *
14
+ * Install/uninstall is a paired effect, so the StrictMode double-mount
15
+ * installs and cleanly uninstalls. Sandbox-only: the controller throws
16
+ * `failed-precondition` if `auth` is prod-backed.
17
+ */
18
+ export function useAuthFlowHelper(auth) {
19
+ const controller = useMemo(() => new AuthFlowController(auth), [auth]);
20
+ useEffect(() => {
21
+ controller.install();
22
+ return () => controller.uninstall();
23
+ }, [controller]);
24
+ const state = useSyncExternalStore(useCallback((cb) => controller.subscribe(cb), [controller]), () => controller.snapshot(), () => controller.snapshot());
25
+ const pick = useCallback((uid) => controller.pick(uid), [controller]);
26
+ const add = useCallback((spec) => controller.add(spec), [controller]);
27
+ const cancel = useCallback(() => controller.cancel(), [controller]);
28
+ return { state, pick, add, cancel };
29
+ }
30
+ //# sourceMappingURL=useAuthFlowHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuthFlowHelper.js","sourceRoot":"","sources":["../../../src/auth/hooks/useAuthFlowHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAE9E,OAAO,EACL,kBAAkB,GAGnB,MAAM,kBAAkB,CAAC;AAc1B;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAU;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvE,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;IACtC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,MAAM,KAAK,GAAG,oBAAoB,CAChC,WAAW,CAAC,CAAC,EAAc,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EACvE,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,EAC3B,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAC5B,CAAC;IAEF,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9E,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,IAAqB,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACvF,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEpE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACtC,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { Auth } from 'pyric/auth';
2
+ /** One provider's current enablement, as the hook exposes it. */
3
+ export interface AuthProviderConfigEntry {
4
+ providerId: string;
5
+ enabled: boolean;
6
+ }
7
+ export interface UseAuthProviderConfigResult {
8
+ /** Every provider this sandbox has an explicit enablement for. Unknown
9
+ * providers (never toggled) are simply absent — `isEnabled` treats an
10
+ * absent entry as enabled, matching the backend default. */
11
+ config: AuthProviderConfigEntry[];
12
+ isLoading: boolean;
13
+ error: Error | undefined;
14
+ /** Convenience lookup: `true` for a provider that's never been toggled. */
15
+ isEnabled: (providerId: string) => boolean;
16
+ /** Toggle a provider on/off. Sync (in-process) failures throw to the
17
+ * caller, same policy as `useAuthUsers`'s mutation callbacks; an ASYNC
18
+ * (worker-RPC) failure can't reach a sync caller, so it surfaces on the
19
+ * hook's `error` state instead — never an unhandled rejection. */
20
+ setEnabled: (providerId: string, enabled: boolean) => void;
21
+ /** Re-read manually. Rarely needed — every mutation (this hook's own
22
+ * `setEnabled`, another handle, the agent) already triggers the
23
+ * subscription re-list. */
24
+ refresh: () => void;
25
+ }
26
+ /**
27
+ * Live sign-in provider config view over a sandbox `Auth` handle:
28
+ * `sandbox.getAuthProviderConfig` + `sandbox.subscribeAuthProviderConfig` +
29
+ * `sandbox.setAuthProviderConfig`. Mirrors `useAuthUsers`'s shape exactly
30
+ * (coarse "something changed, re-list" subscription; sync in-process,
31
+ * tolerates a promise over the SharedWorker client).
32
+ *
33
+ * Sandbox-only: throws `failed-precondition` on a prod-backed handle (the
34
+ * hook surfaces that via `error`, same as `useAuthUsers`).
35
+ */
36
+ export declare function useAuthProviderConfig(auth: Auth): UseAuthProviderConfigResult;
37
+ //# sourceMappingURL=useAuthProviderConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuthProviderConfig.d.ts","sourceRoot":"","sources":["../../../src/auth/hooks/useAuthProviderConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,iEAAiE;AACjE,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C;;iEAE6D;IAC7D,MAAM,EAAE,uBAAuB,EAAE,CAAC;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,2EAA2E;IAC3E,SAAS,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C;;;uEAGmE;IACnE,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3D;;gCAE4B;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,2BAA2B,CAkG7E"}
@@ -0,0 +1,98 @@
1
+ import { useCallback, useEffect, useState } from 'react';
2
+ import { useAuthApi } from '../authApi.js';
3
+ /**
4
+ * Live sign-in provider config view over a sandbox `Auth` handle:
5
+ * `sandbox.getAuthProviderConfig` + `sandbox.subscribeAuthProviderConfig` +
6
+ * `sandbox.setAuthProviderConfig`. Mirrors `useAuthUsers`'s shape exactly
7
+ * (coarse "something changed, re-list" subscription; sync in-process,
8
+ * tolerates a promise over the SharedWorker client).
9
+ *
10
+ * Sandbox-only: throws `failed-precondition` on a prod-backed handle (the
11
+ * hook surfaces that via `error`, same as `useAuthUsers`).
12
+ */
13
+ export function useAuthProviderConfig(auth) {
14
+ const { getAuthProviderConfig, setAuthProviderConfig: apiSetAuthProviderConfig, subscribeAuthProviderConfig, } = useAuthApi();
15
+ const [config, setConfig] = useState([]);
16
+ const [isLoading, setIsLoading] = useState(true);
17
+ const [error, setError] = useState(undefined);
18
+ useEffect(() => {
19
+ let cancelled = false;
20
+ setIsLoading(true);
21
+ setError(undefined);
22
+ const apply = (c) => {
23
+ if (cancelled)
24
+ return;
25
+ setConfig(c);
26
+ setIsLoading(false);
27
+ };
28
+ const applyErr = (e) => {
29
+ if (cancelled)
30
+ return;
31
+ setConfig([]);
32
+ setError(e instanceof Error ? e : new Error(String(e)));
33
+ setIsLoading(false);
34
+ };
35
+ // `getAuthProviderConfig` is SYNC in-process, ASYNC (RPC) over the worker
36
+ // — same thenable-tolerant branch `useAuthUsers` uses for `listUsers`.
37
+ const relist = () => {
38
+ try {
39
+ const r = getAuthProviderConfig(auth);
40
+ if (r && typeof r.then === 'function') {
41
+ r.then(apply).catch(applyErr);
42
+ }
43
+ else {
44
+ apply(r);
45
+ }
46
+ }
47
+ catch (e) {
48
+ applyErr(e);
49
+ }
50
+ };
51
+ let unsub;
52
+ try {
53
+ relist();
54
+ unsub = subscribeAuthProviderConfig(auth, relist);
55
+ }
56
+ catch (e) {
57
+ applyErr(e);
58
+ }
59
+ return () => {
60
+ cancelled = true;
61
+ unsub?.();
62
+ };
63
+ }, [auth, getAuthProviderConfig, subscribeAuthProviderConfig]);
64
+ const isEnabled = useCallback((providerId) => config.find((c) => c.providerId === providerId)?.enabled ?? true, [config]);
65
+ const toError = (e) => (e instanceof Error ? e : new Error(String(e)));
66
+ const setEnabled = useCallback((providerId, enabled) => {
67
+ // Over the worker this is an RPC promise — a fire-and-forget caller
68
+ // would otherwise leave a rejection unhandled and the toggle silently
69
+ // dead. Route async failures into the hook's error state; sync throws
70
+ // still propagate (in-process policy, matching useAuthUsers).
71
+ const r = apiSetAuthProviderConfig(auth, providerId, enabled);
72
+ if (r && typeof r.then === 'function') {
73
+ r.catch((e) => setError(toError(e)));
74
+ }
75
+ }, [auth, apiSetAuthProviderConfig]);
76
+ const refresh = useCallback(() => {
77
+ try {
78
+ const r = getAuthProviderConfig(auth);
79
+ if (r && typeof r.then === 'function') {
80
+ void r
81
+ .then((c) => {
82
+ setConfig(c);
83
+ setError(undefined);
84
+ })
85
+ .catch((e) => setError(toError(e)));
86
+ }
87
+ else {
88
+ setConfig(r);
89
+ setError(undefined);
90
+ }
91
+ }
92
+ catch (e) {
93
+ setError(toError(e));
94
+ }
95
+ }, [auth, getAuthProviderConfig]);
96
+ return { config, isLoading, error, isEnabled, setEnabled, refresh };
97
+ }
98
+ //# sourceMappingURL=useAuthProviderConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuthProviderConfig.js","sourceRoot":"","sources":["../../../src/auth/hooks/useAuthProviderConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { AuthUserRecord, CreateUserRequest, UpdateUserRequest } from 'pyric/auth';
2
+ import { type AuthUserEditorAction, type AuthUserEditorErrors, type AuthUserEditorFields } from '../reducers/userEditor.js';
3
+ export interface UseAuthUserEditorOptions {
4
+ /** Existing record to edit. Omit for create mode. */
5
+ initial?: AuthUserRecord;
6
+ }
7
+ export interface UseAuthUserEditorResult {
8
+ fields: AuthUserEditorFields;
9
+ /** Per-field validation messages (emulator-UI wording). Empty when valid. */
10
+ errors: AuthUserEditorErrors;
11
+ isDirty: boolean;
12
+ isValid: boolean;
13
+ setField: <K extends keyof AuthUserEditorFields>(field: K, value: AuthUserEditorFields[K]) => void;
14
+ /** Back to the initial snapshot. */
15
+ reset: () => void;
16
+ /** Full payload for `createUser` (every non-empty field). */
17
+ toCreateRequest: () => CreateUserRequest;
18
+ /** Delta payload for `updateUser` (only changed fields). */
19
+ toUpdateRequest: () => UpdateUserRequest;
20
+ /** Raw reducer access for advanced consumers. */
21
+ dispatch: (action: AuthUserEditorAction) => void;
22
+ }
23
+ /**
24
+ * Headless add/edit-user state machine (reducer-based, like
25
+ * `useDocumentEditor`): field edits, claims-JSON validation with
26
+ * emulator-grade messages, dirtiness vs the initial record, and payload
27
+ * builders for `useAuthUsers`' `createUser` / `updateUser`.
28
+ */
29
+ export declare function useAuthUserEditor(options?: UseAuthUserEditorOptions): UseAuthUserEditorResult;
30
+ //# sourceMappingURL=useAuthUserEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuthUserEditor.d.ts","sourceRoot":"","sources":["../../../src/auth/hooks/useAuthUserEditor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,EAOL,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,wBAAwB;IACvC,qDAAqD;IACrD,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,6EAA6E;IAC7E,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAC7C,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAC3B,IAAI,CAAC;IACV,oCAAoC;IACpC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,6DAA6D;IAC7D,eAAe,EAAE,MAAM,iBAAiB,CAAC;IACzC,4DAA4D;IAC5D,eAAe,EAAE,MAAM,iBAAiB,CAAC;IACzC,iDAAiD;IACjD,QAAQ,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAClD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,wBAA6B,GACrC,uBAAuB,CA4BzB"}
@@ -0,0 +1,27 @@
1
+ import { useCallback, useMemo, useReducer } from 'react';
2
+ import { authUserEditorReducer, initAuthUserEditorState, isDirty as computeDirty, toCreateRequest, toUpdateRequest, validateAuthUserFields, } from '../reducers/userEditor.js';
3
+ /**
4
+ * Headless add/edit-user state machine (reducer-based, like
5
+ * `useDocumentEditor`): field edits, claims-JSON validation with
6
+ * emulator-grade messages, dirtiness vs the initial record, and payload
7
+ * builders for `useAuthUsers`' `createUser` / `updateUser`.
8
+ */
9
+ export function useAuthUserEditor(options = {}) {
10
+ const [state, dispatch] = useReducer(authUserEditorReducer, options.initial, initAuthUserEditorState);
11
+ const errors = useMemo(() => validateAuthUserFields(state.fields), [state.fields]);
12
+ const dirty = useMemo(() => computeDirty(state), [state]);
13
+ const setField = useCallback((field, value) => dispatch({ type: 'setField', field, value }), []);
14
+ const reset = useCallback(() => dispatch({ type: 'reset' }), []);
15
+ return {
16
+ fields: state.fields,
17
+ errors,
18
+ isDirty: dirty,
19
+ isValid: Object.keys(errors).length === 0,
20
+ setField,
21
+ reset,
22
+ toCreateRequest: () => toCreateRequest(state),
23
+ toUpdateRequest: () => toUpdateRequest(state),
24
+ dispatch,
25
+ };
26
+ }
27
+ //# sourceMappingURL=useAuthUserEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuthUserEditor.js","sourceRoot":"","sources":["../../../src/auth/hooks/useAuthUserEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,OAAO,IAAI,YAAY,EACvB,eAAe,EACf,eAAe,EACf,sBAAsB,GAIvB,MAAM,2BAA2B,CAAC;AA2BnC;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAoC,EAAE;IAEtC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,UAAU,CAClC,qBAAqB,EACrB,OAAO,CAAC,OAAO,EACf,uBAAuB,CACxB,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAE1D,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAuC,KAAQ,EAAE,KAA8B,EAAE,EAAE,CACjF,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAC9C,EAAE,CACH,CAAC;IACF,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEjE,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM;QACN,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;QACzC,QAAQ;QACR,KAAK;QACL,eAAe,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;QAC7C,eAAe,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;QAC7C,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { Auth, AuthUserRecord, CreateUserRequest, UpdateUserRequest } from 'pyric/auth';
2
+ export interface UseAuthUsersResult {
3
+ /** Users matching {@link filter} (everyone when the filter is empty). */
4
+ users: AuthUserRecord[];
5
+ /** Unfiltered count: lets a list distinguish "no users at all" from
6
+ * "no results for this filter". */
7
+ totalCount: number;
8
+ isLoading: boolean;
9
+ error: Error | undefined;
10
+ /** Case-insensitive substring match over uid, email, display name and
11
+ * phone number (the emulator UI's search semantics). */
12
+ filter: string;
13
+ setFilter: (filter: string) => void;
14
+ createUser: (request: CreateUserRequest) => AuthUserRecord;
15
+ updateUser: (uid: string, update: UpdateUserRequest) => AuthUserRecord;
16
+ deleteUser: (uid: string) => void;
17
+ clearUsers: () => void;
18
+ /** Re-list manually. Rarely needed, every mutation (including ones made
19
+ * by the agent or the running app) already triggers `subscribeUsers`. */
20
+ refresh: () => void;
21
+ }
22
+ /**
23
+ * Live user-admin view over a sandbox `Auth` handle:
24
+ * `sandbox.listUsers` + `sandbox.subscribeUsers` + CRUD actions.
25
+ *
26
+ * The subscription is coarse ("something changed"): any user-DB
27
+ * mutation (from these actions, the running app's sign-ups, the
28
+ * agent's seeding) triggers a re-list, so the view stays live without
29
+ * per-row bookkeeping. Filtering is client-side (the sandbox is
30
+ * in-process; there is no server to push the query to).
31
+ *
32
+ * Mutation errors (e.g. `auth/uid-already-exists`) throw to the caller:
33
+ * handle them at the call site like the firestore hooks' `createDocument`.
34
+ * Sandbox-only: throws `failed-precondition` on a prod-backed handle (the
35
+ * hook surfaces that via `error`).
36
+ */
37
+ export declare function useAuthUsers(auth: Auth): UseAuthUsersResult;
38
+ //# sourceMappingURL=useAuthUsers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuthUsers.d.ts","sourceRoot":"","sources":["../../../src/auth/hooks/useAuthUsers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EACJ,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB;wCACoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB;6DACyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,UAAU,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,cAAc,CAAC;IAC3D,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,KAAK,cAAc,CAAC;IACvE,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB;8EAC0E;IAC1E,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAQD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,kBAAkB,CAsG3D"}
@@ -0,0 +1,111 @@
1
+ import { useCallback, useEffect, useMemo, useState } from 'react';
2
+ import { useAuthApi } from '../authApi.js';
3
+ function matches(user, needle) {
4
+ return [user.uid, user.email, user.displayName, user.phoneNumber].some((v) => v != null && v.toLowerCase().includes(needle));
5
+ }
6
+ /**
7
+ * Live user-admin view over a sandbox `Auth` handle:
8
+ * `sandbox.listUsers` + `sandbox.subscribeUsers` + CRUD actions.
9
+ *
10
+ * The subscription is coarse ("something changed"): any user-DB
11
+ * mutation (from these actions, the running app's sign-ups, the
12
+ * agent's seeding) triggers a re-list, so the view stays live without
13
+ * per-row bookkeeping. Filtering is client-side (the sandbox is
14
+ * in-process; there is no server to push the query to).
15
+ *
16
+ * Mutation errors (e.g. `auth/uid-already-exists`) throw to the caller:
17
+ * handle them at the call site like the firestore hooks' `createDocument`.
18
+ * Sandbox-only: throws `failed-precondition` on a prod-backed handle (the
19
+ * hook surfaces that via `error`).
20
+ */
21
+ export function useAuthUsers(auth) {
22
+ // The sandbox auth ops, injected: in-process `pyric/auth` by default, or the
23
+ // SharedWorker client bundle when a consumer (Pyric Studio served mode) wraps
24
+ // the tree in an `AuthApiProvider`.
25
+ const { listUsers, subscribeUsers, createUser: apiCreateUser, updateUser: apiUpdateUser, deleteUser: apiDeleteUser, clearUsers: apiClearUsers, } = useAuthApi();
26
+ const [all, setAll] = useState([]);
27
+ const [isLoading, setIsLoading] = useState(true);
28
+ const [error, setError] = useState(undefined);
29
+ const [filter, setFilter] = useState('');
30
+ useEffect(() => {
31
+ let cancelled = false;
32
+ setIsLoading(true);
33
+ setError(undefined);
34
+ const applyUsers = (u) => {
35
+ if (cancelled)
36
+ return;
37
+ setAll(u);
38
+ setIsLoading(false);
39
+ };
40
+ const applyErr = (e) => {
41
+ if (cancelled)
42
+ return;
43
+ setAll([]);
44
+ setError(e instanceof Error ? e : new Error(String(e)));
45
+ setIsLoading(false);
46
+ };
47
+ // `listUsers` is SYNC in-process (apply immediately, preserving the sync
48
+ // contract existing consumers + tests rely on) but ASYNC over the worker (an
49
+ // RPC), so branch on a thenable. The subscription is coarse: re-list on any
50
+ // change.
51
+ const relist = () => {
52
+ try {
53
+ const r = listUsers(auth);
54
+ if (r && typeof r.then === 'function') {
55
+ r.then(applyUsers).catch(applyErr);
56
+ }
57
+ else {
58
+ applyUsers(r);
59
+ }
60
+ }
61
+ catch (e) {
62
+ applyErr(e);
63
+ }
64
+ };
65
+ let unsub;
66
+ try {
67
+ relist();
68
+ unsub = subscribeUsers(auth, relist);
69
+ }
70
+ catch (e) {
71
+ applyErr(e);
72
+ }
73
+ return () => {
74
+ cancelled = true;
75
+ unsub?.();
76
+ };
77
+ }, [auth, listUsers, subscribeUsers]);
78
+ const users = useMemo(() => {
79
+ const needle = filter.trim().toLowerCase();
80
+ if (!needle)
81
+ return all;
82
+ return all.filter((u) => matches(u, needle));
83
+ }, [all, filter]);
84
+ const createUser = useCallback((request) => apiCreateUser(auth, request), [auth, apiCreateUser]);
85
+ const updateUser = useCallback((uid, update) => apiUpdateUser(auth, uid, update), [auth, apiUpdateUser]);
86
+ const deleteUser = useCallback((uid) => apiDeleteUser(auth, uid), [auth, apiDeleteUser]);
87
+ const clearUsers = useCallback(() => apiClearUsers(auth), [auth, apiClearUsers]);
88
+ const refresh = useCallback(() => {
89
+ const r = listUsers(auth);
90
+ if (r && typeof r.then === 'function') {
91
+ void r.then((u) => setAll(u)).catch(() => { });
92
+ }
93
+ else {
94
+ setAll(r);
95
+ }
96
+ }, [auth, listUsers]);
97
+ return {
98
+ users,
99
+ totalCount: all.length,
100
+ isLoading,
101
+ error,
102
+ filter,
103
+ setFilter,
104
+ createUser,
105
+ updateUser,
106
+ deleteUser,
107
+ clearUsers,
108
+ refresh,
109
+ };
110
+ }
111
+ //# sourceMappingURL=useAuthUsers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuthUsers.js","sourceRoot":"","sources":["../../../src/auth/hooks/useAuthUsers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export * from './hooks/index.js';
2
+ export { AuthApiProvider, useAuthApi, type AuthApi } from './authApi.js';
3
+ export { AuthSignInHelper, type AuthSignInHelperProps, } from './components/AuthSignInHelper.js';
4
+ export { AuthUserList, type AuthUserListProps, } from './components/AuthUserList.js';
5
+ export { AuthProviderToggles, DEFAULT_KNOWN_PROVIDER_IDS, type AuthProviderTogglesProps, } from './components/AuthProviderToggles.js';
6
+ export { AuthUserForm, type AuthUserFormField, type AuthUserFormFieldName, type AuthUserFormProps, type AuthUserFormSubmit, } from './components/AuthUserForm.js';
7
+ export { ClaimsField, type ClaimsFieldProps, } from './components/ClaimsField.js';
8
+ export { DeleteUserWithConfirm, type DeleteUserWithConfirmProps, ClearUsersWithConfirm, type ClearUsersWithConfirmProps, } from './components/confirmActions.js';
9
+ export { validateSerializedClaims, FORBIDDEN_CUSTOM_CLAIMS, CUSTOM_CLAIMS_MAX_LENGTH, type ClaimsValidationResult, } from './claims.js';
10
+ export { PROVIDER_LABELS, providerLabel } from './providers.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AAIjC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,KAAK,wBAAwB,GAC9B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,qBAAqB,EACrB,KAAK,0BAA0B,GAChC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}