@singi-labs/sifa-sdk 0.12.92 → 0.13.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 +9 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +29 -1
- package/dist/index.d.ts +29 -1
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/{network-map-C3KyOHRU.d.ts → network-map-CC9Dito-.d.ts} +94 -2
- package/dist/{network-map-BcugllI5.d.cts → network-map-D223f7DM.d.cts} +94 -2
- package/dist/query/fetchers/index.cjs +39 -0
- package/dist/query/fetchers/index.cjs.map +1 -1
- package/dist/query/fetchers/index.d.cts +1 -1
- package/dist/query/fetchers/index.d.ts +1 -1
- package/dist/query/fetchers/index.js +38 -1
- package/dist/query/fetchers/index.js.map +1 -1
- package/dist/query/index.cjs +39 -0
- package/dist/query/index.cjs.map +1 -1
- package/dist/query/index.d.cts +2 -2
- package/dist/query/index.d.ts +2 -2
- package/dist/query/index.js +38 -1
- package/dist/query/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as Profile, d as ProfilePosition, S as SkillRef } from './index-jNyd5QP7.js';
|
|
1
|
+
import { c as Profile, d as ProfilePosition, S as SkillRef, w as PresentationLinkView } from './index-jNyd5QP7.js';
|
|
2
2
|
import { S as SifaApiConfig, A as ApiFetchOptions, C as CreateResult, W as WriteResult } from './org-zMZg_r7v.js';
|
|
3
3
|
import { n as ProfileView } from './types-8JaS6abh.js';
|
|
4
4
|
import { S as SummarizeProfileViewOptions, P as ProfileSummary } from './profile-summary-8fapqzHv.js';
|
|
@@ -237,6 +237,98 @@ declare function revealMarqueDomain(config: SifaApiConfig, domain: string, optio
|
|
|
237
237
|
/** Make a previously-revealed Marque domain owner-only again. */
|
|
238
238
|
declare function unrevealMarqueDomain(config: SifaApiConfig, domain: string, options?: ApiFetchOptions): Promise<WriteResult>;
|
|
239
239
|
|
|
240
|
+
/**
|
|
241
|
+
* Which claim a listed speaker makes about a topic. Phase 1 has no confirmed
|
|
242
|
+
* data, so groups are named by the CLAIM, never a "proven" label:
|
|
243
|
+
* - `spoke_about_it` — has a topic-matching delivery (or, with a topic set,
|
|
244
|
+
* a matching presentation plus at least one delivery)
|
|
245
|
+
* - `skilled` — holds the matching canonical skill but has no matching talk
|
|
246
|
+
* (only appears when a topic is supplied)
|
|
247
|
+
* - `open_to_speaking` — opted in but has never delivered (only appears when
|
|
248
|
+
* no topic is supplied)
|
|
249
|
+
*/
|
|
250
|
+
type SpeakerGroup = 'spoke_about_it' | 'skilled' | 'open_to_speaking';
|
|
251
|
+
/** One person in the speaker directory. Everyone listed has opted in. */
|
|
252
|
+
interface SpeakerCard {
|
|
253
|
+
did: string;
|
|
254
|
+
handle: string;
|
|
255
|
+
displayName: string | null;
|
|
256
|
+
avatar: string | null;
|
|
257
|
+
headline: string | null;
|
|
258
|
+
currentRole: string | null;
|
|
259
|
+
currentCompany: string | null;
|
|
260
|
+
deliveryCount: number;
|
|
261
|
+
group: SpeakerGroup;
|
|
262
|
+
matchedTopics: string[];
|
|
263
|
+
/**
|
|
264
|
+
* Self-reported event names from the speaker's own presentationDelivery
|
|
265
|
+
* records — unconfirmed in Phase 1. `eventsSelfReported` is always true;
|
|
266
|
+
* the web layer labels these as such.
|
|
267
|
+
*/
|
|
268
|
+
recentEvents: string[];
|
|
269
|
+
eventsSelfReported: boolean;
|
|
270
|
+
}
|
|
271
|
+
interface SpeakersResponse {
|
|
272
|
+
speakers: SpeakerCard[];
|
|
273
|
+
}
|
|
274
|
+
/** The reusable talk, or a standalone delivery when it has no parent talk. */
|
|
275
|
+
interface TalkEvent {
|
|
276
|
+
eventName: string | null;
|
|
277
|
+
date: string | null;
|
|
278
|
+
}
|
|
279
|
+
/** Compact speaker card embedded in a talk row. */
|
|
280
|
+
interface TalkSpeaker {
|
|
281
|
+
did: string;
|
|
282
|
+
handle: string;
|
|
283
|
+
displayName: string | null;
|
|
284
|
+
avatar: string | null;
|
|
285
|
+
headline: string | null;
|
|
286
|
+
currentRole: string | null;
|
|
287
|
+
currentCompany: string | null;
|
|
288
|
+
}
|
|
289
|
+
interface TalkRow {
|
|
290
|
+
/**
|
|
291
|
+
* `presentation` = a reusable `id.sifa.profile.presentation` record.
|
|
292
|
+
* `delivery` = a standalone presentationDelivery with no parent presentation.
|
|
293
|
+
*/
|
|
294
|
+
kind: 'presentation' | 'delivery';
|
|
295
|
+
rkey: string;
|
|
296
|
+
title: string | null;
|
|
297
|
+
snippet: string | null;
|
|
298
|
+
links: PresentationLinkView[];
|
|
299
|
+
writeupUri: string | null;
|
|
300
|
+
speaker: TalkSpeaker;
|
|
301
|
+
events: TalkEvent[];
|
|
302
|
+
eventsSelfReported: boolean;
|
|
303
|
+
deliveryCount: number;
|
|
304
|
+
matchedTopics: string[];
|
|
305
|
+
}
|
|
306
|
+
interface TalksResponse {
|
|
307
|
+
talks: TalkRow[];
|
|
308
|
+
}
|
|
309
|
+
interface SpeakerDirectoryFilters {
|
|
310
|
+
/** Free-text topic (canonical skill name/slug/alias, talk title, or event). */
|
|
311
|
+
topic?: string;
|
|
312
|
+
/** Max rows to return; the API caps this at 50. */
|
|
313
|
+
limit?: number;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Speaker directory (Phase 1, read-only POC). Everyone returned has opted in to
|
|
317
|
+
* speaking; past deliveries are a ranking signal, not an inclusion path. An
|
|
318
|
+
* optional `topic` filters to people who hold the matching canonical skill,
|
|
319
|
+
* have a matching presentation, or have a matching delivery. Results come
|
|
320
|
+
* grouped and ordered by the API.
|
|
321
|
+
*
|
|
322
|
+
* Returns an empty list on any error so callers can render a graceful state.
|
|
323
|
+
*/
|
|
324
|
+
declare function fetchSpeakers(config: SifaApiConfig, filters?: SpeakerDirectoryFilters, options?: ApiFetchOptions): Promise<SpeakersResponse>;
|
|
325
|
+
/**
|
|
326
|
+
* Talk directory (Phase 1, read-only POC). Lists talks by opted-in speakers,
|
|
327
|
+
* delivered-first, then latest delivery date. Same optional `topic` filter as
|
|
328
|
+
* {@link fetchSpeakers}. Returns an empty list on any error.
|
|
329
|
+
*/
|
|
330
|
+
declare function fetchTalks(config: SifaApiConfig, filters?: SpeakerDirectoryFilters, options?: ApiFetchOptions): Promise<TalksResponse>;
|
|
331
|
+
|
|
240
332
|
/**
|
|
241
333
|
* Organization typeahead. Returns curated entities first, then the PDL crawl,
|
|
242
334
|
* deduped by domain. Empty input returns an empty result without a network call.
|
|
@@ -391,4 +483,4 @@ declare function checkNetworkMapJobStatus(config: SifaApiConfig, jobId: string,
|
|
|
391
483
|
*/
|
|
392
484
|
declare function fetchNetworkMap(config: SifaApiConfig, options?: ApiFetchOptions): Promise<NetworkMapResponse | null>;
|
|
393
485
|
|
|
394
|
-
export {
|
|
486
|
+
export { unhideKeytraceClaim as $, fetchGetProfileView as A, fetchNetworkMap as B, fetchNetworkStreamCount as C, type DismissEndorsementInput as D, fetchPendingEndorsements as E, type FetchNetworkStreamCountOptions as F, fetchProfile as G, fetchProfileSummary as H, fetchReceivedEndorsements as I, fetchReciprocityCandidate as J, fetchSpeakers as K, fetchTalks as L, hideKeytraceClaim as M, type NetworkMapEdge as N, importSearchEntities as O, type PendingEndorsementsPage as P, initiateNetworkMapGeneration as Q, type ReceivedEndorsementsPage as R, type SpeakerCard as S, type TalkEvent as T, isNetworkMapResponse as U, linkSkillToPosition as V, mintEntityDomain as W, resolveEntityDomain as X, revealMarqueDomain as Y, selectEntity as Z, setPositionPrimary as _, type ReciprocityCandidate as a, unlinkSkillFromPosition as a0, unrevealMarqueDomain as a1, unsetPositionPrimary as a2, updateEducation as a3, updatePosition as a4, updateRecord as a5, type NetworkMapGenerationJob as b, type NetworkMapGraphData as c, type NetworkMapNode as d, type NetworkMapPendingJob as e, type NetworkMapResponse as f, type PendingEndorsement as g, type ReceivedEndorsement as h, type ReciprocitySkill as i, type SpeakerDirectoryFilters as j, type SpeakerGroup as k, type SpeakersResponse as l, type TalkRow as m, type TalkSpeaker as n, type TalksResponse as o, checkNetworkMapJobStatus as p, createEducation as q, createPosition as r, createRecord as s, deleteEducation as t, deletePosition as u, deleteRecord as v, dismissEndorsement as w, fetchAtFundLink as x, fetchEndorsementCount as y, fetchEntitySearch as z };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as Profile, d as ProfilePosition, S as SkillRef } from './index-jNyd5QP7.cjs';
|
|
1
|
+
import { c as Profile, d as ProfilePosition, S as SkillRef, w as PresentationLinkView } from './index-jNyd5QP7.cjs';
|
|
2
2
|
import { S as SifaApiConfig, A as ApiFetchOptions, C as CreateResult, W as WriteResult } from './org-DCHb1xhw.cjs';
|
|
3
3
|
import { n as ProfileView } from './types-8wAWvS-T.cjs';
|
|
4
4
|
import { S as SummarizeProfileViewOptions, P as ProfileSummary } from './profile-summary-DY78IoL9.cjs';
|
|
@@ -237,6 +237,98 @@ declare function revealMarqueDomain(config: SifaApiConfig, domain: string, optio
|
|
|
237
237
|
/** Make a previously-revealed Marque domain owner-only again. */
|
|
238
238
|
declare function unrevealMarqueDomain(config: SifaApiConfig, domain: string, options?: ApiFetchOptions): Promise<WriteResult>;
|
|
239
239
|
|
|
240
|
+
/**
|
|
241
|
+
* Which claim a listed speaker makes about a topic. Phase 1 has no confirmed
|
|
242
|
+
* data, so groups are named by the CLAIM, never a "proven" label:
|
|
243
|
+
* - `spoke_about_it` — has a topic-matching delivery (or, with a topic set,
|
|
244
|
+
* a matching presentation plus at least one delivery)
|
|
245
|
+
* - `skilled` — holds the matching canonical skill but has no matching talk
|
|
246
|
+
* (only appears when a topic is supplied)
|
|
247
|
+
* - `open_to_speaking` — opted in but has never delivered (only appears when
|
|
248
|
+
* no topic is supplied)
|
|
249
|
+
*/
|
|
250
|
+
type SpeakerGroup = 'spoke_about_it' | 'skilled' | 'open_to_speaking';
|
|
251
|
+
/** One person in the speaker directory. Everyone listed has opted in. */
|
|
252
|
+
interface SpeakerCard {
|
|
253
|
+
did: string;
|
|
254
|
+
handle: string;
|
|
255
|
+
displayName: string | null;
|
|
256
|
+
avatar: string | null;
|
|
257
|
+
headline: string | null;
|
|
258
|
+
currentRole: string | null;
|
|
259
|
+
currentCompany: string | null;
|
|
260
|
+
deliveryCount: number;
|
|
261
|
+
group: SpeakerGroup;
|
|
262
|
+
matchedTopics: string[];
|
|
263
|
+
/**
|
|
264
|
+
* Self-reported event names from the speaker's own presentationDelivery
|
|
265
|
+
* records — unconfirmed in Phase 1. `eventsSelfReported` is always true;
|
|
266
|
+
* the web layer labels these as such.
|
|
267
|
+
*/
|
|
268
|
+
recentEvents: string[];
|
|
269
|
+
eventsSelfReported: boolean;
|
|
270
|
+
}
|
|
271
|
+
interface SpeakersResponse {
|
|
272
|
+
speakers: SpeakerCard[];
|
|
273
|
+
}
|
|
274
|
+
/** The reusable talk, or a standalone delivery when it has no parent talk. */
|
|
275
|
+
interface TalkEvent {
|
|
276
|
+
eventName: string | null;
|
|
277
|
+
date: string | null;
|
|
278
|
+
}
|
|
279
|
+
/** Compact speaker card embedded in a talk row. */
|
|
280
|
+
interface TalkSpeaker {
|
|
281
|
+
did: string;
|
|
282
|
+
handle: string;
|
|
283
|
+
displayName: string | null;
|
|
284
|
+
avatar: string | null;
|
|
285
|
+
headline: string | null;
|
|
286
|
+
currentRole: string | null;
|
|
287
|
+
currentCompany: string | null;
|
|
288
|
+
}
|
|
289
|
+
interface TalkRow {
|
|
290
|
+
/**
|
|
291
|
+
* `presentation` = a reusable `id.sifa.profile.presentation` record.
|
|
292
|
+
* `delivery` = a standalone presentationDelivery with no parent presentation.
|
|
293
|
+
*/
|
|
294
|
+
kind: 'presentation' | 'delivery';
|
|
295
|
+
rkey: string;
|
|
296
|
+
title: string | null;
|
|
297
|
+
snippet: string | null;
|
|
298
|
+
links: PresentationLinkView[];
|
|
299
|
+
writeupUri: string | null;
|
|
300
|
+
speaker: TalkSpeaker;
|
|
301
|
+
events: TalkEvent[];
|
|
302
|
+
eventsSelfReported: boolean;
|
|
303
|
+
deliveryCount: number;
|
|
304
|
+
matchedTopics: string[];
|
|
305
|
+
}
|
|
306
|
+
interface TalksResponse {
|
|
307
|
+
talks: TalkRow[];
|
|
308
|
+
}
|
|
309
|
+
interface SpeakerDirectoryFilters {
|
|
310
|
+
/** Free-text topic (canonical skill name/slug/alias, talk title, or event). */
|
|
311
|
+
topic?: string;
|
|
312
|
+
/** Max rows to return; the API caps this at 50. */
|
|
313
|
+
limit?: number;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Speaker directory (Phase 1, read-only POC). Everyone returned has opted in to
|
|
317
|
+
* speaking; past deliveries are a ranking signal, not an inclusion path. An
|
|
318
|
+
* optional `topic` filters to people who hold the matching canonical skill,
|
|
319
|
+
* have a matching presentation, or have a matching delivery. Results come
|
|
320
|
+
* grouped and ordered by the API.
|
|
321
|
+
*
|
|
322
|
+
* Returns an empty list on any error so callers can render a graceful state.
|
|
323
|
+
*/
|
|
324
|
+
declare function fetchSpeakers(config: SifaApiConfig, filters?: SpeakerDirectoryFilters, options?: ApiFetchOptions): Promise<SpeakersResponse>;
|
|
325
|
+
/**
|
|
326
|
+
* Talk directory (Phase 1, read-only POC). Lists talks by opted-in speakers,
|
|
327
|
+
* delivered-first, then latest delivery date. Same optional `topic` filter as
|
|
328
|
+
* {@link fetchSpeakers}. Returns an empty list on any error.
|
|
329
|
+
*/
|
|
330
|
+
declare function fetchTalks(config: SifaApiConfig, filters?: SpeakerDirectoryFilters, options?: ApiFetchOptions): Promise<TalksResponse>;
|
|
331
|
+
|
|
240
332
|
/**
|
|
241
333
|
* Organization typeahead. Returns curated entities first, then the PDL crawl,
|
|
242
334
|
* deduped by domain. Empty input returns an empty result without a network call.
|
|
@@ -391,4 +483,4 @@ declare function checkNetworkMapJobStatus(config: SifaApiConfig, jobId: string,
|
|
|
391
483
|
*/
|
|
392
484
|
declare function fetchNetworkMap(config: SifaApiConfig, options?: ApiFetchOptions): Promise<NetworkMapResponse | null>;
|
|
393
485
|
|
|
394
|
-
export {
|
|
486
|
+
export { unhideKeytraceClaim as $, fetchGetProfileView as A, fetchNetworkMap as B, fetchNetworkStreamCount as C, type DismissEndorsementInput as D, fetchPendingEndorsements as E, type FetchNetworkStreamCountOptions as F, fetchProfile as G, fetchProfileSummary as H, fetchReceivedEndorsements as I, fetchReciprocityCandidate as J, fetchSpeakers as K, fetchTalks as L, hideKeytraceClaim as M, type NetworkMapEdge as N, importSearchEntities as O, type PendingEndorsementsPage as P, initiateNetworkMapGeneration as Q, type ReceivedEndorsementsPage as R, type SpeakerCard as S, type TalkEvent as T, isNetworkMapResponse as U, linkSkillToPosition as V, mintEntityDomain as W, resolveEntityDomain as X, revealMarqueDomain as Y, selectEntity as Z, setPositionPrimary as _, type ReciprocityCandidate as a, unlinkSkillFromPosition as a0, unrevealMarqueDomain as a1, unsetPositionPrimary as a2, updateEducation as a3, updatePosition as a4, updateRecord as a5, type NetworkMapGenerationJob as b, type NetworkMapGraphData as c, type NetworkMapNode as d, type NetworkMapPendingJob as e, type NetworkMapResponse as f, type PendingEndorsement as g, type ReceivedEndorsement as h, type ReciprocitySkill as i, type SpeakerDirectoryFilters as j, type SpeakerGroup as k, type SpeakersResponse as l, type TalkRow as m, type TalkSpeaker as n, type TalksResponse as o, checkNetworkMapJobStatus as p, createEducation as q, createPosition as r, createRecord as s, deleteEducation as t, deletePosition as u, deleteRecord as v, dismissEndorsement as w, fetchAtFundLink as x, fetchEndorsementCount as y, fetchEntitySearch as z };
|
|
@@ -755,6 +755,43 @@ async function searchSkills(config, query, limit = 10, options = {}) {
|
|
|
755
755
|
}
|
|
756
756
|
}
|
|
757
757
|
|
|
758
|
+
// src/query/fetchers/speakers.ts
|
|
759
|
+
var EMPTY_SPEAKERS = { speakers: [] };
|
|
760
|
+
var EMPTY_TALKS = { talks: [] };
|
|
761
|
+
function buildParams(filters) {
|
|
762
|
+
const params = new URLSearchParams();
|
|
763
|
+
const topic = filters.topic?.trim();
|
|
764
|
+
if (topic) params.set("topic", topic);
|
|
765
|
+
if (filters.limit !== void 0) params.set("limit", String(filters.limit));
|
|
766
|
+
return params;
|
|
767
|
+
}
|
|
768
|
+
async function fetchSpeakers(config, filters = {}, options = {}) {
|
|
769
|
+
const params = buildParams(filters);
|
|
770
|
+
const query = params.toString();
|
|
771
|
+
const path = query ? `/api/speakers?${query}` : "/api/speakers";
|
|
772
|
+
try {
|
|
773
|
+
return await apiFetch(config, path, {
|
|
774
|
+
cache: "no-store",
|
|
775
|
+
...options
|
|
776
|
+
});
|
|
777
|
+
} catch {
|
|
778
|
+
return EMPTY_SPEAKERS;
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
async function fetchTalks(config, filters = {}, options = {}) {
|
|
782
|
+
const params = buildParams(filters);
|
|
783
|
+
const query = params.toString();
|
|
784
|
+
const path = query ? `/api/talks?${query}` : "/api/talks";
|
|
785
|
+
try {
|
|
786
|
+
return await apiFetch(config, path, {
|
|
787
|
+
cache: "no-store",
|
|
788
|
+
...options
|
|
789
|
+
});
|
|
790
|
+
} catch {
|
|
791
|
+
return EMPTY_TALKS;
|
|
792
|
+
}
|
|
793
|
+
}
|
|
794
|
+
|
|
758
795
|
// src/query/fetchers/discovery.ts
|
|
759
796
|
async function fetchSimilarProfiles(config, did, opts = {}) {
|
|
760
797
|
const limit = opts.limit ?? 5;
|
|
@@ -1869,9 +1906,11 @@ exports.fetchSearchFilters = fetchSearchFilters;
|
|
|
1869
1906
|
exports.fetchSearchProfiles = fetchSearchProfiles;
|
|
1870
1907
|
exports.fetchSimilarProfiles = fetchSimilarProfiles;
|
|
1871
1908
|
exports.fetchSkillSuggestions = fetchSkillSuggestions;
|
|
1909
|
+
exports.fetchSpeakers = fetchSpeakers;
|
|
1872
1910
|
exports.fetchStats = fetchStats;
|
|
1873
1911
|
exports.fetchSuggestionCount = fetchSuggestionCount;
|
|
1874
1912
|
exports.fetchSuggestions = fetchSuggestions;
|
|
1913
|
+
exports.fetchTalks = fetchTalks;
|
|
1875
1914
|
exports.fetchWipePreview = fetchWipePreview;
|
|
1876
1915
|
exports.followUser = followUser;
|
|
1877
1916
|
exports.getAdminReviewQueues = getAdminReviewQueues;
|