@singi-labs/sifa-sdk 0.14.6 → 0.15.0
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.cjs +54 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +54 -12
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -979,12 +979,14 @@ function groupSkillsForDisplay(skills, options = {}) {
|
|
|
979
979
|
|
|
980
980
|
// src/taxonomy/app-categories.ts
|
|
981
981
|
var APP_CATEGORIES = {
|
|
982
|
+
Art: { phosphorIcon: "PaintBrush" },
|
|
982
983
|
Articles: { phosphorIcon: "Article" },
|
|
983
984
|
Chat: { phosphorIcon: "ChatsCircle" },
|
|
984
985
|
Code: { phosphorIcon: "Code" },
|
|
985
986
|
Domains: { phosphorIcon: "Globe" },
|
|
986
987
|
Endorsements: { phosphorIcon: "HandHeart" },
|
|
987
988
|
Events: { phosphorIcon: "CalendarBlank" },
|
|
989
|
+
Impact: { phosphorIcon: "Certificate" },
|
|
988
990
|
Links: { phosphorIcon: "LinkSimple" },
|
|
989
991
|
Lists: { phosphorIcon: "ListBullets" },
|
|
990
992
|
Music: { phosphorIcon: "MusicNote" },
|
|
@@ -1127,6 +1129,15 @@ var APP_CATEGORY_MAP = {
|
|
|
1127
1129
|
// at.locale.{project,translation} — localization projects and authored translation strings on locale.at
|
|
1128
1130
|
pckt: "Posts",
|
|
1129
1131
|
// blog.pckt.mini.post — microblog posts with no site.standard.document twin
|
|
1132
|
+
// Onboard from the holke.xyz profile audit (impact-funding ecosystem).
|
|
1133
|
+
hypercerts: "Impact",
|
|
1134
|
+
// org.hypercerts.{claim.activity,collection} — authored claims of work done, and the project collections that group them
|
|
1135
|
+
certified: "Endorsements",
|
|
1136
|
+
// app.certified.{badge.award,actor.membership} — endorsements issued to another DID, and group memberships
|
|
1137
|
+
impactindexer: "Reviews",
|
|
1138
|
+
// org.impactindexer.review.comment — written reviews of a hypercert claim
|
|
1139
|
+
pinksea: "Art",
|
|
1140
|
+
// com.shinolabs.pinksea.oekaki — hand-drawn artwork posted to the PinkSea oekaki BBS
|
|
1130
1141
|
// Web-only (rendered in pills/cards via sifa-web atproto-apps.ts;
|
|
1131
1142
|
// no backend scan collection yet)
|
|
1132
1143
|
linkat: "Links",
|
|
@@ -2789,6 +2800,15 @@ function pickPrimaryPosition(positions) {
|
|
|
2789
2800
|
return [...active].sort((a, b) => (b.startedAt ?? "").localeCompare(a.startedAt ?? ""))[0];
|
|
2790
2801
|
}
|
|
2791
2802
|
|
|
2803
|
+
// src/profile/headline-role-dedupe.ts
|
|
2804
|
+
function normalize(value) {
|
|
2805
|
+
return value.trim().replace(/\s+/g, " ").replace(/[.,;:·|]+$/, "").trim().toLowerCase();
|
|
2806
|
+
}
|
|
2807
|
+
function isRoleLineRedundant(headline, roleLine) {
|
|
2808
|
+
if (!headline || !roleLine) return false;
|
|
2809
|
+
return normalize(headline) === normalize(roleLine);
|
|
2810
|
+
}
|
|
2811
|
+
|
|
2792
2812
|
// src/profile/section-model.ts
|
|
2793
2813
|
var SECTION_GROUPS = [
|
|
2794
2814
|
{ id: "overview", labelKey: "groupOverview" },
|
|
@@ -2915,7 +2935,10 @@ function buildMetaDescription(profile) {
|
|
|
2915
2935
|
if (currentPosition.title) positionParts.push(currentPosition.title);
|
|
2916
2936
|
const company = currentPosition.entityName ?? currentPosition.company;
|
|
2917
2937
|
if (company) positionParts.push(`at ${company}`);
|
|
2918
|
-
if (positionParts.length > 0)
|
|
2938
|
+
if (positionParts.length > 0) {
|
|
2939
|
+
const roleLine = positionParts.join(" ");
|
|
2940
|
+
if (!isRoleLineRedundant(profile.headline, roleLine)) parts.push(roleLine);
|
|
2941
|
+
}
|
|
2919
2942
|
}
|
|
2920
2943
|
if (profile.location) {
|
|
2921
2944
|
parts.push(formatLocation(profile.location));
|
|
@@ -3313,6 +3336,29 @@ var APP_URL_PATTERNS = Object.freeze({
|
|
|
3313
3336
|
urlPattern: "https://kich.io/recipes/{rkey}",
|
|
3314
3337
|
profileUrlPattern: "https://kich.io"
|
|
3315
3338
|
},
|
|
3339
|
+
pinksea: {
|
|
3340
|
+
// PinkSea oekaki viewer. Verified live: GET /{did}/oekaki/{rkey} returns
|
|
3341
|
+
// 200 AND its og:image resolves to harbor.pinksea.art/{did}/{blobCid}
|
|
3342
|
+
// carrying the same CID as the record, so the route really is per-record
|
|
3343
|
+
// and not just an SPA catch-all.
|
|
3344
|
+
urlPattern: "https://pinksea.art/{did}/oekaki/{rkey}",
|
|
3345
|
+
profileUrlPattern: "https://pinksea.art/{did}"
|
|
3346
|
+
},
|
|
3347
|
+
hypercerts: {
|
|
3348
|
+
// No confirmed public per-record viewer. hyperscan.dev is a network-wide
|
|
3349
|
+
// search explorer (its input takes "DID, handle, AT-URI, or PDS host"),
|
|
3350
|
+
// and hypercerts.org 404s on every claim route tried. Recognized so the
|
|
3351
|
+
// pill renders, but cards stay non-clickable.
|
|
3352
|
+
},
|
|
3353
|
+
certified: {
|
|
3354
|
+
// certified.app is fully client-rendered and returns an identical
|
|
3355
|
+
// "Loading" shell for a real DID and a nonsense one, so no per-record
|
|
3356
|
+
// route could be verified. Non-clickable until one is confirmed.
|
|
3357
|
+
},
|
|
3358
|
+
impactindexer: {
|
|
3359
|
+
// Reviews are surfaced through hyperscan.dev/review, which has no
|
|
3360
|
+
// per-record route. Non-clickable.
|
|
3361
|
+
},
|
|
3316
3362
|
recipe: {
|
|
3317
3363
|
// recipe.exchange viewer. Verified: GET /recipes/{rkey} returns 200 (rkey
|
|
3318
3364
|
// alone; no did needed) and /profiles/{handle} returns 200 for the author
|
|
@@ -3415,7 +3461,12 @@ var COLLECTION_TO_APP = [
|
|
|
3415
3461
|
// Onboard from aaronstevenwhite.io profile audit.
|
|
3416
3462
|
["pub.chive.", "chive"],
|
|
3417
3463
|
// Onboard from helene-cook.eu profile audit. Zeens kept its old NSID.
|
|
3418
|
-
["app.photosky.", "zeens"]
|
|
3464
|
+
["app.photosky.", "zeens"],
|
|
3465
|
+
// Onboard from the holke.xyz profile audit.
|
|
3466
|
+
["org.hypercerts.", "hypercerts"],
|
|
3467
|
+
["app.certified.", "certified"],
|
|
3468
|
+
["org.impactindexer.", "impactindexer"],
|
|
3469
|
+
["com.shinolabs.pinksea.", "pinksea"]
|
|
3419
3470
|
];
|
|
3420
3471
|
|
|
3421
3472
|
// src/cards/resolve-card-url.ts
|
|
@@ -5086,15 +5137,6 @@ var sortCertifications = (items) => sortByDateDesc(items, certDateExtractor);
|
|
|
5086
5137
|
var sortHonors = (items) => sortByDateDesc(items, singleDateExtractor);
|
|
5087
5138
|
var sortLanguages = (items) => sortLanguagesByProficiency(items);
|
|
5088
5139
|
|
|
5089
|
-
// src/profile/headline-role-dedupe.ts
|
|
5090
|
-
function normalize(value) {
|
|
5091
|
-
return value.trim().replace(/\s+/g, " ").replace(/[.,;:·|]+$/, "").trim().toLowerCase();
|
|
5092
|
-
}
|
|
5093
|
-
function isRoleLineRedundant(headline, roleLine) {
|
|
5094
|
-
if (!headline || !roleLine) return false;
|
|
5095
|
-
return normalize(headline) === normalize(roleLine);
|
|
5096
|
-
}
|
|
5097
|
-
|
|
5098
5140
|
// src/profile/involvement-grouping.ts
|
|
5099
5141
|
var INVOLVEMENT_HEADING_ORDER = [
|
|
5100
5142
|
"Open Source",
|
|
@@ -5942,7 +5984,7 @@ function describeSifaRecord(collection, value) {
|
|
|
5942
5984
|
}
|
|
5943
5985
|
|
|
5944
5986
|
// src/index.ts
|
|
5945
|
-
var SIFA_SDK_VERSION = "0.
|
|
5987
|
+
var SIFA_SDK_VERSION = "0.15.0";
|
|
5946
5988
|
|
|
5947
5989
|
exports.ACTIVITY_TIERS = ACTIVITY_TIERS;
|
|
5948
5990
|
exports.ACTIVITY_VERBS = ACTIVITY_VERBS;
|