UNPKG

@coursebuilder/core

Version:

Core package for Course Builder

1 lines 4.8 kB
{"version":3,"sources":["../../src/providers/index.ts"],"sourcesContent":["import { AdapterUser } from '@auth/core/adapters'\nimport { EmailConfig } from '@auth/core/providers'\nimport { NodemailerConfig } from '@auth/core/providers/nodemailer'\n\nimport { Subscriber } from '../schemas/subscriber-schema'\nimport { CookieOption, PaymentsProviderConfig } from '../types'\nimport { LlmProviderConfig } from './openai'\nimport { PartyProviderConfig } from './partykit'\nimport { NotificationProviderConfig } from './slack'\n\nexport interface EmailListSubscribeOptions {\n\tlistId?: string | number\n\tuser: AdapterUser\n\tfields: Record<string, string>\n\tlistType: string\n}\n\nexport interface EmailListConfig {\n\tid: string\n\tname: string\n\ttype: string\n\toptions: EmailListConsumerConfig\n\tapiKey: string\n\tapiSecret: string\n\tdefaultListType: string\n\tdefaultListId?: number | string\n\tsubscribeToList: (options: EmailListSubscribeOptions) => Promise<any>\n\tgetSubscriber: (\n\t\tsubscriberId: string | null | CookieOption,\n\t) => Promise<Subscriber | null>\n\tgetSubscriberByEmail: (email: string) => Promise<Subscriber | null>\n\ttagSubscriber?: (options: {\n\t\ttag: string\n\t\tsubscriberId: string\n\t}) => Promise<any>\n\tupdateSubscriberFields?: (options: {\n\t\tfields: Record<string, string>\n\t\tsubscriberId?: string\n\t\tsubscriberEmail?: string\n\t}) => Promise<Subscriber | null>\n}\n\nexport type EmailListConsumerConfig = Omit<\n\tPartial<EmailListConfig>,\n\t'options' | 'type'\n> & {\n\tapiKey: string\n\tapiSecret: string\n}\n\n/**\n * The configuration object for a transcription service provider.\n */\nexport interface TranscriptionConfig {\n\tid: string\n\tname: string\n\ttype: string\n\toptions: TranscriptionUserConfig\n\tapiKey: string\n\tcallbackUrl: string\n\tgetCallbackUrl?: (options: {\n\t\tbaseUrl: string\n\t\tparams: Record<string, string>\n\t}) => string\n\tinitiateTranscription: (options: {\n\t\tmediaUrl: string\n\t\tresourceId: string\n\t}) => Promise<any>\n\thandleCallback: (callbackData: any) => {\n\t\tsrt: string\n\t\ttranscript: string\n\t\twordLevelSrt: string\n\t}\n}\n\nexport const MockTranscriptionProvider: TranscriptionConfig = {\n\tid: 'mock-transcription' as const,\n\tname: 'Mock Transcription',\n\ttype: 'transcription',\n\toptions: {\n\t\tapiKey: 'mock-api-key',\n\t\tcallbackUrl: 'mock-callback-url',\n\t},\n\tapiKey: 'mock-api-key',\n\tcallbackUrl: 'mock-callback-url',\n\tgetCallbackUrl: () => 'mock-callback-url',\n\tinitiateTranscription: async () => ({ mock: 'transcription' }),\n\thandleCallback: () => ({\n\t\tsrt: 'mock-srt',\n\t\ttranscript: 'mock-transcript',\n\t\twordLevelSrt: 'mock-word-level-srt',\n\t}),\n}\n\nexport type TranscriptionUserConfig = Omit<\n\tPartial<TranscriptionConfig>,\n\t'options' | 'type'\n> & {\n\tapiKey: string\n\tcallbackUrl: string\n}\n/**\n * The user configuration object for a transcription service provider.\n */\nexport type ProviderType =\n\t| 'transcription'\n\t| 'email-list'\n\t| 'payment'\n\t| 'party'\n\t| 'checkout'\n\t| 'email'\n\t| 'notification'\n\ninterface InternalProviderOptions {\n\t/** Used to deep merge user-provided config with the default config\n\t */\n\toptions?: Record<string, any>\n}\n\nexport interface CommonProviderOptions {\n\t/**\n\t * Uniquely identifies the provider in {@link CourseBuilderConfig.providers}.\n\t * It's also part of the URL\n\t */\n\tid: string\n\t/**\n\t * The provider name used on the default sign-in page's sign-in button.\n\t * For example if it's \"Google\", the corresponding button will say:\n\t * \"Sign in with Google\"\n\t */\n\tname: string\n\t/** See {@link ProviderType} */\n\ttype: ProviderType\n}\n\nexport type Provider<P = any> = (\n\t| ((\n\t\t\t| TranscriptionConfig\n\t\t\t| EmailListConfig\n\t\t\t| LlmProviderConfig\n\t\t\t| PartyProviderConfig\n\t\t\t| PaymentsProviderConfig\n\t\t\t| EmailConfig\n\t\t\t| NodemailerConfig\n\t\t\t| NotificationProviderConfig\n\t ) &\n\t\t\tInternalProviderOptions)\n\t| ((\n\t\t\t...args: any\n\t ) => (\n\t\t\t| TranscriptionConfig\n\t\t\t| EmailListConfig\n\t\t\t| LlmProviderConfig\n\t\t\t| PartyProviderConfig\n\t\t\t| PaymentsProviderConfig\n\t\t\t| EmailConfig\n\t\t\t| NodemailerConfig\n\t\t\t| NotificationProviderConfig\n\t ) &\n\t\t\tInternalProviderOptions)\n) &\n\tInternalProviderOptions\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA2EA;;;;;AAAO,IAAMA,4BAAiD;EAC7DC,IAAI;EACJC,MAAM;EACNC,MAAM;EACNC,SAAS;IACRC,QAAQ;IACRC,aAAa;EACd;EACAD,QAAQ;EACRC,aAAa;EACbC,gBAAgB,MAAM;EACtBC,uBAAuB,aAAa;IAAEC,MAAM;EAAgB;EAC5DC,gBAAgB,OAAO;IACtBC,KAAK;IACLC,YAAY;IACZC,cAAc;EACf;AACD;","names":["MockTranscriptionProvider","id","name","type","options","apiKey","callbackUrl","getCallbackUrl","initiateTranscription","mock","handleCallback","srt","transcript","wordLevelSrt"]}