@singi-labs/sifa-sdk 0.9.20 → 0.9.22
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 +107 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +121 -1
- package/dist/index.d.ts +121 -1
- package/dist/index.js +101 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -171,6 +171,126 @@ declare function dedupeSkills(skills: ProfileSkill[]): MergedProfileSkill[];
|
|
|
171
171
|
*/
|
|
172
172
|
declare function groupSkillsByCategory<T extends ProfileSkill>(skills: T[]): [string, T[]][];
|
|
173
173
|
|
|
174
|
+
/**
|
|
175
|
+
* App-category taxonomy for AT Protocol apps tracked by Sifa.
|
|
176
|
+
*
|
|
177
|
+
* Categories group apps by what kind of activity they produce (Posts, Photos,
|
|
178
|
+
* Code, ...). They drive the pill-size icon shown in `<AppPill>` and the
|
|
179
|
+
* fallback glyph used in activity-card headers when no app-specific logo
|
|
180
|
+
* exists.
|
|
181
|
+
*
|
|
182
|
+
* This file is intentionally data-only -- icon mapping is renderer-specific
|
|
183
|
+
* (React DOM Phosphor components on web, React Native components on mobile)
|
|
184
|
+
* and lives in the consumer. The `phosphorIcon` field is the Phosphor icon
|
|
185
|
+
* NAME, not a component reference.
|
|
186
|
+
*
|
|
187
|
+
* Categories are an internal grouping; we do not surface this taxonomy in
|
|
188
|
+
* public-facing copy.
|
|
189
|
+
*/
|
|
190
|
+
declare const APP_CATEGORIES: {
|
|
191
|
+
readonly Articles: {
|
|
192
|
+
readonly phosphorIcon: "Article";
|
|
193
|
+
};
|
|
194
|
+
readonly Chat: {
|
|
195
|
+
readonly phosphorIcon: "ChatsCircle";
|
|
196
|
+
};
|
|
197
|
+
readonly Code: {
|
|
198
|
+
readonly phosphorIcon: "Code";
|
|
199
|
+
};
|
|
200
|
+
readonly Events: {
|
|
201
|
+
readonly phosphorIcon: "CalendarBlank";
|
|
202
|
+
};
|
|
203
|
+
readonly Links: {
|
|
204
|
+
readonly phosphorIcon: "LinkSimple";
|
|
205
|
+
};
|
|
206
|
+
readonly Lists: {
|
|
207
|
+
readonly phosphorIcon: "ListBullets";
|
|
208
|
+
};
|
|
209
|
+
readonly Pages: {
|
|
210
|
+
readonly phosphorIcon: "BrowserSimple";
|
|
211
|
+
};
|
|
212
|
+
readonly Pastes: {
|
|
213
|
+
readonly phosphorIcon: "Clipboard";
|
|
214
|
+
};
|
|
215
|
+
readonly Photos: {
|
|
216
|
+
readonly phosphorIcon: "Camera";
|
|
217
|
+
};
|
|
218
|
+
readonly Places: {
|
|
219
|
+
readonly phosphorIcon: "MapPin";
|
|
220
|
+
};
|
|
221
|
+
readonly Posts: {
|
|
222
|
+
readonly phosphorIcon: "ChatCircle";
|
|
223
|
+
};
|
|
224
|
+
readonly Questions: {
|
|
225
|
+
readonly phosphorIcon: "Question";
|
|
226
|
+
};
|
|
227
|
+
readonly Research: {
|
|
228
|
+
readonly phosphorIcon: "Path";
|
|
229
|
+
};
|
|
230
|
+
readonly Reviews: {
|
|
231
|
+
readonly phosphorIcon: "Star";
|
|
232
|
+
};
|
|
233
|
+
readonly Social: {
|
|
234
|
+
readonly phosphorIcon: "UsersThree";
|
|
235
|
+
};
|
|
236
|
+
readonly Verification: {
|
|
237
|
+
readonly phosphorIcon: "Key";
|
|
238
|
+
};
|
|
239
|
+
readonly Video: {
|
|
240
|
+
readonly phosphorIcon: "VideoCamera";
|
|
241
|
+
};
|
|
242
|
+
};
|
|
243
|
+
type AppCategoryId = keyof typeof APP_CATEGORIES;
|
|
244
|
+
declare const APP_CATEGORY_IDS: AppCategoryId[];
|
|
245
|
+
declare function isAppCategory(value: string): value is AppCategoryId;
|
|
246
|
+
declare function getAppCategoryIcon(category: AppCategoryId): string;
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Maps every AT Protocol app Sifa tracks to its `AppCategoryId`. Single source
|
|
250
|
+
* of truth for what category an app belongs to; sifa-api and sifa-web both
|
|
251
|
+
* import from here.
|
|
252
|
+
*
|
|
253
|
+
* Add a new app: pick the category whose generic glyph best represents the
|
|
254
|
+
* activity. If no existing category fits, add a new one to APP_CATEGORIES
|
|
255
|
+
* rather than introducing a per-app override.
|
|
256
|
+
*/
|
|
257
|
+
|
|
258
|
+
declare const APP_CATEGORY_MAP: {
|
|
259
|
+
readonly bluesky: "Posts";
|
|
260
|
+
readonly tangled: "Code";
|
|
261
|
+
readonly github: "Code";
|
|
262
|
+
readonly smokesignal: "Events";
|
|
263
|
+
readonly flashes: "Photos";
|
|
264
|
+
readonly grain: "Photos";
|
|
265
|
+
readonly whitewind: "Articles";
|
|
266
|
+
readonly frontpage: "Links";
|
|
267
|
+
readonly picosky: "Chat";
|
|
268
|
+
readonly pastesphere: "Pastes";
|
|
269
|
+
readonly standard: "Articles";
|
|
270
|
+
readonly aetheros: "Pages";
|
|
271
|
+
readonly roomy: "Social";
|
|
272
|
+
readonly keytrace: "Verification";
|
|
273
|
+
readonly popfeed: "Reviews";
|
|
274
|
+
readonly streamplace: "Video";
|
|
275
|
+
readonly semble: "Research";
|
|
276
|
+
readonly youandme: "Social";
|
|
277
|
+
readonly leaflet: "Articles";
|
|
278
|
+
readonly colibri: "Social";
|
|
279
|
+
readonly collectivesocial: "Lists";
|
|
280
|
+
readonly linkat: "Links";
|
|
281
|
+
readonly kipclip: "Links";
|
|
282
|
+
readonly statusphere: "Social";
|
|
283
|
+
readonly bookhive: "Reviews";
|
|
284
|
+
readonly passports: "Social";
|
|
285
|
+
readonly beaconbits: "Places";
|
|
286
|
+
readonly margin: "Research";
|
|
287
|
+
readonly anisota: "Posts";
|
|
288
|
+
readonly asq: "Questions";
|
|
289
|
+
};
|
|
290
|
+
type KnownAppId = keyof typeof APP_CATEGORY_MAP;
|
|
291
|
+
declare function isKnownAppId(appId: string): appId is KnownAppId;
|
|
292
|
+
declare function categoryForApp(appId: string): AppCategoryId | undefined;
|
|
293
|
+
|
|
174
294
|
type ActivityTier = 'creation' | 'action' | 'filtered';
|
|
175
295
|
interface TierMeta {
|
|
176
296
|
label: string | null;
|
|
@@ -583,4 +703,4 @@ declare function pickPrimaryPosition<T extends PrimaryPositionCandidate>(positio
|
|
|
583
703
|
*/
|
|
584
704
|
declare const SIFA_SDK_VERSION: string;
|
|
585
705
|
|
|
586
|
-
export { ACTIVITY_TIERS, ACTIVITY_VISIBILITY_RULES, APP_URL_PATTERNS, type ActivityItemForUrl, type ActivityTaxonomy, type ActivityTier, type AppUrlPatterns, CATEGORY_LABELS, CATEGORY_ORDER, COLLECTION_TO_APP, COMPLETENESS_MAX_SCORE, CONTINENTS, COUNTRIES, type ContinentCode, DIMENSIONS_MAX_SCORE, type DimensionKey, type DimensionMap, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, type EmploymentTypeGroup, type EmploymentTypeOption, INDUSTRY_OPTIONS, type IndustryOption, type LexiconEntry, LocationValue, MIN_SKILLS, type MergedProfileSkill, OPEN_TO_OPTIONS, type OpenToOption, PLATFORM_LABELS, PLATFORM_OPTIONS, type PdsProvider, PdsProviderInfo, type PlatformId, type PrimaryPositionCandidate, Profile, type ProfileCompletion, type ProfileDimensionInputs, ProfileSkill, type RgbColor, SIFA_SDK_VERSION, SKILL_CATEGORIES, type SkillCategory, type TierMeta, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, type WorkplaceTypeOption, certDateExtractor, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countryCodeToFlag, dateRangeExtractor, dedupeSkills, detectPdsProvider, dimensionsFromInputs, findIndustry, formatDistanceToNow, formatLocation, formatRelativeTime, getActivityTaxonomyVersion, getActivityTier, getAppIdForCollection, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getTierMeta, getWorkplaceTypeLabel, groupSkillsByCategory, isKnownPlatform, isValidRgbColor, isVisibleActivityItem, lexiconDateExtractor, limitCombiningMarks, meetsContrastAA, parseLocationString, pdsProviderFromApi, pickPrimaryPosition, profileToDimensionInputs, relativeLuminance, resolveCardUrl, rgbToString, sanitizeDisplayText, sanitizeHandleInput, singleDateExtractor, sortByDateDesc, truncateGraphemes };
|
|
706
|
+
export { ACTIVITY_TIERS, ACTIVITY_VISIBILITY_RULES, APP_CATEGORIES, APP_CATEGORY_IDS, APP_CATEGORY_MAP, APP_URL_PATTERNS, type ActivityItemForUrl, type ActivityTaxonomy, type ActivityTier, type AppCategoryId, type AppUrlPatterns, CATEGORY_LABELS, CATEGORY_ORDER, COLLECTION_TO_APP, COMPLETENESS_MAX_SCORE, CONTINENTS, COUNTRIES, type ContinentCode, DIMENSIONS_MAX_SCORE, type DimensionKey, type DimensionMap, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, type EmploymentTypeGroup, type EmploymentTypeOption, INDUSTRY_OPTIONS, type IndustryOption, type KnownAppId, type LexiconEntry, LocationValue, MIN_SKILLS, type MergedProfileSkill, OPEN_TO_OPTIONS, type OpenToOption, PLATFORM_LABELS, PLATFORM_OPTIONS, type PdsProvider, PdsProviderInfo, type PlatformId, type PrimaryPositionCandidate, Profile, type ProfileCompletion, type ProfileDimensionInputs, ProfileSkill, type RgbColor, SIFA_SDK_VERSION, SKILL_CATEGORIES, type SkillCategory, type TierMeta, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, type WorkplaceTypeOption, categoryForApp, certDateExtractor, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countryCodeToFlag, dateRangeExtractor, dedupeSkills, detectPdsProvider, dimensionsFromInputs, findIndustry, formatDistanceToNow, formatLocation, formatRelativeTime, getActivityTaxonomyVersion, getActivityTier, getAppCategoryIcon, getAppIdForCollection, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getTierMeta, getWorkplaceTypeLabel, groupSkillsByCategory, isAppCategory, isKnownAppId, isKnownPlatform, isValidRgbColor, isVisibleActivityItem, lexiconDateExtractor, limitCombiningMarks, meetsContrastAA, parseLocationString, pdsProviderFromApi, pickPrimaryPosition, profileToDimensionInputs, relativeLuminance, resolveCardUrl, rgbToString, sanitizeDisplayText, sanitizeHandleInput, singleDateExtractor, sortByDateDesc, truncateGraphemes };
|
package/dist/index.d.ts
CHANGED
|
@@ -171,6 +171,126 @@ declare function dedupeSkills(skills: ProfileSkill[]): MergedProfileSkill[];
|
|
|
171
171
|
*/
|
|
172
172
|
declare function groupSkillsByCategory<T extends ProfileSkill>(skills: T[]): [string, T[]][];
|
|
173
173
|
|
|
174
|
+
/**
|
|
175
|
+
* App-category taxonomy for AT Protocol apps tracked by Sifa.
|
|
176
|
+
*
|
|
177
|
+
* Categories group apps by what kind of activity they produce (Posts, Photos,
|
|
178
|
+
* Code, ...). They drive the pill-size icon shown in `<AppPill>` and the
|
|
179
|
+
* fallback glyph used in activity-card headers when no app-specific logo
|
|
180
|
+
* exists.
|
|
181
|
+
*
|
|
182
|
+
* This file is intentionally data-only -- icon mapping is renderer-specific
|
|
183
|
+
* (React DOM Phosphor components on web, React Native components on mobile)
|
|
184
|
+
* and lives in the consumer. The `phosphorIcon` field is the Phosphor icon
|
|
185
|
+
* NAME, not a component reference.
|
|
186
|
+
*
|
|
187
|
+
* Categories are an internal grouping; we do not surface this taxonomy in
|
|
188
|
+
* public-facing copy.
|
|
189
|
+
*/
|
|
190
|
+
declare const APP_CATEGORIES: {
|
|
191
|
+
readonly Articles: {
|
|
192
|
+
readonly phosphorIcon: "Article";
|
|
193
|
+
};
|
|
194
|
+
readonly Chat: {
|
|
195
|
+
readonly phosphorIcon: "ChatsCircle";
|
|
196
|
+
};
|
|
197
|
+
readonly Code: {
|
|
198
|
+
readonly phosphorIcon: "Code";
|
|
199
|
+
};
|
|
200
|
+
readonly Events: {
|
|
201
|
+
readonly phosphorIcon: "CalendarBlank";
|
|
202
|
+
};
|
|
203
|
+
readonly Links: {
|
|
204
|
+
readonly phosphorIcon: "LinkSimple";
|
|
205
|
+
};
|
|
206
|
+
readonly Lists: {
|
|
207
|
+
readonly phosphorIcon: "ListBullets";
|
|
208
|
+
};
|
|
209
|
+
readonly Pages: {
|
|
210
|
+
readonly phosphorIcon: "BrowserSimple";
|
|
211
|
+
};
|
|
212
|
+
readonly Pastes: {
|
|
213
|
+
readonly phosphorIcon: "Clipboard";
|
|
214
|
+
};
|
|
215
|
+
readonly Photos: {
|
|
216
|
+
readonly phosphorIcon: "Camera";
|
|
217
|
+
};
|
|
218
|
+
readonly Places: {
|
|
219
|
+
readonly phosphorIcon: "MapPin";
|
|
220
|
+
};
|
|
221
|
+
readonly Posts: {
|
|
222
|
+
readonly phosphorIcon: "ChatCircle";
|
|
223
|
+
};
|
|
224
|
+
readonly Questions: {
|
|
225
|
+
readonly phosphorIcon: "Question";
|
|
226
|
+
};
|
|
227
|
+
readonly Research: {
|
|
228
|
+
readonly phosphorIcon: "Path";
|
|
229
|
+
};
|
|
230
|
+
readonly Reviews: {
|
|
231
|
+
readonly phosphorIcon: "Star";
|
|
232
|
+
};
|
|
233
|
+
readonly Social: {
|
|
234
|
+
readonly phosphorIcon: "UsersThree";
|
|
235
|
+
};
|
|
236
|
+
readonly Verification: {
|
|
237
|
+
readonly phosphorIcon: "Key";
|
|
238
|
+
};
|
|
239
|
+
readonly Video: {
|
|
240
|
+
readonly phosphorIcon: "VideoCamera";
|
|
241
|
+
};
|
|
242
|
+
};
|
|
243
|
+
type AppCategoryId = keyof typeof APP_CATEGORIES;
|
|
244
|
+
declare const APP_CATEGORY_IDS: AppCategoryId[];
|
|
245
|
+
declare function isAppCategory(value: string): value is AppCategoryId;
|
|
246
|
+
declare function getAppCategoryIcon(category: AppCategoryId): string;
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Maps every AT Protocol app Sifa tracks to its `AppCategoryId`. Single source
|
|
250
|
+
* of truth for what category an app belongs to; sifa-api and sifa-web both
|
|
251
|
+
* import from here.
|
|
252
|
+
*
|
|
253
|
+
* Add a new app: pick the category whose generic glyph best represents the
|
|
254
|
+
* activity. If no existing category fits, add a new one to APP_CATEGORIES
|
|
255
|
+
* rather than introducing a per-app override.
|
|
256
|
+
*/
|
|
257
|
+
|
|
258
|
+
declare const APP_CATEGORY_MAP: {
|
|
259
|
+
readonly bluesky: "Posts";
|
|
260
|
+
readonly tangled: "Code";
|
|
261
|
+
readonly github: "Code";
|
|
262
|
+
readonly smokesignal: "Events";
|
|
263
|
+
readonly flashes: "Photos";
|
|
264
|
+
readonly grain: "Photos";
|
|
265
|
+
readonly whitewind: "Articles";
|
|
266
|
+
readonly frontpage: "Links";
|
|
267
|
+
readonly picosky: "Chat";
|
|
268
|
+
readonly pastesphere: "Pastes";
|
|
269
|
+
readonly standard: "Articles";
|
|
270
|
+
readonly aetheros: "Pages";
|
|
271
|
+
readonly roomy: "Social";
|
|
272
|
+
readonly keytrace: "Verification";
|
|
273
|
+
readonly popfeed: "Reviews";
|
|
274
|
+
readonly streamplace: "Video";
|
|
275
|
+
readonly semble: "Research";
|
|
276
|
+
readonly youandme: "Social";
|
|
277
|
+
readonly leaflet: "Articles";
|
|
278
|
+
readonly colibri: "Social";
|
|
279
|
+
readonly collectivesocial: "Lists";
|
|
280
|
+
readonly linkat: "Links";
|
|
281
|
+
readonly kipclip: "Links";
|
|
282
|
+
readonly statusphere: "Social";
|
|
283
|
+
readonly bookhive: "Reviews";
|
|
284
|
+
readonly passports: "Social";
|
|
285
|
+
readonly beaconbits: "Places";
|
|
286
|
+
readonly margin: "Research";
|
|
287
|
+
readonly anisota: "Posts";
|
|
288
|
+
readonly asq: "Questions";
|
|
289
|
+
};
|
|
290
|
+
type KnownAppId = keyof typeof APP_CATEGORY_MAP;
|
|
291
|
+
declare function isKnownAppId(appId: string): appId is KnownAppId;
|
|
292
|
+
declare function categoryForApp(appId: string): AppCategoryId | undefined;
|
|
293
|
+
|
|
174
294
|
type ActivityTier = 'creation' | 'action' | 'filtered';
|
|
175
295
|
interface TierMeta {
|
|
176
296
|
label: string | null;
|
|
@@ -583,4 +703,4 @@ declare function pickPrimaryPosition<T extends PrimaryPositionCandidate>(positio
|
|
|
583
703
|
*/
|
|
584
704
|
declare const SIFA_SDK_VERSION: string;
|
|
585
705
|
|
|
586
|
-
export { ACTIVITY_TIERS, ACTIVITY_VISIBILITY_RULES, APP_URL_PATTERNS, type ActivityItemForUrl, type ActivityTaxonomy, type ActivityTier, type AppUrlPatterns, CATEGORY_LABELS, CATEGORY_ORDER, COLLECTION_TO_APP, COMPLETENESS_MAX_SCORE, CONTINENTS, COUNTRIES, type ContinentCode, DIMENSIONS_MAX_SCORE, type DimensionKey, type DimensionMap, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, type EmploymentTypeGroup, type EmploymentTypeOption, INDUSTRY_OPTIONS, type IndustryOption, type LexiconEntry, LocationValue, MIN_SKILLS, type MergedProfileSkill, OPEN_TO_OPTIONS, type OpenToOption, PLATFORM_LABELS, PLATFORM_OPTIONS, type PdsProvider, PdsProviderInfo, type PlatformId, type PrimaryPositionCandidate, Profile, type ProfileCompletion, type ProfileDimensionInputs, ProfileSkill, type RgbColor, SIFA_SDK_VERSION, SKILL_CATEGORIES, type SkillCategory, type TierMeta, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, type WorkplaceTypeOption, certDateExtractor, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countryCodeToFlag, dateRangeExtractor, dedupeSkills, detectPdsProvider, dimensionsFromInputs, findIndustry, formatDistanceToNow, formatLocation, formatRelativeTime, getActivityTaxonomyVersion, getActivityTier, getAppIdForCollection, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getTierMeta, getWorkplaceTypeLabel, groupSkillsByCategory, isKnownPlatform, isValidRgbColor, isVisibleActivityItem, lexiconDateExtractor, limitCombiningMarks, meetsContrastAA, parseLocationString, pdsProviderFromApi, pickPrimaryPosition, profileToDimensionInputs, relativeLuminance, resolveCardUrl, rgbToString, sanitizeDisplayText, sanitizeHandleInput, singleDateExtractor, sortByDateDesc, truncateGraphemes };
|
|
706
|
+
export { ACTIVITY_TIERS, ACTIVITY_VISIBILITY_RULES, APP_CATEGORIES, APP_CATEGORY_IDS, APP_CATEGORY_MAP, APP_URL_PATTERNS, type ActivityItemForUrl, type ActivityTaxonomy, type ActivityTier, type AppCategoryId, type AppUrlPatterns, CATEGORY_LABELS, CATEGORY_ORDER, COLLECTION_TO_APP, COMPLETENESS_MAX_SCORE, CONTINENTS, COUNTRIES, type ContinentCode, DIMENSIONS_MAX_SCORE, type DimensionKey, type DimensionMap, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, type EmploymentTypeGroup, type EmploymentTypeOption, INDUSTRY_OPTIONS, type IndustryOption, type KnownAppId, type LexiconEntry, LocationValue, MIN_SKILLS, type MergedProfileSkill, OPEN_TO_OPTIONS, type OpenToOption, PLATFORM_LABELS, PLATFORM_OPTIONS, type PdsProvider, PdsProviderInfo, type PlatformId, type PrimaryPositionCandidate, Profile, type ProfileCompletion, type ProfileDimensionInputs, ProfileSkill, type RgbColor, SIFA_SDK_VERSION, SKILL_CATEGORIES, type SkillCategory, type TierMeta, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, type WorkplaceTypeOption, categoryForApp, certDateExtractor, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countryCodeToFlag, dateRangeExtractor, dedupeSkills, detectPdsProvider, dimensionsFromInputs, findIndustry, formatDistanceToNow, formatLocation, formatRelativeTime, getActivityTaxonomyVersion, getActivityTier, getAppCategoryIcon, getAppIdForCollection, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getTierMeta, getWorkplaceTypeLabel, groupSkillsByCategory, isAppCategory, isKnownAppId, isKnownPlatform, isValidRgbColor, isVisibleActivityItem, lexiconDateExtractor, limitCombiningMarks, meetsContrastAA, parseLocationString, pdsProviderFromApi, pickPrimaryPosition, profileToDimensionInputs, relativeLuminance, resolveCardUrl, rgbToString, sanitizeDisplayText, sanitizeHandleInput, singleDateExtractor, sortByDateDesc, truncateGraphemes };
|
package/dist/index.js
CHANGED
|
@@ -794,6 +794,76 @@ function groupSkillsByCategory(skills) {
|
|
|
794
794
|
return ordered;
|
|
795
795
|
}
|
|
796
796
|
|
|
797
|
+
// src/taxonomy/app-categories.ts
|
|
798
|
+
var APP_CATEGORIES = {
|
|
799
|
+
Articles: { phosphorIcon: "Article" },
|
|
800
|
+
Chat: { phosphorIcon: "ChatsCircle" },
|
|
801
|
+
Code: { phosphorIcon: "Code" },
|
|
802
|
+
Events: { phosphorIcon: "CalendarBlank" },
|
|
803
|
+
Links: { phosphorIcon: "LinkSimple" },
|
|
804
|
+
Lists: { phosphorIcon: "ListBullets" },
|
|
805
|
+
Pages: { phosphorIcon: "BrowserSimple" },
|
|
806
|
+
Pastes: { phosphorIcon: "Clipboard" },
|
|
807
|
+
Photos: { phosphorIcon: "Camera" },
|
|
808
|
+
Places: { phosphorIcon: "MapPin" },
|
|
809
|
+
Posts: { phosphorIcon: "ChatCircle" },
|
|
810
|
+
Questions: { phosphorIcon: "Question" },
|
|
811
|
+
Research: { phosphorIcon: "Path" },
|
|
812
|
+
Reviews: { phosphorIcon: "Star" },
|
|
813
|
+
Social: { phosphorIcon: "UsersThree" },
|
|
814
|
+
Verification: { phosphorIcon: "Key" },
|
|
815
|
+
Video: { phosphorIcon: "VideoCamera" }
|
|
816
|
+
};
|
|
817
|
+
var APP_CATEGORY_IDS = Object.keys(APP_CATEGORIES);
|
|
818
|
+
function isAppCategory(value) {
|
|
819
|
+
return Object.prototype.hasOwnProperty.call(APP_CATEGORIES, value);
|
|
820
|
+
}
|
|
821
|
+
function getAppCategoryIcon(category) {
|
|
822
|
+
return APP_CATEGORIES[category].phosphorIcon;
|
|
823
|
+
}
|
|
824
|
+
|
|
825
|
+
// src/taxonomy/app-category-map.ts
|
|
826
|
+
var APP_CATEGORY_MAP = {
|
|
827
|
+
// API registry (backend-scanned)
|
|
828
|
+
bluesky: "Posts",
|
|
829
|
+
tangled: "Code",
|
|
830
|
+
github: "Code",
|
|
831
|
+
smokesignal: "Events",
|
|
832
|
+
flashes: "Photos",
|
|
833
|
+
grain: "Photos",
|
|
834
|
+
whitewind: "Articles",
|
|
835
|
+
frontpage: "Links",
|
|
836
|
+
picosky: "Chat",
|
|
837
|
+
pastesphere: "Pastes",
|
|
838
|
+
standard: "Articles",
|
|
839
|
+
aetheros: "Pages",
|
|
840
|
+
roomy: "Social",
|
|
841
|
+
keytrace: "Verification",
|
|
842
|
+
popfeed: "Reviews",
|
|
843
|
+
streamplace: "Video",
|
|
844
|
+
semble: "Research",
|
|
845
|
+
youandme: "Social",
|
|
846
|
+
leaflet: "Articles",
|
|
847
|
+
colibri: "Social",
|
|
848
|
+
collectivesocial: "Lists",
|
|
849
|
+
// Web-only (rendered in pills/cards; not scanned as standalone collections yet)
|
|
850
|
+
linkat: "Links",
|
|
851
|
+
kipclip: "Links",
|
|
852
|
+
statusphere: "Social",
|
|
853
|
+
bookhive: "Reviews",
|
|
854
|
+
passports: "Social",
|
|
855
|
+
beaconbits: "Places",
|
|
856
|
+
margin: "Research",
|
|
857
|
+
anisota: "Posts",
|
|
858
|
+
asq: "Questions"
|
|
859
|
+
};
|
|
860
|
+
function isKnownAppId(appId) {
|
|
861
|
+
return Object.prototype.hasOwnProperty.call(APP_CATEGORY_MAP, appId);
|
|
862
|
+
}
|
|
863
|
+
function categoryForApp(appId) {
|
|
864
|
+
return isKnownAppId(appId) ? APP_CATEGORY_MAP[appId] : void 0;
|
|
865
|
+
}
|
|
866
|
+
|
|
797
867
|
// src/taxonomy/activity-tiers.json
|
|
798
868
|
var activity_tiers_default = {
|
|
799
869
|
$schema: "https://sifa.id/schemas/activity-tiers/v1.json",
|
|
@@ -1434,7 +1504,7 @@ var APP_URL_PATTERNS = Object.freeze({
|
|
|
1434
1504
|
profileUrlPattern: "https://grain.social/profile/{did}"
|
|
1435
1505
|
},
|
|
1436
1506
|
youandme: { profileUrlPattern: "https://youandme.at" },
|
|
1437
|
-
anisota:
|
|
1507
|
+
// anisota: upgraded with per-record URL pattern below.
|
|
1438
1508
|
margin: { profileUrlPattern: "https://margin.at" },
|
|
1439
1509
|
beaconbits: { profileUrlPattern: "https://beaconbits.app" },
|
|
1440
1510
|
bookhive: { profileUrlPattern: "https://bookhive.buzz/profile/{handle}" },
|
|
@@ -1461,6 +1531,29 @@ var APP_URL_PATTERNS = Object.freeze({
|
|
|
1461
1531
|
// at the marketing site.
|
|
1462
1532
|
urlPattern: "https://leaflet.pub/{rkey}",
|
|
1463
1533
|
profileUrlPattern: "https://leaflet.pub"
|
|
1534
|
+
},
|
|
1535
|
+
spark: {
|
|
1536
|
+
// Verified live: GET /post/{did}/{rkey} returns 200.
|
|
1537
|
+
urlPattern: "https://sprk.so/post/{did}/{rkey}",
|
|
1538
|
+
profileUrlPattern: "https://sprk.so/profile/{handle}"
|
|
1539
|
+
},
|
|
1540
|
+
anisota: {
|
|
1541
|
+
urlPattern: "https://anisota.net/post/{did}/{rkey}",
|
|
1542
|
+
profileUrlPattern: "https://anisota.net/profile/{handle}"
|
|
1543
|
+
},
|
|
1544
|
+
nooki: {
|
|
1545
|
+
// Per-post URLs use slug-based routing (e.g. /post/{slug}), not rkey —
|
|
1546
|
+
// can't be constructed from a record. Profile fallback only.
|
|
1547
|
+
profileUrlPattern: "https://nooki.me/user/{handle}"
|
|
1548
|
+
},
|
|
1549
|
+
atstore: {
|
|
1550
|
+
// SPA — per-record URLs require JS routing. Profile fallback only.
|
|
1551
|
+
profileUrlPattern: "https://atstore.fyi/@{handle}"
|
|
1552
|
+
},
|
|
1553
|
+
plyr: {
|
|
1554
|
+
// SPA — per-record URLs require JS routing. plyr.fm doesn't expose a
|
|
1555
|
+
// public per-handle profile page server-side either; falls back to root.
|
|
1556
|
+
profileUrlPattern: "https://plyr.fm"
|
|
1464
1557
|
}
|
|
1465
1558
|
});
|
|
1466
1559
|
var COLLECTION_TO_APP = [
|
|
@@ -1497,7 +1590,11 @@ var COLLECTION_TO_APP = [
|
|
|
1497
1590
|
["social.colibri.", "colibri"],
|
|
1498
1591
|
["social.passports.", "passports"],
|
|
1499
1592
|
["fyi.asq.", "asq"],
|
|
1500
|
-
["pub.leaflet.", "leaflet"]
|
|
1593
|
+
["pub.leaflet.", "leaflet"],
|
|
1594
|
+
["so.sprk.", "spark"],
|
|
1595
|
+
["community.nooki.", "nooki"],
|
|
1596
|
+
["fyi.atstore.", "atstore"],
|
|
1597
|
+
["fm.plyr.", "plyr"]
|
|
1501
1598
|
];
|
|
1502
1599
|
|
|
1503
1600
|
// src/cards/resolve-card-url.ts
|
|
@@ -1964,8 +2061,8 @@ var ProfileVolunteeringRecordSchema = z.object({
|
|
|
1964
2061
|
});
|
|
1965
2062
|
|
|
1966
2063
|
// src/index.ts
|
|
1967
|
-
var SIFA_SDK_VERSION = "0.9.
|
|
2064
|
+
var SIFA_SDK_VERSION = "0.9.22";
|
|
1968
2065
|
|
|
1969
|
-
export { ACTIVITY_TIERS, ACTIVITY_VISIBILITY_RULES, APP_URL_PATTERNS, AtmosphereFeedItemSchema, CATEGORY_LABELS, CATEGORY_ORDER, COLLECTION_TO_APP, COMPLETENESS_MAX_SCORE, CONTINENTS, COUNTRIES, DIMENSIONS_MAX_SCORE, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, EndorsementConfirmationRecordSchema, EndorsementRecordSchema, FEATURE_FLAGS, FeatureAllowlistEntrySchema, FeedActorSchema, FollowFeedItemSchema, FollowFeedPageSchema, FollowProfilePageSchema, FollowProfileSchema, GraphFollowRecordSchema, INDUSTRY_OPTIONS, MIN_SKILLS, OPEN_TO_OPTIONS, PLATFORM_LABELS, PLATFORM_OPTIONS, ProfileCertificationRecordSchema, ProfileCourseRecordSchema, ProfileEducationRecordSchema, ProfileExternalAccountRecordSchema, ProfileHonorRecordSchema, ProfileLanguageRecordSchema, ProfilePositionRecordSchema, ProfileProjectRecordSchema, ProfilePublicationRecordSchema, ProfileSelfRecordSchema, ProfileSkillRecordSchema, ProfileVolunteeringRecordSchema, PublicationAuthorSchema, SIFA_SDK_VERSION, SKILL_CATEGORIES, SifaFeedItemSchema, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, atUriSchema, certDateExtractor, cidSchema, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countryCodeToFlag, dateRangeExtractor, datetimeSchema, decodeFeedCursor, dedupeSkills, detectPdsProvider, didSchema, dimensionsFromInputs, encodeFeedCursor, findIndustry, formatDistanceToNow, formatLocation, formatRelativeTime, getActivityTaxonomyVersion, getActivityTier, getAppIdForCollection, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getTierMeta, getWorkplaceTypeLabel, groupSkillsByCategory, isKnownPlatform, isValidRgbColor, isVisibleActivityItem, languageTagSchema, lexiconDateExtractor, limitCombiningMarks, makeGraphFollowRecordSchema, maxGraphemes, meetsContrastAA, parseLocationString, pdsProviderFromApi, pickPrimaryPosition, profileToDimensionInputs, relativeLuminance, resolveCardUrl, rgbToString, sanitizeDisplayText, sanitizeHandleInput, selfLabelsSchema, singleDateExtractor, sortByDateDesc, strongRefSchema, truncateGraphemes, uriSchema };
|
|
2066
|
+
export { ACTIVITY_TIERS, ACTIVITY_VISIBILITY_RULES, APP_CATEGORIES, APP_CATEGORY_IDS, APP_CATEGORY_MAP, APP_URL_PATTERNS, AtmosphereFeedItemSchema, CATEGORY_LABELS, CATEGORY_ORDER, COLLECTION_TO_APP, COMPLETENESS_MAX_SCORE, CONTINENTS, COUNTRIES, DIMENSIONS_MAX_SCORE, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, EndorsementConfirmationRecordSchema, EndorsementRecordSchema, FEATURE_FLAGS, FeatureAllowlistEntrySchema, FeedActorSchema, FollowFeedItemSchema, FollowFeedPageSchema, FollowProfilePageSchema, FollowProfileSchema, GraphFollowRecordSchema, INDUSTRY_OPTIONS, MIN_SKILLS, OPEN_TO_OPTIONS, PLATFORM_LABELS, PLATFORM_OPTIONS, ProfileCertificationRecordSchema, ProfileCourseRecordSchema, ProfileEducationRecordSchema, ProfileExternalAccountRecordSchema, ProfileHonorRecordSchema, ProfileLanguageRecordSchema, ProfilePositionRecordSchema, ProfileProjectRecordSchema, ProfilePublicationRecordSchema, ProfileSelfRecordSchema, ProfileSkillRecordSchema, ProfileVolunteeringRecordSchema, PublicationAuthorSchema, SIFA_SDK_VERSION, SKILL_CATEGORIES, SifaFeedItemSchema, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, atUriSchema, categoryForApp, certDateExtractor, cidSchema, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countryCodeToFlag, dateRangeExtractor, datetimeSchema, decodeFeedCursor, dedupeSkills, detectPdsProvider, didSchema, dimensionsFromInputs, encodeFeedCursor, findIndustry, formatDistanceToNow, formatLocation, formatRelativeTime, getActivityTaxonomyVersion, getActivityTier, getAppCategoryIcon, getAppIdForCollection, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getTierMeta, getWorkplaceTypeLabel, groupSkillsByCategory, isAppCategory, isKnownAppId, isKnownPlatform, isValidRgbColor, isVisibleActivityItem, languageTagSchema, lexiconDateExtractor, limitCombiningMarks, makeGraphFollowRecordSchema, maxGraphemes, meetsContrastAA, parseLocationString, pdsProviderFromApi, pickPrimaryPosition, profileToDimensionInputs, relativeLuminance, resolveCardUrl, rgbToString, sanitizeDisplayText, sanitizeHandleInput, selfLabelsSchema, singleDateExtractor, sortByDateDesc, strongRefSchema, truncateGraphemes, uriSchema };
|
|
1970
2067
|
//# sourceMappingURL=index.js.map
|
|
1971
2068
|
//# sourceMappingURL=index.js.map
|