@singi-labs/sifa-sdk 0.18.2 → 0.18.3

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
@@ -462,6 +462,8 @@ declare const APP_CATEGORY_MAP: {
462
462
  readonly pinksea: "Art";
463
463
  readonly dropanchor: "Places";
464
464
  readonly askeverything: "Q&A";
465
+ readonly greengale: "Articles";
466
+ readonly kut: "Social";
465
467
  readonly linkat: "Links";
466
468
  readonly kipclip: "Links";
467
469
  readonly statusphere: "Social";
package/dist/index.d.ts CHANGED
@@ -462,6 +462,8 @@ declare const APP_CATEGORY_MAP: {
462
462
  readonly pinksea: "Art";
463
463
  readonly dropanchor: "Places";
464
464
  readonly askeverything: "Q&A";
465
+ readonly greengale: "Articles";
466
+ readonly kut: "Social";
465
467
  readonly linkat: "Links";
466
468
  readonly kipclip: "Links";
467
469
  readonly statusphere: "Social";
package/dist/index.js CHANGED
@@ -1142,6 +1142,10 @@ var APP_CATEGORY_MAP = {
1142
1142
  // Onboard from the angrydutchman.houseofmadness.org profile audit.
1143
1143
  askeverything: "Q&A",
1144
1144
  // app.askeverything.feed.answer — authored answers to community questions
1145
+ greengale: "Articles",
1146
+ // app.greengale.blog.entry — authored blog posts (title, subtitle, Markdown body)
1147
+ kut: "Social",
1148
+ // social.kut.community.membership — joining a Kut community (a commitment)
1145
1149
  // Web-only (rendered in pills/cards via sifa-web atproto-apps.ts;
1146
1150
  // no backend scan collection yet)
1147
1151
  linkat: "Links",
@@ -1282,6 +1286,16 @@ var activity_tiers_default = {
1282
1286
  app: "askeverything",
1283
1287
  notes: "An authored answer to a community question (opinion with body text). app.askeverything.actor.* and graph.follow are excluded backend-side."
1284
1288
  },
1289
+ "app.greengale.blog.entry": {
1290
+ tier: "creation",
1291
+ app: "greengale",
1292
+ notes: "An authored blog post (title, subtitle, Markdown body, visibility). app.greengale.document and app.greengale.publication (drafts/containers) are excluded backend-side."
1293
+ },
1294
+ "social.kut.community.membership": {
1295
+ tier: "creation",
1296
+ app: "kut",
1297
+ notes: "Joining a Kut community, a commitment. Mirrors Colibri/OpenSocial memberships, which are creation-tier."
1298
+ },
1285
1299
  "app.mcp.server": {
1286
1300
  tier: "creation",
1287
1301
  app: "mcp"
@@ -3457,6 +3471,18 @@ var APP_URL_PATTERNS = Object.freeze({
3457
3471
  // per-record permalink we can build from {did, rkey}. Its profile route
3458
3472
  // /profile/{handle} does resolve by atproto handle, so fall back to that.
3459
3473
  profileUrlPattern: "https://askeverything.app/profile/{handle}"
3474
+ },
3475
+ greengale: {
3476
+ // GreenGale (greengale.app) renders each blog entry at /{handle}/{rkey}.
3477
+ // Verified live against a real post. Self-permalink for this record.
3478
+ urlPattern: "https://greengale.app/{handle}/{rkey}",
3479
+ profileUrlPattern: "https://greengale.app/{handle}"
3480
+ },
3481
+ kut: {
3482
+ // Kut (kut.social) is a community app. A membership record has no page of
3483
+ // its own; the card links to the community it joined, built from the
3484
+ // membership's community.uri in resolve-card-url. Homepage fallback only.
3485
+ profileUrlPattern: "https://kut.social"
3460
3486
  }
3461
3487
  });
3462
3488
  var COLLECTION_TO_APP = [
@@ -3542,7 +3568,9 @@ var COLLECTION_TO_APP = [
3542
3568
  // Onboard from tijs.org profile audit.
3543
3569
  ["app.dropanchor.", "dropanchor"],
3544
3570
  // Onboard from angrydutchman.houseofmadness.org profile audit.
3545
- ["app.askeverything.", "askeverything"]
3571
+ ["app.askeverything.", "askeverything"],
3572
+ ["app.greengale.", "greengale"],
3573
+ ["social.kut.", "kut"]
3546
3574
  ];
3547
3575
 
3548
3576
  // src/cards/resolve-card-url.ts
@@ -3683,6 +3711,22 @@ function resolveCardHealth(item) {
3683
3711
  }
3684
3712
  return { url: null, strategy: "none" };
3685
3713
  }
3714
+ if (collection === "social.kut.community.membership") {
3715
+ const community = record.community;
3716
+ const communityUri = typeof community === "string" ? community : (
3717
+ // Narrow the object branch to read an optional `uri`. The membership
3718
+ // lexicon carries `community` as a bare at-uri string today; the cast
3719
+ // tolerates a future strongRef `{ uri, cid }` shape without assuming it.
3720
+ community != null && typeof community === "object" ? stringOrNull(community.uri) : null
3721
+ );
3722
+ if (communityUri) {
3723
+ const parsed3 = parseAtUri(communityUri);
3724
+ if (parsed3) {
3725
+ return urlHealth(`https://kut.social/community/${encodeURIComponent(parsed3.rkey)}`);
3726
+ }
3727
+ }
3728
+ return urlHealth(APP_URL_PATTERNS.kut?.profileUrlPattern ?? null);
3729
+ }
3686
3730
  if (collection === "fyi.atstore.listing.review") {
3687
3731
  const listingMeta = record.listingMeta;
3688
3732
  if (listingMeta != null && typeof listingMeta === "object") {
@@ -6098,7 +6142,7 @@ function describeSifaRecord(collection, value) {
6098
6142
  }
6099
6143
 
6100
6144
  // src/index.ts
6101
- var SIFA_SDK_VERSION = "0.18.2";
6145
+ var SIFA_SDK_VERSION = "0.18.3";
6102
6146
 
6103
6147
  export { ACTIVITY_TIERS, ACTIVITY_VERBS, ACTIVITY_VISIBILITY_RULES, ADULT_CONTENT_LABELS, ALL_SECTIONS, APP_CATEGORIES, APP_CATEGORY_IDS, APP_CATEGORY_MAP, APP_URL_PATTERNS, ARTIFACT_LINK_KIND_LABELS, ARTIFACT_LINK_KIND_OPTIONS, ArtifactLinkSchema, AtmosphereFeedItemSchema, BlobRefSchema, CALENDAR_EVENT_MODE_LABELS, CALENDAR_EVENT_STATUS_LABELS, CATEGORY_LABELS, CATEGORY_ORDER, COLLECTION_TO_APP, COMPANY_OPTIONAL_EMPLOYMENT_TYPES, COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS, COMPLETENESS_MAX_SCORE, CONTINENTS, COUNTRIES, DIMENSIONS_MAX_SCORE, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, ENTITY_REF_ANCHORS, EndorsementConfirmationRecordSchema, EndorsementRecordSchema, EntityImportSearchResponseSchema, EntityMintDomainResponseSchema, EntityResolveDomainRequestSchema, EntityResolveDomainResponseSchema, EntitySearchResponseSchema, EntitySearchResultSchema, EntitySelectRequestSchema, EntitySelectResponseSchema, FEATURE_FLAGS, FeatureAllowlistEntrySchema, FeedActorSchema, FollowFeedItemSchema, FollowFeedPageSchema, FollowProfilePageSchema, FollowProfileSchema, GraphFollowRecordSchema, INDUSTRY_OPTIONS, INVESTMENT_ROLE_LABELS, INVESTMENT_ROLE_OPTIONS, INVESTMENT_STAGE_LABELS, INVESTMENT_STAGE_OPTIONS, INVESTMENT_STATUS_LABELS, INVESTMENT_STATUS_OPTIONS, INVOLVEMENT_HEADING_ORDER, INVOLVEMENT_KIND_HEADINGS, INVOLVEMENT_KIND_LABELS, INVOLVEMENT_KIND_OPTIONS, InvestmentAmountSchema, MIN_SKILLS, ON_BEHALF_OF_EMPLOYMENT_TYPES, 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_INVESTMENT_NSID, PROFILE_INVOLVEMENT_NSID, PROJECT_ROLES, PUBLICATION_TYPE_LABELS, PUBLICATION_TYPE_OPTIONS, PUBLISHERS, PresentationDurationSchema, PresentationLinkSchema, ProfileCertificationRecordSchema, ProfileCourseRecordSchema, ProfileEducationRecordSchema, ProfileExternalAccountRecordSchema, ProfileHonorRecordSchema, ProfileInvestmentRecordSchema, ProfileInvolvementRecordSchema, ProfileLanguageRecordSchema, ProfilePositionRecordSchema, ProfilePresentationDeliveryRecordSchema, ProfilePresentationRecordSchema, ProfileProjectRecordSchema, ProfilePublicationRecordSchema, ProfileSelfRecordSchema, ProfileSkillRecordSchema, ProfileVolunteeringRecordSchema, PublicationAuthorSchema, ROADMAP_ISSUES_REPO, ROADMAP_ITEM_META, SECTION_GROUPS, SECTION_LABELS, SIFA_REPO_GROUPS, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, STREAM_VERBS, SifaFeedItemSchema, VERIFICATION_PROVIDERS, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, atUriSchema, buildMetaDescription, buildTalkSlug, categoryForApp, certDateExtractor, cidSchema, classifyEntityRef, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countRecentActivity, countryCodeToFlag, dateRangeExtractor, datetimeSchema, decodeFeedCursor, dedupeSkills, describeSifaRecord, detectPdsProvider, didSchema, dimensionsFromInputs, durationFromMinutes, encodeFeedCursor, entityDisambiguationLabel, entityResultKey, externalRecordRefSchema, filterHidden, findIndustry, formatCompanyName, formatDateRange, formatDisplayUrl, formatDistanceToNow, formatLocation, formatPresentationDuration, formatRelativeTime, formatTimelineDate, getActivityTaxonomyVersion, getActivityTier, getActivityVerbsVersion, getAppCategoryIcon, getAppIdForCollection, getArtifactLinkKindLabel, getCalendarEventModeLabel, getCalendarEventStatusLabel, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getInvestmentRoleLabel, getInvestmentStageLabel, getInvestmentStatusLabel, getInvolvementKindHeading, getInvolvementKindLabel, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getPresentationLinkTypeLabel, getPresentationRoleLabel, getPublicationTypeLabel, getPublisherByHost, getPublisherById, getPublisherFromSiteUrl, getTierMeta, getVerificationProvider, getVisibleSectionIds, getWorkplaceTypeLabel, groupInvolvementByHeading, groupSkillsByCategory, groupSkillsBySubCategory, groupSkillsForDisplay, hasAdultContent, hasPersonalProfileContent, hoistPrimary, isAppCategory, isCompanyPageIndexable, isCompanyRequired, isKnownAppId, isKnownPlatform, isKnownVerificationProvider, isLinked, isOnBehalfOfApplicable, isPseudoEmployer, isRegistrableDomainHandle, isRoleLineRedundant, isSectionPopulated, isValidRgbColor, isVisibleActivityItem, languageTagSchema, lexiconDateExtractor, limitCombiningMarks, locationSegments, looksLikeDomain, makeGraphFollowRecordSchema, maxGraphemes, meetsContrastAA, normalizeCompanyKey, normalizeDoi, normalizeLegalForm, normalizeOpenTo, normalizePlatformId, normalizePresentationMode, normalizePresentationRole, normalizeSkillCategory, normalizeWorkplaceTypes, openToTokenToValue, openToValueToToken, parseIntendedAudiences, parseLocationString, parsePresentationDuration, parseTalkRkey, partialDateSchema, pdsProviderFromApi, pickPrimaryPosition, presentationCsvRowToRecord, presentationDeliveryCsvRowToRecord, primaryVerification, profileToDimensionInputs, qualifiesAsOrg, relativeLuminance, rendersCompanyProfile, rendersPersonalProfile, repoGroupForCollection, resolveAccountFacetMode, resolveCardHealth, resolveCardUrl, resolveEmbed, resolveVerifierProvider, rgbToString, roadmapIssueUrl, sanitizeDisplayText, sanitizeHandleInput, searchResultDisambiguation, selfLabelsSchema, singleDateExtractor, skillRefSchema, slugifyTitle, sortByActiveDateRange, sortByDateDesc, sortCertifications, sortEducation, sortHonors, sortLanguages, sortLanguagesByProficiency, sortPositions, sortProjects, sortPublications, streamAddressSchema, streamAuthorSchema, streamCardBodySchema, streamCardSubjectSchema, streamCardVMSchema, streamExternalLinkSchema, streamGeoSchema, streamMediaSchema, streamRichSegmentSchema, streamSourceSchema, streamThemeSchema, streamVerbSchema, stripHtmlToText, strongRefSchema, summarizePresentationDeliveries, summarizeProfileView, toStreamCardVM, toStreamCardVMs, truncateGraphemes, uriSchema, verbForCollection, visibleItems, youtubeThumbnailUrl, youtubeVideoId };
6104
6148
  //# sourceMappingURL=index.js.map