@singi-labs/sifa-sdk 0.12.34 → 0.12.36

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 (37) hide show
  1. package/dist/{adult-content-BHIB4rxu.d.cts → adult-content-jthSA_zt.d.cts} +9 -0
  2. package/dist/{adult-content-BHIB4rxu.d.ts → adult-content-jthSA_zt.d.ts} +9 -0
  3. package/dist/{index-CBx6UJvX.d.ts → index-CNVAxcK1.d.ts} +5 -3
  4. package/dist/{index-CEoJMzkP.d.cts → index-Cvtj97AW.d.cts} +3 -3
  5. package/dist/{index-DMN5tQBL.d.cts → index-HNbo0d_Q.d.cts} +5 -3
  6. package/dist/{index-Bf_BI0TG.d.ts → index-ilznrlB1.d.ts} +3 -3
  7. package/dist/index.cjs +41 -1
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.d.cts +85 -4
  10. package/dist/index.d.ts +85 -4
  11. package/dist/index.js +39 -2
  12. package/dist/index.js.map +1 -1
  13. package/dist/{org-OFRiuRqU.d.cts → org-BKjipmq7.d.cts} +2 -2
  14. package/dist/{org-C8LR9MpF.d.ts → org-CNQA-2mM.d.ts} +2 -2
  15. package/dist/{org-settings-CmaSX5ZI.d.cts → org-settings-B8e01iZx.d.cts} +2 -0
  16. package/dist/{org-settings-CmaSX5ZI.d.ts → org-settings-B8e01iZx.d.ts} +2 -0
  17. package/dist/{profile-summary-DsaEk_GD.d.cts → profile-summary-C-SxRTjI.d.cts} +1 -1
  18. package/dist/{profile-summary-sWTKu58A.d.ts → profile-summary-C6uqYJB1.d.ts} +1 -1
  19. package/dist/query/fetchers/index.d.cts +5 -5
  20. package/dist/query/fetchers/index.d.ts +5 -5
  21. package/dist/query/hooks/index.d.cts +4 -4
  22. package/dist/query/hooks/index.d.ts +4 -4
  23. package/dist/query/index.d.cts +7 -7
  24. package/dist/query/index.d.ts +7 -7
  25. package/dist/schemas/index.cjs +7 -0
  26. package/dist/schemas/index.cjs.map +1 -1
  27. package/dist/schemas/index.d.cts +1 -0
  28. package/dist/schemas/index.d.ts +1 -0
  29. package/dist/schemas/index.js +7 -0
  30. package/dist/schemas/index.js.map +1 -1
  31. package/dist/schemas/write/index.cjs +10 -1
  32. package/dist/schemas/write/index.cjs.map +1 -1
  33. package/dist/schemas/write/index.d.cts +2 -1
  34. package/dist/schemas/write/index.d.ts +2 -1
  35. package/dist/schemas/write/index.js +10 -1
  36. package/dist/schemas/write/index.js.map +1 -1
  37. package/package.json +1 -1
package/dist/index.d.cts CHANGED
@@ -1,9 +1,9 @@
1
- import { b as ProfileSkill, c as ProfilePresentationDelivery, L as LocationValue, d as PdsProviderInfo, e as Profile, f as ProfilePosition, g as ProfileCertification, h as ProfileEducation, i as ProfileHonor, j as ProfileLanguage, k as ProfileProject, l as ProfilePublication, m as ProfileInvolvement } from './adult-content-BHIB4rxu.cjs';
2
- export { n as ADULT_CONTENT_LABELS, o as ActiveApp, p as ActiveAppView, a as ActivityLabel, A as AdultContentLabel, q as AtfundLinkView, r as CertificationView, C as CoSpeaker, s as CoSpeakerView, t as ContributorView, u as CourseView, D as DurationView, v as EducationView, w as Endorsement, x as EndorsementData, E as ExternalAccount, y as ExternalAccountKeytraceClaim, z as ExternalAccountView, F as FeedItem, H as HonorView, I as IndustryDomain, B as InvolvementLinkView, G as InvolvementView, J as LanguageProficiency, K as LanguageView, O as OrgAddressView, M as OrgFloorVerdict, N as OrgLinkView, Q as OrgProfileView, R as PositionView, T as PresentationDeliveryView, U as PresentationLinkView, V as PresentationView, W as ProfileCourse, X as ProfileIndustry, Y as ProfileInvolvementLink, Z as ProfileLocation, _ as ProfileLocationView, $ as ProfileOverrideSource, a0 as ProfilePresentation, P as ProfileView, a1 as ProfileVolunteering, a2 as ProjectView, a3 as PublicationContributor, a4 as PublicationView, a5 as RecognizedEntity, a6 as SkillRef, S as SkillSuggestion, a7 as SkillView, a8 as TrustStat, a9 as VerifiedAccount, aa as VolunteeringView, ab as hasAdultContent } from './adult-content-BHIB4rxu.cjs';
1
+ import { b as ProfileSkill, c as ProfilePresentationDelivery, L as LocationValue, d as PdsProviderInfo, e as Profile, f as ProfilePosition, g as ProfileCertification, h as ProfileEducation, i as ProfileHonor, j as ProfileLanguage, k as ProfileProject, l as ProfilePublication, m as ProfileInvolvement } from './adult-content-jthSA_zt.cjs';
2
+ export { n as ADULT_CONTENT_LABELS, o as ActiveApp, p as ActiveAppView, a as ActivityLabel, A as AdultContentLabel, q as AtfundLinkView, r as CertificationView, C as CoSpeaker, s as CoSpeakerView, t as ContributorView, u as CourseView, D as DurationView, v as EducationView, w as Endorsement, x as EndorsementData, E as ExternalAccount, y as ExternalAccountKeytraceClaim, z as ExternalAccountView, F as FeedItem, H as HonorView, I as IndustryDomain, B as InvolvementLinkView, G as InvolvementView, J as LanguageProficiency, K as LanguageView, O as OrgAddressView, M as OrgFloorVerdict, N as OrgLinkView, Q as OrgProfileView, R as PositionView, T as PresentationDeliveryView, U as PresentationLinkView, V as PresentationView, W as ProfileCourse, X as ProfileIndustry, Y as ProfileInvolvementLink, Z as ProfileLocation, _ as ProfileLocationView, $ as ProfileOverrideSource, a0 as ProfilePresentation, P as ProfileView, a1 as ProfileVolunteering, a2 as ProjectView, a3 as PublicationContributor, a4 as PublicationView, a5 as RecognizedEntity, a6 as SkillRef, S as SkillSuggestion, a7 as SkillView, a8 as TrustStat, a9 as VerifiedAccount, aa as VolunteeringView, ab as hasAdultContent } from './adult-content-jthSA_zt.cjs';
3
3
  import { PresentationDuration, ProfilePresentationDeliveryRecord, ProfilePresentationRecord, OrgProfileRecord } from './schemas/index.cjs';
4
4
  export { ArtifactLink, ArtifactLinkSchema, BlobRef, BlobRefSchema, EndorsementConfirmationRecord, EndorsementConfirmationRecordSchema, EndorsementRecord, EndorsementRecordSchema, GraphFollowRecord, GraphFollowRecordSchema, OrgEmploymentAttestationRecord, OrgEmploymentAttestationRecordSchema, OrgProfileRecordSchema, PROFILE_INVOLVEMENT_NSID, PresentationDurationSchema, PresentationLink, PresentationLinkSchema, ProfileCertificationRecord, ProfileCertificationRecordSchema, ProfileCourseRecord, ProfileCourseRecordSchema, ProfileEducationRecord, ProfileEducationRecordSchema, ProfileExternalAccountRecord, ProfileExternalAccountRecordSchema, ProfileHonorRecord, ProfileHonorRecordSchema, ProfileInvolvementRecord, ProfileInvolvementRecordSchema, ProfileLanguageRecord, ProfileLanguageRecordSchema, ProfilePositionRecord, ProfilePositionRecordSchema, ProfilePresentationDeliveryRecordSchema, ProfilePresentationRecordSchema, ProfileProjectRecord, ProfileProjectRecordSchema, ProfilePublicationRecord, ProfilePublicationRecordSchema, ProfileSelfRecord, ProfileSelfRecordSchema, ProfileSkillRecord, ProfileSkillRecordSchema, ProfileVolunteeringRecord, ProfileVolunteeringRecordSchema, PublicationAuthor, PublicationAuthorSchema, atUriSchema, cidSchema, datetimeSchema, didSchema, externalRecordRefSchema, languageTagSchema, makeGraphFollowRecordSchema, maxGraphemes, partialDateSchema, selfLabelsSchema, strongRefSchema, uriSchema } from './schemas/index.cjs';
5
5
  import { z } from 'zod';
6
- export { P as ProfileSummary, S as SummarizeProfileViewOptions, s as summarizeProfileView } from './profile-summary-DsaEk_GD.cjs';
6
+ export { P as ProfileSummary, S as SummarizeProfileViewOptions, s as summarizeProfileView } from './profile-summary-C-SxRTjI.cjs';
7
7
  import { E as EntitySearchResult } from './feed-C8aHEPw4.cjs';
8
8
  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, 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.cjs';
9
9
 
@@ -228,6 +228,34 @@ declare function groupSkillsByCategory<T extends ProfileSkill>(skills: T[]): [st
228
228
  */
229
229
  declare function groupSkillsBySubCategory<T extends ProfileSkill>(skills: T[]): [string | null, T[]][];
230
230
 
231
+ interface SkillDisplayGroups<T extends ProfileSkill> {
232
+ /** Sub-groups for one category; a `null` label is the unlabelled bucket. */
233
+ groups: [string | null, T[]][];
234
+ /**
235
+ * Whether sub-category labels carry information here. False when the category
236
+ * has fewer than two distinct sub-categories, where a lone label says nothing
237
+ * the category heading does not already say.
238
+ */
239
+ showLabels: boolean;
240
+ }
241
+ interface SkillDisplayGroupsOptions {
242
+ /**
243
+ * Put the unlabelled bucket first instead of last. Inline chip rendering
244
+ * reads fine with it trailing, but in a linear document (markdown, docx,
245
+ * print) trailing unlabelled entries appear to belong to the sub-heading
246
+ * above them, so documents want it directly under the category heading.
247
+ */
248
+ ungroupedFirst?: boolean;
249
+ }
250
+ /**
251
+ * Prepares one category's skills for display: the sub-groups, plus whether to
252
+ * label them (the render rule from #314).
253
+ *
254
+ * Shared so the profile, print, markdown and docx surfaces group identically
255
+ * rather than each re-deriving the threshold.
256
+ */
257
+ declare function groupSkillsForDisplay<T extends ProfileSkill>(skills: T[], options?: SkillDisplayGroupsOptions): SkillDisplayGroups<T>;
258
+
231
259
  /**
232
260
  * App-category taxonomy for AT Protocol apps tracked by Sifa.
233
261
  *
@@ -1802,6 +1830,59 @@ declare function isRegistrableDomainHandle(handle: string): boolean;
1802
1830
  * handle.
1803
1831
  */
1804
1832
  declare function qualifiesAsOrg(record: OrgProfileRecord | null | undefined, handle: string): boolean;
1833
+ /**
1834
+ * The person-facet fields that decide whether an account has a CV worth
1835
+ * keeping. A structural subset of `Profile`, so callers can pass a profile
1836
+ * straight in. Every list is optional; `positions`, `education`, and `skills`
1837
+ * are always present on a real profile but typed optional here so partial
1838
+ * fixtures and trimmed payloads work.
1839
+ */
1840
+ interface PersonalFacetContent {
1841
+ headline?: string | null;
1842
+ about?: string | null;
1843
+ positions?: unknown[];
1844
+ education?: unknown[];
1845
+ skills?: unknown[];
1846
+ certifications?: unknown[];
1847
+ projects?: unknown[];
1848
+ publications?: unknown[];
1849
+ volunteering?: unknown[];
1850
+ involvement?: unknown[];
1851
+ honors?: unknown[];
1852
+ courses?: unknown[];
1853
+ }
1854
+ /**
1855
+ * Does this account have a personal profile worth keeping visible?
1856
+ *
1857
+ * Decides the claim-flow default when an account claims its domain as an
1858
+ * organization. An empty account claiming a domain is a plain company signup:
1859
+ * present solely as an org, ask nothing. An account that already carries a CV
1860
+ * is the sole-trader case: keeping both facets is the default, and hiding the
1861
+ * person facet must be a deliberate choice rather than a silent side effect of
1862
+ * claiming.
1863
+ *
1864
+ * True when any profile section holds at least one record, or when the headline
1865
+ * or about text is non-blank. Whitespace-only text does not count.
1866
+ *
1867
+ * Pure: no network, no I/O.
1868
+ */
1869
+ declare function hasPersonalProfileContent(profile: PersonalFacetContent): boolean;
1870
+ /**
1871
+ * Should this account's personal profile render at `/p/`, given the org verdict?
1872
+ *
1873
+ * The single routing predicate behind the freelancer dual-identity case: a
1874
+ * claimed org that set `personalProfileVisible` renders both facets, so `/p/`
1875
+ * serves the person instead of redirecting to `/c/`. Every other account keeps
1876
+ * the exclusive behaviour -- an org (claimed or merely recognized) redirects
1877
+ * `/p/` to `/c/`, and a plain person renders at `/p/` as always.
1878
+ *
1879
+ * Pure: no network, no I/O.
1880
+ */
1881
+ declare function rendersPersonalProfile(org: {
1882
+ isOrg: boolean;
1883
+ recognized: boolean;
1884
+ personalProfileVisible?: boolean;
1885
+ } | null | undefined): boolean;
1805
1886
 
1806
1887
  /**
1807
1888
  * Firmographic subset of a company profile that decides whether its `/c/` page
@@ -2082,4 +2163,4 @@ declare function roadmapIssueUrl(issue: number): string;
2082
2163
  */
2083
2164
  declare const SIFA_SDK_VERSION: string;
2084
2165
 
2085
- export { ACTIVITY_TIERS, ACTIVITY_VERBS, ACTIVITY_VISIBILITY_RULES, ALL_SECTIONS, APP_CATEGORIES, APP_CATEGORY_IDS, APP_CATEGORY_MAP, APP_URL_PATTERNS, ARTIFACT_LINK_KIND_LABELS, ARTIFACT_LINK_KIND_OPTIONS, type AccountVerification, type ActivityItem, type ActivityItemForUrl, type ActivityTaxonomy, type ActivityTier, type ActivityVerbMap, type AppCategoryId, type AppUrlPatterns, type ArtifactLinkKindOption, CALENDAR_EVENT_MODE_LABELS, CALENDAR_EVENT_STATUS_LABELS, CATEGORY_LABELS, CATEGORY_ORDER, COLLECTION_TO_APP, COMPANY_OPTIONAL_EMPLOYMENT_TYPES, COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS, COMPLETENESS_MAX_SCORE, CONTINENTS, COUNTRIES, type CardHealth, type CardHealthStrategy, type CompanyFirmographics, type ContinentCode, type CsvRow, DIMENSIONS_MAX_SCORE, type DimensionKey, type DimensionMap, type DisambiguationFields, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, ENTITY_REF_ANCHORS, type EmbedResult, type EmploymentTypeGroup, type EmploymentTypeOption, type EntityRefAnchor, EntitySearchResult, INDUSTRY_OPTIONS, INVOLVEMENT_HEADING_ORDER, INVOLVEMENT_KIND_HEADINGS, INVOLVEMENT_KIND_LABELS, INVOLVEMENT_KIND_OPTIONS, type IndustryOption, type InvolvementGroup, type InvolvementKindOption, type KnownAppId, type LexiconEntry, LocationValue, MIN_SKILLS, type MergedProfileSkill, OPEN_TO_OPTIONS, OPEN_TO_TOKENS, OPEN_TO_TOKEN_TO_VALUE, OPEN_TO_VALUE_TO_TOKEN, type OpenToGroup, type OpenToOption, OrgProfileRecord, PLATFORM_LABELS, PLATFORM_OPTIONS, PRESENTATION_LINK_TYPE_LABELS, PRESENTATION_LINK_TYPE_OPTIONS, PRESENTATION_ROLE_LABELS, PRESENTATION_ROLE_OPTIONS, PUBLISHERS, type ParsedDelivery, type ParsedPresentation, type PdsProvider, PdsProviderInfo, type PlatformId, type PresentationDeliverySummary, PresentationDuration, type PresentationLinkTypeOption, type PresentationRoleOption, type PrimaryPositionCandidate, Profile, ProfileCertification, type ProfileCompletion, type ProfileDimensionInputs, ProfileEducation, ProfileHonor, ProfileInvolvement, ProfileLanguage, ProfilePosition, ProfilePresentationDelivery, ProfilePresentationDeliveryRecord, ProfilePresentationRecord, ProfileProject, ProfilePublication, ProfileSkill, type Publisher, ROADMAP_ISSUES_REPO, ROADMAP_ITEM_META, type RgbColor, type RoadmapItemMeta, SECTION_GROUPS, SECTION_LABELS, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, STREAM_VERBS, type SectionGroupId, type SectionId, type SkillCategory, type StreamAddress, type StreamAuthor, type StreamCardBody, type StreamCardSubject, type StreamCardVM, type StreamExternalLink, type StreamGeo, type StreamMedia, type StreamMediaBase, type StreamMediaBlob, type StreamMediaResolved, type StreamRichSegment, type StreamSource, type StreamTheme, type StreamVerb, type TierMeta, type ToStreamCardVMOptions, VERIFICATION_PROVIDERS, type VerificationProvider, type VerificationProviderId, type VerificationSource, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, type WorkplaceTypeOption, buildTalkSlug, categoryForApp, certDateExtractor, classifyEntityRef, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countryCodeToFlag, dateRangeExtractor, dedupeSkills, detectPdsProvider, dimensionsFromInputs, durationFromMinutes, entityDisambiguationLabel, entityResultKey, filterHidden, findIndustry, formatCompanyName, formatDateRange, formatDistanceToNow, formatLocation, formatPresentationDuration, formatRelativeTime, formatTimelineDate, getActivityTaxonomyVersion, getActivityTier, getActivityVerbsVersion, getAppCategoryIcon, getAppIdForCollection, getArtifactLinkKindLabel, getCalendarEventModeLabel, getCalendarEventStatusLabel, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getInvolvementKindHeading, getInvolvementKindLabel, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getPresentationLinkTypeLabel, getPresentationRoleLabel, getPublisherByHost, getPublisherById, getPublisherFromSiteUrl, getTierMeta, getVerificationProvider, getVisibleSectionIds, getWorkplaceTypeLabel, groupInvolvementByHeading, groupSkillsByCategory, groupSkillsBySubCategory, hoistPrimary, isAppCategory, isCompanyPageIndexable, isCompanyRequired, isKnownAppId, isKnownPlatform, isKnownVerificationProvider, isLinked, isPseudoEmployer, isRegistrableDomainHandle, isSectionPopulated, isValidRgbColor, isVisibleActivityItem, lexiconDateExtractor, limitCombiningMarks, looksLikeDomain, meetsContrastAA, normalizeCompanyKey, normalizeLegalForm, normalizeOpenTo, normalizePlatformId, normalizePresentationMode, normalizePresentationRole, normalizeWorkplaceTypes, openToTokenToValue, openToValueToToken, parseIntendedAudiences, parseLocationString, parsePresentationDuration, parseTalkRkey, pdsProviderFromApi, pickPrimaryPosition, presentationCsvRowToRecord, presentationDeliveryCsvRowToRecord, primaryVerification, profileToDimensionInputs, qualifiesAsOrg, relativeLuminance, resolveCardHealth, resolveCardUrl, resolveEmbed, resolveVerifierProvider, rgbToString, roadmapIssueUrl, sanitizeDisplayText, sanitizeHandleInput, searchResultDisambiguation, singleDateExtractor, slugifyTitle, sortByActiveDateRange, sortByDateDesc, sortCertifications, sortEducation, sortHonors, sortLanguages, sortLanguagesByProficiency, sortPositions, sortProjects, sortPublications, streamAddressSchema, streamAuthorSchema, streamCardBodySchema, streamCardSubjectSchema, streamCardVMSchema, streamExternalLinkSchema, streamGeoSchema, streamMediaSchema, streamRichSegmentSchema, streamSourceSchema, streamThemeSchema, streamVerbSchema, stripHtmlToText, summarizePresentationDeliveries, toStreamCardVM, toStreamCardVMs, truncateGraphemes, verbForCollection, visibleItems, youtubeThumbnailUrl, youtubeVideoId };
2166
+ export { ACTIVITY_TIERS, ACTIVITY_VERBS, ACTIVITY_VISIBILITY_RULES, ALL_SECTIONS, APP_CATEGORIES, APP_CATEGORY_IDS, APP_CATEGORY_MAP, APP_URL_PATTERNS, ARTIFACT_LINK_KIND_LABELS, ARTIFACT_LINK_KIND_OPTIONS, type AccountVerification, type ActivityItem, type ActivityItemForUrl, type ActivityTaxonomy, type ActivityTier, type ActivityVerbMap, type AppCategoryId, type AppUrlPatterns, type ArtifactLinkKindOption, CALENDAR_EVENT_MODE_LABELS, CALENDAR_EVENT_STATUS_LABELS, CATEGORY_LABELS, CATEGORY_ORDER, COLLECTION_TO_APP, COMPANY_OPTIONAL_EMPLOYMENT_TYPES, COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS, COMPLETENESS_MAX_SCORE, CONTINENTS, COUNTRIES, type CardHealth, type CardHealthStrategy, type CompanyFirmographics, type ContinentCode, type CsvRow, DIMENSIONS_MAX_SCORE, type DimensionKey, type DimensionMap, type DisambiguationFields, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, ENTITY_REF_ANCHORS, type EmbedResult, type EmploymentTypeGroup, type EmploymentTypeOption, type EntityRefAnchor, EntitySearchResult, INDUSTRY_OPTIONS, INVOLVEMENT_HEADING_ORDER, INVOLVEMENT_KIND_HEADINGS, INVOLVEMENT_KIND_LABELS, INVOLVEMENT_KIND_OPTIONS, type IndustryOption, type InvolvementGroup, type InvolvementKindOption, type KnownAppId, type LexiconEntry, LocationValue, MIN_SKILLS, type MergedProfileSkill, OPEN_TO_OPTIONS, OPEN_TO_TOKENS, OPEN_TO_TOKEN_TO_VALUE, OPEN_TO_VALUE_TO_TOKEN, type OpenToGroup, type OpenToOption, OrgProfileRecord, PLATFORM_LABELS, PLATFORM_OPTIONS, PRESENTATION_LINK_TYPE_LABELS, PRESENTATION_LINK_TYPE_OPTIONS, PRESENTATION_ROLE_LABELS, PRESENTATION_ROLE_OPTIONS, PUBLISHERS, type ParsedDelivery, type ParsedPresentation, type PdsProvider, PdsProviderInfo, type PersonalFacetContent, type PlatformId, type PresentationDeliverySummary, PresentationDuration, type PresentationLinkTypeOption, type PresentationRoleOption, type PrimaryPositionCandidate, Profile, ProfileCertification, type ProfileCompletion, type ProfileDimensionInputs, ProfileEducation, ProfileHonor, ProfileInvolvement, ProfileLanguage, ProfilePosition, ProfilePresentationDelivery, ProfilePresentationDeliveryRecord, ProfilePresentationRecord, ProfileProject, ProfilePublication, ProfileSkill, type Publisher, ROADMAP_ISSUES_REPO, ROADMAP_ITEM_META, type RgbColor, type RoadmapItemMeta, SECTION_GROUPS, SECTION_LABELS, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, STREAM_VERBS, type SectionGroupId, type SectionId, type SkillCategory, type StreamAddress, type StreamAuthor, type StreamCardBody, type StreamCardSubject, type StreamCardVM, type StreamExternalLink, type StreamGeo, type StreamMedia, type StreamMediaBase, type StreamMediaBlob, type StreamMediaResolved, type StreamRichSegment, type StreamSource, type StreamTheme, type StreamVerb, type TierMeta, type ToStreamCardVMOptions, VERIFICATION_PROVIDERS, type VerificationProvider, type VerificationProviderId, type VerificationSource, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, type WorkplaceTypeOption, buildTalkSlug, categoryForApp, certDateExtractor, classifyEntityRef, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countryCodeToFlag, dateRangeExtractor, dedupeSkills, detectPdsProvider, dimensionsFromInputs, durationFromMinutes, entityDisambiguationLabel, entityResultKey, filterHidden, findIndustry, formatCompanyName, formatDateRange, formatDistanceToNow, formatLocation, formatPresentationDuration, formatRelativeTime, formatTimelineDate, getActivityTaxonomyVersion, getActivityTier, getActivityVerbsVersion, getAppCategoryIcon, getAppIdForCollection, getArtifactLinkKindLabel, getCalendarEventModeLabel, getCalendarEventStatusLabel, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getInvolvementKindHeading, getInvolvementKindLabel, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getPresentationLinkTypeLabel, getPresentationRoleLabel, getPublisherByHost, getPublisherById, getPublisherFromSiteUrl, getTierMeta, getVerificationProvider, getVisibleSectionIds, getWorkplaceTypeLabel, groupInvolvementByHeading, groupSkillsByCategory, groupSkillsBySubCategory, groupSkillsForDisplay, hasPersonalProfileContent, hoistPrimary, isAppCategory, isCompanyPageIndexable, isCompanyRequired, isKnownAppId, isKnownPlatform, isKnownVerificationProvider, isLinked, isPseudoEmployer, isRegistrableDomainHandle, isSectionPopulated, isValidRgbColor, isVisibleActivityItem, lexiconDateExtractor, limitCombiningMarks, looksLikeDomain, meetsContrastAA, normalizeCompanyKey, normalizeLegalForm, normalizeOpenTo, normalizePlatformId, normalizePresentationMode, normalizePresentationRole, normalizeWorkplaceTypes, openToTokenToValue, openToValueToToken, parseIntendedAudiences, parseLocationString, parsePresentationDuration, parseTalkRkey, pdsProviderFromApi, pickPrimaryPosition, presentationCsvRowToRecord, presentationDeliveryCsvRowToRecord, primaryVerification, profileToDimensionInputs, qualifiesAsOrg, relativeLuminance, rendersPersonalProfile, resolveCardHealth, resolveCardUrl, resolveEmbed, resolveVerifierProvider, rgbToString, roadmapIssueUrl, sanitizeDisplayText, sanitizeHandleInput, searchResultDisambiguation, singleDateExtractor, slugifyTitle, sortByActiveDateRange, sortByDateDesc, sortCertifications, sortEducation, sortHonors, sortLanguages, sortLanguagesByProficiency, sortPositions, sortProjects, sortPublications, streamAddressSchema, streamAuthorSchema, streamCardBodySchema, streamCardSubjectSchema, streamCardVMSchema, streamExternalLinkSchema, streamGeoSchema, streamMediaSchema, streamRichSegmentSchema, streamSourceSchema, streamThemeSchema, streamVerbSchema, stripHtmlToText, summarizePresentationDeliveries, toStreamCardVM, toStreamCardVMs, truncateGraphemes, verbForCollection, visibleItems, youtubeThumbnailUrl, youtubeVideoId };
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { b as ProfileSkill, c as ProfilePresentationDelivery, L as LocationValue, d as PdsProviderInfo, e as Profile, f as ProfilePosition, g as ProfileCertification, h as ProfileEducation, i as ProfileHonor, j as ProfileLanguage, k as ProfileProject, l as ProfilePublication, m as ProfileInvolvement } from './adult-content-BHIB4rxu.js';
2
- export { n as ADULT_CONTENT_LABELS, o as ActiveApp, p as ActiveAppView, a as ActivityLabel, A as AdultContentLabel, q as AtfundLinkView, r as CertificationView, C as CoSpeaker, s as CoSpeakerView, t as ContributorView, u as CourseView, D as DurationView, v as EducationView, w as Endorsement, x as EndorsementData, E as ExternalAccount, y as ExternalAccountKeytraceClaim, z as ExternalAccountView, F as FeedItem, H as HonorView, I as IndustryDomain, B as InvolvementLinkView, G as InvolvementView, J as LanguageProficiency, K as LanguageView, O as OrgAddressView, M as OrgFloorVerdict, N as OrgLinkView, Q as OrgProfileView, R as PositionView, T as PresentationDeliveryView, U as PresentationLinkView, V as PresentationView, W as ProfileCourse, X as ProfileIndustry, Y as ProfileInvolvementLink, Z as ProfileLocation, _ as ProfileLocationView, $ as ProfileOverrideSource, a0 as ProfilePresentation, P as ProfileView, a1 as ProfileVolunteering, a2 as ProjectView, a3 as PublicationContributor, a4 as PublicationView, a5 as RecognizedEntity, a6 as SkillRef, S as SkillSuggestion, a7 as SkillView, a8 as TrustStat, a9 as VerifiedAccount, aa as VolunteeringView, ab as hasAdultContent } from './adult-content-BHIB4rxu.js';
1
+ import { b as ProfileSkill, c as ProfilePresentationDelivery, L as LocationValue, d as PdsProviderInfo, e as Profile, f as ProfilePosition, g as ProfileCertification, h as ProfileEducation, i as ProfileHonor, j as ProfileLanguage, k as ProfileProject, l as ProfilePublication, m as ProfileInvolvement } from './adult-content-jthSA_zt.js';
2
+ export { n as ADULT_CONTENT_LABELS, o as ActiveApp, p as ActiveAppView, a as ActivityLabel, A as AdultContentLabel, q as AtfundLinkView, r as CertificationView, C as CoSpeaker, s as CoSpeakerView, t as ContributorView, u as CourseView, D as DurationView, v as EducationView, w as Endorsement, x as EndorsementData, E as ExternalAccount, y as ExternalAccountKeytraceClaim, z as ExternalAccountView, F as FeedItem, H as HonorView, I as IndustryDomain, B as InvolvementLinkView, G as InvolvementView, J as LanguageProficiency, K as LanguageView, O as OrgAddressView, M as OrgFloorVerdict, N as OrgLinkView, Q as OrgProfileView, R as PositionView, T as PresentationDeliveryView, U as PresentationLinkView, V as PresentationView, W as ProfileCourse, X as ProfileIndustry, Y as ProfileInvolvementLink, Z as ProfileLocation, _ as ProfileLocationView, $ as ProfileOverrideSource, a0 as ProfilePresentation, P as ProfileView, a1 as ProfileVolunteering, a2 as ProjectView, a3 as PublicationContributor, a4 as PublicationView, a5 as RecognizedEntity, a6 as SkillRef, S as SkillSuggestion, a7 as SkillView, a8 as TrustStat, a9 as VerifiedAccount, aa as VolunteeringView, ab as hasAdultContent } from './adult-content-jthSA_zt.js';
3
3
  import { PresentationDuration, ProfilePresentationDeliveryRecord, ProfilePresentationRecord, OrgProfileRecord } from './schemas/index.js';
4
4
  export { ArtifactLink, ArtifactLinkSchema, BlobRef, BlobRefSchema, EndorsementConfirmationRecord, EndorsementConfirmationRecordSchema, EndorsementRecord, EndorsementRecordSchema, GraphFollowRecord, GraphFollowRecordSchema, OrgEmploymentAttestationRecord, OrgEmploymentAttestationRecordSchema, OrgProfileRecordSchema, PROFILE_INVOLVEMENT_NSID, PresentationDurationSchema, PresentationLink, PresentationLinkSchema, ProfileCertificationRecord, ProfileCertificationRecordSchema, ProfileCourseRecord, ProfileCourseRecordSchema, ProfileEducationRecord, ProfileEducationRecordSchema, ProfileExternalAccountRecord, ProfileExternalAccountRecordSchema, ProfileHonorRecord, ProfileHonorRecordSchema, ProfileInvolvementRecord, ProfileInvolvementRecordSchema, ProfileLanguageRecord, ProfileLanguageRecordSchema, ProfilePositionRecord, ProfilePositionRecordSchema, ProfilePresentationDeliveryRecordSchema, ProfilePresentationRecordSchema, ProfileProjectRecord, ProfileProjectRecordSchema, ProfilePublicationRecord, ProfilePublicationRecordSchema, ProfileSelfRecord, ProfileSelfRecordSchema, ProfileSkillRecord, ProfileSkillRecordSchema, ProfileVolunteeringRecord, ProfileVolunteeringRecordSchema, PublicationAuthor, PublicationAuthorSchema, atUriSchema, cidSchema, datetimeSchema, didSchema, externalRecordRefSchema, languageTagSchema, makeGraphFollowRecordSchema, maxGraphemes, partialDateSchema, selfLabelsSchema, strongRefSchema, uriSchema } from './schemas/index.js';
5
5
  import { z } from 'zod';
6
- export { P as ProfileSummary, S as SummarizeProfileViewOptions, s as summarizeProfileView } from './profile-summary-sWTKu58A.js';
6
+ export { P as ProfileSummary, S as SummarizeProfileViewOptions, s as summarizeProfileView } from './profile-summary-C6uqYJB1.js';
7
7
  import { E as EntitySearchResult } from './feed-C8aHEPw4.js';
8
8
  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, 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';
9
9
 
@@ -228,6 +228,34 @@ declare function groupSkillsByCategory<T extends ProfileSkill>(skills: T[]): [st
228
228
  */
229
229
  declare function groupSkillsBySubCategory<T extends ProfileSkill>(skills: T[]): [string | null, T[]][];
230
230
 
231
+ interface SkillDisplayGroups<T extends ProfileSkill> {
232
+ /** Sub-groups for one category; a `null` label is the unlabelled bucket. */
233
+ groups: [string | null, T[]][];
234
+ /**
235
+ * Whether sub-category labels carry information here. False when the category
236
+ * has fewer than two distinct sub-categories, where a lone label says nothing
237
+ * the category heading does not already say.
238
+ */
239
+ showLabels: boolean;
240
+ }
241
+ interface SkillDisplayGroupsOptions {
242
+ /**
243
+ * Put the unlabelled bucket first instead of last. Inline chip rendering
244
+ * reads fine with it trailing, but in a linear document (markdown, docx,
245
+ * print) trailing unlabelled entries appear to belong to the sub-heading
246
+ * above them, so documents want it directly under the category heading.
247
+ */
248
+ ungroupedFirst?: boolean;
249
+ }
250
+ /**
251
+ * Prepares one category's skills for display: the sub-groups, plus whether to
252
+ * label them (the render rule from #314).
253
+ *
254
+ * Shared so the profile, print, markdown and docx surfaces group identically
255
+ * rather than each re-deriving the threshold.
256
+ */
257
+ declare function groupSkillsForDisplay<T extends ProfileSkill>(skills: T[], options?: SkillDisplayGroupsOptions): SkillDisplayGroups<T>;
258
+
231
259
  /**
232
260
  * App-category taxonomy for AT Protocol apps tracked by Sifa.
233
261
  *
@@ -1802,6 +1830,59 @@ declare function isRegistrableDomainHandle(handle: string): boolean;
1802
1830
  * handle.
1803
1831
  */
1804
1832
  declare function qualifiesAsOrg(record: OrgProfileRecord | null | undefined, handle: string): boolean;
1833
+ /**
1834
+ * The person-facet fields that decide whether an account has a CV worth
1835
+ * keeping. A structural subset of `Profile`, so callers can pass a profile
1836
+ * straight in. Every list is optional; `positions`, `education`, and `skills`
1837
+ * are always present on a real profile but typed optional here so partial
1838
+ * fixtures and trimmed payloads work.
1839
+ */
1840
+ interface PersonalFacetContent {
1841
+ headline?: string | null;
1842
+ about?: string | null;
1843
+ positions?: unknown[];
1844
+ education?: unknown[];
1845
+ skills?: unknown[];
1846
+ certifications?: unknown[];
1847
+ projects?: unknown[];
1848
+ publications?: unknown[];
1849
+ volunteering?: unknown[];
1850
+ involvement?: unknown[];
1851
+ honors?: unknown[];
1852
+ courses?: unknown[];
1853
+ }
1854
+ /**
1855
+ * Does this account have a personal profile worth keeping visible?
1856
+ *
1857
+ * Decides the claim-flow default when an account claims its domain as an
1858
+ * organization. An empty account claiming a domain is a plain company signup:
1859
+ * present solely as an org, ask nothing. An account that already carries a CV
1860
+ * is the sole-trader case: keeping both facets is the default, and hiding the
1861
+ * person facet must be a deliberate choice rather than a silent side effect of
1862
+ * claiming.
1863
+ *
1864
+ * True when any profile section holds at least one record, or when the headline
1865
+ * or about text is non-blank. Whitespace-only text does not count.
1866
+ *
1867
+ * Pure: no network, no I/O.
1868
+ */
1869
+ declare function hasPersonalProfileContent(profile: PersonalFacetContent): boolean;
1870
+ /**
1871
+ * Should this account's personal profile render at `/p/`, given the org verdict?
1872
+ *
1873
+ * The single routing predicate behind the freelancer dual-identity case: a
1874
+ * claimed org that set `personalProfileVisible` renders both facets, so `/p/`
1875
+ * serves the person instead of redirecting to `/c/`. Every other account keeps
1876
+ * the exclusive behaviour -- an org (claimed or merely recognized) redirects
1877
+ * `/p/` to `/c/`, and a plain person renders at `/p/` as always.
1878
+ *
1879
+ * Pure: no network, no I/O.
1880
+ */
1881
+ declare function rendersPersonalProfile(org: {
1882
+ isOrg: boolean;
1883
+ recognized: boolean;
1884
+ personalProfileVisible?: boolean;
1885
+ } | null | undefined): boolean;
1805
1886
 
1806
1887
  /**
1807
1888
  * Firmographic subset of a company profile that decides whether its `/c/` page
@@ -2082,4 +2163,4 @@ declare function roadmapIssueUrl(issue: number): string;
2082
2163
  */
2083
2164
  declare const SIFA_SDK_VERSION: string;
2084
2165
 
2085
- export { ACTIVITY_TIERS, ACTIVITY_VERBS, ACTIVITY_VISIBILITY_RULES, ALL_SECTIONS, APP_CATEGORIES, APP_CATEGORY_IDS, APP_CATEGORY_MAP, APP_URL_PATTERNS, ARTIFACT_LINK_KIND_LABELS, ARTIFACT_LINK_KIND_OPTIONS, type AccountVerification, type ActivityItem, type ActivityItemForUrl, type ActivityTaxonomy, type ActivityTier, type ActivityVerbMap, type AppCategoryId, type AppUrlPatterns, type ArtifactLinkKindOption, CALENDAR_EVENT_MODE_LABELS, CALENDAR_EVENT_STATUS_LABELS, CATEGORY_LABELS, CATEGORY_ORDER, COLLECTION_TO_APP, COMPANY_OPTIONAL_EMPLOYMENT_TYPES, COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS, COMPLETENESS_MAX_SCORE, CONTINENTS, COUNTRIES, type CardHealth, type CardHealthStrategy, type CompanyFirmographics, type ContinentCode, type CsvRow, DIMENSIONS_MAX_SCORE, type DimensionKey, type DimensionMap, type DisambiguationFields, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, ENTITY_REF_ANCHORS, type EmbedResult, type EmploymentTypeGroup, type EmploymentTypeOption, type EntityRefAnchor, EntitySearchResult, INDUSTRY_OPTIONS, INVOLVEMENT_HEADING_ORDER, INVOLVEMENT_KIND_HEADINGS, INVOLVEMENT_KIND_LABELS, INVOLVEMENT_KIND_OPTIONS, type IndustryOption, type InvolvementGroup, type InvolvementKindOption, type KnownAppId, type LexiconEntry, LocationValue, MIN_SKILLS, type MergedProfileSkill, OPEN_TO_OPTIONS, OPEN_TO_TOKENS, OPEN_TO_TOKEN_TO_VALUE, OPEN_TO_VALUE_TO_TOKEN, type OpenToGroup, type OpenToOption, OrgProfileRecord, PLATFORM_LABELS, PLATFORM_OPTIONS, PRESENTATION_LINK_TYPE_LABELS, PRESENTATION_LINK_TYPE_OPTIONS, PRESENTATION_ROLE_LABELS, PRESENTATION_ROLE_OPTIONS, PUBLISHERS, type ParsedDelivery, type ParsedPresentation, type PdsProvider, PdsProviderInfo, type PlatformId, type PresentationDeliverySummary, PresentationDuration, type PresentationLinkTypeOption, type PresentationRoleOption, type PrimaryPositionCandidate, Profile, ProfileCertification, type ProfileCompletion, type ProfileDimensionInputs, ProfileEducation, ProfileHonor, ProfileInvolvement, ProfileLanguage, ProfilePosition, ProfilePresentationDelivery, ProfilePresentationDeliveryRecord, ProfilePresentationRecord, ProfileProject, ProfilePublication, ProfileSkill, type Publisher, ROADMAP_ISSUES_REPO, ROADMAP_ITEM_META, type RgbColor, type RoadmapItemMeta, SECTION_GROUPS, SECTION_LABELS, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, STREAM_VERBS, type SectionGroupId, type SectionId, type SkillCategory, type StreamAddress, type StreamAuthor, type StreamCardBody, type StreamCardSubject, type StreamCardVM, type StreamExternalLink, type StreamGeo, type StreamMedia, type StreamMediaBase, type StreamMediaBlob, type StreamMediaResolved, type StreamRichSegment, type StreamSource, type StreamTheme, type StreamVerb, type TierMeta, type ToStreamCardVMOptions, VERIFICATION_PROVIDERS, type VerificationProvider, type VerificationProviderId, type VerificationSource, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, type WorkplaceTypeOption, buildTalkSlug, categoryForApp, certDateExtractor, classifyEntityRef, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countryCodeToFlag, dateRangeExtractor, dedupeSkills, detectPdsProvider, dimensionsFromInputs, durationFromMinutes, entityDisambiguationLabel, entityResultKey, filterHidden, findIndustry, formatCompanyName, formatDateRange, formatDistanceToNow, formatLocation, formatPresentationDuration, formatRelativeTime, formatTimelineDate, getActivityTaxonomyVersion, getActivityTier, getActivityVerbsVersion, getAppCategoryIcon, getAppIdForCollection, getArtifactLinkKindLabel, getCalendarEventModeLabel, getCalendarEventStatusLabel, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getInvolvementKindHeading, getInvolvementKindLabel, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getPresentationLinkTypeLabel, getPresentationRoleLabel, getPublisherByHost, getPublisherById, getPublisherFromSiteUrl, getTierMeta, getVerificationProvider, getVisibleSectionIds, getWorkplaceTypeLabel, groupInvolvementByHeading, groupSkillsByCategory, groupSkillsBySubCategory, hoistPrimary, isAppCategory, isCompanyPageIndexable, isCompanyRequired, isKnownAppId, isKnownPlatform, isKnownVerificationProvider, isLinked, isPseudoEmployer, isRegistrableDomainHandle, isSectionPopulated, isValidRgbColor, isVisibleActivityItem, lexiconDateExtractor, limitCombiningMarks, looksLikeDomain, meetsContrastAA, normalizeCompanyKey, normalizeLegalForm, normalizeOpenTo, normalizePlatformId, normalizePresentationMode, normalizePresentationRole, normalizeWorkplaceTypes, openToTokenToValue, openToValueToToken, parseIntendedAudiences, parseLocationString, parsePresentationDuration, parseTalkRkey, pdsProviderFromApi, pickPrimaryPosition, presentationCsvRowToRecord, presentationDeliveryCsvRowToRecord, primaryVerification, profileToDimensionInputs, qualifiesAsOrg, relativeLuminance, resolveCardHealth, resolveCardUrl, resolveEmbed, resolveVerifierProvider, rgbToString, roadmapIssueUrl, sanitizeDisplayText, sanitizeHandleInput, searchResultDisambiguation, singleDateExtractor, slugifyTitle, sortByActiveDateRange, sortByDateDesc, sortCertifications, sortEducation, sortHonors, sortLanguages, sortLanguagesByProficiency, sortPositions, sortProjects, sortPublications, streamAddressSchema, streamAuthorSchema, streamCardBodySchema, streamCardSubjectSchema, streamCardVMSchema, streamExternalLinkSchema, streamGeoSchema, streamMediaSchema, streamRichSegmentSchema, streamSourceSchema, streamThemeSchema, streamVerbSchema, stripHtmlToText, summarizePresentationDeliveries, toStreamCardVM, toStreamCardVMs, truncateGraphemes, verbForCollection, visibleItems, youtubeThumbnailUrl, youtubeVideoId };
2166
+ export { ACTIVITY_TIERS, ACTIVITY_VERBS, ACTIVITY_VISIBILITY_RULES, ALL_SECTIONS, APP_CATEGORIES, APP_CATEGORY_IDS, APP_CATEGORY_MAP, APP_URL_PATTERNS, ARTIFACT_LINK_KIND_LABELS, ARTIFACT_LINK_KIND_OPTIONS, type AccountVerification, type ActivityItem, type ActivityItemForUrl, type ActivityTaxonomy, type ActivityTier, type ActivityVerbMap, type AppCategoryId, type AppUrlPatterns, type ArtifactLinkKindOption, CALENDAR_EVENT_MODE_LABELS, CALENDAR_EVENT_STATUS_LABELS, CATEGORY_LABELS, CATEGORY_ORDER, COLLECTION_TO_APP, COMPANY_OPTIONAL_EMPLOYMENT_TYPES, COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS, COMPLETENESS_MAX_SCORE, CONTINENTS, COUNTRIES, type CardHealth, type CardHealthStrategy, type CompanyFirmographics, type ContinentCode, type CsvRow, DIMENSIONS_MAX_SCORE, type DimensionKey, type DimensionMap, type DisambiguationFields, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, ENTITY_REF_ANCHORS, type EmbedResult, type EmploymentTypeGroup, type EmploymentTypeOption, type EntityRefAnchor, EntitySearchResult, INDUSTRY_OPTIONS, INVOLVEMENT_HEADING_ORDER, INVOLVEMENT_KIND_HEADINGS, INVOLVEMENT_KIND_LABELS, INVOLVEMENT_KIND_OPTIONS, type IndustryOption, type InvolvementGroup, type InvolvementKindOption, type KnownAppId, type LexiconEntry, LocationValue, MIN_SKILLS, type MergedProfileSkill, OPEN_TO_OPTIONS, OPEN_TO_TOKENS, OPEN_TO_TOKEN_TO_VALUE, OPEN_TO_VALUE_TO_TOKEN, type OpenToGroup, type OpenToOption, OrgProfileRecord, PLATFORM_LABELS, PLATFORM_OPTIONS, PRESENTATION_LINK_TYPE_LABELS, PRESENTATION_LINK_TYPE_OPTIONS, PRESENTATION_ROLE_LABELS, PRESENTATION_ROLE_OPTIONS, PUBLISHERS, type ParsedDelivery, type ParsedPresentation, type PdsProvider, PdsProviderInfo, type PersonalFacetContent, type PlatformId, type PresentationDeliverySummary, PresentationDuration, type PresentationLinkTypeOption, type PresentationRoleOption, type PrimaryPositionCandidate, Profile, ProfileCertification, type ProfileCompletion, type ProfileDimensionInputs, ProfileEducation, ProfileHonor, ProfileInvolvement, ProfileLanguage, ProfilePosition, ProfilePresentationDelivery, ProfilePresentationDeliveryRecord, ProfilePresentationRecord, ProfileProject, ProfilePublication, ProfileSkill, type Publisher, ROADMAP_ISSUES_REPO, ROADMAP_ITEM_META, type RgbColor, type RoadmapItemMeta, SECTION_GROUPS, SECTION_LABELS, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, STREAM_VERBS, type SectionGroupId, type SectionId, type SkillCategory, type StreamAddress, type StreamAuthor, type StreamCardBody, type StreamCardSubject, type StreamCardVM, type StreamExternalLink, type StreamGeo, type StreamMedia, type StreamMediaBase, type StreamMediaBlob, type StreamMediaResolved, type StreamRichSegment, type StreamSource, type StreamTheme, type StreamVerb, type TierMeta, type ToStreamCardVMOptions, VERIFICATION_PROVIDERS, type VerificationProvider, type VerificationProviderId, type VerificationSource, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, type WorkplaceTypeOption, buildTalkSlug, categoryForApp, certDateExtractor, classifyEntityRef, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countryCodeToFlag, dateRangeExtractor, dedupeSkills, detectPdsProvider, dimensionsFromInputs, durationFromMinutes, entityDisambiguationLabel, entityResultKey, filterHidden, findIndustry, formatCompanyName, formatDateRange, formatDistanceToNow, formatLocation, formatPresentationDuration, formatRelativeTime, formatTimelineDate, getActivityTaxonomyVersion, getActivityTier, getActivityVerbsVersion, getAppCategoryIcon, getAppIdForCollection, getArtifactLinkKindLabel, getCalendarEventModeLabel, getCalendarEventStatusLabel, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getInvolvementKindHeading, getInvolvementKindLabel, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getPresentationLinkTypeLabel, getPresentationRoleLabel, getPublisherByHost, getPublisherById, getPublisherFromSiteUrl, getTierMeta, getVerificationProvider, getVisibleSectionIds, getWorkplaceTypeLabel, groupInvolvementByHeading, groupSkillsByCategory, groupSkillsBySubCategory, groupSkillsForDisplay, hasPersonalProfileContent, hoistPrimary, isAppCategory, isCompanyPageIndexable, isCompanyRequired, isKnownAppId, isKnownPlatform, isKnownVerificationProvider, isLinked, isPseudoEmployer, isRegistrableDomainHandle, isSectionPopulated, isValidRgbColor, isVisibleActivityItem, lexiconDateExtractor, limitCombiningMarks, looksLikeDomain, meetsContrastAA, normalizeCompanyKey, normalizeLegalForm, normalizeOpenTo, normalizePlatformId, normalizePresentationMode, normalizePresentationRole, normalizeWorkplaceTypes, openToTokenToValue, openToValueToToken, parseIntendedAudiences, parseLocationString, parsePresentationDuration, parseTalkRkey, pdsProviderFromApi, pickPrimaryPosition, presentationCsvRowToRecord, presentationDeliveryCsvRowToRecord, primaryVerification, profileToDimensionInputs, qualifiesAsOrg, relativeLuminance, rendersPersonalProfile, resolveCardHealth, resolveCardUrl, resolveEmbed, resolveVerifierProvider, rgbToString, roadmapIssueUrl, sanitizeDisplayText, sanitizeHandleInput, searchResultDisambiguation, singleDateExtractor, slugifyTitle, sortByActiveDateRange, sortByDateDesc, sortCertifications, sortEducation, sortHonors, sortLanguages, sortLanguagesByProficiency, sortPositions, sortProjects, sortPublications, streamAddressSchema, streamAuthorSchema, streamCardBodySchema, streamCardSubjectSchema, streamCardVMSchema, streamExternalLinkSchema, streamGeoSchema, streamMediaSchema, streamRichSegmentSchema, streamSourceSchema, streamThemeSchema, streamVerbSchema, stripHtmlToText, summarizePresentationDeliveries, toStreamCardVM, toStreamCardVMs, truncateGraphemes, verbForCollection, visibleItems, youtubeThumbnailUrl, youtubeVideoId };
package/dist/index.js CHANGED
@@ -928,6 +928,14 @@ function groupSkillsBySubCategory(skills) {
928
928
  return ordered;
929
929
  }
930
930
 
931
+ // src/taxonomy/skill-display-groups.ts
932
+ function groupSkillsForDisplay(skills, options = {}) {
933
+ const grouped = groupSkillsBySubCategory(skills);
934
+ const labelled = grouped.filter(([label]) => label !== null);
935
+ const groups = options.ungroupedFirst ? [...grouped.filter(([label]) => label === null), ...labelled] : grouped;
936
+ return { groups, showLabels: labelled.length >= 2 };
937
+ }
938
+
931
939
  // src/taxonomy/app-categories.ts
932
940
  var APP_CATEGORIES = {
933
941
  Articles: { phosphorIcon: "Article" },
@@ -4088,6 +4096,28 @@ function qualifiesAsOrg(record, handle) {
4088
4096
  if (record === null || record === void 0) return false;
4089
4097
  return isRegistrableDomainHandle(handle);
4090
4098
  }
4099
+ function hasPersonalProfileContent(profile) {
4100
+ const filled = (text) => typeof text === "string" && text.trim() !== "";
4101
+ if (filled(profile.headline) || filled(profile.about)) return true;
4102
+ const sections = [
4103
+ profile.positions,
4104
+ profile.education,
4105
+ profile.skills,
4106
+ profile.certifications,
4107
+ profile.projects,
4108
+ profile.publications,
4109
+ profile.volunteering,
4110
+ profile.involvement,
4111
+ profile.honors,
4112
+ profile.courses
4113
+ ];
4114
+ return sections.some((section) => Array.isArray(section) && section.length > 0);
4115
+ }
4116
+ function rendersPersonalProfile(org) {
4117
+ if (org === null || org === void 0) return true;
4118
+ if (!org.isOrg && !org.recognized) return true;
4119
+ return org.isOrg && org.personalProfileVisible === true;
4120
+ }
4091
4121
 
4092
4122
  // src/logic/company-page-indexable.ts
4093
4123
  var COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS = 2;
@@ -4395,6 +4425,13 @@ var OrgProfileRecordSchema = z.object({
4395
4425
  companySize: z.string().optional(),
4396
4426
  /** Featured links or content surfaced on the org profile. */
4397
4427
  links: z.array(orgLinkSchema).max(10).optional(),
4428
+ /**
4429
+ * Whether the account holder's personal profile stays visible alongside this
4430
+ * org profile. For sole traders whose personal domain is also their trade
4431
+ * name: one account, two facets, both pages render. Absent or false means the
4432
+ * account presents solely as an organization.
4433
+ */
4434
+ personalProfileVisible: z.boolean().optional(),
4398
4435
  labels: selfLabelsSchema.optional(),
4399
4436
  createdAt: datetimeSchema
4400
4437
  });
@@ -4826,8 +4863,8 @@ function roadmapIssueUrl(issue) {
4826
4863
  }
4827
4864
 
4828
4865
  // src/index.ts
4829
- var SIFA_SDK_VERSION = "0.12.34";
4866
+ var SIFA_SDK_VERSION = "0.12.36";
4830
4867
 
4831
- export { ACTIVITY_TIERS, ACTIVITY_VERBS, ACTIVITY_VISIBILITY_RULES, ADULT_CONTENT_LABELS, ALL_SECTIONS, APP_CATEGORIES, APP_CATEGORY_IDS, APP_CATEGORY_MAP, APP_URL_PATTERNS, ARTIFACT_LINK_KIND_LABELS, ARTIFACT_LINK_KIND_OPTIONS, ArtifactLinkSchema, AtmosphereFeedItemSchema, BlobRefSchema, CALENDAR_EVENT_MODE_LABELS, CALENDAR_EVENT_STATUS_LABELS, CATEGORY_LABELS, CATEGORY_ORDER, COLLECTION_TO_APP, COMPANY_OPTIONAL_EMPLOYMENT_TYPES, COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS, COMPLETENESS_MAX_SCORE, CONTINENTS, COUNTRIES, DIMENSIONS_MAX_SCORE, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, ENTITY_REF_ANCHORS, EndorsementConfirmationRecordSchema, EndorsementRecordSchema, EntityImportSearchResponseSchema, EntityMintDomainResponseSchema, EntityResolveDomainRequestSchema, EntityResolveDomainResponseSchema, EntitySearchResponseSchema, EntitySearchResultSchema, EntitySelectRequestSchema, EntitySelectResponseSchema, FEATURE_FLAGS, FeatureAllowlistEntrySchema, FeedActorSchema, FollowFeedItemSchema, FollowFeedPageSchema, FollowProfilePageSchema, FollowProfileSchema, GraphFollowRecordSchema, INDUSTRY_OPTIONS, INVOLVEMENT_HEADING_ORDER, INVOLVEMENT_KIND_HEADINGS, INVOLVEMENT_KIND_LABELS, INVOLVEMENT_KIND_OPTIONS, MIN_SKILLS, OPEN_TO_OPTIONS, OPEN_TO_TOKENS, OPEN_TO_TOKEN_TO_VALUE, OPEN_TO_VALUE_TO_TOKEN, OrgEmploymentAttestationRecordSchema, OrgProfileRecordSchema, PLATFORM_LABELS, PLATFORM_OPTIONS, PRESENTATION_LINK_TYPE_LABELS, PRESENTATION_LINK_TYPE_OPTIONS, PRESENTATION_ROLE_LABELS, PRESENTATION_ROLE_OPTIONS, PROFILE_INVOLVEMENT_NSID, PUBLISHERS, PresentationDurationSchema, PresentationLinkSchema, ProfileCertificationRecordSchema, ProfileCourseRecordSchema, ProfileEducationRecordSchema, ProfileExternalAccountRecordSchema, ProfileHonorRecordSchema, ProfileInvolvementRecordSchema, ProfileLanguageRecordSchema, ProfilePositionRecordSchema, ProfilePresentationDeliveryRecordSchema, ProfilePresentationRecordSchema, ProfileProjectRecordSchema, ProfilePublicationRecordSchema, ProfileSelfRecordSchema, ProfileSkillRecordSchema, ProfileVolunteeringRecordSchema, PublicationAuthorSchema, ROADMAP_ISSUES_REPO, ROADMAP_ITEM_META, SECTION_GROUPS, SECTION_LABELS, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, STREAM_VERBS, SifaFeedItemSchema, VERIFICATION_PROVIDERS, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, atUriSchema, buildTalkSlug, categoryForApp, certDateExtractor, cidSchema, classifyEntityRef, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countryCodeToFlag, dateRangeExtractor, datetimeSchema, decodeFeedCursor, dedupeSkills, detectPdsProvider, didSchema, dimensionsFromInputs, durationFromMinutes, encodeFeedCursor, entityDisambiguationLabel, entityResultKey, externalRecordRefSchema, filterHidden, findIndustry, formatCompanyName, formatDateRange, formatDistanceToNow, formatLocation, formatPresentationDuration, formatRelativeTime, formatTimelineDate, getActivityTaxonomyVersion, getActivityTier, getActivityVerbsVersion, getAppCategoryIcon, getAppIdForCollection, getArtifactLinkKindLabel, getCalendarEventModeLabel, getCalendarEventStatusLabel, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getInvolvementKindHeading, getInvolvementKindLabel, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getPresentationLinkTypeLabel, getPresentationRoleLabel, getPublisherByHost, getPublisherById, getPublisherFromSiteUrl, getTierMeta, getVerificationProvider, getVisibleSectionIds, getWorkplaceTypeLabel, groupInvolvementByHeading, groupSkillsByCategory, groupSkillsBySubCategory, hasAdultContent, hoistPrimary, isAppCategory, isCompanyPageIndexable, isCompanyRequired, isKnownAppId, isKnownPlatform, isKnownVerificationProvider, isLinked, isPseudoEmployer, isRegistrableDomainHandle, isSectionPopulated, isValidRgbColor, isVisibleActivityItem, languageTagSchema, lexiconDateExtractor, limitCombiningMarks, looksLikeDomain, makeGraphFollowRecordSchema, maxGraphemes, meetsContrastAA, normalizeCompanyKey, normalizeLegalForm, normalizeOpenTo, normalizePlatformId, normalizePresentationMode, normalizePresentationRole, normalizeWorkplaceTypes, openToTokenToValue, openToValueToToken, parseIntendedAudiences, parseLocationString, parsePresentationDuration, parseTalkRkey, partialDateSchema, pdsProviderFromApi, pickPrimaryPosition, presentationCsvRowToRecord, presentationDeliveryCsvRowToRecord, primaryVerification, profileToDimensionInputs, qualifiesAsOrg, relativeLuminance, resolveCardHealth, resolveCardUrl, resolveEmbed, resolveVerifierProvider, rgbToString, roadmapIssueUrl, sanitizeDisplayText, sanitizeHandleInput, searchResultDisambiguation, selfLabelsSchema, singleDateExtractor, slugifyTitle, sortByActiveDateRange, sortByDateDesc, sortCertifications, sortEducation, sortHonors, sortLanguages, sortLanguagesByProficiency, sortPositions, sortProjects, sortPublications, streamAddressSchema, streamAuthorSchema, streamCardBodySchema, streamCardSubjectSchema, streamCardVMSchema, streamExternalLinkSchema, streamGeoSchema, streamMediaSchema, streamRichSegmentSchema, streamSourceSchema, streamThemeSchema, streamVerbSchema, stripHtmlToText, strongRefSchema, summarizePresentationDeliveries, summarizeProfileView, toStreamCardVM, toStreamCardVMs, truncateGraphemes, uriSchema, verbForCollection, visibleItems, youtubeThumbnailUrl, youtubeVideoId };
4868
+ export { ACTIVITY_TIERS, ACTIVITY_VERBS, ACTIVITY_VISIBILITY_RULES, ADULT_CONTENT_LABELS, ALL_SECTIONS, APP_CATEGORIES, APP_CATEGORY_IDS, APP_CATEGORY_MAP, APP_URL_PATTERNS, ARTIFACT_LINK_KIND_LABELS, ARTIFACT_LINK_KIND_OPTIONS, ArtifactLinkSchema, AtmosphereFeedItemSchema, BlobRefSchema, CALENDAR_EVENT_MODE_LABELS, CALENDAR_EVENT_STATUS_LABELS, CATEGORY_LABELS, CATEGORY_ORDER, COLLECTION_TO_APP, COMPANY_OPTIONAL_EMPLOYMENT_TYPES, COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS, COMPLETENESS_MAX_SCORE, CONTINENTS, COUNTRIES, DIMENSIONS_MAX_SCORE, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, ENTITY_REF_ANCHORS, EndorsementConfirmationRecordSchema, EndorsementRecordSchema, EntityImportSearchResponseSchema, EntityMintDomainResponseSchema, EntityResolveDomainRequestSchema, EntityResolveDomainResponseSchema, EntitySearchResponseSchema, EntitySearchResultSchema, EntitySelectRequestSchema, EntitySelectResponseSchema, FEATURE_FLAGS, FeatureAllowlistEntrySchema, FeedActorSchema, FollowFeedItemSchema, FollowFeedPageSchema, FollowProfilePageSchema, FollowProfileSchema, GraphFollowRecordSchema, INDUSTRY_OPTIONS, INVOLVEMENT_HEADING_ORDER, INVOLVEMENT_KIND_HEADINGS, INVOLVEMENT_KIND_LABELS, INVOLVEMENT_KIND_OPTIONS, MIN_SKILLS, OPEN_TO_OPTIONS, OPEN_TO_TOKENS, OPEN_TO_TOKEN_TO_VALUE, OPEN_TO_VALUE_TO_TOKEN, OrgEmploymentAttestationRecordSchema, OrgProfileRecordSchema, PLATFORM_LABELS, PLATFORM_OPTIONS, PRESENTATION_LINK_TYPE_LABELS, PRESENTATION_LINK_TYPE_OPTIONS, PRESENTATION_ROLE_LABELS, PRESENTATION_ROLE_OPTIONS, PROFILE_INVOLVEMENT_NSID, PUBLISHERS, PresentationDurationSchema, PresentationLinkSchema, ProfileCertificationRecordSchema, ProfileCourseRecordSchema, ProfileEducationRecordSchema, ProfileExternalAccountRecordSchema, ProfileHonorRecordSchema, ProfileInvolvementRecordSchema, ProfileLanguageRecordSchema, ProfilePositionRecordSchema, ProfilePresentationDeliveryRecordSchema, ProfilePresentationRecordSchema, ProfileProjectRecordSchema, ProfilePublicationRecordSchema, ProfileSelfRecordSchema, ProfileSkillRecordSchema, ProfileVolunteeringRecordSchema, PublicationAuthorSchema, ROADMAP_ISSUES_REPO, ROADMAP_ITEM_META, SECTION_GROUPS, SECTION_LABELS, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, STREAM_VERBS, SifaFeedItemSchema, VERIFICATION_PROVIDERS, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, atUriSchema, buildTalkSlug, categoryForApp, certDateExtractor, cidSchema, classifyEntityRef, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countryCodeToFlag, dateRangeExtractor, datetimeSchema, decodeFeedCursor, dedupeSkills, detectPdsProvider, didSchema, dimensionsFromInputs, durationFromMinutes, encodeFeedCursor, entityDisambiguationLabel, entityResultKey, externalRecordRefSchema, filterHidden, findIndustry, formatCompanyName, formatDateRange, formatDistanceToNow, formatLocation, formatPresentationDuration, formatRelativeTime, formatTimelineDate, getActivityTaxonomyVersion, getActivityTier, getActivityVerbsVersion, getAppCategoryIcon, getAppIdForCollection, getArtifactLinkKindLabel, getCalendarEventModeLabel, getCalendarEventStatusLabel, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getInvolvementKindHeading, getInvolvementKindLabel, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getPresentationLinkTypeLabel, getPresentationRoleLabel, getPublisherByHost, getPublisherById, getPublisherFromSiteUrl, getTierMeta, getVerificationProvider, getVisibleSectionIds, getWorkplaceTypeLabel, groupInvolvementByHeading, groupSkillsByCategory, groupSkillsBySubCategory, groupSkillsForDisplay, hasAdultContent, hasPersonalProfileContent, hoistPrimary, isAppCategory, isCompanyPageIndexable, isCompanyRequired, isKnownAppId, isKnownPlatform, isKnownVerificationProvider, isLinked, isPseudoEmployer, isRegistrableDomainHandle, isSectionPopulated, isValidRgbColor, isVisibleActivityItem, languageTagSchema, lexiconDateExtractor, limitCombiningMarks, looksLikeDomain, makeGraphFollowRecordSchema, maxGraphemes, meetsContrastAA, normalizeCompanyKey, normalizeLegalForm, normalizeOpenTo, normalizePlatformId, normalizePresentationMode, normalizePresentationRole, normalizeWorkplaceTypes, openToTokenToValue, openToValueToToken, parseIntendedAudiences, parseLocationString, parsePresentationDuration, parseTalkRkey, partialDateSchema, pdsProviderFromApi, pickPrimaryPosition, presentationCsvRowToRecord, presentationDeliveryCsvRowToRecord, primaryVerification, profileToDimensionInputs, qualifiesAsOrg, relativeLuminance, rendersPersonalProfile, resolveCardHealth, resolveCardUrl, resolveEmbed, resolveVerifierProvider, rgbToString, roadmapIssueUrl, sanitizeDisplayText, sanitizeHandleInput, searchResultDisambiguation, selfLabelsSchema, singleDateExtractor, slugifyTitle, sortByActiveDateRange, sortByDateDesc, sortCertifications, sortEducation, sortHonors, sortLanguages, sortLanguagesByProficiency, sortPositions, sortProjects, sortPublications, streamAddressSchema, streamAuthorSchema, streamCardBodySchema, streamCardSubjectSchema, streamCardVMSchema, streamExternalLinkSchema, streamGeoSchema, streamMediaSchema, streamRichSegmentSchema, streamSourceSchema, streamThemeSchema, streamVerbSchema, stripHtmlToText, strongRefSchema, summarizePresentationDeliveries, summarizeProfileView, toStreamCardVM, toStreamCardVMs, truncateGraphemes, uriSchema, verbForCollection, visibleItems, youtubeThumbnailUrl, youtubeVideoId };
4832
4869
  //# sourceMappingURL=index.js.map
4833
4870
  //# sourceMappingURL=index.js.map