@singi-labs/sifa-sdk 0.11.4 → 0.11.6

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.
package/dist/index.d.cts CHANGED
@@ -1,6 +1,7 @@
1
- import { P as ProfileSkill, L as LocationValue, b as PdsProviderInfo, c as Profile } from './adult-content-Bwr392Yu.cjs';
2
- export { d as ADULT_CONTENT_LABELS, e as ActiveApp, a as ActivityLabel, A as AdultContentLabel, f as Endorsement, g as EndorsementData, E as ExternalAccount, h as ExternalAccountKeytraceClaim, F as FeedItem, i as LanguageProficiency, j as PresentationLinkView, k as ProfileCertification, l as ProfileCourse, m as ProfileEducation, n as ProfileHonor, o as ProfileIndustry, p as ProfileLanguage, q as ProfileLocation, r as ProfileOverrideSource, s as ProfilePosition, t as ProfilePresentation, u as ProfilePresentationDelivery, v as ProfileProject, w as ProfilePublication, x as ProfileVolunteering, y as PublicationContributor, z as SkillRef, S as SkillSuggestion, T as TrustStat, V as VerifiedAccount, B as hasAdultContent } from './adult-content-Bwr392Yu.cjs';
3
- export { EndorsementConfirmationRecord, EndorsementConfirmationRecordSchema, EndorsementRecord, EndorsementRecordSchema, GraphFollowRecord, GraphFollowRecordSchema, PresentationDuration, PresentationDurationSchema, PresentationLink, PresentationLinkSchema, ProfileCertificationRecord, ProfileCertificationRecordSchema, ProfileCourseRecord, ProfileCourseRecordSchema, ProfileEducationRecord, ProfileEducationRecordSchema, ProfileExternalAccountRecord, ProfileExternalAccountRecordSchema, ProfileHonorRecord, ProfileHonorRecordSchema, ProfileLanguageRecord, ProfileLanguageRecordSchema, ProfilePositionRecord, ProfilePositionRecordSchema, ProfilePresentationDeliveryRecord, ProfilePresentationDeliveryRecordSchema, ProfilePresentationRecord, ProfilePresentationRecordSchema, ProfileProjectRecord, ProfileProjectRecordSchema, ProfilePublicationRecord, ProfilePublicationRecordSchema, ProfileSelfRecord, ProfileSelfRecordSchema, ProfileSkillRecord, ProfileSkillRecordSchema, ProfileVolunteeringRecord, ProfileVolunteeringRecordSchema, PublicationAuthor, PublicationAuthorSchema, atUriSchema, cidSchema, datetimeSchema, didSchema, externalRecordRefSchema, languageTagSchema, makeGraphFollowRecordSchema, maxGraphemes, selfLabelsSchema, strongRefSchema, uriSchema } from './schemas/index.cjs';
1
+ import { P as ProfileSkill, b as ProfilePresentationDelivery, L as LocationValue, c as PdsProviderInfo, d as Profile } from './adult-content-B5hAdi76.cjs';
2
+ export { e as ADULT_CONTENT_LABELS, f as ActiveApp, a as ActivityLabel, A as AdultContentLabel, g as Endorsement, h as EndorsementData, E as ExternalAccount, i as ExternalAccountKeytraceClaim, F as FeedItem, j as LanguageProficiency, k as PresentationLinkView, l as ProfileCertification, m as ProfileCourse, n as ProfileEducation, o as ProfileHonor, p as ProfileIndustry, q as ProfileLanguage, r as ProfileLocation, s as ProfileOverrideSource, t as ProfilePosition, u as ProfilePresentation, v as ProfileProject, w as ProfilePublication, x as ProfileVolunteering, y as PublicationContributor, z as SkillRef, S as SkillSuggestion, T as TrustStat, V as VerifiedAccount, B as hasAdultContent } from './adult-content-B5hAdi76.cjs';
3
+ import { PresentationDuration, ProfilePresentationDeliveryRecord, ProfilePresentationRecord } from './schemas/index.cjs';
4
+ export { EndorsementConfirmationRecord, EndorsementConfirmationRecordSchema, EndorsementRecord, EndorsementRecordSchema, GraphFollowRecord, GraphFollowRecordSchema, PresentationDurationSchema, PresentationLink, PresentationLinkSchema, ProfileCertificationRecord, ProfileCertificationRecordSchema, ProfileCourseRecord, ProfileCourseRecordSchema, ProfileEducationRecord, ProfileEducationRecordSchema, ProfileExternalAccountRecord, ProfileExternalAccountRecordSchema, ProfileHonorRecord, ProfileHonorRecordSchema, 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, selfLabelsSchema, strongRefSchema, uriSchema } from './schemas/index.cjs';
4
5
  export { A as AtmosphereFeedItem, d as AtmosphereFeedItemSchema, e as FEATURE_FLAGS, b as FeatureAllowlistEntry, f as FeatureAllowlistEntrySchema, c as FeatureFlag, g as FeedActor, h as FeedActorSchema, i as FeedCursor, j as FollowFeedItem, k as FollowFeedItemSchema, F as FollowFeedPage, l as FollowFeedPageSchema, a as FollowProfileItem, m as FollowProfilePage, n as FollowProfilePageSchema, o as FollowProfileSchema, S as SifaFeedItem, p as SifaFeedItemSchema, q as decodeFeedCursor, r as encodeFeedCursor } from './feed-DHTy7fUN.cjs';
5
6
  import 'zod';
6
7
 
@@ -449,6 +450,40 @@ declare function getCalendarEventStatusLabel(value: string | undefined | null):
449
450
  */
450
451
  declare function formatRelativeTime(dateString: string): string;
451
452
 
453
+ /**
454
+ * Format a presentation duration for display. A fixed length renders as
455
+ * "30 min"; a range renders as "20-30 min". Returns undefined when there is no
456
+ * duration. A range whose bounds are equal, or whose max is missing, renders as
457
+ * a single value.
458
+ */
459
+ declare function formatPresentationDuration(duration: PresentationDuration | undefined | null): string | undefined;
460
+
461
+ /** A compact roll-up of a presentation's deliveries for the collapsed view. */
462
+ interface PresentationDeliverySummary {
463
+ /** Times the talk was actually delivered (cancelled occasions excluded). */
464
+ count: number;
465
+ /** Most recent year among counted deliveries that carry a date. */
466
+ recentYear?: number;
467
+ /** How many counted deliveries were keynotes. */
468
+ keynoteCount: number;
469
+ /** Up to `venueLimit` distinct event names, most-recent first. */
470
+ venues: string[];
471
+ /** Distinct counted venues beyond the ones listed in `venues`. */
472
+ moreVenues: number;
473
+ }
474
+ /**
475
+ * Summarize a talk's delivery history into the signals the profile shows in the
476
+ * collapsed view: how many times it was given, the most recent year, how many
477
+ * were keynotes, and a small sample of the most recent distinct venues.
478
+ *
479
+ * Cancelled occasions are excluded from every figure: a talk that was booked
480
+ * then cancelled was not actually delivered, and counting it would inflate the
481
+ * "given Nx" signal.
482
+ */
483
+ declare function summarizePresentationDeliveries(deliveries: ProfilePresentationDelivery[] | undefined, options?: {
484
+ venueLimit?: number;
485
+ }): PresentationDeliverySummary;
486
+
452
487
  /**
453
488
  * Sort profile section items from newest to oldest.
454
489
  *
@@ -604,6 +639,51 @@ declare function contrastRatio(color1: RgbColor, color2: RgbColor): number;
604
639
  */
605
640
  declare function meetsContrastAA(foreground: RgbColor, background: RgbColor): boolean;
606
641
 
642
+ /**
643
+ * CSV parsers for the Talks & sessions import (two templates joined by a
644
+ * presentation_key). The value parsers and row mappers are reusable and pure;
645
+ * the actual PDS writing (create a presentation, then write its deliveries with
646
+ * a presentationRef to it) is orchestrated by the consumer, which has the
647
+ * created record's AT-URI.
648
+ */
649
+ /** A CSV row as a header-keyed map. Missing cells may be undefined or empty. */
650
+ type CsvRow = Record<string, string | undefined>;
651
+ /**
652
+ * Parse a free-text duration into minutes: a single value ("30 min", "30
653
+ * minutes", "30") or a range ("20-30 min", "20 to 30 minutes", "20-30").
654
+ * Returns undefined when no usable number is present. A second number is used
655
+ * as the upper bound only when it is greater than or equal to the first.
656
+ */
657
+ declare function parsePresentationDuration(input: string | undefined): PresentationDuration | undefined;
658
+ /** Build a duration from explicit min/max minute columns. */
659
+ declare function durationFromMinutes(minRaw: string | undefined, maxRaw: string | undefined): PresentationDuration | undefined;
660
+ /** Split a delimited list into trimmed, non-empty values. Default delimiter ";". */
661
+ declare function parseIntendedAudiences(input: string | undefined, delimiter?: string): string[];
662
+ /**
663
+ * Strip HTML to plain text and decode the common entities, for descriptions
664
+ * exported as HTML (e.g. Webflow). The AppView re-sanitizes on write; this is
665
+ * only to produce readable text.
666
+ */
667
+ declare function stripHtmlToText(input: string | undefined): string;
668
+ /** Map a friendly role value to its token; passes through an existing token or an unknown value. */
669
+ declare function normalizePresentationRole(value: string | undefined): string | undefined;
670
+ /** Map a friendly mode value to the community calendar token; drops an unknown value. */
671
+ declare function normalizePresentationMode(value: string | undefined): string | undefined;
672
+ interface ParsedPresentation {
673
+ /** presentation_key used to link delivery rows to this presentation. */
674
+ key?: string;
675
+ record: Omit<ProfilePresentationRecord, 'createdAt'>;
676
+ }
677
+ /** Map a row of the presentations template to a presentation record (minus createdAt). */
678
+ declare function presentationCsvRowToRecord(row: CsvRow): ParsedPresentation;
679
+ interface ParsedDelivery {
680
+ /** presentation_key to resolve into a presentationRef once the presentation exists. */
681
+ presentationKey?: string;
682
+ record: Omit<ProfilePresentationDeliveryRecord, 'createdAt' | 'presentationRef'>;
683
+ }
684
+ /** Map a row of the deliveries template to a delivery record (minus createdAt and presentationRef). */
685
+ declare function presentationDeliveryCsvRowToRecord(row: CsvRow): ParsedDelivery;
686
+
607
687
  /**
608
688
  * URL patterns per app, mirroring the sifa-web registry.
609
689
  *
@@ -888,4 +968,4 @@ declare function pickPrimaryPosition<T extends PrimaryPositionCandidate>(positio
888
968
  */
889
969
  declare const SIFA_SDK_VERSION: string;
890
970
 
891
- export { ACTIVITY_TIERS, ACTIVITY_VISIBILITY_RULES, APP_CATEGORIES, APP_CATEGORY_IDS, APP_CATEGORY_MAP, APP_URL_PATTERNS, type ActivityItemForUrl, type ActivityTaxonomy, type ActivityTier, type AppCategoryId, type AppUrlPatterns, 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 ContinentCode, DIMENSIONS_MAX_SCORE, type DimensionKey, type DimensionMap, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, type EmploymentTypeGroup, type EmploymentTypeOption, INDUSTRY_OPTIONS, type IndustryOption, 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 PdsProvider, PdsProviderInfo, type PlatformId, type PresentationLinkTypeOption, type PresentationRoleOption, type PrimaryPositionCandidate, Profile, type ProfileCompletion, type ProfileDimensionInputs, ProfileSkill, type Publisher, type RgbColor, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, type SkillCategory, type TierMeta, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, type WorkplaceTypeOption, categoryForApp, certDateExtractor, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countryCodeToFlag, dateRangeExtractor, dedupeSkills, detectPdsProvider, dimensionsFromInputs, findIndustry, formatDistanceToNow, formatLocation, formatRelativeTime, getActivityTaxonomyVersion, getActivityTier, getAppCategoryIcon, getAppIdForCollection, getCalendarEventModeLabel, getCalendarEventStatusLabel, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getPresentationLinkTypeLabel, getPresentationRoleLabel, getPublisherByHost, getPublisherById, getPublisherFromSiteUrl, getTierMeta, getWorkplaceTypeLabel, groupSkillsByCategory, isAppCategory, isCompanyRequired, isKnownAppId, isKnownPlatform, isValidRgbColor, isVisibleActivityItem, lexiconDateExtractor, limitCombiningMarks, meetsContrastAA, normalizeOpenTo, normalizePlatformId, normalizeWorkplaceTypes, openToTokenToValue, openToValueToToken, parseLocationString, pdsProviderFromApi, pickPrimaryPosition, profileToDimensionInputs, relativeLuminance, resolveCardUrl, rgbToString, sanitizeDisplayText, sanitizeHandleInput, singleDateExtractor, sortByDateDesc, truncateGraphemes };
971
+ export { ACTIVITY_TIERS, ACTIVITY_VISIBILITY_RULES, APP_CATEGORIES, APP_CATEGORY_IDS, APP_CATEGORY_MAP, APP_URL_PATTERNS, type ActivityItemForUrl, type ActivityTaxonomy, type ActivityTier, type AppCategoryId, type AppUrlPatterns, 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 ContinentCode, type CsvRow, DIMENSIONS_MAX_SCORE, type DimensionKey, type DimensionMap, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, type EmploymentTypeGroup, type EmploymentTypeOption, INDUSTRY_OPTIONS, type IndustryOption, 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, type ProfileCompletion, type ProfileDimensionInputs, ProfilePresentationDelivery, ProfilePresentationDeliveryRecord, ProfilePresentationRecord, ProfileSkill, type Publisher, type RgbColor, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, type SkillCategory, type TierMeta, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, type WorkplaceTypeOption, categoryForApp, certDateExtractor, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countryCodeToFlag, dateRangeExtractor, dedupeSkills, detectPdsProvider, dimensionsFromInputs, durationFromMinutes, findIndustry, formatDistanceToNow, formatLocation, formatPresentationDuration, formatRelativeTime, getActivityTaxonomyVersion, getActivityTier, getAppCategoryIcon, getAppIdForCollection, getCalendarEventModeLabel, getCalendarEventStatusLabel, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getPresentationLinkTypeLabel, getPresentationRoleLabel, getPublisherByHost, getPublisherById, getPublisherFromSiteUrl, getTierMeta, getWorkplaceTypeLabel, groupSkillsByCategory, isAppCategory, isCompanyRequired, isKnownAppId, isKnownPlatform, isValidRgbColor, isVisibleActivityItem, lexiconDateExtractor, limitCombiningMarks, meetsContrastAA, normalizeOpenTo, normalizePlatformId, normalizePresentationMode, normalizePresentationRole, normalizeWorkplaceTypes, openToTokenToValue, openToValueToToken, parseIntendedAudiences, parseLocationString, parsePresentationDuration, pdsProviderFromApi, pickPrimaryPosition, presentationCsvRowToRecord, presentationDeliveryCsvRowToRecord, profileToDimensionInputs, relativeLuminance, resolveCardUrl, rgbToString, sanitizeDisplayText, sanitizeHandleInput, singleDateExtractor, sortByDateDesc, stripHtmlToText, summarizePresentationDeliveries, truncateGraphemes };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- import { P as ProfileSkill, L as LocationValue, b as PdsProviderInfo, c as Profile } from './adult-content-Bwr392Yu.js';
2
- export { d as ADULT_CONTENT_LABELS, e as ActiveApp, a as ActivityLabel, A as AdultContentLabel, f as Endorsement, g as EndorsementData, E as ExternalAccount, h as ExternalAccountKeytraceClaim, F as FeedItem, i as LanguageProficiency, j as PresentationLinkView, k as ProfileCertification, l as ProfileCourse, m as ProfileEducation, n as ProfileHonor, o as ProfileIndustry, p as ProfileLanguage, q as ProfileLocation, r as ProfileOverrideSource, s as ProfilePosition, t as ProfilePresentation, u as ProfilePresentationDelivery, v as ProfileProject, w as ProfilePublication, x as ProfileVolunteering, y as PublicationContributor, z as SkillRef, S as SkillSuggestion, T as TrustStat, V as VerifiedAccount, B as hasAdultContent } from './adult-content-Bwr392Yu.js';
3
- export { EndorsementConfirmationRecord, EndorsementConfirmationRecordSchema, EndorsementRecord, EndorsementRecordSchema, GraphFollowRecord, GraphFollowRecordSchema, PresentationDuration, PresentationDurationSchema, PresentationLink, PresentationLinkSchema, ProfileCertificationRecord, ProfileCertificationRecordSchema, ProfileCourseRecord, ProfileCourseRecordSchema, ProfileEducationRecord, ProfileEducationRecordSchema, ProfileExternalAccountRecord, ProfileExternalAccountRecordSchema, ProfileHonorRecord, ProfileHonorRecordSchema, ProfileLanguageRecord, ProfileLanguageRecordSchema, ProfilePositionRecord, ProfilePositionRecordSchema, ProfilePresentationDeliveryRecord, ProfilePresentationDeliveryRecordSchema, ProfilePresentationRecord, ProfilePresentationRecordSchema, ProfileProjectRecord, ProfileProjectRecordSchema, ProfilePublicationRecord, ProfilePublicationRecordSchema, ProfileSelfRecord, ProfileSelfRecordSchema, ProfileSkillRecord, ProfileSkillRecordSchema, ProfileVolunteeringRecord, ProfileVolunteeringRecordSchema, PublicationAuthor, PublicationAuthorSchema, atUriSchema, cidSchema, datetimeSchema, didSchema, externalRecordRefSchema, languageTagSchema, makeGraphFollowRecordSchema, maxGraphemes, selfLabelsSchema, strongRefSchema, uriSchema } from './schemas/index.js';
1
+ import { P as ProfileSkill, b as ProfilePresentationDelivery, L as LocationValue, c as PdsProviderInfo, d as Profile } from './adult-content-B5hAdi76.js';
2
+ export { e as ADULT_CONTENT_LABELS, f as ActiveApp, a as ActivityLabel, A as AdultContentLabel, g as Endorsement, h as EndorsementData, E as ExternalAccount, i as ExternalAccountKeytraceClaim, F as FeedItem, j as LanguageProficiency, k as PresentationLinkView, l as ProfileCertification, m as ProfileCourse, n as ProfileEducation, o as ProfileHonor, p as ProfileIndustry, q as ProfileLanguage, r as ProfileLocation, s as ProfileOverrideSource, t as ProfilePosition, u as ProfilePresentation, v as ProfileProject, w as ProfilePublication, x as ProfileVolunteering, y as PublicationContributor, z as SkillRef, S as SkillSuggestion, T as TrustStat, V as VerifiedAccount, B as hasAdultContent } from './adult-content-B5hAdi76.js';
3
+ import { PresentationDuration, ProfilePresentationDeliveryRecord, ProfilePresentationRecord } from './schemas/index.js';
4
+ export { EndorsementConfirmationRecord, EndorsementConfirmationRecordSchema, EndorsementRecord, EndorsementRecordSchema, GraphFollowRecord, GraphFollowRecordSchema, PresentationDurationSchema, PresentationLink, PresentationLinkSchema, ProfileCertificationRecord, ProfileCertificationRecordSchema, ProfileCourseRecord, ProfileCourseRecordSchema, ProfileEducationRecord, ProfileEducationRecordSchema, ProfileExternalAccountRecord, ProfileExternalAccountRecordSchema, ProfileHonorRecord, ProfileHonorRecordSchema, 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, selfLabelsSchema, strongRefSchema, uriSchema } from './schemas/index.js';
4
5
  export { A as AtmosphereFeedItem, d as AtmosphereFeedItemSchema, e as FEATURE_FLAGS, b as FeatureAllowlistEntry, f as FeatureAllowlistEntrySchema, c as FeatureFlag, g as FeedActor, h as FeedActorSchema, i as FeedCursor, j as FollowFeedItem, k as FollowFeedItemSchema, F as FollowFeedPage, l as FollowFeedPageSchema, a as FollowProfileItem, m as FollowProfilePage, n as FollowProfilePageSchema, o as FollowProfileSchema, S as SifaFeedItem, p as SifaFeedItemSchema, q as decodeFeedCursor, r as encodeFeedCursor } from './feed-DHTy7fUN.js';
5
6
  import 'zod';
6
7
 
@@ -449,6 +450,40 @@ declare function getCalendarEventStatusLabel(value: string | undefined | null):
449
450
  */
450
451
  declare function formatRelativeTime(dateString: string): string;
451
452
 
453
+ /**
454
+ * Format a presentation duration for display. A fixed length renders as
455
+ * "30 min"; a range renders as "20-30 min". Returns undefined when there is no
456
+ * duration. A range whose bounds are equal, or whose max is missing, renders as
457
+ * a single value.
458
+ */
459
+ declare function formatPresentationDuration(duration: PresentationDuration | undefined | null): string | undefined;
460
+
461
+ /** A compact roll-up of a presentation's deliveries for the collapsed view. */
462
+ interface PresentationDeliverySummary {
463
+ /** Times the talk was actually delivered (cancelled occasions excluded). */
464
+ count: number;
465
+ /** Most recent year among counted deliveries that carry a date. */
466
+ recentYear?: number;
467
+ /** How many counted deliveries were keynotes. */
468
+ keynoteCount: number;
469
+ /** Up to `venueLimit` distinct event names, most-recent first. */
470
+ venues: string[];
471
+ /** Distinct counted venues beyond the ones listed in `venues`. */
472
+ moreVenues: number;
473
+ }
474
+ /**
475
+ * Summarize a talk's delivery history into the signals the profile shows in the
476
+ * collapsed view: how many times it was given, the most recent year, how many
477
+ * were keynotes, and a small sample of the most recent distinct venues.
478
+ *
479
+ * Cancelled occasions are excluded from every figure: a talk that was booked
480
+ * then cancelled was not actually delivered, and counting it would inflate the
481
+ * "given Nx" signal.
482
+ */
483
+ declare function summarizePresentationDeliveries(deliveries: ProfilePresentationDelivery[] | undefined, options?: {
484
+ venueLimit?: number;
485
+ }): PresentationDeliverySummary;
486
+
452
487
  /**
453
488
  * Sort profile section items from newest to oldest.
454
489
  *
@@ -604,6 +639,51 @@ declare function contrastRatio(color1: RgbColor, color2: RgbColor): number;
604
639
  */
605
640
  declare function meetsContrastAA(foreground: RgbColor, background: RgbColor): boolean;
606
641
 
642
+ /**
643
+ * CSV parsers for the Talks & sessions import (two templates joined by a
644
+ * presentation_key). The value parsers and row mappers are reusable and pure;
645
+ * the actual PDS writing (create a presentation, then write its deliveries with
646
+ * a presentationRef to it) is orchestrated by the consumer, which has the
647
+ * created record's AT-URI.
648
+ */
649
+ /** A CSV row as a header-keyed map. Missing cells may be undefined or empty. */
650
+ type CsvRow = Record<string, string | undefined>;
651
+ /**
652
+ * Parse a free-text duration into minutes: a single value ("30 min", "30
653
+ * minutes", "30") or a range ("20-30 min", "20 to 30 minutes", "20-30").
654
+ * Returns undefined when no usable number is present. A second number is used
655
+ * as the upper bound only when it is greater than or equal to the first.
656
+ */
657
+ declare function parsePresentationDuration(input: string | undefined): PresentationDuration | undefined;
658
+ /** Build a duration from explicit min/max minute columns. */
659
+ declare function durationFromMinutes(minRaw: string | undefined, maxRaw: string | undefined): PresentationDuration | undefined;
660
+ /** Split a delimited list into trimmed, non-empty values. Default delimiter ";". */
661
+ declare function parseIntendedAudiences(input: string | undefined, delimiter?: string): string[];
662
+ /**
663
+ * Strip HTML to plain text and decode the common entities, for descriptions
664
+ * exported as HTML (e.g. Webflow). The AppView re-sanitizes on write; this is
665
+ * only to produce readable text.
666
+ */
667
+ declare function stripHtmlToText(input: string | undefined): string;
668
+ /** Map a friendly role value to its token; passes through an existing token or an unknown value. */
669
+ declare function normalizePresentationRole(value: string | undefined): string | undefined;
670
+ /** Map a friendly mode value to the community calendar token; drops an unknown value. */
671
+ declare function normalizePresentationMode(value: string | undefined): string | undefined;
672
+ interface ParsedPresentation {
673
+ /** presentation_key used to link delivery rows to this presentation. */
674
+ key?: string;
675
+ record: Omit<ProfilePresentationRecord, 'createdAt'>;
676
+ }
677
+ /** Map a row of the presentations template to a presentation record (minus createdAt). */
678
+ declare function presentationCsvRowToRecord(row: CsvRow): ParsedPresentation;
679
+ interface ParsedDelivery {
680
+ /** presentation_key to resolve into a presentationRef once the presentation exists. */
681
+ presentationKey?: string;
682
+ record: Omit<ProfilePresentationDeliveryRecord, 'createdAt' | 'presentationRef'>;
683
+ }
684
+ /** Map a row of the deliveries template to a delivery record (minus createdAt and presentationRef). */
685
+ declare function presentationDeliveryCsvRowToRecord(row: CsvRow): ParsedDelivery;
686
+
607
687
  /**
608
688
  * URL patterns per app, mirroring the sifa-web registry.
609
689
  *
@@ -888,4 +968,4 @@ declare function pickPrimaryPosition<T extends PrimaryPositionCandidate>(positio
888
968
  */
889
969
  declare const SIFA_SDK_VERSION: string;
890
970
 
891
- export { ACTIVITY_TIERS, ACTIVITY_VISIBILITY_RULES, APP_CATEGORIES, APP_CATEGORY_IDS, APP_CATEGORY_MAP, APP_URL_PATTERNS, type ActivityItemForUrl, type ActivityTaxonomy, type ActivityTier, type AppCategoryId, type AppUrlPatterns, 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 ContinentCode, DIMENSIONS_MAX_SCORE, type DimensionKey, type DimensionMap, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, type EmploymentTypeGroup, type EmploymentTypeOption, INDUSTRY_OPTIONS, type IndustryOption, 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 PdsProvider, PdsProviderInfo, type PlatformId, type PresentationLinkTypeOption, type PresentationRoleOption, type PrimaryPositionCandidate, Profile, type ProfileCompletion, type ProfileDimensionInputs, ProfileSkill, type Publisher, type RgbColor, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, type SkillCategory, type TierMeta, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, type WorkplaceTypeOption, categoryForApp, certDateExtractor, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countryCodeToFlag, dateRangeExtractor, dedupeSkills, detectPdsProvider, dimensionsFromInputs, findIndustry, formatDistanceToNow, formatLocation, formatRelativeTime, getActivityTaxonomyVersion, getActivityTier, getAppCategoryIcon, getAppIdForCollection, getCalendarEventModeLabel, getCalendarEventStatusLabel, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getPresentationLinkTypeLabel, getPresentationRoleLabel, getPublisherByHost, getPublisherById, getPublisherFromSiteUrl, getTierMeta, getWorkplaceTypeLabel, groupSkillsByCategory, isAppCategory, isCompanyRequired, isKnownAppId, isKnownPlatform, isValidRgbColor, isVisibleActivityItem, lexiconDateExtractor, limitCombiningMarks, meetsContrastAA, normalizeOpenTo, normalizePlatformId, normalizeWorkplaceTypes, openToTokenToValue, openToValueToToken, parseLocationString, pdsProviderFromApi, pickPrimaryPosition, profileToDimensionInputs, relativeLuminance, resolveCardUrl, rgbToString, sanitizeDisplayText, sanitizeHandleInput, singleDateExtractor, sortByDateDesc, truncateGraphemes };
971
+ export { ACTIVITY_TIERS, ACTIVITY_VISIBILITY_RULES, APP_CATEGORIES, APP_CATEGORY_IDS, APP_CATEGORY_MAP, APP_URL_PATTERNS, type ActivityItemForUrl, type ActivityTaxonomy, type ActivityTier, type AppCategoryId, type AppUrlPatterns, 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 ContinentCode, type CsvRow, DIMENSIONS_MAX_SCORE, type DimensionKey, type DimensionMap, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, type EmploymentTypeGroup, type EmploymentTypeOption, INDUSTRY_OPTIONS, type IndustryOption, 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, type ProfileCompletion, type ProfileDimensionInputs, ProfilePresentationDelivery, ProfilePresentationDeliveryRecord, ProfilePresentationRecord, ProfileSkill, type Publisher, type RgbColor, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, type SkillCategory, type TierMeta, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, type WorkplaceTypeOption, categoryForApp, certDateExtractor, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countryCodeToFlag, dateRangeExtractor, dedupeSkills, detectPdsProvider, dimensionsFromInputs, durationFromMinutes, findIndustry, formatDistanceToNow, formatLocation, formatPresentationDuration, formatRelativeTime, getActivityTaxonomyVersion, getActivityTier, getAppCategoryIcon, getAppIdForCollection, getCalendarEventModeLabel, getCalendarEventStatusLabel, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getPresentationLinkTypeLabel, getPresentationRoleLabel, getPublisherByHost, getPublisherById, getPublisherFromSiteUrl, getTierMeta, getWorkplaceTypeLabel, groupSkillsByCategory, isAppCategory, isCompanyRequired, isKnownAppId, isKnownPlatform, isValidRgbColor, isVisibleActivityItem, lexiconDateExtractor, limitCombiningMarks, meetsContrastAA, normalizeOpenTo, normalizePlatformId, normalizePresentationMode, normalizePresentationRole, normalizeWorkplaceTypes, openToTokenToValue, openToValueToToken, parseIntendedAudiences, parseLocationString, parsePresentationDuration, pdsProviderFromApi, pickPrimaryPosition, presentationCsvRowToRecord, presentationDeliveryCsvRowToRecord, profileToDimensionInputs, relativeLuminance, resolveCardUrl, rgbToString, sanitizeDisplayText, sanitizeHandleInput, singleDateExtractor, sortByDateDesc, stripHtmlToText, summarizePresentationDeliveries, truncateGraphemes };
package/dist/index.js CHANGED
@@ -1402,6 +1402,50 @@ function formatRelativeTime(dateString) {
1402
1402
  return `${years}y ago`;
1403
1403
  }
1404
1404
 
1405
+ // src/format/format-duration.ts
1406
+ function formatPresentationDuration(duration) {
1407
+ if (!duration) return void 0;
1408
+ const { minMinutes, maxMinutes } = duration;
1409
+ if (maxMinutes != null && maxMinutes !== minMinutes) {
1410
+ return `${minMinutes}-${maxMinutes} min`;
1411
+ }
1412
+ return `${minMinutes} min`;
1413
+ }
1414
+
1415
+ // src/format/summarize-deliveries.ts
1416
+ var CANCELLED_STATUS = "community.lexicon.calendar.event#cancelled";
1417
+ var KEYNOTE_ROLE = "id.sifa.defs#keynote";
1418
+ function summarizePresentationDeliveries(deliveries, options = {}) {
1419
+ const venueLimit = options.venueLimit ?? 3;
1420
+ const counted = (deliveries ?? []).filter((delivery) => delivery.status !== CANCELLED_STATUS);
1421
+ const sorted = [...counted].sort((a, b) => (b.date ?? "").localeCompare(a.date ?? ""));
1422
+ let recentYear;
1423
+ for (const delivery of counted) {
1424
+ if (!delivery.date) continue;
1425
+ const year = Number(delivery.date.slice(0, 4));
1426
+ if (!Number.isNaN(year) && (recentYear === void 0 || year > recentYear)) {
1427
+ recentYear = year;
1428
+ }
1429
+ }
1430
+ const seen = /* @__PURE__ */ new Set();
1431
+ const distinctVenues = [];
1432
+ for (const delivery of sorted) {
1433
+ const name = delivery.eventName?.trim();
1434
+ if (name && !seen.has(name)) {
1435
+ seen.add(name);
1436
+ distinctVenues.push(name);
1437
+ }
1438
+ }
1439
+ const venues = distinctVenues.slice(0, venueLimit);
1440
+ return {
1441
+ count: counted.length,
1442
+ recentYear,
1443
+ keynoteCount: counted.filter((delivery) => delivery.role === KEYNOTE_ROLE).length,
1444
+ venues,
1445
+ moreVenues: distinctVenues.length - venues.length
1446
+ };
1447
+ }
1448
+
1405
1449
  // src/format/sort-by-date.ts
1406
1450
  var FAR_FUTURE = "9999-12-31";
1407
1451
  var FAR_PAST = "0000-01-01";
@@ -1625,6 +1669,102 @@ function meetsContrastAA(foreground, background) {
1625
1669
  return contrastRatio(foreground, background) >= 4.5;
1626
1670
  }
1627
1671
 
1672
+ // src/import/presentation-csv.ts
1673
+ function clean(value) {
1674
+ return (value ?? "").trim();
1675
+ }
1676
+ function parsePresentationDuration(input) {
1677
+ const numbers = (clean(input).match(/\d+/g) ?? []).map((n) => Number.parseInt(n, 10)).filter((n) => Number.isInteger(n) && n > 0);
1678
+ const min = numbers.at(0);
1679
+ if (min === void 0) return void 0;
1680
+ const max = numbers.at(1);
1681
+ return max !== void 0 && max >= min ? { minMinutes: min, maxMinutes: max } : { minMinutes: min };
1682
+ }
1683
+ function durationFromMinutes(minRaw, maxRaw) {
1684
+ const min = Number.parseInt(clean(minRaw), 10);
1685
+ if (!Number.isInteger(min) || min < 1) return void 0;
1686
+ const max = Number.parseInt(clean(maxRaw), 10);
1687
+ return Number.isInteger(max) && max >= min ? { minMinutes: min, maxMinutes: max } : { minMinutes: min };
1688
+ }
1689
+ function parseIntendedAudiences(input, delimiter = ";") {
1690
+ return clean(input).split(delimiter).map((s) => s.trim()).filter(Boolean);
1691
+ }
1692
+ function stripHtmlToText(input) {
1693
+ const text = clean(input).replace(/<\s*br\s*\/?>/gi, "\n").replace(/<\/\s*(p|div|li|h[1-6])\s*>/gi, "\n").replace(/<[^>]*>/g, "").replace(/&nbsp;/gi, " ").replace(/&amp;/gi, "&").replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#0*39;|&apos;/gi, "'");
1694
+ return text.replace(/[ \t]+/g, " ").replace(/ *\n */g, "\n").replace(/\n{3,}/g, "\n\n").trim();
1695
+ }
1696
+ var ROLE_TOKENS = {
1697
+ presenter: "id.sifa.defs#presenter",
1698
+ speaker: "id.sifa.defs#presenter",
1699
+ panelist: "id.sifa.defs#panelist",
1700
+ keynote: "id.sifa.defs#keynote",
1701
+ workshop: "id.sifa.defs#workshop",
1702
+ host: "id.sifa.defs#host"
1703
+ };
1704
+ function normalizePresentationRole(value) {
1705
+ const v = clean(value).toLowerCase();
1706
+ if (!v) return void 0;
1707
+ if (v.startsWith("id.sifa.defs#")) return v;
1708
+ return ROLE_TOKENS[v] ?? v;
1709
+ }
1710
+ var MODE_FRAGMENTS = {
1711
+ inperson: "#inperson",
1712
+ "in person": "#inperson",
1713
+ "in-person": "#inperson",
1714
+ virtual: "#virtual",
1715
+ online: "#virtual",
1716
+ remote: "#virtual",
1717
+ hybrid: "#hybrid"
1718
+ };
1719
+ function normalizePresentationMode(value) {
1720
+ const v = clean(value).toLowerCase();
1721
+ if (!v) return void 0;
1722
+ if (v.startsWith("community.lexicon.calendar.event#")) return v;
1723
+ const fragment = MODE_FRAGMENTS[v];
1724
+ return fragment ? `community.lexicon.calendar.event${fragment}` : void 0;
1725
+ }
1726
+ function link(uri, type) {
1727
+ const u = clean(uri);
1728
+ return u ? { uri: u, type } : void 0;
1729
+ }
1730
+ function presentationCsvRowToRecord(row) {
1731
+ const description = stripHtmlToText(row.description);
1732
+ const duration = parsePresentationDuration(row.duration) ?? durationFromMinutes(row.duration_min_minutes, row.duration_max_minutes);
1733
+ const intendedAudiences = parseIntendedAudiences(row.intended_audiences);
1734
+ const links = [
1735
+ link(row.slides_url, "id.sifa.defs#linkSlides"),
1736
+ link(row.recording_url, "id.sifa.defs#linkRecording"),
1737
+ link(row.writeup_url, "id.sifa.defs#linkWriteup")
1738
+ ].filter((l) => l !== void 0);
1739
+ const record = { title: clean(row.title) };
1740
+ if (description) record.description = description;
1741
+ if (duration) record.duration = duration;
1742
+ if (intendedAudiences.length) record.intendedAudiences = intendedAudiences;
1743
+ if (links.length) record.links = links;
1744
+ return { key: clean(row.presentation_key) || void 0, record };
1745
+ }
1746
+ function presentationDeliveryCsvRowToRecord(row) {
1747
+ const links = [
1748
+ link(row.event_url, "id.sifa.defs#linkEvent"),
1749
+ link(row.recording_url, "id.sifa.defs#linkRecording")
1750
+ ].filter((l) => l !== void 0);
1751
+ const record = {};
1752
+ const title = clean(row.title);
1753
+ const eventName = clean(row.event_name);
1754
+ const date = clean(row.date);
1755
+ const location = clean(row.location);
1756
+ const role = normalizePresentationRole(row.role);
1757
+ const mode = normalizePresentationMode(row.mode);
1758
+ if (title) record.title = title;
1759
+ if (role) record.role = role;
1760
+ if (eventName) record.eventName = eventName;
1761
+ if (date) record.date = date;
1762
+ if (location) record.location = location;
1763
+ if (mode) record.mode = mode;
1764
+ if (links.length) record.links = links;
1765
+ return { presentationKey: clean(row.presentation_key) || void 0, record };
1766
+ }
1767
+
1628
1768
  // src/cards/app-url-patterns.ts
1629
1769
  var APP_URL_PATTERNS = Object.freeze({
1630
1770
  bluesky: {
@@ -2442,8 +2582,8 @@ var ProfileVolunteeringRecordSchema = z.object({
2442
2582
  });
2443
2583
 
2444
2584
  // src/index.ts
2445
- var SIFA_SDK_VERSION = "0.11.4";
2585
+ var SIFA_SDK_VERSION = "0.11.6";
2446
2586
 
2447
- export { ACTIVITY_TIERS, ACTIVITY_VISIBILITY_RULES, ADULT_CONTENT_LABELS, APP_CATEGORIES, APP_CATEGORY_IDS, APP_CATEGORY_MAP, APP_URL_PATTERNS, 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, EndorsementConfirmationRecordSchema, EndorsementRecordSchema, FEATURE_FLAGS, FeatureAllowlistEntrySchema, FeedActorSchema, FollowFeedItemSchema, FollowFeedPageSchema, FollowProfilePageSchema, FollowProfileSchema, GraphFollowRecordSchema, INDUSTRY_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, PUBLISHERS, PresentationDurationSchema, PresentationLinkSchema, ProfileCertificationRecordSchema, ProfileCourseRecordSchema, ProfileEducationRecordSchema, ProfileExternalAccountRecordSchema, ProfileHonorRecordSchema, ProfileLanguageRecordSchema, ProfilePositionRecordSchema, ProfilePresentationDeliveryRecordSchema, ProfilePresentationRecordSchema, ProfileProjectRecordSchema, ProfilePublicationRecordSchema, ProfileSelfRecordSchema, ProfileSkillRecordSchema, ProfileVolunteeringRecordSchema, PublicationAuthorSchema, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, SifaFeedItemSchema, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, atUriSchema, categoryForApp, certDateExtractor, cidSchema, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countryCodeToFlag, dateRangeExtractor, datetimeSchema, decodeFeedCursor, dedupeSkills, detectPdsProvider, didSchema, dimensionsFromInputs, encodeFeedCursor, externalRecordRefSchema, findIndustry, formatDistanceToNow, formatLocation, formatRelativeTime, getActivityTaxonomyVersion, getActivityTier, getAppCategoryIcon, getAppIdForCollection, getCalendarEventModeLabel, getCalendarEventStatusLabel, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getPresentationLinkTypeLabel, getPresentationRoleLabel, getPublisherByHost, getPublisherById, getPublisherFromSiteUrl, getTierMeta, getWorkplaceTypeLabel, groupSkillsByCategory, hasAdultContent, isAppCategory, isCompanyRequired, isKnownAppId, isKnownPlatform, isValidRgbColor, isVisibleActivityItem, languageTagSchema, lexiconDateExtractor, limitCombiningMarks, makeGraphFollowRecordSchema, maxGraphemes, meetsContrastAA, normalizeOpenTo, normalizePlatformId, normalizeWorkplaceTypes, openToTokenToValue, openToValueToToken, parseLocationString, pdsProviderFromApi, pickPrimaryPosition, profileToDimensionInputs, relativeLuminance, resolveCardUrl, rgbToString, sanitizeDisplayText, sanitizeHandleInput, selfLabelsSchema, singleDateExtractor, sortByDateDesc, strongRefSchema, truncateGraphemes, uriSchema };
2587
+ export { ACTIVITY_TIERS, ACTIVITY_VISIBILITY_RULES, ADULT_CONTENT_LABELS, APP_CATEGORIES, APP_CATEGORY_IDS, APP_CATEGORY_MAP, APP_URL_PATTERNS, 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, EndorsementConfirmationRecordSchema, EndorsementRecordSchema, FEATURE_FLAGS, FeatureAllowlistEntrySchema, FeedActorSchema, FollowFeedItemSchema, FollowFeedPageSchema, FollowProfilePageSchema, FollowProfileSchema, GraphFollowRecordSchema, INDUSTRY_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, PUBLISHERS, PresentationDurationSchema, PresentationLinkSchema, ProfileCertificationRecordSchema, ProfileCourseRecordSchema, ProfileEducationRecordSchema, ProfileExternalAccountRecordSchema, ProfileHonorRecordSchema, ProfileLanguageRecordSchema, ProfilePositionRecordSchema, ProfilePresentationDeliveryRecordSchema, ProfilePresentationRecordSchema, ProfileProjectRecordSchema, ProfilePublicationRecordSchema, ProfileSelfRecordSchema, ProfileSkillRecordSchema, ProfileVolunteeringRecordSchema, PublicationAuthorSchema, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, SifaFeedItemSchema, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, atUriSchema, categoryForApp, certDateExtractor, cidSchema, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countryCodeToFlag, dateRangeExtractor, datetimeSchema, decodeFeedCursor, dedupeSkills, detectPdsProvider, didSchema, dimensionsFromInputs, durationFromMinutes, encodeFeedCursor, externalRecordRefSchema, findIndustry, formatDistanceToNow, formatLocation, formatPresentationDuration, formatRelativeTime, getActivityTaxonomyVersion, getActivityTier, getAppCategoryIcon, getAppIdForCollection, getCalendarEventModeLabel, getCalendarEventStatusLabel, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getPresentationLinkTypeLabel, getPresentationRoleLabel, getPublisherByHost, getPublisherById, getPublisherFromSiteUrl, getTierMeta, getWorkplaceTypeLabel, groupSkillsByCategory, hasAdultContent, isAppCategory, isCompanyRequired, isKnownAppId, isKnownPlatform, isValidRgbColor, isVisibleActivityItem, languageTagSchema, lexiconDateExtractor, limitCombiningMarks, makeGraphFollowRecordSchema, maxGraphemes, meetsContrastAA, normalizeOpenTo, normalizePlatformId, normalizePresentationMode, normalizePresentationRole, normalizeWorkplaceTypes, openToTokenToValue, openToValueToToken, parseIntendedAudiences, parseLocationString, parsePresentationDuration, pdsProviderFromApi, pickPrimaryPosition, presentationCsvRowToRecord, presentationDeliveryCsvRowToRecord, profileToDimensionInputs, relativeLuminance, resolveCardUrl, rgbToString, sanitizeDisplayText, sanitizeHandleInput, selfLabelsSchema, singleDateExtractor, sortByDateDesc, stripHtmlToText, strongRefSchema, summarizePresentationDeliveries, truncateGraphemes, uriSchema };
2448
2588
  //# sourceMappingURL=index.js.map
2449
2589
  //# sourceMappingURL=index.js.map