@singi-labs/sifa-sdk 0.12.3 → 0.12.4

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 (47) hide show
  1. package/dist/{adult-content-DDGP8W1e.d.cts → adult-content-n2uy3rT3.d.cts} +31 -1
  2. package/dist/{adult-content-DDGP8W1e.d.ts → adult-content-n2uy3rT3.d.ts} +31 -1
  3. package/dist/{index-IMvNS08M.d.ts → index-BLv2bK_K.d.ts} +2 -2
  4. package/dist/{index-BS7zO7KI.d.cts → index-COjgkXRe.d.cts} +86 -3
  5. package/dist/{index-CNh-GI9A.d.cts → index-HTTNUcN4.d.cts} +2 -2
  6. package/dist/{index-iAzeLOcz.d.ts → index-tkWmoZAu.d.ts} +86 -3
  7. package/dist/index.cjs +73 -1
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.d.cts +96 -5
  10. package/dist/index.d.ts +96 -5
  11. package/dist/index.js +68 -2
  12. package/dist/index.js.map +1 -1
  13. package/dist/{keys-5oyp950_.d.ts → org-BZcAnLab.d.ts} +88 -2
  14. package/dist/{keys-Bn36IA8Q.d.cts → org-lIB6pSYc.d.cts} +88 -2
  15. package/dist/org-settings-CmaSX5ZI.d.cts +74 -0
  16. package/dist/org-settings-CmaSX5ZI.d.ts +74 -0
  17. package/dist/query/fetchers/index.cjs +45 -0
  18. package/dist/query/fetchers/index.cjs.map +1 -1
  19. package/dist/query/fetchers/index.d.cts +4 -3
  20. package/dist/query/fetchers/index.d.ts +4 -3
  21. package/dist/query/fetchers/index.js +40 -1
  22. package/dist/query/fetchers/index.js.map +1 -1
  23. package/dist/query/hooks/index.cjs +118 -0
  24. package/dist/query/hooks/index.cjs.map +1 -1
  25. package/dist/query/hooks/index.d.cts +4 -3
  26. package/dist/query/hooks/index.d.ts +4 -3
  27. package/dist/query/hooks/index.js +112 -1
  28. package/dist/query/hooks/index.js.map +1 -1
  29. package/dist/query/index.cjs +122 -0
  30. package/dist/query/index.cjs.map +1 -1
  31. package/dist/query/index.d.cts +6 -5
  32. package/dist/query/index.d.ts +6 -5
  33. package/dist/query/index.js +110 -1
  34. package/dist/query/index.js.map +1 -1
  35. package/dist/schemas/index.cjs +27 -0
  36. package/dist/schemas/index.cjs.map +1 -1
  37. package/dist/schemas/index.d.cts +67 -1
  38. package/dist/schemas/index.d.ts +67 -1
  39. package/dist/schemas/index.js +26 -1
  40. package/dist/schemas/index.js.map +1 -1
  41. package/dist/schemas/write/index.cjs +36 -0
  42. package/dist/schemas/write/index.cjs.map +1 -1
  43. package/dist/schemas/write/index.d.cts +1 -0
  44. package/dist/schemas/write/index.d.ts +1 -0
  45. package/dist/schemas/write/index.js +32 -1
  46. package/dist/schemas/write/index.js.map +1 -1
  47. package/package.json +1 -1
package/dist/index.d.cts CHANGED
@@ -1,7 +1,7 @@
1
- import { P as ProfileSkill, b as ProfilePresentationDelivery, L as LocationValue, c as PdsProviderInfo, d as Profile, e as ProfilePosition, f as ProfileCertification, g as ProfileEducation, h as ProfileHonor, i as ProfileLanguage, j as ProfileProject, k as ProfilePublication, l as ProfileInvolvement } from './adult-content-DDGP8W1e.cjs';
2
- export { m as ADULT_CONTENT_LABELS, n as ActiveApp, a as ActivityLabel, A as AdultContentLabel, C as CoSpeaker, o as Endorsement, p as EndorsementData, E as ExternalAccount, q as ExternalAccountKeytraceClaim, F as FeedItem, r as LanguageProficiency, s as PresentationLinkView, t as ProfileCourse, u as ProfileIndustry, v as ProfileInvolvementLink, w as ProfileLocation, x as ProfileOverrideSource, y as ProfilePresentation, z as ProfileVolunteering, B as PublicationContributor, D as SkillRef, S as SkillSuggestion, T as TrustStat, V as VerifiedAccount, G as hasAdultContent } from './adult-content-DDGP8W1e.cjs';
3
- import { PresentationDuration, ProfilePresentationDeliveryRecord, ProfilePresentationRecord } from './schemas/index.cjs';
4
- export { ArtifactLink, ArtifactLinkSchema, EndorsementConfirmationRecord, EndorsementConfirmationRecordSchema, EndorsementRecord, EndorsementRecordSchema, GraphFollowRecord, GraphFollowRecordSchema, 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';
1
+ import { P as ProfileSkill, b as ProfilePresentationDelivery, L as LocationValue, c as PdsProviderInfo, d as Profile, e as ProfilePosition, f as ProfileCertification, g as ProfileEducation, h as ProfileHonor, i as ProfileLanguage, j as ProfileProject, k as ProfilePublication, l as ProfileInvolvement } from './adult-content-n2uy3rT3.cjs';
2
+ export { m as ADULT_CONTENT_LABELS, n as ActiveApp, a as ActivityLabel, A as AdultContentLabel, C as CoSpeaker, o as Endorsement, p as EndorsementData, E as ExternalAccount, q as ExternalAccountKeytraceClaim, F as FeedItem, r as LanguageProficiency, O as OrgFloorVerdict, s as OrgProfileView, t as PresentationLinkView, u as ProfileCourse, v as ProfileIndustry, w as ProfileInvolvementLink, x as ProfileLocation, y as ProfileOverrideSource, z as ProfilePresentation, B as ProfileVolunteering, D as PublicationContributor, G as SkillRef, S as SkillSuggestion, T as TrustStat, V as VerifiedAccount, H as hasAdultContent } from './adult-content-n2uy3rT3.cjs';
3
+ import { PresentationDuration, ProfilePresentationDeliveryRecord, ProfilePresentationRecord, OrgProfileRecord } from './schemas/index.cjs';
4
+ export { ArtifactLink, ArtifactLinkSchema, 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 { E as EntitySearchResult } from './feed-D2ZV8Eaj.cjs';
6
6
  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-D2ZV8Eaj.cjs';
7
7
  import 'zod';
@@ -1269,6 +1269,97 @@ declare function classifyEntityRef(entityRef: string | null | undefined): Entity
1269
1269
  /** Whether a position carries a durable link of any anchor quality. */
1270
1270
  declare function isLinked(entityRef: string | null | undefined): boolean;
1271
1271
 
1272
+ /**
1273
+ * Approximate "is this handle a custom registrable domain?" check for the org
1274
+ * rendering floor.
1275
+ *
1276
+ * IMPORTANT -- this is deliberately NARROW, not authoritative. The SDK has no
1277
+ * public-suffix-list (PSL) dependency, so it cannot compute the true eTLD+1
1278
+ * apex: it cannot tell `acme.co.uk` (an apex) from `careers.acme.co.uk` (a
1279
+ * subdomain that routes to the subsidiary case), nor reject every PSL-private
1280
+ * host. It performs only the rejects it CAN make correctly with no PSL:
1281
+ * - DIDs (never a domain handle),
1282
+ * - bare / no-dot handles and non-TLD-shaped hosts (via `looksLikeDomain`),
1283
+ * - known shared PDS / handle hosts (`*.bsky.social` and friends).
1284
+ *
1285
+ * The AUTHORITATIVE apex + eTLD+1 + confusable check is server-side in
1286
+ * sifa-api's `bind-domain-guard` (`isBindableHandleDomain`, backed by `tldts`);
1287
+ * `computeOrgFloorVerdict` there is the source of truth and is surfaced to
1288
+ * clients on the profile resolve (read it via `useOrgProfile`). Recompute here
1289
+ * only when a client-side floor gate is needed without a round-trip.
1290
+ *
1291
+ * TODO(#160): promote a shared PSL-backed eTLD+1 helper into the SDK (or vendor
1292
+ * a compact public-suffix table) and tighten this to a true apex check.
1293
+ *
1294
+ * Pure: no network, no I/O.
1295
+ */
1296
+ declare function isRegistrableDomainHandle(handle: string): boolean;
1297
+ /**
1298
+ * The org rendering floor (#160) -- the "any AppView can evaluate" promise made
1299
+ * executable. An account renders as an organization when BOTH:
1300
+ * 1. It has an `id.sifa.org.profile` record (record present), AND
1301
+ * 2. Its handle is a custom registrable domain
1302
+ * ({@link isRegistrableDomainHandle}).
1303
+ *
1304
+ * Only the PRESENCE of the record matters here (declaration marks the account
1305
+ * as presenting-as-org; trust is layered separately). The handle check is LIVE:
1306
+ * evaluate it on every render so a lost domain drops org rendering
1307
+ * automatically.
1308
+ *
1309
+ * Pure: no network, no I/O. Pass the fetched record (or null) and the current
1310
+ * handle.
1311
+ */
1312
+ declare function qualifiesAsOrg(record: OrgProfileRecord | null | undefined, handle: string): boolean;
1313
+
1314
+ /**
1315
+ * Firmographic subset of a company profile that decides whether its `/c/` page
1316
+ * is worth indexing. A minimal STRUCTURAL type on purpose -- it does not import
1317
+ * sifa-web's `CompanyProfile`, so this predicate stays importable by any
1318
+ * consumer (sifa-web, sifa-app, third parties). Fields mirror the external
1319
+ * firmographics that lead a `/c/` page (Wikidata / ROR / GLEIF derived), NOT
1320
+ * Sifa-aggregated stats.
1321
+ *
1322
+ * Deliberately ABSENT: claim status and Sifa-derived employee count. Company
1323
+ * page indexability is NEVER gated on either (product decision, 2026-07-16) --
1324
+ * a rich unclaimed page is indexable; a claimed but empty page is not.
1325
+ */
1326
+ interface CompanyFirmographics {
1327
+ /** External canonical name (Wikidata label / registry name). */
1328
+ canonicalName?: string | null;
1329
+ /** Free-text description / about. */
1330
+ description?: string | null;
1331
+ /** Industry / sector label. */
1332
+ industry?: string | null;
1333
+ /** URL of the company logo. */
1334
+ logoUrl?: string | null;
1335
+ /** External headcount figure (e.g. Wikidata P1128). NOT the Sifa employee count. */
1336
+ employeeCount?: number | null;
1337
+ /** Founding year or date. */
1338
+ founded?: string | number | null;
1339
+ }
1340
+ /**
1341
+ * Minimum number of the optional firmographic fields
1342
+ * ({@link CompanyFirmographics} minus `canonicalName`) that must be present for
1343
+ * a `/c/` company page to be indexable. Named + exported so the threshold is
1344
+ * tunable in one place.
1345
+ */
1346
+ declare const COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS = 2;
1347
+ /**
1348
+ * Is a `/c/` company page worth indexing?
1349
+ *
1350
+ * True iff it has real firmographic content: a non-empty `canonicalName` AND at
1351
+ * least {@link COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS} of the optional firmographic
1352
+ * fields ({@link CompanyFirmographics.description | description},
1353
+ * `industry`, `logoUrl`, `employeeCount`, `founded`) present.
1354
+ *
1355
+ * NEVER gated on claim status or Sifa employee count -- there is no such
1356
+ * parameter (product decision, 2026-07-16). A rich unclaimed stub is indexable;
1357
+ * a name-only page (claimed or not) is not.
1358
+ *
1359
+ * Pure: no network, no I/O. Third-party importable.
1360
+ */
1361
+ declare function isCompanyPageIndexable(company: CompanyFirmographics): boolean;
1362
+
1272
1363
  /**
1273
1364
  * Shared, single-source-of-truth model for which profile sections render, in
1274
1365
  * what order, their nav grouping, and which items a given viewer may see.
@@ -1477,4 +1568,4 @@ declare function groupInvolvementByHeading(items: ProfileInvolvement[]): Involve
1477
1568
  */
1478
1569
  declare const SIFA_SDK_VERSION: string;
1479
1570
 
1480
- export { ACTIVITY_TIERS, 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 ActivityItemForUrl, type ActivityTaxonomy, type ActivityTier, 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, COMPLETENESS_MAX_SCORE, CONTINENTS, COUNTRIES, type CardHealth, type CardHealthStrategy, type ContinentCode, type CsvRow, DIMENSIONS_MAX_SCORE, type DimensionKey, type DimensionMap, type DisambiguationFields, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, ENTITY_REF_ANCHORS, 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, 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, type RgbColor, SECTION_GROUPS, SECTION_LABELS, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, type SectionGroupId, type SectionId, type SkillCategory, type TierMeta, VERIFICATION_PROVIDERS, type VerificationProvider, type VerificationProviderId, type VerificationSource, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, type WorkplaceTypeOption, 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, 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, hoistPrimary, isAppCategory, isCompanyRequired, isKnownAppId, isKnownPlatform, isKnownVerificationProvider, isLinked, isPseudoEmployer, isSectionPopulated, isValidRgbColor, isVisibleActivityItem, lexiconDateExtractor, limitCombiningMarks, looksLikeDomain, meetsContrastAA, normalizeCompanyKey, normalizeLegalForm, normalizeOpenTo, normalizePlatformId, normalizePresentationMode, normalizePresentationRole, normalizeWorkplaceTypes, openToTokenToValue, openToValueToToken, parseIntendedAudiences, parseLocationString, parsePresentationDuration, pdsProviderFromApi, pickPrimaryPosition, presentationCsvRowToRecord, presentationDeliveryCsvRowToRecord, primaryVerification, profileToDimensionInputs, relativeLuminance, resolveCardHealth, resolveCardUrl, resolveVerifierProvider, rgbToString, sanitizeDisplayText, sanitizeHandleInput, searchResultDisambiguation, singleDateExtractor, sortByActiveDateRange, sortByDateDesc, sortCertifications, sortEducation, sortHonors, sortLanguages, sortLanguagesByProficiency, sortPositions, sortProjects, sortPublications, stripHtmlToText, summarizePresentationDeliveries, truncateGraphemes, visibleItems };
1571
+ export { ACTIVITY_TIERS, 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 ActivityItemForUrl, type ActivityTaxonomy, type ActivityTier, 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 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, type RgbColor, SECTION_GROUPS, SECTION_LABELS, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, type SectionGroupId, type SectionId, type SkillCategory, type TierMeta, VERIFICATION_PROVIDERS, type VerificationProvider, type VerificationProviderId, type VerificationSource, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, type WorkplaceTypeOption, 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, 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, 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, pdsProviderFromApi, pickPrimaryPosition, presentationCsvRowToRecord, presentationDeliveryCsvRowToRecord, primaryVerification, profileToDimensionInputs, qualifiesAsOrg, relativeLuminance, resolveCardHealth, resolveCardUrl, resolveVerifierProvider, rgbToString, sanitizeDisplayText, sanitizeHandleInput, searchResultDisambiguation, singleDateExtractor, sortByActiveDateRange, sortByDateDesc, sortCertifications, sortEducation, sortHonors, sortLanguages, sortLanguagesByProficiency, sortPositions, sortProjects, sortPublications, stripHtmlToText, summarizePresentationDeliveries, truncateGraphemes, visibleItems };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { P as ProfileSkill, b as ProfilePresentationDelivery, L as LocationValue, c as PdsProviderInfo, d as Profile, e as ProfilePosition, f as ProfileCertification, g as ProfileEducation, h as ProfileHonor, i as ProfileLanguage, j as ProfileProject, k as ProfilePublication, l as ProfileInvolvement } from './adult-content-DDGP8W1e.js';
2
- export { m as ADULT_CONTENT_LABELS, n as ActiveApp, a as ActivityLabel, A as AdultContentLabel, C as CoSpeaker, o as Endorsement, p as EndorsementData, E as ExternalAccount, q as ExternalAccountKeytraceClaim, F as FeedItem, r as LanguageProficiency, s as PresentationLinkView, t as ProfileCourse, u as ProfileIndustry, v as ProfileInvolvementLink, w as ProfileLocation, x as ProfileOverrideSource, y as ProfilePresentation, z as ProfileVolunteering, B as PublicationContributor, D as SkillRef, S as SkillSuggestion, T as TrustStat, V as VerifiedAccount, G as hasAdultContent } from './adult-content-DDGP8W1e.js';
3
- import { PresentationDuration, ProfilePresentationDeliveryRecord, ProfilePresentationRecord } from './schemas/index.js';
4
- export { ArtifactLink, ArtifactLinkSchema, EndorsementConfirmationRecord, EndorsementConfirmationRecordSchema, EndorsementRecord, EndorsementRecordSchema, GraphFollowRecord, GraphFollowRecordSchema, 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';
1
+ import { P as ProfileSkill, b as ProfilePresentationDelivery, L as LocationValue, c as PdsProviderInfo, d as Profile, e as ProfilePosition, f as ProfileCertification, g as ProfileEducation, h as ProfileHonor, i as ProfileLanguage, j as ProfileProject, k as ProfilePublication, l as ProfileInvolvement } from './adult-content-n2uy3rT3.js';
2
+ export { m as ADULT_CONTENT_LABELS, n as ActiveApp, a as ActivityLabel, A as AdultContentLabel, C as CoSpeaker, o as Endorsement, p as EndorsementData, E as ExternalAccount, q as ExternalAccountKeytraceClaim, F as FeedItem, r as LanguageProficiency, O as OrgFloorVerdict, s as OrgProfileView, t as PresentationLinkView, u as ProfileCourse, v as ProfileIndustry, w as ProfileInvolvementLink, x as ProfileLocation, y as ProfileOverrideSource, z as ProfilePresentation, B as ProfileVolunteering, D as PublicationContributor, G as SkillRef, S as SkillSuggestion, T as TrustStat, V as VerifiedAccount, H as hasAdultContent } from './adult-content-n2uy3rT3.js';
3
+ import { PresentationDuration, ProfilePresentationDeliveryRecord, ProfilePresentationRecord, OrgProfileRecord } from './schemas/index.js';
4
+ export { ArtifactLink, ArtifactLinkSchema, 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 { E as EntitySearchResult } from './feed-D2ZV8Eaj.js';
6
6
  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-D2ZV8Eaj.js';
7
7
  import 'zod';
@@ -1269,6 +1269,97 @@ declare function classifyEntityRef(entityRef: string | null | undefined): Entity
1269
1269
  /** Whether a position carries a durable link of any anchor quality. */
1270
1270
  declare function isLinked(entityRef: string | null | undefined): boolean;
1271
1271
 
1272
+ /**
1273
+ * Approximate "is this handle a custom registrable domain?" check for the org
1274
+ * rendering floor.
1275
+ *
1276
+ * IMPORTANT -- this is deliberately NARROW, not authoritative. The SDK has no
1277
+ * public-suffix-list (PSL) dependency, so it cannot compute the true eTLD+1
1278
+ * apex: it cannot tell `acme.co.uk` (an apex) from `careers.acme.co.uk` (a
1279
+ * subdomain that routes to the subsidiary case), nor reject every PSL-private
1280
+ * host. It performs only the rejects it CAN make correctly with no PSL:
1281
+ * - DIDs (never a domain handle),
1282
+ * - bare / no-dot handles and non-TLD-shaped hosts (via `looksLikeDomain`),
1283
+ * - known shared PDS / handle hosts (`*.bsky.social` and friends).
1284
+ *
1285
+ * The AUTHORITATIVE apex + eTLD+1 + confusable check is server-side in
1286
+ * sifa-api's `bind-domain-guard` (`isBindableHandleDomain`, backed by `tldts`);
1287
+ * `computeOrgFloorVerdict` there is the source of truth and is surfaced to
1288
+ * clients on the profile resolve (read it via `useOrgProfile`). Recompute here
1289
+ * only when a client-side floor gate is needed without a round-trip.
1290
+ *
1291
+ * TODO(#160): promote a shared PSL-backed eTLD+1 helper into the SDK (or vendor
1292
+ * a compact public-suffix table) and tighten this to a true apex check.
1293
+ *
1294
+ * Pure: no network, no I/O.
1295
+ */
1296
+ declare function isRegistrableDomainHandle(handle: string): boolean;
1297
+ /**
1298
+ * The org rendering floor (#160) -- the "any AppView can evaluate" promise made
1299
+ * executable. An account renders as an organization when BOTH:
1300
+ * 1. It has an `id.sifa.org.profile` record (record present), AND
1301
+ * 2. Its handle is a custom registrable domain
1302
+ * ({@link isRegistrableDomainHandle}).
1303
+ *
1304
+ * Only the PRESENCE of the record matters here (declaration marks the account
1305
+ * as presenting-as-org; trust is layered separately). The handle check is LIVE:
1306
+ * evaluate it on every render so a lost domain drops org rendering
1307
+ * automatically.
1308
+ *
1309
+ * Pure: no network, no I/O. Pass the fetched record (or null) and the current
1310
+ * handle.
1311
+ */
1312
+ declare function qualifiesAsOrg(record: OrgProfileRecord | null | undefined, handle: string): boolean;
1313
+
1314
+ /**
1315
+ * Firmographic subset of a company profile that decides whether its `/c/` page
1316
+ * is worth indexing. A minimal STRUCTURAL type on purpose -- it does not import
1317
+ * sifa-web's `CompanyProfile`, so this predicate stays importable by any
1318
+ * consumer (sifa-web, sifa-app, third parties). Fields mirror the external
1319
+ * firmographics that lead a `/c/` page (Wikidata / ROR / GLEIF derived), NOT
1320
+ * Sifa-aggregated stats.
1321
+ *
1322
+ * Deliberately ABSENT: claim status and Sifa-derived employee count. Company
1323
+ * page indexability is NEVER gated on either (product decision, 2026-07-16) --
1324
+ * a rich unclaimed page is indexable; a claimed but empty page is not.
1325
+ */
1326
+ interface CompanyFirmographics {
1327
+ /** External canonical name (Wikidata label / registry name). */
1328
+ canonicalName?: string | null;
1329
+ /** Free-text description / about. */
1330
+ description?: string | null;
1331
+ /** Industry / sector label. */
1332
+ industry?: string | null;
1333
+ /** URL of the company logo. */
1334
+ logoUrl?: string | null;
1335
+ /** External headcount figure (e.g. Wikidata P1128). NOT the Sifa employee count. */
1336
+ employeeCount?: number | null;
1337
+ /** Founding year or date. */
1338
+ founded?: string | number | null;
1339
+ }
1340
+ /**
1341
+ * Minimum number of the optional firmographic fields
1342
+ * ({@link CompanyFirmographics} minus `canonicalName`) that must be present for
1343
+ * a `/c/` company page to be indexable. Named + exported so the threshold is
1344
+ * tunable in one place.
1345
+ */
1346
+ declare const COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS = 2;
1347
+ /**
1348
+ * Is a `/c/` company page worth indexing?
1349
+ *
1350
+ * True iff it has real firmographic content: a non-empty `canonicalName` AND at
1351
+ * least {@link COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS} of the optional firmographic
1352
+ * fields ({@link CompanyFirmographics.description | description},
1353
+ * `industry`, `logoUrl`, `employeeCount`, `founded`) present.
1354
+ *
1355
+ * NEVER gated on claim status or Sifa employee count -- there is no such
1356
+ * parameter (product decision, 2026-07-16). A rich unclaimed stub is indexable;
1357
+ * a name-only page (claimed or not) is not.
1358
+ *
1359
+ * Pure: no network, no I/O. Third-party importable.
1360
+ */
1361
+ declare function isCompanyPageIndexable(company: CompanyFirmographics): boolean;
1362
+
1272
1363
  /**
1273
1364
  * Shared, single-source-of-truth model for which profile sections render, in
1274
1365
  * what order, their nav grouping, and which items a given viewer may see.
@@ -1477,4 +1568,4 @@ declare function groupInvolvementByHeading(items: ProfileInvolvement[]): Involve
1477
1568
  */
1478
1569
  declare const SIFA_SDK_VERSION: string;
1479
1570
 
1480
- export { ACTIVITY_TIERS, 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 ActivityItemForUrl, type ActivityTaxonomy, type ActivityTier, 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, COMPLETENESS_MAX_SCORE, CONTINENTS, COUNTRIES, type CardHealth, type CardHealthStrategy, type ContinentCode, type CsvRow, DIMENSIONS_MAX_SCORE, type DimensionKey, type DimensionMap, type DisambiguationFields, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, ENTITY_REF_ANCHORS, 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, 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, type RgbColor, SECTION_GROUPS, SECTION_LABELS, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, type SectionGroupId, type SectionId, type SkillCategory, type TierMeta, VERIFICATION_PROVIDERS, type VerificationProvider, type VerificationProviderId, type VerificationSource, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, type WorkplaceTypeOption, 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, 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, hoistPrimary, isAppCategory, isCompanyRequired, isKnownAppId, isKnownPlatform, isKnownVerificationProvider, isLinked, isPseudoEmployer, isSectionPopulated, isValidRgbColor, isVisibleActivityItem, lexiconDateExtractor, limitCombiningMarks, looksLikeDomain, meetsContrastAA, normalizeCompanyKey, normalizeLegalForm, normalizeOpenTo, normalizePlatformId, normalizePresentationMode, normalizePresentationRole, normalizeWorkplaceTypes, openToTokenToValue, openToValueToToken, parseIntendedAudiences, parseLocationString, parsePresentationDuration, pdsProviderFromApi, pickPrimaryPosition, presentationCsvRowToRecord, presentationDeliveryCsvRowToRecord, primaryVerification, profileToDimensionInputs, relativeLuminance, resolveCardHealth, resolveCardUrl, resolveVerifierProvider, rgbToString, sanitizeDisplayText, sanitizeHandleInput, searchResultDisambiguation, singleDateExtractor, sortByActiveDateRange, sortByDateDesc, sortCertifications, sortEducation, sortHonors, sortLanguages, sortLanguagesByProficiency, sortPositions, sortProjects, sortPublications, stripHtmlToText, summarizePresentationDeliveries, truncateGraphemes, visibleItems };
1571
+ export { ACTIVITY_TIERS, 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 ActivityItemForUrl, type ActivityTaxonomy, type ActivityTier, 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 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, type RgbColor, SECTION_GROUPS, SECTION_LABELS, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, type SectionGroupId, type SectionId, type SkillCategory, type TierMeta, VERIFICATION_PROVIDERS, type VerificationProvider, type VerificationProviderId, type VerificationSource, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, type WorkplaceTypeOption, 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, 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, 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, pdsProviderFromApi, pickPrimaryPosition, presentationCsvRowToRecord, presentationDeliveryCsvRowToRecord, primaryVerification, profileToDimensionInputs, qualifiesAsOrg, relativeLuminance, resolveCardHealth, resolveCardUrl, resolveVerifierProvider, rgbToString, sanitizeDisplayText, sanitizeHandleInput, searchResultDisambiguation, singleDateExtractor, sortByActiveDateRange, sortByDateDesc, sortCertifications, sortEducation, sortHonors, sortLanguages, sortLanguagesByProficiency, sortPositions, sortProjects, sortPublications, stripHtmlToText, summarizePresentationDeliveries, truncateGraphemes, visibleItems };
package/dist/index.js CHANGED
@@ -2786,6 +2786,47 @@ function isLinked(entityRef) {
2786
2786
  return classifyEntityRef(entityRef) !== "unlinked";
2787
2787
  }
2788
2788
 
2789
+ // src/logic/org-floor.ts
2790
+ var KNOWN_HANDLE_HOST_SUFFIXES = [
2791
+ ".bsky.social",
2792
+ ".blacksky.app",
2793
+ ".eurosky.social",
2794
+ ".northsky.social"
2795
+ ];
2796
+ function isRegistrableDomainHandle(handle) {
2797
+ const h = handle.trim().toLowerCase();
2798
+ if (!h) return false;
2799
+ if (h.startsWith("did:")) return false;
2800
+ if (!looksLikeDomain(h)) return false;
2801
+ for (const suffix of KNOWN_HANDLE_HOST_SUFFIXES) {
2802
+ if (h.endsWith(suffix)) return false;
2803
+ }
2804
+ return true;
2805
+ }
2806
+ function qualifiesAsOrg(record, handle) {
2807
+ if (record === null || record === void 0) return false;
2808
+ return isRegistrableDomainHandle(handle);
2809
+ }
2810
+
2811
+ // src/logic/company-page-indexable.ts
2812
+ var COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS = 2;
2813
+ function isNonEmptyString2(value) {
2814
+ return typeof value === "string" && value.trim().length > 0;
2815
+ }
2816
+ function isPresentNumber(value) {
2817
+ return typeof value === "number" && Number.isFinite(value);
2818
+ }
2819
+ function isCompanyPageIndexable(company) {
2820
+ if (!isNonEmptyString2(company.canonicalName)) return false;
2821
+ let present = 0;
2822
+ if (isNonEmptyString2(company.description)) present += 1;
2823
+ if (isNonEmptyString2(company.industry)) present += 1;
2824
+ if (isNonEmptyString2(company.logoUrl)) present += 1;
2825
+ if (isPresentNumber(company.employeeCount)) present += 1;
2826
+ if (isPresentNumber(company.founded) || isNonEmptyString2(company.founded)) present += 1;
2827
+ return present >= COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS;
2828
+ }
2829
+
2789
2830
  // src/profile/section-model.ts
2790
2831
  var SECTION_GROUPS = [
2791
2832
  { id: "overview", labelKey: "groupOverview" },
@@ -3059,6 +3100,31 @@ var EndorsementRecordSchema = z.object({
3059
3100
  comment: z.string().refine(maxGraphemes(300)).max(3e3).optional(),
3060
3101
  createdAt: datetimeSchema
3061
3102
  });
3103
+ var OrgProfileRecordSchema = z.object({
3104
+ name: z.string().min(1).refine(maxGraphemes(200)).max(2e3),
3105
+ description: z.string().refine(maxGraphemes(5e3)).max(5e4).optional(),
3106
+ /** Blob ref for the org logo (`image/png` | `image/jpeg`). Not deeply validated client-side. */
3107
+ logo: z.unknown().optional(),
3108
+ website: uriSchema.optional(),
3109
+ entityRefs: z.array(uriSchema).max(20).optional(),
3110
+ /** Contact email. NOT rendered publicly; validated as email at the app layer. */
3111
+ contact: z.string().optional(),
3112
+ labels: selfLabelsSchema.optional(),
3113
+ createdAt: datetimeSchema
3114
+ });
3115
+ var OrgEmploymentAttestationRecordSchema = z.object({
3116
+ subject: didSchema,
3117
+ position: strongRefSchema,
3118
+ status: z.enum(["current", "past"]),
3119
+ title: z.string().min(1).refine(maxGraphemes(256)).max(2560),
3120
+ startedAt: partialDateSchema,
3121
+ entityRef: uriSchema.optional(),
3122
+ companyDid: didSchema.optional(),
3123
+ endedAt: partialDateSchema.optional(),
3124
+ comment: z.string().refine(maxGraphemes(300)).max(3e3).optional(),
3125
+ labels: selfLabelsSchema.optional(),
3126
+ createdAt: datetimeSchema
3127
+ });
3062
3128
  var GraphFollowRecordSchema = z.object({
3063
3129
  subject: didSchema,
3064
3130
  createdAt: datetimeSchema,
@@ -3364,8 +3430,8 @@ var ProfileVolunteeringRecordSchema = z.object({
3364
3430
  });
3365
3431
 
3366
3432
  // src/index.ts
3367
- var SIFA_SDK_VERSION = "0.12.3";
3433
+ var SIFA_SDK_VERSION = "0.12.4";
3368
3434
 
3369
- export { ACTIVITY_TIERS, 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, CALENDAR_EVENT_MODE_LABELS, CALENDAR_EVENT_STATUS_LABELS, CATEGORY_LABELS, CATEGORY_ORDER, COLLECTION_TO_APP, COMPANY_OPTIONAL_EMPLOYMENT_TYPES, 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, 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, SECTION_GROUPS, SECTION_LABELS, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, SifaFeedItemSchema, VERIFICATION_PROVIDERS, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, atUriSchema, 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, 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, hasAdultContent, hoistPrimary, isAppCategory, isCompanyRequired, isKnownAppId, isKnownPlatform, isKnownVerificationProvider, isLinked, isPseudoEmployer, isSectionPopulated, isValidRgbColor, isVisibleActivityItem, languageTagSchema, lexiconDateExtractor, limitCombiningMarks, looksLikeDomain, makeGraphFollowRecordSchema, maxGraphemes, meetsContrastAA, normalizeCompanyKey, normalizeLegalForm, normalizeOpenTo, normalizePlatformId, normalizePresentationMode, normalizePresentationRole, normalizeWorkplaceTypes, openToTokenToValue, openToValueToToken, parseIntendedAudiences, parseLocationString, parsePresentationDuration, partialDateSchema, pdsProviderFromApi, pickPrimaryPosition, presentationCsvRowToRecord, presentationDeliveryCsvRowToRecord, primaryVerification, profileToDimensionInputs, relativeLuminance, resolveCardHealth, resolveCardUrl, resolveVerifierProvider, rgbToString, sanitizeDisplayText, sanitizeHandleInput, searchResultDisambiguation, selfLabelsSchema, singleDateExtractor, sortByActiveDateRange, sortByDateDesc, sortCertifications, sortEducation, sortHonors, sortLanguages, sortLanguagesByProficiency, sortPositions, sortProjects, sortPublications, stripHtmlToText, strongRefSchema, summarizePresentationDeliveries, truncateGraphemes, uriSchema, visibleItems };
3435
+ export { ACTIVITY_TIERS, 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, 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, SECTION_GROUPS, SECTION_LABELS, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, SifaFeedItemSchema, VERIFICATION_PROVIDERS, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, atUriSchema, 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, 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, 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, partialDateSchema, pdsProviderFromApi, pickPrimaryPosition, presentationCsvRowToRecord, presentationDeliveryCsvRowToRecord, primaryVerification, profileToDimensionInputs, qualifiesAsOrg, relativeLuminance, resolveCardHealth, resolveCardUrl, resolveVerifierProvider, rgbToString, sanitizeDisplayText, sanitizeHandleInput, searchResultDisambiguation, selfLabelsSchema, singleDateExtractor, sortByActiveDateRange, sortByDateDesc, sortCertifications, sortEducation, sortHonors, sortLanguages, sortLanguagesByProficiency, sortPositions, sortProjects, sortPublications, stripHtmlToText, strongRefSchema, summarizePresentationDeliveries, truncateGraphemes, uriSchema, visibleItems };
3370
3436
  //# sourceMappingURL=index.js.map
3371
3437
  //# sourceMappingURL=index.js.map