@singi-labs/sifa-sdk 0.12.83 → 0.12.85

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 (53) hide show
  1. package/dist/{index-B0hFFPZ-.d.cts → index-jNyd5QP7.d.cts} +12 -0
  2. package/dist/{index-B0hFFPZ-.d.ts → index-jNyd5QP7.d.ts} +12 -0
  3. package/dist/index.cjs +2 -1
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.d.cts +6 -6
  6. package/dist/index.d.ts +6 -6
  7. package/dist/index.js +2 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/jsonld/index.d.cts +1 -1
  10. package/dist/jsonld/index.d.ts +1 -1
  11. package/dist/{network-map-D4fSIGnS.d.ts → network-map-GfIVEYpr.d.ts} +4 -4
  12. package/dist/{network-map-DSs6hrPJ.d.cts → network-map-y6U7m-hX.d.cts} +4 -4
  13. package/dist/{org-CSEOW8H6.d.cts → org-ClDqS3CM.d.cts} +20 -3
  14. package/dist/{org-C6MV4vE6.d.ts → org-GlACA06R.d.ts} +20 -3
  15. package/dist/{profile-investment-C97ssnBV.d.cts → profile-investment-CmiQxk5C.d.cts} +1 -0
  16. package/dist/{profile-investment-C97ssnBV.d.ts → profile-investment-CmiQxk5C.d.ts} +1 -0
  17. package/dist/{profile-summary-BG-cvwtJ.d.ts → profile-summary-8fapqzHv.d.ts} +1 -1
  18. package/dist/{profile-summary-CA40DYqQ.d.cts → profile-summary-DY78IoL9.d.cts} +1 -1
  19. package/dist/query/fetchers/index.cjs +30 -0
  20. package/dist/query/fetchers/index.cjs.map +1 -1
  21. package/dist/query/fetchers/index.d.cts +6 -6
  22. package/dist/query/fetchers/index.d.ts +6 -6
  23. package/dist/query/fetchers/index.js +29 -1
  24. package/dist/query/fetchers/index.js.map +1 -1
  25. package/dist/query/hooks/index.cjs +62 -0
  26. package/dist/query/hooks/index.cjs.map +1 -1
  27. package/dist/query/hooks/index.d.cts +5 -5
  28. package/dist/query/hooks/index.d.ts +5 -5
  29. package/dist/query/hooks/index.js +61 -1
  30. package/dist/query/hooks/index.js.map +1 -1
  31. package/dist/query/index.cjs +64 -0
  32. package/dist/query/index.cjs.map +1 -1
  33. package/dist/query/index.d.cts +8 -8
  34. package/dist/query/index.d.ts +8 -8
  35. package/dist/query/index.js +61 -1
  36. package/dist/query/index.js.map +1 -1
  37. package/dist/schemas/index.cjs +1 -0
  38. package/dist/schemas/index.cjs.map +1 -1
  39. package/dist/schemas/index.d.cts +1 -1
  40. package/dist/schemas/index.d.ts +1 -1
  41. package/dist/schemas/index.js +1 -0
  42. package/dist/schemas/index.js.map +1 -1
  43. package/dist/schemas/write/index.cjs +1 -0
  44. package/dist/schemas/write/index.cjs.map +1 -1
  45. package/dist/schemas/write/index.d.cts +1 -0
  46. package/dist/schemas/write/index.d.ts +1 -0
  47. package/dist/schemas/write/index.js +1 -0
  48. package/dist/schemas/write/index.js.map +1 -1
  49. package/dist/{types-Dbvf5D_Q.d.ts → types-8JaS6abh.d.ts} +1 -1
  50. package/dist/{types-CIWnMcKx.d.cts → types-8wAWvS-T.d.cts} +1 -1
  51. package/dist/{use-org-notification-emails-C1kpS75h.d.cts → use-org-notification-emails-B-oGiDHo.d.cts} +11 -4
  52. package/dist/{use-org-notification-emails-lL0SKnbt.d.ts → use-org-notification-emails-DGzW9MH6.d.ts} +11 -4
  53. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/schemas/write/shared.ts","../../../src/schemas/write/certification.ts","../../../src/schemas/write/course.ts","../../../src/schemas/write/education.ts","../../../src/schemas/write/external-account.ts","../../../src/schemas/write/honor.ts","../../../src/schemas/write/project.ts","../../../src/schemas/write/involvement.ts","../../../src/schemas/write/investment.ts","../../../src/schemas/write/language.ts","../../../src/schemas/write/org-employment-attestation.ts","../../../src/schemas/write/org-profile.ts","../../../src/schemas/write/org-claim.ts","../../../src/schemas/write/org-settings.ts","../../../src/schemas/write/position.ts","../../../src/schemas/write/presentation-delivery.ts","../../../src/schemas/blob-ref.ts","../../../src/schemas/write/presentation.ts","../../../src/schemas/write/profile-location.ts","../../../src/schemas/write/profile-self.ts","../../../src/schemas/write/publication.ts","../../../src/schemas/shared.ts","../../../src/schemas/write/skill.ts","../../../src/schemas/write/volunteering.ts"],"names":["z"],"mappings":"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","file":"index.js","sourcesContent":["import { z } from 'zod';\n\n/** Prepend `https://` if no scheme is present. */\nexport function normalizeUrl(val: string): string {\n const trimmed = val.trim();\n if (/^https?:\\/\\//i.test(trimmed)) return trimmed;\n return `https://${trimmed}`;\n}\n\n/**\n * Accept a URL string or silently drop it if invalid (returns `undefined`).\n * Preserves the write-time policy: bad URLs from imports are dropped, not rejected.\n */\nexport const optionalUrl = () =>\n z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n try {\n new URL(val);\n return val;\n } catch {\n return undefined;\n }\n });\n\n/**\n * Location shape accepted by the sifa-api write endpoints.\n *\n * Accepts BOTH the legacy shape (`id.sifa.defs#locationAddress`: `countryCode`,\n * `region`, `city`) AND the new community shape\n * (`community.lexicon.location.address`: `country`, `region`, `locality`,\n * `street?`, `postalCode?`, `name?`). The frontend reads location records from\n * the API and echoes them back on save. The API serializer emits explicit `null`\n * for absent fields (not `undefined`), so every field uses `.nullish()`\n * (`string | null | undefined`) instead of `.optional()` (`string | undefined`).\n *\n * `buildPdsLocation` on the server handles conversion to the PDS shape (always\n * emitting the new community shape) and returns `undefined` when neither\n * `country` nor `countryCode` is usable.\n */\nexport const writeLocationSchema = z\n .union([\n z.object({\n country: z.string().nullish(),\n countryCode: z.string().length(2).nullish(),\n region: z.string().nullish(),\n city: z.string().nullish(),\n locality: z.string().nullish(),\n street: z.string().nullish(),\n postalCode: z.string().nullish(),\n name: z.string().nullish(),\n }),\n z.string(),\n ])\n .nullable()\n .optional();\n\n/** Skill reference: a strong ref to a canonical skill record. */\nexport const skillRefSchema = z.object({\n uri: z.string(),\n});\n\n/**\n * Platforms accepted by the external-account write endpoint.\n *\n * NOTE: this list intentionally differs from `PLATFORM_LABELS` in the SDK's\n * `/taxonomy` subpath. `VALID_PLATFORMS` is what sifa-api's `POST /external-accounts`\n * endpoint enforces; `PLATFORM_LABELS` is the display taxonomy used by the profile\n * UI. Reconciling them is a separate follow-up (see #TBD). For now the two are\n * mirrored verbatim from their prior definitions to preserve behavior.\n */\nexport const VALID_PLATFORMS = [\n 'rss',\n 'fediverse',\n 'twitter',\n 'instagram',\n 'github',\n 'codeberg',\n 'gitlab',\n 'forgejo',\n 'gitea',\n 'youtube',\n 'linkedin',\n 'substack',\n 'website',\n 'orcid',\n 'keyoxide',\n 'other',\n] as const;\n\nexport type ValidPlatform = (typeof VALID_PLATFORMS)[number];\n\n// ---- pure sanitization primitives (previously in sifa-api/src/lib/sanitize.ts) ----\n\n/**\n * Returns `input` when it is an http(s) URL string, else `null`. Blocks\n * dangerous schemes (`javascript:`, `data:`, etc.) from being stored and\n * later rendered.\n */\nexport function httpUrlOrNull(input: unknown): string | null {\n if (typeof input !== 'string') return null;\n try {\n const url = new URL(input);\n return url.protocol === 'http:' || url.protocol === 'https:' ? input : null;\n } catch {\n return null;\n }\n}\n\nconst DATE_ONLY_RE = /^\\d{4}-\\d{2}-\\d{2}$/;\n\n/**\n * Strict calendar-date validator. Returns `true` for `YYYY-MM-DD` strings\n * that name a real day, rejecting impossible values (`2024-02-30`, `2024-13-01`)\n * by requiring the JavaScript `Date` round-trip to preserve the input.\n */\nexport function isValidDateOnly(input: unknown): boolean {\n if (typeof input !== 'string' || !DATE_ONLY_RE.test(input)) return false;\n const parsed = new Date(`${input}T00:00:00Z`);\n return !Number.isNaN(parsed.getTime()) && parsed.toISOString().startsWith(input);\n}\n\n// ---- shared write-schema fragments used by multiple sections ----\n\n/**\n * Portable org entity identifier (Wikidata / ROR / LEI / sifa.id URI) chosen\n * from the typeahead. Constrained to http(s) so a script-bearing scheme can't\n * be written to the PDS record. Absent for free-text / unlinked records.\n * Shared by the org-bearing sections (position, education, certification,\n * volunteering, course, honor).\n */\nexport const entityRefSchema = z\n .string()\n .url()\n .refine((s) => /^https?:\\/\\//i.test(s), { message: 'entityRef must be an http(s) URL' })\n .max(2048)\n .optional();\n\n/**\n * One proof link on an involvement record (`id.sifa.defs#artifactLink`).\n * Only http(s) URLs are accepted so a dangerous scheme is never written to\n * the PDS.\n */\nexport const artifactLinkSchema = z.object({\n url: z\n .string()\n .max(2048)\n .refine((v) => httpUrlOrNull(v) !== null, 'must be an http(s) URL'),\n kind: z.string().max(64).nullable().optional(),\n label: z.string().max(2000).nullable().optional(),\n});\n\n/**\n * Reference to a record by at-uri, with an optional CID\n * (`id.sifa.defs#externalRecordRef`).\n */\nexport const externalRecordRefSchema = z.object({\n uri: z.string().regex(/^at:\\/\\/[^/\\s]+\\/[^/\\s]+\\/[^/\\s]+$/, 'must be an at-uri'),\n // CIDv0 (`Qm…`) or CIDv1 (base32, `b…`). Loose but rejects arbitrary strings.\n cid: z\n .string()\n .max(256)\n .regex(/^(Qm[1-9A-HJ-NP-Za-km-z]{44}|b[A-Za-z2-7]+)$/, 'must be a CID')\n .optional(),\n});\n\n/** Link attached to a presentation record. */\nexport const presentationLinkSchema = z.object({\n uri: z\n .string()\n .max(2048)\n .refine((v) => httpUrlOrNull(v) !== null, 'must be an http(s) URL'),\n label: z.string().max(640).nullable().optional(),\n type: z.string().max(256).nullable().optional(),\n});\n","import { z } from 'zod';\n\nimport { entityRefSchema, optionalUrl } from './shared.js';\n\n/** Schema enforced by the generic-record write endpoint for `id.sifa.profile.certification`. */\nexport const CertificationWriteSchema = z.object({\n name: z.string().min(1).max(256),\n authority: z.string().max(256).nullable().optional(),\n entityRef: entityRefSchema,\n credentialId: z.string().max(256).nullable().optional(),\n credentialUrl: optionalUrl(),\n issuedAt: z.string().nullable().optional(),\n expiresAt: z.string().nullable().optional(),\n});\n\nexport type CertificationWriteInput = z.infer<typeof CertificationWriteSchema>;\n","import { z } from 'zod';\n\nimport { entityRefSchema } from './shared.js';\n\n/** Schema enforced by the generic-record write endpoint for `id.sifa.profile.course`. */\nexport const CourseWriteSchema = z.object({\n name: z.string().min(1).max(200),\n number: z.string().max(50).nullable().optional(),\n institution: z.string().max(256).nullable().optional(),\n entityRef: entityRefSchema,\n /**\n * at-uri of the linked `id.sifa.profile.certification` record. Structurally\n * validated (`at://authority/collection/rkey`) so a bad value can't be\n * stored and later split into a bogus rkey.\n */\n credential: z\n .string()\n .max(512)\n .regex(/^at:\\/\\/[^/\\s]+\\/[^/\\s]+\\/[^/\\s]+$/, 'must be an at-uri')\n .nullable()\n .optional(),\n /**\n * RFC 3339 datetime the course was completed. The editor collects month\n * granularity (YYYY-MM) and converts to a datetime before the write; stored\n * and passed through as-is, mirroring `certification.issuedAt`.\n */\n completedAt: z.string().nullable().optional(),\n});\n\nexport type CourseWriteInput = z.infer<typeof CourseWriteSchema>;\n","import { z } from 'zod';\n\nimport { entityRefSchema } from './shared.js';\n\n/** Schema enforced by `POST /profile/education` on sifa-api. */\nexport const EducationWriteSchema = z.object({\n institution: z.string().min(1).max(256),\n entityRef: entityRefSchema,\n degree: z.string().max(256).nullable().optional(),\n fieldOfStudy: z.string().max(256).nullable().optional(),\n description: z.string().max(50000).nullable().optional(),\n activities: z.string().max(1000).nullable().optional(),\n startedAt: z.string().nullable().optional(),\n endedAt: z.string().nullable().optional(),\n});\n\nexport type EducationWriteInput = z.infer<typeof EducationWriteSchema>;\n","import { z } from 'zod';\n\nimport { VALID_PLATFORMS, normalizeUrl } from './shared.js';\n\n/** Schema enforced by `POST /external-accounts` on sifa-api. */\nexport const ExternalAccountWriteSchema = z.object({\n platform: z.enum(VALID_PLATFORMS),\n url: z.string().max(2000).transform(normalizeUrl).pipe(z.string().url()),\n label: z.string().max(100).optional(),\n feedUrl: z.string().max(2000).transform(normalizeUrl).pipe(z.string().url()).optional(),\n});\n\nexport type ExternalAccountWriteInput = z.infer<typeof ExternalAccountWriteSchema>;\n","import { z } from 'zod';\n\nimport { entityRefSchema } from './shared.js';\n\n/** Schema enforced by the generic-record write endpoint for `id.sifa.profile.honor`. */\nexport const HonorWriteSchema = z.object({\n title: z.string().min(1).max(200),\n issuer: z.string().max(256).nullable().optional(),\n entityRef: entityRefSchema,\n description: z.string().max(50000).nullable().optional(),\n awardedAt: z.string().nullable().optional(),\n});\n\nexport type HonorWriteInput = z.infer<typeof HonorWriteSchema>;\n","import { z } from 'zod';\n\nimport { externalRecordRefSchema, optionalUrl } from './shared.js';\n\n/**\n * A person named as a member of the project. Naming someone is a claim: they\n * render as a bare handle until they publish an `id.sifa.confirmation`, and\n * confirming never puts this record on their profile. `role` is display only.\n */\nexport const projectMemberWriteSchema = z.object({\n did: z.string().regex(/^did:[a-z]+:[^\\s]+$/, 'must be a DID'),\n role: z.string().max(256).nullable().optional(),\n title: z.string().max(1280).nullable().optional(),\n});\n\n/** Schema enforced by the generic-record write endpoint for `id.sifa.profile.project`. */\nexport const ProjectWriteSchema = z.object({\n name: z.string().min(1).max(256),\n description: z.string().max(50000).nullable().optional(),\n url: optionalUrl(),\n members: z.array(projectMemberWriteSchema).max(50).optional(),\n /** The canonical project.self this entry corresponds to. Composition, not peer sameness. */\n projectRef: externalRecordRefSchema.optional(),\n /** The same project as recorded on another person's profile. */\n sameAs: externalRecordRefSchema.optional(),\n startedAt: z.string().nullable().optional(),\n endedAt: z.string().nullable().optional(),\n});\n\nexport type ProjectWriteInput = z.infer<typeof ProjectWriteSchema>;\n","import { z } from 'zod';\n\nimport { projectMemberWriteSchema } from './project.js';\n\nimport {\n artifactLinkSchema,\n entityRefSchema,\n externalRecordRefSchema,\n optionalUrl,\n skillRefSchema,\n writeLocationSchema,\n} from './shared.js';\n\n/**\n * Schema enforced by the generic-record write endpoint for `id.sifa.profile.involvement`.\n *\n * Represents contribution to an upstream project or community\n * (open-source maintainership, community volunteering, etc.). `upstream` /\n * `upstreamDid` / `upstreamUrl` describe what the user contributed to;\n * `links` collect proof artifacts.\n */\nexport const InvolvementWriteSchema = z.object({\n kind: z.string().min(1).max(256),\n upstream: z.string().max(2560).nullable().optional(),\n upstreamDid: z\n .string()\n .regex(/^did:[a-z]+:[^\\s]+$/, 'must be a DID')\n .nullable()\n .optional(),\n upstreamUrl: optionalUrl(),\n role: z.string().max(2560).nullable().optional(),\n description: z.string().max(50000).nullable().optional(),\n // Freeform YYYY / YYYY-MM / YYYY-MM-DD; validated loosely so partial dates pass.\n startedAt: z.string().max(32).nullable().optional(),\n endedAt: z.string().max(32).nullable().optional(),\n links: z.array(artifactLinkSchema).max(50).nullable().optional(),\n /** Other people who worked on this alongside you. Same shape as project members. */\n collaborators: z.array(projectMemberWriteSchema).max(50).optional(),\n /** The same involvement as recorded on another person's profile. */\n sameAs: externalRecordRefSchema.optional(),\n entityRef: entityRefSchema,\n location: writeLocationSchema,\n skills: z.array(skillRefSchema).max(50).nullable().optional(),\n});\n\nexport type InvolvementWriteInput = z.infer<typeof InvolvementWriteSchema>;\n","import { z } from 'zod';\n\nimport { artifactLinkSchema, entityRefSchema } from './shared.js';\n\n/**\n * Schema enforced by `POST /profile/investment` on sifa-api.\n *\n * An investment is capital the person put in. Roles with duties -- board seats,\n * advisory work -- are positions and use `PositionWriteSchema` instead.\n *\n * Every optional field is nullable so a client can clear it. Omitting a field on\n * update leaves the stored value in place, which would let a corrected status or a\n * withdrawn amount silently persist.\n */\nexport const InvestmentWriteSchema = z.object({\n /** For a limited-partner entry this names the fund, not a portfolio company. */\n company: z.string().min(1).max(256),\n companyDid: z.string().max(256).nullable().optional(),\n entityRef: entityRefSchema.nullable(),\n role: z.string().max(256).nullable().optional(),\n stage: z.string().max(256).nullable().optional(),\n status: z.string().max(256).nullable().optional(),\n via: z.string().max(256).nullable().optional(),\n viaDid: z.string().max(256).nullable().optional(),\n viaEntityRef: entityRefSchema.nullable(),\n /**\n * Optional and empty by default -- cheque size is a personal financial disclosure.\n * Structured rather than free text: an unparseable money string cannot be repaired\n * once people have written them.\n */\n amount: z\n .object({\n value: z.number().int().min(0),\n currency: z.string().length(3),\n })\n .nullable()\n .optional(),\n startedAt: z.string().nullable().optional(),\n endedAt: z.string().nullable().optional(),\n description: z.string().max(50000).nullable().optional(),\n links: z.array(artifactLinkSchema).max(50).nullable().optional(),\n});\n\nexport type InvestmentWriteInput = z.infer<typeof InvestmentWriteSchema>;\n","import { z } from 'zod';\n\n/** Schema enforced by the generic-record write endpoint for `id.sifa.profile.language`. */\nexport const LanguageWriteSchema = z.object({\n name: z.string().min(1).max(64),\n proficiency: z.string().max(50).optional(),\n});\n\nexport type LanguageWriteInput = z.infer<typeof LanguageWriteSchema>;\n","import { z } from 'zod';\n\nimport { externalRecordRefSchema } from './shared.js';\n\n/**\n * Schema enforced by the org-employment-attestation write endpoint on sifa-api.\n *\n * An org attests that a Sifa user (`subject`) held a specific `position` record\n * with `title` between `startedAt` and `endedAt` (inclusive of \"current\" status).\n * The attestation itself is signed by the org's DID; `entityRef` / `companyDid`\n * optionally cross-link the org identifier(s) used at the time.\n */\nexport const OrgEmploymentAttestationWriteSchema = z.object({\n subject: z.string().regex(/^did:[a-z]+:[^\\s]+$/, 'must be a DID'),\n position: externalRecordRefSchema,\n status: z.enum(['current', 'past']),\n title: z.string().min(1).max(2560),\n startedAt: z.string().max(32),\n entityRef: z.string().max(2048).nullable().optional(),\n companyDid: z\n .string()\n .regex(/^did:[a-z]+:[^\\s]+$/, 'must be a DID')\n .nullable()\n .optional(),\n endedAt: z.string().max(32).nullable().optional(),\n comment: z.string().max(3000).nullable().optional(),\n createdAt: z.string(),\n});\n\nexport type OrgEmploymentAttestationWriteInput = z.infer<\n typeof OrgEmploymentAttestationWriteSchema\n>;\n","import { z } from 'zod';\n\n/**\n * Schema enforced by the org-profile write endpoint on sifa-api.\n *\n * Sifa-managed org identity: name + description + contact channel plus\n * `entityRefs` linking the org to portable identifiers (Wikidata / ROR /\n * LEI / sifa.id URI, http(s) enforced elsewhere).\n */\n/** Structured physical address (community.lexicon.location.address; all fields optional). */\nconst orgAddressWriteSchema = z.object({\n country: z.string().max(10).nullable().optional(),\n postalCode: z.string().max(20).nullable().optional(),\n region: z.string().max(1000).nullable().optional(),\n locality: z.string().max(1000).nullable().optional(),\n street: z.string().max(2000).nullable().optional(),\n name: z.string().max(1000).nullable().optional(),\n});\n\n/** A featured link (both `name` and `url` required). */\nconst orgLinkWriteSchema = z.object({\n name: z.string().min(1).max(600),\n url: z.string().max(2048),\n});\n\nexport const OrgProfileWriteSchema = z.object({\n name: z.string().min(1).max(2000),\n description: z.string().max(50000).nullable().optional(),\n logo: z.unknown().nullable().optional(),\n website: z.string().max(2048).nullable().optional(),\n entityRefs: z.array(z.string().max(2048)).max(20).nullable().optional(),\n contact: z.string().max(320).nullable().optional(),\n addresses: z.array(orgAddressWriteSchema).max(10).nullable().optional(),\n companySize: z.string().max(20).nullable().optional(),\n links: z.array(orgLinkWriteSchema).max(10).nullable().optional(),\n personalProfileVisible: z.boolean().nullable().optional(),\n createdAt: z.string(),\n});\n\nexport type OrgProfileWriteInput = z.infer<typeof OrgProfileWriteSchema>;\n","import { z } from 'zod';\n\n/**\n * Body accepted by `POST /api/org/claim` (the org claim wizard finalize).\n *\n * Mirrors `claimBodySchema` in sifa-api `src/routes/org-claim.ts` EXACTLY: the\n * editable profile fields plus `entityRefs` (at least one -- a claim without a\n * binding renders but aggregates nothing) and the `authorityAck` checkbox\n * (`literal(true)` -- the logged \"I am authorized to represent this org\"\n * assertion). `logo`/`createdAt` are NOT part of the claim body (the endpoint\n * sets `createdAt` server-side and the logo is uploaded separately).\n */\nexport const OrgClaimRequestSchema = z.object({\n name: z.string().min(1).max(2000),\n description: z.string().max(50000).optional(),\n website: z.string().max(2048).optional(),\n contact: z.string().max(320).optional(),\n entityRefs: z.array(z.string().min(1).max(2048)).min(1).max(20),\n /**\n * Sole-trader opt-in: keep the claimant's personal profile visible at `/p/`\n * alongside the new company page at `/c/`. Omitted or false presents the\n * account solely as an organization.\n */\n personalProfileVisible: z.boolean().optional(),\n authorityAck: z.literal(true),\n});\n\nexport type OrgClaimRequestInput = z.infer<typeof OrgClaimRequestSchema>;\n","import { z } from 'zod';\n\n/**\n * Blob-ref passthrough for the org logo. Mirrors the `blobRefSchema` validated\n * by `PUT /api/org/profile` in sifa-api `src/routes/org-settings.ts` -- the\n * shape is validated, then written to the PDS verbatim.\n */\nconst orgLogoBlobSchema = z.object({\n $type: z.literal('blob'),\n ref: z.object({ $link: z.string().min(1) }),\n mimeType: z.string().min(1).max(255),\n size: z.number().int().nonnegative(),\n});\n\n/**\n * Body accepted by `PUT /api/org/profile` (edit the org record).\n *\n * Mirrors `profileBodySchema` in sifa-api `src/routes/org-settings.ts` EXACTLY.\n * Distinct from {@link OrgClaimRequestSchema}: no `authorityAck` (already\n * asserted at claim time), and an optional `logo` blob ref (a cleared field is\n * omitted, driving the fresh-from-body PDS PUT -- no spread-merge).\n */\nexport const OrgProfileUpdateRequestSchema = z.object({\n name: z.string().min(1).max(2000),\n description: z.string().max(50000).optional(),\n website: z.string().max(2048).optional(),\n contact: z.string().max(320).optional(),\n entityRefs: z.array(z.string().min(1).max(2048)).min(1).max(20),\n logo: orgLogoBlobSchema.optional(),\n /** Sole-trader opt-in; see {@link OrgClaimRequestSchema}. Flippable after the claim. */\n personalProfileVisible: z.boolean().optional(),\n});\n\nexport type OrgProfileUpdateRequestInput = z.infer<typeof OrgProfileUpdateRequestSchema>;\n\n/**\n * Body accepted by `POST /api/org/domains/challenge` (issue a one-time DNS TXT\n * challenge). Mirrors `challengeBodySchema` in sifa-api.\n */\nexport const OrgDomainChallengeRequestSchema = z.object({\n domain: z.string().min(1).max(255),\n});\n\nexport type OrgDomainChallengeRequestInput = z.infer<typeof OrgDomainChallengeRequestSchema>;\n\n/**\n * Body accepted by `POST /api/org/domains/verify` (verify a challenge via DoH\n * TXT lookup). Mirrors `verifyBodySchema` in sifa-api.\n */\nexport const OrgDomainVerifyRequestSchema = z.object({\n token: z.string().min(1).max(2048),\n});\n\nexport type OrgDomainVerifyRequestInput = z.infer<typeof OrgDomainVerifyRequestSchema>;\n\n/**\n * Body accepted by `POST` and `DELETE /api/org/notification-emails` (add /\n * remove a notification address). Mirrors `notificationEmailBodySchema` in\n * sifa-api. The bound-domain check is server-side (the address must use a\n * domain the org controls).\n */\nexport const OrgNotificationEmailRequestSchema = z.object({\n email: z.string().email().max(320),\n});\n\nexport type OrgNotificationEmailRequestInput = z.infer<typeof OrgNotificationEmailRequestSchema>;\n","import { z } from 'zod';\n\nimport { entityRefSchema, skillRefSchema, writeLocationSchema } from './shared.js';\n\n/**\n * Schema enforced by `POST /profile/positions` on sifa-api.\n *\n * Client-side callers can `.safeParse(...)` this before submitting to catch\n * obvious problems (empty `title`, over-length text) before the network\n * round-trip. If it passes here, the API will accept the write modulo\n * transport / auth failures.\n *\n * `company` is optional to support freelancer / independent employment types\n * where the position has no employer. This matches sifa-api's current\n * behavior in `src/routes/schemas.ts` and the SDK's lexicon schema\n * (`ProfilePositionRecordSchema`) since sifa-sdk #184.\n */\nexport const PositionWriteSchema = z.object({\n company: z.string().min(1).max(256).nullable().optional(),\n entityRef: entityRefSchema,\n title: z.string().min(1).max(256),\n description: z.string().max(50000).nullable().optional(),\n employmentType: z.string().nullable().optional(),\n // Held-on-behalf-of disclosure for board and advisory roles. Nullable so a client\n // can clear it when a seat stops being a representative one.\n onBehalfOf: z.string().max(256).nullable().optional(),\n onBehalfOfDid: z.string().max(256).nullable().optional(),\n onBehalfOfEntityRef: entityRefSchema.nullable(),\n workplaceType: z.string().nullable().optional(),\n location: writeLocationSchema,\n startedAt: z.string().nullable().optional(),\n endedAt: z.string().nullable().optional(),\n skills: z.array(skillRefSchema).max(50).nullable().optional(),\n});\n\nexport type PositionWriteInput = z.infer<typeof PositionWriteSchema>;\n","import { z } from 'zod';\n\nimport {\n externalRecordRefSchema,\n isValidDateOnly,\n presentationLinkSchema,\n writeLocationSchema,\n} from './shared.js';\n\n/**\n * Schema enforced by the generic-record write endpoint for `id.sifa.profile.presentationDelivery`.\n *\n * Records a specific delivery of a presentation (e.g., at a conference).\n * `presentationRef` optionally points at the parent `id.sifa.profile.presentation`\n * record; `eventRef` optionally links a Sifa event record; `coSpeakers` are\n * DIDs of people who delivered alongside the profile owner.\n */\nexport const PresentationDeliveryWriteSchema = z.object({\n presentationRef: externalRecordRefSchema.optional(),\n /**\n * The same session as recorded on another person's profile. Distinct from\n * presentationRef above, which points at the talk this session delivered.\n */\n sameAs: externalRecordRefSchema.optional(),\n title: z.string().max(3000).nullable().optional(),\n role: z.string().max(640).nullable().optional(),\n eventName: z.string().max(3000).nullable().optional(),\n date: z.string().refine(isValidDateOnly, 'must be a valid YYYY-MM-DD date').nullable().optional(),\n location: z.string().max(2560).nullable().optional(),\n // Structured community.lexicon.location.address; `location` above stays as\n // the legacy free-text fallback. writeLocationSchema is already nullable+optional.\n address: writeLocationSchema,\n mode: z.string().max(256).nullable().optional(),\n status: z.string().max(256).nullable().optional(),\n links: z.array(presentationLinkSchema).max(20).optional(),\n eventRef: externalRecordRefSchema.optional(),\n coSpeakers: z\n .array(z.string().regex(/^did:[a-z]+:[^\\s]+$/, 'must be a DID'))\n .max(20)\n .optional(),\n});\n\nexport type PresentationDeliveryWriteInput = z.infer<typeof PresentationDeliveryWriteSchema>;\n","import { z } from 'zod';\n\n/**\n * Blob-ref passthrough shared by records that carry an uploaded blob (org logo,\n * presentation cover image, ...). Mirrors the `blobRefSchema` validated by the\n * sifa-api write endpoints -- the shape is validated, then written to the PDS\n * verbatim.\n */\nexport const BlobRefSchema = z.object({\n $type: z.literal('blob'),\n ref: z.object({ $link: z.string().min(1) }),\n mimeType: z.string().min(1).max(255),\n size: z.number().int().nonnegative(),\n});\n\nexport type BlobRef = z.infer<typeof BlobRefSchema>;\n","import { z } from 'zod';\n\nimport { BlobRefSchema } from '../blob-ref.js';\nimport { externalRecordRefSchema, presentationLinkSchema } from './shared.js';\n\n/**\n * Schema enforced by the generic-record write endpoint for `id.sifa.profile.presentation`.\n *\n * Describes a talk / presentation the user can give. `duration` bounds the\n * runtime; `intendedAudiences` names who it's aimed at; `writeupRef` is an\n * optional at-uri pointer to a companion writeup record.\n */\nexport const PresentationWriteSchema = z.object({\n title: z.string().min(1).max(3000),\n description: z.string().max(50000).nullable().optional(),\n duration: z\n .object({\n minMinutes: z.number().int().min(1),\n maxMinutes: z.number().int().min(1).optional(),\n })\n .refine((d) => d.maxMinutes === undefined || d.maxMinutes >= d.minMinutes, {\n message: 'maxMinutes must be greater than or equal to minMinutes',\n path: ['maxMinutes'],\n })\n .optional(),\n intendedAudiences: z.array(z.string().max(1000)).max(20).optional(),\n links: z.array(presentationLinkSchema).max(20).optional(),\n writeupRef: externalRecordRefSchema.optional(),\n coverImage: BlobRefSchema.nullable().optional(),\n});\n\nexport type PresentationWriteInput = z.infer<typeof PresentationWriteSchema>;\n","import { z } from 'zod';\n\n/**\n * Schema enforced by `POST /profile/locations` on sifa-api.\n *\n * Mirrors the inner object of `writeLocationSchema`: accepts both the community\n * shape (`country`, `locality`) and the legacy shape (`countryCode`, `city`)\n * during the dual-read window. sifa-web #840 switched outbound writes to the\n * community shape; older clients may still send the legacy shape. All address\n * fields are `.nullish()` so explicit `null` from API echoes is accepted\n * (see sifa-api #426).\n *\n * The route handler hands `address` to `buildPdsLocation`, which normalizes\n * either input and enforces alpha-2 on the wire to PDS — returning a 400 with\n * `message: \"address.country (alpha-2) is required\"` when no usable code is\n * present. The schema stays permissive on country length here and lets\n * `buildPdsLocation` be the single enforcement point.\n */\nexport const ProfileLocationWriteSchema = z.object({\n address: z.object({\n country: z.string().nullish(),\n countryCode: z.string().length(2).nullish(),\n region: z.string().nullish(),\n city: z.string().nullish(),\n locality: z.string().nullish(),\n street: z.string().nullish(),\n postalCode: z.string().nullish(),\n name: z.string().nullish(),\n }),\n type: z.string().min(1),\n label: z.string().max(60).nullable().optional(),\n isPrimary: z.boolean().optional(),\n});\n\nexport type ProfileLocationWriteInput = z.infer<typeof ProfileLocationWriteSchema>;\n","import { z } from 'zod';\n\nimport { writeLocationSchema } from './shared.js';\n\n/**\n * Schema enforced by `POST /profile/self` on sifa-api.\n *\n * `.passthrough()` so the API accepts fields not yet enumerated here (used for\n * gradual rollout of new profile-self keys without requiring lockstep bumps\n * between web/api). Note this means client validation on this schema will\n * NEVER reject \"unknown\" fields — the divergence is intentional.\n *\n * Grapheme caps (e.g. 64 on given/familyName) are enforced client-side by the\n * SDK's lexicon schema; the write schema only guards the byte-length ceiling.\n */\nexport const ProfileSelfWriteSchema = z\n .object({\n headline: z.string().max(300).optional(),\n about: z.string().max(50000).optional(),\n givenName: z.string().max(640).optional(),\n familyName: z.string().max(640).optional(),\n industries: z\n .array(\n z.object({\n industry: z.string().max(100),\n domain: z.string().max(100).optional(),\n }),\n )\n .max(10)\n .optional(),\n location: writeLocationSchema,\n openTo: z.array(z.string()).max(10).optional(),\n preferredWorkplace: z.array(z.string()).max(5).optional(),\n availableFromUtc: z.number().int().min(0).max(23).optional(),\n availableToUtc: z.number().int().min(0).max(23).optional(),\n langs: z.array(z.string()).max(3).optional(),\n discoverable: z.boolean().optional(),\n })\n .passthrough();\n\nexport type ProfileSelfWriteInput = z.infer<typeof ProfileSelfWriteSchema>;\n","import { z } from 'zod';\n\nimport { optionalUrl } from './shared.js';\n\n/**\n * A co-author named on the publication.\n *\n * Name-first, unlike a project member, and that is the lexicon's shape rather\n * than an inconsistency: a paper has co-authors whether or not they are on\n * atproto. A name alone is a complete entry that renders as written and claims\n * nothing about any account.\n *\n * `did` is the optional extra that turns the entry into a claim. The named\n * person renders as a bare name until they publish an `id.sifa.confirmation`,\n * and confirming never puts this record on their profile.\n */\nexport const publicationAuthorWriteSchema = z.object({\n name: z.string().min(1).max(100),\n did: z\n .string()\n .regex(/^did:[a-z]+:[^\\s]+$/, 'must be a DID')\n .optional(),\n});\n\n/** Schema enforced by the generic-record write endpoint for `id.sifa.profile.publication`. */\nexport const PublicationWriteSchema = z.object({\n title: z.string().min(1).max(200),\n subtitle: z.string().max(2000).nullable().optional(),\n publisher: z.string().max(256).nullable().optional(),\n url: optionalUrl(),\n description: z.string().max(50000).nullable().optional(),\n publishedAt: z.string().nullable().optional(),\n // Absent here until now, so the write route stripped every co-author before\n // it reached the PDS: the lexicon field, the indexer, the claim flattening\n // and the editor all existed, and nothing joined them. An object schema\n // drops unknown keys silently, so the editor reported success and wrote\n // nothing.\n authors: z.array(publicationAuthorWriteSchema).max(50).optional(),\n});\n\nexport type PublicationWriteInput = z.infer<typeof PublicationWriteSchema>;\n","import { z } from 'zod';\n\n/**\n * Grapheme-aware refinement matching the AT Protocol lexicon `maxGraphemes`\n * constraint. JS strings are sequences of UTF-16 code units, but lexicon\n * `maxGraphemes` counts user-perceived characters (grapheme clusters), so\n * emoji sequences, regional indicators, ZWJ joins, and combining marks all\n * count as one unit each. We use `Intl.Segmenter` to enforce this correctly.\n */\nexport function maxGraphemes(max: number) {\n return (value: string): boolean => {\n const segmenter = new Intl.Segmenter(undefined, { granularity: 'grapheme' });\n let count = 0;\n for (const _ of segmenter.segment(value)) {\n count++;\n if (count > max) return false;\n }\n return true;\n };\n}\n\n/** Decentralized identifier, AT Protocol `format: did`. */\nexport const didSchema = z.string().regex(/^did:[a-z]+:[a-zA-Z0-9._:%-]+$/, 'Invalid DID');\n\n/** RFC 3339 datetime with timezone offset, AT Protocol `format: datetime`. */\nexport const datetimeSchema = z.string().datetime({ offset: true });\n\n/**\n * Freeform calendar date for user-facing profile dates (start/end, issued,\n * completed, awarded, published, etc.). Accepts a bare year, year-month,\n * year-month-day, or a full datetime (so a legacy record's RFC-3339 date maps\n * through on backfill without loss). NOT strict `datetime` -- users typically\n * remember only month/year, and LinkedIn-importer writes carry partial dates,\n * so the lexicons document these as freeform `YYYY-MM` / `YYYY-MM-DD`. Record\n * metadata like `createdAt` stays on `datetimeSchema`.\n */\nexport const partialDateSchema = z\n .string()\n .regex(/^\\d{4}(-\\d{2}(-\\d{2}(T.+)?)?)?$/, 'Expected YYYY, YYYY-MM, YYYY-MM-DD, or a datetime');\n\n/** Generic AT-URI, AT Protocol `format: at-uri`. */\nexport const atUriSchema = z.string().regex(/^at:\\/\\/[^\\s]+$/, 'Invalid AT-URI');\n\n/** Content identifier, AT Protocol `format: cid`. Loose validation -- accepts CIDv0 and CIDv1. */\nexport const cidSchema = z\n .string()\n .regex(/^(Qm[1-9A-HJ-NP-Za-km-z]{44}|b[A-Za-z0-9+/=]+)$/, 'Invalid CID');\n\n/** BCP 47 language tag, AT Protocol `format: language`. */\nexport const languageTagSchema = z\n .string()\n .regex(/^[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*$/, 'Invalid BCP 47 language tag');\n\n/** Generic URI, AT Protocol `format: uri`. */\nexport const uriSchema = z.string().url();\n\n/**\n * StrongRef shape from `com.atproto.repo.strongRef` -- pins a record by both\n * AT-URI (identity) and CID (version).\n */\nexport const strongRefSchema = z.object({\n uri: atUriSchema,\n cid: cidSchema,\n});\n\n/**\n * Reference to an `id.sifa.profile.skill` record by AT-URI. Mirrors\n * `id.sifa.defs#skillRef`, which carries no CID at all: skills are mutable\n * records in the same user's repo, so the reference resolves live and tracks\n * edits to the target.\n */\nexport const skillRefSchema = z.object({\n uri: atUriSchema,\n});\n\n/**\n * Reference to a record by AT-URI, with an optional CID. Mirrors\n * `id.sifa.defs#externalRecordRef`. Unlike a strongRef the CID is optional:\n * consumers resolve the AT-URI live so the reference tracks edits to the\n * target, and the CID is a best-effort integrity hint only.\n */\nexport const externalRecordRefSchema = z.object({\n uri: atUriSchema,\n cid: cidSchema.optional(),\n});\n\n/**\n * Self-labels shape from `com.atproto.label.defs#selfLabels`. Modelled\n * permissively because clients rarely construct this directly; the AppView\n * handles label validation.\n */\nexport const selfLabelsSchema = z.object({\n $type: z.literal('com.atproto.label.defs#selfLabels').optional(),\n values: z.array(z.object({ val: z.string() })),\n});\n","import { z } from 'zod';\n\nimport { maxGraphemes } from '../shared.js';\n\n/** Schema enforced by `POST /profile/skills` on sifa-api. */\nexport const SkillWriteSchema = z.object({\n name: z.string().min(1).max(100),\n category: z.string().max(100).optional(),\n // Mirror the record schema bound (id.sifa.profile.skill) so a value that\n // passes here cannot then fail the PDS write. Empty/whitespace-only input is\n // treated as absent so we never persist a meaningless grouping label.\n subCategory: z.preprocess(\n (v) => (typeof v === 'string' && v.trim() === '' ? undefined : v),\n z.string().refine(maxGraphemes(64)).max(640).optional(),\n ),\n});\n\nexport type SkillWriteInput = z.infer<typeof SkillWriteSchema>;\n","import { z } from 'zod';\n\nimport { entityRefSchema } from './shared.js';\n\n/** Schema enforced by the generic-record write endpoint for `id.sifa.profile.volunteering`. */\nexport const VolunteeringWriteSchema = z.object({\n organization: z.string().min(1).max(256),\n entityRef: entityRefSchema,\n role: z.string().max(256).nullable().optional(),\n cause: z.string().max(256).nullable().optional(),\n description: z.string().max(50000).nullable().optional(),\n startedAt: z.string().nullable().optional(),\n endedAt: z.string().nullable().optional(),\n});\n\nexport type VolunteeringWriteInput = z.infer<typeof VolunteeringWriteSchema>;\n"]}
1
+ {"version":3,"sources":["../../../src/schemas/write/shared.ts","../../../src/schemas/write/certification.ts","../../../src/schemas/write/course.ts","../../../src/schemas/write/education.ts","../../../src/schemas/write/external-account.ts","../../../src/schemas/write/honor.ts","../../../src/schemas/write/project.ts","../../../src/schemas/write/involvement.ts","../../../src/schemas/write/investment.ts","../../../src/schemas/write/language.ts","../../../src/schemas/write/org-employment-attestation.ts","../../../src/schemas/write/org-profile.ts","../../../src/schemas/write/org-claim.ts","../../../src/schemas/write/org-settings.ts","../../../src/schemas/write/position.ts","../../../src/schemas/write/presentation-delivery.ts","../../../src/schemas/blob-ref.ts","../../../src/schemas/write/presentation.ts","../../../src/schemas/write/profile-location.ts","../../../src/schemas/write/profile-self.ts","../../../src/schemas/write/publication.ts","../../../src/schemas/shared.ts","../../../src/schemas/write/skill.ts","../../../src/schemas/write/volunteering.ts"],"names":["z"],"mappings":"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","file":"index.js","sourcesContent":["import { z } from 'zod';\n\n/** Prepend `https://` if no scheme is present. */\nexport function normalizeUrl(val: string): string {\n const trimmed = val.trim();\n if (/^https?:\\/\\//i.test(trimmed)) return trimmed;\n return `https://${trimmed}`;\n}\n\n/**\n * Accept a URL string or silently drop it if invalid (returns `undefined`).\n * Preserves the write-time policy: bad URLs from imports are dropped, not rejected.\n */\nexport const optionalUrl = () =>\n z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n try {\n new URL(val);\n return val;\n } catch {\n return undefined;\n }\n });\n\n/**\n * Location shape accepted by the sifa-api write endpoints.\n *\n * Accepts BOTH the legacy shape (`id.sifa.defs#locationAddress`: `countryCode`,\n * `region`, `city`) AND the new community shape\n * (`community.lexicon.location.address`: `country`, `region`, `locality`,\n * `street?`, `postalCode?`, `name?`). The frontend reads location records from\n * the API and echoes them back on save. The API serializer emits explicit `null`\n * for absent fields (not `undefined`), so every field uses `.nullish()`\n * (`string | null | undefined`) instead of `.optional()` (`string | undefined`).\n *\n * `buildPdsLocation` on the server handles conversion to the PDS shape (always\n * emitting the new community shape) and returns `undefined` when neither\n * `country` nor `countryCode` is usable.\n */\nexport const writeLocationSchema = z\n .union([\n z.object({\n country: z.string().nullish(),\n countryCode: z.string().length(2).nullish(),\n region: z.string().nullish(),\n city: z.string().nullish(),\n locality: z.string().nullish(),\n street: z.string().nullish(),\n postalCode: z.string().nullish(),\n name: z.string().nullish(),\n }),\n z.string(),\n ])\n .nullable()\n .optional();\n\n/** Skill reference: a strong ref to a canonical skill record. */\nexport const skillRefSchema = z.object({\n uri: z.string(),\n});\n\n/**\n * Platforms accepted by the external-account write endpoint.\n *\n * NOTE: this list intentionally differs from `PLATFORM_LABELS` in the SDK's\n * `/taxonomy` subpath. `VALID_PLATFORMS` is what sifa-api's `POST /external-accounts`\n * endpoint enforces; `PLATFORM_LABELS` is the display taxonomy used by the profile\n * UI. Reconciling them is a separate follow-up (see #TBD). For now the two are\n * mirrored verbatim from their prior definitions to preserve behavior.\n */\nexport const VALID_PLATFORMS = [\n 'rss',\n 'fediverse',\n 'twitter',\n 'instagram',\n 'github',\n 'codeberg',\n 'gitlab',\n 'forgejo',\n 'gitea',\n 'youtube',\n 'linkedin',\n 'substack',\n 'website',\n 'orcid',\n 'keyoxide',\n 'other',\n] as const;\n\nexport type ValidPlatform = (typeof VALID_PLATFORMS)[number];\n\n// ---- pure sanitization primitives (previously in sifa-api/src/lib/sanitize.ts) ----\n\n/**\n * Returns `input` when it is an http(s) URL string, else `null`. Blocks\n * dangerous schemes (`javascript:`, `data:`, etc.) from being stored and\n * later rendered.\n */\nexport function httpUrlOrNull(input: unknown): string | null {\n if (typeof input !== 'string') return null;\n try {\n const url = new URL(input);\n return url.protocol === 'http:' || url.protocol === 'https:' ? input : null;\n } catch {\n return null;\n }\n}\n\nconst DATE_ONLY_RE = /^\\d{4}-\\d{2}-\\d{2}$/;\n\n/**\n * Strict calendar-date validator. Returns `true` for `YYYY-MM-DD` strings\n * that name a real day, rejecting impossible values (`2024-02-30`, `2024-13-01`)\n * by requiring the JavaScript `Date` round-trip to preserve the input.\n */\nexport function isValidDateOnly(input: unknown): boolean {\n if (typeof input !== 'string' || !DATE_ONLY_RE.test(input)) return false;\n const parsed = new Date(`${input}T00:00:00Z`);\n return !Number.isNaN(parsed.getTime()) && parsed.toISOString().startsWith(input);\n}\n\n// ---- shared write-schema fragments used by multiple sections ----\n\n/**\n * Portable org entity identifier (Wikidata / ROR / LEI / sifa.id URI) chosen\n * from the typeahead. Constrained to http(s) so a script-bearing scheme can't\n * be written to the PDS record. Absent for free-text / unlinked records.\n * Shared by the org-bearing sections (position, education, certification,\n * volunteering, course, honor).\n */\nexport const entityRefSchema = z\n .string()\n .url()\n .refine((s) => /^https?:\\/\\//i.test(s), { message: 'entityRef must be an http(s) URL' })\n .max(2048)\n .optional();\n\n/**\n * One proof link on an involvement record (`id.sifa.defs#artifactLink`).\n * Only http(s) URLs are accepted so a dangerous scheme is never written to\n * the PDS.\n */\nexport const artifactLinkSchema = z.object({\n url: z\n .string()\n .max(2048)\n .refine((v) => httpUrlOrNull(v) !== null, 'must be an http(s) URL'),\n kind: z.string().max(64).nullable().optional(),\n label: z.string().max(2000).nullable().optional(),\n});\n\n/**\n * Reference to a record by at-uri, with an optional CID\n * (`id.sifa.defs#externalRecordRef`).\n */\nexport const externalRecordRefSchema = z.object({\n uri: z.string().regex(/^at:\\/\\/[^/\\s]+\\/[^/\\s]+\\/[^/\\s]+$/, 'must be an at-uri'),\n // CIDv0 (`Qm…`) or CIDv1 (base32, `b…`). Loose but rejects arbitrary strings.\n cid: z\n .string()\n .max(256)\n .regex(/^(Qm[1-9A-HJ-NP-Za-km-z]{44}|b[A-Za-z2-7]+)$/, 'must be a CID')\n .optional(),\n});\n\n/** Link attached to a presentation record. */\nexport const presentationLinkSchema = z.object({\n uri: z\n .string()\n .max(2048)\n .refine((v) => httpUrlOrNull(v) !== null, 'must be an http(s) URL'),\n label: z.string().max(640).nullable().optional(),\n type: z.string().max(256).nullable().optional(),\n});\n","import { z } from 'zod';\n\nimport { entityRefSchema, optionalUrl } from './shared.js';\n\n/** Schema enforced by the generic-record write endpoint for `id.sifa.profile.certification`. */\nexport const CertificationWriteSchema = z.object({\n name: z.string().min(1).max(256),\n authority: z.string().max(256).nullable().optional(),\n entityRef: entityRefSchema,\n credentialId: z.string().max(256).nullable().optional(),\n credentialUrl: optionalUrl(),\n issuedAt: z.string().nullable().optional(),\n expiresAt: z.string().nullable().optional(),\n});\n\nexport type CertificationWriteInput = z.infer<typeof CertificationWriteSchema>;\n","import { z } from 'zod';\n\nimport { entityRefSchema } from './shared.js';\n\n/** Schema enforced by the generic-record write endpoint for `id.sifa.profile.course`. */\nexport const CourseWriteSchema = z.object({\n name: z.string().min(1).max(200),\n number: z.string().max(50).nullable().optional(),\n institution: z.string().max(256).nullable().optional(),\n entityRef: entityRefSchema,\n /**\n * at-uri of the linked `id.sifa.profile.certification` record. Structurally\n * validated (`at://authority/collection/rkey`) so a bad value can't be\n * stored and later split into a bogus rkey.\n */\n credential: z\n .string()\n .max(512)\n .regex(/^at:\\/\\/[^/\\s]+\\/[^/\\s]+\\/[^/\\s]+$/, 'must be an at-uri')\n .nullable()\n .optional(),\n /**\n * RFC 3339 datetime the course was completed. The editor collects month\n * granularity (YYYY-MM) and converts to a datetime before the write; stored\n * and passed through as-is, mirroring `certification.issuedAt`.\n */\n completedAt: z.string().nullable().optional(),\n});\n\nexport type CourseWriteInput = z.infer<typeof CourseWriteSchema>;\n","import { z } from 'zod';\n\nimport { entityRefSchema } from './shared.js';\n\n/** Schema enforced by `POST /profile/education` on sifa-api. */\nexport const EducationWriteSchema = z.object({\n institution: z.string().min(1).max(256),\n entityRef: entityRefSchema,\n degree: z.string().max(256).nullable().optional(),\n fieldOfStudy: z.string().max(256).nullable().optional(),\n description: z.string().max(50000).nullable().optional(),\n activities: z.string().max(1000).nullable().optional(),\n startedAt: z.string().nullable().optional(),\n endedAt: z.string().nullable().optional(),\n});\n\nexport type EducationWriteInput = z.infer<typeof EducationWriteSchema>;\n","import { z } from 'zod';\n\nimport { VALID_PLATFORMS, normalizeUrl } from './shared.js';\n\n/** Schema enforced by `POST /external-accounts` on sifa-api. */\nexport const ExternalAccountWriteSchema = z.object({\n platform: z.enum(VALID_PLATFORMS),\n url: z.string().max(2000).transform(normalizeUrl).pipe(z.string().url()),\n label: z.string().max(100).optional(),\n feedUrl: z.string().max(2000).transform(normalizeUrl).pipe(z.string().url()).optional(),\n});\n\nexport type ExternalAccountWriteInput = z.infer<typeof ExternalAccountWriteSchema>;\n","import { z } from 'zod';\n\nimport { entityRefSchema } from './shared.js';\n\n/** Schema enforced by the generic-record write endpoint for `id.sifa.profile.honor`. */\nexport const HonorWriteSchema = z.object({\n title: z.string().min(1).max(200),\n issuer: z.string().max(256).nullable().optional(),\n entityRef: entityRefSchema,\n description: z.string().max(50000).nullable().optional(),\n awardedAt: z.string().nullable().optional(),\n});\n\nexport type HonorWriteInput = z.infer<typeof HonorWriteSchema>;\n","import { z } from 'zod';\n\nimport { externalRecordRefSchema, optionalUrl } from './shared.js';\n\n/**\n * A person named as a member of the project. Naming someone is a claim: they\n * render as a bare handle until they publish an `id.sifa.confirmation`, and\n * confirming never puts this record on their profile. `role` is display only.\n */\nexport const projectMemberWriteSchema = z.object({\n did: z.string().regex(/^did:[a-z]+:[^\\s]+$/, 'must be a DID'),\n role: z.string().max(256).nullable().optional(),\n title: z.string().max(1280).nullable().optional(),\n});\n\n/** Schema enforced by the generic-record write endpoint for `id.sifa.profile.project`. */\nexport const ProjectWriteSchema = z.object({\n name: z.string().min(1).max(256),\n description: z.string().max(50000).nullable().optional(),\n url: optionalUrl(),\n members: z.array(projectMemberWriteSchema).max(50).optional(),\n /** The canonical project.self this entry corresponds to. Composition, not peer sameness. */\n projectRef: externalRecordRefSchema.optional(),\n /** The same project as recorded on another person's profile. */\n sameAs: externalRecordRefSchema.optional(),\n startedAt: z.string().nullable().optional(),\n endedAt: z.string().nullable().optional(),\n});\n\nexport type ProjectWriteInput = z.infer<typeof ProjectWriteSchema>;\n","import { z } from 'zod';\n\nimport { projectMemberWriteSchema } from './project.js';\n\nimport {\n artifactLinkSchema,\n entityRefSchema,\n externalRecordRefSchema,\n optionalUrl,\n skillRefSchema,\n writeLocationSchema,\n} from './shared.js';\n\n/**\n * Schema enforced by the generic-record write endpoint for `id.sifa.profile.involvement`.\n *\n * Represents contribution to an upstream project or community\n * (open-source maintainership, community volunteering, etc.). `upstream` /\n * `upstreamDid` / `upstreamUrl` describe what the user contributed to;\n * `links` collect proof artifacts.\n */\nexport const InvolvementWriteSchema = z.object({\n kind: z.string().min(1).max(256),\n upstream: z.string().max(2560).nullable().optional(),\n upstreamDid: z\n .string()\n .regex(/^did:[a-z]+:[^\\s]+$/, 'must be a DID')\n .nullable()\n .optional(),\n upstreamUrl: optionalUrl(),\n role: z.string().max(2560).nullable().optional(),\n description: z.string().max(50000).nullable().optional(),\n // Freeform YYYY / YYYY-MM / YYYY-MM-DD; validated loosely so partial dates pass.\n startedAt: z.string().max(32).nullable().optional(),\n endedAt: z.string().max(32).nullable().optional(),\n links: z.array(artifactLinkSchema).max(50).nullable().optional(),\n /** Other people who worked on this alongside you. Same shape as project members. */\n collaborators: z.array(projectMemberWriteSchema).max(50).optional(),\n /** The same involvement as recorded on another person's profile. */\n sameAs: externalRecordRefSchema.optional(),\n entityRef: entityRefSchema,\n location: writeLocationSchema,\n skills: z.array(skillRefSchema).max(50).nullable().optional(),\n});\n\nexport type InvolvementWriteInput = z.infer<typeof InvolvementWriteSchema>;\n","import { z } from 'zod';\n\nimport { artifactLinkSchema, entityRefSchema } from './shared.js';\n\n/**\n * Schema enforced by `POST /profile/investment` on sifa-api.\n *\n * An investment is capital the person put in. Roles with duties -- board seats,\n * advisory work -- are positions and use `PositionWriteSchema` instead.\n *\n * Every optional field is nullable so a client can clear it. Omitting a field on\n * update leaves the stored value in place, which would let a corrected status or a\n * withdrawn amount silently persist.\n */\nexport const InvestmentWriteSchema = z.object({\n /** For a limited-partner entry this names the fund, not a portfolio company. */\n company: z.string().min(1).max(256),\n companyDid: z.string().max(256).nullable().optional(),\n entityRef: entityRefSchema.nullable(),\n role: z.string().max(256).nullable().optional(),\n stage: z.string().max(256).nullable().optional(),\n status: z.string().max(256).nullable().optional(),\n via: z.string().max(256).nullable().optional(),\n viaDid: z.string().max(256).nullable().optional(),\n viaEntityRef: entityRefSchema.nullable(),\n /**\n * Optional and empty by default -- cheque size is a personal financial disclosure.\n * Structured rather than free text: an unparseable money string cannot be repaired\n * once people have written them.\n */\n amount: z\n .object({\n value: z.number().int().min(0),\n currency: z.string().length(3),\n })\n .nullable()\n .optional(),\n startedAt: z.string().nullable().optional(),\n endedAt: z.string().nullable().optional(),\n description: z.string().max(50000).nullable().optional(),\n links: z.array(artifactLinkSchema).max(50).nullable().optional(),\n});\n\nexport type InvestmentWriteInput = z.infer<typeof InvestmentWriteSchema>;\n","import { z } from 'zod';\n\n/** Schema enforced by the generic-record write endpoint for `id.sifa.profile.language`. */\nexport const LanguageWriteSchema = z.object({\n name: z.string().min(1).max(64),\n proficiency: z.string().max(50).optional(),\n});\n\nexport type LanguageWriteInput = z.infer<typeof LanguageWriteSchema>;\n","import { z } from 'zod';\n\nimport { externalRecordRefSchema } from './shared.js';\n\n/**\n * Schema enforced by the org-employment-attestation write endpoint on sifa-api.\n *\n * An org attests that a Sifa user (`subject`) held a specific `position` record\n * with `title` between `startedAt` and `endedAt` (inclusive of \"current\" status).\n * The attestation itself is signed by the org's DID; `entityRef` / `companyDid`\n * optionally cross-link the org identifier(s) used at the time.\n */\nexport const OrgEmploymentAttestationWriteSchema = z.object({\n subject: z.string().regex(/^did:[a-z]+:[^\\s]+$/, 'must be a DID'),\n position: externalRecordRefSchema,\n status: z.enum(['current', 'past']),\n title: z.string().min(1).max(2560),\n startedAt: z.string().max(32),\n entityRef: z.string().max(2048).nullable().optional(),\n companyDid: z\n .string()\n .regex(/^did:[a-z]+:[^\\s]+$/, 'must be a DID')\n .nullable()\n .optional(),\n endedAt: z.string().max(32).nullable().optional(),\n comment: z.string().max(3000).nullable().optional(),\n createdAt: z.string(),\n});\n\nexport type OrgEmploymentAttestationWriteInput = z.infer<\n typeof OrgEmploymentAttestationWriteSchema\n>;\n","import { z } from 'zod';\n\n/**\n * Schema enforced by the org-profile write endpoint on sifa-api.\n *\n * Sifa-managed org identity: name + description + contact channel plus\n * `entityRefs` linking the org to portable identifiers (Wikidata / ROR /\n * LEI / sifa.id URI, http(s) enforced elsewhere).\n */\n/** Structured physical address (community.lexicon.location.address; all fields optional). */\nconst orgAddressWriteSchema = z.object({\n country: z.string().max(10).nullable().optional(),\n postalCode: z.string().max(20).nullable().optional(),\n region: z.string().max(1000).nullable().optional(),\n locality: z.string().max(1000).nullable().optional(),\n street: z.string().max(2000).nullable().optional(),\n name: z.string().max(1000).nullable().optional(),\n});\n\n/** A featured link (both `name` and `url` required). */\nconst orgLinkWriteSchema = z.object({\n name: z.string().min(1).max(600),\n url: z.string().max(2048),\n});\n\nexport const OrgProfileWriteSchema = z.object({\n name: z.string().min(1).max(2000),\n description: z.string().max(50000).nullable().optional(),\n logo: z.unknown().nullable().optional(),\n website: z.string().max(2048).nullable().optional(),\n entityRefs: z.array(z.string().max(2048)).max(20).nullable().optional(),\n contact: z.string().max(320).nullable().optional(),\n addresses: z.array(orgAddressWriteSchema).max(10).nullable().optional(),\n companySize: z.string().max(20).nullable().optional(),\n links: z.array(orgLinkWriteSchema).max(10).nullable().optional(),\n personalProfileVisible: z.boolean().nullable().optional(),\n createdAt: z.string(),\n});\n\nexport type OrgProfileWriteInput = z.infer<typeof OrgProfileWriteSchema>;\n","import { z } from 'zod';\n\n/**\n * Body accepted by `POST /api/org/claim` (the org claim wizard finalize).\n *\n * Mirrors `claimBodySchema` in sifa-api `src/routes/org-claim.ts` EXACTLY: the\n * editable profile fields plus `entityRefs` (at least one -- a claim without a\n * binding renders but aggregates nothing) and the `authorityAck` checkbox\n * (`literal(true)` -- the logged \"I am authorized to represent this org\"\n * assertion). `logo`/`createdAt` are NOT part of the claim body (the endpoint\n * sets `createdAt` server-side and the logo is uploaded separately).\n */\nexport const OrgClaimRequestSchema = z.object({\n name: z.string().min(1).max(2000),\n description: z.string().max(50000).optional(),\n website: z.string().max(2048).optional(),\n contact: z.string().max(320).optional(),\n entityRefs: z.array(z.string().min(1).max(2048)).min(1).max(20),\n /**\n * Sole-trader opt-in: keep the claimant's personal profile visible at `/p/`\n * alongside the new company page at `/c/`. Omitted or false presents the\n * account solely as an organization.\n */\n personalProfileVisible: z.boolean().optional(),\n authorityAck: z.literal(true),\n});\n\nexport type OrgClaimRequestInput = z.infer<typeof OrgClaimRequestSchema>;\n","import { z } from 'zod';\n\n/**\n * Blob-ref passthrough for the org logo. Mirrors the `blobRefSchema` validated\n * by `PUT /api/org/profile` in sifa-api `src/routes/org-settings.ts` -- the\n * shape is validated, then written to the PDS verbatim.\n */\nconst orgLogoBlobSchema = z.object({\n $type: z.literal('blob'),\n ref: z.object({ $link: z.string().min(1) }),\n mimeType: z.string().min(1).max(255),\n size: z.number().int().nonnegative(),\n});\n\n/**\n * Body accepted by `PUT /api/org/profile` (edit the org record).\n *\n * Mirrors `profileBodySchema` in sifa-api `src/routes/org-settings.ts` EXACTLY.\n * Distinct from {@link OrgClaimRequestSchema}: no `authorityAck` (already\n * asserted at claim time), and an optional `logo` blob ref (a cleared field is\n * omitted, driving the fresh-from-body PDS PUT -- no spread-merge).\n */\nexport const OrgProfileUpdateRequestSchema = z.object({\n name: z.string().min(1).max(2000),\n description: z.string().max(50000).optional(),\n website: z.string().max(2048).optional(),\n contact: z.string().max(320).optional(),\n entityRefs: z.array(z.string().min(1).max(2048)).min(1).max(20),\n logo: orgLogoBlobSchema.optional(),\n /** Sole-trader opt-in; see {@link OrgClaimRequestSchema}. Flippable after the claim. */\n personalProfileVisible: z.boolean().optional(),\n});\n\nexport type OrgProfileUpdateRequestInput = z.infer<typeof OrgProfileUpdateRequestSchema>;\n\n/**\n * Body accepted by `POST /api/org/domains/challenge` (issue a one-time DNS TXT\n * challenge). Mirrors `challengeBodySchema` in sifa-api.\n */\nexport const OrgDomainChallengeRequestSchema = z.object({\n domain: z.string().min(1).max(255),\n});\n\nexport type OrgDomainChallengeRequestInput = z.infer<typeof OrgDomainChallengeRequestSchema>;\n\n/**\n * Body accepted by `POST /api/org/domains/verify` (verify a challenge via DoH\n * TXT lookup). Mirrors `verifyBodySchema` in sifa-api.\n */\nexport const OrgDomainVerifyRequestSchema = z.object({\n token: z.string().min(1).max(2048),\n});\n\nexport type OrgDomainVerifyRequestInput = z.infer<typeof OrgDomainVerifyRequestSchema>;\n\n/**\n * Body accepted by `POST` and `DELETE /api/org/notification-emails` (add /\n * remove a notification address). Mirrors `notificationEmailBodySchema` in\n * sifa-api. The bound-domain check is server-side (the address must use a\n * domain the org controls).\n */\nexport const OrgNotificationEmailRequestSchema = z.object({\n email: z.string().email().max(320),\n});\n\nexport type OrgNotificationEmailRequestInput = z.infer<typeof OrgNotificationEmailRequestSchema>;\n","import { z } from 'zod';\n\nimport { entityRefSchema, skillRefSchema, writeLocationSchema } from './shared.js';\n\n/**\n * Schema enforced by `POST /profile/positions` on sifa-api.\n *\n * Client-side callers can `.safeParse(...)` this before submitting to catch\n * obvious problems (empty `title`, over-length text) before the network\n * round-trip. If it passes here, the API will accept the write modulo\n * transport / auth failures.\n *\n * `company` is optional to support freelancer / independent employment types\n * where the position has no employer. This matches sifa-api's current\n * behavior in `src/routes/schemas.ts` and the SDK's lexicon schema\n * (`ProfilePositionRecordSchema`) since sifa-sdk #184.\n */\nexport const PositionWriteSchema = z.object({\n company: z.string().min(1).max(256).nullable().optional(),\n entityRef: entityRefSchema,\n title: z.string().min(1).max(256),\n description: z.string().max(50000).nullable().optional(),\n employmentType: z.string().nullable().optional(),\n // Held-on-behalf-of disclosure for board and advisory roles. Nullable so a client\n // can clear it when a seat stops being a representative one.\n onBehalfOf: z.string().max(256).nullable().optional(),\n onBehalfOfDid: z.string().max(256).nullable().optional(),\n onBehalfOfEntityRef: entityRefSchema.nullable(),\n workplaceType: z.string().nullable().optional(),\n location: writeLocationSchema,\n startedAt: z.string().nullable().optional(),\n endedAt: z.string().nullable().optional(),\n skills: z.array(skillRefSchema).max(50).nullable().optional(),\n});\n\nexport type PositionWriteInput = z.infer<typeof PositionWriteSchema>;\n","import { z } from 'zod';\n\nimport {\n externalRecordRefSchema,\n isValidDateOnly,\n presentationLinkSchema,\n writeLocationSchema,\n} from './shared.js';\n\n/**\n * Schema enforced by the generic-record write endpoint for `id.sifa.profile.presentationDelivery`.\n *\n * Records a specific delivery of a presentation (e.g., at a conference).\n * `presentationRef` optionally points at the parent `id.sifa.profile.presentation`\n * record; `eventRef` optionally links a Sifa event record; `coSpeakers` are\n * DIDs of people who delivered alongside the profile owner.\n */\nexport const PresentationDeliveryWriteSchema = z.object({\n presentationRef: externalRecordRefSchema.optional(),\n /**\n * The same session as recorded on another person's profile. Distinct from\n * presentationRef above, which points at the talk this session delivered.\n */\n sameAs: externalRecordRefSchema.optional(),\n title: z.string().max(3000).nullable().optional(),\n role: z.string().max(640).nullable().optional(),\n eventName: z.string().max(3000).nullable().optional(),\n date: z.string().refine(isValidDateOnly, 'must be a valid YYYY-MM-DD date').nullable().optional(),\n location: z.string().max(2560).nullable().optional(),\n // Structured community.lexicon.location.address; `location` above stays as\n // the legacy free-text fallback. writeLocationSchema is already nullable+optional.\n address: writeLocationSchema,\n mode: z.string().max(256).nullable().optional(),\n status: z.string().max(256).nullable().optional(),\n links: z.array(presentationLinkSchema).max(20).optional(),\n eventRef: externalRecordRefSchema.optional(),\n coSpeakers: z\n .array(z.string().regex(/^did:[a-z]+:[^\\s]+$/, 'must be a DID'))\n .max(20)\n .optional(),\n});\n\nexport type PresentationDeliveryWriteInput = z.infer<typeof PresentationDeliveryWriteSchema>;\n","import { z } from 'zod';\n\n/**\n * Blob-ref passthrough shared by records that carry an uploaded blob (org logo,\n * presentation cover image, ...). Mirrors the `blobRefSchema` validated by the\n * sifa-api write endpoints -- the shape is validated, then written to the PDS\n * verbatim.\n */\nexport const BlobRefSchema = z.object({\n $type: z.literal('blob'),\n ref: z.object({ $link: z.string().min(1) }),\n mimeType: z.string().min(1).max(255),\n size: z.number().int().nonnegative(),\n});\n\nexport type BlobRef = z.infer<typeof BlobRefSchema>;\n","import { z } from 'zod';\n\nimport { BlobRefSchema } from '../blob-ref.js';\nimport { externalRecordRefSchema, presentationLinkSchema } from './shared.js';\n\n/**\n * Schema enforced by the generic-record write endpoint for `id.sifa.profile.presentation`.\n *\n * Describes a talk / presentation the user can give. `duration` bounds the\n * runtime; `intendedAudiences` names who it's aimed at; `writeupRef` is an\n * optional at-uri pointer to a companion writeup record.\n */\nexport const PresentationWriteSchema = z.object({\n title: z.string().min(1).max(3000),\n description: z.string().max(50000).nullable().optional(),\n duration: z\n .object({\n minMinutes: z.number().int().min(1),\n maxMinutes: z.number().int().min(1).optional(),\n })\n .refine((d) => d.maxMinutes === undefined || d.maxMinutes >= d.minMinutes, {\n message: 'maxMinutes must be greater than or equal to minMinutes',\n path: ['maxMinutes'],\n })\n .optional(),\n intendedAudiences: z.array(z.string().max(1000)).max(20).optional(),\n links: z.array(presentationLinkSchema).max(20).optional(),\n writeupRef: externalRecordRefSchema.optional(),\n coverImage: BlobRefSchema.nullable().optional(),\n});\n\nexport type PresentationWriteInput = z.infer<typeof PresentationWriteSchema>;\n","import { z } from 'zod';\n\n/**\n * Schema enforced by `POST /profile/locations` on sifa-api.\n *\n * Mirrors the inner object of `writeLocationSchema`: accepts both the community\n * shape (`country`, `locality`) and the legacy shape (`countryCode`, `city`)\n * during the dual-read window. sifa-web #840 switched outbound writes to the\n * community shape; older clients may still send the legacy shape. All address\n * fields are `.nullish()` so explicit `null` from API echoes is accepted\n * (see sifa-api #426).\n *\n * The route handler hands `address` to `buildPdsLocation`, which normalizes\n * either input and enforces alpha-2 on the wire to PDS — returning a 400 with\n * `message: \"address.country (alpha-2) is required\"` when no usable code is\n * present. The schema stays permissive on country length here and lets\n * `buildPdsLocation` be the single enforcement point.\n */\nexport const ProfileLocationWriteSchema = z.object({\n address: z.object({\n country: z.string().nullish(),\n countryCode: z.string().length(2).nullish(),\n region: z.string().nullish(),\n city: z.string().nullish(),\n locality: z.string().nullish(),\n street: z.string().nullish(),\n postalCode: z.string().nullish(),\n name: z.string().nullish(),\n }),\n type: z.string().min(1),\n label: z.string().max(60).nullable().optional(),\n isPrimary: z.boolean().optional(),\n});\n\nexport type ProfileLocationWriteInput = z.infer<typeof ProfileLocationWriteSchema>;\n","import { z } from 'zod';\n\nimport { writeLocationSchema } from './shared.js';\n\n/**\n * Schema enforced by `POST /profile/self` on sifa-api.\n *\n * `.passthrough()` so the API accepts fields not yet enumerated here (used for\n * gradual rollout of new profile-self keys without requiring lockstep bumps\n * between web/api). Note this means client validation on this schema will\n * NEVER reject \"unknown\" fields — the divergence is intentional.\n *\n * Grapheme caps (e.g. 64 on given/familyName) are enforced client-side by the\n * SDK's lexicon schema; the write schema only guards the byte-length ceiling.\n */\nexport const ProfileSelfWriteSchema = z\n .object({\n headline: z.string().max(300).optional(),\n about: z.string().max(50000).optional(),\n givenName: z.string().max(640).optional(),\n familyName: z.string().max(640).optional(),\n namePronunciation: z.string().max(640).optional(),\n industries: z\n .array(\n z.object({\n industry: z.string().max(100),\n domain: z.string().max(100).optional(),\n }),\n )\n .max(10)\n .optional(),\n location: writeLocationSchema,\n openTo: z.array(z.string()).max(10).optional(),\n preferredWorkplace: z.array(z.string()).max(5).optional(),\n availableFromUtc: z.number().int().min(0).max(23).optional(),\n availableToUtc: z.number().int().min(0).max(23).optional(),\n langs: z.array(z.string()).max(3).optional(),\n discoverable: z.boolean().optional(),\n })\n .passthrough();\n\nexport type ProfileSelfWriteInput = z.infer<typeof ProfileSelfWriteSchema>;\n","import { z } from 'zod';\n\nimport { optionalUrl } from './shared.js';\n\n/**\n * A co-author named on the publication.\n *\n * Name-first, unlike a project member, and that is the lexicon's shape rather\n * than an inconsistency: a paper has co-authors whether or not they are on\n * atproto. A name alone is a complete entry that renders as written and claims\n * nothing about any account.\n *\n * `did` is the optional extra that turns the entry into a claim. The named\n * person renders as a bare name until they publish an `id.sifa.confirmation`,\n * and confirming never puts this record on their profile.\n */\nexport const publicationAuthorWriteSchema = z.object({\n name: z.string().min(1).max(100),\n did: z\n .string()\n .regex(/^did:[a-z]+:[^\\s]+$/, 'must be a DID')\n .optional(),\n});\n\n/** Schema enforced by the generic-record write endpoint for `id.sifa.profile.publication`. */\nexport const PublicationWriteSchema = z.object({\n title: z.string().min(1).max(200),\n subtitle: z.string().max(2000).nullable().optional(),\n publisher: z.string().max(256).nullable().optional(),\n url: optionalUrl(),\n description: z.string().max(50000).nullable().optional(),\n publishedAt: z.string().nullable().optional(),\n // Absent here until now, so the write route stripped every co-author before\n // it reached the PDS: the lexicon field, the indexer, the claim flattening\n // and the editor all existed, and nothing joined them. An object schema\n // drops unknown keys silently, so the editor reported success and wrote\n // nothing.\n authors: z.array(publicationAuthorWriteSchema).max(50).optional(),\n});\n\nexport type PublicationWriteInput = z.infer<typeof PublicationWriteSchema>;\n","import { z } from 'zod';\n\n/**\n * Grapheme-aware refinement matching the AT Protocol lexicon `maxGraphemes`\n * constraint. JS strings are sequences of UTF-16 code units, but lexicon\n * `maxGraphemes` counts user-perceived characters (grapheme clusters), so\n * emoji sequences, regional indicators, ZWJ joins, and combining marks all\n * count as one unit each. We use `Intl.Segmenter` to enforce this correctly.\n */\nexport function maxGraphemes(max: number) {\n return (value: string): boolean => {\n const segmenter = new Intl.Segmenter(undefined, { granularity: 'grapheme' });\n let count = 0;\n for (const _ of segmenter.segment(value)) {\n count++;\n if (count > max) return false;\n }\n return true;\n };\n}\n\n/** Decentralized identifier, AT Protocol `format: did`. */\nexport const didSchema = z.string().regex(/^did:[a-z]+:[a-zA-Z0-9._:%-]+$/, 'Invalid DID');\n\n/** RFC 3339 datetime with timezone offset, AT Protocol `format: datetime`. */\nexport const datetimeSchema = z.string().datetime({ offset: true });\n\n/**\n * Freeform calendar date for user-facing profile dates (start/end, issued,\n * completed, awarded, published, etc.). Accepts a bare year, year-month,\n * year-month-day, or a full datetime (so a legacy record's RFC-3339 date maps\n * through on backfill without loss). NOT strict `datetime` -- users typically\n * remember only month/year, and LinkedIn-importer writes carry partial dates,\n * so the lexicons document these as freeform `YYYY-MM` / `YYYY-MM-DD`. Record\n * metadata like `createdAt` stays on `datetimeSchema`.\n */\nexport const partialDateSchema = z\n .string()\n .regex(/^\\d{4}(-\\d{2}(-\\d{2}(T.+)?)?)?$/, 'Expected YYYY, YYYY-MM, YYYY-MM-DD, or a datetime');\n\n/** Generic AT-URI, AT Protocol `format: at-uri`. */\nexport const atUriSchema = z.string().regex(/^at:\\/\\/[^\\s]+$/, 'Invalid AT-URI');\n\n/** Content identifier, AT Protocol `format: cid`. Loose validation -- accepts CIDv0 and CIDv1. */\nexport const cidSchema = z\n .string()\n .regex(/^(Qm[1-9A-HJ-NP-Za-km-z]{44}|b[A-Za-z0-9+/=]+)$/, 'Invalid CID');\n\n/** BCP 47 language tag, AT Protocol `format: language`. */\nexport const languageTagSchema = z\n .string()\n .regex(/^[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*$/, 'Invalid BCP 47 language tag');\n\n/** Generic URI, AT Protocol `format: uri`. */\nexport const uriSchema = z.string().url();\n\n/**\n * StrongRef shape from `com.atproto.repo.strongRef` -- pins a record by both\n * AT-URI (identity) and CID (version).\n */\nexport const strongRefSchema = z.object({\n uri: atUriSchema,\n cid: cidSchema,\n});\n\n/**\n * Reference to an `id.sifa.profile.skill` record by AT-URI. Mirrors\n * `id.sifa.defs#skillRef`, which carries no CID at all: skills are mutable\n * records in the same user's repo, so the reference resolves live and tracks\n * edits to the target.\n */\nexport const skillRefSchema = z.object({\n uri: atUriSchema,\n});\n\n/**\n * Reference to a record by AT-URI, with an optional CID. Mirrors\n * `id.sifa.defs#externalRecordRef`. Unlike a strongRef the CID is optional:\n * consumers resolve the AT-URI live so the reference tracks edits to the\n * target, and the CID is a best-effort integrity hint only.\n */\nexport const externalRecordRefSchema = z.object({\n uri: atUriSchema,\n cid: cidSchema.optional(),\n});\n\n/**\n * Self-labels shape from `com.atproto.label.defs#selfLabels`. Modelled\n * permissively because clients rarely construct this directly; the AppView\n * handles label validation.\n */\nexport const selfLabelsSchema = z.object({\n $type: z.literal('com.atproto.label.defs#selfLabels').optional(),\n values: z.array(z.object({ val: z.string() })),\n});\n","import { z } from 'zod';\n\nimport { maxGraphemes } from '../shared.js';\n\n/** Schema enforced by `POST /profile/skills` on sifa-api. */\nexport const SkillWriteSchema = z.object({\n name: z.string().min(1).max(100),\n category: z.string().max(100).optional(),\n // Mirror the record schema bound (id.sifa.profile.skill) so a value that\n // passes here cannot then fail the PDS write. Empty/whitespace-only input is\n // treated as absent so we never persist a meaningless grouping label.\n subCategory: z.preprocess(\n (v) => (typeof v === 'string' && v.trim() === '' ? undefined : v),\n z.string().refine(maxGraphemes(64)).max(640).optional(),\n ),\n});\n\nexport type SkillWriteInput = z.infer<typeof SkillWriteSchema>;\n","import { z } from 'zod';\n\nimport { entityRefSchema } from './shared.js';\n\n/** Schema enforced by the generic-record write endpoint for `id.sifa.profile.volunteering`. */\nexport const VolunteeringWriteSchema = z.object({\n organization: z.string().min(1).max(256),\n entityRef: entityRefSchema,\n role: z.string().max(256).nullable().optional(),\n cause: z.string().max(256).nullable().optional(),\n description: z.string().max(50000).nullable().optional(),\n startedAt: z.string().nullable().optional(),\n endedAt: z.string().nullable().optional(),\n});\n\nexport type VolunteeringWriteInput = z.infer<typeof VolunteeringWriteSchema>;\n"]}
@@ -1,4 +1,4 @@
1
- import { w as PresentationLinkView, b as PdsProviderInfo } from './index-B0hFFPZ-.js';
1
+ import { w as PresentationLinkView, b as PdsProviderInfo } from './index-jNyd5QP7.js';
2
2
 
3
3
  /**
4
4
  * Types for the `id.sifa.getProfileView` XRPC query: the aggregated public
@@ -1,4 +1,4 @@
1
- import { w as PresentationLinkView, b as PdsProviderInfo } from './index-B0hFFPZ-.cjs';
1
+ import { w as PresentationLinkView, b as PdsProviderInfo } from './index-jNyd5QP7.cjs';
2
2
 
3
3
  /**
4
4
  * Types for the `id.sifa.getProfileView` XRPC query: the aggregated public
@@ -1,10 +1,10 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
- import { S as SifaApiConfig, s as sifaQueryKeys, W as WriteResult, aq as RefreshPdsResult, aH as UpdateProfileOverrideInput, aI as UpdateProfileSelfInput, aJ as UploadAvatarResult, C as CreateResult, aE as SubCategoryBulkResult, ae as ProfileLocationInput, p as ExternalAccountInput, o as CreateExternalAccountResult, aK as VerifyExternalAccountResult, E as EndorsementInput, m as ConfirmationInput, n as ConfirmationSubjectInput, Q as GivenConfirmation, ab as PendingConfirmationsPage, ap as RefreshOrcidPublicationsResult, B as BulkHideProfileItemInput, _ as HideProfileItemInput, aD as StatsResponse, j as AppRegistryEntry, X as HiddenApp, I as FilterOptions, ay as SearchFilters, az as SearchResponse, aC as SkillSearchResult, cb as CompanySearchFilters, cc as CompanySearchResponse, q as FeaturedProfile, aB as SimilarProfile, H as FetchSuggestionsOptions, aG as SuggestionsResponse, M as FollowUserResult, u as FetchFollowListOptions, J as FollowListPage, N as FollowingResponse, w as FetchFollowingFeedOptions, v as FetchFollowProfilePageOptions, L as FollowProfilePageResponse, F as FeatureAllowlistResponse, h as AdminReviewQueues, r as FetchActivityFeedOptions, d as ActivityFeedResponse, g as ActivityTeaserResponse, V as HeatmapResponse, a0 as MyGithubPullRequestsResponse, c as AccountCheckResult, ao as ReactionStatus, an as ReactionResult, am as ReactionError, ax as RoadmapVotesResponse, k as CastRoadmapVoteResult, D as DeleteAccountResult, as as ResetProfileResult, aL as WipePreview, ar as RepoDeleteInput, a2 as OrgClaimResult, a8 as OrgProfileUpdateResult, a3 as OrgDomainChallengeResult, a4 as OrgDomainVerifyResult, a5 as OrgNotificationEmailAddResult, a6 as OrgNotificationEmailRemoveResult } from './org-CSEOW8H6.cjs';
3
+ import { S as SifaApiConfig, s as sifaQueryKeys, W as WriteResult, aq as RefreshPdsResult, aH as UpdateProfileOverrideInput, aI as UpdateProfileSelfInput, aJ as UploadAvatarResult, aK as UploadPronunciationAudioResult, C as CreateResult, aE as SubCategoryBulkResult, ae as ProfileLocationInput, p as ExternalAccountInput, o as CreateExternalAccountResult, aL as VerifyExternalAccountResult, E as EndorsementInput, m as ConfirmationInput, n as ConfirmationSubjectInput, Q as GivenConfirmation, ab as PendingConfirmationsPage, ap as RefreshOrcidPublicationsResult, B as BulkHideProfileItemInput, _ as HideProfileItemInput, aD as StatsResponse, j as AppRegistryEntry, X as HiddenApp, I as FilterOptions, ay as SearchFilters, az as SearchResponse, aC as SkillSearchResult, ce as CompanySearchFilters, cf as CompanySearchResponse, q as FeaturedProfile, aB as SimilarProfile, H as FetchSuggestionsOptions, aG as SuggestionsResponse, M as FollowUserResult, u as FetchFollowListOptions, J as FollowListPage, N as FollowingResponse, w as FetchFollowingFeedOptions, v as FetchFollowProfilePageOptions, L as FollowProfilePageResponse, F as FeatureAllowlistResponse, h as AdminReviewQueues, r as FetchActivityFeedOptions, d as ActivityFeedResponse, g as ActivityTeaserResponse, V as HeatmapResponse, a0 as MyGithubPullRequestsResponse, c as AccountCheckResult, ao as ReactionStatus, an as ReactionResult, am as ReactionError, ax as RoadmapVotesResponse, k as CastRoadmapVoteResult, D as DeleteAccountResult, as as ResetProfileResult, aM as WipePreview, ar as RepoDeleteInput, a2 as OrgClaimResult, a8 as OrgProfileUpdateResult, a3 as OrgDomainChallengeResult, a4 as OrgDomainVerifyResult, a5 as OrgNotificationEmailAddResult, a6 as OrgNotificationEmailRemoveResult } from './org-ClDqS3CM.cjs';
4
4
  import * as _tanstack_react_query from '@tanstack/react-query';
5
5
  import { UseQueryOptions, UseMutationOptions, UseInfiniteQueryOptions, InfiniteData } from '@tanstack/react-query';
6
- import { c as Profile, d as ProfilePosition, S as SkillRef, p as ExternalAccount, Q as SkillSuggestion, s as OrgFloorVerdict } from './index-B0hFFPZ-.cjs';
7
- import { n as ProfileView, t as RepoDeleteResult, w as RepoInventory } from './types-CIWnMcKx.cjs';
6
+ import { c as Profile, d as ProfilePosition, S as SkillRef, p as ExternalAccount, Q as SkillSuggestion, s as OrgFloorVerdict } from './index-jNyd5QP7.cjs';
7
+ import { n as ProfileView, t as RepoDeleteResult, w as RepoInventory } from './types-8wAWvS-T.cjs';
8
8
  import { j as EntitySearchResponse, E as EntitySearchResult, d as EntityMintDomainResponse, h as EntityResolveDomainResponse, o as EntitySelectResponse, m as EntitySelectRequest, y as FollowFeedPage, s as FeatureFlag } from './feed-BMm9Pkew.cjs';
9
9
  import { O as OrgClaimRequestInput, a as OrgProfileUpdateRequestInput, b as OrgDomainChallengeRequestInput, c as OrgDomainVerifyRequestInput, d as OrgNotificationEmailRequestInput } from './org-settings-CZ_tmAYl.cjs';
10
10
 
@@ -74,6 +74,13 @@ declare function useRefreshPds(ownerHandleOrDid: string, options?: Omit<UseMutat
74
74
  declare function useUploadAvatar(ownerHandleOrDid: string, options?: Omit<UseMutationOptions<UploadAvatarResult, Error, Blob>, 'mutationFn'>): _tanstack_react_query.UseMutationResult<UploadAvatarResult, Error, Blob, unknown>;
75
75
  /** React hook for deleting the avatar override (revert to PDS avatar). */
76
76
  declare function useDeleteAvatarOverride(ownerHandleOrDid: string, options?: Omit<UseMutationOptions<WriteResult, Error, void>, 'mutationFn'>): _tanstack_react_query.UseMutationResult<WriteResult, Error, void, unknown>;
77
+ /**
78
+ * React hook for uploading a name-pronunciation audio clip. Pass a `File`
79
+ * (browser) or `Blob` (Expo) as the mutation variable.
80
+ */
81
+ declare function useUploadNamePronunciationAudio(ownerHandleOrDid: string, options?: Omit<UseMutationOptions<UploadPronunciationAudioResult, Error, Blob>, 'mutationFn'>): _tanstack_react_query.UseMutationResult<UploadPronunciationAudioResult, Error, Blob, unknown>;
82
+ /** React hook for deleting the name-pronunciation audio clip. */
83
+ declare function useDeleteNamePronunciationAudio(ownerHandleOrDid: string, options?: Omit<UseMutationOptions<WriteResult, Error, void>, 'mutationFn'>): _tanstack_react_query.UseMutationResult<WriteResult, Error, void, unknown>;
77
84
 
78
85
  /**
79
86
  * React hook for creating a new position record. On success, invalidates
@@ -824,4 +831,4 @@ declare function useRemoveOrgNotificationEmail(options?: Omit<UseMutationOptions
824
831
  email: string;
825
832
  }, unknown>;
826
833
 
827
- export { useDeleteRepoRecords as $, type AddFeatureAllowlistVariables as A, useCastRoadmapVote as B, type CreateReactionVariables as C, type DeleteReactionVariables as D, useCreateConfirmation as E, type FollowVariables as F, useCreateEducation as G, useCreateEndorsement as H, useCreateExternalAccount as I, useCreatePosition as J, useCreateProfileLocation as K, useCreateReaction as L, useCreateRecord as M, useCreateSkill as N, useDebouncedValue as O, type PositionSkillLinkVariables as P, useDeleteAccount as Q, type RemoveFeatureAllowlistVariables as R, SifaProvider as S, useDeleteAvatarOverride as T, type UnfollowVariables as U, useDeleteEducation as V, useDeleteExternalAccount as W, useDeletePosition as X, useDeleteProfileLocation as Y, useDeleteReaction as Z, useDeleteRecord as _, type CreateRecordVariables as a, useUnlinkSkillFromPosition as a$, useDeleteSkill as a0, useDismissConfirmation as a1, useEndorsementCount as a2, useEntitySearch as a3, useExternalAccounts as a4, useFeatureAllowlist as a5, useFeaturedProfile as a6, useFollow as a7, useFollowers as a8, useFollowing as a9, useRefreshPds as aA, useRemoveFeatureAllowlist as aB, useRemoveOrgNotificationEmail as aC, useRepoInventory as aD, useResetProfile as aE, useResolveEntityDomain as aF, useRetractRoadmapVote as aG, useRevealMarqueDomain as aH, useRevokeConfirmation as aI, useRoadmapVotes as aJ, useSearchFilters as aK, useSearchProfiles as aL, useSelectEntity as aM, useSetExternalAccountPrimary as aN, useSetPositionPrimary as aO, useSifaConfig as aP, useSimilarProfiles as aQ, useSkillSuggestions as aR, useStats as aS, useSuggestionCount as aT, useSuggestions as aU, useUnfollow as aV, useUnhideKeytraceClaim as aW, useUnhideOrcidPublication as aX, useUnhideProfileItem as aY, useUnhideSifaPublication as aZ, useUnhideStandardPublication as a_, useFollowingFeed as aa, useFollowingList as ab, useGetProfileView as ac, useGivenConfirmations as ad, useHeatmapData as ae, useHiddenApps as af, useHideKeytraceClaim as ag, useHideOrcidPublication as ah, useHideProfileItem as ai, useHideSifaPublication as aj, useHideStandardPublication as ak, useImportSearchEntities as al, useLinkSkillToPosition as am, useMintEntityDomain as an, useMutuals as ao, useMyGithubPullRequests as ap, useMyRoadmapVotes as aq, useNetworkStreamCount as ar, useOrgClaim as as, useOrgDomainChallenge as at, useOrgDomainVerify as au, useOrgProfile as av, usePendingConfirmations as aw, useProfile as ax, useReactionStatus as ay, useRefreshOrcidPublications as az, type DeleteRecordVariables as b, useUnrevealMarqueDomain as b0, useUnsetExternalAccountPrimary as b1, useUnsetPositionPrimary as b2, useUpdateEducation as b3, useUpdateExternalAccount as b4, useUpdateOrgProfile as b5, useUpdatePosition as b6, useUpdateProfileLocation as b7, useUpdateProfileOverride as b8, useUpdateProfileSelf as b9, useUpdateRecord as ba, useUpdateSkill as bb, useUpdateSkillSubCategories as bc, useUploadAvatar as bd, useVerifyExternalAccount as be, useWipePreview as bf, useSearchCompanies as bg, type SifaProviderProps as c, type UpdateEducationVariables as d, type UpdateExternalAccountVariables as e, type UpdatePositionVariables as f, type UpdateProfileLocationVariables as g, type UpdateRecordVariables as h, type UpdateSkillSubCategoriesVariables as i, type UpdateSkillVariables as j, type UseEntitySearchOptions as k, type UseMyGithubPullRequestsParams as l, useActivityTeaser as m, useAddFeatureAllowlist as n, useAddOrgNotificationEmail as o, useAdminReviewQueues as p, useAppAccountCheck as q, useAppsRegistry as r, useAtFundLink as s, useBlueskySuggestions as t, useActivityFeed as u, useBulkHideProfileItems as v, useBulkHideStandardPublications as w, useBulkUnhideProfileItems as x, useBulkUnhideStandardPublications as y, useCanonicalSkillSearch as z };
834
+ export { useDeleteRecord as $, type AddFeatureAllowlistVariables as A, useCastRoadmapVote as B, type CreateReactionVariables as C, type DeleteReactionVariables as D, useCreateConfirmation as E, type FollowVariables as F, useCreateEducation as G, useCreateEndorsement as H, useCreateExternalAccount as I, useCreatePosition as J, useCreateProfileLocation as K, useCreateReaction as L, useCreateRecord as M, useCreateSkill as N, useDebouncedValue as O, type PositionSkillLinkVariables as P, useDeleteAccount as Q, type RemoveFeatureAllowlistVariables as R, SifaProvider as S, useDeleteAvatarOverride as T, type UnfollowVariables as U, useDeleteEducation as V, useDeleteExternalAccount as W, useDeleteNamePronunciationAudio as X, useDeletePosition as Y, useDeleteProfileLocation as Z, useDeleteReaction as _, type CreateRecordVariables as a, useUnhideStandardPublication as a$, useDeleteRepoRecords as a0, useDeleteSkill as a1, useDismissConfirmation as a2, useEndorsementCount as a3, useEntitySearch as a4, useExternalAccounts as a5, useFeatureAllowlist as a6, useFeaturedProfile as a7, useFollow as a8, useFollowers as a9, useRefreshOrcidPublications as aA, useRefreshPds as aB, useRemoveFeatureAllowlist as aC, useRemoveOrgNotificationEmail as aD, useRepoInventory as aE, useResetProfile as aF, useResolveEntityDomain as aG, useRetractRoadmapVote as aH, useRevealMarqueDomain as aI, useRevokeConfirmation as aJ, useRoadmapVotes as aK, useSearchFilters as aL, useSearchProfiles as aM, useSelectEntity as aN, useSetExternalAccountPrimary as aO, useSetPositionPrimary as aP, useSifaConfig as aQ, useSimilarProfiles as aR, useSkillSuggestions as aS, useStats as aT, useSuggestionCount as aU, useSuggestions as aV, useUnfollow as aW, useUnhideKeytraceClaim as aX, useUnhideOrcidPublication as aY, useUnhideProfileItem as aZ, useUnhideSifaPublication as a_, useFollowing as aa, useFollowingFeed as ab, useFollowingList as ac, useGetProfileView as ad, useGivenConfirmations as ae, useHeatmapData as af, useHiddenApps as ag, useHideKeytraceClaim as ah, useHideOrcidPublication as ai, useHideProfileItem as aj, useHideSifaPublication as ak, useHideStandardPublication as al, useImportSearchEntities as am, useLinkSkillToPosition as an, useMintEntityDomain as ao, useMutuals as ap, useMyGithubPullRequests as aq, useMyRoadmapVotes as ar, useNetworkStreamCount as as, useOrgClaim as at, useOrgDomainChallenge as au, useOrgDomainVerify as av, useOrgProfile as aw, usePendingConfirmations as ax, useProfile as ay, useReactionStatus as az, type DeleteRecordVariables as b, useUnlinkSkillFromPosition as b0, useUnrevealMarqueDomain as b1, useUnsetExternalAccountPrimary as b2, useUnsetPositionPrimary as b3, useUpdateEducation as b4, useUpdateExternalAccount as b5, useUpdateOrgProfile as b6, useUpdatePosition as b7, useUpdateProfileLocation as b8, useUpdateProfileOverride as b9, useUpdateProfileSelf as ba, useUpdateRecord as bb, useUpdateSkill as bc, useUpdateSkillSubCategories as bd, useUploadAvatar as be, useUploadNamePronunciationAudio as bf, useVerifyExternalAccount as bg, useWipePreview as bh, useSearchCompanies as bi, type SifaProviderProps as c, type UpdateEducationVariables as d, type UpdateExternalAccountVariables as e, type UpdatePositionVariables as f, type UpdateProfileLocationVariables as g, type UpdateRecordVariables as h, type UpdateSkillSubCategoriesVariables as i, type UpdateSkillVariables as j, type UseEntitySearchOptions as k, type UseMyGithubPullRequestsParams as l, useActivityTeaser as m, useAddFeatureAllowlist as n, useAddOrgNotificationEmail as o, useAdminReviewQueues as p, useAppAccountCheck as q, useAppsRegistry as r, useAtFundLink as s, useBlueskySuggestions as t, useActivityFeed as u, useBulkHideProfileItems as v, useBulkHideStandardPublications as w, useBulkUnhideProfileItems as x, useBulkUnhideStandardPublications as y, useCanonicalSkillSearch as z };
@@ -1,10 +1,10 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
- import { S as SifaApiConfig, s as sifaQueryKeys, W as WriteResult, aq as RefreshPdsResult, aH as UpdateProfileOverrideInput, aI as UpdateProfileSelfInput, aJ as UploadAvatarResult, C as CreateResult, aE as SubCategoryBulkResult, ae as ProfileLocationInput, p as ExternalAccountInput, o as CreateExternalAccountResult, aK as VerifyExternalAccountResult, E as EndorsementInput, m as ConfirmationInput, n as ConfirmationSubjectInput, Q as GivenConfirmation, ab as PendingConfirmationsPage, ap as RefreshOrcidPublicationsResult, B as BulkHideProfileItemInput, _ as HideProfileItemInput, aD as StatsResponse, j as AppRegistryEntry, X as HiddenApp, I as FilterOptions, ay as SearchFilters, az as SearchResponse, aC as SkillSearchResult, cb as CompanySearchFilters, cc as CompanySearchResponse, q as FeaturedProfile, aB as SimilarProfile, H as FetchSuggestionsOptions, aG as SuggestionsResponse, M as FollowUserResult, u as FetchFollowListOptions, J as FollowListPage, N as FollowingResponse, w as FetchFollowingFeedOptions, v as FetchFollowProfilePageOptions, L as FollowProfilePageResponse, F as FeatureAllowlistResponse, h as AdminReviewQueues, r as FetchActivityFeedOptions, d as ActivityFeedResponse, g as ActivityTeaserResponse, V as HeatmapResponse, a0 as MyGithubPullRequestsResponse, c as AccountCheckResult, ao as ReactionStatus, an as ReactionResult, am as ReactionError, ax as RoadmapVotesResponse, k as CastRoadmapVoteResult, D as DeleteAccountResult, as as ResetProfileResult, aL as WipePreview, ar as RepoDeleteInput, a2 as OrgClaimResult, a8 as OrgProfileUpdateResult, a3 as OrgDomainChallengeResult, a4 as OrgDomainVerifyResult, a5 as OrgNotificationEmailAddResult, a6 as OrgNotificationEmailRemoveResult } from './org-C6MV4vE6.js';
3
+ import { S as SifaApiConfig, s as sifaQueryKeys, W as WriteResult, aq as RefreshPdsResult, aH as UpdateProfileOverrideInput, aI as UpdateProfileSelfInput, aJ as UploadAvatarResult, aK as UploadPronunciationAudioResult, C as CreateResult, aE as SubCategoryBulkResult, ae as ProfileLocationInput, p as ExternalAccountInput, o as CreateExternalAccountResult, aL as VerifyExternalAccountResult, E as EndorsementInput, m as ConfirmationInput, n as ConfirmationSubjectInput, Q as GivenConfirmation, ab as PendingConfirmationsPage, ap as RefreshOrcidPublicationsResult, B as BulkHideProfileItemInput, _ as HideProfileItemInput, aD as StatsResponse, j as AppRegistryEntry, X as HiddenApp, I as FilterOptions, ay as SearchFilters, az as SearchResponse, aC as SkillSearchResult, ce as CompanySearchFilters, cf as CompanySearchResponse, q as FeaturedProfile, aB as SimilarProfile, H as FetchSuggestionsOptions, aG as SuggestionsResponse, M as FollowUserResult, u as FetchFollowListOptions, J as FollowListPage, N as FollowingResponse, w as FetchFollowingFeedOptions, v as FetchFollowProfilePageOptions, L as FollowProfilePageResponse, F as FeatureAllowlistResponse, h as AdminReviewQueues, r as FetchActivityFeedOptions, d as ActivityFeedResponse, g as ActivityTeaserResponse, V as HeatmapResponse, a0 as MyGithubPullRequestsResponse, c as AccountCheckResult, ao as ReactionStatus, an as ReactionResult, am as ReactionError, ax as RoadmapVotesResponse, k as CastRoadmapVoteResult, D as DeleteAccountResult, as as ResetProfileResult, aM as WipePreview, ar as RepoDeleteInput, a2 as OrgClaimResult, a8 as OrgProfileUpdateResult, a3 as OrgDomainChallengeResult, a4 as OrgDomainVerifyResult, a5 as OrgNotificationEmailAddResult, a6 as OrgNotificationEmailRemoveResult } from './org-GlACA06R.js';
4
4
  import * as _tanstack_react_query from '@tanstack/react-query';
5
5
  import { UseQueryOptions, UseMutationOptions, UseInfiniteQueryOptions, InfiniteData } from '@tanstack/react-query';
6
- import { c as Profile, d as ProfilePosition, S as SkillRef, p as ExternalAccount, Q as SkillSuggestion, s as OrgFloorVerdict } from './index-B0hFFPZ-.js';
7
- import { n as ProfileView, t as RepoDeleteResult, w as RepoInventory } from './types-Dbvf5D_Q.js';
6
+ import { c as Profile, d as ProfilePosition, S as SkillRef, p as ExternalAccount, Q as SkillSuggestion, s as OrgFloorVerdict } from './index-jNyd5QP7.js';
7
+ import { n as ProfileView, t as RepoDeleteResult, w as RepoInventory } from './types-8JaS6abh.js';
8
8
  import { j as EntitySearchResponse, E as EntitySearchResult, d as EntityMintDomainResponse, h as EntityResolveDomainResponse, o as EntitySelectResponse, m as EntitySelectRequest, y as FollowFeedPage, s as FeatureFlag } from './feed-BMm9Pkew.js';
9
9
  import { O as OrgClaimRequestInput, a as OrgProfileUpdateRequestInput, b as OrgDomainChallengeRequestInput, c as OrgDomainVerifyRequestInput, d as OrgNotificationEmailRequestInput } from './org-settings-CZ_tmAYl.js';
10
10
 
@@ -74,6 +74,13 @@ declare function useRefreshPds(ownerHandleOrDid: string, options?: Omit<UseMutat
74
74
  declare function useUploadAvatar(ownerHandleOrDid: string, options?: Omit<UseMutationOptions<UploadAvatarResult, Error, Blob>, 'mutationFn'>): _tanstack_react_query.UseMutationResult<UploadAvatarResult, Error, Blob, unknown>;
75
75
  /** React hook for deleting the avatar override (revert to PDS avatar). */
76
76
  declare function useDeleteAvatarOverride(ownerHandleOrDid: string, options?: Omit<UseMutationOptions<WriteResult, Error, void>, 'mutationFn'>): _tanstack_react_query.UseMutationResult<WriteResult, Error, void, unknown>;
77
+ /**
78
+ * React hook for uploading a name-pronunciation audio clip. Pass a `File`
79
+ * (browser) or `Blob` (Expo) as the mutation variable.
80
+ */
81
+ declare function useUploadNamePronunciationAudio(ownerHandleOrDid: string, options?: Omit<UseMutationOptions<UploadPronunciationAudioResult, Error, Blob>, 'mutationFn'>): _tanstack_react_query.UseMutationResult<UploadPronunciationAudioResult, Error, Blob, unknown>;
82
+ /** React hook for deleting the name-pronunciation audio clip. */
83
+ declare function useDeleteNamePronunciationAudio(ownerHandleOrDid: string, options?: Omit<UseMutationOptions<WriteResult, Error, void>, 'mutationFn'>): _tanstack_react_query.UseMutationResult<WriteResult, Error, void, unknown>;
77
84
 
78
85
  /**
79
86
  * React hook for creating a new position record. On success, invalidates
@@ -824,4 +831,4 @@ declare function useRemoveOrgNotificationEmail(options?: Omit<UseMutationOptions
824
831
  email: string;
825
832
  }, unknown>;
826
833
 
827
- export { useDeleteRepoRecords as $, type AddFeatureAllowlistVariables as A, useCastRoadmapVote as B, type CreateReactionVariables as C, type DeleteReactionVariables as D, useCreateConfirmation as E, type FollowVariables as F, useCreateEducation as G, useCreateEndorsement as H, useCreateExternalAccount as I, useCreatePosition as J, useCreateProfileLocation as K, useCreateReaction as L, useCreateRecord as M, useCreateSkill as N, useDebouncedValue as O, type PositionSkillLinkVariables as P, useDeleteAccount as Q, type RemoveFeatureAllowlistVariables as R, SifaProvider as S, useDeleteAvatarOverride as T, type UnfollowVariables as U, useDeleteEducation as V, useDeleteExternalAccount as W, useDeletePosition as X, useDeleteProfileLocation as Y, useDeleteReaction as Z, useDeleteRecord as _, type CreateRecordVariables as a, useUnlinkSkillFromPosition as a$, useDeleteSkill as a0, useDismissConfirmation as a1, useEndorsementCount as a2, useEntitySearch as a3, useExternalAccounts as a4, useFeatureAllowlist as a5, useFeaturedProfile as a6, useFollow as a7, useFollowers as a8, useFollowing as a9, useRefreshPds as aA, useRemoveFeatureAllowlist as aB, useRemoveOrgNotificationEmail as aC, useRepoInventory as aD, useResetProfile as aE, useResolveEntityDomain as aF, useRetractRoadmapVote as aG, useRevealMarqueDomain as aH, useRevokeConfirmation as aI, useRoadmapVotes as aJ, useSearchFilters as aK, useSearchProfiles as aL, useSelectEntity as aM, useSetExternalAccountPrimary as aN, useSetPositionPrimary as aO, useSifaConfig as aP, useSimilarProfiles as aQ, useSkillSuggestions as aR, useStats as aS, useSuggestionCount as aT, useSuggestions as aU, useUnfollow as aV, useUnhideKeytraceClaim as aW, useUnhideOrcidPublication as aX, useUnhideProfileItem as aY, useUnhideSifaPublication as aZ, useUnhideStandardPublication as a_, useFollowingFeed as aa, useFollowingList as ab, useGetProfileView as ac, useGivenConfirmations as ad, useHeatmapData as ae, useHiddenApps as af, useHideKeytraceClaim as ag, useHideOrcidPublication as ah, useHideProfileItem as ai, useHideSifaPublication as aj, useHideStandardPublication as ak, useImportSearchEntities as al, useLinkSkillToPosition as am, useMintEntityDomain as an, useMutuals as ao, useMyGithubPullRequests as ap, useMyRoadmapVotes as aq, useNetworkStreamCount as ar, useOrgClaim as as, useOrgDomainChallenge as at, useOrgDomainVerify as au, useOrgProfile as av, usePendingConfirmations as aw, useProfile as ax, useReactionStatus as ay, useRefreshOrcidPublications as az, type DeleteRecordVariables as b, useUnrevealMarqueDomain as b0, useUnsetExternalAccountPrimary as b1, useUnsetPositionPrimary as b2, useUpdateEducation as b3, useUpdateExternalAccount as b4, useUpdateOrgProfile as b5, useUpdatePosition as b6, useUpdateProfileLocation as b7, useUpdateProfileOverride as b8, useUpdateProfileSelf as b9, useUpdateRecord as ba, useUpdateSkill as bb, useUpdateSkillSubCategories as bc, useUploadAvatar as bd, useVerifyExternalAccount as be, useWipePreview as bf, useSearchCompanies as bg, type SifaProviderProps as c, type UpdateEducationVariables as d, type UpdateExternalAccountVariables as e, type UpdatePositionVariables as f, type UpdateProfileLocationVariables as g, type UpdateRecordVariables as h, type UpdateSkillSubCategoriesVariables as i, type UpdateSkillVariables as j, type UseEntitySearchOptions as k, type UseMyGithubPullRequestsParams as l, useActivityTeaser as m, useAddFeatureAllowlist as n, useAddOrgNotificationEmail as o, useAdminReviewQueues as p, useAppAccountCheck as q, useAppsRegistry as r, useAtFundLink as s, useBlueskySuggestions as t, useActivityFeed as u, useBulkHideProfileItems as v, useBulkHideStandardPublications as w, useBulkUnhideProfileItems as x, useBulkUnhideStandardPublications as y, useCanonicalSkillSearch as z };
834
+ export { useDeleteRecord as $, type AddFeatureAllowlistVariables as A, useCastRoadmapVote as B, type CreateReactionVariables as C, type DeleteReactionVariables as D, useCreateConfirmation as E, type FollowVariables as F, useCreateEducation as G, useCreateEndorsement as H, useCreateExternalAccount as I, useCreatePosition as J, useCreateProfileLocation as K, useCreateReaction as L, useCreateRecord as M, useCreateSkill as N, useDebouncedValue as O, type PositionSkillLinkVariables as P, useDeleteAccount as Q, type RemoveFeatureAllowlistVariables as R, SifaProvider as S, useDeleteAvatarOverride as T, type UnfollowVariables as U, useDeleteEducation as V, useDeleteExternalAccount as W, useDeleteNamePronunciationAudio as X, useDeletePosition as Y, useDeleteProfileLocation as Z, useDeleteReaction as _, type CreateRecordVariables as a, useUnhideStandardPublication as a$, useDeleteRepoRecords as a0, useDeleteSkill as a1, useDismissConfirmation as a2, useEndorsementCount as a3, useEntitySearch as a4, useExternalAccounts as a5, useFeatureAllowlist as a6, useFeaturedProfile as a7, useFollow as a8, useFollowers as a9, useRefreshOrcidPublications as aA, useRefreshPds as aB, useRemoveFeatureAllowlist as aC, useRemoveOrgNotificationEmail as aD, useRepoInventory as aE, useResetProfile as aF, useResolveEntityDomain as aG, useRetractRoadmapVote as aH, useRevealMarqueDomain as aI, useRevokeConfirmation as aJ, useRoadmapVotes as aK, useSearchFilters as aL, useSearchProfiles as aM, useSelectEntity as aN, useSetExternalAccountPrimary as aO, useSetPositionPrimary as aP, useSifaConfig as aQ, useSimilarProfiles as aR, useSkillSuggestions as aS, useStats as aT, useSuggestionCount as aU, useSuggestions as aV, useUnfollow as aW, useUnhideKeytraceClaim as aX, useUnhideOrcidPublication as aY, useUnhideProfileItem as aZ, useUnhideSifaPublication as a_, useFollowing as aa, useFollowingFeed as ab, useFollowingList as ac, useGetProfileView as ad, useGivenConfirmations as ae, useHeatmapData as af, useHiddenApps as ag, useHideKeytraceClaim as ah, useHideOrcidPublication as ai, useHideProfileItem as aj, useHideSifaPublication as ak, useHideStandardPublication as al, useImportSearchEntities as am, useLinkSkillToPosition as an, useMintEntityDomain as ao, useMutuals as ap, useMyGithubPullRequests as aq, useMyRoadmapVotes as ar, useNetworkStreamCount as as, useOrgClaim as at, useOrgDomainChallenge as au, useOrgDomainVerify as av, useOrgProfile as aw, usePendingConfirmations as ax, useProfile as ay, useReactionStatus as az, type DeleteRecordVariables as b, useUnlinkSkillFromPosition as b0, useUnrevealMarqueDomain as b1, useUnsetExternalAccountPrimary as b2, useUnsetPositionPrimary as b3, useUpdateEducation as b4, useUpdateExternalAccount as b5, useUpdateOrgProfile as b6, useUpdatePosition as b7, useUpdateProfileLocation as b8, useUpdateProfileOverride as b9, useUpdateProfileSelf as ba, useUpdateRecord as bb, useUpdateSkill as bc, useUpdateSkillSubCategories as bd, useUploadAvatar as be, useUploadNamePronunciationAudio as bf, useVerifyExternalAccount as bg, useWipePreview as bh, useSearchCompanies as bi, type SifaProviderProps as c, type UpdateEducationVariables as d, type UpdateExternalAccountVariables as e, type UpdatePositionVariables as f, type UpdateProfileLocationVariables as g, type UpdateRecordVariables as h, type UpdateSkillSubCategoriesVariables as i, type UpdateSkillVariables as j, type UseEntitySearchOptions as k, type UseMyGithubPullRequestsParams as l, useActivityTeaser as m, useAddFeatureAllowlist as n, useAddOrgNotificationEmail as o, useAdminReviewQueues as p, useAppAccountCheck as q, useAppsRegistry as r, useAtFundLink as s, useBlueskySuggestions as t, useActivityFeed as u, useBulkHideProfileItems as v, useBulkHideStandardPublications as w, useBulkUnhideProfileItems as x, useBulkUnhideStandardPublications as y, useCanonicalSkillSearch as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@singi-labs/sifa-sdk",
3
- "version": "0.12.83",
3
+ "version": "0.12.85",
4
4
  "description": "Sifa SDK — public client library for the Sifa AppView on AT Protocol. Shared by sifa-web and sifa-app.",
5
5
  "license": "MIT",
6
6
  "type": "module",