@reblu/site-contracts 1.24.0 → 1.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# @reblu/site-contracts
|
|
2
2
|
|
|
3
|
+
## 1.25.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 1860554: `AcademyCourseDetail.refundGuarantee` carries the course's refund guarantee terms, so the SITE can show them before payment (REB-1199). A refund is guaranteed within `windowDays` of payment while the student has used less than `thresholdPercent` of the lessons. `basis` says whether lessons count when opened or when completed. It is `null` when neither the academy nor the course chose a guarantee, when it is turned off, or when the course is free. The field is optional, so existing SITEs keep working.
|
|
8
|
+
- 82ab415: `AcademyCourseDetail` tells the SITE what the buyer must see before paying (REB-1199). `withdrawalWaiverRequired`: checkout asks for a separate box in which the buyer requests immediate access and acknowledges losing the 14-day withdrawal right. `accessDurationMonths`: months of access after enrolment, `null` for no end date. Both are optional, so existing SITEs keep working.
|
|
9
|
+
|
|
3
10
|
## 1.24.0
|
|
4
11
|
|
|
5
12
|
### Minor Changes
|
package/dist/index.d.cts
CHANGED
|
@@ -10,7 +10,7 @@ export type AcademyCategoryPublic = { id: string; name: string; slug: s
|
|
|
10
10
|
|
|
11
11
|
export type AcademyConfigPublic = { catalogFilters: { category: boolean; instructor: boolean; price: boolean; };}
|
|
12
12
|
|
|
13
|
-
export type AcademyCourseDetail = { id: string; slug: string; title: string; shortDescription: string | null; coverUrl: string | null; priceCents: number; accessMode: "IMMEDIATE" | "DRIP" | "COHORT"; category: { id: string; name: string; slug: string; sortOrder: number; } | null; description: string | null; modules: { id: string; title: string; description: string | null; lessons: { id: string; slug: string; title: string; isFreePreview: boolean; durationSeconds: number | null; hasVideo: boolean; }[]; }[]; instructors: { id: string; firstName: string | null; lastName: string | null; avatarUrl: string | null; }[]; salesEnabled: boolean; requiresValidation: boolean; validationFieldLabel: string | null; validationFields: { key: string; label: string; required: boolean; maxLength?: number | undefined; }[]; metaTitle?: string | null | undefined; seo?: { title: string; } | undefined;}
|
|
13
|
+
export type AcademyCourseDetail = { id: string; slug: string; title: string; shortDescription: string | null; coverUrl: string | null; priceCents: number; accessMode: "IMMEDIATE" | "DRIP" | "COHORT"; category: { id: string; name: string; slug: string; sortOrder: number; } | null; description: string | null; modules: { id: string; title: string; description: string | null; lessons: { id: string; slug: string; title: string; isFreePreview: boolean; durationSeconds: number | null; hasVideo: boolean; }[]; }[]; instructors: { id: string; firstName: string | null; lastName: string | null; avatarUrl: string | null; }[]; salesEnabled: boolean; requiresValidation: boolean; validationFieldLabel: string | null; validationFields: { key: string; label: string; required: boolean; maxLength?: number | undefined; }[]; metaTitle?: string | null | undefined; seo?: { title: string; } | undefined; withdrawalWaiverRequired?: boolean | undefined; accessDurationMonths?: number | null | undefined; refundGuarantee?: { basis: "LESSONS_OPENED" | "LESSONS_COMPLETED"; thresholdPercent: number | null; windowDays: number | null; } | null | undefined;}
|
|
14
14
|
|
|
15
15
|
export type AcademyCourseListQuery = { page?: number | undefined; limit?: number | undefined; q?: string | undefined; sort?: "price_asc" | "price_desc" | "newest" | undefined; category?: string | undefined; instructor?: string | undefined; free?: boolean | undefined; priceMin?: number | undefined; priceMax?: number | undefined;}
|
|
16
16
|
|
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export type AcademyCategoryPublic = { id: string; name: string; slug: s
|
|
|
10
10
|
|
|
11
11
|
export type AcademyConfigPublic = { catalogFilters: { category: boolean; instructor: boolean; price: boolean; };}
|
|
12
12
|
|
|
13
|
-
export type AcademyCourseDetail = { id: string; slug: string; title: string; shortDescription: string | null; coverUrl: string | null; priceCents: number; accessMode: "IMMEDIATE" | "DRIP" | "COHORT"; category: { id: string; name: string; slug: string; sortOrder: number; } | null; description: string | null; modules: { id: string; title: string; description: string | null; lessons: { id: string; slug: string; title: string; isFreePreview: boolean; durationSeconds: number | null; hasVideo: boolean; }[]; }[]; instructors: { id: string; firstName: string | null; lastName: string | null; avatarUrl: string | null; }[]; salesEnabled: boolean; requiresValidation: boolean; validationFieldLabel: string | null; validationFields: { key: string; label: string; required: boolean; maxLength?: number | undefined; }[]; metaTitle?: string | null | undefined; seo?: { title: string; } | undefined;}
|
|
13
|
+
export type AcademyCourseDetail = { id: string; slug: string; title: string; shortDescription: string | null; coverUrl: string | null; priceCents: number; accessMode: "IMMEDIATE" | "DRIP" | "COHORT"; category: { id: string; name: string; slug: string; sortOrder: number; } | null; description: string | null; modules: { id: string; title: string; description: string | null; lessons: { id: string; slug: string; title: string; isFreePreview: boolean; durationSeconds: number | null; hasVideo: boolean; }[]; }[]; instructors: { id: string; firstName: string | null; lastName: string | null; avatarUrl: string | null; }[]; salesEnabled: boolean; requiresValidation: boolean; validationFieldLabel: string | null; validationFields: { key: string; label: string; required: boolean; maxLength?: number | undefined; }[]; metaTitle?: string | null | undefined; seo?: { title: string; } | undefined; withdrawalWaiverRequired?: boolean | undefined; accessDurationMonths?: number | null | undefined; refundGuarantee?: { basis: "LESSONS_OPENED" | "LESSONS_COMPLETED"; thresholdPercent: number | null; windowDays: number | null; } | null | undefined;}
|
|
14
14
|
|
|
15
15
|
export type AcademyCourseListQuery = { page?: number | undefined; limit?: number | undefined; q?: string | undefined; sort?: "price_asc" | "price_desc" | "newest" | undefined; category?: string | undefined; instructor?: string | undefined; free?: boolean | undefined; priceMin?: number | undefined; priceMax?: number | undefined;}
|
|
16
16
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reblu/site-contracts",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.25.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Public, dependency-free TypeScript types for the Reblu SITE API (no Zod, no Prisma at runtime; one runtime value: DATA_REQUEST_TYPES).",
|
|
6
6
|
"license": "Apache-2.0",
|