@ewanc26/atproto 0.2.8 → 0.2.9
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/fetch.d.ts +7 -1
- package/dist/fetch.d.ts.map +1 -1
- package/dist/fetch.js +200 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/types.d.ts +46 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/fetch.ts +264 -1
- package/src/index.ts +15 -2
- package/src/types.ts +55 -0
package/dist/fetch.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ProfileData, SiteInfoData, LinkData, MusicStatusData, KibunStatusData, TangledReposData, PopfeedReview } from './types.js';
|
|
1
|
+
import type { ProfileData, SiteInfoData, LinkData, MusicStatusData, KibunStatusData, TangledReposData, PopfeedReview, SifaProfileData, SifaSkill, SifaProject, SifaLanguage, SifaCertification, SifaExternalAccount } from './types.js';
|
|
2
2
|
export declare function fetchProfile(did: string, fetchFn?: typeof fetch): Promise<ProfileData>;
|
|
3
3
|
export declare function fetchSiteInfo(did: string, fetchFn?: typeof fetch): Promise<SiteInfoData | null>;
|
|
4
4
|
export declare function fetchLinks(did: string, fetchFn?: typeof fetch): Promise<LinkData | null>;
|
|
@@ -6,4 +6,10 @@ export declare function fetchMusicStatus(did: string, fetchFn?: typeof fetch): P
|
|
|
6
6
|
export declare function fetchKibunStatus(did: string, fetchFn?: typeof fetch): Promise<KibunStatusData | null>;
|
|
7
7
|
export declare function fetchRecentPopfeedReviews(did: string, limit?: number, fetchFn?: typeof fetch): Promise<PopfeedReview[]>;
|
|
8
8
|
export declare function fetchTangledRepos(did: string, fetchFn?: typeof fetch): Promise<TangledReposData | null>;
|
|
9
|
+
export declare function fetchSifaProfile(did: string, fetchFn?: typeof fetch): Promise<SifaProfileData | null>;
|
|
10
|
+
export declare function fetchSifaSkills(did: string, fetchFn?: typeof fetch): Promise<SifaSkill[]>;
|
|
11
|
+
export declare function fetchSifaProjects(did: string, fetchFn?: typeof fetch): Promise<SifaProject[]>;
|
|
12
|
+
export declare function fetchSifaLanguages(did: string, fetchFn?: typeof fetch): Promise<SifaLanguage[]>;
|
|
13
|
+
export declare function fetchSifaCertifications(did: string, fetchFn?: typeof fetch): Promise<SifaCertification[]>;
|
|
14
|
+
export declare function fetchSifaExternalAccounts(did: string, fetchFn?: typeof fetch): Promise<SifaExternalAccount[]>;
|
|
9
15
|
//# sourceMappingURL=fetch.d.ts.map
|
package/dist/fetch.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,eAAe,EAEf,gBAAgB,EAChB,aAAa,EAGb,MAAM,YAAY,CAAC;AAEpB,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAgD5F;AAED,wBAAsB,aAAa,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,KAAK,GACpB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAgC9B;AAED,wBAAsB,UAAU,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,KAAK,GACpB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CA2B1B;AAED,wBAAsB,gBAAgB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,KAAK,GACpB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAkIjC;AAED,wBAAsB,gBAAgB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,KAAK,GACpB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAmCjC;AAED,wBAAsB,yBAAyB,CAC9C,GAAG,EAAE,MAAM,EACX,KAAK,SAAI,EACT,OAAO,CAAC,EAAE,OAAO,KAAK,GACpB,OAAO,CAAC,aAAa,EAAE,CAAC,CAgD1B;AAED,wBAAsB,iBAAiB,CACtC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,KAAK,GACpB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA2ClC"}
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,eAAe,EAEf,gBAAgB,EAChB,aAAa,EAGb,eAAe,EACf,SAAS,EACT,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,MAAM,YAAY,CAAC;AAEpB,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAgD5F;AAED,wBAAsB,aAAa,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,KAAK,GACpB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAgC9B;AAED,wBAAsB,UAAU,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,KAAK,GACpB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CA2B1B;AAED,wBAAsB,gBAAgB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,KAAK,GACpB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAkIjC;AAED,wBAAsB,gBAAgB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,KAAK,GACpB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAmCjC;AAED,wBAAsB,yBAAyB,CAC9C,GAAG,EAAE,MAAM,EACX,KAAK,SAAI,EACT,OAAO,CAAC,EAAE,OAAO,KAAK,GACpB,OAAO,CAAC,aAAa,EAAE,CAAC,CAgD1B;AAED,wBAAsB,iBAAiB,CACtC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,KAAK,GACpB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA2ClC;AAID,wBAAsB,gBAAgB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,KAAK,GACpB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAqCjC;AAED,wBAAsB,eAAe,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,KAAK,GACpB,OAAO,CAAC,SAAS,EAAE,CAAC,CAkCtB;AAED,wBAAsB,iBAAiB,CACtC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,KAAK,GACpB,OAAO,CAAC,WAAW,EAAE,CAAC,CA0CxB;AAED,wBAAsB,kBAAkB,CACvC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,KAAK,GACpB,OAAO,CAAC,YAAY,EAAE,CAAC,CAkCzB;AAED,wBAAsB,uBAAuB,CAC5C,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,KAAK,GACpB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAyC9B;AAED,wBAAsB,yBAAyB,CAC9C,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,KAAK,GACpB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAqChC"}
|
package/dist/fetch.js
CHANGED
|
@@ -321,3 +321,203 @@ export async function fetchTangledRepos(did, fetchFn) {
|
|
|
321
321
|
return null;
|
|
322
322
|
}
|
|
323
323
|
}
|
|
324
|
+
// Sifa Professional Profile fetch functions
|
|
325
|
+
export async function fetchSifaProfile(did, fetchFn) {
|
|
326
|
+
const cacheKey = `sifa:profile:${did}`;
|
|
327
|
+
const cached = cache.get(cacheKey);
|
|
328
|
+
if (cached)
|
|
329
|
+
return cached;
|
|
330
|
+
try {
|
|
331
|
+
const result = await withFallback(did, async (agent) => {
|
|
332
|
+
const response = await agent.com.atproto.repo.getRecord({
|
|
333
|
+
repo: did,
|
|
334
|
+
collection: 'id.sifa.profile.self',
|
|
335
|
+
rkey: 'self'
|
|
336
|
+
});
|
|
337
|
+
return response.data;
|
|
338
|
+
}, true, fetchFn);
|
|
339
|
+
if (!result?.value)
|
|
340
|
+
return null;
|
|
341
|
+
const value = result.value;
|
|
342
|
+
const data = {
|
|
343
|
+
headline: value.headline,
|
|
344
|
+
about: value.about,
|
|
345
|
+
industry: value.industry,
|
|
346
|
+
location: value.location,
|
|
347
|
+
openTo: value.openTo || [],
|
|
348
|
+
preferredWorkplace: value.preferredWorkplace || [],
|
|
349
|
+
langs: value.langs || [],
|
|
350
|
+
createdAt: value.createdAt
|
|
351
|
+
};
|
|
352
|
+
cache.set(cacheKey, data);
|
|
353
|
+
return data;
|
|
354
|
+
}
|
|
355
|
+
catch {
|
|
356
|
+
return null;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
export async function fetchSifaSkills(did, fetchFn) {
|
|
360
|
+
const cacheKey = `sifa:skills:${did}`;
|
|
361
|
+
const cached = cache.get(cacheKey);
|
|
362
|
+
if (cached)
|
|
363
|
+
return cached;
|
|
364
|
+
try {
|
|
365
|
+
const records = await withFallback(did, async (agent) => {
|
|
366
|
+
const response = await agent.com.atproto.repo.listRecords({
|
|
367
|
+
repo: did,
|
|
368
|
+
collection: 'id.sifa.profile.skill',
|
|
369
|
+
limit: 100
|
|
370
|
+
});
|
|
371
|
+
return response.data.records;
|
|
372
|
+
}, true, fetchFn);
|
|
373
|
+
const data = records.map((record) => {
|
|
374
|
+
const value = record.value;
|
|
375
|
+
return {
|
|
376
|
+
name: value.name,
|
|
377
|
+
category: value.category,
|
|
378
|
+
uri: record.uri
|
|
379
|
+
};
|
|
380
|
+
});
|
|
381
|
+
cache.set(cacheKey, data);
|
|
382
|
+
return data;
|
|
383
|
+
}
|
|
384
|
+
catch {
|
|
385
|
+
return [];
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
export async function fetchSifaProjects(did, fetchFn) {
|
|
389
|
+
const cacheKey = `sifa:projects:${did}`;
|
|
390
|
+
const cached = cache.get(cacheKey);
|
|
391
|
+
if (cached)
|
|
392
|
+
return cached;
|
|
393
|
+
try {
|
|
394
|
+
const records = await withFallback(did, async (agent) => {
|
|
395
|
+
const response = await agent.com.atproto.repo.listRecords({
|
|
396
|
+
repo: did,
|
|
397
|
+
collection: 'id.sifa.profile.project',
|
|
398
|
+
limit: 100
|
|
399
|
+
});
|
|
400
|
+
return response.data.records;
|
|
401
|
+
}, true, fetchFn);
|
|
402
|
+
const data = records.map((record) => {
|
|
403
|
+
const value = record.value;
|
|
404
|
+
return {
|
|
405
|
+
name: value.name,
|
|
406
|
+
description: value.description,
|
|
407
|
+
url: value.url,
|
|
408
|
+
startedAt: value.startedAt,
|
|
409
|
+
uri: record.uri
|
|
410
|
+
};
|
|
411
|
+
});
|
|
412
|
+
data.sort((a, b) => {
|
|
413
|
+
if (!a.startedAt)
|
|
414
|
+
return 1;
|
|
415
|
+
if (!b.startedAt)
|
|
416
|
+
return -1;
|
|
417
|
+
return new Date(b.startedAt).getTime() - new Date(a.startedAt).getTime();
|
|
418
|
+
});
|
|
419
|
+
cache.set(cacheKey, data);
|
|
420
|
+
return data;
|
|
421
|
+
}
|
|
422
|
+
catch {
|
|
423
|
+
return [];
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
export async function fetchSifaLanguages(did, fetchFn) {
|
|
427
|
+
const cacheKey = `sifa:languages:${did}`;
|
|
428
|
+
const cached = cache.get(cacheKey);
|
|
429
|
+
if (cached)
|
|
430
|
+
return cached;
|
|
431
|
+
try {
|
|
432
|
+
const records = await withFallback(did, async (agent) => {
|
|
433
|
+
const response = await agent.com.atproto.repo.listRecords({
|
|
434
|
+
repo: did,
|
|
435
|
+
collection: 'id.sifa.profile.language',
|
|
436
|
+
limit: 100
|
|
437
|
+
});
|
|
438
|
+
return response.data.records;
|
|
439
|
+
}, true, fetchFn);
|
|
440
|
+
const data = records.map((record) => {
|
|
441
|
+
const value = record.value;
|
|
442
|
+
return {
|
|
443
|
+
name: value.name,
|
|
444
|
+
proficiency: value.proficiency,
|
|
445
|
+
uri: record.uri
|
|
446
|
+
};
|
|
447
|
+
});
|
|
448
|
+
cache.set(cacheKey, data);
|
|
449
|
+
return data;
|
|
450
|
+
}
|
|
451
|
+
catch {
|
|
452
|
+
return [];
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
export async function fetchSifaCertifications(did, fetchFn) {
|
|
456
|
+
const cacheKey = `sifa:certifications:${did}`;
|
|
457
|
+
const cached = cache.get(cacheKey);
|
|
458
|
+
if (cached)
|
|
459
|
+
return cached;
|
|
460
|
+
try {
|
|
461
|
+
const records = await withFallback(did, async (agent) => {
|
|
462
|
+
const response = await agent.com.atproto.repo.listRecords({
|
|
463
|
+
repo: did,
|
|
464
|
+
collection: 'id.sifa.profile.certification',
|
|
465
|
+
limit: 100
|
|
466
|
+
});
|
|
467
|
+
return response.data.records;
|
|
468
|
+
}, true, fetchFn);
|
|
469
|
+
const data = records.map((record) => {
|
|
470
|
+
const value = record.value;
|
|
471
|
+
return {
|
|
472
|
+
name: value.name,
|
|
473
|
+
authority: value.authority,
|
|
474
|
+
issuedAt: value.issuedAt,
|
|
475
|
+
uri: record.uri
|
|
476
|
+
};
|
|
477
|
+
});
|
|
478
|
+
data.sort((a, b) => {
|
|
479
|
+
if (!a.issuedAt)
|
|
480
|
+
return 1;
|
|
481
|
+
if (!b.issuedAt)
|
|
482
|
+
return -1;
|
|
483
|
+
return new Date(b.issuedAt).getTime() - new Date(a.issuedAt).getTime();
|
|
484
|
+
});
|
|
485
|
+
cache.set(cacheKey, data);
|
|
486
|
+
return data;
|
|
487
|
+
}
|
|
488
|
+
catch {
|
|
489
|
+
return [];
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
export async function fetchSifaExternalAccounts(did, fetchFn) {
|
|
493
|
+
const cacheKey = `sifa:externalAccounts:${did}`;
|
|
494
|
+
const cached = cache.get(cacheKey);
|
|
495
|
+
if (cached)
|
|
496
|
+
return cached;
|
|
497
|
+
try {
|
|
498
|
+
const records = await withFallback(did, async (agent) => {
|
|
499
|
+
const response = await agent.com.atproto.repo.listRecords({
|
|
500
|
+
repo: did,
|
|
501
|
+
collection: 'id.sifa.profile.externalAccount',
|
|
502
|
+
limit: 100
|
|
503
|
+
});
|
|
504
|
+
return response.data.records;
|
|
505
|
+
}, true, fetchFn);
|
|
506
|
+
const data = records.map((record) => {
|
|
507
|
+
const value = record.value;
|
|
508
|
+
return {
|
|
509
|
+
platform: value.platform,
|
|
510
|
+
url: value.url,
|
|
511
|
+
label: value.label,
|
|
512
|
+
feedUrl: value.feedUrl,
|
|
513
|
+
isPrimary: value.isPrimary,
|
|
514
|
+
uri: record.uri
|
|
515
|
+
};
|
|
516
|
+
});
|
|
517
|
+
cache.set(cacheKey, data);
|
|
518
|
+
return data;
|
|
519
|
+
}
|
|
520
|
+
catch {
|
|
521
|
+
return [];
|
|
522
|
+
}
|
|
523
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export type { PopfeedReview, PopfeedCreativeWorkType, PopfeedMainCreditRole, ProfileData, StatusData, SiteInfoData, LinkData, LinkCard, BlueskyPost, BlogPost, BlogPostsData, PostAuthor, ExternalLink, Facet, Technology, License, BasedOnItem, RelatedService, Repository, Credit, SectionLicense, ResolvedIdentity, CacheEntry, MusicStatusData, MusicArtist, KibunStatusData, TangledRepo, TangledReposData, StandardSitePublication, StandardSitePublicationsData, StandardSiteDocument, StandardSiteDocumentsData, StandardSiteBasicTheme, StandardSiteThemeColor } from './types.js';
|
|
2
|
-
export { fetchProfile, fetchSiteInfo, fetchLinks, fetchMusicStatus, fetchKibunStatus, fetchTangledRepos, fetchRecentPopfeedReviews } from './fetch.js';
|
|
1
|
+
export type { PopfeedReview, PopfeedCreativeWorkType, PopfeedMainCreditRole, ProfileData, StatusData, SiteInfoData, LinkData, LinkCard, BlueskyPost, BlogPost, BlogPostsData, PostAuthor, ExternalLink, Facet, Technology, License, BasedOnItem, RelatedService, Repository, Credit, SectionLicense, ResolvedIdentity, CacheEntry, MusicStatusData, MusicArtist, KibunStatusData, TangledRepo, TangledReposData, StandardSitePublication, StandardSitePublicationsData, StandardSiteDocument, StandardSiteDocumentsData, StandardSiteBasicTheme, StandardSiteThemeColor, SifaProfileData, SifaSkill, SifaProject, SifaLanguage, SifaCertification, SifaExternalAccount, SifaLocation } from './types.js';
|
|
2
|
+
export { fetchProfile, fetchSiteInfo, fetchLinks, fetchMusicStatus, fetchKibunStatus, fetchTangledRepos, fetchRecentPopfeedReviews, fetchSifaProfile, fetchSifaSkills, fetchSifaProjects, fetchSifaLanguages, fetchSifaCertifications, fetchSifaExternalAccounts } from './fetch.js';
|
|
3
3
|
export { fetchPublications, fetchDocuments, fetchRecentDocuments, fetchBlogPosts } from './documents.js';
|
|
4
4
|
export { fetchLatestBlueskyPost, fetchPostFromUri } from './posts.js';
|
|
5
5
|
export { buildPdsBlobUrl, extractCidFromImageObject, extractImageUrlsFromValue } from './media.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,YAAY,EACX,aAAa,EACb,uBAAuB,EACvB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,aAAa,EACb,UAAU,EACV,YAAY,EACZ,KAAK,EACL,UAAU,EACV,OAAO,EACP,WAAW,EACX,cAAc,EACd,UAAU,EACV,MAAM,EACN,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,WAAW,EACX,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EACvB,4BAA4B,EAC5B,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,EACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACN,YAAY,EACZ,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACN,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEnG,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAErJ,OAAO,EACN,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,gCAAgC,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEvF,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,YAAY,EACX,aAAa,EACb,uBAAuB,EACvB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,aAAa,EACb,UAAU,EACV,YAAY,EACZ,KAAK,EACL,UAAU,EACV,OAAO,EACP,WAAW,EACX,cAAc,EACd,UAAU,EACV,MAAM,EACN,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,WAAW,EACX,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EACvB,4BAA4B,EAC5B,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,SAAS,EACT,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EACN,YAAY,EACZ,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACN,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEnG,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAErJ,OAAO,EACN,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,gCAAgC,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEvF,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Key API difference from the app's src/lib/services/atproto:
|
|
3
3
|
// All functions that previously read PUBLIC_ATPROTO_DID from the environment
|
|
4
4
|
// now accept `did: string` as their first argument.
|
|
5
|
-
export { fetchProfile, fetchSiteInfo, fetchLinks, fetchMusicStatus, fetchKibunStatus, fetchTangledRepos, fetchRecentPopfeedReviews } from './fetch.js';
|
|
5
|
+
export { fetchProfile, fetchSiteInfo, fetchLinks, fetchMusicStatus, fetchKibunStatus, fetchTangledRepos, fetchRecentPopfeedReviews, fetchSifaProfile, fetchSifaSkills, fetchSifaProjects, fetchSifaLanguages, fetchSifaCertifications, fetchSifaExternalAccounts } from './fetch.js';
|
|
6
6
|
export { fetchPublications, fetchDocuments, fetchRecentDocuments, fetchBlogPosts } from './documents.js';
|
|
7
7
|
export { fetchLatestBlueskyPost, fetchPostFromUri } from './posts.js';
|
|
8
8
|
export { buildPdsBlobUrl, extractCidFromImageObject, extractImageUrlsFromValue } from './media.js';
|
package/dist/types.d.ts
CHANGED
|
@@ -282,4 +282,50 @@ export interface PopfeedReview {
|
|
|
282
282
|
containsSpoilers?: boolean;
|
|
283
283
|
isRevisit?: boolean;
|
|
284
284
|
}
|
|
285
|
+
export interface SifaLocation {
|
|
286
|
+
countryCode: string;
|
|
287
|
+
region?: string;
|
|
288
|
+
city?: string;
|
|
289
|
+
}
|
|
290
|
+
export interface SifaProfileData {
|
|
291
|
+
headline: string;
|
|
292
|
+
about: string;
|
|
293
|
+
industry?: string;
|
|
294
|
+
location?: SifaLocation;
|
|
295
|
+
openTo: string[];
|
|
296
|
+
preferredWorkplace: string[];
|
|
297
|
+
langs: string[];
|
|
298
|
+
createdAt: string;
|
|
299
|
+
}
|
|
300
|
+
export interface SifaSkill {
|
|
301
|
+
name: string;
|
|
302
|
+
category: string;
|
|
303
|
+
uri: string;
|
|
304
|
+
}
|
|
305
|
+
export interface SifaProject {
|
|
306
|
+
name: string;
|
|
307
|
+
description?: string;
|
|
308
|
+
url?: string;
|
|
309
|
+
startedAt?: string;
|
|
310
|
+
uri: string;
|
|
311
|
+
}
|
|
312
|
+
export interface SifaLanguage {
|
|
313
|
+
name: string;
|
|
314
|
+
proficiency: string;
|
|
315
|
+
uri: string;
|
|
316
|
+
}
|
|
317
|
+
export interface SifaCertification {
|
|
318
|
+
name: string;
|
|
319
|
+
authority?: string;
|
|
320
|
+
issuedAt?: string;
|
|
321
|
+
uri: string;
|
|
322
|
+
}
|
|
323
|
+
export interface SifaExternalAccount {
|
|
324
|
+
platform: string;
|
|
325
|
+
url: string;
|
|
326
|
+
label?: string;
|
|
327
|
+
feedUrl?: string;
|
|
328
|
+
isPrimary?: boolean;
|
|
329
|
+
uri: string;
|
|
330
|
+
}
|
|
285
331
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ewanc26/atproto",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.9",
|
|
4
4
|
"description": "AT Protocol service layer extracted from ewancroft.uk",
|
|
5
5
|
"author": "Ewan Croft",
|
|
6
6
|
"license": "AGPL-3.0-only",
|
|
@@ -35,16 +35,16 @@
|
|
|
35
35
|
},
|
|
36
36
|
"main": "./dist/index.js",
|
|
37
37
|
"types": "./dist/index.d.ts",
|
|
38
|
+
"scripts": {
|
|
39
|
+
"build": "tsc --project tsconfig.json",
|
|
40
|
+
"dev": "tsc --project tsconfig.json --watch",
|
|
41
|
+
"check": "tsc --noEmit"
|
|
42
|
+
},
|
|
38
43
|
"peerDependencies": {
|
|
39
44
|
"@atproto/api": ">=0.13.0"
|
|
40
45
|
},
|
|
41
46
|
"devDependencies": {
|
|
42
47
|
"@atproto/api": "^0.19.3",
|
|
43
48
|
"typescript": "^5.9.3"
|
|
44
|
-
},
|
|
45
|
-
"scripts": {
|
|
46
|
-
"build": "tsc --project tsconfig.json",
|
|
47
|
-
"dev": "tsc --project tsconfig.json --watch",
|
|
48
|
-
"check": "tsc --noEmit"
|
|
49
49
|
}
|
|
50
|
-
}
|
|
50
|
+
}
|
package/src/fetch.ts
CHANGED
|
@@ -12,7 +12,13 @@ import type {
|
|
|
12
12
|
TangledReposData,
|
|
13
13
|
PopfeedReview,
|
|
14
14
|
PopfeedCreativeWorkType,
|
|
15
|
-
PopfeedMainCreditRole
|
|
15
|
+
PopfeedMainCreditRole,
|
|
16
|
+
SifaProfileData,
|
|
17
|
+
SifaSkill,
|
|
18
|
+
SifaProject,
|
|
19
|
+
SifaLanguage,
|
|
20
|
+
SifaCertification,
|
|
21
|
+
SifaExternalAccount
|
|
16
22
|
} from './types.js';
|
|
17
23
|
|
|
18
24
|
export async function fetchProfile(did: string, fetchFn?: typeof fetch): Promise<ProfileData> {
|
|
@@ -410,3 +416,260 @@ export async function fetchTangledRepos(
|
|
|
410
416
|
return null;
|
|
411
417
|
}
|
|
412
418
|
}
|
|
419
|
+
|
|
420
|
+
// Sifa Professional Profile fetch functions
|
|
421
|
+
|
|
422
|
+
export async function fetchSifaProfile(
|
|
423
|
+
did: string,
|
|
424
|
+
fetchFn?: typeof fetch
|
|
425
|
+
): Promise<SifaProfileData | null> {
|
|
426
|
+
const cacheKey = `sifa:profile:${did}`;
|
|
427
|
+
const cached = cache.get<SifaProfileData>(cacheKey);
|
|
428
|
+
if (cached) return cached;
|
|
429
|
+
|
|
430
|
+
try {
|
|
431
|
+
const result = await withFallback(
|
|
432
|
+
did,
|
|
433
|
+
async (agent) => {
|
|
434
|
+
const response = await agent.com.atproto.repo.getRecord({
|
|
435
|
+
repo: did,
|
|
436
|
+
collection: 'id.sifa.profile.self',
|
|
437
|
+
rkey: 'self'
|
|
438
|
+
});
|
|
439
|
+
return response.data;
|
|
440
|
+
},
|
|
441
|
+
true,
|
|
442
|
+
fetchFn
|
|
443
|
+
);
|
|
444
|
+
|
|
445
|
+
if (!result?.value) return null;
|
|
446
|
+
const value = result.value as any;
|
|
447
|
+
const data: SifaProfileData = {
|
|
448
|
+
headline: value.headline,
|
|
449
|
+
about: value.about,
|
|
450
|
+
industry: value.industry,
|
|
451
|
+
location: value.location,
|
|
452
|
+
openTo: value.openTo || [],
|
|
453
|
+
preferredWorkplace: value.preferredWorkplace || [],
|
|
454
|
+
langs: value.langs || [],
|
|
455
|
+
createdAt: value.createdAt
|
|
456
|
+
};
|
|
457
|
+
cache.set(cacheKey, data);
|
|
458
|
+
return data;
|
|
459
|
+
} catch {
|
|
460
|
+
return null;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
export async function fetchSifaSkills(
|
|
465
|
+
did: string,
|
|
466
|
+
fetchFn?: typeof fetch
|
|
467
|
+
): Promise<SifaSkill[]> {
|
|
468
|
+
const cacheKey = `sifa:skills:${did}`;
|
|
469
|
+
const cached = cache.get<SifaSkill[]>(cacheKey);
|
|
470
|
+
if (cached) return cached;
|
|
471
|
+
|
|
472
|
+
try {
|
|
473
|
+
const records = await withFallback(
|
|
474
|
+
did,
|
|
475
|
+
async (agent) => {
|
|
476
|
+
const response = await agent.com.atproto.repo.listRecords({
|
|
477
|
+
repo: did,
|
|
478
|
+
collection: 'id.sifa.profile.skill',
|
|
479
|
+
limit: 100
|
|
480
|
+
});
|
|
481
|
+
return response.data.records;
|
|
482
|
+
},
|
|
483
|
+
true,
|
|
484
|
+
fetchFn
|
|
485
|
+
);
|
|
486
|
+
|
|
487
|
+
const data: SifaSkill[] = records.map((record) => {
|
|
488
|
+
const value = record.value as any;
|
|
489
|
+
return {
|
|
490
|
+
name: value.name,
|
|
491
|
+
category: value.category,
|
|
492
|
+
uri: record.uri
|
|
493
|
+
};
|
|
494
|
+
});
|
|
495
|
+
|
|
496
|
+
cache.set(cacheKey, data);
|
|
497
|
+
return data;
|
|
498
|
+
} catch {
|
|
499
|
+
return [];
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
export async function fetchSifaProjects(
|
|
504
|
+
did: string,
|
|
505
|
+
fetchFn?: typeof fetch
|
|
506
|
+
): Promise<SifaProject[]> {
|
|
507
|
+
const cacheKey = `sifa:projects:${did}`;
|
|
508
|
+
const cached = cache.get<SifaProject[]>(cacheKey);
|
|
509
|
+
if (cached) return cached;
|
|
510
|
+
|
|
511
|
+
try {
|
|
512
|
+
const records = await withFallback(
|
|
513
|
+
did,
|
|
514
|
+
async (agent) => {
|
|
515
|
+
const response = await agent.com.atproto.repo.listRecords({
|
|
516
|
+
repo: did,
|
|
517
|
+
collection: 'id.sifa.profile.project',
|
|
518
|
+
limit: 100
|
|
519
|
+
});
|
|
520
|
+
return response.data.records;
|
|
521
|
+
},
|
|
522
|
+
true,
|
|
523
|
+
fetchFn
|
|
524
|
+
);
|
|
525
|
+
|
|
526
|
+
const data: SifaProject[] = records.map((record) => {
|
|
527
|
+
const value = record.value as any;
|
|
528
|
+
return {
|
|
529
|
+
name: value.name,
|
|
530
|
+
description: value.description,
|
|
531
|
+
url: value.url,
|
|
532
|
+
startedAt: value.startedAt,
|
|
533
|
+
uri: record.uri
|
|
534
|
+
};
|
|
535
|
+
});
|
|
536
|
+
|
|
537
|
+
data.sort((a, b) => {
|
|
538
|
+
if (!a.startedAt) return 1;
|
|
539
|
+
if (!b.startedAt) return -1;
|
|
540
|
+
return new Date(b.startedAt).getTime() - new Date(a.startedAt).getTime();
|
|
541
|
+
});
|
|
542
|
+
|
|
543
|
+
cache.set(cacheKey, data);
|
|
544
|
+
return data;
|
|
545
|
+
} catch {
|
|
546
|
+
return [];
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
export async function fetchSifaLanguages(
|
|
551
|
+
did: string,
|
|
552
|
+
fetchFn?: typeof fetch
|
|
553
|
+
): Promise<SifaLanguage[]> {
|
|
554
|
+
const cacheKey = `sifa:languages:${did}`;
|
|
555
|
+
const cached = cache.get<SifaLanguage[]>(cacheKey);
|
|
556
|
+
if (cached) return cached;
|
|
557
|
+
|
|
558
|
+
try {
|
|
559
|
+
const records = await withFallback(
|
|
560
|
+
did,
|
|
561
|
+
async (agent) => {
|
|
562
|
+
const response = await agent.com.atproto.repo.listRecords({
|
|
563
|
+
repo: did,
|
|
564
|
+
collection: 'id.sifa.profile.language',
|
|
565
|
+
limit: 100
|
|
566
|
+
});
|
|
567
|
+
return response.data.records;
|
|
568
|
+
},
|
|
569
|
+
true,
|
|
570
|
+
fetchFn
|
|
571
|
+
);
|
|
572
|
+
|
|
573
|
+
const data: SifaLanguage[] = records.map((record) => {
|
|
574
|
+
const value = record.value as any;
|
|
575
|
+
return {
|
|
576
|
+
name: value.name,
|
|
577
|
+
proficiency: value.proficiency,
|
|
578
|
+
uri: record.uri
|
|
579
|
+
};
|
|
580
|
+
});
|
|
581
|
+
|
|
582
|
+
cache.set(cacheKey, data);
|
|
583
|
+
return data;
|
|
584
|
+
} catch {
|
|
585
|
+
return [];
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
export async function fetchSifaCertifications(
|
|
590
|
+
did: string,
|
|
591
|
+
fetchFn?: typeof fetch
|
|
592
|
+
): Promise<SifaCertification[]> {
|
|
593
|
+
const cacheKey = `sifa:certifications:${did}`;
|
|
594
|
+
const cached = cache.get<SifaCertification[]>(cacheKey);
|
|
595
|
+
if (cached) return cached;
|
|
596
|
+
|
|
597
|
+
try {
|
|
598
|
+
const records = await withFallback(
|
|
599
|
+
did,
|
|
600
|
+
async (agent) => {
|
|
601
|
+
const response = await agent.com.atproto.repo.listRecords({
|
|
602
|
+
repo: did,
|
|
603
|
+
collection: 'id.sifa.profile.certification',
|
|
604
|
+
limit: 100
|
|
605
|
+
});
|
|
606
|
+
return response.data.records;
|
|
607
|
+
},
|
|
608
|
+
true,
|
|
609
|
+
fetchFn
|
|
610
|
+
);
|
|
611
|
+
|
|
612
|
+
const data: SifaCertification[] = records.map((record) => {
|
|
613
|
+
const value = record.value as any;
|
|
614
|
+
return {
|
|
615
|
+
name: value.name,
|
|
616
|
+
authority: value.authority,
|
|
617
|
+
issuedAt: value.issuedAt,
|
|
618
|
+
uri: record.uri
|
|
619
|
+
};
|
|
620
|
+
});
|
|
621
|
+
|
|
622
|
+
data.sort((a, b) => {
|
|
623
|
+
if (!a.issuedAt) return 1;
|
|
624
|
+
if (!b.issuedAt) return -1;
|
|
625
|
+
return new Date(b.issuedAt).getTime() - new Date(a.issuedAt).getTime();
|
|
626
|
+
});
|
|
627
|
+
|
|
628
|
+
cache.set(cacheKey, data);
|
|
629
|
+
return data;
|
|
630
|
+
} catch {
|
|
631
|
+
return [];
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
export async function fetchSifaExternalAccounts(
|
|
636
|
+
did: string,
|
|
637
|
+
fetchFn?: typeof fetch
|
|
638
|
+
): Promise<SifaExternalAccount[]> {
|
|
639
|
+
const cacheKey = `sifa:externalAccounts:${did}`;
|
|
640
|
+
const cached = cache.get<SifaExternalAccount[]>(cacheKey);
|
|
641
|
+
if (cached) return cached;
|
|
642
|
+
|
|
643
|
+
try {
|
|
644
|
+
const records = await withFallback(
|
|
645
|
+
did,
|
|
646
|
+
async (agent) => {
|
|
647
|
+
const response = await agent.com.atproto.repo.listRecords({
|
|
648
|
+
repo: did,
|
|
649
|
+
collection: 'id.sifa.profile.externalAccount',
|
|
650
|
+
limit: 100
|
|
651
|
+
});
|
|
652
|
+
return response.data.records;
|
|
653
|
+
},
|
|
654
|
+
true,
|
|
655
|
+
fetchFn
|
|
656
|
+
);
|
|
657
|
+
|
|
658
|
+
const data: SifaExternalAccount[] = records.map((record) => {
|
|
659
|
+
const value = record.value as any;
|
|
660
|
+
return {
|
|
661
|
+
platform: value.platform,
|
|
662
|
+
url: value.url,
|
|
663
|
+
label: value.label,
|
|
664
|
+
feedUrl: value.feedUrl,
|
|
665
|
+
isPrimary: value.isPrimary,
|
|
666
|
+
uri: record.uri
|
|
667
|
+
};
|
|
668
|
+
});
|
|
669
|
+
|
|
670
|
+
cache.set(cacheKey, data);
|
|
671
|
+
return data;
|
|
672
|
+
} catch {
|
|
673
|
+
return [];
|
|
674
|
+
}
|
|
675
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -37,7 +37,14 @@ export type {
|
|
|
37
37
|
StandardSiteDocument,
|
|
38
38
|
StandardSiteDocumentsData,
|
|
39
39
|
StandardSiteBasicTheme,
|
|
40
|
-
StandardSiteThemeColor
|
|
40
|
+
StandardSiteThemeColor,
|
|
41
|
+
SifaProfileData,
|
|
42
|
+
SifaSkill,
|
|
43
|
+
SifaProject,
|
|
44
|
+
SifaLanguage,
|
|
45
|
+
SifaCertification,
|
|
46
|
+
SifaExternalAccount,
|
|
47
|
+
SifaLocation
|
|
41
48
|
} from './types.js';
|
|
42
49
|
|
|
43
50
|
export {
|
|
@@ -47,7 +54,13 @@ export {
|
|
|
47
54
|
fetchMusicStatus,
|
|
48
55
|
fetchKibunStatus,
|
|
49
56
|
fetchTangledRepos,
|
|
50
|
-
fetchRecentPopfeedReviews
|
|
57
|
+
fetchRecentPopfeedReviews,
|
|
58
|
+
fetchSifaProfile,
|
|
59
|
+
fetchSifaSkills,
|
|
60
|
+
fetchSifaProjects,
|
|
61
|
+
fetchSifaLanguages,
|
|
62
|
+
fetchSifaCertifications,
|
|
63
|
+
fetchSifaExternalAccounts
|
|
51
64
|
} from './fetch.js';
|
|
52
65
|
|
|
53
66
|
export {
|
package/src/types.ts
CHANGED
|
@@ -322,3 +322,58 @@ export interface PopfeedReview {
|
|
|
322
322
|
containsSpoilers?: boolean;
|
|
323
323
|
isRevisit?: boolean;
|
|
324
324
|
}
|
|
325
|
+
|
|
326
|
+
// Sifa Professional Profile Types
|
|
327
|
+
|
|
328
|
+
export interface SifaLocation {
|
|
329
|
+
countryCode: string;
|
|
330
|
+
region?: string;
|
|
331
|
+
city?: string;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
export interface SifaProfileData {
|
|
335
|
+
headline: string;
|
|
336
|
+
about: string;
|
|
337
|
+
industry?: string;
|
|
338
|
+
location?: SifaLocation;
|
|
339
|
+
openTo: string[];
|
|
340
|
+
preferredWorkplace: string[];
|
|
341
|
+
langs: string[];
|
|
342
|
+
createdAt: string;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
export interface SifaSkill {
|
|
346
|
+
name: string;
|
|
347
|
+
category: string;
|
|
348
|
+
uri: string;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
export interface SifaProject {
|
|
352
|
+
name: string;
|
|
353
|
+
description?: string;
|
|
354
|
+
url?: string;
|
|
355
|
+
startedAt?: string;
|
|
356
|
+
uri: string;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
export interface SifaLanguage {
|
|
360
|
+
name: string;
|
|
361
|
+
proficiency: string;
|
|
362
|
+
uri: string;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
export interface SifaCertification {
|
|
366
|
+
name: string;
|
|
367
|
+
authority?: string;
|
|
368
|
+
issuedAt?: string;
|
|
369
|
+
uri: string;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
export interface SifaExternalAccount {
|
|
373
|
+
platform: string;
|
|
374
|
+
url: string;
|
|
375
|
+
label?: string;
|
|
376
|
+
feedUrl?: string;
|
|
377
|
+
isPrimary?: boolean;
|
|
378
|
+
uri: string;
|
|
379
|
+
}
|