@oaknational/oak-curriculum-schema 1.1.5 → 1.1.7

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.
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("zod");const s=e.z.enum(["published","new","migration"]),t=e.z.enum(["2020-2023","2023-2024","0"]),l=e.z.enum(["KS1","KS2","KS3","KS4","EYFS"]),r=e.z.enum(["ks1","ks2","ks3","ks4","early-years-foundation-stage"]),n=e.z.enum(["Key Stage 1","Key Stage 2","Key Stage 3","Key Stage 4","Early Years Foundation Stage"]),i=e.z.object({lesson_id:e.z.number(),lesson_uid:e.z.string(),slug:e.z.string(),title:e.z.string(),description:e.z.string(),pupil_lesson_outcome:e.z.string(),key_learning_points:e.z.array(e.z.object({})),equipment_and_resources:e.z.array(e.z.object({})).nullable(),content_guidance_details:e.z.array(e.z.object({})).nullable(),content_guidance:e.z.array(e.z.number()).nullable(),copyright_content:e.z.array(e.z.object({})).nullable(),supervision_level:e.z.string().nullable(),thirdpartycontent_list:e.z.array(e.z.number()).nullable(),misconceptions_and_common_mistakes:e.z.array(e.z.object({})).nullable(),keywords:e.z.array(e.z.object({})).nullable(),video_id:e.z.number().nullable(),sign_language_video_id:e.z.number().nullable(),quiz_id_starter:e.z.number().nullable(),quiz_id_exit:e.z.number().nullable(),asset_id_slidedeck:e.z.number().nullable(),asset_id_worksheet:e.z.number().nullable(),deprecated_fields:e.z.record(e.z.unknown()).nullable(),_state:s,_cohort:t}),a=e.z.object({tier:e.z.string().nullable(),tier_id:e.z.number().nullable(),tier_slug:e.z.string().nullable(),tier_description:e.z.string().nullable(),tier_display_order:e.z.number().nullable(),examboard:e.z.string().nullable(),examboard_id:e.z.number().nullable(),examboard_slug:e.z.string().nullable(),examboard_description:e.z.string().nullable(),examboard_display_order:e.z.number().nullable(),year:e.z.string(),year_slug:e.z.string(),year_id:e.z.number(),year_description:e.z.string(),year_display_order:e.z.number(),keystage:l,keystage_id:e.z.number(),keystage_slug:r,keystage_description:n,keystage_display_order:e.z.number(),phase:e.z.string(),phase_id:e.z.number(),phase_slug:e.z.string(),phase_description:e.z.string(),phase_display_order:e.z.number(),subject:e.z.string(),subject_id:e.z.number(),subject_slug:e.z.string(),subject_description:e.z.string(),subject_display_order:e.z.number(),legacy:e.z.string().optional(),dataset:e.z.string().optional()}),u=e.z.object({unit_id:e.z.number(),unit_uid:e.z.string(),description:e.z.string().nullable(),slug:e.z.string(),tags:e.z.array(e.z.number()).nullable(),title:e.z.string(),_state:s,_cohort:t});exports._cohortSchema=t,exports._stateSchema=s,exports.keystageDescriptions=n,exports.keystageSlugs=r,exports.keystages=l,exports.lessonDataFixture=e=>({lesson_id:1,lesson_uid:"lesson-uid",title:"lesson-title",description:"lesson-description",slug:"lesson-slug",pupil_lesson_outcome:"pupil-lesson-outcome",key_learning_points:[{}],equipment_and_resources:null,content_guidance_details:null,content_guidance:null,supervision_level:null,thirdpartycontent_list:null,misconceptions_and_common_mistakes:null,keywords:null,video_id:null,sign_language_video_id:null,quiz_id_starter:null,quiz_id_exit:null,asset_id_slidedeck:null,asset_id_worksheet:null,copyright_content:null,_state:"published",_cohort:"2023-2024",deprecated_fields:null}),exports.lessonDataSchema=i,exports.programmeFieldsFixture=()=>({tier:null,tier_id:null,tier_slug:null,tier_description:null,tier_display_order:null,examboard:null,examboard_id:null,examboard_slug:null,examboard_description:null,examboard_display_order:null,year:"year",year_slug:"year-1",year_id:1,year_description:"year-description",year_display_order:1,keystage:"KS1",keystage_id:1,keystage_slug:"ks1",keystage_description:"Key Stage 1",keystage_display_order:1,phase:"primary",phase_id:0,phase_slug:"primary",phase_description:"primary",phase_display_order:1,subject:"subject",subject_id:1,subject_slug:"subject-slug",subject_description:"subject-description",subject_display_order:1}),exports.programmeFieldsSchema=a,exports.unitDataFixture=()=>({unit_id:0,unit_uid:"unit-uid",description:null,slug:"unit-slug",tags:null,title:"unit-title",_state:"published",_cohort:"2023-2024"}),exports.unitDataSchema=u;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/schema/base.schema.ts","../../src/schema/lessonData.schema.ts","../../src/schema/programmeFields.schema.ts","../../src/schema/unitData.schema.ts","../../src/fixtures/lessonData.fixture.ts","../../src/fixtures/programmeFields.fixture.ts","../../src/fixtures/unitData.fixture.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const _stateSchema = z.enum([\"published\", \"new\", \"migration\"]);\nexport const _cohortSchema = z.enum([\"2020-2023\", \"2023-2024\", \"0\"]);\nexport const keystages = z.enum([\"KS1\", \"KS2\", \"KS3\", \"KS4\", \"EYFS\"]);\nexport const keystageSlugs = z.enum([\n \"ks1\",\n \"ks2\",\n \"ks3\",\n \"ks4\",\n \"early-years-foundation-stage\",\n]);\nexport const keystageDescriptions = z.enum([\n \"Key Stage 1\",\n \"Key Stage 2\",\n \"Key Stage 3\",\n \"Key Stage 4\",\n \"Early Years Foundation Stage\",\n]);\n","import { z } from \"zod\";\n\nimport { _stateSchema, _cohortSchema } from \"./base.schema\";\n\nexport const lessonDataSchema = z.object({\n lesson_id: z.number(),\n lesson_uid: z.string(),\n slug: z.string(),\n title: z.string(),\n description: z.string(),\n pupil_lesson_outcome: z.string(),\n key_learning_points: z.array(z.object({})),\n equipment_and_resources: z.array(z.object({})).nullable(),\n content_guidance_details: z.array(z.object({})).nullable(),\n content_guidance: z.array(z.number()).nullable(),\n copyright_content: z.array(z.object({})).nullable(),\n supervision_level: z.string().nullable(),\n thirdpartycontent_list: z.array(z.number()).nullable(),\n misconceptions_and_common_mistakes: z.array(z.object({})).nullable(),\n keywords: z.array(z.object({})).nullable(),\n video_id: z.number().nullable(),\n sign_language_video_id: z.number().nullable(),\n quiz_id_starter: z.number().nullable(),\n quiz_id_exit: z.number().nullable(),\n asset_id_slidedeck: z.number().nullable(),\n asset_id_worksheet: z.number().nullable(),\n deprecated_fields: z.record(z.unknown()).nullable(),\n _state: _stateSchema,\n _cohort: _cohortSchema,\n});\n\nexport type LessonData = z.infer<typeof lessonDataSchema>;\n","import { z } from \"zod\";\nimport { keystages, keystageSlugs, keystageDescriptions } from \"./base.schema\";\n\nexport const programmeFieldsSchema = z.object({\n tier: z.string().nullable(),\n tier_id: z.number().nullable(),\n tier_slug: z.string().nullable(),\n tier_description: z.string().nullable(),\n tier_display_order: z.number().nullable(),\n\n examboard: z.string().nullable(),\n examboard_id: z.number().nullable(),\n examboard_slug: z.string().nullable(),\n examboard_description: z.string().nullable(),\n examboard_display_order: z.number().nullable(),\n\n year: z.string(),\n year_slug: z.string(),\n year_id: z.number(),\n year_description: z.string(),\n year_display_order: z.number(),\n\n keystage: keystages,\n keystage_id: z.number(),\n keystage_slug: keystageSlugs,\n keystage_description: keystageDescriptions,\n keystage_display_order: z.number(),\n\n phase: z.string(),\n phase_id: z.number(),\n phase_slug: z.string(),\n phase_description: z.string(),\n phase_display_order: z.number(),\n\n subject: z.string(),\n subject_id: z.number(),\n subject_slug: z.string(),\n subject_description: z.string(),\n subject_display_order: z.number(),\n\n legacy: z.string().optional(),\n dataset: z.string().optional(),\n});\n\nexport type ProgrammeFields = z.infer<typeof programmeFieldsSchema>;\n","import { z } from \"zod\";\n\nimport { _stateSchema, _cohortSchema } from \"./base.schema\";\n\nexport const unitDataSchema = z.object({\n unit_id: z.number(),\n unit_uid: z.string(),\n description: z.string().nullable(),\n slug: z.string(),\n tags: z.array(z.number()).nullable(),\n title: z.string(),\n _state: _stateSchema,\n _cohort: _cohortSchema,\n});\n\nexport type UnitData = z.infer<typeof unitDataSchema>;\n","import { LessonData } from \"@/schema/lessonData.schema\";\n\nexport const lessonDataFixture = (\n overrides?: Partial<LessonData>,\n): LessonData => ({\n lesson_id: 1,\n lesson_uid: \"lesson-uid\",\n title: \"lesson-title\",\n description: \"lesson-description\",\n slug: \"lesson-slug\",\n pupil_lesson_outcome: \"pupil-lesson-outcome\",\n key_learning_points: [{}],\n equipment_and_resources: null,\n content_guidance_details: null,\n content_guidance: null,\n supervision_level: null,\n thirdpartycontent_list: null,\n misconceptions_and_common_mistakes: null,\n keywords: null,\n video_id: null,\n sign_language_video_id: null,\n quiz_id_starter: null,\n quiz_id_exit: null,\n asset_id_slidedeck: null,\n asset_id_worksheet: null,\n copyright_content: null,\n _state: \"published\",\n _cohort: \"2023-2024\",\n deprecated_fields: null,\n});\n","import { ProgrammeFields } from \"@/schema/programmeFields.schema\";\n\nexport const programmeFieldsFixture = (): ProgrammeFields => ({\n tier: null,\n tier_id: null,\n tier_slug: null,\n tier_description: null,\n tier_display_order: null,\n examboard: null,\n examboard_id: null,\n examboard_slug: null,\n examboard_description: null,\n examboard_display_order: null,\n year: \"year\",\n year_slug: \"year-1\",\n year_id: 1,\n year_description: \"year-description\",\n year_display_order: 1,\n keystage: \"KS1\",\n keystage_id: 1,\n keystage_slug: \"ks1\",\n keystage_description: \"Key Stage 1\",\n keystage_display_order: 1,\n phase: \"primary\",\n phase_id: 0,\n phase_slug: \"primary\",\n phase_description: \"primary\",\n phase_display_order: 1,\n subject: \"subject\",\n subject_id: 1,\n subject_slug: \"subject-slug\",\n subject_description: \"subject-description\",\n subject_display_order: 1,\n});\n","import { UnitData } from \"@/schema/unitData.schema\";\n\nexport const unitDataFixture = (): UnitData => ({\n unit_id: 0,\n unit_uid: \"unit-uid\",\n description: null,\n slug: \"unit-slug\",\n tags: null,\n title: \"unit-title\",\n _state: \"published\",\n _cohort: \"2023-2024\",\n});\n"],"names":["_stateSchema","z","enum","_cohortSchema","keystages","keystageSlugs","keystageDescriptions","lessonDataSchema","object","lesson_id","number","lesson_uid","string","slug","title","description","pupil_lesson_outcome","key_learning_points","array","equipment_and_resources","nullable","content_guidance_details","content_guidance","copyright_content","supervision_level","thirdpartycontent_list","misconceptions_and_common_mistakes","keywords","video_id","sign_language_video_id","quiz_id_starter","quiz_id_exit","asset_id_slidedeck","asset_id_worksheet","deprecated_fields","record","unknown","_state","_cohort","programmeFieldsSchema","tier","tier_id","tier_slug","tier_description","tier_display_order","examboard","examboard_id","examboard_slug","examboard_description","examboard_display_order","year","year_slug","year_id","year_description","year_display_order","keystage","keystage_id","keystage_slug","keystage_description","keystage_display_order","phase","phase_id","phase_slug","phase_description","phase_display_order","subject","subject_id","subject_slug","subject_description","subject_display_order","legacy","optional","dataset","unitDataSchema","unit_id","unit_uid","tags","overrides"],"mappings":"kCAEa,MAAAA,EAAeC,EAACA,EAACC,KAAK,CAAC,YAAa,MAAO,cAC3CC,EAAgBF,EAACA,EAACC,KAAK,CAAC,YAAa,YAAa,MAClDE,EAAYH,EAAAA,EAAEC,KAAK,CAAC,MAAO,MAAO,MAAO,MAAO,SAChDG,EAAgBJ,EAACA,EAACC,KAAK,CAClC,MACA,MACA,MACA,MACA,iCAEWI,EAAuBL,EAACA,EAACC,KAAK,CACzC,cACA,cACA,cACA,cACA,iCCbWK,EAAmBN,EAACA,EAACO,OAAO,CACvCC,UAAWR,EAACA,EAACS,SACbC,WAAYV,EAACA,EAACW,SACdC,KAAMZ,EAACA,EAACW,SACRE,MAAOb,EAACA,EAACW,SACTG,YAAad,EAACA,EAACW,SACfI,qBAAsBf,EAACA,EAACW,SACxBK,oBAAqBhB,EAACA,EAACiB,MAAMjB,EAACA,EAACO,OAAO,CAAE,IACxCW,wBAAyBlB,EAACA,EAACiB,MAAMjB,EAAAA,EAAEO,OAAO,CAAE,IAAGY,WAC/CC,yBAA0BpB,EAACA,EAACiB,MAAMjB,EAAAA,EAAEO,OAAO,CAAE,IAAGY,WAChDE,iBAAkBrB,EAACA,EAACiB,MAAMjB,EAACA,EAACS,UAAUU,WACtCG,kBAAmBtB,EAACA,EAACiB,MAAMjB,EAAAA,EAAEO,OAAO,CAAE,IAAGY,WACzCI,kBAAmBvB,EAACA,EAACW,SAASQ,WAC9BK,uBAAwBxB,EAACA,EAACiB,MAAMjB,EAACA,EAACS,UAAUU,WAC5CM,mCAAoCzB,EAACA,EAACiB,MAAMjB,EAAAA,EAAEO,OAAO,CAAE,IAAGY,WAC1DO,SAAU1B,EAACA,EAACiB,MAAMjB,EAAAA,EAAEO,OAAO,CAAE,IAAGY,WAChCQ,SAAU3B,EAACA,EAACS,SAASU,WACrBS,uBAAwB5B,EAACA,EAACS,SAASU,WACnCU,gBAAiB7B,EAACA,EAACS,SAASU,WAC5BW,aAAc9B,EAACA,EAACS,SAASU,WACzBY,mBAAoB/B,EAACA,EAACS,SAASU,WAC/Ba,mBAAoBhC,EAACA,EAACS,SAASU,WAC/Bc,kBAAmBjC,EAACA,EAACkC,OAAOlC,EAACA,EAACmC,WAAWhB,WACzCiB,OAAQrC,EACRsC,QAASnC,ICzBEoC,EAAwBtC,EAACA,EAACO,OAAO,CAC5CgC,KAAMvC,EAACA,EAACW,SAASQ,WACjBqB,QAASxC,EAACA,EAACS,SAASU,WACpBsB,UAAWzC,EAACA,EAACW,SAASQ,WACtBuB,iBAAkB1C,EAACA,EAACW,SAASQ,WAC7BwB,mBAAoB3C,EAACA,EAACS,SAASU,WAE/ByB,UAAW5C,EAACA,EAACW,SAASQ,WACtB0B,aAAc7C,EAACA,EAACS,SAASU,WACzB2B,eAAgB9C,EAACA,EAACW,SAASQ,WAC3B4B,sBAAuB/C,EAACA,EAACW,SAASQ,WAClC6B,wBAAyBhD,EAACA,EAACS,SAASU,WAEpC8B,KAAMjD,EAACA,EAACW,SACRuC,UAAWlD,EAACA,EAACW,SACbwC,QAASnD,EAACA,EAACS,SACX2C,iBAAkBpD,EAACA,EAACW,SACpB0C,mBAAoBrD,EAACA,EAACS,SAEtB6C,SAAUnD,EACVoD,YAAavD,EAACA,EAACS,SACf+C,cAAepD,EACfqD,qBAAsBpD,EACtBqD,uBAAwB1D,EAACA,EAACS,SAE1BkD,MAAO3D,EAACA,EAACW,SACTiD,SAAU5D,EAACA,EAACS,SACZoD,WAAY7D,EAACA,EAACW,SACdmD,kBAAmB9D,EAACA,EAACW,SACrBoD,oBAAqB/D,EAACA,EAACS,SAEvBuD,QAAShE,EAACA,EAACW,SACXsD,WAAYjE,EAACA,EAACS,SACdyD,aAAclE,EAACA,EAACW,SAChBwD,oBAAqBnE,EAACA,EAACW,SACvByD,sBAAuBpE,EAACA,EAACS,SAEzB4D,OAAQrE,EAACA,EAACW,SAAS2D,WACnBC,QAASvE,EAACA,EAACW,SAAS2D,aCrCTE,EAAiBxE,EAACA,EAACO,OAAO,CACrCkE,QAASzE,EAACA,EAACS,SACXiE,SAAU1E,EAACA,EAACW,SACZG,YAAad,EAACA,EAACW,SAASQ,WACxBP,KAAMZ,EAACA,EAACW,SACRgE,KAAM3E,EAACA,EAACiB,MAAMjB,EAACA,EAACS,UAAUU,WAC1BN,MAAOb,EAACA,EAACW,SACTyB,OAAQrC,EACRsC,QAASnC,wJCTT0E,IACgB,CAChBpE,UAAW,EACXE,WAAY,aACZG,MAAO,eACPC,YAAa,qBACbF,KAAM,cACNG,qBAAsB,uBACtBC,oBAAqB,CAAC,CAAA,GACtBE,wBAAyB,KACzBE,yBAA0B,KAC1BC,iBAAkB,KAClBE,kBAAmB,KACnBC,uBAAwB,KACxBC,mCAAoC,KACpCC,SAAU,KACVC,SAAU,KACVC,uBAAwB,KACxBC,gBAAiB,KACjBC,aAAc,KACdC,mBAAoB,KACpBC,mBAAoB,KACpBV,kBAAmB,KACnBc,OAAQ,YACRC,QAAS,YACTJ,kBAAmB,iEC1BiB,KAAwB,CAC5DM,KAAM,KACNC,QAAS,KACTC,UAAW,KACXC,iBAAkB,KAClBC,mBAAoB,KACpBC,UAAW,KACXC,aAAc,KACdC,eAAgB,KAChBC,sBAAuB,KACvBC,wBAAyB,KACzBC,KAAM,OACNC,UAAW,SACXC,QAAS,EACTC,iBAAkB,mBAClBC,mBAAoB,EACpBC,SAAU,MACVC,YAAa,EACbC,cAAe,MACfC,qBAAsB,cACtBC,uBAAwB,EACxBC,MAAO,UACPC,SAAU,EACVC,WAAY,UACZC,kBAAmB,UACnBC,oBAAqB,EACrBC,QAAS,UACTC,WAAY,EACZC,aAAc,eACdC,oBAAqB,sBACrBC,sBAAuB,4DC9BM,KAAiB,CAC9CK,QAAS,EACTC,SAAU,WACV5D,YAAa,KACbF,KAAM,YACN+D,KAAM,KACN9D,MAAO,aACPuB,OAAQ,YACRC,QAAS"}
@@ -0,0 +1,2 @@
1
+ import{z as e}from"zod";const l=e.enum(["published","new","migration"]),n=e.enum(["2020-2023","2023-2024","0"]),i=e.enum(["KS1","KS2","KS3","KS4","EYFS"]),s=e.enum(["ks1","ks2","ks3","ks4","early-years-foundation-stage"]),t=e.enum(["Key Stage 1","Key Stage 2","Key Stage 3","Key Stage 4","Early Years Foundation Stage"]),r=e.object({lesson_id:e.number(),lesson_uid:e.string(),slug:e.string(),title:e.string(),description:e.string(),pupil_lesson_outcome:e.string(),key_learning_points:e.array(e.object({})),equipment_and_resources:e.array(e.object({})).nullable(),content_guidance_details:e.array(e.object({})).nullable(),content_guidance:e.array(e.number()).nullable(),copyright_content:e.array(e.object({})).nullable(),supervision_level:e.string().nullable(),thirdpartycontent_list:e.array(e.number()).nullable(),misconceptions_and_common_mistakes:e.array(e.object({})).nullable(),keywords:e.array(e.object({})).nullable(),video_id:e.number().nullable(),sign_language_video_id:e.number().nullable(),quiz_id_starter:e.number().nullable(),quiz_id_exit:e.number().nullable(),asset_id_slidedeck:e.number().nullable(),asset_id_worksheet:e.number().nullable(),deprecated_fields:e.record(e.unknown()).nullable(),_state:l,_cohort:n}),a=e.object({tier:e.string().nullable(),tier_id:e.number().nullable(),tier_slug:e.string().nullable(),tier_description:e.string().nullable(),tier_display_order:e.number().nullable(),examboard:e.string().nullable(),examboard_id:e.number().nullable(),examboard_slug:e.string().nullable(),examboard_description:e.string().nullable(),examboard_display_order:e.number().nullable(),year:e.string(),year_slug:e.string(),year_id:e.number(),year_description:e.string(),year_display_order:e.number(),keystage:i,keystage_id:e.number(),keystage_slug:s,keystage_description:t,keystage_display_order:e.number(),phase:e.string(),phase_id:e.number(),phase_slug:e.string(),phase_description:e.string(),phase_display_order:e.number(),subject:e.string(),subject_id:e.number(),subject_slug:e.string(),subject_description:e.string(),subject_display_order:e.number(),legacy:e.string().optional(),dataset:e.string().optional()}),u=e.object({unit_id:e.number(),unit_uid:e.string(),description:e.string().nullable(),slug:e.string(),tags:e.array(e.number()).nullable(),title:e.string(),_state:l,_cohort:n}),_=e=>({lesson_id:1,lesson_uid:"lesson-uid",title:"lesson-title",description:"lesson-description",slug:"lesson-slug",pupil_lesson_outcome:"pupil-lesson-outcome",key_learning_points:[{}],equipment_and_resources:null,content_guidance_details:null,content_guidance:null,supervision_level:null,thirdpartycontent_list:null,misconceptions_and_common_mistakes:null,keywords:null,video_id:null,sign_language_video_id:null,quiz_id_starter:null,quiz_id_exit:null,asset_id_slidedeck:null,asset_id_worksheet:null,copyright_content:null,_state:"published",_cohort:"2023-2024",deprecated_fields:null}),d=()=>({tier:null,tier_id:null,tier_slug:null,tier_description:null,tier_display_order:null,examboard:null,examboard_id:null,examboard_slug:null,examboard_description:null,examboard_display_order:null,year:"year",year_slug:"year-1",year_id:1,year_description:"year-description",year_display_order:1,keystage:"KS1",keystage_id:1,keystage_slug:"ks1",keystage_description:"Key Stage 1",keystage_display_order:1,phase:"primary",phase_id:0,phase_slug:"primary",phase_description:"primary",phase_display_order:1,subject:"subject",subject_id:1,subject_slug:"subject-slug",subject_description:"subject-description",subject_display_order:1}),o=()=>({unit_id:0,unit_uid:"unit-uid",description:null,slug:"unit-slug",tags:null,title:"unit-title",_state:"published",_cohort:"2023-2024"});export{n as _cohortSchema,l as _stateSchema,t as keystageDescriptions,s as keystageSlugs,i as keystages,_ as lessonDataFixture,r as lessonDataSchema,d as programmeFieldsFixture,a as programmeFieldsSchema,o as unitDataFixture,u as unitDataSchema};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/schema/base.schema.ts","../../src/schema/lessonData.schema.ts","../../src/schema/programmeFields.schema.ts","../../src/schema/unitData.schema.ts","../../src/fixtures/lessonData.fixture.ts","../../src/fixtures/programmeFields.fixture.ts","../../src/fixtures/unitData.fixture.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const _stateSchema = z.enum([\"published\", \"new\", \"migration\"]);\nexport const _cohortSchema = z.enum([\"2020-2023\", \"2023-2024\", \"0\"]);\nexport const keystages = z.enum([\"KS1\", \"KS2\", \"KS3\", \"KS4\", \"EYFS\"]);\nexport const keystageSlugs = z.enum([\n \"ks1\",\n \"ks2\",\n \"ks3\",\n \"ks4\",\n \"early-years-foundation-stage\",\n]);\nexport const keystageDescriptions = z.enum([\n \"Key Stage 1\",\n \"Key Stage 2\",\n \"Key Stage 3\",\n \"Key Stage 4\",\n \"Early Years Foundation Stage\",\n]);\n","import { z } from \"zod\";\n\nimport { _stateSchema, _cohortSchema } from \"./base.schema\";\n\nexport const lessonDataSchema = z.object({\n lesson_id: z.number(),\n lesson_uid: z.string(),\n slug: z.string(),\n title: z.string(),\n description: z.string(),\n pupil_lesson_outcome: z.string(),\n key_learning_points: z.array(z.object({})),\n equipment_and_resources: z.array(z.object({})).nullable(),\n content_guidance_details: z.array(z.object({})).nullable(),\n content_guidance: z.array(z.number()).nullable(),\n copyright_content: z.array(z.object({})).nullable(),\n supervision_level: z.string().nullable(),\n thirdpartycontent_list: z.array(z.number()).nullable(),\n misconceptions_and_common_mistakes: z.array(z.object({})).nullable(),\n keywords: z.array(z.object({})).nullable(),\n video_id: z.number().nullable(),\n sign_language_video_id: z.number().nullable(),\n quiz_id_starter: z.number().nullable(),\n quiz_id_exit: z.number().nullable(),\n asset_id_slidedeck: z.number().nullable(),\n asset_id_worksheet: z.number().nullable(),\n deprecated_fields: z.record(z.unknown()).nullable(),\n _state: _stateSchema,\n _cohort: _cohortSchema,\n});\n\nexport type LessonData = z.infer<typeof lessonDataSchema>;\n","import { z } from \"zod\";\nimport { keystages, keystageSlugs, keystageDescriptions } from \"./base.schema\";\n\nexport const programmeFieldsSchema = z.object({\n tier: z.string().nullable(),\n tier_id: z.number().nullable(),\n tier_slug: z.string().nullable(),\n tier_description: z.string().nullable(),\n tier_display_order: z.number().nullable(),\n\n examboard: z.string().nullable(),\n examboard_id: z.number().nullable(),\n examboard_slug: z.string().nullable(),\n examboard_description: z.string().nullable(),\n examboard_display_order: z.number().nullable(),\n\n year: z.string(),\n year_slug: z.string(),\n year_id: z.number(),\n year_description: z.string(),\n year_display_order: z.number(),\n\n keystage: keystages,\n keystage_id: z.number(),\n keystage_slug: keystageSlugs,\n keystage_description: keystageDescriptions,\n keystage_display_order: z.number(),\n\n phase: z.string(),\n phase_id: z.number(),\n phase_slug: z.string(),\n phase_description: z.string(),\n phase_display_order: z.number(),\n\n subject: z.string(),\n subject_id: z.number(),\n subject_slug: z.string(),\n subject_description: z.string(),\n subject_display_order: z.number(),\n\n legacy: z.string().optional(),\n dataset: z.string().optional(),\n});\n\nexport type ProgrammeFields = z.infer<typeof programmeFieldsSchema>;\n","import { z } from \"zod\";\n\nimport { _stateSchema, _cohortSchema } from \"./base.schema\";\n\nexport const unitDataSchema = z.object({\n unit_id: z.number(),\n unit_uid: z.string(),\n description: z.string().nullable(),\n slug: z.string(),\n tags: z.array(z.number()).nullable(),\n title: z.string(),\n _state: _stateSchema,\n _cohort: _cohortSchema,\n});\n\nexport type UnitData = z.infer<typeof unitDataSchema>;\n","import { LessonData } from \"@/schema/lessonData.schema\";\n\nexport const lessonDataFixture = (\n overrides?: Partial<LessonData>,\n): LessonData => ({\n lesson_id: 1,\n lesson_uid: \"lesson-uid\",\n title: \"lesson-title\",\n description: \"lesson-description\",\n slug: \"lesson-slug\",\n pupil_lesson_outcome: \"pupil-lesson-outcome\",\n key_learning_points: [{}],\n equipment_and_resources: null,\n content_guidance_details: null,\n content_guidance: null,\n supervision_level: null,\n thirdpartycontent_list: null,\n misconceptions_and_common_mistakes: null,\n keywords: null,\n video_id: null,\n sign_language_video_id: null,\n quiz_id_starter: null,\n quiz_id_exit: null,\n asset_id_slidedeck: null,\n asset_id_worksheet: null,\n copyright_content: null,\n _state: \"published\",\n _cohort: \"2023-2024\",\n deprecated_fields: null,\n});\n","import { ProgrammeFields } from \"@/schema/programmeFields.schema\";\n\nexport const programmeFieldsFixture = (): ProgrammeFields => ({\n tier: null,\n tier_id: null,\n tier_slug: null,\n tier_description: null,\n tier_display_order: null,\n examboard: null,\n examboard_id: null,\n examboard_slug: null,\n examboard_description: null,\n examboard_display_order: null,\n year: \"year\",\n year_slug: \"year-1\",\n year_id: 1,\n year_description: \"year-description\",\n year_display_order: 1,\n keystage: \"KS1\",\n keystage_id: 1,\n keystage_slug: \"ks1\",\n keystage_description: \"Key Stage 1\",\n keystage_display_order: 1,\n phase: \"primary\",\n phase_id: 0,\n phase_slug: \"primary\",\n phase_description: \"primary\",\n phase_display_order: 1,\n subject: \"subject\",\n subject_id: 1,\n subject_slug: \"subject-slug\",\n subject_description: \"subject-description\",\n subject_display_order: 1,\n});\n","import { UnitData } from \"@/schema/unitData.schema\";\n\nexport const unitDataFixture = (): UnitData => ({\n unit_id: 0,\n unit_uid: \"unit-uid\",\n description: null,\n slug: \"unit-slug\",\n tags: null,\n title: \"unit-title\",\n _state: \"published\",\n _cohort: \"2023-2024\",\n});\n"],"names":["_stateSchema","z","enum","_cohortSchema","keystages","keystageSlugs","keystageDescriptions","lessonDataSchema","object","lesson_id","number","lesson_uid","string","slug","title","description","pupil_lesson_outcome","key_learning_points","array","equipment_and_resources","nullable","content_guidance_details","content_guidance","copyright_content","supervision_level","thirdpartycontent_list","misconceptions_and_common_mistakes","keywords","video_id","sign_language_video_id","quiz_id_starter","quiz_id_exit","asset_id_slidedeck","asset_id_worksheet","deprecated_fields","record","unknown","_state","_cohort","programmeFieldsSchema","tier","tier_id","tier_slug","tier_description","tier_display_order","examboard","examboard_id","examboard_slug","examboard_description","examboard_display_order","year","year_slug","year_id","year_description","year_display_order","keystage","keystage_id","keystage_slug","keystage_description","keystage_display_order","phase","phase_id","phase_slug","phase_description","phase_display_order","subject","subject_id","subject_slug","subject_description","subject_display_order","legacy","optional","dataset","unitDataSchema","unit_id","unit_uid","tags","lessonDataFixture","overrides","programmeFieldsFixture","unitDataFixture"],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { z } from "zod";
2
+
3
+ export const _stateSchema = z.enum(["published", "new", "migration"]);
4
+ export const _cohortSchema = z.enum(["2020-2023", "2023-2024", "0"]);
5
+ export const keystages = z.enum(["KS1", "KS2", "KS3", "KS4", "EYFS"]);
6
+ export const keystageSlugs = z.enum([
7
+ "ks1",
8
+ "ks2",
9
+ "ks3",
10
+ "ks4",
11
+ "early-years-foundation-stage",
12
+ ]);
13
+ export const keystageDescriptions = z.enum([
14
+ "Key Stage 1",
15
+ "Key Stage 2",
16
+ "Key Stage 3",
17
+ "Key Stage 4",
18
+ "Early Years Foundation Stage",
19
+ ]);
@@ -0,0 +1,3 @@
1
+ export * from "./lessonData.fixture";
2
+ export * from "./programmeFields.fixture";
3
+ export * from "./unitData.fixture";
@@ -0,0 +1,30 @@
1
+ import { LessonData } from "@/schema/lessonData.schema";
2
+
3
+ export const lessonDataFixture = (
4
+ overrides?: Partial<LessonData>,
5
+ ): LessonData => ({
6
+ lesson_id: 1,
7
+ lesson_uid: "lesson-uid",
8
+ title: "lesson-title",
9
+ description: "lesson-description",
10
+ slug: "lesson-slug",
11
+ pupil_lesson_outcome: "pupil-lesson-outcome",
12
+ key_learning_points: [{}],
13
+ equipment_and_resources: null,
14
+ content_guidance_details: null,
15
+ content_guidance: null,
16
+ supervision_level: null,
17
+ thirdpartycontent_list: null,
18
+ misconceptions_and_common_mistakes: null,
19
+ keywords: null,
20
+ video_id: null,
21
+ sign_language_video_id: null,
22
+ quiz_id_starter: null,
23
+ quiz_id_exit: null,
24
+ asset_id_slidedeck: null,
25
+ asset_id_worksheet: null,
26
+ copyright_content: null,
27
+ _state: "published",
28
+ _cohort: "2023-2024",
29
+ deprecated_fields: null,
30
+ });
@@ -0,0 +1,34 @@
1
+ import { ProgrammeFields } from "@/schema/programmeFields.schema";
2
+
3
+ export const programmeFieldsFixture = (): ProgrammeFields => ({
4
+ tier: null,
5
+ tier_id: null,
6
+ tier_slug: null,
7
+ tier_description: null,
8
+ tier_display_order: null,
9
+ examboard: null,
10
+ examboard_id: null,
11
+ examboard_slug: null,
12
+ examboard_description: null,
13
+ examboard_display_order: null,
14
+ year: "year",
15
+ year_slug: "year-1",
16
+ year_id: 1,
17
+ year_description: "year-description",
18
+ year_display_order: 1,
19
+ keystage: "KS1",
20
+ keystage_id: 1,
21
+ keystage_slug: "ks1",
22
+ keystage_description: "Key Stage 1",
23
+ keystage_display_order: 1,
24
+ phase: "primary",
25
+ phase_id: 0,
26
+ phase_slug: "primary",
27
+ phase_description: "primary",
28
+ phase_display_order: 1,
29
+ subject: "subject",
30
+ subject_id: 1,
31
+ subject_slug: "subject-slug",
32
+ subject_description: "subject-description",
33
+ subject_display_order: 1,
34
+ });
@@ -0,0 +1,12 @@
1
+ import { UnitData } from "@/schema/unitData.schema";
2
+
3
+ export const unitDataFixture = (): UnitData => ({
4
+ unit_id: 0,
5
+ unit_uid: "unit-uid",
6
+ description: null,
7
+ slug: "unit-slug",
8
+ tags: null,
9
+ title: "unit-title",
10
+ _state: "published",
11
+ _cohort: "2023-2024",
12
+ });
@@ -0,0 +1,4 @@
1
+ export * from "./base.schema";
2
+ export * from "./lessonData.schema";
3
+ export * from "./programmeFields.schema";
4
+ export * from "./unitData.schema";
@@ -0,0 +1,30 @@
1
+ import { LessonData } from "@/schema/lessonData.schema";
2
+
3
+ export const lessonDataFixture = (
4
+ overrides?: Partial<LessonData>,
5
+ ): LessonData => ({
6
+ lesson_id: 1,
7
+ lesson_uid: "lesson-uid",
8
+ title: "lesson-title",
9
+ description: "lesson-description",
10
+ slug: "lesson-slug",
11
+ pupil_lesson_outcome: "pupil-lesson-outcome",
12
+ key_learning_points: [{}],
13
+ equipment_and_resources: null,
14
+ content_guidance_details: null,
15
+ content_guidance: null,
16
+ supervision_level: null,
17
+ thirdpartycontent_list: null,
18
+ misconceptions_and_common_mistakes: null,
19
+ keywords: null,
20
+ video_id: null,
21
+ sign_language_video_id: null,
22
+ quiz_id_starter: null,
23
+ quiz_id_exit: null,
24
+ asset_id_slidedeck: null,
25
+ asset_id_worksheet: null,
26
+ copyright_content: null,
27
+ _state: "published",
28
+ _cohort: "2023-2024",
29
+ deprecated_fields: null,
30
+ });
@@ -0,0 +1,32 @@
1
+ import { z } from "zod";
2
+
3
+ import { _stateSchema, _cohortSchema } from "./base.schema";
4
+
5
+ export const lessonDataSchema = z.object({
6
+ lesson_id: z.number(),
7
+ lesson_uid: z.string(),
8
+ slug: z.string(),
9
+ title: z.string(),
10
+ description: z.string(),
11
+ pupil_lesson_outcome: z.string(),
12
+ key_learning_points: z.array(z.object({})),
13
+ equipment_and_resources: z.array(z.object({})).nullable(),
14
+ content_guidance_details: z.array(z.object({})).nullable(),
15
+ content_guidance: z.array(z.number()).nullable(),
16
+ copyright_content: z.array(z.object({})).nullable(),
17
+ supervision_level: z.string().nullable(),
18
+ thirdpartycontent_list: z.array(z.number()).nullable(),
19
+ misconceptions_and_common_mistakes: z.array(z.object({})).nullable(),
20
+ keywords: z.array(z.object({})).nullable(),
21
+ video_id: z.number().nullable(),
22
+ sign_language_video_id: z.number().nullable(),
23
+ quiz_id_starter: z.number().nullable(),
24
+ quiz_id_exit: z.number().nullable(),
25
+ asset_id_slidedeck: z.number().nullable(),
26
+ asset_id_worksheet: z.number().nullable(),
27
+ deprecated_fields: z.record(z.unknown()).nullable(),
28
+ _state: _stateSchema,
29
+ _cohort: _cohortSchema,
30
+ });
31
+
32
+ export type LessonData = z.infer<typeof lessonDataSchema>;
@@ -0,0 +1,11 @@
1
+ import { describe, expect, it } from "vitest";
2
+
3
+ import { lessonDataFixture } from "@/fixtures/lessonData.fixture";
4
+ import { lessonDataSchema } from "@/schema/lessonData.schema";
5
+
6
+ describe("lessonData", () => {
7
+ it("conforms to the schema", () => {
8
+ const l = lessonDataFixture();
9
+ expect(() => lessonDataSchema.parse(l)).not.toThrow();
10
+ });
11
+ });
@@ -0,0 +1,34 @@
1
+ import { ProgrammeFields } from "@/schema/programmeFields.schema";
2
+
3
+ export const programmeFieldsFixture = (): ProgrammeFields => ({
4
+ tier: null,
5
+ tier_id: null,
6
+ tier_slug: null,
7
+ tier_description: null,
8
+ tier_display_order: null,
9
+ examboard: null,
10
+ examboard_id: null,
11
+ examboard_slug: null,
12
+ examboard_description: null,
13
+ examboard_display_order: null,
14
+ year: "year",
15
+ year_slug: "year-1",
16
+ year_id: 1,
17
+ year_description: "year-description",
18
+ year_display_order: 1,
19
+ keystage: "KS1",
20
+ keystage_id: 1,
21
+ keystage_slug: "ks1",
22
+ keystage_description: "Key Stage 1",
23
+ keystage_display_order: 1,
24
+ phase: "primary",
25
+ phase_id: 0,
26
+ phase_slug: "primary",
27
+ phase_description: "primary",
28
+ phase_display_order: 1,
29
+ subject: "subject",
30
+ subject_id: 1,
31
+ subject_slug: "subject-slug",
32
+ subject_description: "subject-description",
33
+ subject_display_order: 1,
34
+ });
@@ -0,0 +1,45 @@
1
+ import { z } from "zod";
2
+ import { keystages, keystageSlugs, keystageDescriptions } from "./base.schema";
3
+
4
+ export const programmeFieldsSchema = z.object({
5
+ tier: z.string().nullable(),
6
+ tier_id: z.number().nullable(),
7
+ tier_slug: z.string().nullable(),
8
+ tier_description: z.string().nullable(),
9
+ tier_display_order: z.number().nullable(),
10
+
11
+ examboard: z.string().nullable(),
12
+ examboard_id: z.number().nullable(),
13
+ examboard_slug: z.string().nullable(),
14
+ examboard_description: z.string().nullable(),
15
+ examboard_display_order: z.number().nullable(),
16
+
17
+ year: z.string(),
18
+ year_slug: z.string(),
19
+ year_id: z.number(),
20
+ year_description: z.string(),
21
+ year_display_order: z.number(),
22
+
23
+ keystage: keystages,
24
+ keystage_id: z.number(),
25
+ keystage_slug: keystageSlugs,
26
+ keystage_description: keystageDescriptions,
27
+ keystage_display_order: z.number(),
28
+
29
+ phase: z.string(),
30
+ phase_id: z.number(),
31
+ phase_slug: z.string(),
32
+ phase_description: z.string(),
33
+ phase_display_order: z.number(),
34
+
35
+ subject: z.string(),
36
+ subject_id: z.number(),
37
+ subject_slug: z.string(),
38
+ subject_description: z.string(),
39
+ subject_display_order: z.number(),
40
+
41
+ legacy: z.string().optional(),
42
+ dataset: z.string().optional(),
43
+ });
44
+
45
+ export type ProgrammeFields = z.infer<typeof programmeFieldsSchema>;
@@ -0,0 +1,11 @@
1
+ import { describe, expect, it } from "vitest";
2
+
3
+ import { programmeFieldsFixture } from "@/fixtures/programmeFields.fixture";
4
+ import { programmeFieldsSchema } from "@/schema/programmeFields.schema";
5
+
6
+ describe("programmeFields", () => {
7
+ it("conforms to the schema", () => {
8
+ const l = programmeFieldsFixture();
9
+ expect(() => programmeFieldsSchema.parse(l)).not.toThrow();
10
+ });
11
+ });
@@ -0,0 +1,19 @@
1
+ import { z } from "zod";
2
+
3
+ export const _stateSchema = z.enum(["published", "new", "migration"]);
4
+ export const _cohortSchema = z.enum(["2020-2023", "2023-2024", "0"]);
5
+ export const keystages = z.enum(["KS1", "KS2", "KS3", "KS4", "EYFS"]);
6
+ export const keystageSlugs = z.enum([
7
+ "ks1",
8
+ "ks2",
9
+ "ks3",
10
+ "ks4",
11
+ "early-years-foundation-stage",
12
+ ]);
13
+ export const keystageDescriptions = z.enum([
14
+ "Key Stage 1",
15
+ "Key Stage 2",
16
+ "Key Stage 3",
17
+ "Key Stage 4",
18
+ "Early Years Foundation Stage",
19
+ ]);
@@ -0,0 +1,4 @@
1
+ export * from "./base.schema";
2
+ export * from "./lessonData.schema";
3
+ export * from "./programmeFields.schema";
4
+ export * from "./unitData.schema";
@@ -0,0 +1,32 @@
1
+ import { z } from "zod";
2
+
3
+ import { _stateSchema, _cohortSchema } from "./base.schema";
4
+
5
+ export const lessonDataSchema = z.object({
6
+ lesson_id: z.number(),
7
+ lesson_uid: z.string(),
8
+ slug: z.string(),
9
+ title: z.string(),
10
+ description: z.string(),
11
+ pupil_lesson_outcome: z.string(),
12
+ key_learning_points: z.array(z.object({})),
13
+ equipment_and_resources: z.array(z.object({})).nullable(),
14
+ content_guidance_details: z.array(z.object({})).nullable(),
15
+ content_guidance: z.array(z.number()).nullable(),
16
+ copyright_content: z.array(z.object({})).nullable(),
17
+ supervision_level: z.string().nullable(),
18
+ thirdpartycontent_list: z.array(z.number()).nullable(),
19
+ misconceptions_and_common_mistakes: z.array(z.object({})).nullable(),
20
+ keywords: z.array(z.object({})).nullable(),
21
+ video_id: z.number().nullable(),
22
+ sign_language_video_id: z.number().nullable(),
23
+ quiz_id_starter: z.number().nullable(),
24
+ quiz_id_exit: z.number().nullable(),
25
+ asset_id_slidedeck: z.number().nullable(),
26
+ asset_id_worksheet: z.number().nullable(),
27
+ deprecated_fields: z.record(z.unknown()).nullable(),
28
+ _state: _stateSchema,
29
+ _cohort: _cohortSchema,
30
+ });
31
+
32
+ export type LessonData = z.infer<typeof lessonDataSchema>;
@@ -0,0 +1,45 @@
1
+ import { z } from "zod";
2
+ import { keystages, keystageSlugs, keystageDescriptions } from "./base.schema";
3
+
4
+ export const programmeFieldsSchema = z.object({
5
+ tier: z.string().nullable(),
6
+ tier_id: z.number().nullable(),
7
+ tier_slug: z.string().nullable(),
8
+ tier_description: z.string().nullable(),
9
+ tier_display_order: z.number().nullable(),
10
+
11
+ examboard: z.string().nullable(),
12
+ examboard_id: z.number().nullable(),
13
+ examboard_slug: z.string().nullable(),
14
+ examboard_description: z.string().nullable(),
15
+ examboard_display_order: z.number().nullable(),
16
+
17
+ year: z.string(),
18
+ year_slug: z.string(),
19
+ year_id: z.number(),
20
+ year_description: z.string(),
21
+ year_display_order: z.number(),
22
+
23
+ keystage: keystages,
24
+ keystage_id: z.number(),
25
+ keystage_slug: keystageSlugs,
26
+ keystage_description: keystageDescriptions,
27
+ keystage_display_order: z.number(),
28
+
29
+ phase: z.string(),
30
+ phase_id: z.number(),
31
+ phase_slug: z.string(),
32
+ phase_description: z.string(),
33
+ phase_display_order: z.number(),
34
+
35
+ subject: z.string(),
36
+ subject_id: z.number(),
37
+ subject_slug: z.string(),
38
+ subject_description: z.string(),
39
+ subject_display_order: z.number(),
40
+
41
+ legacy: z.string().optional(),
42
+ dataset: z.string().optional(),
43
+ });
44
+
45
+ export type ProgrammeFields = z.infer<typeof programmeFieldsSchema>;
@@ -0,0 +1,16 @@
1
+ import { z } from "zod";
2
+
3
+ import { _stateSchema, _cohortSchema } from "./base.schema";
4
+
5
+ export const unitDataSchema = z.object({
6
+ unit_id: z.number(),
7
+ unit_uid: z.string(),
8
+ description: z.string().nullable(),
9
+ slug: z.string(),
10
+ tags: z.array(z.number()).nullable(),
11
+ title: z.string(),
12
+ _state: _stateSchema,
13
+ _cohort: _cohortSchema,
14
+ });
15
+
16
+ export type UnitData = z.infer<typeof unitDataSchema>;
@@ -0,0 +1,11 @@
1
+ import { describe, expect, it } from "vitest";
2
+
3
+ import { lessonDataFixture } from "@/fixtures/lessonData.fixture";
4
+ import { lessonDataSchema } from "@/schema/lessonData.schema";
5
+
6
+ describe("lessonData", () => {
7
+ it("conforms to the schema", () => {
8
+ const l = lessonDataFixture();
9
+ expect(() => lessonDataSchema.parse(l)).not.toThrow();
10
+ });
11
+ });
@@ -0,0 +1,11 @@
1
+ import { describe, expect, it } from "vitest";
2
+
3
+ import { programmeFieldsFixture } from "@/fixtures/programmeFields.fixture";
4
+ import { programmeFieldsSchema } from "@/schema/programmeFields.schema";
5
+
6
+ describe("programmeFields", () => {
7
+ it("conforms to the schema", () => {
8
+ const l = programmeFieldsFixture();
9
+ expect(() => programmeFieldsSchema.parse(l)).not.toThrow();
10
+ });
11
+ });
@@ -0,0 +1,12 @@
1
+ import { UnitData } from "@/schema/unitData.schema";
2
+
3
+ export const unitDataFixture = (): UnitData => ({
4
+ unit_id: 0,
5
+ unit_uid: "unit-uid",
6
+ description: null,
7
+ slug: "unit-slug",
8
+ tags: null,
9
+ title: "unit-title",
10
+ _state: "published",
11
+ _cohort: "2023-2024",
12
+ });
@@ -0,0 +1,16 @@
1
+ import { z } from "zod";
2
+
3
+ import { _stateSchema, _cohortSchema } from "./base.schema";
4
+
5
+ export const unitDataSchema = z.object({
6
+ unit_id: z.number(),
7
+ unit_uid: z.string(),
8
+ description: z.string().nullable(),
9
+ slug: z.string(),
10
+ tags: z.array(z.number()).nullable(),
11
+ title: z.string(),
12
+ _state: _stateSchema,
13
+ _cohort: _cohortSchema,
14
+ });
15
+
16
+ export type UnitData = z.infer<typeof unitDataSchema>;
@@ -0,0 +1,225 @@
1
+ import { z } from 'zod';
2
+
3
+ declare const _stateSchema: z.ZodEnum<["published", "new", "migration"]>;
4
+ declare const _cohortSchema: z.ZodEnum<["2020-2023", "2023-2024", "0"]>;
5
+ declare const keystages: z.ZodEnum<["KS1", "KS2", "KS3", "KS4", "EYFS"]>;
6
+ declare const keystageSlugs: z.ZodEnum<["ks1", "ks2", "ks3", "ks4", "early-years-foundation-stage"]>;
7
+ declare const keystageDescriptions: z.ZodEnum<["Key Stage 1", "Key Stage 2", "Key Stage 3", "Key Stage 4", "Early Years Foundation Stage"]>;
8
+
9
+ declare const lessonDataSchema: z.ZodObject<{
10
+ lesson_id: z.ZodNumber;
11
+ lesson_uid: z.ZodString;
12
+ slug: z.ZodString;
13
+ title: z.ZodString;
14
+ description: z.ZodString;
15
+ pupil_lesson_outcome: z.ZodString;
16
+ key_learning_points: z.ZodArray<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>, "many">;
17
+ equipment_and_resources: z.ZodNullable<z.ZodArray<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>, "many">>;
18
+ content_guidance_details: z.ZodNullable<z.ZodArray<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>, "many">>;
19
+ content_guidance: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
20
+ copyright_content: z.ZodNullable<z.ZodArray<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>, "many">>;
21
+ supervision_level: z.ZodNullable<z.ZodString>;
22
+ thirdpartycontent_list: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
23
+ misconceptions_and_common_mistakes: z.ZodNullable<z.ZodArray<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>, "many">>;
24
+ keywords: z.ZodNullable<z.ZodArray<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>, "many">>;
25
+ video_id: z.ZodNullable<z.ZodNumber>;
26
+ sign_language_video_id: z.ZodNullable<z.ZodNumber>;
27
+ quiz_id_starter: z.ZodNullable<z.ZodNumber>;
28
+ quiz_id_exit: z.ZodNullable<z.ZodNumber>;
29
+ asset_id_slidedeck: z.ZodNullable<z.ZodNumber>;
30
+ asset_id_worksheet: z.ZodNullable<z.ZodNumber>;
31
+ deprecated_fields: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
32
+ _state: z.ZodEnum<["published", "new", "migration"]>;
33
+ _cohort: z.ZodEnum<["2020-2023", "2023-2024", "0"]>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ lesson_id: number;
36
+ lesson_uid: string;
37
+ slug: string;
38
+ title: string;
39
+ description: string;
40
+ pupil_lesson_outcome: string;
41
+ key_learning_points: {}[];
42
+ equipment_and_resources: {}[] | null;
43
+ content_guidance_details: {}[] | null;
44
+ content_guidance: number[] | null;
45
+ copyright_content: {}[] | null;
46
+ supervision_level: string | null;
47
+ thirdpartycontent_list: number[] | null;
48
+ misconceptions_and_common_mistakes: {}[] | null;
49
+ keywords: {}[] | null;
50
+ video_id: number | null;
51
+ sign_language_video_id: number | null;
52
+ quiz_id_starter: number | null;
53
+ quiz_id_exit: number | null;
54
+ asset_id_slidedeck: number | null;
55
+ asset_id_worksheet: number | null;
56
+ deprecated_fields: Record<string, unknown> | null;
57
+ _state: "published" | "new" | "migration";
58
+ _cohort: "0" | "2020-2023" | "2023-2024";
59
+ }, {
60
+ lesson_id: number;
61
+ lesson_uid: string;
62
+ slug: string;
63
+ title: string;
64
+ description: string;
65
+ pupil_lesson_outcome: string;
66
+ key_learning_points: {}[];
67
+ equipment_and_resources: {}[] | null;
68
+ content_guidance_details: {}[] | null;
69
+ content_guidance: number[] | null;
70
+ copyright_content: {}[] | null;
71
+ supervision_level: string | null;
72
+ thirdpartycontent_list: number[] | null;
73
+ misconceptions_and_common_mistakes: {}[] | null;
74
+ keywords: {}[] | null;
75
+ video_id: number | null;
76
+ sign_language_video_id: number | null;
77
+ quiz_id_starter: number | null;
78
+ quiz_id_exit: number | null;
79
+ asset_id_slidedeck: number | null;
80
+ asset_id_worksheet: number | null;
81
+ deprecated_fields: Record<string, unknown> | null;
82
+ _state: "published" | "new" | "migration";
83
+ _cohort: "0" | "2020-2023" | "2023-2024";
84
+ }>;
85
+ type LessonData = z.infer<typeof lessonDataSchema>;
86
+
87
+ declare const programmeFieldsSchema: z.ZodObject<{
88
+ tier: z.ZodNullable<z.ZodString>;
89
+ tier_id: z.ZodNullable<z.ZodNumber>;
90
+ tier_slug: z.ZodNullable<z.ZodString>;
91
+ tier_description: z.ZodNullable<z.ZodString>;
92
+ tier_display_order: z.ZodNullable<z.ZodNumber>;
93
+ examboard: z.ZodNullable<z.ZodString>;
94
+ examboard_id: z.ZodNullable<z.ZodNumber>;
95
+ examboard_slug: z.ZodNullable<z.ZodString>;
96
+ examboard_description: z.ZodNullable<z.ZodString>;
97
+ examboard_display_order: z.ZodNullable<z.ZodNumber>;
98
+ year: z.ZodString;
99
+ year_slug: z.ZodString;
100
+ year_id: z.ZodNumber;
101
+ year_description: z.ZodString;
102
+ year_display_order: z.ZodNumber;
103
+ keystage: z.ZodEnum<["KS1", "KS2", "KS3", "KS4", "EYFS"]>;
104
+ keystage_id: z.ZodNumber;
105
+ keystage_slug: z.ZodEnum<["ks1", "ks2", "ks3", "ks4", "early-years-foundation-stage"]>;
106
+ keystage_description: z.ZodEnum<["Key Stage 1", "Key Stage 2", "Key Stage 3", "Key Stage 4", "Early Years Foundation Stage"]>;
107
+ keystage_display_order: z.ZodNumber;
108
+ phase: z.ZodString;
109
+ phase_id: z.ZodNumber;
110
+ phase_slug: z.ZodString;
111
+ phase_description: z.ZodString;
112
+ phase_display_order: z.ZodNumber;
113
+ subject: z.ZodString;
114
+ subject_id: z.ZodNumber;
115
+ subject_slug: z.ZodString;
116
+ subject_description: z.ZodString;
117
+ subject_display_order: z.ZodNumber;
118
+ legacy: z.ZodOptional<z.ZodString>;
119
+ dataset: z.ZodOptional<z.ZodString>;
120
+ }, "strip", z.ZodTypeAny, {
121
+ tier: string | null;
122
+ tier_id: number | null;
123
+ tier_slug: string | null;
124
+ tier_description: string | null;
125
+ tier_display_order: number | null;
126
+ examboard: string | null;
127
+ examboard_id: number | null;
128
+ examboard_slug: string | null;
129
+ examboard_description: string | null;
130
+ examboard_display_order: number | null;
131
+ year: string;
132
+ year_slug: string;
133
+ year_id: number;
134
+ year_description: string;
135
+ year_display_order: number;
136
+ keystage: "KS1" | "KS2" | "KS3" | "KS4" | "EYFS";
137
+ keystage_id: number;
138
+ keystage_slug: "ks1" | "ks2" | "ks3" | "ks4" | "early-years-foundation-stage";
139
+ keystage_description: "Key Stage 1" | "Key Stage 2" | "Key Stage 3" | "Key Stage 4" | "Early Years Foundation Stage";
140
+ keystage_display_order: number;
141
+ phase: string;
142
+ phase_id: number;
143
+ phase_slug: string;
144
+ phase_description: string;
145
+ phase_display_order: number;
146
+ subject: string;
147
+ subject_id: number;
148
+ subject_slug: string;
149
+ subject_description: string;
150
+ subject_display_order: number;
151
+ legacy?: string | undefined;
152
+ dataset?: string | undefined;
153
+ }, {
154
+ tier: string | null;
155
+ tier_id: number | null;
156
+ tier_slug: string | null;
157
+ tier_description: string | null;
158
+ tier_display_order: number | null;
159
+ examboard: string | null;
160
+ examboard_id: number | null;
161
+ examboard_slug: string | null;
162
+ examboard_description: string | null;
163
+ examboard_display_order: number | null;
164
+ year: string;
165
+ year_slug: string;
166
+ year_id: number;
167
+ year_description: string;
168
+ year_display_order: number;
169
+ keystage: "KS1" | "KS2" | "KS3" | "KS4" | "EYFS";
170
+ keystage_id: number;
171
+ keystage_slug: "ks1" | "ks2" | "ks3" | "ks4" | "early-years-foundation-stage";
172
+ keystage_description: "Key Stage 1" | "Key Stage 2" | "Key Stage 3" | "Key Stage 4" | "Early Years Foundation Stage";
173
+ keystage_display_order: number;
174
+ phase: string;
175
+ phase_id: number;
176
+ phase_slug: string;
177
+ phase_description: string;
178
+ phase_display_order: number;
179
+ subject: string;
180
+ subject_id: number;
181
+ subject_slug: string;
182
+ subject_description: string;
183
+ subject_display_order: number;
184
+ legacy?: string | undefined;
185
+ dataset?: string | undefined;
186
+ }>;
187
+ type ProgrammeFields = z.infer<typeof programmeFieldsSchema>;
188
+
189
+ declare const unitDataSchema: z.ZodObject<{
190
+ unit_id: z.ZodNumber;
191
+ unit_uid: z.ZodString;
192
+ description: z.ZodNullable<z.ZodString>;
193
+ slug: z.ZodString;
194
+ tags: z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>;
195
+ title: z.ZodString;
196
+ _state: z.ZodEnum<["published", "new", "migration"]>;
197
+ _cohort: z.ZodEnum<["2020-2023", "2023-2024", "0"]>;
198
+ }, "strip", z.ZodTypeAny, {
199
+ slug: string;
200
+ title: string;
201
+ description: string | null;
202
+ _state: "published" | "new" | "migration";
203
+ _cohort: "0" | "2020-2023" | "2023-2024";
204
+ unit_id: number;
205
+ unit_uid: string;
206
+ tags: number[] | null;
207
+ }, {
208
+ slug: string;
209
+ title: string;
210
+ description: string | null;
211
+ _state: "published" | "new" | "migration";
212
+ _cohort: "0" | "2020-2023" | "2023-2024";
213
+ unit_id: number;
214
+ unit_uid: string;
215
+ tags: number[] | null;
216
+ }>;
217
+ type UnitData = z.infer<typeof unitDataSchema>;
218
+
219
+ declare const lessonDataFixture: (overrides?: Partial<LessonData>) => LessonData;
220
+
221
+ declare const programmeFieldsFixture: () => ProgrammeFields;
222
+
223
+ declare const unitDataFixture: () => UnitData;
224
+
225
+ export { type LessonData, type ProgrammeFields, type UnitData, _cohortSchema, _stateSchema, keystageDescriptions, keystageSlugs, keystages, lessonDataFixture, lessonDataSchema, programmeFieldsFixture, programmeFieldsSchema, unitDataFixture, unitDataSchema };
package/package.json CHANGED
@@ -1,15 +1,12 @@
1
1
  {
2
2
  "name": "@oaknational/oak-curriculum-schema",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
4
4
  "description": "Contract tests to ensure data integrity between Oak apps and their data",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
7
7
  "types": "dist/types.d.ts",
8
8
  "files": [
9
- "dist/cjs",
10
- "dist/esm",
11
- "dist/types.d.ts",
12
- "dist/src"
9
+ "dist"
13
10
  ],
14
11
  "scripts": {
15
12
  "test": "vitest",
@@ -17,7 +14,8 @@
17
14
  "build": "rollup -c --bundleConfigAsCjs",
18
15
  "lint": "eslint --fix",
19
16
  "check-types": "tsc",
20
- "prepare": "husky"
17
+ "prepare": "husky",
18
+ "prepublishOnly": "npm run build"
21
19
  },
22
20
  "author": "",
23
21
  "license": "MIT",