@singi-labs/sifa-sdk 0.18.1 → 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
@@ -461,6 +461,9 @@ declare const APP_CATEGORY_MAP: {
461
461
  readonly impactindexer: "Reviews";
462
462
  readonly pinksea: "Art";
463
463
  readonly dropanchor: "Places";
464
+ readonly askeverything: "Q&A";
465
+ readonly greengale: "Articles";
466
+ readonly kut: "Social";
464
467
  readonly linkat: "Links";
465
468
  readonly kipclip: "Links";
466
469
  readonly statusphere: "Social";
package/dist/index.d.ts CHANGED
@@ -461,6 +461,9 @@ declare const APP_CATEGORY_MAP: {
461
461
  readonly impactindexer: "Reviews";
462
462
  readonly pinksea: "Art";
463
463
  readonly dropanchor: "Places";
464
+ readonly askeverything: "Q&A";
465
+ readonly greengale: "Articles";
466
+ readonly kut: "Social";
464
467
  readonly linkat: "Links";
465
468
  readonly kipclip: "Links";
466
469
  readonly statusphere: "Social";
package/dist/index.js CHANGED
@@ -1139,6 +1139,13 @@ var APP_CATEGORY_MAP = {
1139
1139
  // Onboard from the tijs.org profile audit.
1140
1140
  dropanchor: "Places",
1141
1141
  // app.dropanchor.checkin — location check-ins (place, geo, optional review text)
1142
+ // Onboard from the angrydutchman.houseofmadness.org profile audit.
1143
+ askeverything: "Q&A",
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)
1142
1149
  // Web-only (rendered in pills/cards via sifa-web atproto-apps.ts;
1143
1150
  // no backend scan collection yet)
1144
1151
  linkat: "Links",
@@ -1274,6 +1281,21 @@ var activity_tiers_default = {
1274
1281
  app: "dropanchor",
1275
1282
  notes: "A location check-in (place, geo, category, optional review text). Authored, so creation. app.dropanchor.like is excluded backend-side."
1276
1283
  },
1284
+ "app.askeverything.feed.answer": {
1285
+ tier: "creation",
1286
+ app: "askeverything",
1287
+ notes: "An authored answer to a community question (opinion with body text). app.askeverything.actor.* and graph.follow are excluded backend-side."
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
+ },
1277
1299
  "app.mcp.server": {
1278
1300
  tier: "creation",
1279
1301
  app: "mcp"
@@ -3442,6 +3464,25 @@ var APP_URL_PATTERNS = Object.freeze({
3442
3464
  // the record's own rkey, no did/handle needed. Documented as the OG-tagged
3443
3465
  // share URL in the dropanchorapp repos. A self-permalink for this record.
3444
3466
  urlPattern: "https://dropanchor.app/checkin/{rkey}"
3467
+ },
3468
+ askeverything: {
3469
+ // Ask Everything (askeverything.app) keys its public answer route
3470
+ // (/answer/{id}) on an internal DB id, not the atproto rkey, so there's no
3471
+ // per-record permalink we can build from {did, rkey}. Its profile route
3472
+ // /profile/{handle} does resolve by atproto handle, so fall back to that.
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"
3445
3486
  }
3446
3487
  });
3447
3488
  var COLLECTION_TO_APP = [
@@ -3525,7 +3566,11 @@ var COLLECTION_TO_APP = [
3525
3566
  ["org.impactindexer.", "impactindexer"],
3526
3567
  ["com.shinolabs.pinksea.", "pinksea"],
3527
3568
  // Onboard from tijs.org profile audit.
3528
- ["app.dropanchor.", "dropanchor"]
3569
+ ["app.dropanchor.", "dropanchor"],
3570
+ // Onboard from angrydutchman.houseofmadness.org profile audit.
3571
+ ["app.askeverything.", "askeverything"],
3572
+ ["app.greengale.", "greengale"],
3573
+ ["social.kut.", "kut"]
3529
3574
  ];
3530
3575
 
3531
3576
  // src/cards/resolve-card-url.ts
@@ -3666,6 +3711,22 @@ function resolveCardHealth(item) {
3666
3711
  }
3667
3712
  return { url: null, strategy: "none" };
3668
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
+ }
3669
3730
  if (collection === "fyi.atstore.listing.review") {
3670
3731
  const listingMeta = record.listingMeta;
3671
3732
  if (listingMeta != null && typeof listingMeta === "object") {
@@ -6081,7 +6142,7 @@ function describeSifaRecord(collection, value) {
6081
6142
  }
6082
6143
 
6083
6144
  // src/index.ts
6084
- var SIFA_SDK_VERSION = "0.18.1";
6145
+ var SIFA_SDK_VERSION = "0.18.3";
6085
6146
 
6086
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 };
6087
6148
  //# sourceMappingURL=index.js.map