@singi-labs/sifa-sdk 0.11.24 → 0.11.26

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.
@@ -238,6 +238,22 @@ interface ProfileInvolvement {
238
238
  startedAt?: string;
239
239
  endedAt?: string;
240
240
  links?: ProfileInvolvementLink[];
241
+ /**
242
+ * Portable org entity identifier (Wikidata/ROR/LEI URI) written when the user
243
+ * picks the upstream from the resolver typeahead. Absent for free-text or
244
+ * one-off involvement.
245
+ */
246
+ entityRef?: string;
247
+ /**
248
+ * Resolved current canonical name of the durably-linked upstream, computed by
249
+ * the AppView at read time. Render over `upstream` when present. Absent for
250
+ * free-text or unresolved entries.
251
+ */
252
+ entityName?: string;
253
+ location?: LocationValue | null;
254
+ skills?: SkillRef[];
255
+ /** Skill records resolved from `skills`, for display. */
256
+ linkedSkills?: ProfileSkill[];
241
257
  /**
242
258
  * True when this row is a mapped legacy `id.sifa.profile.volunteering` record
243
259
  * (no `kind`), rendered under "Volunteering". Editing it backfills to an
@@ -517,4 +533,4 @@ declare function hasAdultContent(item: {
517
533
  labels?: ActivityLabel[];
518
534
  }): boolean;
519
535
 
520
- export { type AdultContentLabel as A, hasAdultContent as B, type CoSpeaker as C, type ExternalAccount as E, type FeedItem as F, type LocationValue as L, type ProfileSkill as P, type SkillSuggestion as S, type TrustStat as T, type VerifiedAccount as V, type ActivityLabel as a, type ProfilePresentationDelivery as b, type PdsProviderInfo as c, type Profile as d, ADULT_CONTENT_LABELS as e, type ActiveApp as f, type Endorsement as g, type EndorsementData as h, type ExternalAccountKeytraceClaim as i, type LanguageProficiency as j, type PresentationLinkView as k, type ProfileCertification as l, type ProfileCourse as m, type ProfileEducation as n, type ProfileHonor as o, type ProfileIndustry as p, type ProfileLanguage as q, type ProfileLocation as r, type ProfileOverrideSource as s, type ProfilePosition as t, type ProfilePresentation as u, type ProfileProject as v, type ProfilePublication as w, type ProfileVolunteering as x, type PublicationContributor as y, type SkillRef as z };
536
+ export { type AdultContentLabel as A, type PublicationContributor as B, type CoSpeaker as C, type SkillRef as D, type ExternalAccount as E, type FeedItem as F, hasAdultContent as G, type LocationValue as L, type ProfileSkill as P, type SkillSuggestion as S, type TrustStat as T, type VerifiedAccount as V, type ActivityLabel as a, type ProfilePresentationDelivery as b, type PdsProviderInfo as c, type Profile as d, ADULT_CONTENT_LABELS as e, type ActiveApp as f, type Endorsement as g, type EndorsementData as h, type ExternalAccountKeytraceClaim as i, type LanguageProficiency as j, type PresentationLinkView as k, type ProfileCertification as l, type ProfileCourse as m, type ProfileEducation as n, type ProfileHonor as o, type ProfileIndustry as p, type ProfileInvolvement as q, type ProfileInvolvementLink as r, type ProfileLanguage as s, type ProfileLocation as t, type ProfileOverrideSource as u, type ProfilePosition as v, type ProfilePresentation as w, type ProfileProject as x, type ProfilePublication as y, type ProfileVolunteering as z };
@@ -238,6 +238,22 @@ interface ProfileInvolvement {
238
238
  startedAt?: string;
239
239
  endedAt?: string;
240
240
  links?: ProfileInvolvementLink[];
241
+ /**
242
+ * Portable org entity identifier (Wikidata/ROR/LEI URI) written when the user
243
+ * picks the upstream from the resolver typeahead. Absent for free-text or
244
+ * one-off involvement.
245
+ */
246
+ entityRef?: string;
247
+ /**
248
+ * Resolved current canonical name of the durably-linked upstream, computed by
249
+ * the AppView at read time. Render over `upstream` when present. Absent for
250
+ * free-text or unresolved entries.
251
+ */
252
+ entityName?: string;
253
+ location?: LocationValue | null;
254
+ skills?: SkillRef[];
255
+ /** Skill records resolved from `skills`, for display. */
256
+ linkedSkills?: ProfileSkill[];
241
257
  /**
242
258
  * True when this row is a mapped legacy `id.sifa.profile.volunteering` record
243
259
  * (no `kind`), rendered under "Volunteering". Editing it backfills to an
@@ -517,4 +533,4 @@ declare function hasAdultContent(item: {
517
533
  labels?: ActivityLabel[];
518
534
  }): boolean;
519
535
 
520
- export { type AdultContentLabel as A, hasAdultContent as B, type CoSpeaker as C, type ExternalAccount as E, type FeedItem as F, type LocationValue as L, type ProfileSkill as P, type SkillSuggestion as S, type TrustStat as T, type VerifiedAccount as V, type ActivityLabel as a, type ProfilePresentationDelivery as b, type PdsProviderInfo as c, type Profile as d, ADULT_CONTENT_LABELS as e, type ActiveApp as f, type Endorsement as g, type EndorsementData as h, type ExternalAccountKeytraceClaim as i, type LanguageProficiency as j, type PresentationLinkView as k, type ProfileCertification as l, type ProfileCourse as m, type ProfileEducation as n, type ProfileHonor as o, type ProfileIndustry as p, type ProfileLanguage as q, type ProfileLocation as r, type ProfileOverrideSource as s, type ProfilePosition as t, type ProfilePresentation as u, type ProfileProject as v, type ProfilePublication as w, type ProfileVolunteering as x, type PublicationContributor as y, type SkillRef as z };
536
+ export { type AdultContentLabel as A, type PublicationContributor as B, type CoSpeaker as C, type SkillRef as D, type ExternalAccount as E, type FeedItem as F, hasAdultContent as G, type LocationValue as L, type ProfileSkill as P, type SkillSuggestion as S, type TrustStat as T, type VerifiedAccount as V, type ActivityLabel as a, type ProfilePresentationDelivery as b, type PdsProviderInfo as c, type Profile as d, ADULT_CONTENT_LABELS as e, type ActiveApp as f, type Endorsement as g, type EndorsementData as h, type ExternalAccountKeytraceClaim as i, type LanguageProficiency as j, type PresentationLinkView as k, type ProfileCertification as l, type ProfileCourse as m, type ProfileEducation as n, type ProfileHonor as o, type ProfileIndustry as p, type ProfileInvolvement as q, type ProfileInvolvementLink as r, type ProfileLanguage as s, type ProfileLocation as t, type ProfileOverrideSource as u, type ProfilePosition as v, type ProfilePresentation as w, type ProfileProject as x, type ProfilePublication as y, type ProfileVolunteering as z };
@@ -421,4 +421,4 @@ interface FeedCursor {
421
421
  declare function encodeFeedCursor(cursor: FeedCursor): string;
422
422
  declare function decodeFeedCursor(encoded: string): FeedCursor;
423
423
 
424
- export { type AtmosphereFeedItem as A, type FollowProfileItem as B, type FollowProfilePage as C, FollowProfilePageSchema as D, type EntityImportSearchResponse as E, FEATURE_FLAGS as F, FollowProfileSchema as G, SifaFeedItemSchema as H, decodeFeedCursor as I, encodeFeedCursor as J, type SifaFeedItem as S, AtmosphereFeedItemSchema as a, EntityImportSearchResponseSchema as b, type EntityMintDomainResponse as c, EntityMintDomainResponseSchema as d, type EntityResolveDomainRequest as e, EntityResolveDomainRequestSchema as f, type EntityResolveDomainResponse as g, EntityResolveDomainResponseSchema as h, type EntitySearchResponse as i, EntitySearchResponseSchema as j, type EntitySearchResult as k, EntitySearchResultSchema as l, type EntitySelectRequest as m, EntitySelectRequestSchema as n, type EntitySelectResponse as o, EntitySelectResponseSchema as p, type FeatureAllowlistEntry as q, FeatureAllowlistEntrySchema as r, type FeatureFlag as s, type FeedActor as t, FeedActorSchema as u, type FeedCursor as v, type FollowFeedItem as w, FollowFeedItemSchema as x, type FollowFeedPage as y, FollowFeedPageSchema as z };
424
+ export { type AtmosphereFeedItem as A, FollowFeedPageSchema as B, type FollowProfilePage as C, FollowProfilePageSchema as D, type EntitySearchResult as E, type FollowFeedPage as F, FollowProfileSchema as G, SifaFeedItemSchema as H, decodeFeedCursor as I, encodeFeedCursor as J, type SifaFeedItem as S, type FollowProfileItem as a, type FeatureAllowlistEntry as b, type FeatureFlag as c, AtmosphereFeedItemSchema as d, type EntityImportSearchResponse as e, EntityImportSearchResponseSchema as f, type EntityMintDomainResponse as g, EntityMintDomainResponseSchema as h, type EntityResolveDomainRequest as i, EntityResolveDomainRequestSchema as j, type EntityResolveDomainResponse as k, EntityResolveDomainResponseSchema as l, type EntitySearchResponse as m, EntitySearchResponseSchema as n, EntitySearchResultSchema as o, type EntitySelectRequest as p, EntitySelectRequestSchema as q, type EntitySelectResponse as r, EntitySelectResponseSchema as s, FEATURE_FLAGS as t, FeatureAllowlistEntrySchema as u, type FeedActor as v, FeedActorSchema as w, type FeedCursor as x, type FollowFeedItem as y, FollowFeedItemSchema as z };
@@ -421,4 +421,4 @@ interface FeedCursor {
421
421
  declare function encodeFeedCursor(cursor: FeedCursor): string;
422
422
  declare function decodeFeedCursor(encoded: string): FeedCursor;
423
423
 
424
- export { type AtmosphereFeedItem as A, type FollowProfileItem as B, type FollowProfilePage as C, FollowProfilePageSchema as D, type EntityImportSearchResponse as E, FEATURE_FLAGS as F, FollowProfileSchema as G, SifaFeedItemSchema as H, decodeFeedCursor as I, encodeFeedCursor as J, type SifaFeedItem as S, AtmosphereFeedItemSchema as a, EntityImportSearchResponseSchema as b, type EntityMintDomainResponse as c, EntityMintDomainResponseSchema as d, type EntityResolveDomainRequest as e, EntityResolveDomainRequestSchema as f, type EntityResolveDomainResponse as g, EntityResolveDomainResponseSchema as h, type EntitySearchResponse as i, EntitySearchResponseSchema as j, type EntitySearchResult as k, EntitySearchResultSchema as l, type EntitySelectRequest as m, EntitySelectRequestSchema as n, type EntitySelectResponse as o, EntitySelectResponseSchema as p, type FeatureAllowlistEntry as q, FeatureAllowlistEntrySchema as r, type FeatureFlag as s, type FeedActor as t, FeedActorSchema as u, type FeedCursor as v, type FollowFeedItem as w, FollowFeedItemSchema as x, type FollowFeedPage as y, FollowFeedPageSchema as z };
424
+ export { type AtmosphereFeedItem as A, FollowFeedPageSchema as B, type FollowProfilePage as C, FollowProfilePageSchema as D, type EntitySearchResult as E, type FollowFeedPage as F, FollowProfileSchema as G, SifaFeedItemSchema as H, decodeFeedCursor as I, encodeFeedCursor as J, type SifaFeedItem as S, type FollowProfileItem as a, type FeatureAllowlistEntry as b, type FeatureFlag as c, AtmosphereFeedItemSchema as d, type EntityImportSearchResponse as e, EntityImportSearchResponseSchema as f, type EntityMintDomainResponse as g, EntityMintDomainResponseSchema as h, type EntityResolveDomainRequest as i, EntityResolveDomainRequestSchema as j, type EntityResolveDomainResponse as k, EntityResolveDomainResponseSchema as l, type EntitySearchResponse as m, EntitySearchResponseSchema as n, EntitySearchResultSchema as o, type EntitySelectRequest as p, EntitySelectRequestSchema as q, type EntitySelectResponse as r, EntitySelectResponseSchema as s, FEATURE_FLAGS as t, FeatureAllowlistEntrySchema as u, type FeedActor as v, FeedActorSchema as w, type FeedCursor as x, type FollowFeedItem as y, FollowFeedItemSchema as z };
@@ -1,10 +1,10 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
- import { S as SifaApiConfig, s as sifaQueryKeys, W as WriteResult, a5 as RefreshPdsResult, aj as UpdateProfileOverrideInput, ak as UpdateProfileSelfInput, al as UploadAvatarResult, j as CreateResult, U as ProfileLocationInput, k as ExternalAccountInput, i as CreateExternalAccountResult, am as VerifyExternalAccountResult, E as EndorsementInput, a4 as RefreshOrcidPublicationsResult, B as BulkHideProfileItemInput, P as HideProfileItemInput, ag as StatsResponse, g as AppRegistryEntry, M as HiddenApp, w as FilterOptions, ab as SearchFilters, ac as SearchResponse, af as SkillSearchResult, l as FeaturedProfile, ae as SimilarProfile, v as FetchSuggestionsOptions, ai as SuggestionsResponse, G as FollowUserResult, o as FetchFollowListOptions, x as FollowListPage, H as FollowingResponse, q as FetchFollowingFeedOptions, p as FetchFollowProfilePageOptions, z as FollowProfilePageResponse, F as FeatureAllowlistResponse, m as FetchActivityFeedOptions, b as ActivityFeedResponse, e as ActivityTeaserResponse, L as HeatmapResponse, a as AccountCheckResult, a3 as ReactionStatus, a2 as ReactionResult, a1 as ReactionError, aa as RoadmapVotesResponse, C as CastRoadmapVoteResult, D as DeleteAccountResult } from './keys-Czq74eql.js';
3
+ import { S as SifaApiConfig, s as sifaQueryKeys, W as WriteResult, a5 as RefreshPdsResult, aj as UpdateProfileOverrideInput, ak as UpdateProfileSelfInput, al as UploadAvatarResult, j as CreateResult, U as ProfileLocationInput, k as ExternalAccountInput, i as CreateExternalAccountResult, am as VerifyExternalAccountResult, E as EndorsementInput, a4 as RefreshOrcidPublicationsResult, B as BulkHideProfileItemInput, P as HideProfileItemInput, ag as StatsResponse, g as AppRegistryEntry, M as HiddenApp, w as FilterOptions, ab as SearchFilters, ac as SearchResponse, af as SkillSearchResult, l as FeaturedProfile, ae as SimilarProfile, v as FetchSuggestionsOptions, ai as SuggestionsResponse, G as FollowUserResult, o as FetchFollowListOptions, x as FollowListPage, H as FollowingResponse, q as FetchFollowingFeedOptions, p as FetchFollowProfilePageOptions, z as FollowProfilePageResponse, F as FeatureAllowlistResponse, m as FetchActivityFeedOptions, b as ActivityFeedResponse, e as ActivityTeaserResponse, L as HeatmapResponse, a as AccountCheckResult, a3 as ReactionStatus, a2 as ReactionResult, a1 as ReactionError, aa as RoadmapVotesResponse, C as CastRoadmapVoteResult, D as DeleteAccountResult } from './keys-BrOsePaR.js';
4
4
  import * as _tanstack_react_query from '@tanstack/react-query';
5
5
  import { UseQueryOptions, UseMutationOptions, UseInfiniteQueryOptions, InfiniteData } from '@tanstack/react-query';
6
- import { d as Profile, t as ProfilePosition, z as SkillRef, E as ExternalAccount, S as SkillSuggestion } from './adult-content-BaQjQsbN.js';
7
- import { i as EntitySearchResponse, k as EntitySearchResult, c as EntityMintDomainResponse, g as EntityResolveDomainResponse, o as EntitySelectResponse, m as EntitySelectRequest, y as FollowFeedPage, s as FeatureFlag } from './feed--omSiO_S.js';
6
+ import { d as Profile, v as ProfilePosition, D as SkillRef, E as ExternalAccount, S as SkillSuggestion } from './adult-content-B6QylaCW.js';
7
+ import { m as EntitySearchResponse, E as EntitySearchResult, g as EntityMintDomainResponse, k as EntityResolveDomainResponse, r as EntitySelectResponse, p as EntitySelectRequest, F as FollowFeedPage, c as FeatureFlag } from './feed-D2ZV8Eaj.js';
8
8
 
9
9
  interface SifaProviderProps {
10
10
  config: SifaApiConfig;
@@ -1,6 +1,6 @@
1
- import { S as SifaApiConfig, A as ApiFetchOptions, j as CreateResult, W as WriteResult } from './keys-Czq74eql.js';
2
- import { d as Profile, t as ProfilePosition, z as SkillRef } from './adult-content-BaQjQsbN.js';
3
- import { i as EntitySearchResponse, k as EntitySearchResult, c as EntityMintDomainResponse, g as EntityResolveDomainResponse, m as EntitySelectRequest, o as EntitySelectResponse } from './feed--omSiO_S.js';
1
+ import { S as SifaApiConfig, A as ApiFetchOptions, j as CreateResult, W as WriteResult } from './keys-BrOsePaR.js';
2
+ import { d as Profile, v as ProfilePosition, D as SkillRef } from './adult-content-B6QylaCW.js';
3
+ import { m as EntitySearchResponse, E as EntitySearchResult, g as EntityMintDomainResponse, k as EntityResolveDomainResponse, p as EntitySelectRequest, r as EntitySelectResponse } from './feed-D2ZV8Eaj.js';
4
4
 
5
5
  /**
6
6
  * Read the aggregated profile for a handle or DID.
@@ -1,10 +1,10 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
- import { S as SifaApiConfig, s as sifaQueryKeys, W as WriteResult, a5 as RefreshPdsResult, aj as UpdateProfileOverrideInput, ak as UpdateProfileSelfInput, al as UploadAvatarResult, j as CreateResult, U as ProfileLocationInput, k as ExternalAccountInput, i as CreateExternalAccountResult, am as VerifyExternalAccountResult, E as EndorsementInput, a4 as RefreshOrcidPublicationsResult, B as BulkHideProfileItemInput, P as HideProfileItemInput, ag as StatsResponse, g as AppRegistryEntry, M as HiddenApp, w as FilterOptions, ab as SearchFilters, ac as SearchResponse, af as SkillSearchResult, l as FeaturedProfile, ae as SimilarProfile, v as FetchSuggestionsOptions, ai as SuggestionsResponse, G as FollowUserResult, o as FetchFollowListOptions, x as FollowListPage, H as FollowingResponse, q as FetchFollowingFeedOptions, p as FetchFollowProfilePageOptions, z as FollowProfilePageResponse, F as FeatureAllowlistResponse, m as FetchActivityFeedOptions, b as ActivityFeedResponse, e as ActivityTeaserResponse, L as HeatmapResponse, a as AccountCheckResult, a3 as ReactionStatus, a2 as ReactionResult, a1 as ReactionError, aa as RoadmapVotesResponse, C as CastRoadmapVoteResult, D as DeleteAccountResult } from './keys-BdLh1txD.cjs';
3
+ import { S as SifaApiConfig, s as sifaQueryKeys, W as WriteResult, a5 as RefreshPdsResult, aj as UpdateProfileOverrideInput, ak as UpdateProfileSelfInput, al as UploadAvatarResult, j as CreateResult, U as ProfileLocationInput, k as ExternalAccountInput, i as CreateExternalAccountResult, am as VerifyExternalAccountResult, E as EndorsementInput, a4 as RefreshOrcidPublicationsResult, B as BulkHideProfileItemInput, P as HideProfileItemInput, ag as StatsResponse, g as AppRegistryEntry, M as HiddenApp, w as FilterOptions, ab as SearchFilters, ac as SearchResponse, af as SkillSearchResult, l as FeaturedProfile, ae as SimilarProfile, v as FetchSuggestionsOptions, ai as SuggestionsResponse, G as FollowUserResult, o as FetchFollowListOptions, x as FollowListPage, H as FollowingResponse, q as FetchFollowingFeedOptions, p as FetchFollowProfilePageOptions, z as FollowProfilePageResponse, F as FeatureAllowlistResponse, m as FetchActivityFeedOptions, b as ActivityFeedResponse, e as ActivityTeaserResponse, L as HeatmapResponse, a as AccountCheckResult, a3 as ReactionStatus, a2 as ReactionResult, a1 as ReactionError, aa as RoadmapVotesResponse, C as CastRoadmapVoteResult, D as DeleteAccountResult } from './keys-9usqNSXo.cjs';
4
4
  import * as _tanstack_react_query from '@tanstack/react-query';
5
5
  import { UseQueryOptions, UseMutationOptions, UseInfiniteQueryOptions, InfiniteData } from '@tanstack/react-query';
6
- import { d as Profile, t as ProfilePosition, z as SkillRef, E as ExternalAccount, S as SkillSuggestion } from './adult-content-BaQjQsbN.cjs';
7
- import { i as EntitySearchResponse, k as EntitySearchResult, c as EntityMintDomainResponse, g as EntityResolveDomainResponse, o as EntitySelectResponse, m as EntitySelectRequest, y as FollowFeedPage, s as FeatureFlag } from './feed--omSiO_S.cjs';
6
+ import { d as Profile, v as ProfilePosition, D as SkillRef, E as ExternalAccount, S as SkillSuggestion } from './adult-content-B6QylaCW.cjs';
7
+ import { m as EntitySearchResponse, E as EntitySearchResult, g as EntityMintDomainResponse, k as EntityResolveDomainResponse, r as EntitySelectResponse, p as EntitySelectRequest, F as FollowFeedPage, c as FeatureFlag } from './feed-D2ZV8Eaj.cjs';
8
8
 
9
9
  interface SifaProviderProps {
10
10
  config: SifaApiConfig;
@@ -1,6 +1,6 @@
1
- import { S as SifaApiConfig, A as ApiFetchOptions, j as CreateResult, W as WriteResult } from './keys-BdLh1txD.cjs';
2
- import { d as Profile, t as ProfilePosition, z as SkillRef } from './adult-content-BaQjQsbN.cjs';
3
- import { i as EntitySearchResponse, k as EntitySearchResult, c as EntityMintDomainResponse, g as EntityResolveDomainResponse, m as EntitySelectRequest, o as EntitySelectResponse } from './feed--omSiO_S.cjs';
1
+ import { S as SifaApiConfig, A as ApiFetchOptions, j as CreateResult, W as WriteResult } from './keys-9usqNSXo.cjs';
2
+ import { d as Profile, v as ProfilePosition, D as SkillRef } from './adult-content-B6QylaCW.cjs';
3
+ import { m as EntitySearchResponse, E as EntitySearchResult, g as EntityMintDomainResponse, k as EntityResolveDomainResponse, p as EntitySelectRequest, r as EntitySelectResponse } from './feed-D2ZV8Eaj.cjs';
4
4
 
5
5
  /**
6
6
  * Read the aggregated profile for a handle or DID.
package/dist/index.cjs CHANGED
@@ -1434,6 +1434,53 @@ function getCalendarEventStatusLabel(value) {
1434
1434
  return CALENDAR_EVENT_STATUS_LABELS[value] ?? value;
1435
1435
  }
1436
1436
 
1437
+ // src/taxonomy/involvement-kind.ts
1438
+ var INVOLVEMENT_KIND_OPTIONS = [
1439
+ { value: "id.sifa.defs#involvementOpenSource", label: "Open source", heading: "Open Source" },
1440
+ { value: "id.sifa.defs#involvementCommunity", label: "Community", heading: "Community" },
1441
+ { value: "id.sifa.defs#involvementCharity", label: "Volunteering", heading: "Volunteering" },
1442
+ { value: "id.sifa.defs#involvementCivic", label: "Civic", heading: "Civic" },
1443
+ { value: "id.sifa.defs#involvementOther", label: "Other", heading: "Other" }
1444
+ ];
1445
+ var INVOLVEMENT_KIND_LABELS = Object.fromEntries(
1446
+ INVOLVEMENT_KIND_OPTIONS.map((o) => [o.value, o.label])
1447
+ );
1448
+ var INVOLVEMENT_KIND_HEADINGS = Object.fromEntries(
1449
+ INVOLVEMENT_KIND_OPTIONS.map((o) => [o.value, o.heading])
1450
+ );
1451
+ function getInvolvementKindLabel(value) {
1452
+ if (!value) return void 0;
1453
+ return INVOLVEMENT_KIND_LABELS[value] ?? value;
1454
+ }
1455
+ function getInvolvementKindHeading(value) {
1456
+ if (!value) return "Other";
1457
+ return INVOLVEMENT_KIND_HEADINGS[value] ?? "Other";
1458
+ }
1459
+
1460
+ // src/taxonomy/artifact-link-kind.ts
1461
+ var ARTIFACT_LINK_KIND_OPTIONS = [
1462
+ { value: "pull-request", label: "Pull request" },
1463
+ { value: "issue", label: "Issue" },
1464
+ { value: "commit", label: "Commit" },
1465
+ { value: "review", label: "Review" },
1466
+ { value: "release", label: "Release" },
1467
+ { value: "talk", label: "Talk" },
1468
+ { value: "video", label: "Video" },
1469
+ { value: "slides", label: "Slides" },
1470
+ { value: "article", label: "Article" },
1471
+ { value: "thread", label: "Thread" },
1472
+ { value: "dataset", label: "Dataset" },
1473
+ { value: "edit", label: "Edit" },
1474
+ { value: "other", label: "Link" }
1475
+ ];
1476
+ var ARTIFACT_LINK_KIND_LABELS = Object.fromEntries(
1477
+ ARTIFACT_LINK_KIND_OPTIONS.map((o) => [o.value, o.label])
1478
+ );
1479
+ function getArtifactLinkKindLabel(value) {
1480
+ if (!value) return void 0;
1481
+ return ARTIFACT_LINK_KIND_LABELS[value] ?? value;
1482
+ }
1483
+
1437
1484
  // src/format/company-name.ts
1438
1485
  var SMALL_WORDS = /* @__PURE__ */ new Set([
1439
1486
  "a",
@@ -2843,6 +2890,33 @@ var ProfileHonorRecordSchema = zod.z.object({
2843
2890
  awardedAt: datetimeSchema.optional(),
2844
2891
  createdAt: datetimeSchema
2845
2892
  });
2893
+ var PROFILE_INVOLVEMENT_NSID = "id.sifa.profile.involvement";
2894
+ var partialDateSchema = zod.z.string().regex(/^\d{4}(-\d{2}(-\d{2}(T.+)?)?)?$/, "Expected YYYY, YYYY-MM, YYYY-MM-DD, or a datetime");
2895
+ var ArtifactLinkSchema = zod.z.object({
2896
+ url: uriSchema,
2897
+ kind: zod.z.string().optional(),
2898
+ label: zod.z.string().refine(maxGraphemes(200)).max(2e3).optional()
2899
+ }).passthrough();
2900
+ var ProfileInvolvementRecordSchema = zod.z.object({
2901
+ kind: zod.z.string(),
2902
+ upstream: zod.z.string().refine(maxGraphemes(256)).max(2560).optional(),
2903
+ upstreamDid: didSchema.optional(),
2904
+ upstreamUrl: uriSchema.optional(),
2905
+ role: zod.z.string().refine(maxGraphemes(256)).max(2560).optional(),
2906
+ description: zod.z.string().refine(maxGraphemes(5e3)).max(5e4).optional(),
2907
+ startedAt: partialDateSchema.optional(),
2908
+ endedAt: partialDateSchema.optional(),
2909
+ links: zod.z.array(ArtifactLinkSchema).max(50).optional(),
2910
+ // Portable org entity identifier (Wikidata/ROR/LEI URI) from the resolver
2911
+ // typeahead, constrained to http(s) so a script scheme is never a valid ref.
2912
+ entityRef: zod.z.string().url().refine((s) => /^https?:\/\//i.test(s), { message: "entityRef must be an http(s) URL" }).max(2048).optional(),
2913
+ // community.lexicon.location.address — validated at the app layer.
2914
+ location: zod.z.unknown().optional(),
2915
+ // id.sifa.defs#skillRef references (at-uri to a skill record in the same repo).
2916
+ skills: zod.z.array(zod.z.object({ uri: zod.z.string() })).max(50).optional(),
2917
+ labels: selfLabelsSchema.optional(),
2918
+ createdAt: datetimeSchema
2919
+ }).passthrough();
2846
2920
  var ProfileLanguageRecordSchema = zod.z.object({
2847
2921
  name: zod.z.string().min(1).refine(maxGraphemes(64)).max(640),
2848
2922
  proficiency: zod.z.string().optional(),
@@ -2965,7 +3039,7 @@ var ProfileVolunteeringRecordSchema = zod.z.object({
2965
3039
  });
2966
3040
 
2967
3041
  // src/index.ts
2968
- var SIFA_SDK_VERSION = "0.11.24";
3042
+ var SIFA_SDK_VERSION = "0.11.26";
2969
3043
 
2970
3044
  exports.ACTIVITY_TIERS = ACTIVITY_TIERS;
2971
3045
  exports.ACTIVITY_VISIBILITY_RULES = ACTIVITY_VISIBILITY_RULES;
@@ -2974,6 +3048,9 @@ exports.APP_CATEGORIES = APP_CATEGORIES;
2974
3048
  exports.APP_CATEGORY_IDS = APP_CATEGORY_IDS;
2975
3049
  exports.APP_CATEGORY_MAP = APP_CATEGORY_MAP;
2976
3050
  exports.APP_URL_PATTERNS = APP_URL_PATTERNS;
3051
+ exports.ARTIFACT_LINK_KIND_LABELS = ARTIFACT_LINK_KIND_LABELS;
3052
+ exports.ARTIFACT_LINK_KIND_OPTIONS = ARTIFACT_LINK_KIND_OPTIONS;
3053
+ exports.ArtifactLinkSchema = ArtifactLinkSchema;
2977
3054
  exports.AtmosphereFeedItemSchema = AtmosphereFeedItemSchema;
2978
3055
  exports.CALENDAR_EVENT_MODE_LABELS = CALENDAR_EVENT_MODE_LABELS;
2979
3056
  exports.CALENDAR_EVENT_STATUS_LABELS = CALENDAR_EVENT_STATUS_LABELS;
@@ -3007,6 +3084,9 @@ exports.FollowProfilePageSchema = FollowProfilePageSchema;
3007
3084
  exports.FollowProfileSchema = FollowProfileSchema;
3008
3085
  exports.GraphFollowRecordSchema = GraphFollowRecordSchema;
3009
3086
  exports.INDUSTRY_OPTIONS = INDUSTRY_OPTIONS;
3087
+ exports.INVOLVEMENT_KIND_HEADINGS = INVOLVEMENT_KIND_HEADINGS;
3088
+ exports.INVOLVEMENT_KIND_LABELS = INVOLVEMENT_KIND_LABELS;
3089
+ exports.INVOLVEMENT_KIND_OPTIONS = INVOLVEMENT_KIND_OPTIONS;
3010
3090
  exports.MIN_SKILLS = MIN_SKILLS;
3011
3091
  exports.OPEN_TO_OPTIONS = OPEN_TO_OPTIONS;
3012
3092
  exports.OPEN_TO_TOKENS = OPEN_TO_TOKENS;
@@ -3018,6 +3098,7 @@ exports.PRESENTATION_LINK_TYPE_LABELS = PRESENTATION_LINK_TYPE_LABELS;
3018
3098
  exports.PRESENTATION_LINK_TYPE_OPTIONS = PRESENTATION_LINK_TYPE_OPTIONS;
3019
3099
  exports.PRESENTATION_ROLE_LABELS = PRESENTATION_ROLE_LABELS;
3020
3100
  exports.PRESENTATION_ROLE_OPTIONS = PRESENTATION_ROLE_OPTIONS;
3101
+ exports.PROFILE_INVOLVEMENT_NSID = PROFILE_INVOLVEMENT_NSID;
3021
3102
  exports.PUBLISHERS = PUBLISHERS;
3022
3103
  exports.PresentationDurationSchema = PresentationDurationSchema;
3023
3104
  exports.PresentationLinkSchema = PresentationLinkSchema;
@@ -3026,6 +3107,7 @@ exports.ProfileCourseRecordSchema = ProfileCourseRecordSchema;
3026
3107
  exports.ProfileEducationRecordSchema = ProfileEducationRecordSchema;
3027
3108
  exports.ProfileExternalAccountRecordSchema = ProfileExternalAccountRecordSchema;
3028
3109
  exports.ProfileHonorRecordSchema = ProfileHonorRecordSchema;
3110
+ exports.ProfileInvolvementRecordSchema = ProfileInvolvementRecordSchema;
3029
3111
  exports.ProfileLanguageRecordSchema = ProfileLanguageRecordSchema;
3030
3112
  exports.ProfilePositionRecordSchema = ProfilePositionRecordSchema;
3031
3113
  exports.ProfilePresentationDeliveryRecordSchema = ProfilePresentationDeliveryRecordSchema;
@@ -3074,6 +3156,7 @@ exports.getActivityTaxonomyVersion = getActivityTaxonomyVersion;
3074
3156
  exports.getActivityTier = getActivityTier;
3075
3157
  exports.getAppCategoryIcon = getAppCategoryIcon;
3076
3158
  exports.getAppIdForCollection = getAppIdForCollection;
3159
+ exports.getArtifactLinkKindLabel = getArtifactLinkKindLabel;
3077
3160
  exports.getCalendarEventModeLabel = getCalendarEventModeLabel;
3078
3161
  exports.getCalendarEventStatusLabel = getCalendarEventStatusLabel;
3079
3162
  exports.getContinent = getContinent;
@@ -3083,6 +3166,8 @@ exports.getFaviconUrl = getFaviconUrl;
3083
3166
  exports.getFilledDimensionsMap = getFilledDimensionsMap;
3084
3167
  exports.getHandleStem = getHandleStem;
3085
3168
  exports.getIndustryLabelKey = getIndustryLabelKey;
3169
+ exports.getInvolvementKindHeading = getInvolvementKindHeading;
3170
+ exports.getInvolvementKindLabel = getInvolvementKindLabel;
3086
3171
  exports.getLexiconEntry = getLexiconEntry;
3087
3172
  exports.getOpenToLabelKey = getOpenToLabelKey;
3088
3173
  exports.getPdsDisplayName = getPdsDisplayName;