@singi-labs/sifa-sdk 0.12.43 → 0.12.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/{adult-content-JKDlPIbL.d.cts → adult-content-DPbdzRqN.d.cts} +57 -1
  2. package/dist/{adult-content-JKDlPIbL.d.ts → adult-content-DPbdzRqN.d.ts} +57 -1
  3. package/dist/{feed-C8aHEPw4.d.cts → feed-dOSy_48Z.d.cts} +1 -1
  4. package/dist/{feed-C8aHEPw4.d.ts → feed-dOSy_48Z.d.ts} +1 -1
  5. package/dist/{index-BsIdD2su.d.ts → index-8tpQ3aa6.d.ts} +13 -6
  6. package/dist/{index-ti9RAkMn.d.cts → index-C5bE9r3L.d.cts} +13 -6
  7. package/dist/{index-CIQinrgP.d.ts → index-CC03zp-c.d.ts} +31 -4
  8. package/dist/{index-DFSDtTFz.d.cts → index-DtpqwUb4.d.cts} +31 -4
  9. package/dist/index.cjs +37 -7
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.d.cts +7 -7
  12. package/dist/index.d.ts +7 -7
  13. package/dist/index.js +37 -7
  14. package/dist/index.js.map +1 -1
  15. package/dist/{org-EA4mshbf.d.ts → org-C827hinr.d.ts} +107 -7
  16. package/dist/{org-C0OTQnnV.d.cts → org-DvskXMpB.d.cts} +107 -7
  17. package/dist/{profile-summary-CSmXD7ll.d.cts → profile-summary-BawHMAG9.d.cts} +1 -1
  18. package/dist/{profile-summary-C9E-HPeP.d.ts → profile-summary-M_mQaHdp.d.ts} +1 -1
  19. package/dist/query/fetchers/index.cjs +41 -1
  20. package/dist/query/fetchers/index.cjs.map +1 -1
  21. package/dist/query/fetchers/index.d.cts +5 -5
  22. package/dist/query/fetchers/index.d.ts +5 -5
  23. package/dist/query/fetchers/index.js +38 -2
  24. package/dist/query/fetchers/index.js.map +1 -1
  25. package/dist/query/hooks/index.cjs +103 -0
  26. package/dist/query/hooks/index.cjs.map +1 -1
  27. package/dist/query/hooks/index.d.cts +4 -4
  28. package/dist/query/hooks/index.d.ts +4 -4
  29. package/dist/query/hooks/index.js +100 -1
  30. package/dist/query/hooks/index.js.map +1 -1
  31. package/dist/query/index.cjs +111 -1
  32. package/dist/query/index.cjs.map +1 -1
  33. package/dist/query/index.d.cts +9 -9
  34. package/dist/query/index.d.ts +9 -9
  35. package/dist/query/index.js +104 -2
  36. package/dist/query/index.js.map +1 -1
  37. package/dist/schemas/index.cjs +44 -2
  38. package/dist/schemas/index.cjs.map +1 -1
  39. package/dist/schemas/index.d.cts +20 -589
  40. package/dist/schemas/index.d.ts +20 -589
  41. package/dist/schemas/index.js +43 -3
  42. package/dist/schemas/index.js.map +1 -1
  43. package/dist/schemas/write/index.cjs +8 -0
  44. package/dist/schemas/write/index.cjs.map +1 -1
  45. package/dist/schemas/write/index.d.cts +9 -0
  46. package/dist/schemas/write/index.d.ts +9 -0
  47. package/dist/schemas/write/index.js +8 -0
  48. package/dist/schemas/write/index.js.map +1 -1
  49. package/dist/shared-CNr-iMpc.d.cts +614 -0
  50. package/dist/shared-CNr-iMpc.d.ts +614 -0
  51. package/package.json +1 -1
@@ -1,602 +1,33 @@
1
+ export { A as ArtifactLink, a as ArtifactLinkSchema, B as BlobRef, b as BlobRefSchema, E as EndorsementConfirmationRecord, c as EndorsementConfirmationRecordSchema, d as EndorsementRecord, e as EndorsementRecordSchema, G as GraphFollowRecord, f as GraphFollowRecordSchema, O as OrgEmploymentAttestationRecord, g as OrgEmploymentAttestationRecordSchema, h as OrgProfileRecord, i as OrgProfileRecordSchema, P as PROFILE_INVOLVEMENT_NSID, j as PresentationDuration, k as PresentationDurationSchema, l as PresentationLink, m as PresentationLinkSchema, n as ProfileCertificationRecord, o as ProfileCertificationRecordSchema, p as ProfileCourseRecord, q as ProfileCourseRecordSchema, r as ProfileEducationRecord, s as ProfileEducationRecordSchema, t as ProfileExternalAccountRecord, u as ProfileExternalAccountRecordSchema, v as ProfileHonorRecord, w as ProfileHonorRecordSchema, x as ProfileInvolvementRecord, y as ProfileInvolvementRecordSchema, z as ProfileLanguageRecord, C as ProfileLanguageRecordSchema, D as ProfilePositionRecord, F as ProfilePositionRecordSchema, H as ProfilePresentationDeliveryRecord, I as ProfilePresentationDeliveryRecordSchema, J as ProfilePresentationRecord, K as ProfilePresentationRecordSchema, L as ProfileProjectRecord, M as ProfileProjectRecordSchema, N as ProfilePublicationRecord, Q as ProfilePublicationRecordSchema, R as ProfileSelfRecord, S as ProfileSelfRecordSchema, T as ProfileSkillRecord, U as ProfileSkillRecordSchema, V as ProfileVolunteeringRecord, W as ProfileVolunteeringRecordSchema, X as PublicationAuthor, Y as PublicationAuthorSchema, Z as atUriSchema, _ as cidSchema, $ as datetimeSchema, a0 as didSchema, a1 as externalRecordRefSchema, a2 as languageTagSchema, a3 as makeGraphFollowRecordSchema, a4 as maxGraphemes, a5 as partialDateSchema, a6 as selfLabelsSchema, a7 as skillRefSchema, a8 as strongRefSchema, a9 as uriSchema } from '../shared-CNr-iMpc.js';
2
+ export { A as AtmosphereFeedItem, a as AtmosphereFeedItemSchema, E as EntityImportSearchResponse, b as EntityImportSearchResponseSchema, c as EntityMintDomainResponse, d as EntityMintDomainResponseSchema, e as EntityResolveDomainRequest, f as EntityResolveDomainRequestSchema, g as EntityResolveDomainResponse, h as EntityResolveDomainResponseSchema, i as EntitySearchResponse, j as EntitySearchResponseSchema, k as EntitySearchResult, l as EntitySearchResultSchema, m as EntitySelectRequest, n as EntitySelectRequestSchema, o as EntitySelectResponse, p as EntitySelectResponseSchema, F as FEATURE_FLAGS, q as FeatureAllowlistEntry, r as FeatureAllowlistEntrySchema, s as FeatureFlag, t as FeedActor, u as FeedActorSchema, v as FeedCursor, w as FollowFeedItem, x as FollowFeedItemSchema, y as FollowFeedPage, z as FollowFeedPageSchema, B as FollowProfileItem, C as FollowProfilePage, D as FollowProfilePageSchema, G as FollowProfileSchema, S as SifaFeedItem, H as SifaFeedItemSchema, I as decodeFeedCursor, J as encodeFeedCursor } from '../feed-dOSy_48Z.js';
1
3
  import { z } from 'zod';
2
- export { A as AtmosphereFeedItem, d as AtmosphereFeedItemSchema, e as EntityImportSearchResponse, f as EntityImportSearchResponseSchema, g as EntityMintDomainResponse, h as EntityMintDomainResponseSchema, i as EntityResolveDomainRequest, j as EntityResolveDomainRequestSchema, k as EntityResolveDomainResponse, l as EntityResolveDomainResponseSchema, m as EntitySearchResponse, n as EntitySearchResponseSchema, E as EntitySearchResult, o as EntitySearchResultSchema, p as EntitySelectRequest, q as EntitySelectRequestSchema, r as EntitySelectResponse, s as EntitySelectResponseSchema, t as FEATURE_FLAGS, b as FeatureAllowlistEntry, u as FeatureAllowlistEntrySchema, c as FeatureFlag, v as FeedActor, w as FeedActorSchema, x as FeedCursor, y as FollowFeedItem, z as FollowFeedItemSchema, F as FollowFeedPage, B as FollowFeedPageSchema, a as FollowProfileItem, C as FollowProfilePage, D as FollowProfilePageSchema, G as FollowProfileSchema, S as SifaFeedItem, H as SifaFeedItemSchema, I as decodeFeedCursor, J as encodeFeedCursor } from '../feed-C8aHEPw4.js';
3
4
 
4
5
  /**
5
- * Duration of a presentation, in minutes. Mirrors
6
- * `id.sifa.profile.presentation#duration`: a fixed length (minMinutes only) or
7
- * a range (minMinutes to maxMinutes).
6
+ * Relations shipped today. The lexicon declares these as `knownValues`, not an
7
+ * enum, so the schema accepts any string: a consumer that meets a relation it
8
+ * does not recognise should still see that the named person affirmed something.
8
9
  */
9
- declare const PresentationDurationSchema: z.ZodObject<{
10
- minMinutes: z.ZodNumber;
11
- maxMinutes: z.ZodOptional<z.ZodNumber>;
12
- }, z.core.$strip>;
13
- type PresentationDuration = z.infer<typeof PresentationDurationSchema>;
14
- /**
15
- * A related link for a presentation or one of its deliveries. Mirrors
16
- * `id.sifa.defs#presentationLink`. `type` is an open enum (knownValues), so any
17
- * string is accepted.
18
- */
19
- declare const PresentationLinkSchema: z.ZodObject<{
20
- uri: z.ZodString;
21
- label: z.ZodOptional<z.ZodString>;
22
- type: z.ZodOptional<z.ZodString>;
23
- }, z.core.$strip>;
24
- type PresentationLink = z.infer<typeof PresentationLinkSchema>;
25
- /** Zod schema for `id.sifa.profile.presentation` records (the reusable content). */
26
- declare const ProfilePresentationRecordSchema: z.ZodObject<{
27
- title: z.ZodString;
28
- description: z.ZodOptional<z.ZodString>;
29
- duration: z.ZodOptional<z.ZodObject<{
30
- minMinutes: z.ZodNumber;
31
- maxMinutes: z.ZodOptional<z.ZodNumber>;
32
- }, z.core.$strip>>;
33
- intendedAudiences: z.ZodOptional<z.ZodArray<z.ZodString>>;
34
- links: z.ZodOptional<z.ZodArray<z.ZodObject<{
35
- uri: z.ZodString;
36
- label: z.ZodOptional<z.ZodString>;
37
- type: z.ZodOptional<z.ZodString>;
38
- }, z.core.$strip>>>;
39
- writeupRef: z.ZodOptional<z.ZodObject<{
40
- uri: z.ZodString;
41
- cid: z.ZodOptional<z.ZodString>;
42
- }, z.core.$strip>>;
43
- coverImage: z.ZodOptional<z.ZodObject<{
44
- $type: z.ZodLiteral<"blob">;
45
- ref: z.ZodObject<{
46
- $link: z.ZodString;
47
- }, z.core.$strip>;
48
- mimeType: z.ZodString;
49
- size: z.ZodNumber;
50
- }, z.core.$strip>>;
51
- createdAt: z.ZodString;
52
- }, z.core.$strip>;
53
- type ProfilePresentationRecord = z.infer<typeof ProfilePresentationRecordSchema>;
54
-
55
- /**
56
- * Blob-ref passthrough shared by records that carry an uploaded blob (org logo,
57
- * presentation cover image, ...). Mirrors the `blobRefSchema` validated by the
58
- * sifa-api write endpoints -- the shape is validated, then written to the PDS
59
- * verbatim.
60
- */
61
- declare const BlobRefSchema: z.ZodObject<{
62
- $type: z.ZodLiteral<"blob">;
63
- ref: z.ZodObject<{
64
- $link: z.ZodString;
65
- }, z.core.$strip>;
66
- mimeType: z.ZodString;
67
- size: z.ZodNumber;
68
- }, z.core.$strip>;
69
- type BlobRef = z.infer<typeof BlobRefSchema>;
70
-
71
- /**
72
- * Zod schema for `id.sifa.endorsement.confirmation` records.
73
- * Lives in the endorsee's PDS to approve display of an endorsement.
74
- */
75
- declare const EndorsementConfirmationRecordSchema: z.ZodObject<{
76
- endorsement: z.ZodObject<{
77
- uri: z.ZodString;
78
- cid: z.ZodString;
79
- }, z.core.$strip>;
80
- createdAt: z.ZodString;
81
- }, z.core.$strip>;
82
- type EndorsementConfirmationRecord = z.infer<typeof EndorsementConfirmationRecordSchema>;
83
-
84
- /**
85
- * Zod schema for `id.sifa.endorsement` records. Lives in the endorser's PDS;
86
- * the endorser identity is implicit (whoever owns the repository).
87
- */
88
- declare const EndorsementRecordSchema: z.ZodObject<{
89
- subject: z.ZodString;
90
- skill: z.ZodObject<{
91
- uri: z.ZodString;
92
- cid: z.ZodString;
93
- }, z.core.$strip>;
94
- skillName: z.ZodString;
95
- comment: z.ZodOptional<z.ZodString>;
96
- createdAt: z.ZodString;
97
- }, z.core.$strip>;
98
- type EndorsementRecord = z.infer<typeof EndorsementRecordSchema>;
99
-
100
- /**
101
- * Zod schema for `id.sifa.org.profile` records -- the self-declared
102
- * organization profile. Singleton (record key `self`), lives in the org's PDS.
103
- * Presence of this record marks the account as presenting as an organization;
104
- * trust is layered separately (rendering floor, verification labels).
105
- *
106
- * Mirrors the lexicon wire shape (grapheme + byte caps, blob logo, uri refs).
107
- * For the sifa-api write-endpoint contract, use the schemas under
108
- * `@singi-labs/sifa-sdk/schemas/write` instead.
109
- */
110
- declare const OrgProfileRecordSchema: z.ZodObject<{
111
- name: z.ZodString;
112
- description: z.ZodOptional<z.ZodString>;
113
- logo: z.ZodOptional<z.ZodUnknown>;
114
- website: z.ZodOptional<z.ZodString>;
115
- entityRefs: z.ZodOptional<z.ZodArray<z.ZodString>>;
116
- contact: z.ZodOptional<z.ZodString>;
117
- addresses: z.ZodOptional<z.ZodArray<z.ZodObject<{
118
- country: z.ZodOptional<z.ZodString>;
119
- postalCode: z.ZodOptional<z.ZodString>;
120
- region: z.ZodOptional<z.ZodString>;
121
- locality: z.ZodOptional<z.ZodString>;
122
- street: z.ZodOptional<z.ZodString>;
123
- name: z.ZodOptional<z.ZodString>;
124
- }, z.core.$strip>>>;
125
- companySize: z.ZodOptional<z.ZodString>;
126
- links: z.ZodOptional<z.ZodArray<z.ZodObject<{
127
- name: z.ZodString;
128
- url: z.ZodString;
129
- }, z.core.$strip>>>;
130
- personalProfileVisible: z.ZodOptional<z.ZodBoolean>;
131
- labels: z.ZodOptional<z.ZodObject<{
132
- $type: z.ZodOptional<z.ZodLiteral<"com.atproto.label.defs#selfLabels">>;
133
- values: z.ZodArray<z.ZodObject<{
134
- val: z.ZodString;
135
- }, z.core.$strip>>;
136
- }, z.core.$strip>>;
137
- createdAt: z.ZodString;
138
- }, z.core.$strip>;
139
- type OrgProfileRecord = z.infer<typeof OrgProfileRecordSchema>;
140
-
10
+ declare const CONFIRMATION_RELATIONS: readonly ["id.sifa.defs#coSpeaker", "id.sifa.defs#projectMember"];
11
+ type ConfirmationRelation = (typeof CONFIRMATION_RELATIONS)[number];
141
12
  /**
142
- * Zod schema for `id.sifa.org.employmentAttestation` records -- an
143
- * organization's attestation that a person is or was employed in a specific
144
- * position. Lives in the org's PDS (the org is implicit: whoever owns the repo).
145
- *
146
- * The position identity is pinned via a snapshot triple (`title`, `startedAt`,
147
- * and the entity identifier `entityRef` | `companyDid`) so editing those pinned
148
- * fields on the referenced position record voids the attestation. The free-text
149
- * company name is never pinned (a rebrand must not invalidate the attestation).
13
+ * Zod schema for `id.sifa.confirmation` records.
150
14
  *
151
- * `startedAt` / `endedAt` mirror the position lexicon's freeform `YYYY-MM` /
152
- * `YYYY-MM-DD` date shape, not strict `datetime`.
15
+ * The subject strongRef carries no collection constraint by design: one record
16
+ * type affirms a co-speaker credit, a project membership, and whatever
17
+ * people-link relations come next. Resolve it by AT-URI; the CID pins the
18
+ * version seen at confirmation time and is an integrity hint, not a join key,
19
+ * because the claimer editing their record changes its CID without
20
+ * invalidating anything.
153
21
  */
154
- declare const OrgEmploymentAttestationRecordSchema: z.ZodObject<{
155
- subject: z.ZodString;
156
- position: z.ZodObject<{
22
+ declare const ConfirmationRecordSchema: z.ZodObject<{
23
+ subject: z.ZodObject<{
157
24
  uri: z.ZodString;
158
25
  cid: z.ZodString;
159
26
  }, z.core.$strip>;
160
- status: z.ZodEnum<{
161
- current: "current";
162
- past: "past";
163
- }>;
164
- title: z.ZodString;
165
- startedAt: z.ZodString;
166
- entityRef: z.ZodOptional<z.ZodString>;
167
- companyDid: z.ZodOptional<z.ZodString>;
168
- endedAt: z.ZodOptional<z.ZodString>;
169
- comment: z.ZodOptional<z.ZodString>;
170
- labels: z.ZodOptional<z.ZodObject<{
171
- $type: z.ZodOptional<z.ZodLiteral<"com.atproto.label.defs#selfLabels">>;
172
- values: z.ZodArray<z.ZodObject<{
173
- val: z.ZodString;
174
- }, z.core.$strip>>;
175
- }, z.core.$strip>>;
176
- createdAt: z.ZodString;
177
- }, z.core.$strip>;
178
- type OrgEmploymentAttestationRecord = z.infer<typeof OrgEmploymentAttestationRecordSchema>;
179
-
180
- /**
181
- * Zod schema for `id.sifa.graph.follow` records.
182
- *
183
- * One-way professional follow; the record lives in the follower's PDS. Per
184
- * iter-1 decisions (`plans/2026-06-01-in-sifa-follow-primitive.md`), this is
185
- * a **distinct** graph from `app.bsky.graph.follow`, not a superset — but
186
- * the required field shape (`subject` + `createdAt`) is intentionally
187
- * identical so generic Bluesky `listRecords` consumers get usable records.
188
- *
189
- * `note` is a Sifa addition: an optional reason for the follow ("why I
190
- * followed"). Capped at 200 graphemes to match other profile-flavored
191
- * lexicon fields.
192
- */
193
- declare const GraphFollowRecordSchema: z.ZodObject<{
194
- subject: z.ZodString;
195
- createdAt: z.ZodString;
196
- note: z.ZodOptional<z.ZodString>;
197
- }, z.core.$strip>;
198
- type GraphFollowRecord = z.infer<typeof GraphFollowRecordSchema>;
199
- /**
200
- * Build a `GraphFollowRecordSchema` that rejects self-follow at the Zod
201
- * layer (CLAUDE.md mandatory standards #3 — input validation; sifa-api#673
202
- * E8 — defence in depth).
203
- *
204
- * Use this on the **client side** when constructing a new follow record
205
- * (the follower DID is the authenticated user). The plain
206
- * {@link GraphFollowRecordSchema} stays without the refine so firehose
207
- * consumers can validate records without context.
208
- */
209
- declare function makeGraphFollowRecordSchema(followerDid: string): z.ZodObject<{
210
- subject: z.ZodString;
211
- createdAt: z.ZodString;
212
- note: z.ZodOptional<z.ZodString>;
213
- }, z.core.$strip>;
214
-
215
- /** Zod schema for `id.sifa.profile.certification` records. */
216
- declare const ProfileCertificationRecordSchema: z.ZodObject<{
217
- name: z.ZodString;
218
- authority: z.ZodOptional<z.ZodString>;
219
- authorityDid: z.ZodOptional<z.ZodString>;
220
- entityRef: z.ZodOptional<z.ZodString>;
221
- credentialId: z.ZodOptional<z.ZodString>;
222
- credentialUrl: z.ZodOptional<z.ZodString>;
223
- issuedAt: z.ZodOptional<z.ZodString>;
224
- expiresAt: z.ZodOptional<z.ZodString>;
225
- labels: z.ZodOptional<z.ZodObject<{
226
- $type: z.ZodOptional<z.ZodLiteral<"com.atproto.label.defs#selfLabels">>;
227
- values: z.ZodArray<z.ZodObject<{
228
- val: z.ZodString;
229
- }, z.core.$strip>>;
230
- }, z.core.$strip>>;
231
- createdAt: z.ZodString;
232
- }, z.core.$strip>;
233
- type ProfileCertificationRecord = z.infer<typeof ProfileCertificationRecordSchema>;
234
-
235
- /** Zod schema for `id.sifa.profile.course` records. */
236
- declare const ProfileCourseRecordSchema: z.ZodObject<{
237
- name: z.ZodString;
238
- number: z.ZodOptional<z.ZodString>;
239
- institution: z.ZodOptional<z.ZodString>;
240
- entityRef: z.ZodOptional<z.ZodString>;
241
- education: z.ZodOptional<z.ZodObject<{
242
- uri: z.ZodString;
243
- cid: z.ZodString;
244
- }, z.core.$strip>>;
245
- credential: z.ZodOptional<z.ZodString>;
246
- completedAt: z.ZodOptional<z.ZodString>;
247
- createdAt: z.ZodString;
248
- }, z.core.$strip>;
249
- type ProfileCourseRecord = z.infer<typeof ProfileCourseRecordSchema>;
250
-
251
- /** Zod schema for `id.sifa.profile.education` records. */
252
- declare const ProfileEducationRecordSchema: z.ZodObject<{
253
- institution: z.ZodString;
254
- institutionDid: z.ZodOptional<z.ZodString>;
255
- entityRef: z.ZodOptional<z.ZodString>;
256
- degree: z.ZodOptional<z.ZodString>;
257
- fieldOfStudy: z.ZodOptional<z.ZodString>;
258
- grade: z.ZodOptional<z.ZodString>;
259
- activities: z.ZodOptional<z.ZodString>;
260
- description: z.ZodOptional<z.ZodString>;
261
- location: z.ZodOptional<z.ZodUnknown>;
262
- startedAt: z.ZodOptional<z.ZodString>;
263
- endedAt: z.ZodOptional<z.ZodString>;
264
- labels: z.ZodOptional<z.ZodObject<{
265
- $type: z.ZodOptional<z.ZodLiteral<"com.atproto.label.defs#selfLabels">>;
266
- values: z.ZodArray<z.ZodObject<{
267
- val: z.ZodString;
268
- }, z.core.$strip>>;
269
- }, z.core.$strip>>;
27
+ relation: z.ZodString;
28
+ subjectName: z.ZodOptional<z.ZodString>;
270
29
  createdAt: z.ZodString;
271
30
  }, z.core.$strip>;
272
- type ProfileEducationRecord = z.infer<typeof ProfileEducationRecordSchema>;
273
-
274
- /**
275
- * Zod schema for `id.sifa.profile.externalAccount` records.
276
- *
277
- * `platform` is advisory (`knownValues` in the lexicon) -- known values live
278
- * under `id.sifa.defs#platform*` but unknown values are accepted.
279
- */
280
- declare const ProfileExternalAccountRecordSchema: z.ZodObject<{
281
- platform: z.ZodString;
282
- url: z.ZodString;
283
- label: z.ZodOptional<z.ZodString>;
284
- feedUrl: z.ZodOptional<z.ZodString>;
285
- isPrimary: z.ZodOptional<z.ZodBoolean>;
286
- createdAt: z.ZodString;
287
- }, z.core.$strip>;
288
- type ProfileExternalAccountRecord = z.infer<typeof ProfileExternalAccountRecordSchema>;
289
-
290
- /** Zod schema for `id.sifa.profile.honor` records. */
291
- declare const ProfileHonorRecordSchema: z.ZodObject<{
292
- title: z.ZodString;
293
- issuer: z.ZodOptional<z.ZodString>;
294
- issuerDid: z.ZodOptional<z.ZodString>;
295
- entityRef: z.ZodOptional<z.ZodString>;
296
- description: z.ZodOptional<z.ZodString>;
297
- awardedAt: z.ZodOptional<z.ZodString>;
298
- createdAt: z.ZodString;
299
- }, z.core.$strip>;
300
- type ProfileHonorRecord = z.infer<typeof ProfileHonorRecordSchema>;
301
-
302
- /** Collection NSID for involvement records. Pass to the generic record helpers. */
303
- declare const PROFILE_INVOLVEMENT_NSID = "id.sifa.profile.involvement";
304
- /**
305
- * A public artifact proving a piece of work. Mirrors `id.sifa.defs#artifactLink`.
306
- * `kind` is an open enum (bare-string knownValues), so any string is accepted.
307
- * `.passthrough()` keeps unknown fields a newer client or co-writer may emit.
308
- */
309
- declare const ArtifactLinkSchema: z.ZodObject<{
310
- url: z.ZodString;
311
- kind: z.ZodOptional<z.ZodString>;
312
- label: z.ZodOptional<z.ZodString>;
313
- }, z.core.$loose>;
314
- type ArtifactLink = z.infer<typeof ArtifactLinkSchema>;
315
- /**
316
- * Zod schema for `id.sifa.profile.involvement` records.
317
- *
318
- * `.passthrough()` (not `.strict()`): external apps (Verak, weareonhire)
319
- * co-write `id.sifa.*`, so an older SDK must not reject a record carrying a
320
- * field it doesn't know yet. `kind` is an open enum matching the lexicon's
321
- * knownValues but accepting any string for the same forward-compat reason.
322
- */
323
- declare const ProfileInvolvementRecordSchema: z.ZodObject<{
324
- kind: z.ZodString;
325
- upstream: z.ZodOptional<z.ZodString>;
326
- upstreamDid: z.ZodOptional<z.ZodString>;
327
- upstreamUrl: z.ZodOptional<z.ZodString>;
328
- role: z.ZodOptional<z.ZodString>;
329
- description: z.ZodOptional<z.ZodString>;
330
- startedAt: z.ZodOptional<z.ZodString>;
331
- endedAt: z.ZodOptional<z.ZodString>;
332
- links: z.ZodOptional<z.ZodArray<z.ZodObject<{
333
- url: z.ZodString;
334
- kind: z.ZodOptional<z.ZodString>;
335
- label: z.ZodOptional<z.ZodString>;
336
- }, z.core.$loose>>>;
337
- entityRef: z.ZodOptional<z.ZodString>;
338
- location: z.ZodOptional<z.ZodUnknown>;
339
- skills: z.ZodOptional<z.ZodArray<z.ZodObject<{
340
- uri: z.ZodString;
341
- }, z.core.$strip>>>;
342
- labels: z.ZodOptional<z.ZodObject<{
343
- $type: z.ZodOptional<z.ZodLiteral<"com.atproto.label.defs#selfLabels">>;
344
- values: z.ZodArray<z.ZodObject<{
345
- val: z.ZodString;
346
- }, z.core.$strip>>;
347
- }, z.core.$strip>>;
348
- createdAt: z.ZodString;
349
- }, z.core.$loose>;
350
- type ProfileInvolvementRecord = z.infer<typeof ProfileInvolvementRecordSchema>;
351
-
352
- /**
353
- * Zod schema for `id.sifa.profile.language` records.
354
- *
355
- * `proficiency` is advisory (`knownValues` in the lexicon) -- known values
356
- * are the five-level LinkedIn-compatible scale under `id.sifa.defs#*`.
357
- */
358
- declare const ProfileLanguageRecordSchema: z.ZodObject<{
359
- name: z.ZodString;
360
- proficiency: z.ZodOptional<z.ZodString>;
361
- createdAt: z.ZodString;
362
- }, z.core.$strip>;
363
- type ProfileLanguageRecord = z.infer<typeof ProfileLanguageRecordSchema>;
364
-
365
- /** Zod schema for `id.sifa.profile.position` records. */
366
- declare const ProfilePositionRecordSchema: z.ZodObject<{
367
- company: z.ZodOptional<z.ZodString>;
368
- companyDid: z.ZodOptional<z.ZodString>;
369
- entityRef: z.ZodOptional<z.ZodString>;
370
- title: z.ZodString;
371
- description: z.ZodOptional<z.ZodString>;
372
- employmentType: z.ZodOptional<z.ZodString>;
373
- workplaceType: z.ZodOptional<z.ZodString>;
374
- location: z.ZodOptional<z.ZodUnknown>;
375
- startedAt: z.ZodString;
376
- endedAt: z.ZodOptional<z.ZodString>;
377
- skills: z.ZodOptional<z.ZodArray<z.ZodObject<{
378
- uri: z.ZodString;
379
- }, z.core.$strip>>>;
380
- isPrimary: z.ZodOptional<z.ZodBoolean>;
381
- labels: z.ZodOptional<z.ZodObject<{
382
- $type: z.ZodOptional<z.ZodLiteral<"com.atproto.label.defs#selfLabels">>;
383
- values: z.ZodArray<z.ZodObject<{
384
- val: z.ZodString;
385
- }, z.core.$strip>>;
386
- }, z.core.$strip>>;
387
- createdAt: z.ZodString;
388
- }, z.core.$loose>;
389
- type ProfilePositionRecord = z.infer<typeof ProfilePositionRecordSchema>;
390
-
391
- /**
392
- * Zod schema for `id.sifa.profile.presentationDelivery` records (one occasion
393
- * on which a presentation was delivered). Works standalone or linked to a
394
- * presentation and/or a calendar event. `role`, `mode`, and `status` are open
395
- * enums (knownValues); `mode`/`status` store the full
396
- * `community.lexicon.calendar.event` token.
397
- */
398
- declare const ProfilePresentationDeliveryRecordSchema: z.ZodObject<{
399
- presentationRef: z.ZodOptional<z.ZodObject<{
400
- uri: z.ZodString;
401
- cid: z.ZodOptional<z.ZodString>;
402
- }, z.core.$strip>>;
403
- title: z.ZodOptional<z.ZodString>;
404
- role: z.ZodOptional<z.ZodString>;
405
- eventName: z.ZodOptional<z.ZodString>;
406
- date: z.ZodOptional<z.ZodString>;
407
- location: z.ZodOptional<z.ZodString>;
408
- address: z.ZodOptional<z.ZodObject<{
409
- country: z.ZodOptional<z.ZodString>;
410
- postalCode: z.ZodOptional<z.ZodString>;
411
- region: z.ZodOptional<z.ZodString>;
412
- locality: z.ZodOptional<z.ZodString>;
413
- street: z.ZodOptional<z.ZodString>;
414
- name: z.ZodOptional<z.ZodString>;
415
- }, z.core.$strip>>;
416
- mode: z.ZodOptional<z.ZodString>;
417
- status: z.ZodOptional<z.ZodString>;
418
- links: z.ZodOptional<z.ZodArray<z.ZodObject<{
419
- uri: z.ZodString;
420
- label: z.ZodOptional<z.ZodString>;
421
- type: z.ZodOptional<z.ZodString>;
422
- }, z.core.$strip>>>;
423
- eventRef: z.ZodOptional<z.ZodObject<{
424
- uri: z.ZodString;
425
- cid: z.ZodOptional<z.ZodString>;
426
- }, z.core.$strip>>;
427
- coSpeakers: z.ZodOptional<z.ZodArray<z.ZodString>>;
428
- createdAt: z.ZodString;
429
- }, z.core.$strip>;
430
- type ProfilePresentationDeliveryRecord = z.infer<typeof ProfilePresentationDeliveryRecordSchema>;
431
-
432
- /** Zod schema for `id.sifa.profile.project` records. */
433
- declare const ProfileProjectRecordSchema: z.ZodObject<{
434
- name: z.ZodString;
435
- description: z.ZodOptional<z.ZodString>;
436
- url: z.ZodOptional<z.ZodString>;
437
- position: z.ZodOptional<z.ZodObject<{
438
- uri: z.ZodString;
439
- cid: z.ZodString;
440
- }, z.core.$strip>>;
441
- startedAt: z.ZodOptional<z.ZodString>;
442
- endedAt: z.ZodOptional<z.ZodString>;
443
- labels: z.ZodOptional<z.ZodObject<{
444
- $type: z.ZodOptional<z.ZodLiteral<"com.atproto.label.defs#selfLabels">>;
445
- values: z.ZodArray<z.ZodObject<{
446
- val: z.ZodString;
447
- }, z.core.$strip>>;
448
- }, z.core.$strip>>;
449
- createdAt: z.ZodString;
450
- }, z.core.$strip>;
451
- type ProfileProjectRecord = z.infer<typeof ProfileProjectRecordSchema>;
452
-
453
- /** Author shape from `id.sifa.profile.publication#author`. */
454
- declare const PublicationAuthorSchema: z.ZodObject<{
455
- name: z.ZodString;
456
- did: z.ZodOptional<z.ZodString>;
457
- }, z.core.$strip>;
458
- type PublicationAuthor = z.infer<typeof PublicationAuthorSchema>;
459
- /** Zod schema for `id.sifa.profile.publication` records. */
460
- declare const ProfilePublicationRecordSchema: z.ZodObject<{
461
- title: z.ZodString;
462
- subtitle: z.ZodOptional<z.ZodString>;
463
- publisher: z.ZodOptional<z.ZodString>;
464
- url: z.ZodOptional<z.ZodString>;
465
- description: z.ZodOptional<z.ZodString>;
466
- authors: z.ZodOptional<z.ZodArray<z.ZodObject<{
467
- name: z.ZodString;
468
- did: z.ZodOptional<z.ZodString>;
469
- }, z.core.$strip>>>;
470
- publishedAt: z.ZodOptional<z.ZodString>;
471
- createdAt: z.ZodString;
472
- }, z.core.$strip>;
473
- type ProfilePublicationRecord = z.infer<typeof ProfilePublicationRecordSchema>;
474
-
475
- /**
476
- * Zod schema for `id.sifa.profile.self` records. Singleton (record key `self`).
477
- *
478
- * `knownValues` on `openTo` and `preferredWorkplace` are advisory per the
479
- * lexicon spec -- unknown values are allowed, but documented options live
480
- * under the `id.sifa.defs#*` namespace.
481
- */
482
- declare const ProfileSelfRecordSchema: z.ZodObject<{
483
- headline: z.ZodOptional<z.ZodString>;
484
- about: z.ZodOptional<z.ZodString>;
485
- industry: z.ZodOptional<z.ZodString>;
486
- givenName: z.ZodOptional<z.ZodString>;
487
- familyName: z.ZodOptional<z.ZodString>;
488
- location: z.ZodOptional<z.ZodUnknown>;
489
- openTo: z.ZodOptional<z.ZodArray<z.ZodString>>;
490
- preferredWorkplace: z.ZodOptional<z.ZodArray<z.ZodString>>;
491
- langs: z.ZodOptional<z.ZodArray<z.ZodString>>;
492
- labels: z.ZodOptional<z.ZodObject<{
493
- $type: z.ZodOptional<z.ZodLiteral<"com.atproto.label.defs#selfLabels">>;
494
- values: z.ZodArray<z.ZodObject<{
495
- val: z.ZodString;
496
- }, z.core.$strip>>;
497
- }, z.core.$strip>>;
498
- discoverable: z.ZodOptional<z.ZodBoolean>;
499
- createdAt: z.ZodString;
500
- }, z.core.$strip>;
501
- type ProfileSelfRecord = z.infer<typeof ProfileSelfRecordSchema>;
502
-
503
- /**
504
- * Zod schema for `id.sifa.profile.skill` records.
505
- *
506
- * `category` is advisory (`knownValues` in the lexicon) -- known values live
507
- * under `id.sifa.defs#*` but unknown values are accepted. `subCategory` is a
508
- * freeform user-defined grouping label nested under `category` (no known
509
- * values); renderers decide its display label.
510
- */
511
- declare const ProfileSkillRecordSchema: z.ZodObject<{
512
- name: z.ZodString;
513
- category: z.ZodOptional<z.ZodString>;
514
- subCategory: z.ZodOptional<z.ZodString>;
515
- createdAt: z.ZodString;
516
- }, z.core.$strip>;
517
- type ProfileSkillRecord = z.infer<typeof ProfileSkillRecordSchema>;
518
-
519
- /** Zod schema for `id.sifa.profile.volunteering` records. */
520
- declare const ProfileVolunteeringRecordSchema: z.ZodObject<{
521
- organization: z.ZodString;
522
- organizationDid: z.ZodOptional<z.ZodString>;
523
- entityRef: z.ZodOptional<z.ZodString>;
524
- role: z.ZodOptional<z.ZodString>;
525
- cause: z.ZodOptional<z.ZodString>;
526
- description: z.ZodOptional<z.ZodString>;
527
- startedAt: z.ZodOptional<z.ZodString>;
528
- endedAt: z.ZodOptional<z.ZodString>;
529
- createdAt: z.ZodString;
530
- }, z.core.$strip>;
531
- type ProfileVolunteeringRecord = z.infer<typeof ProfileVolunteeringRecordSchema>;
532
-
533
- /**
534
- * Grapheme-aware refinement matching the AT Protocol lexicon `maxGraphemes`
535
- * constraint. JS strings are sequences of UTF-16 code units, but lexicon
536
- * `maxGraphemes` counts user-perceived characters (grapheme clusters), so
537
- * emoji sequences, regional indicators, ZWJ joins, and combining marks all
538
- * count as one unit each. We use `Intl.Segmenter` to enforce this correctly.
539
- */
540
- declare function maxGraphemes(max: number): (value: string) => boolean;
541
- /** Decentralized identifier, AT Protocol `format: did`. */
542
- declare const didSchema: z.ZodString;
543
- /** RFC 3339 datetime with timezone offset, AT Protocol `format: datetime`. */
544
- declare const datetimeSchema: z.ZodString;
545
- /**
546
- * Freeform calendar date for user-facing profile dates (start/end, issued,
547
- * completed, awarded, published, etc.). Accepts a bare year, year-month,
548
- * year-month-day, or a full datetime (so a legacy record's RFC-3339 date maps
549
- * through on backfill without loss). NOT strict `datetime` -- users typically
550
- * remember only month/year, and LinkedIn-importer writes carry partial dates,
551
- * so the lexicons document these as freeform `YYYY-MM` / `YYYY-MM-DD`. Record
552
- * metadata like `createdAt` stays on `datetimeSchema`.
553
- */
554
- declare const partialDateSchema: z.ZodString;
555
- /** Generic AT-URI, AT Protocol `format: at-uri`. */
556
- declare const atUriSchema: z.ZodString;
557
- /** Content identifier, AT Protocol `format: cid`. Loose validation -- accepts CIDv0 and CIDv1. */
558
- declare const cidSchema: z.ZodString;
559
- /** BCP 47 language tag, AT Protocol `format: language`. */
560
- declare const languageTagSchema: z.ZodString;
561
- /** Generic URI, AT Protocol `format: uri`. */
562
- declare const uriSchema: z.ZodString;
563
- /**
564
- * StrongRef shape from `com.atproto.repo.strongRef` -- pins a record by both
565
- * AT-URI (identity) and CID (version).
566
- */
567
- declare const strongRefSchema: z.ZodObject<{
568
- uri: z.ZodString;
569
- cid: z.ZodString;
570
- }, z.core.$strip>;
571
- /**
572
- * Reference to an `id.sifa.profile.skill` record by AT-URI. Mirrors
573
- * `id.sifa.defs#skillRef`, which carries no CID at all: skills are mutable
574
- * records in the same user's repo, so the reference resolves live and tracks
575
- * edits to the target.
576
- */
577
- declare const skillRefSchema: z.ZodObject<{
578
- uri: z.ZodString;
579
- }, z.core.$strip>;
580
- /**
581
- * Reference to a record by AT-URI, with an optional CID. Mirrors
582
- * `id.sifa.defs#externalRecordRef`. Unlike a strongRef the CID is optional:
583
- * consumers resolve the AT-URI live so the reference tracks edits to the
584
- * target, and the CID is a best-effort integrity hint only.
585
- */
586
- declare const externalRecordRefSchema: z.ZodObject<{
587
- uri: z.ZodString;
588
- cid: z.ZodOptional<z.ZodString>;
589
- }, z.core.$strip>;
590
- /**
591
- * Self-labels shape from `com.atproto.label.defs#selfLabels`. Modelled
592
- * permissively because clients rarely construct this directly; the AppView
593
- * handles label validation.
594
- */
595
- declare const selfLabelsSchema: z.ZodObject<{
596
- $type: z.ZodOptional<z.ZodLiteral<"com.atproto.label.defs#selfLabels">>;
597
- values: z.ZodArray<z.ZodObject<{
598
- val: z.ZodString;
599
- }, z.core.$strip>>;
600
- }, z.core.$strip>;
31
+ type ConfirmationRecord = z.infer<typeof ConfirmationRecordSchema>;
601
32
 
602
- export { type ArtifactLink, ArtifactLinkSchema, type BlobRef, BlobRefSchema, type EndorsementConfirmationRecord, EndorsementConfirmationRecordSchema, type EndorsementRecord, EndorsementRecordSchema, type GraphFollowRecord, GraphFollowRecordSchema, type OrgEmploymentAttestationRecord, OrgEmploymentAttestationRecordSchema, type OrgProfileRecord, OrgProfileRecordSchema, PROFILE_INVOLVEMENT_NSID, type PresentationDuration, PresentationDurationSchema, type PresentationLink, PresentationLinkSchema, type ProfileCertificationRecord, ProfileCertificationRecordSchema, type ProfileCourseRecord, ProfileCourseRecordSchema, type ProfileEducationRecord, ProfileEducationRecordSchema, type ProfileExternalAccountRecord, ProfileExternalAccountRecordSchema, type ProfileHonorRecord, ProfileHonorRecordSchema, type ProfileInvolvementRecord, ProfileInvolvementRecordSchema, type ProfileLanguageRecord, ProfileLanguageRecordSchema, type ProfilePositionRecord, ProfilePositionRecordSchema, type ProfilePresentationDeliveryRecord, ProfilePresentationDeliveryRecordSchema, type ProfilePresentationRecord, ProfilePresentationRecordSchema, type ProfileProjectRecord, ProfileProjectRecordSchema, type ProfilePublicationRecord, ProfilePublicationRecordSchema, type ProfileSelfRecord, ProfileSelfRecordSchema, type ProfileSkillRecord, ProfileSkillRecordSchema, type ProfileVolunteeringRecord, ProfileVolunteeringRecordSchema, type PublicationAuthor, PublicationAuthorSchema, atUriSchema, cidSchema, datetimeSchema, didSchema, externalRecordRefSchema, languageTagSchema, makeGraphFollowRecordSchema, maxGraphemes, partialDateSchema, selfLabelsSchema, skillRefSchema, strongRefSchema, uriSchema };
33
+ export { CONFIRMATION_RELATIONS, type ConfirmationRecord, ConfirmationRecordSchema, type ConfirmationRelation };