@singi-labs/sifa-sdk 0.19.43 → 0.19.45

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 (579) hide show
  1. package/dist/atproto/index.js +9 -3
  2. package/dist/atproto/index.js.map +1 -1
  3. package/dist/badge/index.js +5 -141
  4. package/dist/badge/index.js.map +1 -1
  5. package/dist/cards/adult-content.js +14 -0
  6. package/dist/cards/adult-content.js.map +1 -0
  7. package/dist/cards/app-url-patterns.js +369 -0
  8. package/dist/cards/app-url-patterns.js.map +1 -0
  9. package/dist/cards/index.js +24 -0
  10. package/dist/cards/index.js.map +1 -0
  11. package/dist/cards/resolve-card-url.js +198 -0
  12. package/dist/cards/resolve-card-url.js.map +1 -0
  13. package/dist/cards/visibility.js +45 -0
  14. package/dist/cards/visibility.js.map +1 -0
  15. package/dist/flags/index.js +4 -3
  16. package/dist/flags/index.js.map +1 -1
  17. package/dist/format/collapse-contributors.js +19 -0
  18. package/dist/format/collapse-contributors.js.map +1 -0
  19. package/dist/format/company-name.js +61 -0
  20. package/dist/format/company-name.js.map +1 -0
  21. package/dist/format/compare-text.js +9 -0
  22. package/dist/format/compare-text.js.map +1 -0
  23. package/dist/format/doi.js +8 -0
  24. package/dist/format/doi.js.map +1 -0
  25. package/dist/format/embed.js +131 -0
  26. package/dist/format/embed.js.map +1 -0
  27. package/dist/format/endorsement-context.js +35 -0
  28. package/dist/format/endorsement-context.js.map +1 -0
  29. package/dist/format/format-display-url.js +42 -0
  30. package/dist/format/format-display-url.js.map +1 -0
  31. package/dist/format/format-duration.js +13 -0
  32. package/dist/format/format-duration.js.map +1 -0
  33. package/dist/format/format-time.js +30 -0
  34. package/dist/format/format-time.js.map +1 -0
  35. package/dist/format/handle-utils.js +19 -0
  36. package/dist/format/handle-utils.js.map +1 -0
  37. package/dist/format/index.js +100 -0
  38. package/dist/format/index.js.map +1 -0
  39. package/dist/format/location-segments.js +29 -0
  40. package/dist/format/location-segments.js.map +1 -0
  41. package/dist/format/location-utils.js +42 -0
  42. package/dist/format/location-utils.js.map +1 -0
  43. package/dist/format/meta-description.js +35 -0
  44. package/dist/format/meta-description.js.map +1 -0
  45. package/dist/format/normalize-company-key.js +12 -0
  46. package/dist/format/normalize-company-key.js.map +1 -0
  47. package/dist/format/normalize-legal-form.js +71 -0
  48. package/dist/format/normalize-legal-form.js.map +1 -0
  49. package/dist/format/pds-utils.js +73 -0
  50. package/dist/format/pds-utils.js.map +1 -0
  51. package/dist/format/sort-by-date.js +39 -0
  52. package/dist/format/sort-by-date.js.map +1 -0
  53. package/dist/format/summarize-deliveries.js +37 -0
  54. package/dist/format/summarize-deliveries.js.map +1 -0
  55. package/dist/format/talk-slug.js +21 -0
  56. package/dist/format/talk-slug.js.map +1 -0
  57. package/dist/format/text-sanitize.js +29 -0
  58. package/dist/format/text-sanitize.js.map +1 -0
  59. package/dist/format/text-truncate.js +14 -0
  60. package/dist/format/text-truncate.js.map +1 -0
  61. package/dist/format/time-utils.js +19 -0
  62. package/dist/format/time-utils.js.map +1 -0
  63. package/dist/format/timeline.js +29 -0
  64. package/dist/format/timeline.js.map +1 -0
  65. package/dist/format/wcag-contrast.js +34 -0
  66. package/dist/format/wcag-contrast.js.map +1 -0
  67. package/dist/import/index.js +22 -0
  68. package/dist/import/index.js.map +1 -0
  69. package/dist/import/presentation-csv.js +116 -0
  70. package/dist/import/presentation-csv.js.map +1 -0
  71. package/dist/index.cjs +8 -1
  72. package/dist/index.cjs.map +1 -1
  73. package/dist/index.d.cts +11 -1
  74. package/dist/index.d.ts +11 -1
  75. package/dist/index.js +675 -7080
  76. package/dist/index.js.map +1 -1
  77. package/dist/jev/index.js +18 -5
  78. package/dist/jev/index.js.map +1 -1
  79. package/dist/jsonld/index.cjs.map +1 -1
  80. package/dist/jsonld/index.js +30 -987
  81. package/dist/jsonld/index.js.map +1 -1
  82. package/dist/jsonld/profile.js +222 -0
  83. package/dist/jsonld/profile.js.map +1 -0
  84. package/dist/jsonld/terms.js +496 -0
  85. package/dist/jsonld/terms.js.map +1 -0
  86. package/dist/jsonld/url.js +17 -0
  87. package/dist/jsonld/url.js.map +1 -0
  88. package/dist/jsonld/works-graph.js +41 -0
  89. package/dist/jsonld/works-graph.js.map +1 -0
  90. package/dist/jsonld/works.js +178 -0
  91. package/dist/jsonld/works.js.map +1 -0
  92. package/dist/logic/actor-identity.js +8 -0
  93. package/dist/logic/actor-identity.js.map +1 -0
  94. package/dist/logic/agent-ref.js +24 -0
  95. package/dist/logic/agent-ref.js.map +1 -0
  96. package/dist/logic/company-page-indexable.js +23 -0
  97. package/dist/logic/company-page-indexable.js.map +1 -0
  98. package/dist/logic/date-lookahead.js +31 -0
  99. package/dist/logic/date-lookahead.js.map +1 -0
  100. package/dist/logic/domain-detect.js +43 -0
  101. package/dist/logic/domain-detect.js.map +1 -0
  102. package/dist/logic/entity-disambiguation.js +24 -0
  103. package/dist/logic/entity-disambiguation.js.map +1 -0
  104. package/dist/logic/entity-ref-anchor.js +33 -0
  105. package/dist/logic/entity-ref-anchor.js.map +1 -0
  106. package/dist/logic/index.js +91 -0
  107. package/dist/logic/index.js.map +1 -0
  108. package/dist/logic/org-floor.js +66 -0
  109. package/dist/logic/org-floor.js.map +1 -0
  110. package/dist/logic/primary-item.js +9 -0
  111. package/dist/logic/primary-item.js.map +1 -0
  112. package/dist/logic/primary-position.js +16 -0
  113. package/dist/logic/primary-position.js.map +1 -0
  114. package/dist/logic/profile-completeness.js +21 -0
  115. package/dist/logic/profile-completeness.js.map +1 -0
  116. package/dist/logic/profile-dimensions.js +50 -0
  117. package/dist/logic/profile-dimensions.js.map +1 -0
  118. package/dist/logic/profile-summary.js +23 -0
  119. package/dist/logic/profile-summary.js.map +1 -0
  120. package/dist/logic/pseudo-employer.js +34 -0
  121. package/dist/logic/pseudo-employer.js.map +1 -0
  122. package/dist/logic/recent-activity.js +10 -0
  123. package/dist/logic/recent-activity.js.map +1 -0
  124. package/dist/logic/self-app.js +10 -0
  125. package/dist/logic/self-app.js.map +1 -0
  126. package/dist/{org-BCrvebcf.d.ts → org-CxTEjjrm.d.ts} +1 -1
  127. package/dist/{org-settings-C73Sin5E.d.ts → org-settings-BShvhyFp.d.ts} +1 -1
  128. package/dist/profile/headline-role-dedupe.js +12 -0
  129. package/dist/profile/headline-role-dedupe.js.map +1 -0
  130. package/dist/profile/highlights.js +200 -0
  131. package/dist/profile/highlights.js.map +1 -0
  132. package/dist/profile/index.js +66 -0
  133. package/dist/profile/index.js.map +1 -0
  134. package/dist/profile/involvement-grouping.js +31 -0
  135. package/dist/profile/involvement-grouping.js.map +1 -0
  136. package/dist/profile/language-sort.js +24 -0
  137. package/dist/profile/language-sort.js.map +1 -0
  138. package/dist/profile/publication-versions.js +98 -0
  139. package/dist/profile/publication-versions.js.map +1 -0
  140. package/dist/profile/range-sort.js +14 -0
  141. package/dist/profile/range-sort.js.map +1 -0
  142. package/dist/profile/section-model.js +122 -0
  143. package/dist/profile/section-model.js.map +1 -0
  144. package/dist/profile/section-sorts.js +33 -0
  145. package/dist/profile/section-sorts.js.map +1 -0
  146. package/dist/publishers/index.js +16 -0
  147. package/dist/publishers/index.js.map +1 -0
  148. package/dist/publishers/registry.js +87 -0
  149. package/dist/publishers/registry.js.map +1 -0
  150. package/dist/publishing/index.js +46 -184
  151. package/dist/publishing/index.js.map +1 -1
  152. package/dist/publishing/linkblog.js +42 -0
  153. package/dist/publishing/linkblog.js.map +1 -0
  154. package/dist/publishing/registry.js +32 -0
  155. package/dist/publishing/registry.js.map +1 -0
  156. package/dist/publishing/schemas.js +74 -0
  157. package/dist/publishing/schemas.js.map +1 -0
  158. package/dist/publishing/types.js +32 -0
  159. package/dist/publishing/types.js.map +1 -0
  160. package/dist/query/client.js +119 -0
  161. package/dist/query/client.js.map +1 -0
  162. package/dist/query/config.js +23 -0
  163. package/dist/query/config.js.map +1 -0
  164. package/dist/query/fetchers/accounts.js +29 -0
  165. package/dist/query/fetchers/accounts.js.map +1 -0
  166. package/dist/query/fetchers/activity-items-hide.js +31 -0
  167. package/dist/query/fetchers/activity-items-hide.js.map +1 -0
  168. package/dist/query/fetchers/activity.js +61 -0
  169. package/dist/query/fetchers/activity.js.map +1 -0
  170. package/dist/query/fetchers/actor.js +30 -0
  171. package/dist/query/fetchers/actor.js.map +1 -0
  172. package/dist/query/fetchers/admin-feature-allowlists.js +41 -0
  173. package/dist/query/fetchers/admin-feature-allowlists.js.map +1 -0
  174. package/dist/query/fetchers/admin-review-queues.js +30 -0
  175. package/dist/query/fetchers/admin-review-queues.js.map +1 -0
  176. package/dist/query/fetchers/apps.js +31 -0
  177. package/dist/query/fetchers/apps.js.map +1 -0
  178. package/dist/query/fetchers/bsky-preferences.js +55 -0
  179. package/dist/query/fetchers/bsky-preferences.js.map +1 -0
  180. package/dist/query/fetchers/confirmations.js +55 -0
  181. package/dist/query/fetchers/confirmations.js.map +1 -0
  182. package/dist/query/fetchers/destructive.js +34 -0
  183. package/dist/query/fetchers/destructive.js.map +1 -0
  184. package/dist/query/fetchers/discovery.js +67 -0
  185. package/dist/query/fetchers/discovery.js.map +1 -0
  186. package/dist/query/fetchers/education.js +23 -0
  187. package/dist/query/fetchers/education.js.map +1 -0
  188. package/dist/query/fetchers/endorsement-inbox.js +36 -0
  189. package/dist/query/fetchers/endorsement-inbox.js.map +1 -0
  190. package/dist/query/fetchers/endorsement.js +23 -0
  191. package/dist/query/fetchers/endorsement.js.map +1 -0
  192. package/dist/query/fetchers/endorsements.js +20 -0
  193. package/dist/query/fetchers/endorsements.js.map +1 -0
  194. package/dist/query/fetchers/entities.js +65 -0
  195. package/dist/query/fetchers/entities.js.map +1 -0
  196. package/dist/query/fetchers/external-accounts.js +74 -0
  197. package/dist/query/fetchers/external-accounts.js.map +1 -0
  198. package/dist/query/fetchers/follow-extras.js +38 -0
  199. package/dist/query/fetchers/follow-extras.js.map +1 -0
  200. package/dist/query/fetchers/follow.js +105 -0
  201. package/dist/query/fetchers/follow.js.map +1 -0
  202. package/dist/query/fetchers/get-profile-view.js +21 -0
  203. package/dist/query/fetchers/get-profile-view.js.map +1 -0
  204. package/dist/query/fetchers/github-prs.js +45 -0
  205. package/dist/query/fetchers/github-prs.js.map +1 -0
  206. package/dist/query/fetchers/inbox.js +29 -0
  207. package/dist/query/fetchers/inbox.js.map +1 -0
  208. package/dist/query/fetchers/index.d.ts +2 -2
  209. package/dist/query/fetchers/index.js +360 -2045
  210. package/dist/query/fetchers/index.js.map +1 -1
  211. package/dist/query/fetchers/investments.js +18 -0
  212. package/dist/query/fetchers/investments.js.map +1 -0
  213. package/dist/query/fetchers/keytrace-claims.js +23 -0
  214. package/dist/query/fetchers/keytrace-claims.js.map +1 -0
  215. package/dist/query/fetchers/marque-domains.js +23 -0
  216. package/dist/query/fetchers/marque-domains.js.map +1 -0
  217. package/dist/query/fetchers/network-map.js +36 -0
  218. package/dist/query/fetchers/network-map.js.map +1 -0
  219. package/dist/query/fetchers/org.js +48 -0
  220. package/dist/query/fetchers/org.js.map +1 -0
  221. package/dist/query/fetchers/positions.js +77 -0
  222. package/dist/query/fetchers/positions.js.map +1 -0
  223. package/dist/query/fetchers/profile-completeness.js +45 -0
  224. package/dist/query/fetchers/profile-completeness.js.map +1 -0
  225. package/dist/query/fetchers/profile-items-hide.js +36 -0
  226. package/dist/query/fetchers/profile-items-hide.js.map +1 -0
  227. package/dist/query/fetchers/profile-locations.js +23 -0
  228. package/dist/query/fetchers/profile-locations.js.map +1 -0
  229. package/dist/query/fetchers/profile-mutations.js +82 -0
  230. package/dist/query/fetchers/profile-mutations.js.map +1 -0
  231. package/dist/query/fetchers/profile-summary.js +14 -0
  232. package/dist/query/fetchers/profile-summary.js.map +1 -0
  233. package/dist/query/fetchers/profile.js +31 -0
  234. package/dist/query/fetchers/profile.js.map +1 -0
  235. package/dist/query/fetchers/publications.js +66 -0
  236. package/dist/query/fetchers/publications.js.map +1 -0
  237. package/dist/query/fetchers/quoted-posts.js +40 -0
  238. package/dist/query/fetchers/quoted-posts.js.map +1 -0
  239. package/dist/query/fetchers/reactions.js +85 -0
  240. package/dist/query/fetchers/reactions.js.map +1 -0
  241. package/dist/query/fetchers/received-endorsements.js +20 -0
  242. package/dist/query/fetchers/received-endorsements.js.map +1 -0
  243. package/dist/query/fetchers/reciprocity.js +23 -0
  244. package/dist/query/fetchers/reciprocity.js.map +1 -0
  245. package/dist/query/fetchers/records.js +27 -0
  246. package/dist/query/fetchers/records.js.map +1 -0
  247. package/dist/query/fetchers/repo-inventory.js +23 -0
  248. package/dist/query/fetchers/repo-inventory.js.map +1 -0
  249. package/dist/query/fetchers/roadmap.js +73 -0
  250. package/dist/query/fetchers/roadmap.js.map +1 -0
  251. package/dist/query/fetchers/rpg.js +36 -0
  252. package/dist/query/fetchers/rpg.js.map +1 -0
  253. package/dist/query/fetchers/search.js +78 -0
  254. package/dist/query/fetchers/search.js.map +1 -0
  255. package/dist/query/fetchers/section-primary.js +23 -0
  256. package/dist/query/fetchers/section-primary.js.map +1 -0
  257. package/dist/query/fetchers/skills.js +30 -0
  258. package/dist/query/fetchers/skills.js.map +1 -0
  259. package/dist/query/fetchers/speakers.js +42 -0
  260. package/dist/query/fetchers/speakers.js.map +1 -0
  261. package/dist/query/fetchers/stats.js +16 -0
  262. package/dist/query/fetchers/stats.js.map +1 -0
  263. package/dist/query/fetchers/stream.js +30 -0
  264. package/dist/query/fetchers/stream.js.map +1 -0
  265. package/dist/query/fetchers/unlinked-positions.js +30 -0
  266. package/dist/query/fetchers/unlinked-positions.js.map +1 -0
  267. package/dist/query/hooks/index.d.ts +3 -3
  268. package/dist/query/hooks/index.js +283 -3555
  269. package/dist/query/hooks/index.js.map +1 -1
  270. package/dist/query/hooks/use-accounts.js +19 -0
  271. package/dist/query/hooks/use-accounts.js.map +1 -0
  272. package/dist/query/hooks/use-activity-items-hide.js +52 -0
  273. package/dist/query/hooks/use-activity-items-hide.js.map +1 -0
  274. package/dist/query/hooks/use-activity.js +44 -0
  275. package/dist/query/hooks/use-activity.js.map +1 -0
  276. package/dist/query/hooks/use-admin-review-queues.js +21 -0
  277. package/dist/query/hooks/use-admin-review-queues.js.map +1 -0
  278. package/dist/query/hooks/use-apps.js +31 -0
  279. package/dist/query/hooks/use-apps.js.map +1 -0
  280. package/dist/query/hooks/use-bsky-content-prefs.js +45 -0
  281. package/dist/query/hooks/use-bsky-content-prefs.js.map +1 -0
  282. package/dist/query/hooks/use-confirmations.js +121 -0
  283. package/dist/query/hooks/use-confirmations.js.map +1 -0
  284. package/dist/query/hooks/use-create-position.js +28 -0
  285. package/dist/query/hooks/use-create-position.js.map +1 -0
  286. package/dist/query/hooks/use-destructive.js +63 -0
  287. package/dist/query/hooks/use-destructive.js.map +1 -0
  288. package/dist/query/hooks/use-discovery.js +53 -0
  289. package/dist/query/hooks/use-discovery.js.map +1 -0
  290. package/dist/query/hooks/use-education-mutations.js +67 -0
  291. package/dist/query/hooks/use-education-mutations.js.map +1 -0
  292. package/dist/query/hooks/use-endorsement-inbox.js +80 -0
  293. package/dist/query/hooks/use-endorsement-inbox.js.map +1 -0
  294. package/dist/query/hooks/use-endorsement-mutations.js +33 -0
  295. package/dist/query/hooks/use-endorsement-mutations.js.map +1 -0
  296. package/dist/query/hooks/use-endorsement.js +20 -0
  297. package/dist/query/hooks/use-endorsement.js.map +1 -0
  298. package/dist/query/hooks/use-entity-search.js +73 -0
  299. package/dist/query/hooks/use-entity-search.js.map +1 -0
  300. package/dist/query/hooks/use-external-accounts.js +143 -0
  301. package/dist/query/hooks/use-external-accounts.js.map +1 -0
  302. package/dist/query/hooks/use-feature-allowlist.js +104 -0
  303. package/dist/query/hooks/use-feature-allowlist.js.map +1 -0
  304. package/dist/query/hooks/use-follow-extras.js +38 -0
  305. package/dist/query/hooks/use-follow-extras.js.map +1 -0
  306. package/dist/query/hooks/use-follow.js +113 -0
  307. package/dist/query/hooks/use-follow.js.map +1 -0
  308. package/dist/query/hooks/use-get-profile-view.js +20 -0
  309. package/dist/query/hooks/use-get-profile-view.js.map +1 -0
  310. package/dist/query/hooks/use-github-prs.js +21 -0
  311. package/dist/query/hooks/use-github-prs.js.map +1 -0
  312. package/dist/query/hooks/use-inbox.js +19 -0
  313. package/dist/query/hooks/use-inbox.js.map +1 -0
  314. package/dist/query/hooks/use-investment-mutations.js +65 -0
  315. package/dist/query/hooks/use-investment-mutations.js.map +1 -0
  316. package/dist/query/hooks/use-keytrace-claims.js +50 -0
  317. package/dist/query/hooks/use-keytrace-claims.js.map +1 -0
  318. package/dist/query/hooks/use-location-mutations.js +71 -0
  319. package/dist/query/hooks/use-location-mutations.js.map +1 -0
  320. package/dist/query/hooks/use-marque-domains.js +50 -0
  321. package/dist/query/hooks/use-marque-domains.js.map +1 -0
  322. package/dist/query/hooks/use-org-claim.js +29 -0
  323. package/dist/query/hooks/use-org-claim.js.map +1 -0
  324. package/dist/query/hooks/use-org-domains.js +28 -0
  325. package/dist/query/hooks/use-org-domains.js.map +1 -0
  326. package/dist/query/hooks/use-org-notification-emails.js +28 -0
  327. package/dist/query/hooks/use-org-notification-emails.js.map +1 -0
  328. package/dist/query/hooks/use-org-profile-settings.js +29 -0
  329. package/dist/query/hooks/use-org-profile-settings.js.map +1 -0
  330. package/dist/query/hooks/use-org-profile.js +21 -0
  331. package/dist/query/hooks/use-org-profile.js.map +1 -0
  332. package/dist/query/hooks/use-position-mutations.js +128 -0
  333. package/dist/query/hooks/use-position-mutations.js.map +1 -0
  334. package/dist/query/hooks/use-profile-completeness.js +21 -0
  335. package/dist/query/hooks/use-profile-completeness.js.map +1 -0
  336. package/dist/query/hooks/use-profile-items-hide.js +53 -0
  337. package/dist/query/hooks/use-profile-items-hide.js.map +1 -0
  338. package/dist/query/hooks/use-profile-mutations.js +143 -0
  339. package/dist/query/hooks/use-profile-mutations.js.map +1 -0
  340. package/dist/query/hooks/use-profile.js +30 -0
  341. package/dist/query/hooks/use-profile.js.map +1 -0
  342. package/dist/query/hooks/use-publication-mutations.js +90 -0
  343. package/dist/query/hooks/use-publication-mutations.js.map +1 -0
  344. package/dist/query/hooks/use-reaction-mutations.js +48 -0
  345. package/dist/query/hooks/use-reaction-mutations.js.map +1 -0
  346. package/dist/query/hooks/use-reactions.js +32 -0
  347. package/dist/query/hooks/use-reactions.js.map +1 -0
  348. package/dist/query/hooks/use-received-endorsements.js +23 -0
  349. package/dist/query/hooks/use-received-endorsements.js.map +1 -0
  350. package/dist/query/hooks/use-reciprocity.js +19 -0
  351. package/dist/query/hooks/use-reciprocity.js.map +1 -0
  352. package/dist/query/hooks/use-record-mutations.js +67 -0
  353. package/dist/query/hooks/use-record-mutations.js.map +1 -0
  354. package/dist/query/hooks/use-repo-inventory.js +43 -0
  355. package/dist/query/hooks/use-repo-inventory.js.map +1 -0
  356. package/dist/query/hooks/use-roadmap-mutations.js +51 -0
  357. package/dist/query/hooks/use-roadmap-mutations.js.map +1 -0
  358. package/dist/query/hooks/use-roadmap.js +31 -0
  359. package/dist/query/hooks/use-roadmap.js.map +1 -0
  360. package/dist/query/hooks/use-search.js +63 -0
  361. package/dist/query/hooks/use-search.js.map +1 -0
  362. package/dist/query/hooks/use-section-primary-mutations.js +53 -0
  363. package/dist/query/hooks/use-section-primary-mutations.js.map +1 -0
  364. package/dist/query/hooks/use-skill-mutations.js +91 -0
  365. package/dist/query/hooks/use-skill-mutations.js.map +1 -0
  366. package/dist/query/hooks/use-stats.js +19 -0
  367. package/dist/query/hooks/use-stats.js.map +1 -0
  368. package/dist/query/hooks/use-stream.js +20 -0
  369. package/dist/query/hooks/use-stream.js.map +1 -0
  370. package/dist/query/hooks/use-unlinked-positions.js +45 -0
  371. package/dist/query/hooks/use-unlinked-positions.js.map +1 -0
  372. package/dist/query/index.d.ts +4 -4
  373. package/dist/query/index.js +685 -3744
  374. package/dist/query/index.js.map +1 -1
  375. package/dist/query/keys.js +138 -0
  376. package/dist/query/keys.js.map +1 -0
  377. package/dist/repo/groups.js +81 -0
  378. package/dist/repo/groups.js.map +1 -0
  379. package/dist/repo/index.js +9 -0
  380. package/dist/repo/index.js.map +1 -0
  381. package/dist/repo/labels.js +121 -0
  382. package/dist/repo/labels.js.map +1 -0
  383. package/dist/repo/types.js +1 -0
  384. package/dist/repo/types.js.map +1 -0
  385. package/dist/resume/index.js +5 -179
  386. package/dist/resume/index.js.map +1 -1
  387. package/dist/resume/json-resume.js +153 -0
  388. package/dist/resume/json-resume.js.map +1 -0
  389. package/dist/roadmap/index.js +101 -0
  390. package/dist/roadmap/index.js.map +1 -0
  391. package/dist/rpg/catalog.js +101 -0
  392. package/dist/rpg/catalog.js.map +1 -0
  393. package/dist/rpg/index.js +13 -116
  394. package/dist/rpg/index.js.map +1 -1
  395. package/dist/rpg/unlocks.js +21 -0
  396. package/dist/rpg/unlocks.js.map +1 -0
  397. package/dist/schemas/blob-ref.js +12 -0
  398. package/dist/schemas/blob-ref.js.map +1 -0
  399. package/dist/schemas/confirmation.js +23 -0
  400. package/dist/schemas/confirmation.js.map +1 -0
  401. package/dist/schemas/endorsement-confirmation.js +18 -0
  402. package/dist/schemas/endorsement-confirmation.js.map +1 -0
  403. package/dist/schemas/endorsement.js +19 -0
  404. package/dist/schemas/endorsement.js.map +1 -0
  405. package/dist/schemas/entity.js +74 -0
  406. package/dist/schemas/entity.js.map +1 -0
  407. package/dist/schemas/feed.js +73 -0
  408. package/dist/schemas/feed.js.map +1 -0
  409. package/dist/schemas/follow-profile.js +32 -0
  410. package/dist/schemas/follow-profile.js.map +1 -0
  411. package/dist/schemas/graph-follow.js +19 -0
  412. package/dist/schemas/graph-follow.js.map +1 -0
  413. package/dist/schemas/index.js +164 -629
  414. package/dist/schemas/index.js.map +1 -1
  415. package/dist/schemas/org-employment-attestation.js +28 -0
  416. package/dist/schemas/org-employment-attestation.js.map +1 -0
  417. package/dist/schemas/org-profile.js +64 -0
  418. package/dist/schemas/org-profile.js.map +1 -0
  419. package/dist/schemas/profile-certification.js +28 -0
  420. package/dist/schemas/profile-certification.js.map +1 -0
  421. package/dist/schemas/profile-course.js +32 -0
  422. package/dist/schemas/profile-course.js.map +1 -0
  423. package/dist/schemas/profile-education.js +33 -0
  424. package/dist/schemas/profile-education.js.map +1 -0
  425. package/dist/schemas/profile-external-account.js +15 -0
  426. package/dist/schemas/profile-external-account.js.map +1 -0
  427. package/dist/schemas/profile-honor.js +18 -0
  428. package/dist/schemas/profile-honor.js.map +1 -0
  429. package/dist/schemas/profile-investment.js +48 -0
  430. package/dist/schemas/profile-investment.js.map +1 -0
  431. package/dist/schemas/profile-involvement.js +47 -0
  432. package/dist/schemas/profile-involvement.js.map +1 -0
  433. package/dist/schemas/profile-language.js +12 -0
  434. package/dist/schemas/profile-language.js.map +1 -0
  435. package/dist/schemas/profile-position.js +42 -0
  436. package/dist/schemas/profile-position.js.map +1 -0
  437. package/dist/schemas/profile-presentation-delivery.js +38 -0
  438. package/dist/schemas/profile-presentation-delivery.js.map +1 -0
  439. package/dist/schemas/profile-presentation.js +36 -0
  440. package/dist/schemas/profile-presentation.js.map +1 -0
  441. package/dist/schemas/profile-project.js +48 -0
  442. package/dist/schemas/profile-project.js.map +1 -0
  443. package/dist/schemas/profile-publication.js +30 -0
  444. package/dist/schemas/profile-publication.js.map +1 -0
  445. package/dist/schemas/profile-self.js +22 -0
  446. package/dist/schemas/profile-self.js.map +1 -0
  447. package/dist/schemas/profile-skill.js +13 -0
  448. package/dist/schemas/profile-skill.js.map +1 -0
  449. package/dist/schemas/profile-volunteering.js +20 -0
  450. package/dist/schemas/profile-volunteering.js.map +1 -0
  451. package/dist/schemas/shared.js +56 -0
  452. package/dist/schemas/shared.js.map +1 -0
  453. package/dist/schemas/write/certification.js +16 -0
  454. package/dist/schemas/write/certification.js.map +1 -0
  455. package/dist/schemas/write/course.js +36 -0
  456. package/dist/schemas/write/course.js.map +1 -0
  457. package/dist/schemas/write/education.js +18 -0
  458. package/dist/schemas/write/education.js.map +1 -0
  459. package/dist/schemas/write/external-account.js +13 -0
  460. package/dist/schemas/write/external-account.js.map +1 -0
  461. package/dist/schemas/write/honor.js +14 -0
  462. package/dist/schemas/write/honor.js.map +1 -0
  463. package/dist/schemas/write/index.d.ts +1 -1
  464. package/dist/schemas/write/index.js +89 -593
  465. package/dist/schemas/write/index.js.map +1 -1
  466. package/dist/schemas/write/investment.js +32 -0
  467. package/dist/schemas/write/investment.js.map +1 -0
  468. package/dist/schemas/write/involvement.js +34 -0
  469. package/dist/schemas/write/involvement.js.map +1 -0
  470. package/dist/schemas/write/language.js +10 -0
  471. package/dist/schemas/write/language.js.map +1 -0
  472. package/dist/schemas/write/org-claim.js +56 -0
  473. package/dist/schemas/write/org-claim.js.map +1 -0
  474. package/dist/schemas/write/org-employment-attestation.js +19 -0
  475. package/dist/schemas/write/org-employment-attestation.js.map +1 -0
  476. package/dist/schemas/write/org-profile.js +54 -0
  477. package/dist/schemas/write/org-profile.js.map +1 -0
  478. package/dist/schemas/write/org-settings.js +81 -0
  479. package/dist/schemas/write/org-settings.js.map +1 -0
  480. package/dist/schemas/write/position.js +24 -0
  481. package/dist/schemas/write/position.js.map +1 -0
  482. package/dist/schemas/write/presentation-delivery.js +34 -0
  483. package/dist/schemas/write/presentation-delivery.js.map +1 -0
  484. package/dist/schemas/write/presentation.js +23 -0
  485. package/dist/schemas/write/presentation.js.map +1 -0
  486. package/dist/schemas/write/profile-location.js +21 -0
  487. package/dist/schemas/write/profile-location.js.map +1 -0
  488. package/dist/schemas/write/profile-self.js +27 -0
  489. package/dist/schemas/write/profile-self.js.map +1 -0
  490. package/dist/schemas/write/project.js +27 -0
  491. package/dist/schemas/write/project.js.map +1 -0
  492. package/dist/schemas/write/publication.js +41 -0
  493. package/dist/schemas/write/publication.js.map +1 -0
  494. package/dist/schemas/write/shared.js +96 -0
  495. package/dist/schemas/write/shared.js.map +1 -0
  496. package/dist/schemas/write/skill.js +18 -0
  497. package/dist/schemas/write/skill.js.map +1 -0
  498. package/dist/schemas/write/volunteering.js +16 -0
  499. package/dist/schemas/write/volunteering.js.map +1 -0
  500. package/dist/stream/activity-item.js +1 -0
  501. package/dist/stream/activity-item.js.map +1 -0
  502. package/dist/stream/index.js +49 -0
  503. package/dist/stream/index.js.map +1 -0
  504. package/dist/stream/stream-card-vm-schema.js +265 -0
  505. package/dist/stream/stream-card-vm-schema.js.map +1 -0
  506. package/dist/stream/stream-card-vm.js +1 -0
  507. package/dist/stream/stream-card-vm.js.map +1 -0
  508. package/dist/stream/to-stream-card-vm.js +793 -0
  509. package/dist/stream/to-stream-card-vm.js.map +1 -0
  510. package/dist/stream/two-tier.js +30 -0
  511. package/dist/stream/two-tier.js.map +1 -0
  512. package/dist/stream/verbs.js +120 -0
  513. package/dist/stream/verbs.js.map +1 -0
  514. package/dist/taxonomy/activity-tiers.js +956 -0
  515. package/dist/taxonomy/activity-tiers.js.map +1 -0
  516. package/dist/taxonomy/app-categories.js +42 -0
  517. package/dist/taxonomy/app-categories.js.map +1 -0
  518. package/dist/taxonomy/app-category-map.js +166 -0
  519. package/dist/taxonomy/app-category-map.js.map +1 -0
  520. package/dist/taxonomy/artifact-link-kind.js +29 -0
  521. package/dist/taxonomy/artifact-link-kind.js.map +1 -0
  522. package/dist/taxonomy/calendar-event.js +28 -0
  523. package/dist/taxonomy/calendar-event.js.map +1 -0
  524. package/dist/taxonomy/continents.js +215 -0
  525. package/dist/taxonomy/continents.js.map +1 -0
  526. package/dist/taxonomy/countries.js +203 -0
  527. package/dist/taxonomy/countries.js.map +1 -0
  528. package/dist/taxonomy/course-role.js +37 -0
  529. package/dist/taxonomy/course-role.js.map +1 -0
  530. package/dist/taxonomy/employment-type.js +82 -0
  531. package/dist/taxonomy/employment-type.js.map +1 -0
  532. package/dist/taxonomy/eqf-level.js +59 -0
  533. package/dist/taxonomy/eqf-level.js.map +1 -0
  534. package/dist/taxonomy/index.js +263 -0
  535. package/dist/taxonomy/index.js.map +1 -0
  536. package/dist/taxonomy/industry-taxonomy.js +281 -0
  537. package/dist/taxonomy/industry-taxonomy.js.map +1 -0
  538. package/dist/taxonomy/investment.js +54 -0
  539. package/dist/taxonomy/investment.js.map +1 -0
  540. package/dist/taxonomy/involvement-kind.js +30 -0
  541. package/dist/taxonomy/involvement-kind.js.map +1 -0
  542. package/dist/taxonomy/open-to.js +128 -0
  543. package/dist/taxonomy/open-to.js.map +1 -0
  544. package/dist/taxonomy/platforms.js +56 -0
  545. package/dist/taxonomy/platforms.js.map +1 -0
  546. package/dist/taxonomy/presentation-link-type.js +22 -0
  547. package/dist/taxonomy/presentation-link-type.js.map +1 -0
  548. package/dist/taxonomy/presentation-role.js +21 -0
  549. package/dist/taxonomy/presentation-role.js.map +1 -0
  550. package/dist/taxonomy/publication-type.js +54 -0
  551. package/dist/taxonomy/publication-type.js.map +1 -0
  552. package/dist/taxonomy/relational.js +25 -0
  553. package/dist/taxonomy/relational.js.map +1 -0
  554. package/dist/taxonomy/search-filter-defs.js +66 -0
  555. package/dist/taxonomy/search-filter-defs.js.map +1 -0
  556. package/dist/taxonomy/skill-categories.js +28 -0
  557. package/dist/taxonomy/skill-categories.js.map +1 -0
  558. package/dist/taxonomy/skill-display-groups.js +12 -0
  559. package/dist/taxonomy/skill-display-groups.js.map +1 -0
  560. package/dist/taxonomy/skill-grouping.js +90 -0
  561. package/dist/taxonomy/skill-grouping.js.map +1 -0
  562. package/dist/taxonomy/verification-providers.js +69 -0
  563. package/dist/taxonomy/verification-providers.js.map +1 -0
  564. package/dist/taxonomy/workplace-type.js +38 -0
  565. package/dist/taxonomy/workplace-type.js.map +1 -0
  566. package/dist/tokens/colors.js +11 -0
  567. package/dist/tokens/colors.js.map +1 -0
  568. package/dist/tokens/icons.js +15 -0
  569. package/dist/tokens/icons.js.map +1 -0
  570. package/dist/tokens/index.js +10 -39
  571. package/dist/tokens/index.js.map +1 -1
  572. package/dist/tokens/typography.js +23 -0
  573. package/dist/tokens/typography.js.map +1 -0
  574. package/dist/types/index.js +10 -0
  575. package/dist/types/index.js.map +1 -0
  576. package/dist/types/profile-view.js +1 -0
  577. package/dist/types/profile-view.js.map +1 -0
  578. package/dist/{use-org-notification-emails-0hjt-dEw.d.ts → use-org-notification-emails-CWWi1D8t.d.ts} +2 -2
  579. package/package.json +4 -3
@@ -0,0 +1,32 @@
1
+ "use client";
2
+
3
+ // src/query/hooks/use-reactions.ts
4
+ import { useQuery } from "@tanstack/react-query";
5
+ import { useSifaConfig } from "../config.js";
6
+ import {
7
+ checkAppAccount,
8
+ fetchReactionStatus
9
+ } from "../fetchers/reactions.js";
10
+ import { sifaQueryKeys } from "../keys.js";
11
+ function useReactionStatus(uris, options) {
12
+ const config = useSifaConfig();
13
+ return useQuery({
14
+ queryKey: sifaQueryKeys.reactions.status(uris),
15
+ queryFn: () => fetchReactionStatus(config, uris),
16
+ ...options
17
+ });
18
+ }
19
+ function useAppAccountCheck(appId, options) {
20
+ const config = useSifaConfig();
21
+ return useQuery({
22
+ queryKey: sifaQueryKeys.reactions.accountCheck(appId ?? ""),
23
+ queryFn: () => checkAppAccount(config, appId ?? ""),
24
+ enabled: Boolean(appId) && (options?.enabled ?? true),
25
+ ...options
26
+ });
27
+ }
28
+ export {
29
+ useAppAccountCheck,
30
+ useReactionStatus
31
+ };
32
+ //# sourceMappingURL=use-reactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/query/hooks/use-reactions.ts"],"sourcesContent":["'use client';\n\nimport { useQuery, type UseQueryOptions } from '@tanstack/react-query';\n\nimport { useSifaConfig } from '../config.js';\nimport {\n checkAppAccount,\n fetchReactionStatus,\n type AccountCheckResult,\n type ReactionStatus,\n} from '../fetchers/reactions.js';\nimport { sifaQueryKeys } from '../keys.js';\n\n/**\n * Batch-look up reaction status for multiple URIs. Skips the network call\n * when `uris` is empty.\n */\nexport function useReactionStatus(\n uris: string[],\n options?: Omit<\n UseQueryOptions<\n Record<string, ReactionStatus> | null,\n Error,\n Record<string, ReactionStatus> | null,\n ReturnType<typeof sifaQueryKeys.reactions.status>\n >,\n 'queryKey' | 'queryFn'\n >,\n) {\n const config = useSifaConfig();\n return useQuery({\n queryKey: sifaQueryKeys.reactions.status(uris),\n queryFn: () => fetchReactionStatus(config, uris),\n ...options,\n });\n}\n\n/** Check whether the authenticated viewer has an account on the given app. */\nexport function useAppAccountCheck(\n appId: string | undefined | null,\n options?: Omit<\n UseQueryOptions<\n AccountCheckResult | null,\n Error,\n AccountCheckResult | null,\n ReturnType<typeof sifaQueryKeys.reactions.accountCheck>\n >,\n 'queryKey' | 'queryFn'\n >,\n) {\n const config = useSifaConfig();\n return useQuery({\n queryKey: sifaQueryKeys.reactions.accountCheck(appId ?? ''),\n queryFn: () => checkAppAccount(config, appId ?? ''),\n enabled: Boolean(appId) && (options?.enabled ?? true),\n ...options,\n });\n}\n"],"mappings":";;;AAEA,SAAS,gBAAsC;AAE/C,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,OAGK;AACP,SAAS,qBAAqB;AAMvB,SAAS,kBACd,MACA,SASA;AACA,QAAM,SAAS,cAAc;AAC7B,SAAO,SAAS;AAAA,IACd,UAAU,cAAc,UAAU,OAAO,IAAI;AAAA,IAC7C,SAAS,MAAM,oBAAoB,QAAQ,IAAI;AAAA,IAC/C,GAAG;AAAA,EACL,CAAC;AACH;AAGO,SAAS,mBACd,OACA,SASA;AACA,QAAM,SAAS,cAAc;AAC7B,SAAO,SAAS;AAAA,IACd,UAAU,cAAc,UAAU,aAAa,SAAS,EAAE;AAAA,IAC1D,SAAS,MAAM,gBAAgB,QAAQ,SAAS,EAAE;AAAA,IAClD,SAAS,QAAQ,KAAK,MAAM,SAAS,WAAW;AAAA,IAChD,GAAG;AAAA,EACL,CAAC;AACH;","names":[]}
@@ -0,0 +1,23 @@
1
+ "use client";
2
+
3
+ // src/query/hooks/use-received-endorsements.ts
4
+ import { useQuery } from "@tanstack/react-query";
5
+ import { useSifaConfig } from "../config.js";
6
+ import {
7
+ fetchReceivedEndorsements
8
+ } from "../fetchers/received-endorsements.js";
9
+ import { sifaQueryKeys } from "../keys.js";
10
+ function useReceivedEndorsements(did, options) {
11
+ const config = useSifaConfig();
12
+ const { limit, ...queryOptions } = options ?? {};
13
+ return useQuery({
14
+ queryKey: sifaQueryKeys.endorsement.received(did ?? ""),
15
+ queryFn: () => fetchReceivedEndorsements(config, did ?? "", { limit }),
16
+ enabled: Boolean(did) && (queryOptions.enabled ?? true),
17
+ ...queryOptions
18
+ });
19
+ }
20
+ export {
21
+ useReceivedEndorsements
22
+ };
23
+ //# sourceMappingURL=use-received-endorsements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/query/hooks/use-received-endorsements.ts"],"sourcesContent":["'use client';\n\nimport { useQuery, type UseQueryOptions } from '@tanstack/react-query';\n\nimport { useSifaConfig } from '../config.js';\nimport {\n fetchReceivedEndorsements,\n type ReceivedEndorsementsPage,\n} from '../fetchers/received-endorsements.js';\nimport { sifaQueryKeys } from '../keys.js';\n\n/** Confirmed endorsements a DID has received, newest first. */\nexport function useReceivedEndorsements(\n did: string | undefined | null,\n options?: { limit?: number } & Omit<\n UseQueryOptions<\n ReceivedEndorsementsPage,\n Error,\n ReceivedEndorsementsPage,\n ReturnType<typeof sifaQueryKeys.endorsement.received>\n >,\n 'queryKey' | 'queryFn'\n >,\n) {\n const config = useSifaConfig();\n const { limit, ...queryOptions } = options ?? {};\n return useQuery({\n queryKey: sifaQueryKeys.endorsement.received(did ?? ''),\n queryFn: () => fetchReceivedEndorsements(config, did ?? '', { limit }),\n enabled: Boolean(did) && (queryOptions.enabled ?? true),\n ...queryOptions,\n });\n}\n"],"mappings":";;;AAEA,SAAS,gBAAsC;AAE/C,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,OAEK;AACP,SAAS,qBAAqB;AAGvB,SAAS,wBACd,KACA,SASA;AACA,QAAM,SAAS,cAAc;AAC7B,QAAM,EAAE,OAAO,GAAG,aAAa,IAAI,WAAW,CAAC;AAC/C,SAAO,SAAS;AAAA,IACd,UAAU,cAAc,YAAY,SAAS,OAAO,EAAE;AAAA,IACtD,SAAS,MAAM,0BAA0B,QAAQ,OAAO,IAAI,EAAE,MAAM,CAAC;AAAA,IACrE,SAAS,QAAQ,GAAG,MAAM,aAAa,WAAW;AAAA,IAClD,GAAG;AAAA,EACL,CAAC;AACH;","names":[]}
@@ -0,0 +1,19 @@
1
+ "use client";
2
+
3
+ // src/query/hooks/use-reciprocity.ts
4
+ import { useQuery } from "@tanstack/react-query";
5
+ import { useSifaConfig } from "../config.js";
6
+ import { fetchReciprocityCandidate } from "../fetchers/reciprocity.js";
7
+ import { sifaQueryKeys } from "../keys.js";
8
+ function useReciprocityCandidate(options) {
9
+ const config = useSifaConfig();
10
+ return useQuery({
11
+ queryKey: sifaQueryKeys.endorsement.reciprocity(),
12
+ queryFn: () => fetchReciprocityCandidate(config),
13
+ ...options
14
+ });
15
+ }
16
+ export {
17
+ useReciprocityCandidate
18
+ };
19
+ //# sourceMappingURL=use-reciprocity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/query/hooks/use-reciprocity.ts"],"sourcesContent":["'use client';\n\nimport { useQuery, type UseQueryOptions } from '@tanstack/react-query';\n\nimport { useSifaConfig } from '../config.js';\nimport { fetchReciprocityCandidate, type ReciprocityCandidate } from '../fetchers/reciprocity.js';\nimport { sifaQueryKeys } from '../keys.js';\n\n/**\n * Someone the signed-in user could endorse. `null` when there is nobody left.\n *\n * Session-scoped like the pending inbox: the AppView reads the viewer from the\n * session, so the key takes no DID. Invalidate it after dismissing to pull the\n * next person in without a reload.\n */\nexport function useReciprocityCandidate(\n options?: Omit<\n UseQueryOptions<\n ReciprocityCandidate | null,\n Error,\n ReciprocityCandidate | null,\n ReturnType<typeof sifaQueryKeys.endorsement.reciprocity>\n >,\n 'queryKey' | 'queryFn'\n >,\n) {\n const config = useSifaConfig();\n return useQuery({\n queryKey: sifaQueryKeys.endorsement.reciprocity(),\n queryFn: () => fetchReciprocityCandidate(config),\n ...options,\n });\n}\n"],"mappings":";;;AAEA,SAAS,gBAAsC;AAE/C,SAAS,qBAAqB;AAC9B,SAAS,iCAA4D;AACrE,SAAS,qBAAqB;AASvB,SAAS,wBACd,SASA;AACA,QAAM,SAAS,cAAc;AAC7B,SAAO,SAAS;AAAA,IACd,UAAU,cAAc,YAAY,YAAY;AAAA,IAChD,SAAS,MAAM,0BAA0B,MAAM;AAAA,IAC/C,GAAG;AAAA,EACL,CAAC;AACH;","names":[]}
@@ -0,0 +1,67 @@
1
+ "use client";
2
+
3
+ // src/query/hooks/use-record-mutations.ts
4
+ import { useMutation, useQueryClient } from "@tanstack/react-query";
5
+ import "../client.js";
6
+ import { useSifaConfig } from "../config.js";
7
+ import { createRecord, deleteRecord, updateRecord } from "../fetchers/records.js";
8
+ import { sifaQueryKeys } from "../keys.js";
9
+ async function invalidateProfile(queryClient, ownerHandleOrDid) {
10
+ await queryClient.invalidateQueries({
11
+ queryKey: sifaQueryKeys.profile.byHandle(ownerHandleOrDid)
12
+ });
13
+ }
14
+ function useCreateRecord(ownerHandleOrDid, options) {
15
+ const config = useSifaConfig();
16
+ const queryClient = useQueryClient();
17
+ return useMutation({
18
+ // Spread first: a consumer-supplied onSuccess would otherwise replace the
19
+ // handler below and silently drop cache invalidation (#453).
20
+ ...options,
21
+ mutationFn: ({ collection, data }) => createRecord(config, collection, data),
22
+ onSuccess: async (result, variables, onMutateResult, context) => {
23
+ if (result.success) {
24
+ await invalidateProfile(queryClient, ownerHandleOrDid);
25
+ }
26
+ await options?.onSuccess?.(result, variables, onMutateResult, context);
27
+ }
28
+ });
29
+ }
30
+ function useUpdateRecord(ownerHandleOrDid, options) {
31
+ const config = useSifaConfig();
32
+ const queryClient = useQueryClient();
33
+ return useMutation({
34
+ // Spread first: a consumer-supplied onSuccess would otherwise replace the
35
+ // handler below and silently drop cache invalidation (#453).
36
+ ...options,
37
+ mutationFn: ({ collection, rkey, data }) => updateRecord(config, collection, rkey, data),
38
+ onSuccess: async (result, variables, onMutateResult, context) => {
39
+ if (result.success) {
40
+ await invalidateProfile(queryClient, ownerHandleOrDid);
41
+ }
42
+ await options?.onSuccess?.(result, variables, onMutateResult, context);
43
+ }
44
+ });
45
+ }
46
+ function useDeleteRecord(ownerHandleOrDid, options) {
47
+ const config = useSifaConfig();
48
+ const queryClient = useQueryClient();
49
+ return useMutation({
50
+ // Spread first: a consumer-supplied onSuccess would otherwise replace the
51
+ // handler below and silently drop cache invalidation (#453).
52
+ ...options,
53
+ mutationFn: ({ collection, rkey }) => deleteRecord(config, collection, rkey),
54
+ onSuccess: async (result, variables, onMutateResult, context) => {
55
+ if (result.success) {
56
+ await invalidateProfile(queryClient, ownerHandleOrDid);
57
+ }
58
+ await options?.onSuccess?.(result, variables, onMutateResult, context);
59
+ }
60
+ });
61
+ }
62
+ export {
63
+ useCreateRecord,
64
+ useDeleteRecord,
65
+ useUpdateRecord
66
+ };
67
+ //# sourceMappingURL=use-record-mutations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/query/hooks/use-record-mutations.ts"],"sourcesContent":["'use client';\n\nimport { useMutation, useQueryClient, type UseMutationOptions } from '@tanstack/react-query';\n\nimport { type CreateResult, type WriteResult } from '../client.js';\nimport { useSifaConfig } from '../config.js';\nimport { createRecord, deleteRecord, updateRecord } from '../fetchers/records.js';\nimport { sifaQueryKeys } from '../keys.js';\n\nasync function invalidateProfile(\n queryClient: ReturnType<typeof useQueryClient>,\n ownerHandleOrDid: string,\n): Promise<void> {\n await queryClient.invalidateQueries({\n queryKey: sifaQueryKeys.profile.byHandle(ownerHandleOrDid),\n });\n}\n\n/** Variables for {@link useCreateRecord}. */\nexport interface CreateRecordVariables {\n collection: string;\n data: Record<string, unknown>;\n}\n\n/**\n * Generic record-create escape hatch for collections without a\n * dedicated section helper (certifications, projects, publications,\n * volunteering, honors, languages, courses). Prefer the typed helpers\n * when one exists for the section.\n */\nexport function useCreateRecord(\n ownerHandleOrDid: string,\n options?: Omit<UseMutationOptions<CreateResult, Error, CreateRecordVariables>, 'mutationFn'>,\n) {\n const config = useSifaConfig();\n const queryClient = useQueryClient();\n return useMutation({\n // Spread first: a consumer-supplied onSuccess would otherwise replace the\n // handler below and silently drop cache invalidation (#453).\n ...options,\n mutationFn: ({ collection, data }: CreateRecordVariables) =>\n createRecord(config, collection, data),\n onSuccess: async (result, variables, onMutateResult, context) => {\n if (result.success) {\n await invalidateProfile(queryClient, ownerHandleOrDid);\n }\n await options?.onSuccess?.(result, variables, onMutateResult, context);\n },\n });\n}\n\n/** Variables for {@link useUpdateRecord}. */\nexport interface UpdateRecordVariables {\n collection: string;\n rkey: string;\n data: Record<string, unknown>;\n}\n\n/** Generic record-update escape hatch. See {@link useCreateRecord}. */\nexport function useUpdateRecord(\n ownerHandleOrDid: string,\n options?: Omit<UseMutationOptions<WriteResult, Error, UpdateRecordVariables>, 'mutationFn'>,\n) {\n const config = useSifaConfig();\n const queryClient = useQueryClient();\n return useMutation({\n // Spread first: a consumer-supplied onSuccess would otherwise replace the\n // handler below and silently drop cache invalidation (#453).\n ...options,\n mutationFn: ({ collection, rkey, data }: UpdateRecordVariables) =>\n updateRecord(config, collection, rkey, data),\n onSuccess: async (result, variables, onMutateResult, context) => {\n if (result.success) {\n await invalidateProfile(queryClient, ownerHandleOrDid);\n }\n await options?.onSuccess?.(result, variables, onMutateResult, context);\n },\n });\n}\n\n/** Variables for {@link useDeleteRecord}. */\nexport interface DeleteRecordVariables {\n collection: string;\n rkey: string;\n}\n\n/** Generic record-delete escape hatch. See {@link useCreateRecord}. */\nexport function useDeleteRecord(\n ownerHandleOrDid: string,\n options?: Omit<UseMutationOptions<WriteResult, Error, DeleteRecordVariables>, 'mutationFn'>,\n) {\n const config = useSifaConfig();\n const queryClient = useQueryClient();\n return useMutation({\n // Spread first: a consumer-supplied onSuccess would otherwise replace the\n // handler below and silently drop cache invalidation (#453).\n ...options,\n mutationFn: ({ collection, rkey }: DeleteRecordVariables) =>\n deleteRecord(config, collection, rkey),\n onSuccess: async (result, variables, onMutateResult, context) => {\n if (result.success) {\n await invalidateProfile(queryClient, ownerHandleOrDid);\n }\n await options?.onSuccess?.(result, variables, onMutateResult, context);\n },\n });\n}\n"],"mappings":";;;AAEA,SAAS,aAAa,sBAA+C;AAErE,OAAoD;AACpD,SAAS,qBAAqB;AAC9B,SAAS,cAAc,cAAc,oBAAoB;AACzD,SAAS,qBAAqB;AAE9B,eAAe,kBACb,aACA,kBACe;AACf,QAAM,YAAY,kBAAkB;AAAA,IAClC,UAAU,cAAc,QAAQ,SAAS,gBAAgB;AAAA,EAC3D,CAAC;AACH;AAcO,SAAS,gBACd,kBACA,SACA;AACA,QAAM,SAAS,cAAc;AAC7B,QAAM,cAAc,eAAe;AACnC,SAAO,YAAY;AAAA;AAAA;AAAA,IAGjB,GAAG;AAAA,IACH,YAAY,CAAC,EAAE,YAAY,KAAK,MAC9B,aAAa,QAAQ,YAAY,IAAI;AAAA,IACvC,WAAW,OAAO,QAAQ,WAAW,gBAAgB,YAAY;AAC/D,UAAI,OAAO,SAAS;AAClB,cAAM,kBAAkB,aAAa,gBAAgB;AAAA,MACvD;AACA,YAAM,SAAS,YAAY,QAAQ,WAAW,gBAAgB,OAAO;AAAA,IACvE;AAAA,EACF,CAAC;AACH;AAUO,SAAS,gBACd,kBACA,SACA;AACA,QAAM,SAAS,cAAc;AAC7B,QAAM,cAAc,eAAe;AACnC,SAAO,YAAY;AAAA;AAAA;AAAA,IAGjB,GAAG;AAAA,IACH,YAAY,CAAC,EAAE,YAAY,MAAM,KAAK,MACpC,aAAa,QAAQ,YAAY,MAAM,IAAI;AAAA,IAC7C,WAAW,OAAO,QAAQ,WAAW,gBAAgB,YAAY;AAC/D,UAAI,OAAO,SAAS;AAClB,cAAM,kBAAkB,aAAa,gBAAgB;AAAA,MACvD;AACA,YAAM,SAAS,YAAY,QAAQ,WAAW,gBAAgB,OAAO;AAAA,IACvE;AAAA,EACF,CAAC;AACH;AASO,SAAS,gBACd,kBACA,SACA;AACA,QAAM,SAAS,cAAc;AAC7B,QAAM,cAAc,eAAe;AACnC,SAAO,YAAY;AAAA;AAAA;AAAA,IAGjB,GAAG;AAAA,IACH,YAAY,CAAC,EAAE,YAAY,KAAK,MAC9B,aAAa,QAAQ,YAAY,IAAI;AAAA,IACvC,WAAW,OAAO,QAAQ,WAAW,gBAAgB,YAAY;AAC/D,UAAI,OAAO,SAAS;AAClB,cAAM,kBAAkB,aAAa,gBAAgB;AAAA,MACvD;AACA,YAAM,SAAS,YAAY,QAAQ,WAAW,gBAAgB,OAAO;AAAA,IACvE;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -0,0 +1,43 @@
1
+ "use client";
2
+
3
+ // src/query/hooks/use-repo-inventory.ts
4
+ import {
5
+ useMutation,
6
+ useQuery,
7
+ useQueryClient
8
+ } from "@tanstack/react-query";
9
+ import { useSifaConfig } from "../config.js";
10
+ import {
11
+ deleteRepoRecords,
12
+ fetchRepoInventory
13
+ } from "../fetchers/repo-inventory.js";
14
+ import { sifaQueryKeys } from "../keys.js";
15
+ function useRepoInventory(options) {
16
+ const config = useSifaConfig();
17
+ return useQuery({
18
+ queryKey: sifaQueryKeys.repoInventory.list(),
19
+ queryFn: () => fetchRepoInventory(config),
20
+ staleTime: 0,
21
+ gcTime: 0,
22
+ ...options
23
+ });
24
+ }
25
+ function useDeleteRepoRecords(options) {
26
+ const config = useSifaConfig();
27
+ const queryClient = useQueryClient();
28
+ return useMutation({
29
+ // Spread first: a consumer-supplied handler would otherwise replace the
30
+ // one below and silently drop cache invalidation (#453).
31
+ ...options,
32
+ mutationFn: (input) => deleteRepoRecords(config, input),
33
+ onSuccess: async (result, variables, onMutateResult, context) => {
34
+ await queryClient.invalidateQueries({ queryKey: sifaQueryKeys.all() });
35
+ await options?.onSuccess?.(result, variables, onMutateResult, context);
36
+ }
37
+ });
38
+ }
39
+ export {
40
+ useDeleteRepoRecords,
41
+ useRepoInventory
42
+ };
43
+ //# sourceMappingURL=use-repo-inventory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/query/hooks/use-repo-inventory.ts"],"sourcesContent":["'use client';\n\nimport {\n useMutation,\n useQuery,\n useQueryClient,\n type UseMutationOptions,\n type UseQueryOptions,\n} from '@tanstack/react-query';\n\nimport type { RepoDeleteResult, RepoInventory } from '../../repo/types.js';\nimport { useSifaConfig } from '../config.js';\nimport {\n deleteRepoRecords,\n fetchRepoInventory,\n type RepoDeleteInput,\n} from '../fetchers/repo-inventory.js';\nimport { sifaQueryKeys } from '../keys.js';\n\n/**\n * Read the id.sifa.* records in the authenticated user's repo.\n *\n * Not cached client-side: this is a page about what exists right now, and a\n * user who deletes a record, navigates away and comes back must not be shown\n * it again from cache. The server caches the PDS read briefly, which is where\n * that cost belongs.\n */\nexport function useRepoInventory(\n options?: Omit<\n UseQueryOptions<\n RepoInventory,\n Error,\n RepoInventory,\n ReturnType<typeof sifaQueryKeys.repoInventory.list>\n >,\n 'queryKey' | 'queryFn'\n >,\n) {\n const config = useSifaConfig();\n return useQuery({\n queryKey: sifaQueryKeys.repoInventory.list(),\n queryFn: () => fetchRepoInventory(config),\n staleTime: 0,\n gcTime: 0,\n ...options,\n });\n}\n\n/**\n * Delete records from the authenticated user's repo.\n *\n * Invalidates the whole Sifa key subtree, not just the inventory: the records\n * being removed are the ones the profile is built from, so anything showing\n * profile content is stale the moment this succeeds.\n */\nexport function useDeleteRepoRecords(\n options?: Omit<\n UseMutationOptions<\n RepoDeleteResult & { success: boolean; error?: string },\n Error,\n RepoDeleteInput\n >,\n 'mutationFn'\n >,\n) {\n const config = useSifaConfig();\n const queryClient = useQueryClient();\n return useMutation({\n // Spread first: a consumer-supplied handler would otherwise replace the\n // one below and silently drop cache invalidation (#453).\n ...options,\n mutationFn: (input: RepoDeleteInput) => deleteRepoRecords(config, input),\n onSuccess: async (result, variables, onMutateResult, context) => {\n await queryClient.invalidateQueries({ queryKey: sifaQueryKeys.all() });\n await options?.onSuccess?.(result, variables, onMutateResult, context);\n },\n });\n}\n"],"mappings":";;;AAEA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AAGP,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP,SAAS,qBAAqB;AAUvB,SAAS,iBACd,SASA;AACA,QAAM,SAAS,cAAc;AAC7B,SAAO,SAAS;AAAA,IACd,UAAU,cAAc,cAAc,KAAK;AAAA,IAC3C,SAAS,MAAM,mBAAmB,MAAM;AAAA,IACxC,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,GAAG;AAAA,EACL,CAAC;AACH;AASO,SAAS,qBACd,SAQA;AACA,QAAM,SAAS,cAAc;AAC7B,QAAM,cAAc,eAAe;AACnC,SAAO,YAAY;AAAA;AAAA;AAAA,IAGjB,GAAG;AAAA,IACH,YAAY,CAAC,UAA2B,kBAAkB,QAAQ,KAAK;AAAA,IACvE,WAAW,OAAO,QAAQ,WAAW,gBAAgB,YAAY;AAC/D,YAAM,YAAY,kBAAkB,EAAE,UAAU,cAAc,IAAI,EAAE,CAAC;AACrE,YAAM,SAAS,YAAY,QAAQ,WAAW,gBAAgB,OAAO;AAAA,IACvE;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -0,0 +1,51 @@
1
+ "use client";
2
+
3
+ // src/query/hooks/use-roadmap-mutations.ts
4
+ import { useMutation, useQueryClient } from "@tanstack/react-query";
5
+ import "../client.js";
6
+ import { useSifaConfig } from "../config.js";
7
+ import {
8
+ castRoadmapVote,
9
+ retractRoadmapVote
10
+ } from "../fetchers/roadmap.js";
11
+ import { sifaQueryKeys } from "../keys.js";
12
+ async function invalidateRoadmap(queryClient) {
13
+ await queryClient.invalidateQueries({ queryKey: sifaQueryKeys.roadmap.all() });
14
+ }
15
+ function useCastRoadmapVote(options) {
16
+ const config = useSifaConfig();
17
+ const queryClient = useQueryClient();
18
+ return useMutation({
19
+ // Spread first: a consumer-supplied onSuccess would otherwise replace the
20
+ // handler below and silently drop cache invalidation (#453).
21
+ ...options,
22
+ mutationFn: (key) => castRoadmapVote(config, key),
23
+ onSuccess: async (result, variables, onMutateResult, context) => {
24
+ if (result.ok) {
25
+ await invalidateRoadmap(queryClient);
26
+ }
27
+ await options?.onSuccess?.(result, variables, onMutateResult, context);
28
+ }
29
+ });
30
+ }
31
+ function useRetractRoadmapVote(options) {
32
+ const config = useSifaConfig();
33
+ const queryClient = useQueryClient();
34
+ return useMutation({
35
+ // Spread first: a consumer-supplied onSuccess would otherwise replace the
36
+ // handler below and silently drop cache invalidation (#453).
37
+ ...options,
38
+ mutationFn: (key) => retractRoadmapVote(config, key),
39
+ onSuccess: async (result, variables, onMutateResult, context) => {
40
+ if (result.success) {
41
+ await invalidateRoadmap(queryClient);
42
+ }
43
+ await options?.onSuccess?.(result, variables, onMutateResult, context);
44
+ }
45
+ });
46
+ }
47
+ export {
48
+ useCastRoadmapVote,
49
+ useRetractRoadmapVote
50
+ };
51
+ //# sourceMappingURL=use-roadmap-mutations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/query/hooks/use-roadmap-mutations.ts"],"sourcesContent":["'use client';\n\nimport { useMutation, useQueryClient, type UseMutationOptions } from '@tanstack/react-query';\n\nimport { type WriteResult } from '../client.js';\nimport { useSifaConfig } from '../config.js';\nimport {\n castRoadmapVote,\n retractRoadmapVote,\n type CastRoadmapVoteResult,\n} from '../fetchers/roadmap.js';\nimport { sifaQueryKeys } from '../keys.js';\n\nasync function invalidateRoadmap(queryClient: ReturnType<typeof useQueryClient>): Promise<void> {\n await queryClient.invalidateQueries({ queryKey: sifaQueryKeys.roadmap.all() });\n}\n\n/**\n * React hook for casting a roadmap vote. Variable: the item key.\n *\n * Returns the discriminated-union result so callers can detect\n * `scope_insufficient` and trigger an OAuth scope-upgrade flow\n * (see {@link castRoadmapVote}).\n */\nexport function useCastRoadmapVote(\n options?: Omit<UseMutationOptions<CastRoadmapVoteResult, Error, string>, 'mutationFn'>,\n) {\n const config = useSifaConfig();\n const queryClient = useQueryClient();\n return useMutation({\n // Spread first: a consumer-supplied onSuccess would otherwise replace the\n // handler below and silently drop cache invalidation (#453).\n ...options,\n mutationFn: (key: string) => castRoadmapVote(config, key),\n onSuccess: async (result, variables, onMutateResult, context) => {\n if (result.ok) {\n await invalidateRoadmap(queryClient);\n }\n await options?.onSuccess?.(result, variables, onMutateResult, context);\n },\n });\n}\n\n/** React hook for retracting a previously-cast roadmap vote. */\nexport function useRetractRoadmapVote(\n options?: Omit<UseMutationOptions<WriteResult, Error, string>, 'mutationFn'>,\n) {\n const config = useSifaConfig();\n const queryClient = useQueryClient();\n return useMutation({\n // Spread first: a consumer-supplied onSuccess would otherwise replace the\n // handler below and silently drop cache invalidation (#453).\n ...options,\n mutationFn: (key: string) => retractRoadmapVote(config, key),\n onSuccess: async (result, variables, onMutateResult, context) => {\n if (result.success) {\n await invalidateRoadmap(queryClient);\n }\n await options?.onSuccess?.(result, variables, onMutateResult, context);\n },\n });\n}\n"],"mappings":";;;AAEA,SAAS,aAAa,sBAA+C;AAErE,OAAiC;AACjC,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP,SAAS,qBAAqB;AAE9B,eAAe,kBAAkB,aAA+D;AAC9F,QAAM,YAAY,kBAAkB,EAAE,UAAU,cAAc,QAAQ,IAAI,EAAE,CAAC;AAC/E;AASO,SAAS,mBACd,SACA;AACA,QAAM,SAAS,cAAc;AAC7B,QAAM,cAAc,eAAe;AACnC,SAAO,YAAY;AAAA;AAAA;AAAA,IAGjB,GAAG;AAAA,IACH,YAAY,CAAC,QAAgB,gBAAgB,QAAQ,GAAG;AAAA,IACxD,WAAW,OAAO,QAAQ,WAAW,gBAAgB,YAAY;AAC/D,UAAI,OAAO,IAAI;AACb,cAAM,kBAAkB,WAAW;AAAA,MACrC;AACA,YAAM,SAAS,YAAY,QAAQ,WAAW,gBAAgB,OAAO;AAAA,IACvE;AAAA,EACF,CAAC;AACH;AAGO,SAAS,sBACd,SACA;AACA,QAAM,SAAS,cAAc;AAC7B,QAAM,cAAc,eAAe;AACnC,SAAO,YAAY;AAAA;AAAA;AAAA,IAGjB,GAAG;AAAA,IACH,YAAY,CAAC,QAAgB,mBAAmB,QAAQ,GAAG;AAAA,IAC3D,WAAW,OAAO,QAAQ,WAAW,gBAAgB,YAAY;AAC/D,UAAI,OAAO,SAAS;AAClB,cAAM,kBAAkB,WAAW;AAAA,MACrC;AACA,YAAM,SAAS,YAAY,QAAQ,WAAW,gBAAgB,OAAO;AAAA,IACvE;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -0,0 +1,31 @@
1
+ "use client";
2
+
3
+ // src/query/hooks/use-roadmap.ts
4
+ import { useQuery } from "@tanstack/react-query";
5
+ import { useSifaConfig } from "../config.js";
6
+ import {
7
+ fetchMyRoadmapVotes,
8
+ fetchRoadmapVotes
9
+ } from "../fetchers/roadmap.js";
10
+ import { sifaQueryKeys } from "../keys.js";
11
+ function useRoadmapVotes(options) {
12
+ const config = useSifaConfig();
13
+ return useQuery({
14
+ queryKey: sifaQueryKeys.roadmap.votes(),
15
+ queryFn: () => fetchRoadmapVotes(config),
16
+ ...options
17
+ });
18
+ }
19
+ function useMyRoadmapVotes(options) {
20
+ const config = useSifaConfig();
21
+ return useQuery({
22
+ queryKey: sifaQueryKeys.roadmap.myVotes(),
23
+ queryFn: () => fetchMyRoadmapVotes(config),
24
+ ...options
25
+ });
26
+ }
27
+ export {
28
+ useMyRoadmapVotes,
29
+ useRoadmapVotes
30
+ };
31
+ //# sourceMappingURL=use-roadmap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/query/hooks/use-roadmap.ts"],"sourcesContent":["'use client';\n\nimport { useQuery, type UseQueryOptions } from '@tanstack/react-query';\n\nimport { useSifaConfig } from '../config.js';\nimport {\n fetchMyRoadmapVotes,\n fetchRoadmapVotes,\n type RoadmapVotesResponse,\n} from '../fetchers/roadmap.js';\nimport { sifaQueryKeys } from '../keys.js';\n\n/** Public roadmap vote tallies. Returns `{}` data on error. */\nexport function useRoadmapVotes(\n options?: Omit<\n UseQueryOptions<\n RoadmapVotesResponse,\n Error,\n RoadmapVotesResponse,\n ReturnType<typeof sifaQueryKeys.roadmap.votes>\n >,\n 'queryKey' | 'queryFn'\n >,\n) {\n const config = useSifaConfig();\n return useQuery({\n queryKey: sifaQueryKeys.roadmap.votes(),\n queryFn: () => fetchRoadmapVotes(config),\n ...options,\n });\n}\n\n/** Roadmap items the authenticated viewer has voted on. Returns `[]` data on error. */\nexport function useMyRoadmapVotes(\n options?: Omit<\n UseQueryOptions<string[], Error, string[], ReturnType<typeof sifaQueryKeys.roadmap.myVotes>>,\n 'queryKey' | 'queryFn'\n >,\n) {\n const config = useSifaConfig();\n return useQuery({\n queryKey: sifaQueryKeys.roadmap.myVotes(),\n queryFn: () => fetchMyRoadmapVotes(config),\n ...options,\n });\n}\n"],"mappings":";;;AAEA,SAAS,gBAAsC;AAE/C,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP,SAAS,qBAAqB;AAGvB,SAAS,gBACd,SASA;AACA,QAAM,SAAS,cAAc;AAC7B,SAAO,SAAS;AAAA,IACd,UAAU,cAAc,QAAQ,MAAM;AAAA,IACtC,SAAS,MAAM,kBAAkB,MAAM;AAAA,IACvC,GAAG;AAAA,EACL,CAAC;AACH;AAGO,SAAS,kBACd,SAIA;AACA,QAAM,SAAS,cAAc;AAC7B,SAAO,SAAS;AAAA,IACd,UAAU,cAAc,QAAQ,QAAQ;AAAA,IACxC,SAAS,MAAM,oBAAoB,MAAM;AAAA,IACzC,GAAG;AAAA,EACL,CAAC;AACH;","names":[]}
@@ -0,0 +1,63 @@
1
+ "use client";
2
+
3
+ // src/query/hooks/use-search.ts
4
+ import { useQuery } from "@tanstack/react-query";
5
+ import { useSifaConfig } from "../config.js";
6
+ import {
7
+ fetchSearchCompanies,
8
+ fetchSearchFilters,
9
+ fetchSearchProfiles,
10
+ fetchSkillSuggestions,
11
+ searchSkills
12
+ } from "../fetchers/search.js";
13
+ import { sifaQueryKeys } from "../keys.js";
14
+ function useSearchProfiles(filters, options) {
15
+ const config = useSifaConfig();
16
+ return useQuery({
17
+ queryKey: sifaQueryKeys.search.profiles(filters),
18
+ queryFn: () => fetchSearchProfiles(config, filters),
19
+ ...options
20
+ });
21
+ }
22
+ function useSkillSuggestions(query, options) {
23
+ const config = useSifaConfig();
24
+ return useQuery({
25
+ queryKey: sifaQueryKeys.search.skills(query),
26
+ queryFn: () => fetchSkillSuggestions(config, query),
27
+ enabled: query.trim().length > 0 && (options?.enabled ?? true),
28
+ ...options
29
+ });
30
+ }
31
+ function useCanonicalSkillSearch(query, limit = 10, options) {
32
+ const config = useSifaConfig();
33
+ return useQuery({
34
+ queryKey: sifaQueryKeys.search.canonicalSkills(query, limit),
35
+ queryFn: () => searchSkills(config, query, limit),
36
+ enabled: query.trim().length > 0 && (options?.enabled ?? true),
37
+ ...options
38
+ });
39
+ }
40
+ function useSearchFilters(options) {
41
+ const config = useSifaConfig();
42
+ return useQuery({
43
+ queryKey: sifaQueryKeys.search.filters(),
44
+ queryFn: () => fetchSearchFilters(config),
45
+ ...options
46
+ });
47
+ }
48
+ function useSearchCompanies(filters, options) {
49
+ const config = useSifaConfig();
50
+ return useQuery({
51
+ queryKey: sifaQueryKeys.search.companies(filters),
52
+ queryFn: () => fetchSearchCompanies(config, filters),
53
+ ...options
54
+ });
55
+ }
56
+ export {
57
+ useCanonicalSkillSearch,
58
+ useSearchCompanies,
59
+ useSearchFilters,
60
+ useSearchProfiles,
61
+ useSkillSuggestions
62
+ };
63
+ //# sourceMappingURL=use-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/query/hooks/use-search.ts"],"sourcesContent":["'use client';\n\nimport { useQuery, type UseQueryOptions } from '@tanstack/react-query';\n\nimport type { SkillSuggestion } from '../../types/index.js';\nimport { useSifaConfig } from '../config.js';\nimport {\n fetchSearchCompanies,\n fetchSearchFilters,\n fetchSearchProfiles,\n fetchSkillSuggestions,\n searchSkills,\n type CompanySearchFilters,\n type CompanySearchResponse,\n type FilterOptions,\n type SearchFilters,\n type SearchResponse,\n type SkillSearchResult,\n} from '../fetchers/search.js';\nimport { sifaQueryKeys } from '../keys.js';\n\nexport function useSearchProfiles(\n filters: SearchFilters,\n options?: Omit<\n UseQueryOptions<\n SearchResponse,\n Error,\n SearchResponse,\n ReturnType<typeof sifaQueryKeys.search.profiles>\n >,\n 'queryKey' | 'queryFn'\n >,\n) {\n const config = useSifaConfig();\n return useQuery({\n queryKey: sifaQueryKeys.search.profiles(filters as Record<string, unknown>),\n queryFn: () => fetchSearchProfiles(config, filters),\n ...options,\n });\n}\n\nexport function useSkillSuggestions(\n query: string,\n options?: Omit<\n UseQueryOptions<\n SkillSearchResult[],\n Error,\n SkillSearchResult[],\n ReturnType<typeof sifaQueryKeys.search.skills>\n >,\n 'queryKey' | 'queryFn'\n >,\n) {\n const config = useSifaConfig();\n return useQuery({\n queryKey: sifaQueryKeys.search.skills(query),\n queryFn: () => fetchSkillSuggestions(config, query),\n enabled: query.trim().length > 0 && (options?.enabled ?? true),\n ...options,\n });\n}\n\n/**\n * Canonical-skill search hook. Hits `/api/skills/search` (the\n * canonical-skills DB lookup, distinct from {@link useSkillSuggestions}'s\n * `/api/search/skills` profile-skill typeahead). Skips the network call\n * when the query is empty.\n */\nexport function useCanonicalSkillSearch(\n query: string,\n limit = 10,\n options?: Omit<\n UseQueryOptions<\n SkillSuggestion[],\n Error,\n SkillSuggestion[],\n ReturnType<typeof sifaQueryKeys.search.canonicalSkills>\n >,\n 'queryKey' | 'queryFn'\n >,\n) {\n const config = useSifaConfig();\n return useQuery({\n queryKey: sifaQueryKeys.search.canonicalSkills(query, limit),\n queryFn: () => searchSkills(config, query, limit),\n enabled: query.trim().length > 0 && (options?.enabled ?? true),\n ...options,\n });\n}\n\nexport function useSearchFilters(\n options?: Omit<\n UseQueryOptions<\n FilterOptions,\n Error,\n FilterOptions,\n ReturnType<typeof sifaQueryKeys.search.filters>\n >,\n 'queryKey' | 'queryFn'\n >,\n) {\n const config = useSifaConfig();\n return useQuery({\n queryKey: sifaQueryKeys.search.filters(),\n queryFn: () => fetchSearchFilters(config),\n ...options,\n });\n}\n\n/**\n * Company search (workspace#299). Separate hook from `useSearchProfiles` so a\n * blended results page can render each category as it resolves instead of\n * waiting for the slowest.\n */\nexport function useSearchCompanies(\n filters: CompanySearchFilters,\n options?: Omit<\n UseQueryOptions<\n CompanySearchResponse,\n Error,\n CompanySearchResponse,\n ReturnType<typeof sifaQueryKeys.search.companies>\n >,\n 'queryKey' | 'queryFn'\n >,\n) {\n const config = useSifaConfig();\n return useQuery({\n queryKey: sifaQueryKeys.search.companies(filters as Record<string, unknown>),\n queryFn: () => fetchSearchCompanies(config, filters),\n ...options,\n });\n}\n"],"mappings":";;;AAEA,SAAS,gBAAsC;AAG/C,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAOK;AACP,SAAS,qBAAqB;AAEvB,SAAS,kBACd,SACA,SASA;AACA,QAAM,SAAS,cAAc;AAC7B,SAAO,SAAS;AAAA,IACd,UAAU,cAAc,OAAO,SAAS,OAAkC;AAAA,IAC1E,SAAS,MAAM,oBAAoB,QAAQ,OAAO;AAAA,IAClD,GAAG;AAAA,EACL,CAAC;AACH;AAEO,SAAS,oBACd,OACA,SASA;AACA,QAAM,SAAS,cAAc;AAC7B,SAAO,SAAS;AAAA,IACd,UAAU,cAAc,OAAO,OAAO,KAAK;AAAA,IAC3C,SAAS,MAAM,sBAAsB,QAAQ,KAAK;AAAA,IAClD,SAAS,MAAM,KAAK,EAAE,SAAS,MAAM,SAAS,WAAW;AAAA,IACzD,GAAG;AAAA,EACL,CAAC;AACH;AAQO,SAAS,wBACd,OACA,QAAQ,IACR,SASA;AACA,QAAM,SAAS,cAAc;AAC7B,SAAO,SAAS;AAAA,IACd,UAAU,cAAc,OAAO,gBAAgB,OAAO,KAAK;AAAA,IAC3D,SAAS,MAAM,aAAa,QAAQ,OAAO,KAAK;AAAA,IAChD,SAAS,MAAM,KAAK,EAAE,SAAS,MAAM,SAAS,WAAW;AAAA,IACzD,GAAG;AAAA,EACL,CAAC;AACH;AAEO,SAAS,iBACd,SASA;AACA,QAAM,SAAS,cAAc;AAC7B,SAAO,SAAS;AAAA,IACd,UAAU,cAAc,OAAO,QAAQ;AAAA,IACvC,SAAS,MAAM,mBAAmB,MAAM;AAAA,IACxC,GAAG;AAAA,EACL,CAAC;AACH;AAOO,SAAS,mBACd,SACA,SASA;AACA,QAAM,SAAS,cAAc;AAC7B,SAAO,SAAS;AAAA,IACd,UAAU,cAAc,OAAO,UAAU,OAAkC;AAAA,IAC3E,SAAS,MAAM,qBAAqB,QAAQ,OAAO;AAAA,IACnD,GAAG;AAAA,EACL,CAAC;AACH;","names":[]}
@@ -0,0 +1,53 @@
1
+ "use client";
2
+
3
+ // src/query/hooks/use-section-primary-mutations.ts
4
+ import { useMutation, useQueryClient } from "@tanstack/react-query";
5
+ import "../client.js";
6
+ import { useSifaConfig } from "../config.js";
7
+ import {
8
+ setSectionPrimary,
9
+ unsetSectionPrimary
10
+ } from "../fetchers/section-primary.js";
11
+ import { sifaQueryKeys } from "../keys.js";
12
+ async function invalidateProfile(queryClient, ownerHandleOrDid) {
13
+ await queryClient.invalidateQueries({
14
+ queryKey: sifaQueryKeys.profile.byHandle(ownerHandleOrDid)
15
+ });
16
+ }
17
+ function useSetSectionPrimary(section, ownerHandleOrDid, options) {
18
+ const config = useSifaConfig();
19
+ const queryClient = useQueryClient();
20
+ return useMutation({
21
+ // Spread first: a consumer-supplied onSuccess would otherwise replace the
22
+ // handler below and silently drop cache invalidation (#453).
23
+ ...options,
24
+ mutationFn: (rkey) => setSectionPrimary(config, section, rkey),
25
+ onSuccess: async (result, variables, onMutateResult, context) => {
26
+ if (result.success) {
27
+ await invalidateProfile(queryClient, ownerHandleOrDid);
28
+ }
29
+ await options?.onSuccess?.(result, variables, onMutateResult, context);
30
+ }
31
+ });
32
+ }
33
+ function useUnsetSectionPrimary(section, ownerHandleOrDid, options) {
34
+ const config = useSifaConfig();
35
+ const queryClient = useQueryClient();
36
+ return useMutation({
37
+ // Spread first: a consumer-supplied onSuccess would otherwise replace the
38
+ // handler below and silently drop cache invalidation (#453).
39
+ ...options,
40
+ mutationFn: (rkey) => unsetSectionPrimary(config, section, rkey),
41
+ onSuccess: async (result, variables, onMutateResult, context) => {
42
+ if (result.success) {
43
+ await invalidateProfile(queryClient, ownerHandleOrDid);
44
+ }
45
+ await options?.onSuccess?.(result, variables, onMutateResult, context);
46
+ }
47
+ });
48
+ }
49
+ export {
50
+ useSetSectionPrimary,
51
+ useUnsetSectionPrimary
52
+ };
53
+ //# sourceMappingURL=use-section-primary-mutations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/query/hooks/use-section-primary-mutations.ts"],"sourcesContent":["'use client';\n\nimport { useMutation, useQueryClient, type UseMutationOptions } from '@tanstack/react-query';\n\nimport { type WriteResult } from '../client.js';\nimport { useSifaConfig } from '../config.js';\nimport {\n setSectionPrimary,\n unsetSectionPrimary,\n type PrimarySection,\n} from '../fetchers/section-primary.js';\nimport { sifaQueryKeys } from '../keys.js';\n\nasync function invalidateProfile(\n queryClient: ReturnType<typeof useQueryClient>,\n ownerHandleOrDid: string,\n): Promise<void> {\n await queryClient.invalidateQueries({\n queryKey: sifaQueryKeys.profile.byHandle(ownerHandleOrDid),\n });\n}\n\n/**\n * React hook for marking a section record as the user's primary item. Variable:\n * the record's `rkey`. Invalidates the owner's profile query on success so the\n * Highlights block and section editors re-render with the new choice.\n */\nexport function useSetSectionPrimary(\n section: PrimarySection,\n ownerHandleOrDid: string,\n options?: Omit<UseMutationOptions<WriteResult, Error, string>, 'mutationFn'>,\n) {\n const config = useSifaConfig();\n const queryClient = useQueryClient();\n return useMutation({\n // Spread first: a consumer-supplied onSuccess would otherwise replace the\n // handler below and silently drop cache invalidation (#453).\n ...options,\n mutationFn: (rkey: string) => setSectionPrimary(config, section, rkey),\n onSuccess: async (result, variables, onMutateResult, context) => {\n if (result.success) {\n await invalidateProfile(queryClient, ownerHandleOrDid);\n }\n await options?.onSuccess?.(result, variables, onMutateResult, context);\n },\n });\n}\n\n/** React hook for clearing the primary flag on a section record. */\nexport function useUnsetSectionPrimary(\n section: PrimarySection,\n ownerHandleOrDid: string,\n options?: Omit<UseMutationOptions<WriteResult, Error, string>, 'mutationFn'>,\n) {\n const config = useSifaConfig();\n const queryClient = useQueryClient();\n return useMutation({\n // Spread first: a consumer-supplied onSuccess would otherwise replace the\n // handler below and silently drop cache invalidation (#453).\n ...options,\n mutationFn: (rkey: string) => unsetSectionPrimary(config, section, rkey),\n onSuccess: async (result, variables, onMutateResult, context) => {\n if (result.success) {\n await invalidateProfile(queryClient, ownerHandleOrDid);\n }\n await options?.onSuccess?.(result, variables, onMutateResult, context);\n },\n });\n}\n"],"mappings":";;;AAEA,SAAS,aAAa,sBAA+C;AAErE,OAAiC;AACjC,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP,SAAS,qBAAqB;AAE9B,eAAe,kBACb,aACA,kBACe;AACf,QAAM,YAAY,kBAAkB;AAAA,IAClC,UAAU,cAAc,QAAQ,SAAS,gBAAgB;AAAA,EAC3D,CAAC;AACH;AAOO,SAAS,qBACd,SACA,kBACA,SACA;AACA,QAAM,SAAS,cAAc;AAC7B,QAAM,cAAc,eAAe;AACnC,SAAO,YAAY;AAAA;AAAA;AAAA,IAGjB,GAAG;AAAA,IACH,YAAY,CAAC,SAAiB,kBAAkB,QAAQ,SAAS,IAAI;AAAA,IACrE,WAAW,OAAO,QAAQ,WAAW,gBAAgB,YAAY;AAC/D,UAAI,OAAO,SAAS;AAClB,cAAM,kBAAkB,aAAa,gBAAgB;AAAA,MACvD;AACA,YAAM,SAAS,YAAY,QAAQ,WAAW,gBAAgB,OAAO;AAAA,IACvE;AAAA,EACF,CAAC;AACH;AAGO,SAAS,uBACd,SACA,kBACA,SACA;AACA,QAAM,SAAS,cAAc;AAC7B,QAAM,cAAc,eAAe;AACnC,SAAO,YAAY;AAAA;AAAA;AAAA,IAGjB,GAAG;AAAA,IACH,YAAY,CAAC,SAAiB,oBAAoB,QAAQ,SAAS,IAAI;AAAA,IACvE,WAAW,OAAO,QAAQ,WAAW,gBAAgB,YAAY;AAC/D,UAAI,OAAO,SAAS;AAClB,cAAM,kBAAkB,aAAa,gBAAgB;AAAA,MACvD;AACA,YAAM,SAAS,YAAY,QAAQ,WAAW,gBAAgB,OAAO;AAAA,IACvE;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -0,0 +1,91 @@
1
+ "use client";
2
+
3
+ // src/query/hooks/use-skill-mutations.ts
4
+ import { useMutation, useQueryClient } from "@tanstack/react-query";
5
+ import "../client.js";
6
+ import { useSifaConfig } from "../config.js";
7
+ import {
8
+ createSkill,
9
+ deleteSkill,
10
+ updateSkill,
11
+ updateSkillSubCategories
12
+ } from "../fetchers/skills.js";
13
+ import { sifaQueryKeys } from "../keys.js";
14
+ async function invalidateProfile(queryClient, ownerHandleOrDid) {
15
+ await queryClient.invalidateQueries({
16
+ queryKey: sifaQueryKeys.profile.byHandle(ownerHandleOrDid)
17
+ });
18
+ }
19
+ function useCreateSkill(ownerHandleOrDid, options) {
20
+ const config = useSifaConfig();
21
+ const queryClient = useQueryClient();
22
+ return useMutation({
23
+ // Spread first: a consumer-supplied onSuccess would otherwise replace the
24
+ // handler below and silently drop cache invalidation (#453).
25
+ ...options,
26
+ mutationFn: (data) => createSkill(config, data),
27
+ onSuccess: async (result, variables, onMutateResult, context) => {
28
+ if (result.success) {
29
+ await invalidateProfile(queryClient, ownerHandleOrDid);
30
+ }
31
+ await options?.onSuccess?.(result, variables, onMutateResult, context);
32
+ }
33
+ });
34
+ }
35
+ function useUpdateSkill(ownerHandleOrDid, options) {
36
+ const config = useSifaConfig();
37
+ const queryClient = useQueryClient();
38
+ return useMutation({
39
+ // Spread first: a consumer-supplied onSuccess would otherwise replace the
40
+ // handler below and silently drop cache invalidation (#453).
41
+ ...options,
42
+ mutationFn: ({ rkey, data }) => updateSkill(config, rkey, data),
43
+ onSuccess: async (result, variables, onMutateResult, context) => {
44
+ if (result.success) {
45
+ await invalidateProfile(queryClient, ownerHandleOrDid);
46
+ }
47
+ await options?.onSuccess?.(result, variables, onMutateResult, context);
48
+ }
49
+ });
50
+ }
51
+ function useUpdateSkillSubCategories(ownerHandleOrDid, options) {
52
+ const config = useSifaConfig();
53
+ const queryClient = useQueryClient();
54
+ return useMutation({
55
+ mutationFn: ({ rkeys, subCategory }) => updateSkillSubCategories(config, rkeys, subCategory),
56
+ // `...options` comes first so a caller-supplied onSuccess cannot replace the
57
+ // wrapper below and silently skip profile invalidation; the wrapper calls it
58
+ // instead. The older skill hooks in this file spread options last and still
59
+ // carry that bug.
60
+ ...options,
61
+ onSuccess: async (result, variables, onMutateResult, context) => {
62
+ if (result.success) {
63
+ await invalidateProfile(queryClient, ownerHandleOrDid);
64
+ }
65
+ await options?.onSuccess?.(result, variables, onMutateResult, context);
66
+ }
67
+ });
68
+ }
69
+ function useDeleteSkill(ownerHandleOrDid, options) {
70
+ const config = useSifaConfig();
71
+ const queryClient = useQueryClient();
72
+ return useMutation({
73
+ // Spread first: a consumer-supplied onSuccess would otherwise replace the
74
+ // handler below and silently drop cache invalidation (#453).
75
+ ...options,
76
+ mutationFn: (rkey) => deleteSkill(config, rkey),
77
+ onSuccess: async (result, variables, onMutateResult, context) => {
78
+ if (result.success) {
79
+ await invalidateProfile(queryClient, ownerHandleOrDid);
80
+ }
81
+ await options?.onSuccess?.(result, variables, onMutateResult, context);
82
+ }
83
+ });
84
+ }
85
+ export {
86
+ useCreateSkill,
87
+ useDeleteSkill,
88
+ useUpdateSkill,
89
+ useUpdateSkillSubCategories
90
+ };
91
+ //# sourceMappingURL=use-skill-mutations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/query/hooks/use-skill-mutations.ts"],"sourcesContent":["'use client';\n\nimport { useMutation, useQueryClient, type UseMutationOptions } from '@tanstack/react-query';\n\nimport { type CreateResult, type WriteResult } from '../client.js';\nimport { useSifaConfig } from '../config.js';\nimport {\n createSkill,\n deleteSkill,\n updateSkill,\n updateSkillSubCategories,\n type SubCategoryBulkResult,\n} from '../fetchers/skills.js';\nimport { sifaQueryKeys } from '../keys.js';\n\nasync function invalidateProfile(\n queryClient: ReturnType<typeof useQueryClient>,\n ownerHandleOrDid: string,\n): Promise<void> {\n await queryClient.invalidateQueries({\n queryKey: sifaQueryKeys.profile.byHandle(ownerHandleOrDid),\n });\n}\n\n/** React hook for creating a skill record. */\nexport function useCreateSkill(\n ownerHandleOrDid: string,\n options?: Omit<UseMutationOptions<CreateResult, Error, Record<string, unknown>>, 'mutationFn'>,\n) {\n const config = useSifaConfig();\n const queryClient = useQueryClient();\n return useMutation({\n // Spread first: a consumer-supplied onSuccess would otherwise replace the\n // handler below and silently drop cache invalidation (#453).\n ...options,\n mutationFn: (data: Record<string, unknown>) => createSkill(config, data),\n onSuccess: async (result, variables, onMutateResult, context) => {\n if (result.success) {\n await invalidateProfile(queryClient, ownerHandleOrDid);\n }\n await options?.onSuccess?.(result, variables, onMutateResult, context);\n },\n });\n}\n\n/** Variables for {@link useUpdateSkill}. */\nexport interface UpdateSkillVariables {\n rkey: string;\n data: Record<string, unknown>;\n}\n\n/** React hook for updating a skill record. */\nexport function useUpdateSkill(\n ownerHandleOrDid: string,\n options?: Omit<UseMutationOptions<WriteResult, Error, UpdateSkillVariables>, 'mutationFn'>,\n) {\n const config = useSifaConfig();\n const queryClient = useQueryClient();\n return useMutation({\n // Spread first: a consumer-supplied onSuccess would otherwise replace the\n // handler below and silently drop cache invalidation (#453).\n ...options,\n mutationFn: ({ rkey, data }: UpdateSkillVariables) => updateSkill(config, rkey, data),\n onSuccess: async (result, variables, onMutateResult, context) => {\n if (result.success) {\n await invalidateProfile(queryClient, ownerHandleOrDid);\n }\n await options?.onSuccess?.(result, variables, onMutateResult, context);\n },\n });\n}\n\n/** Variables for {@link useUpdateSkillSubCategories}. */\nexport interface UpdateSkillSubCategoriesVariables {\n rkeys: string[];\n subCategory: string;\n}\n\n/**\n * React hook for setting (or clearing) the sub-category on many skills in a\n * single request. An empty `subCategory` clears the field.\n */\nexport function useUpdateSkillSubCategories(\n ownerHandleOrDid: string,\n options?: Omit<\n UseMutationOptions<\n WriteResult & SubCategoryBulkResult,\n Error,\n UpdateSkillSubCategoriesVariables\n >,\n 'mutationFn'\n >,\n) {\n const config = useSifaConfig();\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ rkeys, subCategory }: UpdateSkillSubCategoriesVariables) =>\n updateSkillSubCategories(config, rkeys, subCategory),\n // `...options` comes first so a caller-supplied onSuccess cannot replace the\n // wrapper below and silently skip profile invalidation; the wrapper calls it\n // instead. The older skill hooks in this file spread options last and still\n // carry that bug.\n ...options,\n onSuccess: async (result, variables, onMutateResult, context) => {\n if (result.success) {\n await invalidateProfile(queryClient, ownerHandleOrDid);\n }\n await options?.onSuccess?.(result, variables, onMutateResult, context);\n },\n });\n}\n\n/** React hook for deleting a skill record. Variable: the `rkey` string. */\nexport function useDeleteSkill(\n ownerHandleOrDid: string,\n options?: Omit<UseMutationOptions<WriteResult, Error, string>, 'mutationFn'>,\n) {\n const config = useSifaConfig();\n const queryClient = useQueryClient();\n return useMutation({\n // Spread first: a consumer-supplied onSuccess would otherwise replace the\n // handler below and silently drop cache invalidation (#453).\n ...options,\n mutationFn: (rkey: string) => deleteSkill(config, rkey),\n onSuccess: async (result, variables, onMutateResult, context) => {\n if (result.success) {\n await invalidateProfile(queryClient, ownerHandleOrDid);\n }\n await options?.onSuccess?.(result, variables, onMutateResult, context);\n },\n });\n}\n"],"mappings":";;;AAEA,SAAS,aAAa,sBAA+C;AAErE,OAAoD;AACpD,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,qBAAqB;AAE9B,eAAe,kBACb,aACA,kBACe;AACf,QAAM,YAAY,kBAAkB;AAAA,IAClC,UAAU,cAAc,QAAQ,SAAS,gBAAgB;AAAA,EAC3D,CAAC;AACH;AAGO,SAAS,eACd,kBACA,SACA;AACA,QAAM,SAAS,cAAc;AAC7B,QAAM,cAAc,eAAe;AACnC,SAAO,YAAY;AAAA;AAAA;AAAA,IAGjB,GAAG;AAAA,IACH,YAAY,CAAC,SAAkC,YAAY,QAAQ,IAAI;AAAA,IACvE,WAAW,OAAO,QAAQ,WAAW,gBAAgB,YAAY;AAC/D,UAAI,OAAO,SAAS;AAClB,cAAM,kBAAkB,aAAa,gBAAgB;AAAA,MACvD;AACA,YAAM,SAAS,YAAY,QAAQ,WAAW,gBAAgB,OAAO;AAAA,IACvE;AAAA,EACF,CAAC;AACH;AASO,SAAS,eACd,kBACA,SACA;AACA,QAAM,SAAS,cAAc;AAC7B,QAAM,cAAc,eAAe;AACnC,SAAO,YAAY;AAAA;AAAA;AAAA,IAGjB,GAAG;AAAA,IACH,YAAY,CAAC,EAAE,MAAM,KAAK,MAA4B,YAAY,QAAQ,MAAM,IAAI;AAAA,IACpF,WAAW,OAAO,QAAQ,WAAW,gBAAgB,YAAY;AAC/D,UAAI,OAAO,SAAS;AAClB,cAAM,kBAAkB,aAAa,gBAAgB;AAAA,MACvD;AACA,YAAM,SAAS,YAAY,QAAQ,WAAW,gBAAgB,OAAO;AAAA,IACvE;AAAA,EACF,CAAC;AACH;AAYO,SAAS,4BACd,kBACA,SAQA;AACA,QAAM,SAAS,cAAc;AAC7B,QAAM,cAAc,eAAe;AACnC,SAAO,YAAY;AAAA,IACjB,YAAY,CAAC,EAAE,OAAO,YAAY,MAChC,yBAAyB,QAAQ,OAAO,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,IAKrD,GAAG;AAAA,IACH,WAAW,OAAO,QAAQ,WAAW,gBAAgB,YAAY;AAC/D,UAAI,OAAO,SAAS;AAClB,cAAM,kBAAkB,aAAa,gBAAgB;AAAA,MACvD;AACA,YAAM,SAAS,YAAY,QAAQ,WAAW,gBAAgB,OAAO;AAAA,IACvE;AAAA,EACF,CAAC;AACH;AAGO,SAAS,eACd,kBACA,SACA;AACA,QAAM,SAAS,cAAc;AAC7B,QAAM,cAAc,eAAe;AACnC,SAAO,YAAY;AAAA;AAAA;AAAA,IAGjB,GAAG;AAAA,IACH,YAAY,CAAC,SAAiB,YAAY,QAAQ,IAAI;AAAA,IACtD,WAAW,OAAO,QAAQ,WAAW,gBAAgB,YAAY;AAC/D,UAAI,OAAO,SAAS;AAClB,cAAM,kBAAkB,aAAa,gBAAgB;AAAA,MACvD;AACA,YAAM,SAAS,YAAY,QAAQ,WAAW,gBAAgB,OAAO;AAAA,IACvE;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -0,0 +1,19 @@
1
+ "use client";
2
+
3
+ // src/query/hooks/use-stats.ts
4
+ import { useQuery } from "@tanstack/react-query";
5
+ import { useSifaConfig } from "../config.js";
6
+ import { fetchStats } from "../fetchers/stats.js";
7
+ import { sifaQueryKeys } from "../keys.js";
8
+ function useStats(options) {
9
+ const config = useSifaConfig();
10
+ return useQuery({
11
+ queryKey: sifaQueryKeys.stats.homepage(),
12
+ queryFn: () => fetchStats(config),
13
+ ...options
14
+ });
15
+ }
16
+ export {
17
+ useStats
18
+ };
19
+ //# sourceMappingURL=use-stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/query/hooks/use-stats.ts"],"sourcesContent":["'use client';\n\nimport { useQuery, type UseQueryOptions } from '@tanstack/react-query';\n\nimport { useSifaConfig } from '../config.js';\nimport { fetchStats, type StatsResponse } from '../fetchers/stats.js';\nimport { sifaQueryKeys } from '../keys.js';\n\n/**\n * React hook for the public homepage stats. Returns `null` data on error.\n */\nexport function useStats(\n options?: Omit<\n UseQueryOptions<\n StatsResponse | null,\n Error,\n StatsResponse | null,\n ReturnType<typeof sifaQueryKeys.stats.homepage>\n >,\n 'queryKey' | 'queryFn'\n >,\n) {\n const config = useSifaConfig();\n return useQuery({\n queryKey: sifaQueryKeys.stats.homepage(),\n queryFn: () => fetchStats(config),\n ...options,\n });\n}\n"],"mappings":";;;AAEA,SAAS,gBAAsC;AAE/C,SAAS,qBAAqB;AAC9B,SAAS,kBAAsC;AAC/C,SAAS,qBAAqB;AAKvB,SAAS,SACd,SASA;AACA,QAAM,SAAS,cAAc;AAC7B,SAAO,SAAS;AAAA,IACd,UAAU,cAAc,MAAM,SAAS;AAAA,IACvC,SAAS,MAAM,WAAW,MAAM;AAAA,IAChC,GAAG;AAAA,EACL,CAAC;AACH;","names":[]}
@@ -0,0 +1,20 @@
1
+ "use client";
2
+
3
+ // src/query/hooks/use-stream.ts
4
+ import { useQuery } from "@tanstack/react-query";
5
+ import { useSifaConfig } from "../config.js";
6
+ import { fetchNetworkStreamCount } from "../fetchers/stream.js";
7
+ import { sifaQueryKeys } from "../keys.js";
8
+ function useNetworkStreamCount(did, options) {
9
+ const config = useSifaConfig();
10
+ return useQuery({
11
+ queryKey: sifaQueryKeys.stream.networkCount(did ?? ""),
12
+ queryFn: () => fetchNetworkStreamCount(config, did ?? ""),
13
+ enabled: Boolean(did) && (options?.enabled ?? true),
14
+ ...options
15
+ });
16
+ }
17
+ export {
18
+ useNetworkStreamCount
19
+ };
20
+ //# sourceMappingURL=use-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/query/hooks/use-stream.ts"],"sourcesContent":["'use client';\n\nimport { useQuery, type UseQueryOptions } from '@tanstack/react-query';\n\nimport { useSifaConfig } from '../config.js';\nimport { fetchNetworkStreamCount } from '../fetchers/stream.js';\nimport { sifaQueryKeys } from '../keys.js';\n\n/**\n * Count of items in the authenticated user's network stream digest.\n * Returns 0 on error (including when the endpoint isn't yet shipped).\n */\nexport function useNetworkStreamCount(\n did: string | undefined | null,\n options?: Omit<\n UseQueryOptions<number, Error, number, ReturnType<typeof sifaQueryKeys.stream.networkCount>>,\n 'queryKey' | 'queryFn'\n >,\n) {\n const config = useSifaConfig();\n return useQuery({\n queryKey: sifaQueryKeys.stream.networkCount(did ?? ''),\n queryFn: () => fetchNetworkStreamCount(config, did ?? ''),\n enabled: Boolean(did) && (options?.enabled ?? true),\n ...options,\n });\n}\n"],"mappings":";;;AAEA,SAAS,gBAAsC;AAE/C,SAAS,qBAAqB;AAC9B,SAAS,+BAA+B;AACxC,SAAS,qBAAqB;AAMvB,SAAS,sBACd,KACA,SAIA;AACA,QAAM,SAAS,cAAc;AAC7B,SAAO,SAAS;AAAA,IACd,UAAU,cAAc,OAAO,aAAa,OAAO,EAAE;AAAA,IACrD,SAAS,MAAM,wBAAwB,QAAQ,OAAO,EAAE;AAAA,IACxD,SAAS,QAAQ,GAAG,MAAM,SAAS,WAAW;AAAA,IAC9C,GAAG;AAAA,EACL,CAAC;AACH;","names":[]}