@singi-labs/sifa-sdk 0.19.75 → 0.19.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/format/index.js +2 -0
  2. package/dist/format/index.js.map +1 -1
  3. package/dist/format/openalex.js +10 -0
  4. package/dist/format/openalex.js.map +1 -0
  5. package/dist/{index-BFdNI6jA.d.ts → index-DAiJZvPg.d.ts} +8 -0
  6. package/dist/{index-BzkaABDb.d.cts → index-k6tBrbEU.d.cts} +8 -0
  7. package/dist/index.cjs +9 -1
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.d.cts +14 -6
  10. package/dist/index.d.ts +14 -6
  11. package/dist/index.js +3 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/jsonld/index.d.cts +1 -1
  14. package/dist/jsonld/index.d.ts +1 -1
  15. package/dist/{network-map-DPt0o-vA.d.cts → network-map-DInAc_DB.d.cts} +3 -3
  16. package/dist/{network-map-73EK_ow8.d.ts → network-map-DvALufF9.d.ts} +3 -3
  17. package/dist/{profile-summary-CaPVQo_x.d.cts → profile-summary-BcbJrph1.d.cts} +1 -1
  18. package/dist/{profile-summary-8TYJWh1y.d.ts → profile-summary-PRDqxAQT.d.ts} +1 -1
  19. package/dist/query/fetchers/index.cjs +45 -0
  20. package/dist/query/fetchers/index.cjs.map +1 -1
  21. package/dist/query/fetchers/index.d.cts +6 -6
  22. package/dist/query/fetchers/index.d.ts +6 -6
  23. package/dist/query/fetchers/index.js +8 -0
  24. package/dist/query/fetchers/index.js.map +1 -1
  25. package/dist/query/fetchers/user-settings.js +48 -0
  26. package/dist/query/fetchers/user-settings.js.map +1 -0
  27. package/dist/query/hooks/index.cjs +65 -0
  28. package/dist/query/hooks/index.cjs.map +1 -1
  29. package/dist/query/hooks/index.d.cts +4 -4
  30. package/dist/query/hooks/index.d.ts +4 -4
  31. package/dist/query/hooks/index.js +3 -0
  32. package/dist/query/hooks/index.js.map +1 -1
  33. package/dist/query/hooks/use-user-settings.js +34 -0
  34. package/dist/query/hooks/use-user-settings.js.map +1 -0
  35. package/dist/query/index.cjs +66 -0
  36. package/dist/query/index.cjs.map +1 -1
  37. package/dist/query/index.d.cts +9 -9
  38. package/dist/query/index.d.ts +9 -9
  39. package/dist/query/index.js +11 -0
  40. package/dist/query/index.js.map +1 -1
  41. package/dist/query/keys.js +3 -0
  42. package/dist/query/keys.js.map +1 -1
  43. package/dist/resume/index.d.cts +1 -1
  44. package/dist/resume/index.d.ts +1 -1
  45. package/dist/types/index.js.map +1 -1
  46. package/dist/{types-Dl-uk0Ds.d.ts → types-CI24asgo.d.ts} +5 -1
  47. package/dist/{types-BY3qFPDf.d.cts → types-qw55KvoV.d.cts} +5 -1
  48. package/dist/{use-org-notification-emails-ObFoUWP3.d.ts → use-user-settings-B1rJmjQR.d.ts} +24 -4
  49. package/dist/{use-org-notification-emails-u0AQu9Ez.d.cts → use-user-settings-CYDXJNmI.d.cts} +24 -4
  50. package/dist/{org-aUopODEW.d.ts → user-settings-Qwi6wSnK.d.ts} +29 -4
  51. package/dist/{org-Bb1cRhJu.d.cts → user-settings-lenJHz19.d.cts} +29 -4
  52. package/package.json +1 -1
@@ -24,6 +24,7 @@ import {
24
24
  sortByDateDesc
25
25
  } from "./sort-by-date.js";
26
26
  import { normalizeDoi } from "./doi.js";
27
+ import { openAlexWorkUrl } from "./openalex.js";
27
28
  import {
28
29
  formatRelationship,
29
30
  parseEndorsementComment
@@ -86,6 +87,7 @@ export {
86
87
  normalizeCompanyKey,
87
88
  normalizeDoi,
88
89
  normalizeLegalForm,
90
+ openAlexWorkUrl,
89
91
  parseEndorsementComment,
90
92
  parseLocationString,
91
93
  parseTalkRkey,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/format/index.ts"],"sourcesContent":["export { formatCompanyName } from './company-name.js';\nexport { normalizeLegalForm } from './normalize-legal-form.js';\nexport { normalizeCompanyKey } from './normalize-company-key.js';\nexport { formatIsoTitle, formatRelativeTime } from './format-time.js';\nexport { formatPresentationDuration } from './format-duration.js';\nexport {\n formatCredentialDateRange,\n formatDateRange,\n formatPositionDateRange,\n formatTimelineDate,\n} from './timeline.js';\nexport {\n collapseContributors,\n type CollapseContributorsOptions,\n type CollapsedContributors,\n} from './collapse-contributors.js';\nexport {\n summarizePresentationDeliveries,\n type PresentationDeliverySummary,\n} from './summarize-deliveries.js';\nexport {\n certDateExtractor,\n dateRangeExtractor,\n lexiconDateExtractor,\n singleDateExtractor,\n sortByDateDesc,\n} from './sort-by-date.js';\nexport { normalizeDoi } from './doi.js';\nexport {\n formatRelationship,\n parseEndorsementComment,\n type ParsedEndorsementComment,\n} from './endorsement-context.js';\nexport { sanitizeHandleInput } from './handle-utils.js';\nexport { countryCodeToFlag, formatLocation, parseLocationString } from './location-utils.js';\nexport { locationSegments } from './location-segments.js';\nexport type {\n LocationSegment,\n LocationSegmentKind,\n LocationSegmentsOptions,\n} from './location-segments.js';\nexport {\n detectPdsProvider,\n formatStructuredName,\n getDisplayLabel,\n getHandleStem,\n getPdsDisplayName,\n pdsProviderFromApi,\n type PdsProvider,\n} from './pds-utils.js';\nexport { resolveEmbed, youtubeVideoId, youtubeThumbnailUrl, type EmbedResult } from './embed.js';\nexport { buildTalkSlug, parseTalkRkey, slugifyTitle } from './talk-slug.js';\nexport { buildMetaDescription } from './meta-description.js';\nexport type { MetaDescriptionInput, MetaDescriptionPosition } from './meta-description.js';\nexport { limitCombiningMarks, sanitizeDisplayText } from './text-sanitize.js';\nexport { truncateGraphemes } from './text-truncate.js';\nexport { formatDisplayUrl } from './format-display-url.js';\nexport type { DisplayUrl, FormatDisplayUrlOptions, UrlPathPolicy } from './format-display-url.js';\nexport { formatDistanceToNow } from './time-utils.js';\nexport {\n contrastRatio,\n isValidRgbColor,\n meetsContrastAA,\n relativeLuminance,\n rgbToString,\n type RgbColor,\n} from './wcag-contrast.js';\n"],"mappings":";AAAA,SAAS,yBAAyB;AAClC,SAAS,0BAA0B;AACnC,SAAS,2BAA2B;AACpC,SAAS,gBAAgB,0BAA0B;AACnD,SAAS,kCAAkC;AAC3C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAC7B;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP,SAAS,2BAA2B;AACpC,SAAS,mBAAmB,gBAAgB,2BAA2B;AACvE,SAAS,wBAAwB;AAMjC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,cAAc,gBAAgB,2BAA6C;AACpF,SAAS,eAAe,eAAe,oBAAoB;AAC3D,SAAS,4BAA4B;AAErC,SAAS,qBAAqB,2BAA2B;AACzD,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;AAEjC,SAAS,2BAA2B;AACpC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;","names":[]}
1
+ {"version":3,"sources":["../../src/format/index.ts"],"sourcesContent":["export { formatCompanyName } from './company-name.js';\nexport { normalizeLegalForm } from './normalize-legal-form.js';\nexport { normalizeCompanyKey } from './normalize-company-key.js';\nexport { formatIsoTitle, formatRelativeTime } from './format-time.js';\nexport { formatPresentationDuration } from './format-duration.js';\nexport {\n formatCredentialDateRange,\n formatDateRange,\n formatPositionDateRange,\n formatTimelineDate,\n} from './timeline.js';\nexport {\n collapseContributors,\n type CollapseContributorsOptions,\n type CollapsedContributors,\n} from './collapse-contributors.js';\nexport {\n summarizePresentationDeliveries,\n type PresentationDeliverySummary,\n} from './summarize-deliveries.js';\nexport {\n certDateExtractor,\n dateRangeExtractor,\n lexiconDateExtractor,\n singleDateExtractor,\n sortByDateDesc,\n} from './sort-by-date.js';\nexport { normalizeDoi } from './doi.js';\nexport { openAlexWorkUrl } from './openalex.js';\nexport {\n formatRelationship,\n parseEndorsementComment,\n type ParsedEndorsementComment,\n} from './endorsement-context.js';\nexport { sanitizeHandleInput } from './handle-utils.js';\nexport { countryCodeToFlag, formatLocation, parseLocationString } from './location-utils.js';\nexport { locationSegments } from './location-segments.js';\nexport type {\n LocationSegment,\n LocationSegmentKind,\n LocationSegmentsOptions,\n} from './location-segments.js';\nexport {\n detectPdsProvider,\n formatStructuredName,\n getDisplayLabel,\n getHandleStem,\n getPdsDisplayName,\n pdsProviderFromApi,\n type PdsProvider,\n} from './pds-utils.js';\nexport { resolveEmbed, youtubeVideoId, youtubeThumbnailUrl, type EmbedResult } from './embed.js';\nexport { buildTalkSlug, parseTalkRkey, slugifyTitle } from './talk-slug.js';\nexport { buildMetaDescription } from './meta-description.js';\nexport type { MetaDescriptionInput, MetaDescriptionPosition } from './meta-description.js';\nexport { limitCombiningMarks, sanitizeDisplayText } from './text-sanitize.js';\nexport { truncateGraphemes } from './text-truncate.js';\nexport { formatDisplayUrl } from './format-display-url.js';\nexport type { DisplayUrl, FormatDisplayUrlOptions, UrlPathPolicy } from './format-display-url.js';\nexport { formatDistanceToNow } from './time-utils.js';\nexport {\n contrastRatio,\n isValidRgbColor,\n meetsContrastAA,\n relativeLuminance,\n rgbToString,\n type RgbColor,\n} from './wcag-contrast.js';\n"],"mappings":";AAAA,SAAS,yBAAyB;AAClC,SAAS,0BAA0B;AACnC,SAAS,2BAA2B;AACpC,SAAS,gBAAgB,0BAA0B;AACnD,SAAS,kCAAkC;AAC3C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAC7B,SAAS,uBAAuB;AAChC;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP,SAAS,2BAA2B;AACpC,SAAS,mBAAmB,gBAAgB,2BAA2B;AACvE,SAAS,wBAAwB;AAMjC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,cAAc,gBAAgB,2BAA6C;AACpF,SAAS,eAAe,eAAe,oBAAoB;AAC3D,SAAS,4BAA4B;AAErC,SAAS,qBAAqB,2BAA2B;AACzD,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;AAEjC,SAAS,2BAA2B;AACpC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;","names":[]}
@@ -0,0 +1,10 @@
1
+ // src/format/openalex.ts
2
+ var WORK_ID = /^(?:https:\/\/openalex\.org\/)?(W\d+)$/;
3
+ function openAlexWorkUrl(id) {
4
+ const match = id ? WORK_ID.exec(id.trim()) : null;
5
+ return match ? `https://openalex.org/${match[1]}` : void 0;
6
+ }
7
+ export {
8
+ openAlexWorkUrl
9
+ };
10
+ //# sourceMappingURL=openalex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/format/openalex.ts"],"sourcesContent":["const WORK_ID = /^(?:https:\\/\\/openalex\\.org\\/)?(W\\d+)$/;\n\n/**\n * The openalex.org page for an OpenAlex work id (`W2741809807`, or the full\n * `https://openalex.org/W2741809807` the API returns). A citation count links\n * here so a reader can see where the number comes from. Anything that is not a\n * work id returns `undefined`, so the caller renders the count without a link.\n */\nexport function openAlexWorkUrl(id: string | undefined): string | undefined {\n const match = id ? WORK_ID.exec(id.trim()) : null;\n return match ? `https://openalex.org/${match[1]}` : undefined;\n}\n"],"mappings":";AAAA,IAAM,UAAU;AAQT,SAAS,gBAAgB,IAA4C;AAC1E,QAAM,QAAQ,KAAK,QAAQ,KAAK,GAAG,KAAK,CAAC,IAAI;AAC7C,SAAO,QAAQ,wBAAwB,MAAM,CAAC,CAAC,KAAK;AACtD;","names":[]}
@@ -382,6 +382,14 @@ interface ProfilePublication {
382
382
  * to `groupPublicationVersions` to fold a preprint under its published version.
383
383
  */
384
384
  relatedIdentifiers?: RelatedIdentifier[];
385
+ /**
386
+ * Times this work has been cited, as counted by OpenAlex for its DOI. Only
387
+ * sent when the profile owner turned citation counts on and OpenAlex knows
388
+ * the DOI. A display value, never a ranking signal.
389
+ */
390
+ citationCount?: number;
391
+ /** OpenAlex work id (`W…`) the count belongs to; see `openAlexWorkUrl`. */
392
+ openAlexId?: string;
385
393
  }
386
394
  interface ProfileVolunteering {
387
395
  rkey: string;
@@ -382,6 +382,14 @@ interface ProfilePublication {
382
382
  * to `groupPublicationVersions` to fold a preprint under its published version.
383
383
  */
384
384
  relatedIdentifiers?: RelatedIdentifier[];
385
+ /**
386
+ * Times this work has been cited, as counted by OpenAlex for its DOI. Only
387
+ * sent when the profile owner turned citation counts on and OpenAlex knows
388
+ * the DOI. A display value, never a ranking signal.
389
+ */
390
+ citationCount?: number;
391
+ /** OpenAlex work id (`W…`) the count belongs to; see `openAlexWorkUrl`. */
392
+ openAlexId?: string;
385
393
  }
386
394
  interface ProfileVolunteering {
387
395
  rkey: string;
package/dist/index.cjs CHANGED
@@ -2958,6 +2958,13 @@ function normalizeDoi(value) {
2958
2958
  return value.trim().replace(/^https?:\/\/(dx\.)?doi\.org\//i, "").replace(/^doi:\s*/i, "");
2959
2959
  }
2960
2960
 
2961
+ // src/format/openalex.ts
2962
+ var WORK_ID = /^(?:https:\/\/openalex\.org\/)?(W\d+)$/;
2963
+ function openAlexWorkUrl(id) {
2964
+ const match = id ? WORK_ID.exec(id.trim()) : null;
2965
+ return match ? `https://openalex.org/${match[1]}` : void 0;
2966
+ }
2967
+
2961
2968
  // src/format/endorsement-context.ts
2962
2969
  var RELATIONSHIP_PREFIX = /^\[(\w+?)(?:: ([^\]]+))?\]\s*/;
2963
2970
  function formatRelationship(type, detail) {
@@ -7300,7 +7307,7 @@ function describeSifaRecord(collection, value) {
7300
7307
  }
7301
7308
 
7302
7309
  // src/index.ts
7303
- var SIFA_SDK_VERSION = "0.19.75";
7310
+ var SIFA_SDK_VERSION = "0.19.76";
7304
7311
 
7305
7312
  exports.ACTIVITY_TIERS = ACTIVITY_TIERS;
7306
7313
  exports.ACTIVITY_VERBS = ACTIVITY_VERBS;
@@ -7571,6 +7578,7 @@ exports.normalizePresentationRole = normalizePresentationRole;
7571
7578
  exports.normalizeSitePresetTag = normalizeSitePresetTag;
7572
7579
  exports.normalizeSkillCategory = normalizeSkillCategory;
7573
7580
  exports.normalizeWorkplaceTypes = normalizeWorkplaceTypes;
7581
+ exports.openAlexWorkUrl = openAlexWorkUrl;
7574
7582
  exports.openToTokenToValue = openToTokenToValue;
7575
7583
  exports.openToValueToToken = openToValueToToken;
7576
7584
  exports.parseEndorsementComment = parseEndorsementComment;