@oaknational/oak-curriculum-schema 2.5.0 → 2.9.2

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.
Files changed (52) hide show
  1. package/cjs/index.cjs +1 -1
  2. package/cjs/schema/internal/entity_state/entity_state.fixture.cjs +2 -0
  3. package/cjs/schema/internal/entity_state/entity_state.fixture.cjs.map +1 -0
  4. package/cjs/schema/internal/entity_state/entity_state.schema.cjs +2 -0
  5. package/cjs/schema/internal/entity_state/entity_state.schema.cjs.map +1 -0
  6. package/cjs/schema/published/components/assetObject/assetObject.schema.cjs +2 -0
  7. package/cjs/schema/published/components/assetObject/assetObject.schema.cjs.map +1 -0
  8. package/cjs/schema/published/lessonAssets/lessonAssets.schema.cjs +2 -0
  9. package/cjs/schema/published/lessonAssets/lessonAssets.schema.cjs.map +1 -0
  10. package/cjs/schema/published/publishedAssets/publishedAssets.fixture.cjs +2 -0
  11. package/cjs/schema/published/publishedAssets/publishedAssets.fixture.cjs.map +1 -0
  12. package/cjs/schema/published/publishedAssets/publishedAssets.schema.cjs +2 -0
  13. package/cjs/schema/published/publishedAssets/publishedAssets.schema.cjs.map +1 -0
  14. package/cjs/schema/published/syntheticUnitvariantLessons/syntheticUnitvariantLessons.fixture.cjs +1 -1
  15. package/cjs/schema/published/syntheticUnitvariantLessons/syntheticUnitvariantLessons.fixture.cjs.map +1 -1
  16. package/cjs/schema/published/syntheticUnitvariantLessons/syntheticUnitvariantLessons.schema.cjs +1 -1
  17. package/cjs/schema/published/syntheticUnitvariantLessons/syntheticUnitvariantLessons.schema.cjs.map +1 -1
  18. package/esm/index.js +1 -1
  19. package/esm/schema/internal/entity_state/entity_state.fixture.js +2 -0
  20. package/esm/schema/internal/entity_state/entity_state.fixture.js.map +1 -0
  21. package/esm/schema/internal/entity_state/entity_state.schema.js +2 -0
  22. package/esm/schema/internal/entity_state/entity_state.schema.js.map +1 -0
  23. package/esm/schema/published/components/assetObject/assetObject.schema.js +2 -0
  24. package/esm/schema/published/components/assetObject/assetObject.schema.js.map +1 -0
  25. package/esm/schema/published/lessonAssets/lessonAssets.schema.js +2 -0
  26. package/esm/schema/published/lessonAssets/lessonAssets.schema.js.map +1 -0
  27. package/esm/schema/published/publishedAssets/publishedAssets.fixture.js +2 -0
  28. package/esm/schema/published/publishedAssets/publishedAssets.fixture.js.map +1 -0
  29. package/esm/schema/published/publishedAssets/publishedAssets.schema.js +2 -0
  30. package/esm/schema/published/publishedAssets/publishedAssets.schema.js.map +1 -0
  31. package/esm/schema/published/syntheticUnitvariantLessons/syntheticUnitvariantLessons.fixture.js +1 -1
  32. package/esm/schema/published/syntheticUnitvariantLessons/syntheticUnitvariantLessons.fixture.js.map +1 -1
  33. package/esm/schema/published/syntheticUnitvariantLessons/syntheticUnitvariantLessons.schema.js +1 -1
  34. package/esm/schema/published/syntheticUnitvariantLessons/syntheticUnitvariantLessons.schema.js.map +1 -1
  35. package/package.json +1 -1
  36. package/src/index.ts +1 -0
  37. package/src/schema/internal/entity_state/entity_state.fixture.ts +32 -0
  38. package/src/schema/internal/entity_state/entity_state.schema.ts +44 -0
  39. package/src/schema/internal/entity_state/index.ts +3 -0
  40. package/src/schema/internal/index.ts +1 -0
  41. package/src/schema/published/components/assetObject/assetObject.schema.ts +28 -0
  42. package/src/schema/published/components/assetObject/index.ts +2 -0
  43. package/src/schema/published/components/index.ts +1 -0
  44. package/src/schema/published/index.ts +2 -0
  45. package/src/schema/published/lessonAssets/index.ts +2 -0
  46. package/src/schema/published/lessonAssets/lessonAssets.schema.ts +67 -0
  47. package/src/schema/published/publishedAssets/index.ts +3 -0
  48. package/src/schema/published/publishedAssets/publishedAssets.fixture.ts +26 -0
  49. package/src/schema/published/publishedAssets/publishedAssets.schema.ts +22 -0
  50. package/src/schema/published/syntheticUnitvariantLessons/syntheticUnitvariantLessons.fixture.ts +1 -0
  51. package/src/schema/published/syntheticUnitvariantLessons/syntheticUnitvariantLessons.schema.ts +1 -1
  52. package/types.d.ts +724 -39
@@ -1,2 +1,3 @@
1
1
  // Auto-generated by create-schema-indexes.ts — do not edit manually
2
2
  export * from "./actions";
3
+ export * from "./assetObject";
@@ -1,8 +1,10 @@
1
1
  // Auto-generated by create-schema-indexes.ts — do not edit manually
2
2
  export * from "./components";
3
+ export * from "./lessonAssets";
3
4
  export * from "./lessonContent";
4
5
  export * from "./overridesAndExceptions";
5
6
  export * from "./programmeListing";
7
+ export * from "./publishedAssets";
6
8
  export * from "./syntheticProgrammesByYear";
7
9
  export * from "./syntheticUnitvariantLessons";
8
10
  export * from "./syntheticUnitvariantLessonsByKs";
@@ -0,0 +1,2 @@
1
+ // Auto-generated by create-schema-indexes.ts — do not edit manually
2
+ export * from "./lessonAssets.schema";
@@ -0,0 +1,67 @@
1
+ import { z } from "zod";
2
+
3
+ import { bucketSchema } from "@/schema/public/asset/asset.schema";
4
+ import { featuresSchema } from "@/schema/public/components/features/features.schema";
5
+ import { publishedAssetObjectSchema } from "@/schema/published/components/assetObject/assetObject.schema";
6
+
7
+ const quizObjectSchema = z
8
+ .object({
9
+ quiz: z.object({ pdf: bucketSchema.nullish() }).nullish(),
10
+ quiz_answers: z.object({ pdf: bucketSchema.nullish() }).nullish(),
11
+ })
12
+ .nullish();
13
+
14
+ const lessonAssetQuizSchema = z.object({
15
+ quiz_uid: z.string(),
16
+ quiz_object: quizObjectSchema,
17
+ updated_at: z.string(),
18
+ });
19
+
20
+ const assetBaseSchema = z.object({
21
+ asset_uid: z.string(),
22
+ asset_object: publishedAssetObjectSchema.nullish(),
23
+ created_at: z.string(),
24
+ updated_at: z.string(),
25
+ });
26
+
27
+ const assetSlidedeckSchema = assetBaseSchema.extend({
28
+ asset_type: z.literal("slidedeck"),
29
+ });
30
+
31
+ const assetWorksheetSchema = assetBaseSchema.extend({
32
+ asset_type: z.literal("worksheet"),
33
+ });
34
+
35
+ const assetWorksheetAnswersSchema = assetBaseSchema.extend({
36
+ asset_type: z.literal("worksheet_answers"),
37
+ });
38
+
39
+ const assetSupplementarySchema = assetBaseSchema.extend({
40
+ asset_type: z.literal("supplementary_resource"),
41
+ });
42
+
43
+ const assetLessonGuideSchema = assetBaseSchema.extend({
44
+ asset_type: z.literal("lesson_guide"),
45
+ url: z.string(),
46
+ });
47
+
48
+ const tpcDownloadableFileSchema = z.object({
49
+ asset_id: z.number().nullable(),
50
+ media_object: z.object({ display_name: z.string() }).loose(),
51
+ });
52
+
53
+ export const lessonAssetsSchema = z.object({
54
+ lesson_id: z.number(),
55
+ slug: z.string(),
56
+ features: featuresSchema.nullish(),
57
+ quiz_exit: lessonAssetQuizSchema.nullish(),
58
+ quiz_starter: lessonAssetQuizSchema.nullish(),
59
+ asset_slidedeck: assetSlidedeckSchema.nullish(),
60
+ asset_worksheet: assetWorksheetSchema.nullish(),
61
+ asset_worksheet_answers: assetWorksheetAnswersSchema.nullish(),
62
+ asset_supplementary_asset: assetSupplementarySchema.nullish(),
63
+ asset_lesson_guide: assetLessonGuideSchema.nullish(),
64
+ tpc_downloadablefiles: z.array(tpcDownloadableFileSchema).nullish(),
65
+ });
66
+
67
+ export type LessonAssets = z.infer<typeof lessonAssetsSchema>;
@@ -0,0 +1,3 @@
1
+ // Auto-generated by create-schema-indexes.ts — do not edit manually
2
+ export * from "./publishedAssets.fixture";
3
+ export * from "./publishedAssets.schema";
@@ -0,0 +1,26 @@
1
+ import { keysToCamelCase } from "zod-to-camel-case";
2
+
3
+ import { assetFixture } from "@/schema/public/asset/asset.fixture";
4
+ import type {
5
+ PublishedAssets,
6
+ PublishedAssetsCamel,
7
+ } from "@/schema/published/publishedAssets/publishedAssets.schema";
8
+
9
+ export const publishedAssetsFixture = ({
10
+ overrides = {},
11
+ }: {
12
+ overrides?: Partial<PublishedAssets>;
13
+ } = {}): PublishedAssets => {
14
+ const { asset_id, asset_type, asset_uid, created_at, updated_at, asset_object } =
15
+ assetFixture();
16
+ return { asset_id, asset_type, asset_uid, created_at, updated_at, asset_object, ...overrides };
17
+ };
18
+
19
+ export const publishedAssetsFixtureCamel = ({
20
+ overrides = {},
21
+ }: {
22
+ overrides?: Partial<PublishedAssetsCamel>;
23
+ } = {}): PublishedAssetsCamel => ({
24
+ ...keysToCamelCase(publishedAssetsFixture()),
25
+ ...overrides,
26
+ });
@@ -0,0 +1,22 @@
1
+ import { z } from "zod";
2
+ import zodToCamelCase from "zod-to-camel-case";
3
+
4
+ import { assetSchema } from "@/schema/public/asset/asset.schema";
5
+ import { publishedAssetObjectSchema } from "@/schema/published/components/assetObject/assetObject.schema";
6
+
7
+ export const publishedAssetsSchema = assetSchema
8
+ .pick({
9
+ asset_id: true,
10
+ asset_type: true,
11
+ asset_uid: true,
12
+ created_at: true,
13
+ updated_at: true,
14
+ })
15
+ .extend({
16
+ // asset_object JSONB can contain null bucket entries in partially-populated assets
17
+ asset_object: publishedAssetObjectSchema,
18
+ });
19
+ export type PublishedAssets = z.infer<typeof publishedAssetsSchema>;
20
+
21
+ export const publishedAssetsSchemaCamel = zodToCamelCase(publishedAssetsSchema);
22
+ export type PublishedAssetsCamel = z.infer<typeof publishedAssetsSchemaCamel>;
@@ -21,6 +21,7 @@ export const syntheticUnitvariantLessonsFixture = ({
21
21
  lesson_data: lessonDataFixture(),
22
22
  unit_data: unitFixture(),
23
23
  null_unitvariant_id: 0,
24
+ unitvariant_id: 123,
24
25
  programme_fields: programmeFieldsFixture(),
25
26
  supplementary_data: {
26
27
  unit_order: 1,
@@ -16,7 +16,7 @@ export const syntheticUnitvariantLessonsSchema = z.object({
16
16
  lesson_data: lessonDataSchema,
17
17
  unit_data: unitSchema,
18
18
  null_unitvariant_id: z.number(),
19
- unitvariant_id: z.number().nullish(),
19
+ unitvariant_id: z.number(),
20
20
  programme_fields: programmeFieldsSchema,
21
21
  supplementary_data: z.object({
22
22
  unit_order: z.number(),