Hiyve Components - v1.0.0
    Preparing search index...

    Module @hiyve/courses

    @hiyve/courses — framework-agnostic engine for structured courses.

    A provider builds a course (sections, lessons and blocks of video, audio, files, rich text, embeds, quizzes, live sessions or host-defined blocks), enrolls clients, and each client works through it at their own pace. The engine decides what each client can open (prerequisites, drip timers, provider approval), tracks progress, scores quizzes and keeps a 'review' quiz's answers away from clients. Persistence goes through a CourseStorage you choose: your own backend, the in-memory one, or Hiyve user files via @hiyve/courses/hiyve.

    import {
    addLesson, addSection, createCourse, createMemoryCourseStorage,
    computeLessonStates, enrollClient,
    } from '@hiyve/courses';

    const storage = createMemoryCourseStorage({ userId: 'provider@example.com' });
    let course = createCourse({ title: 'Getting started', ownerId: storage.userId });
    const { course: withSection, section } = addSection(course, { title: 'Week 1' });
    course = addLesson(withSection, section.id, { title: 'Welcome' }).course;
    course = await storage.createCourse(course);

    const { enrollment } = await enrollClient(storage, course, { userId: 'client@example.com' });
    const states = computeLessonStates(course, enrollment, null);

    Classes

    CourseStorageError

    Interfaces

    AccessRule
    AppliedReviewStatus
    AudioBlock
    BehindOptions
    BlockBase
    BlockProgress
    BlockProgressUpdate
    BlockResult
    ChoiceOption
    ClientLesson
    ClientLessonResult
    ClientRef
    CommentInput
    CommentSummary
    Course
    CourseAccessGrant
    CourseKeys
    CourseProgressSummary
    CourseSettings
    CourseStorage
    CourseSummary
    CourseTemplate
    CustomBlock
    EmbedBlock
    Enrollment
    EnrollmentOverview
    EnrollmentSummary
    FileBlock
    LastVisited
    LessonApproval
    LessonCompletion
    LessonContent
    LessonGrant
    LessonLocation
    LessonProgress
    LessonState
    LessonSummary
    LiveSessionBlock
    LongTextQuestion
    ManualCompletion
    MediaRef
    MemoryCourseBackend
    MemoryCourseStorageOptions
    MultiChoiceQuestion
    NewCourseInput
    NumberQuestion
    PlannedGrant
    Progress
    ProviderSettings
    QuestionKey
    QuizAttempt
    QuizBlock
    QuizScore
    ReviewInput
    ReviewResult
    ReviewStatus
    RichTextBlock
    SaveLessonResult
    ScaleQuestion
    Section
    ShortTextQuestion
    SingleChoiceQuestion
    Submission
    SubmissionBlock
    SubmissionComment
    SubmissionInput
    SubmissionReview
    SubmissionSummary
    SyncAccessResult
    TemplateLesson
    TemplateSection
    VideoBlock

    Type Aliases

    BehindReason
    Block
    BlockType
    CommentAnchor
    CourseIssue
    CourseProgression
    CourseSchemaVersion
    CourseStatus
    CourseStorageChange
    CourseStorageErrorCode
    DripRule
    EnrollmentStatus
    GrantReason
    LessonStatus
    LockReason
    Question
    QuestionKind
    QuizAnswer
    QuizAnswers
    QuizKey
    QuizScoring
    ReviewTone
    RichTextDoc
    Schedule
    SubmissionKind
    TimeInput

    Variables

    COURSE_SCHEMA_VERSION
    DEFAULT_ALLOWED_EMBED_ORIGINS
    DEFAULT_MEDIA_COMPLETE_AT
    DEFAULT_REVIEW_STATUSES
    defaultCourseSettings

    Functions

    addBlock
    addClientLesson
    addLesson
    addLessonComment
    addLessonForClient
    addLessonReply
    addReply
    addReviewComment
    addSection
    addSubmission
    applyGrants
    applyProgressReset
    applyQuizKey
    behindReason
    buildEnrollmentOverview
    collectMediaRefs
    completeLesson
    computeLessonCompletion
    computeLessonStates
    computeOverviewStates
    courseForEnrollment
    createCourse
    createCourseFromTemplate
    createId
    createLessonContent
    createMemoryCourseBackend
    createMemoryCourseStorage
    createProgress
    decideLesson
    decideLessonApproval
    dripAvailableAt
    dueStatus
    duplicateCourse
    effectivePrerequisites
    enrollClient
    enrollmentFromOverview
    extractQuizKey
    findLesson
    findSubmission
    grantLessonsManually
    instantiateTemplate
    isBlockComplete
    isClientLesson
    isCourseComplete
    isCoursePublished
    isCourseStorageError
    isEmbedUrlAllowed
    isHardLocked
    isMediaWatched
    isQuizAttemptComplete
    latestSubmission
    lessonCompletedAt
    lessonDueAt
    lessonFileIds
    lessonsAwaitingApproval
    lessonThread
    listLessons
    listSubmissions
    loadOrCreateProgress
    loadReviewStatuses
    markLessonComplete
    mergeCourseSettings
    mergeEnrollment
    mergeProgress
    moveBlock
    moveLesson
    moveSection
    nextDripAt
    normalizeAnswerText
    overdueLessonIds
    overdueLessons
    parseScheduleDate
    planAccessGrants
    planAccessRevocations
    planOverviewGrants
    planOverviewRevocations
    progressFromOverview
    questionKey
    quizAttemptsLeft
    removeBlock
    removeClient
    removeClientLesson
    removeGrants
    removeLesson
    removeLessonForClient
    removeSection
    replyToLesson
    resetClientProgress
    reviewFileIds
    reviewSubmission
    saveCourseAndSync
    saveLesson
    saveReviewStatuses
    scheduleAt
    scoreQuiz
    setEnrollmentPaused
    setEnrollmentStatus
    setLastVisited
    setLessonHidden
    setLessonHiddenForClient
    setReviewStatus
    stripQuizKey
    submissionFileIds
    submissionThread
    summarizeCourse
    summarizeLessonComments
    summarizeLessonReplies
    summarizeProgress
    syncAccess
    syncCourseAccess
    toEmbedUrl
    unansweredLessonComments
    unansweredQuestions
    unreviewedSubmissions
    updateBlock
    updateBlockProgress
    updateClientLesson
    updateLesson
    updateLessonForClient
    updateSection
    validateCourse