@reblu/site-contracts 1.26.0 → 1.27.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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @reblu/site-contracts
2
2
 
3
+ ## 1.27.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 143cef1: `AcademyCourseDetail` carries the course's delivery modality and the consent box checkout asks for (REB-1240). `deliveryModality` is `DIGITAL_CONTENT`, `TRAINING_SERVICE`, `IN_PERSON`, `WEBINAR` or `null` when not chosen. `withdrawalConsent` is `{ kind, text, version }` with the tenant's current wording, or `null` for no box. `kind` is `DIGITAL_CONTENT_WAIVER` for the digital-content waiver or `SERVICE_START_REQUEST` for the express request to start a training service, which does not waive the withdrawal right. `withdrawalWaiverRequired` is now `true` only for the waiver. Both new fields are optional, so existing SITEs keep working.
8
+
3
9
  ## 1.26.0
4
10
 
5
11
  ### 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; withdrawalWaiverRequired?: boolean | undefined; accessDurationMonths?: number | null | undefined; refundGuarantee?: { basis: "LESSONS_OPENED" | "LESSONS_COMPLETED"; thresholdPercent: number | null; windowDays: number | null; } | null | 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; deliveryModality?: "DIGITAL_CONTENT" | "TRAINING_SERVICE" | "IN_PERSON" | "WEBINAR" | null | undefined; withdrawalConsent?: { kind: "DIGITAL_CONTENT_WAIVER" | "SERVICE_START_REQUEST"; text: string; version: string; } | 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; withdrawalWaiverRequired?: boolean | undefined; accessDurationMonths?: number | null | undefined; refundGuarantee?: { basis: "LESSONS_OPENED" | "LESSONS_COMPLETED"; thresholdPercent: number | null; windowDays: number | null; } | null | 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; deliveryModality?: "DIGITAL_CONTENT" | "TRAINING_SERVICE" | "IN_PERSON" | "WEBINAR" | null | undefined; withdrawalConsent?: { kind: "DIGITAL_CONTENT_WAIVER" | "SERVICE_START_REQUEST"; text: string; version: string; } | 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.26.0",
3
+ "version": "1.27.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",