@singi-labs/sifa-sdk 0.19.86 → 0.19.88

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/{follow-profile-ceqefXAw.d.ts → follow-profile-CcMgQDsh.d.ts} +1 -1
  2. package/dist/{follow-profile-CQ3DTTak.d.cts → follow-profile-D3zDoDll.d.cts} +1 -1
  3. package/dist/format/blob-proxy-url.js +9 -0
  4. package/dist/format/blob-proxy-url.js.map +1 -0
  5. package/dist/format/index.js +2 -0
  6. package/dist/format/index.js.map +1 -1
  7. package/dist/{index-BrWWVQLL.d.cts → index-C2n-GjH2.d.cts} +1 -1
  8. package/dist/{index-B0BDMGLm.d.ts → index-LxGL5I-J.d.ts} +1 -1
  9. package/dist/index.cjs +60 -10
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.d.cts +26 -10
  12. package/dist/index.d.ts +26 -10
  13. package/dist/index.js +5 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/jsonld/index.d.cts +2 -2
  16. package/dist/jsonld/index.d.ts +2 -2
  17. package/dist/{network-map-BRoBXwPG.d.cts → network-map-CFZx_xXE.d.cts} +4 -4
  18. package/dist/{network-map-NbEQwn91.d.ts → network-map-k2QxGpGf.d.ts} +4 -4
  19. package/dist/{profile-summary-BGIJ6ovO.d.ts → profile-summary-2pFtukEK.d.ts} +1 -1
  20. package/dist/{profile-summary-BpfRgE0z.d.cts → profile-summary-CwJD0-wo.d.cts} +1 -1
  21. package/dist/query/fetchers/index.d.cts +8 -8
  22. package/dist/query/fetchers/index.d.ts +8 -8
  23. package/dist/query/hooks/index.d.cts +6 -6
  24. package/dist/query/hooks/index.d.ts +6 -6
  25. package/dist/query/index.d.cts +11 -11
  26. package/dist/query/index.d.ts +11 -11
  27. package/dist/resume/index.d.cts +2 -2
  28. package/dist/resume/index.d.ts +2 -2
  29. package/dist/schemas/follow-profile.js +3 -1
  30. package/dist/schemas/follow-profile.js.map +1 -1
  31. package/dist/schemas/index.cjs +9 -5
  32. package/dist/schemas/index.cjs.map +1 -1
  33. package/dist/schemas/index.d.cts +2 -2
  34. package/dist/schemas/index.d.ts +2 -2
  35. package/dist/stream/stream-card-vm-schema.js +2 -1
  36. package/dist/stream/stream-card-vm-schema.js.map +1 -1
  37. package/dist/stream/to-stream-card-vm.js +13 -2
  38. package/dist/stream/to-stream-card-vm.js.map +1 -1
  39. package/dist/taxonomy/index.js +2 -0
  40. package/dist/taxonomy/index.js.map +1 -1
  41. package/dist/taxonomy/verification-providers.js +26 -5
  42. package/dist/taxonomy/verification-providers.js.map +1 -1
  43. package/dist/{types-D2IffOnb.d.ts → types-CICITVJa.d.ts} +2 -2
  44. package/dist/{types-CPi-Xcur.d.cts → types-DkrZo5eF.d.cts} +2 -2
  45. package/dist/{use-user-settings-BxIVvuk3.d.cts → use-user-settings-Azxf51V9.d.cts} +4 -4
  46. package/dist/{use-user-settings-D_APuRP2.d.ts → use-user-settings-DQNz9PYA.d.ts} +4 -4
  47. package/dist/{user-settings-BFyyuR3C.d.cts → user-settings-BDZ9i-Pk.d.cts} +4 -4
  48. package/dist/{user-settings-BSlRJc0W.d.ts → user-settings-DvqRXhdC.d.ts} +4 -4
  49. package/dist/{verification-providers-7il3kPQS.d.cts → verification-providers-BPdY3KyH.d.cts} +43 -9
  50. package/dist/{verification-providers-7il3kPQS.d.ts → verification-providers-BPdY3KyH.d.ts} +43 -9
  51. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { a as AccountVerification } from './verification-providers-7il3kPQS.js';
2
+ import { a as AccountVerification } from './verification-providers-BPdY3KyH.js';
3
3
 
4
4
  /**
5
5
  * A single typeahead row. Discriminated on `source`: a curated `entity` row
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { a as AccountVerification } from './verification-providers-7il3kPQS.cjs';
2
+ import { a as AccountVerification } from './verification-providers-BPdY3KyH.cjs';
3
3
 
4
4
  /**
5
5
  * A single typeahead row. Discriminated on `source`: a curated `entity` row
@@ -0,0 +1,9 @@
1
+ // src/format/blob-proxy-url.ts
2
+ import { normaliseBaseUrl } from "../jsonld/url.js";
3
+ function blobProxyUrl(baseUrl, did, cid, variant) {
4
+ return `${normaliseBaseUrl(baseUrl)}/api/blob/${encodeURIComponent(did)}/${encodeURIComponent(cid)}?v=${variant}`;
5
+ }
6
+ export {
7
+ blobProxyUrl
8
+ };
9
+ //# sourceMappingURL=blob-proxy-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/format/blob-proxy-url.ts"],"sourcesContent":["import { normaliseBaseUrl } from '../jsonld/url.js';\n\n/** Output variants served by the sifa-api blob proxy. */\nexport type BlobProxyVariant = 'thumb' | 'avatar';\n\n/**\n * URL of the sifa-api blob proxy (`GET /api/blob/:did/:cid?v=`) for a blob\n * owned by `did`. The proxy fetches the blob from the owner's PDS, resizes it\n * (`thumb`: 1000px JPEG, `avatar`: 256px WebP) and caches it. Use it for blobs\n * the Bluesky image CDN refuses, such as very large originals.\n */\nexport function blobProxyUrl(\n baseUrl: string,\n did: string,\n cid: string,\n variant: BlobProxyVariant,\n): string {\n return `${normaliseBaseUrl(baseUrl)}/api/blob/${encodeURIComponent(did)}/${encodeURIComponent(cid)}?v=${variant}`;\n}\n"],"mappings":";AAAA,SAAS,wBAAwB;AAW1B,SAAS,aACd,SACA,KACA,KACA,SACQ;AACR,SAAO,GAAG,iBAAiB,OAAO,CAAC,aAAa,mBAAmB,GAAG,CAAC,IAAI,mBAAmB,GAAG,CAAC,MAAM,OAAO;AACjH;","names":[]}
@@ -25,6 +25,7 @@ import {
25
25
  } from "./sort-by-date.js";
26
26
  import { normalizeDoi } from "./doi.js";
27
27
  import { openAlexWorkUrl } from "./openalex.js";
28
+ import { blobProxyUrl } from "./blob-proxy-url.js";
28
29
  import {
29
30
  formatRelationship,
30
31
  parseEndorsementComment
@@ -55,6 +56,7 @@ import {
55
56
  rgbToString
56
57
  } from "./wcag-contrast.js";
57
58
  export {
59
+ blobProxyUrl,
58
60
  buildMetaDescription,
59
61
  buildTalkSlug,
60
62
  certDateExtractor,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/format/index.ts"],"sourcesContent":["export { formatCompanyName } from './company-name.js';\nexport { normalizeLegalForm } from './normalize-legal-form.js';\nexport { normalizeCompanyKey } from './normalize-company-key.js';\nexport { formatIsoTitle, formatRelativeTime } from './format-time.js';\nexport { formatPresentationDuration } from './format-duration.js';\nexport {\n formatCredentialDateRange,\n formatDateRange,\n formatPositionDateRange,\n formatTimelineDate,\n} from './timeline.js';\nexport {\n collapseContributors,\n type CollapseContributorsOptions,\n type CollapsedContributors,\n} from './collapse-contributors.js';\nexport {\n summarizePresentationDeliveries,\n type PresentationDeliverySummary,\n} from './summarize-deliveries.js';\nexport {\n certDateExtractor,\n dateRangeExtractor,\n lexiconDateExtractor,\n singleDateExtractor,\n sortByDateDesc,\n} from './sort-by-date.js';\nexport { normalizeDoi } from './doi.js';\nexport { openAlexWorkUrl } from './openalex.js';\nexport {\n formatRelationship,\n parseEndorsementComment,\n type ParsedEndorsementComment,\n} from './endorsement-context.js';\nexport { sanitizeHandleInput } from './handle-utils.js';\nexport { countryCodeToFlag, formatLocation, parseLocationString } from './location-utils.js';\nexport { locationSegments } from './location-segments.js';\nexport type {\n LocationSegment,\n LocationSegmentKind,\n LocationSegmentsOptions,\n} from './location-segments.js';\nexport {\n detectPdsProvider,\n formatStructuredName,\n getDisplayLabel,\n getHandleStem,\n getPdsDisplayName,\n pdsProviderFromApi,\n type PdsProvider,\n} from './pds-utils.js';\nexport { resolveEmbed, youtubeVideoId, youtubeThumbnailUrl, type EmbedResult } from './embed.js';\nexport { buildTalkSlug, parseTalkRkey, slugifyTitle } from './talk-slug.js';\nexport { buildMetaDescription } from './meta-description.js';\nexport type { MetaDescriptionInput, MetaDescriptionPosition } from './meta-description.js';\nexport { limitCombiningMarks, sanitizeDisplayText } from './text-sanitize.js';\nexport { truncateGraphemes } from './text-truncate.js';\nexport { formatDisplayUrl } from './format-display-url.js';\nexport type { DisplayUrl, FormatDisplayUrlOptions, UrlPathPolicy } from './format-display-url.js';\nexport { formatDistanceToNow } from './time-utils.js';\nexport {\n contrastRatio,\n isValidRgbColor,\n meetsContrastAA,\n relativeLuminance,\n rgbToString,\n type RgbColor,\n} from './wcag-contrast.js';\n"],"mappings":";AAAA,SAAS,yBAAyB;AAClC,SAAS,0BAA0B;AACnC,SAAS,2BAA2B;AACpC,SAAS,gBAAgB,0BAA0B;AACnD,SAAS,kCAAkC;AAC3C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAC7B,SAAS,uBAAuB;AAChC;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP,SAAS,2BAA2B;AACpC,SAAS,mBAAmB,gBAAgB,2BAA2B;AACvE,SAAS,wBAAwB;AAMjC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,cAAc,gBAAgB,2BAA6C;AACpF,SAAS,eAAe,eAAe,oBAAoB;AAC3D,SAAS,4BAA4B;AAErC,SAAS,qBAAqB,2BAA2B;AACzD,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;AAEjC,SAAS,2BAA2B;AACpC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;","names":[]}
1
+ {"version":3,"sources":["../../src/format/index.ts"],"sourcesContent":["export { formatCompanyName } from './company-name.js';\nexport { normalizeLegalForm } from './normalize-legal-form.js';\nexport { normalizeCompanyKey } from './normalize-company-key.js';\nexport { formatIsoTitle, formatRelativeTime } from './format-time.js';\nexport { formatPresentationDuration } from './format-duration.js';\nexport {\n formatCredentialDateRange,\n formatDateRange,\n formatPositionDateRange,\n formatTimelineDate,\n} from './timeline.js';\nexport {\n collapseContributors,\n type CollapseContributorsOptions,\n type CollapsedContributors,\n} from './collapse-contributors.js';\nexport {\n summarizePresentationDeliveries,\n type PresentationDeliverySummary,\n} from './summarize-deliveries.js';\nexport {\n certDateExtractor,\n dateRangeExtractor,\n lexiconDateExtractor,\n singleDateExtractor,\n sortByDateDesc,\n} from './sort-by-date.js';\nexport { normalizeDoi } from './doi.js';\nexport { openAlexWorkUrl } from './openalex.js';\nexport { blobProxyUrl, type BlobProxyVariant } from './blob-proxy-url.js';\nexport {\n formatRelationship,\n parseEndorsementComment,\n type ParsedEndorsementComment,\n} from './endorsement-context.js';\nexport { sanitizeHandleInput } from './handle-utils.js';\nexport { countryCodeToFlag, formatLocation, parseLocationString } from './location-utils.js';\nexport { locationSegments } from './location-segments.js';\nexport type {\n LocationSegment,\n LocationSegmentKind,\n LocationSegmentsOptions,\n} from './location-segments.js';\nexport {\n detectPdsProvider,\n formatStructuredName,\n getDisplayLabel,\n getHandleStem,\n getPdsDisplayName,\n pdsProviderFromApi,\n type PdsProvider,\n} from './pds-utils.js';\nexport { resolveEmbed, youtubeVideoId, youtubeThumbnailUrl, type EmbedResult } from './embed.js';\nexport { buildTalkSlug, parseTalkRkey, slugifyTitle } from './talk-slug.js';\nexport { buildMetaDescription } from './meta-description.js';\nexport type { MetaDescriptionInput, MetaDescriptionPosition } from './meta-description.js';\nexport { limitCombiningMarks, sanitizeDisplayText } from './text-sanitize.js';\nexport { truncateGraphemes } from './text-truncate.js';\nexport { formatDisplayUrl } from './format-display-url.js';\nexport type { DisplayUrl, FormatDisplayUrlOptions, UrlPathPolicy } from './format-display-url.js';\nexport { formatDistanceToNow } from './time-utils.js';\nexport {\n contrastRatio,\n isValidRgbColor,\n meetsContrastAA,\n relativeLuminance,\n rgbToString,\n type RgbColor,\n} from './wcag-contrast.js';\n"],"mappings":";AAAA,SAAS,yBAAyB;AAClC,SAAS,0BAA0B;AACnC,SAAS,2BAA2B;AACpC,SAAS,gBAAgB,0BAA0B;AACnD,SAAS,kCAAkC;AAC3C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAC7B,SAAS,uBAAuB;AAChC,SAAS,oBAA2C;AACpD;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP,SAAS,2BAA2B;AACpC,SAAS,mBAAmB,gBAAgB,2BAA2B;AACvE,SAAS,wBAAwB;AAMjC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,cAAc,gBAAgB,2BAA6C;AACpF,SAAS,eAAe,eAAe,oBAAoB;AAC3D,SAAS,4BAA4B;AAErC,SAAS,qBAAqB,2BAA2B;AACzD,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;AAEjC,SAAS,2BAA2B;AACpC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;","names":[]}
@@ -1,4 +1,4 @@
1
- import { A as AgentRef, a as AccountVerification } from './verification-providers-7il3kPQS.cjs';
1
+ import { A as AgentRef, a as AccountVerification } from './verification-providers-BPdY3KyH.cjs';
2
2
 
3
3
  interface LocationValue {
4
4
  city?: string;
@@ -1,4 +1,4 @@
1
- import { A as AgentRef, a as AccountVerification } from './verification-providers-7il3kPQS.js';
1
+ import { A as AgentRef, a as AccountVerification } from './verification-providers-BPdY3KyH.js';
2
2
 
3
3
  interface LocationValue {
4
4
  city?: string;
package/dist/index.cjs CHANGED
@@ -2566,9 +2566,9 @@ function getArtifactLinkKindLabel(value) {
2566
2566
  }
2567
2567
 
2568
2568
  // src/taxonomy/verification-providers.ts
2569
- var MU_VERIFIER_DIDS = [
2570
- "did:plc:ooensn4mr5mhznzypvxelfa3",
2571
- // eurosky.social -- coordinates the trusted-verifier program
2569
+ var MU_ROOT_DID = "did:plc:ooensn4mr5mhznzypvxelfa3";
2570
+ var MU_VERIFIER_LIST_URI = `at://${MU_ROOT_DID}/app.bsky.graph.list/3mogaw2g4an23`;
2571
+ var MU_FALLBACK_VERIFIER_DIDS = [
2572
2572
  "did:plc:durcipmx2rwgzzagbiumobs5",
2573
2573
  // france-atmosphe.re
2574
2574
  "did:plc:zsf5p7rqilz2qvyd7ezmxrfj",
@@ -2597,7 +2597,9 @@ var VERIFICATION_PROVIDERS = {
2597
2597
  label: "mu (Eurosky)",
2598
2598
  priority: 1,
2599
2599
  source: "firehose",
2600
- verifierDids: MU_VERIFIER_DIDS
2600
+ verifierDids: [MU_ROOT_DID],
2601
+ verifierListUri: MU_VERIFIER_LIST_URI,
2602
+ fallbackVerifierDids: MU_FALLBACK_VERIFIER_DIDS
2601
2603
  }
2602
2604
  };
2603
2605
  function isKnownVerificationProvider(id) {
@@ -2606,13 +2608,31 @@ function isKnownVerificationProvider(id) {
2606
2608
  function getVerificationProvider(id) {
2607
2609
  return isKnownVerificationProvider(id) ? VERIFICATION_PROVIDERS[id] : void 0;
2608
2610
  }
2609
- function resolveVerifierProvider(issuerDid) {
2611
+ function resolveVerifierProvider(issuerDid, listMembers) {
2610
2612
  for (const provider of Object.values(VERIFICATION_PROVIDERS)) {
2611
2613
  if (provider.source !== "firehose") continue;
2612
2614
  if (provider.verifierDids.includes(issuerDid)) return provider.id;
2615
+ if (!listMembers && provider.fallbackVerifierDids?.includes(issuerDid)) return provider.id;
2613
2616
  }
2617
+ const fromList = listMembers?.get(issuerDid);
2618
+ if (fromList && getVerificationProvider(fromList)?.source === "firehose") return fromList;
2614
2619
  return null;
2615
2620
  }
2621
+ function buildVerifierListMembers(items) {
2622
+ const members = /* @__PURE__ */ new Map();
2623
+ for (const provider of Object.values(VERIFICATION_PROVIDERS)) {
2624
+ if (provider.source !== "firehose" || !provider.verifierListUri) continue;
2625
+ const owner = provider.verifierListUri.split("/")[2];
2626
+ if (!owner || !provider.verifierDids.includes(owner)) continue;
2627
+ for (const item of items) {
2628
+ if (item.repoDid !== owner || item.list !== provider.verifierListUri) continue;
2629
+ if (typeof item.subject !== "string" || !/^did:[a-z]+:[A-Za-z0-9._:%-]+$/.test(item.subject))
2630
+ continue;
2631
+ if (!members.has(item.subject)) members.set(item.subject, provider.id);
2632
+ }
2633
+ }
2634
+ return members;
2635
+ }
2616
2636
  function primaryVerification(verifications) {
2617
2637
  let best = null;
2618
2638
  let bestPriority = Number.POSITIVE_INFINITY;
@@ -2987,6 +3007,20 @@ function openAlexWorkUrl(id) {
2987
3007
  return match ? `https://openalex.org/${match[1]}` : void 0;
2988
3008
  }
2989
3009
 
3010
+ // src/jsonld/url.ts
3011
+ var DEFAULT_BASE_URL = "https://sifa.id";
3012
+ function normaliseBaseUrl(baseUrl) {
3013
+ const value = baseUrl ?? DEFAULT_BASE_URL;
3014
+ let end = value.length;
3015
+ while (end > 0 && value.charCodeAt(end - 1) === 47) end -= 1;
3016
+ return value.slice(0, end);
3017
+ }
3018
+
3019
+ // src/format/blob-proxy-url.ts
3020
+ function blobProxyUrl(baseUrl, did, cid, variant) {
3021
+ return `${normaliseBaseUrl(baseUrl)}/api/blob/${encodeURIComponent(did)}/${encodeURIComponent(cid)}?v=${variant}`;
3022
+ }
3023
+
2990
3024
  // src/format/endorsement-context.ts
2991
3025
  var RELATIONSHIP_PREFIX = /^\[(\w+?)(?:: ([^\]]+))?\]\s*/;
2992
3026
  function formatRelationship(type, detail) {
@@ -4869,7 +4903,8 @@ var streamMediaBlobSchema = zod.z.object({
4869
4903
  cid: zod.z.string(),
4870
4904
  alt: zod.z.string(),
4871
4905
  aspectRatio: aspectRatioSchema.optional(),
4872
- mimeType: zod.z.string().optional()
4906
+ mimeType: zod.z.string().optional(),
4907
+ size: zod.z.number().int().nonnegative().optional()
4873
4908
  });
4874
4909
  var streamMediaSchema = zod.z.union([
4875
4910
  streamMediaResolvedSchema,
@@ -5137,6 +5172,9 @@ function aspectRatio(value) {
5137
5172
  function asFiniteNumber(value) {
5138
5173
  return typeof value === "number" && Number.isFinite(value) ? value : void 0;
5139
5174
  }
5175
+ function asByteSize(value) {
5176
+ return typeof value === "number" && Number.isInteger(value) && value >= 0 ? value : void 0;
5177
+ }
5140
5178
  function looseBlobCid(value) {
5141
5179
  const viaRef = blobCid(value);
5142
5180
  if (viaRef) return viaRef;
@@ -5151,6 +5189,8 @@ function blobMedia(value, did, alt) {
5151
5189
  if (ratio) media.aspectRatio = ratio;
5152
5190
  const mimeType = asNonEmptyString(asRecord(value)?.mimeType);
5153
5191
  if (mimeType) media.mimeType = mimeType;
5192
+ const size = asByteSize(asRecord(value)?.size);
5193
+ if (size !== void 0) media.size = size;
5154
5194
  return media;
5155
5195
  }
5156
5196
  function hashSuffix(value) {
@@ -5312,6 +5352,8 @@ function bskyImages(embed, did) {
5312
5352
  if (ratio) media.aspectRatio = ratio;
5313
5353
  const mimeType = asNonEmptyString(asRecord(img.image)?.mimeType);
5314
5354
  if (mimeType) media.mimeType = mimeType;
5355
+ const size = asByteSize(asRecord(img.image)?.size);
5356
+ if (size !== void 0) media.size = size;
5315
5357
  out.push(media);
5316
5358
  }
5317
5359
  return out;
@@ -5700,9 +5742,13 @@ function genericMedia(record, did, alt) {
5700
5742
  }
5701
5743
  const single = blobMedia(record.image, did, alt) ?? blobMedia(record.thumbnail, did, alt) ?? blobMedia(record.thumb, did, alt) ?? blobMedia(record.photo, did, alt) ?? (embed ? blobMedia(embed.thumbnail, did, alt) : void 0);
5702
5744
  if (single) return [single];
5703
- const coverCid = asRecord(record.galleryMeta)?.coverPhotoCid;
5745
+ const galleryMeta = asRecord(record.galleryMeta);
5746
+ const coverCid = galleryMeta?.coverPhotoCid;
5704
5747
  if (typeof coverCid === "string" && coverCid.length > 0) {
5705
- return [{ did, cid: coverCid, alt }];
5748
+ const cover = { did, cid: coverCid, alt };
5749
+ const size = asByteSize(galleryMeta?.coverPhotoSize);
5750
+ if (size !== void 0) cover.size = size;
5751
+ return [cover];
5706
5752
  }
5707
5753
  return [];
5708
5754
  }
@@ -6922,7 +6968,9 @@ var AccountVerificationSchema = zod.z.object({
6922
6968
  (value) => typeof value === "string" && Object.hasOwn(VERIFICATION_PROVIDERS, value)
6923
6969
  ),
6924
6970
  verifiedAt: datetimeSchema.nullable().optional(),
6925
- issuerDid: didSchema.nullable().optional()
6971
+ issuerDid: didSchema.nullable().optional(),
6972
+ // Bluesky caps displayName at 640 bytes; anything longer is not a real name.
6973
+ issuerName: zod.z.string().max(640).nullable().optional()
6926
6974
  });
6927
6975
  var VerificationBadgesSchema = zod.z.array(zod.z.unknown()).transform(
6928
6976
  (items) => items.flatMap((item) => {
@@ -7628,7 +7676,7 @@ function describeSifaRecord(collection, value) {
7628
7676
  }
7629
7677
 
7630
7678
  // src/index.ts
7631
- var SIFA_SDK_VERSION = "0.19.86";
7679
+ var SIFA_SDK_VERSION = "0.19.88";
7632
7680
 
7633
7681
  exports.ACTIVITY_TIERS = ACTIVITY_TIERS;
7634
7682
  exports.ACTIVITY_VERBS = ACTIVITY_VERBS;
@@ -7768,9 +7816,11 @@ exports.WORKPLACE_TYPE_OPTIONS = WORKPLACE_TYPE_OPTIONS;
7768
7816
  exports.actorShowsIdentity = actorShowsIdentity;
7769
7817
  exports.agentRefSchema = agentRefSchema;
7770
7818
  exports.atUriSchema = atUriSchema;
7819
+ exports.blobProxyUrl = blobProxyUrl;
7771
7820
  exports.buildMetaDescription = buildMetaDescription;
7772
7821
  exports.buildProfileHighlights = buildProfileHighlights;
7773
7822
  exports.buildTalkSlug = buildTalkSlug;
7823
+ exports.buildVerifierListMembers = buildVerifierListMembers;
7774
7824
  exports.categoryForApp = categoryForApp;
7775
7825
  exports.certDateExtractor = certDateExtractor;
7776
7826
  exports.cidSchema = cidSchema;