@firefliesai/api-sdk
Version:
TypeScript SDK for Fireflies.ai API
733 lines (730 loc) • 16.9 kB
JavaScript
"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