UNPKG

@firefliesai/api-sdk

Version:

TypeScript SDK for Fireflies.ai API

733 lines (730 loc) 16.9 kB
"use client" // src/index.ts import { GraphQLClient } from "graphql-request"; // src/generated/sdk.ts import gql from "graphql-tag"; var BiteOriginType = /* @__PURE__ */ ((BiteOriginType2) => { BiteOriginType2["Meeting"] = "MEETING"; return BiteOriginType2; })(BiteOriginType || {}); var BitePrivacy = /* @__PURE__ */ ((BitePrivacy2) => { BitePrivacy2["Participants"] = "participants"; BitePrivacy2["Public"] = "public"; BitePrivacy2["Team"] = "team"; return BitePrivacy2; })(BitePrivacy || {}); var Role = /* @__PURE__ */ ((Role2) => { Role2["Admin"] = "admin"; Role2["User"] = "user"; return Role2; })(Role || {}); var SummaryStatus = /* @__PURE__ */ ((SummaryStatus2) => { SummaryStatus2["Default"] = "default"; SummaryStatus2["Failed"] = "failed"; SummaryStatus2["Processed"] = "processed"; SummaryStatus2["Processing"] = "processing"; SummaryStatus2["Skipped"] = "skipped"; return SummaryStatus2; })(SummaryStatus || {}); var CreateBiteDocument = gql` mutation CreateBite( $transcript_Id: ID! $name: String $start_time: Float! $end_time: Float! $media_type: String $privacies: [BitePrivacy!] $summary: String ) { createBite( transcript_Id: $transcript_Id name: $name start_time: $start_time end_time: $end_time media_type: $media_type privacies: $privacies summary: $summary ) { id name transcript_id start_time end_time created_at status summary user_id media_type thumbnail preview summary_status user { id name first_name last_name picture } } } `; var DeleteTranscriptDocument = gql` mutation DeleteTranscript($id: String!) { deleteTranscript(id: $id) { id title date duration } } `; var UploadAudioDocument = gql` mutation UploadAudio($input: AudioUploadInput) { uploadAudio(input: $input) { success title message } } `; var AddToLiveMeetingDocument = gql` mutation AddToLiveMeeting( $meeting_link: String! $title: String $meeting_password: String $duration: Int $language: String $attendees: [AttendeeInput!] ) { addToLiveMeeting( meeting_link: $meeting_link title: $title meeting_password: $meeting_password duration: $duration language: $language attendees: $attendees ) { success message } } `; var SetUserRoleDocument = gql` mutation SetUserRole($user_id: String!, $role: Role!) { setUserRole(user_id: $user_id, role: $role) { user_id name email is_admin } } `; var UpdateMeetingTitleDocument = gql` mutation UpdateMeetingTitle($input: UpdateMeetingTitleInput!) { updateMeetingTitle(input: $input) { id title date duration } } `; var TranscriptsDocument = gql` query Transcripts( $title: String $keyword: String $scope: String $date: Float $fromDate: DateTime $toDate: DateTime $limit: Int $skip: Int $host_email: String $organizer_email: String $participant_email: String $user_id: String $mine: Boolean ) { transcripts( title: $title keyword: $keyword scope: $scope date: $date fromDate: $fromDate toDate: $toDate limit: $limit skip: $skip host_email: $host_email organizer_email: $organizer_email participant_email: $participant_email user_id: $user_id mine: $mine ) { id title date duration summary { keywords action_items outline shorthand_bullet overview bullet_gist } user { user_id name email } participants meeting_attendees { displayName email phoneNumber name location } } } `; var TranscriptDocument = gql` query Transcript($id: String!) { transcript(id: $id) { id title date duration summary { keywords action_items outline shorthand_bullet overview bullet_gist gist short_summary short_overview meeting_type topics_discussed transcript_chapters } sentences { text speaker_name speaker_id start_time end_time raw_text index } user { user_id name email } participants meeting_attendees { displayName email phoneNumber name location } speakers { id name } } } `; var UserDocument = gql` query User($id: String) { user(id: $id) { user_id name email num_transcripts integrations is_admin minutes_consumed recent_transcript recent_meeting user_groups { name handle id } } } `; var AppsDocument = gql` query Apps($app_id: String, $transcript_id: String, $skip: Float, $limit: Float) { apps(app_id: $app_id, transcript_id: $transcript_id, skip: $skip, limit: $limit) { outputs { transcript_id user_id app_id created_at title prompt response } } } `; var BitesDocument = gql` query Bites($mine: Boolean, $transcript_id: ID, $limit: Int, $my_team: Boolean, $skip: Int) { bites( mine: $mine transcript_id: $transcript_id limit: $limit my_team: $my_team skip: $skip ) { id name transcript_id start_time end_time created_at status summary user_id media_type thumbnail preview summary_status user { id name first_name last_name picture } created_from { id name type description duration } } } `; var BiteDocument = gql` query Bite($id: ID!) { bite(id: $id) { id name transcript_id start_time end_time created_at status summary user_id media_type thumbnail preview summary_status user { id name first_name last_name picture } captions { end_time index speaker_id speaker_name start_time text } sources { src type } privacies created_from { id name type description duration } } } `; var AnalyticsDocument = gql` query Analytics($start_time: String, $end_time: String) { analytics(start_time: $start_time, end_time: $end_time) { team { meeting { count count_diff_pct duration duration_diff_pct average_count average_count_diff_pct average_duration average_duration_diff_pct } conversation { average_filler_words average_filler_words_diff_pct average_monologues_count average_monologues_count_diff_pct average_questions average_questions_diff_pct average_silence_duration average_silence_duration_diff_pct average_talk_listen_ratio average_words_per_minute longest_monologue_duration_sec longest_monologue_duration_diff_pct total_filler_words total_filler_words_diff_pct total_meeting_notes_count total_meetings_count total_monologues_count total_monologues_diff_pct teammates_count total_questions total_questions_diff_pct total_silence_duration total_silence_duration_diff_pct } } users { user_id user_name user_email meeting { count count_diff count_diff_compared_to count_diff_pct duration duration_diff duration_diff_compared_to duration_diff_pct } conversation { talk_listen_pct talk_listen_ratio total_silence_duration total_silence_duration_compare_to total_silence_pct total_silence_ratio total_speak_duration total_speak_duration_with_user total_word_count user_filler_words user_filler_words_compare_to user_filler_words_diff_pct user_longest_monologue_sec user_longest_monologue_compare_to user_longest_monologue_diff_pct user_monologues_count user_monologues_count_compare_to user_monologues_count_diff_pct user_questions user_questions_compare_to user_questions_diff_pct user_speak_duration user_word_count user_words_per_minute user_words_per_minute_compare_to user_words_per_minute_diff_pct } } } } `; var defaultWrapper = (action, _operationName, _operationType, _variables) => action(); function getSdk(client, withWrapper = defaultWrapper) { return { CreateBite(variables, requestHeaders, signal) { return withWrapper( (wrappedRequestHeaders) => client.request({ document: CreateBiteDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "CreateBite", "mutation", variables ); }, DeleteTranscript(variables, requestHeaders, signal) { return withWrapper( (wrappedRequestHeaders) => client.request({ document: DeleteTranscriptDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "DeleteTranscript", "mutation", variables ); }, UploadAudio(variables, requestHeaders, signal) { return withWrapper( (wrappedRequestHeaders) => client.request({ document: UploadAudioDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "UploadAudio", "mutation", variables ); }, AddToLiveMeeting(variables, requestHeaders, signal) { return withWrapper( (wrappedRequestHeaders) => client.request({ document: AddToLiveMeetingDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "AddToLiveMeeting", "mutation", variables ); }, SetUserRole(variables, requestHeaders, signal) { return withWrapper( (wrappedRequestHeaders) => client.request({ document: SetUserRoleDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "SetUserRole", "mutation", variables ); }, UpdateMeetingTitle(variables, requestHeaders, signal) { return withWrapper( (wrappedRequestHeaders) => client.request({ document: UpdateMeetingTitleDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "UpdateMeetingTitle", "mutation", variables ); }, Transcripts(variables, requestHeaders, signal) { return withWrapper( (wrappedRequestHeaders) => client.request({ document: TranscriptsDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "Transcripts", "query", variables ); }, Transcript(variables, requestHeaders, signal) { return withWrapper( (wrappedRequestHeaders) => client.request({ document: TranscriptDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "Transcript", "query", variables ); }, User(variables, requestHeaders, signal) { return withWrapper( (wrappedRequestHeaders) => client.request({ document: UserDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "User", "query", variables ); }, Apps(variables, requestHeaders, signal) { return withWrapper( (wrappedRequestHeaders) => client.request({ document: AppsDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "Apps", "query", variables ); }, Bites(variables, requestHeaders, signal) { return withWrapper( (wrappedRequestHeaders) => client.request({ document: BitesDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "Bites", "query", variables ); }, Bite(variables, requestHeaders, signal) { return withWrapper( (wrappedRequestHeaders) => client.request({ document: BiteDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "Bite", "query", variables ); }, Analytics(variables, requestHeaders, signal) { return withWrapper( (wrappedRequestHeaders) => client.request({ document: AnalyticsDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "Analytics", "query", variables ); } }; } // src/index.ts var FirefliesSDK = class { constructor(config) { if (!config.apiKey) { throw new Error("API key is required"); } const { apiKey, baseUrl = "https://api.fireflies.ai/graphql", headers = {} } = config; this.client = new GraphQLClient(baseUrl, { headers: { "Authorization": `Bearer ${apiKey}`, "Content-Type": "application/json", ...headers } }); this.sdk = getSdk(this.client); } /** * Get the raw GraphQL client for custom operations */ getClient() { return this.client; } /** * Get all generated SDK methods */ getSdk() { return this.sdk; } // Convenience methods for common operations getTranscripts(variables) { return this.sdk.Transcripts(variables); } getTranscript(variables) { return this.sdk.Transcript(variables); } getUser(variables) { return this.sdk.User(variables); } getApps(variables) { return this.sdk.Apps(variables); } getBites(variables) { return this.sdk.Bites(variables); } getBite(variables) { return this.sdk.Bite(variables); } getAnalytics(variables) { return this.sdk.Analytics(variables); } createBite(variables) { return this.sdk.CreateBite(variables); } deleteTranscript(variables) { return this.sdk.DeleteTranscript(variables); } uploadAudio(variables) { return this.sdk.UploadAudio(variables); } addToLiveMeeting(variables) { return this.sdk.AddToLiveMeeting(variables); } setUserRole(variables) { return this.sdk.SetUserRole(variables); } updateMeetingTitle(variables) { return this.sdk.UpdateMeetingTitle(variables); } }; function createFirefliesSDK(config) { return new FirefliesSDK(config); } function createClient(config) { if (!config.apiKey) { throw new Error("API key is required"); } const { apiKey, baseUrl = "https://api.fireflies.ai/graphql", headers = {} } = config; const client = new GraphQLClient(baseUrl, { headers: { "Authorization": `Bearer ${apiKey}`, "Content-Type": "application/json", ...headers } }); return getSdk(client); } export { AddToLiveMeetingDocument, AnalyticsDocument, AppsDocument, BiteDocument, BiteOriginType, BitePrivacy, BitesDocument, CreateBiteDocument, DeleteTranscriptDocument, FirefliesSDK, Role, SetUserRoleDocument, SummaryStatus, TranscriptDocument, TranscriptsDocument, UpdateMeetingTitleDocument, UploadAudioDocument, UserDocument, createClient, createFirefliesSDK, getSdk }; //# sourceMappingURL=index.mjs.map