SYMBOL INDEX (980 symbols across 350 files) FILE: .github/bot/src/issue/index.ts function run (line 6) | async function run() { FILE: .github/bot/src/issue/labeler.ts function getLabelsFromTitle (line 1) | function getLabelsFromTitle(title: string): string[] { FILE: .github/bot/src/issue/message.ts function postWelcomeMessage (line 3) | async function postWelcomeMessage( FILE: app/(features)/(cards)/cards.tsx function QRCodeAndCardsPage (line 25) | function QRCodeAndCardsPage() { function Card (line 129) | function Card({ FILE: app/(features)/(cards)/qrcode.tsx function QRCodePage (line 23) | function QRCodePage() { FILE: app/(features)/(cards)/specific.tsx function QRCodeAndCardsPage (line 41) | function QRCodeAndCardsPage() { FILE: app/(features)/(news)/specific.tsx function NewsPage (line 28) | function NewsPage() { FILE: app/(features)/attendance.tsx function AttendanceView (line 43) | function AttendanceView() { FILE: app/(features)/soon.tsx function Soon (line 8) | function Soon() { FILE: app/(modals)/address.tsx type AddressModalProps (line 32) | interface AddressModalProps { type AddressItemProps (line 38) | interface AddressItemProps { FILE: app/(modals)/course.tsx type SubjectInfo (line 20) | interface SubjectInfo { type GradesModalProps (line 27) | interface GradesModalProps { function CourseModal (line 32) | function CourseModal() { FILE: app/(modals)/grade.tsx type SubjectInfo (line 21) | interface SubjectInfo { type GradesModalProps (line 28) | interface GradesModalProps { type GradeBadgeProps (line 35) | interface GradeBadgeProps { function GradesModal (line 58) | function GradesModal() { FILE: app/(modals)/notifications.tsx function NotificationsModal (line 8) | function NotificationsModal() { FILE: app/(modals)/profile.tsx function CustomProfileScreen (line 28) | function CustomProfileScreen() { FILE: app/(modals)/wallpaper.tsx constant COLLECTIONS_SOURCE (line 21) | const COLLECTIONS_SOURCE = "https://raw.githubusercontent.com/PapillonAp... type Collection (line 23) | interface Collection { FILE: app/(modals)/wrapped/_layout.tsx function Layout (line 6) | function Layout() { FILE: app/(modals)/wrapped/stories/consent.tsx type ConsentItem (line 13) | type ConsentItem = { constant INITIAL_ITEMS (line 63) | const INITIAL_ITEMS: ConsentItem[] = [ constant ICON_COLOR (line 70) | const ICON_COLOR = '#31424A'; constant TRACK_COLOR (line 71) | const TRACK_COLOR = { true: "#C50000" }; FILE: app/(new)/_layout.tsx function Layout (line 7) | function Layout() { FILE: app/(new)/event.tsx function NewEventScreen (line 18) | function NewEventScreen() { FILE: app/(onboarding)/_layout.tsx function OnboardingLayout (line 9) | function OnboardingLayout() { FILE: app/(onboarding)/ageSelection.tsx constant LEVELS (line 21) | const LEVELS = [ function AgeSelection (line 62) | function AgeSelection() { FILE: app/(onboarding)/components/LoginView.tsx type LoginViewProps (line 13) | interface LoginViewProps { function LoginView (line 34) | function LoginView({ FILE: app/(onboarding)/components/OnboardingSelector.tsx function OnboardingSelector (line 19) | function OnboardingSelector({ item, selected, setSelected }) { FILE: app/(onboarding)/components/OnboardingWebView.tsx function OnboardingWebView (line 13) | function OnboardingWebView({ webViewRef, ...props }: React.ComponentProp... FILE: app/(onboarding)/restaurants/_layout.tsx function OnboardingLayout (line 8) | function OnboardingLayout() { FILE: app/(onboarding)/restaurants/alise.tsx constant ANIMATION_DURATION (line 23) | const ANIMATION_DURATION = 100; function AliseLoginWithCredentials (line 25) | function AliseLoginWithCredentials() { FILE: app/(onboarding)/restaurants/ard.tsx constant ANIMATION_DURATION (line 29) | const ANIMATION_DURATION = 100; function TurboSelfLoginWithCredentials (line 31) | function TurboSelfLoginWithCredentials() { FILE: app/(onboarding)/restaurants/izly.tsx constant ANIMATION_DURATION (line 36) | const ANIMATION_DURATION = 100; function TurboSelfLoginWithCredentials (line 38) | function TurboSelfLoginWithCredentials() { FILE: app/(onboarding)/restaurants/method.tsx function ServiceSelection (line 23) | function ServiceSelection() { FILE: app/(onboarding)/restaurants/turboself.tsx constant ANIMATION_DURATION (line 27) | const ANIMATION_DURATION = 100; function TurboSelfLoginWithCredentials (line 29) | function TurboSelfLoginWithCredentials() { FILE: app/(onboarding)/restaurants/turboselfHost.tsx constant INITIAL_HEIGHT (line 30) | const INITIAL_HEIGHT = 570; constant COLLAPSED_HEIGHT (line 31) | const COLLAPSED_HEIGHT = 270; function TurboSelfSelectHost (line 76) | function TurboSelfSelectHost() { FILE: app/(onboarding)/serviceSelection.tsx function ServiceSelection (line 22) | function ServiceSelection() { FILE: app/(onboarding)/services/appscho/_layout.tsx function OnboardingLayout (line 8) | function OnboardingLayout() { FILE: app/(onboarding)/services/appscho/credentials.tsx constant ANIMATION_DURATION (line 29) | const ANIMATION_DURATION = 100; function AppSchoCredentials (line 31) | function AppSchoCredentials() { FILE: app/(onboarding)/services/appscho/list.tsx constant UNIVERSITY_LOGOS (line 17) | const UNIVERSITY_LOGOS: { [key: string]: any } = { function AppschoInstancesList (line 64) | function AppschoInstancesList() { FILE: app/(onboarding)/services/appscho/webview.tsx function AppschoWebView (line 11) | function AppschoWebView() { FILE: app/(onboarding)/services/ed/_layout.tsx function OnboardingLayout (line 9) | function OnboardingLayout() { FILE: app/(onboarding)/services/ed/credentials.tsx constant ANIMATION_DURATION (line 39) | const ANIMATION_DURATION = 170; function EDLoginWithCredentials (line 42) | function EDLoginWithCredentials() { FILE: app/(onboarding)/services/lannion/_layout.tsx function OnboardingLayout (line 9) | function OnboardingLayout() { FILE: app/(onboarding)/services/lannion/credentials.tsx constant ANIMATION_DURATION (line 32) | const ANIMATION_DURATION = 170; function LannionCredentials (line 38) | function LannionCredentials() { FILE: app/(onboarding)/services/multi/_layout.tsx function OnboardingLayout (line 10) | function OnboardingLayout() { FILE: app/(onboarding)/services/multi/credentials.tsx constant ANIMATION_DURATION (line 32) | const ANIMATION_DURATION = 170; function MultiLoginWithCredentials (line 34) | function MultiLoginWithCredentials() { FILE: app/(onboarding)/services/pronote/2fa.tsx function Pronote2FAModal (line 21) | function Pronote2FAModal({ doubleAuthSession, doubleAuthError, setChalle... FILE: app/(onboarding)/services/pronote/_layout.tsx function OnboardingLayout (line 9) | function OnboardingLayout() { FILE: app/(onboarding)/services/pronote/browser.tsx function PronoteENTLogin (line 26) | function PronoteENTLogin() { FILE: app/(onboarding)/services/pronote/locate.tsx type School (line 27) | interface School { function PronoteLoginMethod (line 68) | function PronoteLoginMethod() { FILE: app/(onboarding)/services/pronote/qrcode.tsx function PronoteLoginWithQR (line 24) | function PronoteLoginWithQR() { FILE: app/(onboarding)/services/pronote/select.tsx type School (line 19) | interface School { function PronoteLoginSelectEtab (line 58) | function PronoteLoginSelectEtab() { FILE: app/(onboarding)/services/pronote/url.tsx function PronoteLoginURL (line 44) | function PronoteLoginURL() { FILE: app/(onboarding)/services/skolengo/_layout.tsx function OnboardingLayout (line 9) | function OnboardingLayout() { FILE: app/(onboarding)/services/skolengo/locate.tsx type School (line 20) | interface School { function PronoteLoginMethod (line 61) | function PronoteLoginMethod() { FILE: app/(onboarding)/services/skolengo/webview.tsx function WebViewScreen (line 15) | function WebViewScreen() { FILE: app/(onboarding)/utils/constants.tsx type SupportedService (line 11) | interface SupportedService { function GetSupportedServices (line 25) | function GetSupportedServices(redirect: (path: { pathname: string, optio... type SupportedUniversity (line 111) | interface SupportedUniversity { function GetSupportedUniversities (line 120) | function GetSupportedUniversities(redirect: (path: { pathname: string, o... type LoginMethod (line 207) | interface LoginMethod { function GetLoginMethods (line 215) | function GetLoginMethods(redirect: (path: { pathname: RelativePathString... type SupportedRestaurant (line 258) | interface SupportedRestaurant { function GetSupportedRestaurants (line 267) | function GetSupportedRestaurants(redirect: (path: { pathname: string }) ... FILE: app/(onboarding)/utils/fetchSchools.ts type School (line 10) | interface School { function fetchSchools (line 17) | async function fetchSchools(service: Services, alert: ReturnType; FILE: app/(tabs)/grades/modals/AboutAverages.tsx function AboutAverages (line 7) | function AboutAverages() { FILE: app/(tabs)/grades/utils/graph.ts type GraphPoint (line 2) | interface GraphPoint { type AverageHistoryItem (line 9) | interface AverageHistoryItem { FILE: app/(tabs)/index/_layout.tsx function Layout (line 7) | function Layout() { FILE: app/(tabs)/index/atoms/WrappedBanner.tsx constant BANNER_HEIGHT (line 20) | const BANNER_HEIGHT = 130; FILE: app/(tabs)/index/components/HomeHeaderButton.ios.tsx type HomeHeaderButtonItem (line 9) | interface HomeHeaderButtonItem { type HomeHeaderButtonProps (line 17) | interface HomeHeaderButtonProps { FILE: app/(tabs)/index/components/HomeHeaderButton.tsx type HomeHeaderButtonItem (line 11) | interface HomeHeaderButtonItem { type HomeHeaderButtonProps (line 19) | interface HomeHeaderButtonProps { FILE: app/(tabs)/index/components/HomeTopBarButton.ios.tsx type HomeTopBarButtonProps (line 7) | interface HomeTopBarButtonProps { FILE: app/(tabs)/index/components/HomeTopBarButton.tsx type HomeTopBarButtonProps (line 9) | interface HomeTopBarButtonProps { FILE: app/(tabs)/index/components/HomeWidget.tsx type HomeWidgetItem (line 14) | interface HomeWidgetItem { type HomeWidgetProps (line 25) | interface HomeWidgetProps { FILE: app/(tabs)/index/hooks/useHomeData.ts constant HOME_SYNC_TTL_MS (line 16) | const HOME_SYNC_TTL_MS = 5 * 60 * 1000; FILE: app/(tabs)/index/index.old.tsx function setHomeworkAsDone (line 170) | async function setHomeworkAsDone(homework: Homework) { FILE: app/(tabs)/index/widgets/Grades.tsx constant PERIODS_TTL_MS (line 10) | const PERIODS_TTL_MS = 5 * 60 * 1000; constant GRADES_TTL_MS (line 11) | const GRADES_TTL_MS = 5 * 60 * 1000; type GradesWidgetProps (line 35) | type GradesWidgetProps = { FILE: app/(tabs)/news/_layout.tsx function Layout (line 7) | function Layout() { FILE: app/(tabs)/news/index.tsx function cleanContent (line 203) | function cleanContent(html: string): string { function truncateString (line 209) | function truncateString(str: string, maxLength: number): string { FILE: app/(tabs)/tasks/_layout.tsx function Layout (line 7) | function Layout() { FILE: app/(tabs)/tasks/atoms/DateHeader.tsx type DateHeaderProps (line 16) | interface DateHeaderProps { FILE: app/(tabs)/tasks/atoms/EmptyState.tsx type EmptyStateProps (line 10) | interface EmptyStateProps { FILE: app/(tabs)/tasks/atoms/TasksSummary.tsx type TasksSummaryProps (line 12) | interface TasksSummaryProps { FILE: app/(tabs)/tasks/components/TaskItem.tsx type TaskItemProps (line 14) | interface TaskItemProps { FILE: app/(tabs)/tasks/components/TasksHeader.tsx type SortMethod (line 12) | type SortMethod = 'date' | 'subject' | 'done'; type TasksHeaderProps (line 14) | interface TasksHeaderProps { FILE: app/(tabs)/tasks/components/TasksList.tsx type HomeworkSection (line 20) | interface HomeworkSection { type TasksListProps (line 27) | interface TasksListProps { FILE: app/(tabs)/tasks/components/WeekPicker.tsx type WeekPickerProps (line 12) | interface WeekPickerProps { FILE: app/(tabs)/tasks/hooks/useHomeworkData.ts type Service (line 17) | type Service = { id: string }; FILE: app/(tabs)/tasks/hooks/useTaskFilters.ts type SortMethod (line 6) | type SortMethod = 'date' | 'subject' | 'done'; type HomeworkSection (line 18) | interface HomeworkSection { FILE: app/_layout.tsx function RootLayout (line 16) | function RootLayout() { FILE: app/alert.tsx function AlertModal (line 16) | function AlertModal() { FILE: app/changelog.tsx function ChangelogScreen (line 7) | function ChangelogScreen() { FILE: app/consent.tsx function ConsentScreen (line 19) | function ConsentScreen() { FILE: app/demo.tsx function TabOneScreen (line 21) | function TabOneScreen() { type SectionTitleProps (line 308) | interface SectionTitleProps { FILE: app/devmode.tsx function Devmode (line 28) | function Devmode() { FILE: components/ActivityIndicator.tsx type ActivityIndicatorProps (line 13) | interface ActivityIndicatorProps { FILE: components/AndroidHeaderBackground.tsx function AndroidHeaderBackground (line 4) | function AndroidHeaderBackground() { FILE: components/AppColorsSelector.tsx type ColorSelectorProps (line 15) | interface ColorSelectorProps { type AppColorsSelectorProps (line 24) | interface AppColorsSelectorProps { FILE: components/AppProviders.tsx type AppProvidersProps (line 14) | interface AppProvidersProps { function AppProviders (line 18) | function AppProviders({ children }: AppProvidersProps) { FILE: components/DevModeNotice.tsx function DevModeNotice (line 10) | function DevModeNotice() { FILE: components/Log/LogIcon.tsx constant ICON_COLORS (line 7) | const ICON_COLORS: Record = { constant ICON_COMPONENTS (line 14) | const ICON_COMPONENTS: Record { FILE: database/useCanteen.ts function addCanteenMenuToDatabase (line 14) | async function addCanteenMenuToDatabase(menus: SharedCanteenMenu[]) { function getCanteenMenuFromCache (line 57) | async function getCanteenMenuFromCache(startDate: Date): Promise { function getRecipientsFromCache (line 110) | async function getRecipientsFromCache(chat: SharedChat): Promise { function addGradesToDatabase (line 58) | async function addGradesToDatabase(grades: SharedGrade[], subject: strin... function addPeriodGradesToDatabase (line 93) | async function addPeriodGradesToDatabase(item: SharedPeriodGrades, perio... function getGradePeriodsFromCache (line 125) | async function getGradePeriodsFromCache(period: string): Promise { FILE: database/useNews.ts function useNews (line 14) | function useNews(refresh = 0) { function addNewsToDatabase (line 34) | async function addNewsToDatabase(news: SharedNews[]) { function getNewsFromCache (line 100) | async function getNewsFromCache(): Promise { function mapNewsToShared (line 118) | function mapNewsToShared(news: News): SharedNews { FILE: database/usePeriodsCache.tsx function usePeriods (line 7) | function usePeriods() { FILE: database/useSubject.ts function addSubjectsToDatabase (line 11) | async function addSubjectsToDatabase( FILE: database/useTimetable.ts function useTimetable (line 15) | function useTimetable(refresh = 0, weekNumber: number | number[] = 0, da... function addCourseDayToDatabase (line 46) | async function addCourseDayToDatabase(courses: SharedCourseDay[]) { function getCoursesFromCache (line 145) | async function getCoursesFromCache(weeks: number[], year: number): Promi... FILE: database/utils/initialization.ts class DatabaseInitializer (line 7) | class DatabaseInitializer { method getInstance (line 11) | static getInstance(): DatabaseInitializer { method initializeDatabase (line 18) | async initializeDatabase(): Promise { method forceResetDatabaseQueue (line 44) | private async forceResetDatabaseQueue(db: Database): Promise { method testInitialDatabaseHealth (line 73) | private async testInitialDatabaseHealth(db: Database): Promise { method attemptDatabaseRecovery (line 97) | private async attemptDatabaseRecovery(db: Database): Promise { method isReady (line 128) | isReady(): boolean { function initializeDatabaseOnStartup (line 133) | async function initializeDatabaseOnStartup(): Promise { FILE: database/utils/safeTransaction.ts function safeWrite (line 5) | async function safeWrite( function safeRead (line 29) | async function safeRead( function batchOperations (line 54) | function batchOperations( function executeBatchedOperations (line 65) | async function executeBatchedOperations( FILE: hooks/useAppInitialization.ts constant APP_KEY (line 28) | const APP_KEY = secrets.APP_KEY; constant SALT (line 29) | const SALT = secrets.SALT; constant SERVER_URL (line 30) | const SERVER_URL = secrets.SERVER_URL ?? "https://analytics.papillon.bzh"; function useAppInitialization (line 32) | function useAppInitialization() { FILE: services/alise/balance.ts function fetchAliseBalance (line 7) | async function fetchAliseBalance(session: Client, accountId: string): Pr... FILE: services/alise/history.ts function fetchAliseHistory (line 4) | async function fetchAliseHistory(session: Client, accountId: string): Pr... FILE: services/alise/index.ts class Alise (line 11) | class Alise implements SchoolServicePlugin { method constructor (line 24) | constructor(accountId: string) { method refreshAccount (line 30) | async refreshAccount(credentials: Auth): Promise { method getCanteenBalances (line 41) | async getCanteenBalances(): Promise { method getCanteenTransactionsHistory (line 52) | async getCanteenTransactionsHistory(): Promise { FILE: services/alise/refresh.ts function refreshAliseAccount (line 4) | async function refreshAliseAccount(accountId: string, credentials: Auth)... FILE: services/appscho/index.ts class Appscho (line 11) | class Appscho implements SchoolServicePlugin { method constructor (line 18) | constructor(public accountId: string) {} method refreshAccount (line 20) | async refreshAccount(credentials: Auth): Promise { method getWeeklyTimetable (line 34) | async getWeeklyTimetable(weekNumber: number, date: Date, forceRefresh?... method getNews (line 43) | async getNews(): Promise { FILE: services/appscho/news.ts function fetchAppschoNews (line 5) | async function fetchAppschoNews(_session: User, accountId: string, insta... FILE: services/appscho/refresh.ts function refreshAppSchoAccount (line 5) | async function refreshAppSchoAccount( FILE: services/appscho/timetable.ts function parseAppschoDate (line 6) | function parseAppschoDate(dateStr: string): Date { function fetchAppschoTimetable (line 11) | async function fetchAppschoTimetable( function mapAppschoCourses (line 53) | function mapAppschoCourses(lessons: Lesson[], accountId: string): Course... FILE: services/ard/balance.ts function fetchArdBalance (line 5) | async function fetchArdBalance( FILE: services/ard/history.ts function fetchARDHistory (line 5) | async function fetchARDHistory( FILE: services/ard/index.ts class ARD (line 11) | class ARD implements SchoolServicePlugin { method constructor (line 18) | constructor(public accountId: string) {} method initCapabilities (line 20) | private async initCapabilities() { method refreshAccount (line 27) | async refreshAccount(credentials: Auth): Promise { method getCanteenBalances (line 36) | async getCanteenBalances(): Promise { method getCanteenTransactionsHistory (line 45) | async getCanteenTransactionsHistory(): Promise { FILE: services/ard/refresh.ts function refreshArdAccount (line 5) | async function refreshArdAccount( FILE: services/ecoledirecte/attendance.ts function fetchEDAttendance (line 8) | async function fetchEDAttendance(session: Client, accountId: string): Pr... function mapEcoleDirecteAbsences (line 33) | function mapEcoleDirecteAbsences(data: SchoolLifeAttendanceItem[], accou... function mapEcoleDirecteDelays (line 50) | function mapEcoleDirecteDelays(data: SchoolLifeAttendanceItem[], account... function mapEcoleDirectePunishments (line 66) | function mapEcoleDirectePunishments(data: SchoolLifeConductItem[], accou... function mapStringToDates (line 88) | function mapStringToDates(str: string): { start: Date, end: Date } { function mapStringToDuration (line 150) | function mapStringToDuration(str: string): number | undefined { FILE: services/ecoledirecte/balance.ts type EDBalanceElement (line 5) | interface EDBalanceElement { type EDBalanceResponse (line 14) | interface EDBalanceResponse { function fetchEDBalances (line 43) | async function fetchEDBalances(session: Session): Promise { FILE: services/ecoledirecte/chat.ts function fetchEDChats (line 8) | async function fetchEDChats(session: Session, account: Account, accountI... function fetchEDChatMessage (line 28) | async function fetchEDChatMessage(session: Session, account: Account, ac... FILE: services/ecoledirecte/grades.ts function fetchEDGradePeriods (line 9) | async function fetchEDGradePeriods(session: Client, accountId: string): ... function fetchEDGrades (line 24) | async function fetchEDGrades(session: Client, accountId: string, period:... function parseGradeValue (line 100) | function parseGradeValue(value: string): GradeScore { FILE: services/ecoledirecte/homework.ts function fetchEDHomeworks (line 6) | async function fetchEDHomeworks( function setEDHomeworkAsDone (line 37) | async function setEDHomeworkAsDone(session: Client, homework: Homework, ... FILE: services/ecoledirecte/index.ts class EcoleDirecte (line 19) | class EcoleDirecte implements SchoolServicePlugin { method constructor (line 33) | constructor(public accountId: string) {} method refreshAccount (line 35) | async refreshAccount(credentials: Auth): Promise { method getHomeworks (line 44) | async getHomeworks(weekNumber: number): Promise { method getNews (line 52) | async getNews(): Promise { method getGradesForPeriod (line 60) | async getGradesForPeriod(period: Period): Promise { method getGradesPeriods (line 68) | async getGradesPeriods(): Promise { method getAttendanceForPeriod (line 76) | async getAttendanceForPeriod(): Promise { method getWeeklyTimetable (line 84) | async getWeeklyTimetable(weekNumber: number, date: Date): Promise { method getCanteenBalances (line 30) | async getCanteenBalances(): Promise { method getCanteenTransactionsHistory (line 38) | async getCanteenTransactionsHistory(): Promise { method getCanteenQRCodes (line 46) | async getCanteenQRCodes(): Promise { FILE: services/izly/qrcode.ts function fetchIzlyQRCode (line 4) | function fetchIzlyQRCode(accountId: string, session: Identification): QR... FILE: services/izly/refresh.ts function refreshIzlyAccount (line 5) | async function refreshIzlyAccount(accountId: string, credentials: Auth):... FILE: services/lannion/attendance.ts function fetchLannionAttendance (line 7) | async function fetchLannionAttendance(session: LannionClient, accountId:... function processAbsences (line 51) | function processAbsences(releve: LannionReleve, accountId: string): Abse... FILE: services/lannion/grades.ts function safeParseFloat (line 8) | function safeParseFloat(value: string | null | undefined): number { function createScore (line 19) | function createScore(value: number, disabled: boolean = false, outOf?: n... function getGradeScore (line 27) | function getGradeScore(note: LannionNote | undefined, key: 'value' | 'mo... function getSubjectAverageScore (line 39) | function getSubjectAverageScore(ressource: LannionRessource, key: 'value... function getSubjectRankScore (line 45) | function getSubjectRankScore(ressource: LannionRessource): Score | undef... function createEvaluationGrade (line 56) | function createEvaluationGrade( function processRessourceGrades (line 82) | function processRessourceGrades(ressource: LannionRessource, subjectId: ... function processUEGrades (line 92) | function processUEGrades(ressource: LannionRessource, subjectId: string,... function processSubjectData (line 126) | function processSubjectData( function fetchLannionGrades (line 185) | async function fetchLannionGrades(session: LannionClient, accountId: str... FILE: services/lannion/index.ts class Lannion (line 12) | class Lannion implements SchoolServicePlugin { method constructor (line 21) | constructor(public accountId: string) {} method refreshAccount (line 23) | async refreshAccount(credentials: Auth): Promise { method getSemestres (line 100) | async getSemestres() { method getInitialData (line 109) | async getInitialData() { method getAllReleves (line 118) | async getAllReleves() { method getGradesPeriods (line 127) | async getGradesPeriods(): Promise { method getGradesForPeriod (line 131) | async getGradesForPeriod(period: Period): Promise { method getAttendancePeriods (line 139) | async getAttendancePeriods(): Promise { method getAttendanceForPeriod (line 143) | async getAttendanceForPeriod(period: string): Promise { FILE: services/lannion/module/api.ts constant SERVICE_URL (line 8) | const SERVICE_URL = 'https://notes9.iutlan.univ-rennes1.fr/services/data... class LannionAPI (line 10) | class LannionAPI { method constructor (line 11) | constructor(private client: LannionClient) {} method request (line 13) | private async request(query: string, params?: Record> { method getSemestres (line 71) | async getSemestres(): Promise> { method getReleveEtudiant (line 79) | async getReleveEtudiant(semestreId: string | number): Promise> { FILE: services/lannion/module/client.ts constant CAS_CONFIG (line 7) | const CAS_CONFIG = { class LannionClient (line 14) | class LannionClient { method constructor (line 17) | constructor() { /* empty */ } method authenticate (line 19) | async authenticate(username: string, password: string): Promise { method extractExecutionToken (line 94) | private extractExecutionToken(html: string): string { method getSession (line 102) | getSession(): LannionSession { method setSession (line 109) | setSession(phpSessionId: string) { method validateSession (line 113) | async validateSession(): Promise<{ isValid: boolean; error?: string }> { method clearSessionAndCookies (line 118) | async clearSessionAndCookies() { function authenticateWithCredentials (line 123) | async function authenticateWithCredentials(username: string, password: s... FILE: services/lannion/module/types.ts type LannionSession (line 1) | interface LannionSession { type ECTS (line 6) | interface ECTS { type Groupe (line 10) | interface Groupe { type AbsencesSemestre (line 28) | interface AbsencesSemestre { type Decision (line 34) | interface Decision { type DecisionUE (line 40) | interface DecisionUE { type AutorisationInscription (line 49) | interface AutorisationInscription { type LannionSemestre (line 54) | interface LannionSemestre { type LannionReleve (line 63) | interface LannionReleve { type LannionUE (line 78) | interface LannionUE { type LannionRessource (line 91) | interface LannionRessource { type LannionSAE (line 96) | interface LannionSAE { type LannionEvaluation (line 101) | interface LannionEvaluation { type LannionAbsence (line 114) | interface LannionAbsence { type Competence (line 123) | interface Competence { type Niveau (line 131) | interface Niveau { type DecisionRCUE (line 138) | interface DecisionRCUE { type DecisionAnnee (line 143) | interface DecisionAnnee { type NotesSemestre (line 150) | interface NotesSemestre { type Rang (line 157) | interface Rang { type SemestreInfo (line 163) | interface SemestreInfo { type Semestre (line 189) | interface Semestre { type Releve (line 198) | interface Releve { type Etudiant (line 204) | interface Etudiant { type Formation (line 238) | interface Formation { type InitialData (line 245) | interface InitialData { type ApiResponse (line 251) | interface ApiResponse { FILE: services/local/event-converter.ts type ConversionContext (line 8) | interface ConversionContext { type ParsedEventData (line 18) | interface ParsedEventData { constant DEFAULT_EVENT_DATA (line 26) | const DEFAULT_EVENT_DATA: ParsedEventData = { constant SCHOOL_PARSERS (line 32) | const SCHOOL_PARSERS = { function parseEventData (line 36) | function parseEventData(event: ICalEvent, isADE: boolean, isHyperplannin... function calculateEventEndTime (line 82) | function calculateEventEndTime(event: ICalEvent): Date { function convertICalEventToSharedCourse (line 91) | function convertICalEventToSharedCourse( function convertMultipleEvents (line 124) | function convertMultipleEvents( FILE: services/local/event-filter.ts function filterEventsByDateRange (line 3) | function filterEventsByDateRange( function filterEventsByWeek (line 18) | function filterEventsByWeek(events: ICalEvent[], weekStart: Date, weekEn... FILE: services/local/ical-database.ts function getAllIcals (line 6) | async function getAllIcals(): Promise { function updateIcalUrl (line 11) | async function updateIcalUrl(ical: Ical, newUrl: string): Promise { function updateIcalProvider (line 20) | async function updateIcalProvider(ical: Ical, provider: string): Promise... function enhanceIcalIfNeeded (line 29) | async function enhanceIcalIfNeeded(ical: Ical): Promise { function updateProviderIfUnknown (line 36) | async function updateProviderIfUnknown(ical: Ical, detectedProvider: str... FILE: services/local/ical-utils.ts constant SCHOOL_LIST (line 1) | const SCHOOL_LIST = [ function isValidUrl (line 8) | function isValidUrl(url: string): boolean { function normalizeUrl (line 17) | function normalizeUrl(url: string): string { function detectProvider (line 24) | function detectProvider(prodId?: string, url?: string): { isADE: boolean... function isADEProvider (line 35) | function isADEProvider(provider?: string): boolean { function isHyperplanningProvider (line 39) | function isHyperplanningProvider(provider?: string): boolean { FILE: services/local/ical.ts type ICalEvent (line 9) | interface ICalEvent { type ParsedICalData (line 20) | interface ParsedICalData { function fetchAndParseICal (line 31) | async function fetchAndParseICal(url: string): Promise { function processIcalData (line 57) | async function processIcalData(ical: any): Promise<{ parsedData: ParsedI... function getICalEventsForWeek (line 69) | async function getICalEventsForWeek(weekStart: Date, weekEnd: Date): Pro... FILE: services/local/parsers/ade-parser.ts type ParsedDescription (line 1) | interface ParsedDescription { function parseADEDescription (line 8) | function parseADEDescription( function enhanceADEUrl (line 95) | function enhanceADEUrl(url: string): string { FILE: services/local/parsers/hyperplanning-parser.ts type ParsedDescription (line 1) | interface ParsedDescription { function parseHyperplanningDescription (line 10) | function parseHyperplanningDescription(description: string): ParsedDescr... function isHyperplanningDescription (line 91) | function isHyperplanningDescription(description: string): boolean { FILE: services/local/parsers/ical-event-parser.ts type ParsedCalendarMetadata (line 5) | interface ParsedCalendarMetadata { function parseCalendarMetadata (line 10) | function parseCalendarMetadata(comp: ICAL.Component): ParsedCalendarMeta... function parseICalEvents (line 17) | function parseICalEvents(comp: ICAL.Component): ICalEvent[] { function parseICalString (line 39) | function parseICalString(icalString: string): { events: ICalEvent[]; met... FILE: services/local/parsers/schools/univrennes1_parser.ts function parseCourseLabel (line 14) | function parseCourseLabel(label) { function parseUR1Ical (line 52) | function parseUR1Ical( FILE: services/multi/index.ts class Multi (line 13) | class Multi implements SchoolServicePlugin { method constructor (line 24) | constructor(public accountId: string) {} method refreshAccount (line 26) | async refreshAccount(credentials: Auth): Promise { method getNews (line 35) | async getNews(): Promise { method getWeeklyTimetable (line 42) | async getWeeklyTimetable(weekNumber: number, date: Date): Promise { method refreshAccount (line 48) | async refreshAccount(credentials: Auth): Promise { method getHomeworks (line 73) | async getHomeworks(weekNumber: number): Promise { method getNews (line 83) | async getNews(): Promise { method getGradesForPeriod (line 93) | async getGradesForPeriod(period: Period): Promise { method getGradesPeriods (line 103) | async getGradesPeriods(): Promise { method getAttendanceForPeriod (line 113) | async getAttendanceForPeriod(period: string): Promise { method getAttendancePeriods (line 123) | async getAttendancePeriods(): Promise { method getWeeklyCanteenMenu (line 133) | async getWeeklyCanteenMenu(startDate: Date): Promise { method getWeeklyTimetable (line 143) | async getWeeklyTimetable(weekNumber: number, date: Date): Promise { method getChats (line 163) | async getChats(): Promise { method getChatRecipients (line 173) | async getChatRecipients(chat: Chat): Promise { method getChatMessages (line 183) | async getChatMessages(chat: Chat): Promise { method getRecipientsAvailableForNewChat (line 193) | async getRecipientsAvailableForNewChat(): Promise { method sendMessageInChat (line 203) | async sendMessageInChat(chat: Chat, content: string): Promise { method setNewsAsAcknowledged (line 213) | async setNewsAsAcknowledged(news: News): Promise { method setHomeworkCompletion (line 223) | async setHomeworkCompletion(homework: Homework, state?: boolean): Prom... method createMail (line 232) | async createMail(subject: string, content: string, recipients: Recipie... FILE: services/pronote/news.ts function fetchPronoteNews (line 12) | async function fetchPronoteNews(session: SessionHandle, accountId: strin... function setPronoteNewsAsAcknowledged (line 40) | async function setPronoteNewsAsAcknowledged( FILE: services/pronote/refresh.ts function refreshPronoteAccount (line 12) | async function refreshPronoteAccount( FILE: services/pronote/timetable.ts function fetchPronoteWeekTimetable (line 16) | async function fetchPronoteWeekTimetable( function fetchPronoteCourseResources (line 106) | async function fetchPronoteCourseResources( FILE: services/shared/attachment.ts type Attachment (line 10) | interface Attachment extends GenericInterface { type AttachmentType (line 16) | enum AttachmentType { FILE: services/shared/attendance.ts type Attendance (line 4) | interface Attendance extends GenericInterface { type Delay (line 11) | interface Delay extends GenericInterface { type ObservationType (line 19) | enum ObservationType { type Observation (line 26) | interface Observation { type Absence (line 36) | interface Absence extends GenericInterface { type Punishment (line 45) | interface Punishment { FILE: services/shared/balance.ts type Balance (line 3) | interface Balance extends GenericInterface { FILE: services/shared/canteen.ts type CanteenMenu (line 6) | interface CanteenMenu extends GenericInterface { type Meal (line 12) | interface Meal { type Food (line 21) | interface Food { type CanteenHistoryItem (line 26) | interface CanteenHistoryItem extends GenericInterface { type QRCode (line 33) | interface QRCode extends GenericInterface { type QRType (line 38) | enum QRType { type BookingDay (line 43) | interface BookingDay { type Booking (line 48) | interface Booking extends GenericInterface { type CanteenKind (line 56) | enum CanteenKind { FILE: services/shared/chat.ts type Chat (line 7) | interface Chat extends GenericInterface { type Recipient (line 16) | interface Recipient { type Message (line 23) | interface Message { FILE: services/shared/grade.ts type PeriodGrades (line 4) | interface PeriodGrades extends GenericInterface { type Subject (line 15) | interface Subject { type Grade (line 28) | interface Grade extends GenericInterface { type GradeScore (line 47) | interface GradeScore { type Period (line 54) | interface Period extends GenericInterface { FILE: services/shared/homework.ts type Homework (line 19) | interface Homework extends GenericInterface{ type ReturnFormat (line 33) | enum ReturnFormat { FILE: services/shared/index.ts class AccountManager (line 67) | class AccountManager { method constructor (line 70) | constructor(readonly account: Account) {} method removeService (line 72) | removeService(id: string): void { method getAccount (line 76) | getAccount(): Account { method refreshAllAccounts (line 80) | async refreshAllAccounts(): Promise { method getCanteenKind (line 116) | async getCanteenKind(clientId: string): Promise { method getKids (line 128) | async getKids(): Promise { method getHomeworks (line 142) | async getHomeworks(weekNumber: number): Promise { method getNews (line 157) | async getNews(): Promise { method getGradesForPeriod (line 171) | async getGradesForPeriod( method getGradesPeriods (line 193) | async getGradesPeriods(): Promise { method getAttendanceForPeriod (line 208) | async getAttendanceForPeriod(period: string): Promise { method getAttendancePeriods (line 230) | async getAttendancePeriods(): Promise { method getWeeklyCanteenMenu (line 245) | async getWeeklyCanteenMenu(startDate: Date): Promise { method getChats (line 262) | async getChats(): Promise { method getChatRecipients (line 276) | async getChatRecipients(chat: Chat): Promise { method getChatMessages (line 292) | async getChatMessages(chat: Chat): Promise { method getRecipientsAvailableForNewChat (line 308) | async getRecipientsAvailableForNewChat(): Promise { method getWeeklyTimetable (line 319) | async getWeeklyTimetable(weekNumber: number, date: Date): Promise { method sendMessageInChat (line 347) | async sendMessageInChat(chat: Chat, content: string): Promise { method setNewsAsDone (line 359) | async setNewsAsDone(news: News): Promise { method setHomeworkCompletion (line 370) | async setHomeworkCompletion( method createMail (line 384) | async createMail( method getCanteenBalances (line 404) | async getCanteenBalances(): Promise { method getCanteenTransactionsHistory (line 419) | async getCanteenTransactionsHistory( method getCanteenQRCodes (line 439) | async getCanteenQRCodes(clientId: string): Promise { method getCanteenBookingWeek (line 453) | async getCanteenBookingWeek( method setMealAsBooked (line 470) | async setMealAsBooked(meal: Booking, booked?: boolean): Promise( method fetchData (line 521) | private async fetchData( method getServicePluginForAccount (line 587) | private getServicePluginForAccount( FILE: services/shared/kid.ts type Kid (line 5) | interface Kid extends GenericInterface { FILE: services/shared/news.ts type News (line 19) | interface News extends GenericInterface { FILE: services/shared/timetable.ts type CourseDay (line 4) | interface CourseDay { type Course (line 9) | interface Course extends GenericInterface { type CourseResource (line 26) | interface CourseResource { type CourseType (line 33) | enum CourseType { type CourseStatus (line 40) | enum CourseStatus { FILE: services/shared/types.ts type SchoolServicePlugin (line 46) | interface SchoolServicePlugin { type Capabilities (line 106) | enum Capabilities { type GenericInterface (line 130) | interface GenericInterface { type FetchOptions (line 136) | type FetchOptions = { FILE: services/skolengo/attendance.ts function fetchSkolengoAttendance (line 5) | async function fetchSkolengoAttendance(session: Skolengo, accountId: str... function mapSkolengoDelays (line 30) | function mapSkolengoDelays(data: AttendanceItem[], accountId: string, ki... function mapSkolengoAbsences (line 42) | function mapSkolengoAbsences(data: AttendanceItem[], accountId: string, ... function durationToMinutes (line 55) | function durationToMinutes(timestamp1: number, timestamp2: number): numb... FILE: services/skolengo/chat.ts function fetchSkolengoChats (line 7) | async function fetchSkolengoChats(session: Skolengo, accountId: string):... function fetchSkolengoChatRecipients (line 24) | async function fetchSkolengoChatRecipients(chat: Chat): Promise { function fetchSkolengoAvailableRecipients (line 51) | async function fetchSkolengoAvailableRecipients(session: Skolengo): Prom... function createSkolengoMail (line 60) | async function createSkolengoMail(session: Skolengo, accountId: string, ... function sharedToSkolengoRecipient (line 73) | function sharedToSkolengoRecipient(recipients: Recipient[]): Recipients[] { FILE: services/skolengo/grades.ts function fetchSkolengoGradesForPeriod (line 7) | async function fetchSkolengoGradesForPeriod(session: Skolengo, accountId... function fetchSkolengoGradePeriods (line 36) | async function fetchSkolengoGradePeriods(session: Skolengo, accountId: s... function mapSkolengoGrades (line 68) | function mapSkolengoGrades(grades: SkolengoGrade[], accountId: string, k... function mapSkolengoSubjects (line 83) | function mapSkolengoSubjects(subjects: SkolengoSubjects[], accountId: st... FILE: services/skolengo/homework.ts function fetchSkolengoHomeworks (line 9) | async function fetchSkolengoHomeworks(session: Skolengo, accountId: stri... function setSkolengoHomeworkAsDone (line 54) | async function setSkolengoHomeworkAsDone(accountId: string, homework: Ho... FILE: services/skolengo/index.ts class Skolengo (line 23) | class Skolengo implements SchoolServicePlugin { method constructor (line 30) | constructor(public accountId: string){} method refreshAccount (line 32) | async refreshAccount(credentials: Auth): Promise { method getKids (line 58) | getKids(): Kid[] { method getHomeworks (line 66) | async getHomeworks(weekNumber: number): Promise { method getNews (line 74) | async getNews(): Promise { method getGradesForPeriod (line 82) | async getGradesForPeriod(period: Period, kid?: Kid): Promise { method getAttendanceForPeriod (line 102) | async getAttendanceForPeriod(): Promise { method getWeeklyTimetable (line 110) | async getWeeklyTimetable(weekNumber: number, date: Date): Promise { method getChatRecipients (line 126) | async getChatRecipients(chat: Chat): Promise { method getChatMessages (line 134) | async getChatMessages(chat: Chat): Promise { method setHomeworkCompletion (line 142) | async setHomeworkCompletion(homework: Homework, state?: boolean): Prom... method createMail (line 146) | async createMail(subject: string, content: string, recipients: Recipie... FILE: services/skolengo/kid.ts function fetchSkolengoKids (line 5) | function fetchSkolengoKids(session: Skolengo, accountId: string): Kid[] { FILE: services/skolengo/news.ts function fetchSkolengoNews (line 6) | async function fetchSkolengoNews(session: Skolengo, accountId: string): ... FILE: services/skolengo/refresh.ts function refreshSkolengoAccount (line 7) | async function refreshSkolengoAccount( FILE: services/skolengo/timetable.ts function fetchSkolengoTimetable (line 7) | async function fetchSkolengoTimetable(session: Skolengo, accountId: stri... function mapSkolengoCourse (line 29) | function mapSkolengoCourse(data: Lesson[], accountId: string, kidName?: ... FILE: services/transit/fetcher/Fetcher.ts class Fetcher (line 1) | class Fetcher { method get (line 2) | public async get(url: string, options: RequestInit = { FILE: services/transit/fetcher/endpoints.ts constant BGTFS_BASE_URL (line 1) | const BGTFS_BASE_URL = 'https://bgtfs.transitapp.com/v3/public'; constant API_BASE_URL (line 2) | const API_BASE_URL = "https://transitapp.com/en/trip/api"; FILE: services/transit/index.ts class Transit (line 12) | class Transit { method plan (line 15) | public async plan( method suggestions (line 48) | public async suggestions( method locationDetails (line 60) | public async locationDetails( FILE: services/transit/models/Alerts.ts type Alerts (line 3) | interface Alerts { FILE: services/transit/models/ArrivalSchedule.ts type ArrivalSchedule (line 1) | interface ArrivalSchedule { FILE: services/transit/models/DepartureLegs.ts type DepartureLegs (line 3) | interface DepartureLegs { FILE: services/transit/models/Itineraries.ts type Itineraries (line 4) | interface Itineraries { FILE: services/transit/models/ItinerariesPlanDetails.ts type ItinerariesPlanDetails (line 1) | interface ItinerariesPlanDetails { FILE: services/transit/models/Location.ts type Location (line 1) | interface Location { FILE: services/transit/models/MatchedSubstring.ts type MatchedSubstring (line 1) | interface MatchedSubstring { FILE: services/transit/models/Period.ts type Period (line 1) | interface Period { FILE: services/transit/models/Place.ts type Place (line 3) | interface Place { FILE: services/transit/models/PlaceDetails.ts type PlaceDetails (line 3) | interface PlaceDetails { FILE: services/transit/models/PlaceSuggestion.ts type PlaceSuggestion (line 3) | interface PlaceSuggestion { FILE: services/transit/models/PlanDetails.ts type PlanDetails (line 4) | interface PlanDetails { FILE: services/transit/models/PlanResult.ts type PlanResult (line 3) | interface PlanResult { FILE: services/transit/models/Route.ts type Route (line 5) | interface Route { FILE: services/transit/models/RouteLegs.ts type BaseRouteLegs (line 4) | interface BaseRouteLegs { type WalkRouteLegs (line 13) | interface WalkRouteLegs extends BaseRouteLegs { type TransitRouteLegs (line 22) | interface TransitRouteLegs extends BaseRouteLegs { type RouteLegs (line 29) | type RouteLegs = WalkRouteLegs | TransitRouteLegs; FILE: services/transit/models/Station.ts type Station (line 1) | interface Station { FILE: services/transit/models/Stop.ts type Stop (line 3) | interface Stop { FILE: services/transit/models/StopSchedule.ts type StopSchedule (line 1) | interface StopSchedule { FILE: services/transit/models/Suggestions.ts type Suggestions (line 4) | interface Suggestions { FILE: services/transit/models/TransitDepartures.ts type TransitDepartures (line 1) | interface TransitDepartures { FILE: services/transit/models/Vehicle.ts type Vehicle (line 1) | interface Vehicle { FILE: services/turboself/balance.ts function fetchTurboSelfBalance (line 5) | async function fetchTurboSelfBalance(session: Client, accountId: string)... FILE: services/turboself/booking.ts function fetchTurboSelfBookingsWeek (line 7) | async function fetchTurboSelfBookingsWeek(session: Client, accountId: st... function mapBookings (line 15) | function mapBookings(data: TurboBooking[], accountId: string): BookingDa... function setTurboSelfMealBookState (line 38) | async function setTurboSelfMealBookState(meal: Booking, booked?: boolean... FILE: services/turboself/history.ts function fetchTurboSelfHistory (line 5) | async function fetchTurboSelfHistory(session: Client, accountId: string)... FILE: services/turboself/index.ts class TurboSelf (line 15) | class TurboSelf implements SchoolServicePlugin { method constructor (line 28) | constructor(public accountId: string) {} method refreshAccount (line 30) | async refreshAccount(credentials: Auth): Promise { method getCanteenKind (line 39) | getCanteenKind(): CanteenKind { method getCanteenBalances (line 51) | async getCanteenBalances(): Promise { method getCanteenTransactionsHistory (line 59) | async getCanteenTransactionsHistory(): Promise { method getCanteenQRCodes (line 67) | async getCanteenQRCodes(): Promise { method getCanteenBookingWeek (line 75) | async getCanteenBookingWeek(weekNumber: number): Promise { method setMealAsBooked (line 83) | async setMealAsBooked(meal: Booking, booked?: boolean): Promise): any { method deserializeClass (line 62) | private static deserializeClass(obj: SerializableClass, classRegistry?... method findConstructor (line 72) | private static findConstructor(className: string, classRegistry?: Map<... method createInstance (line 89) | private static createInstance(Constructor: any, data: Record { method constructor (line 16) | constructor(props: Props) { method getDerivedStateFromError (line 21) | static getDerivedStateFromError(_: Error): State { method componentDidCatch (line 25) | componentDidCatch(error: Error, errorInfo: React.ErrorInfo) { method render (line 29) | render() { FILE: ui/components/Grade.tsx type GradeProps (line 13) | interface GradeProps { FILE: ui/components/Icon.tsx type IconProps (line 8) | interface IconProps extends ViewProps { constant COLORED_ICON_STYLE (line 19) | const COLORED_ICON_STYLE = Object.freeze({ constant EMPTY_STYLE (line 26) | const EMPTY_STYLE = Object.freeze({}); constant WHITE_COLOR (line 30) | const WHITE_COLOR = "#ffffff"; FILE: ui/components/Item.tsx constant LAYOUT_ANIMATION (line 10) | const LAYOUT_ANIMATION = Animation(LinearTransition, "list"); constant LEADING_TYPE (line 12) | const LEADING_TYPE = Symbol("Leading"); constant TRAILING_TYPE (line 13) | const TRAILING_TYPE = Symbol("Trailing"); constant LEADING_STYLE (line 16) | const LEADING_STYLE = Object.freeze({ layout: LAYOUT_ANIMATION }); constant TRAILING_STYLE (line 17) | const TRAILING_STYLE = Object.freeze({ layout: LAYOUT_ANIMATION }); function Leading (line 19) | function Leading({ children, ...rest }: PressableProps) { function Trailing (line 27) | function Trailing({ children, ...rest }: PressableProps) { type ListProps (line 44) | interface ListProps extends PressableProps { constant DEFAULT_CONTAINER_STYLE (line 52) | const DEFAULT_CONTAINER_STYLE = Object.freeze({ constant DEFAULT_CONTENT_STYLE (line 61) | const DEFAULT_CONTENT_STYLE = Object.freeze({ function areEqual (line 68) | function areEqual(prev: ListProps, next: ListProps) { FILE: ui/components/List.tsx type ListProps (line 10) | interface ListProps extends ViewProps { constant LAYOUT_ANIMATION (line 25) | const LAYOUT_ANIMATION = Object.freeze(Animation(LinearTransition, "list... constant BORDER_BOTTOM_WIDTH (line 26) | const BORDER_BOTTOM_WIDTH = 0.5; constant OPACITY_HEX (line 27) | const OPACITY_HEX = "25"; constant ESTIMATED_ITEM_SIZE (line 28) | const ESTIMATED_ITEM_SIZE = 48; constant EMPTY_ARRAY (line 29) | const EMPTY_ARRAY = Object.freeze([]); constant VIRTUALIZATION_THRESHOLD (line 31) | const VIRTUALIZATION_THRESHOLD = 20; constant MEMOIZATION_THRESHOLD (line 32) | const MEMOIZATION_THRESHOLD = 10; constant BASE_CONTAINER_STYLE (line 34) | const BASE_CONTAINER_STYLE: ViewStyle = Object.freeze({ constant BASE_ITEM_STYLE (line 45) | const BASE_ITEM_STYLE: ViewStyle = Object.freeze({ constant DEFAULT_PADDING (line 50) | const DEFAULT_PADDING: ViewStyle = Object.freeze({ type ChildMeta (line 88) | interface ChildMeta { FILE: ui/components/NativeHeader.tsx constant PRESSABLE_STYLE_CACHE (line 60) | const PRESSABLE_STYLE_CACHE = new WeakMap(); constant COLOR_CACHE (line 72) | const COLOR_CACHE = new Map(); constant DEFAULT_COLOR (line 83) | const DEFAULT_COLOR = "29947A"; constant DEFAULT_BACKGROUND_COLOR (line 84) | const DEFAULT_BACKGROUND_COLOR = getBackgroundColor(DEFAULT_COLOR); type NativeSideProps (line 86) | interface NativeSideProps extends ViewProps { type NativeHeaderTitleProps (line 125) | interface NativeHeaderTitleProps extends ViewProps { type NativeHeaderHighlightProps (line 256) | interface NativeHeaderHighlightProps extends ViewProps { FILE: ui/components/Pattern/Pattern.tsx type AvailablePatterns (line 7) | enum AvailablePatterns { type PatternProps (line 11) | interface PatternProps extends ViewProps{ FILE: ui/components/Search.tsx type SearchProps (line 13) | interface SearchProps { FILE: ui/components/SectionHeader.tsx type SectionHeaderProps (line 6) | interface SectionHeaderProps { function SectionHeader (line 12) | function SectionHeader({ title, leading, trailing }: SectionHeaderProps) { FILE: ui/components/SkeletonView.tsx type SkeletonViewProps (line 7) | interface SkeletonViewProps extends ViewProps { FILE: ui/components/Stack.tsx type Direction (line 9) | type Direction = "vertical" | "horizontal"; type Alignment (line 10) | type Alignment = "start" | "center" | "end"; type StackProps (line 12) | interface StackProps extends ViewProps { constant ALIGN_ITEMS_MAP (line 35) | const ALIGN_ITEMS_MAP: Record = { constant JUSTIFY_CONTENT_MAP (line 41) | const JUSTIFY_CONTENT_MAP: Record>(); constant MAX_CACHE_SIZE (line 51) | const MAX_CACHE_SIZE = 100; constant COMMON_STYLES (line 64) | const COMMON_STYLES = StyleSheet.create({ FILE: ui/components/Subject.tsx type SubjectProps (line 12) | interface SubjectProps { FILE: ui/components/TabFlatList.tsx type TabFlatListProps (line 14) | interface TabFlatListProps extends FlatListProps { FILE: ui/components/TabHeader.tsx type TabHeaderProps (line 14) | interface TabHeaderProps { FILE: ui/components/TabHeaderTitle.tsx type TabHeaderTitleProps (line 17) | interface TabHeaderTitleProps { FILE: ui/components/TableFlatList.tsx type SectionItem (line 15) | interface SectionItem { type Section (line 37) | interface Section { type TableFlatListProps (line 45) | interface TableFlatListProps extends FlatListProps { FILE: ui/components/Task.tsx type TaskProps (line 23) | interface TaskProps { function formatDistanceDay (line 53) | function formatDistanceDay(date: Date): string { FILE: ui/components/Typography.tsx constant FONT_FAMILIES (line 7) | const FONT_FAMILIES = { constant VARIANTS (line 14) | const VARIANTS = StyleSheet.create({ constant ALIGNMENT_STYLES (line 89) | const ALIGNMENT_STYLES = StyleSheet.create({ constant WEIGHT_STYLES (line 96) | const WEIGHT_STYLES = StyleSheet.create({ constant STATIC_COLORS (line 103) | const STATIC_COLORS = { constant FLEX_ALIGN_MAP (line 108) | const FLEX_ALIGN_MAP = { constant ITALIC_STYLE (line 115) | const ITALIC_STYLE = { transform: [{ skewX: "-13deg" }] }; type Variant (line 117) | type Variant = keyof typeof VARIANTS; type Color (line 118) | type Color = "primary" | "text" | "secondary" | "light" | "danger"; type Alignment (line 119) | type Alignment = keyof typeof ALIGNMENT_STYLES; type TypographyProps (line 121) | interface TypographyProps extends TextProps { FILE: ui/components/ViewContainer.tsx function ViewContainer (line 6) | function ViewContainer({ children }: Readonly<{ children: React.ReactNod... FILE: ui/native/NativeSwitch.tsx type NativeSwitchProps (line 4) | type NativeSwitchProps = { FILE: ui/new/Button.tsx function Button (line 8) | function Button({ label, onPress, disabled = false, variant = "primary",... FILE: ui/new/Divider.tsx function Divider (line 5) | function Divider({ height = 1, ghost = false, color }: { height?: number... FILE: ui/new/List.tsx type MarkerProps (line 12) | type MarkerProps = { type ListItemProps (line 16) | type ListItemProps = MarkerProps & { type ListViewProps (line 26) | type ListViewProps = MarkerProps & { type ListRuntimeItemContext (line 31) | type ListRuntimeItemContext = { FILE: ui/new/ListTouchableContext.ts type ListTouchableBlockPressController (line 3) | type ListTouchableBlockPressController = { FILE: ui/new/RippleEffect.tsx type RippleProps (line 13) | interface RippleProps { FILE: ui/new/Typography.tsx constant WEIGHTS (line 5) | const WEIGHTS = ["light", "regular", "medium", "semibold", "bold"]; constant VARIANTS (line 7) | const VARIANTS: Record> = { constant ALIGNMENTS (line 71) | const ALIGNMENTS: Record = { function Typography (line 77) | function Typography({ variant = "body1", color = "textPrimary", align = ... FILE: ui/utils/Animation.ts constant SPRING_CONFIG (line 3) | const SPRING_CONFIG = { mass: 1, damping: 20, stiffness: 300 }; type AnimationStyle (line 5) | type AnimationStyle = "default" | "spring" | "list" | "smooth" | "fade"; FILE: ui/utils/Duration.ts function formatDuration (line 1) | function formatDuration(seconds: number): string { FILE: utils/adjustColor.ts function adjust (line 3) | function adjust(hex: string, percent: number) { FILE: utils/chats/colors.ts function getProfileColorByName (line 3) | function getProfileColorByName (name: string): string { FILE: utils/chats/initials.ts function getInitials (line 1) | function getInitials(name: string): string { FILE: utils/colorCheck.ts type RgbComponent (line 1) | type RgbComponent = number; type HexColor (line 2) | type HexColor = string; type ContrastCheckResult (line 4) | interface ContrastCheckResult { FILE: utils/colors.ts type Colors (line 3) | enum Colors { FILE: utils/endpoints.ts constant MAGIC_URL (line 2) | const MAGIC_URL = FILE: utils/format/formatSchoolName.ts function formatSchoolName (line 1) | function formatSchoolName(input: string): string { FILE: utils/generateId.ts function generateId (line 1) | function generateId(str?: string): string { FILE: utils/github/contributors.ts type Contributor (line 2) | interface Contributor { function getContributors (line 9) | async function getContributors (): Promise { FILE: utils/grades/algorithms/helpers.ts type ScoreProperty (line 3) | type ScoreProperty = "studentScore" | "averageScore" | "minScore" | "max... FILE: utils/grades/helper/period.ts function getCurrentPeriod (line 4) | function getCurrentPeriod(periods: Period[]): Period { FILE: utils/logger/consent.ts type ConsentStatus (line 4) | interface ConsentStatus { type ConsentLevels (line 21) | interface ConsentLevels { FILE: utils/logger/logger.ts function getIsoDate (line 11) | function getIsoDate(): string { function getMessage (line 15) | function getMessage(type: number, date: string, from: string, message: s... function obtainFunctionName (line 23) | function obtainFunctionName(from?: string): string { function saveLog (line 43) | function saveLog(date: string, message: string, type: LogType, from?: st... function log (line 50) | function log(message: string, from?: string): void { function error (line 58) | function error(message: string, from?: string): void { function warn (line 67) | function warn(message: string, from?: string): void { function info (line 75) | function info(message: string, from?: string): void { FILE: utils/magic/ModelManager.ts type ModelPrediction (line 12) | type ModelPrediction = { function removeAccents (line 18) | function removeAccents(text: string): string { function applyKerasFilters (line 22) | function applyKerasFilters(text: string, filters?: string): string { function compactSpaces (line 34) | function compactSpaces(text: string): string { function normalizeText (line 38) | function normalizeText(text: string, config: any): string { function getMagicURL (line 55) | function getMagicURL(): string { class ModelManager (line 59) | class ModelManager { method getInstance (line 74) | static getInstance(): ModelManager { method performPreventiveCleanup (line 81) | async performPreventiveCleanup(): Promise { method safeInit (line 103) | async safeInit(): Promise { method _performSafeInit (line 121) | private async _performSafeInit(): Promise { method resetInitializationState (line 145) | resetInitializationState(): void { method init (line 151) | async init(): Promise<{ source: string; success: boolean; error?: stri... method refresh (line 185) | async refresh(): Promise<{ method reset (line 249) | async reset(): Promise<{ success: boolean; error?: string }> { method getStatus (line 283) | getStatus(): { method tryLoadFromActivePtr (line 333) | private async tryLoadFromActivePtr(): Promise { method loadFromDirectory (line 363) | async loadFromDirectory(dirUri: string): Promise { method tokenize (line 448) | tokenize(text: string, verbose: boolean = false): number[] { method processQueue (line 489) | private async processQueue(): Promise { method queuePrediction (line 510) | private async queuePrediction(task: () => Promise): Promise { method predict (line 525) | async predict( method predictInternal (line 532) | private async predictInternal( FILE: utils/magic/prediction.ts function isModelPrediction (line 16) | function isModelPrediction(object: unknown): object is ModelPrediction { function predictHomework (line 27) | async function predictHomework(label: string, magicEnabled: boolean = tr... FILE: utils/magic/updater/extract.ts function base64ToBytes (line 8) | function base64ToBytes(b64: string): Uint8Array { function bytesToBase64 (line 14) | function bytesToBase64(u8: Uint8Array): string { function listAllFiles (line 20) | async function listAllFiles(dirUri: string, relPrefix = ""): Promise(uri: string): Promise { function writeJSON (line 24) | async function writeJSON(uri: string, data: unknown) { function withLock (line 30) | async function withLock( FILE: utils/magic/updater/index.ts constant MODELS_ROOT (line 14) | const MODELS_ROOT = new Directory(Paths.document, "papillon-models"); function getCurrentPtr (line 16) | async function getCurrentPtr(): Promise { function setCurrentPtr (line 41) | async function setCurrentPtr(ptr: CurrentPtr) { function smokeTestModel (line 48) | async function smokeTestModel(dirUri: string) { function checkAndUpdateModel (line 64) | async function checkAndUpdateModel( function getActivePaths (line 181) | function getActivePaths(ptr: CurrentPtr) { FILE: utils/magic/updater/integrity.ts function fileSha256Hex (line 4) | async function fileSha256Hex(uri: string): Promise { function verifySize (line 20) | async function verifySize(uri: string, expected: number) { FILE: utils/magic/updater/manifest.ts function fetchManifest (line 5) | async function fetchManifest( function compareModels (line 39) | function compareModels(a: ApiModel, b: ApiModel): number { function validateManifest (line 58) | function validateManifest(m: ApiModel): void { FILE: utils/magic/updater/network.ts function isInternetReachable (line 5) | async function isInternetReachable(): Promise { function fetchJsonWithRetry (line 10) | async function fetchJsonWithRetry( function fetchLatestManifest (line 30) | async function fetchLatestManifest(url: string) { FILE: utils/magic/updater/semver.ts type SemverTuple (line 1) | type SemverTuple = [number, number, number]; function parse (line 3) | function parse(v: string): SemverTuple { function cmp (line 15) | function cmp(a: string, b: string): number { function satisfies (line 25) | function satisfies(version: string, constraint: string): boolean { function satisfiesAll (line 52) | function satisfiesAll(version: string, constraints: string[]): boolean { FILE: utils/magic/updater/types.ts type CurrentPtr (line 1) | type CurrentPtr = { name: string; version: string; dir: string }; type ApiModel (line 3) | type ApiModel = { type ApiResponse (line 13) | type ApiResponse = { model: ApiModel }; FILE: utils/native/georeverse.ts function GeographicReverse (line 3) | async function GeographicReverse(lat: number, lon: number): Promise { function GeographicSearchCities (line 91) | async function GeographicSearchCities(q: string, retry = 3): Promise { function scheduleNotification (line 42) | async function scheduleNotification( function scheduleNotificationAtDate (line 50) | async function scheduleNotificationAtDate( function scheduleDailyNotification (line 62) | async function scheduleDailyNotification( function getAllScheduledNotifications (line 75) | async function getAllScheduledNotifications(): Promise { function cancelAllNotifications (line 83) | async function cancelAllNotifications(): Promise { FILE: utils/pronote/fetcher.ts method headers (line 22) | get headers() { FILE: utils/pronote/name.ts function GetIdentityFromPronoteUsername (line 1) | function GetIdentityFromPronoteUsername(str: string): { firstName: strin... FILE: utils/restaurant/detect-price.ts function detectMealPrice (line 3) | function detectMealPrice (history: CanteenHistoryItem[]): number | null { FILE: utils/services/helper.ts function getServiceName (line 5) | function getServiceName(service: Services): string { function getServiceLogo (line 24) | function getServiceLogo(service: Services): ImageSourcePropType { function getServiceBackground (line 47) | function getServiceBackground(service: Services): ImageSourcePropType { function getServiceColor (line 65) | function getServiceColor(service: Services): string { function getCodeType (line 80) | function getCodeType(service: Services): string { function isSelfModuleEnabledED (line 89) | function isSelfModuleEnabledED(additionals?: Record): boole... FILE: utils/subjects/colors.ts function getSubjectColor (line 5) | function getSubjectColor(subject: string): string { function getRandomColor (line 25) | function getRandomColor(ignoredColors?: string[]) { FILE: utils/subjects/emoji.ts function getSubjectEmoji (line 5) | function getSubjectEmoji(subject: string): string { FILE: utils/subjects/name.ts function getSubjectName (line 6) | function getSubjectName(subject: string): string { FILE: utils/subjects/utils.ts function normalizeSubjectNameInternal (line 35) | function normalizeSubjectNameInternal(subject: string): string { function normalizeSubjectName (line 48) | function normalizeSubjectName(subject: string): string { function cleanSubjectName (line 58) | function cleanSubjectName(subject: string): string { function getSubjectFormat (line 74) | function getSubjectFormat(subject: string) { FILE: utils/theme/Theme.ts constant FALLBACK_COLORS (line 8) | const FALLBACK_COLORS = { function getThemeColors (line 30) | function getThemeColors(useMaterialYou: boolean) { function createDefaultTheme (line 56) | function createDefaultTheme(useMaterialYou: boolean, primaryColor: strin... function createDarkTheme (line 74) | function createDarkTheme(useMaterialYou: boolean, primaryColor: string) { FILE: utils/uuid/uuid.ts function uuid (line 1) | function uuid (): string {