@memizy/oqse 0.1.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/dist/index.cjs ADDED
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`zod`);function t(e){return e.type===`note`}function n(e){return e.type===`flashcard`}function r(e){return e.type===`true-false`}function i(e){return e.type===`mcq-single`}function a(e){return e.type===`mcq-multi`}function ee(e){return e.type===`short-answer`}function te(e){return e.type===`fill-in-blanks`}function ne(e){return e.type===`fill-in-select`}function re(e){return e.type===`match-pairs`}function ie(e){return e.type===`match-complex`}function ae(e){return e.type===`sort-items`}function oe(e){return e.type===`slider`}function se(e){return e.type===`pin-on-image`}function ce(e){return e.type===`categorize`}function le(e){return e.type===`timeline`}function ue(e){return e.type===`matrix`}function de(e){return e.type===`math-input`}function fe(e){return e.type===`diagram-label`}function pe(e){return e.type===`open-ended`}function me(e){return e.type===`numeric-input`}function he(e){return e.type===`pin-on-model`}function ge(e){return e.type===`chess-puzzle`}function o(e){return[`note`,`flashcard`,`mcq-single`,`short-answer`].includes(e.type)}function _e(e){return!o(e)}var s=e.z.string().uuid({message:`Neplatn+� form+�t UUID`}),c=e.z.string().min(2,`K+-d jazyka mus+� m+�t alespo+� 2 znaky`).regex(/^[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?$/,`Neplatn+� form+�t BCP 47 (nap+�. "cs", "en-US")`),l=e.z.string().min(1,`Identifik+�tor licence nesm+� b+�t pr+�zdn+�`),u=e.z.string().regex(/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d{3})?(Z|[+-]\d{2}:\d{2})?)?$/,`Neplatn+� form+�t ISO 8601 (nap+�. "2025-11-21T14:30:00Z")`),d=e.z.string().url({message:`Mus+� b+�t platn+� absolutn+� URL adresa`}),f=e.z.string().regex(/^[a-z0-9_-]+$/,`Kl+��� assetu mus+� obsahovat pouze mal+� p+�smena, ��+�sla, poml��ky a podtr+�+�tka`),p=e.z.string().min(1,`Text nesm+� b+�t pr+�zdn+�`),m=e.z.string().min(1,`Obsah nesm+� b+�t pr+�zdn+�`),h=e.z.string().optional(),g=e.z.object({lang:c,value:e.z.string().min(1,`URI titulk+� nesm+� b+�t pr+�zdn+�`),label:e.z.string().optional(),kind:e.z.enum([`captions`,`subtitles`,`descriptions`]).optional()}),ve=e.z.object({type:e.z.enum([`image`,`audio`,`video`,`model`]),value:e.z.string().min(1,`URI m+�dia nesm+� b+�t pr+�zdn+�`),mimeType:e.z.string().optional(),altText:e.z.string().optional(),transcript:m.optional(),caption:m.optional(),width:e.z.number().int().positive().optional(),height:e.z.number().int().positive().optional(),start:e.z.number().nonnegative().optional(),end:e.z.number().positive().optional(),loop:e.z.boolean().optional(),subtitles:e.z.array(g).optional(),license:l.optional(),attribution:e.z.string().optional(),checksums:e.z.record(e.z.string(),e.z.string()).optional()}).refine(e=>e.start!==void 0&&e.end!==void 0?e.start<e.end:!0,{message:`Po��+�te��n+� ��as mus+� b+�t men+�+� ne+� koncov+� ��as`,path:[`end`]}).refine(e=>!(e.type===`image`&&!e.altText),{message:`Obr+�zky mus+� m+�t definovan+� alternativn+� text (altText) pro p+�+�stupnost`,path:[`altText`]}),_=e.z.record(f,ve),v=e.z.object({name:p,role:e.z.string().optional(),email:e.z.string().email(`Neplatn+� form+�t e-mailov+� adresy`).optional(),url:d.optional()}),y=e.z.enum([`url`,`doi`,`isbn`,`pdf`,`textbook`,`video`,`audio`,`image`,`model`,`other`]),b=e.z.object({id:p,type:y,value:p,title:p,description:e.z.string().optional(),authors:e.z.array(p).optional(),publishedDate:u.optional(),retrievedAt:u.optional(),license:l.optional()}).refine(e=>{if([`url`,`pdf`,`video`,`audio`,`image`].includes(e.type))try{return new URL(e.value),!0}catch{return!1}return!0},{message:`Pro typy url, pdf, video, audio a image mus+� b+�t value platn+� URL adresa`,path:[`value`]}),x=e.z.object({id:p,location:e.z.string().optional(),quote:m.optional()}),S=e.z.object({wikidataId:e.z.string().regex(/^Q\d+$/,`Wikidata ID mus+� m+�t form+�t Q n+�sledovan+� ��+�slem`).optional(),description:e.z.string().optional()}),C=e.z.record(e.z.string(),S),w=e.z.object({features:e.z.array(e.z.string().min(1,`Kl+��� funkce nesm+� b+�t pr+�zdn+�`)).optional(),latexPackages:e.z.array(e.z.string().min(1,`N+�zev bal+���ku nesm+� b+�t pr+�zdn+�`)).optional(),itemProperties:e.z.array(e.z.string().min(1,`Kl+��� vlastnosti nesm+� b+�t pr+�zdn+�`)).optional(),metaProperties:e.z.array(e.z.string().min(1,`Kl+��� vlastnosti nesm+� b+�t pr+�zdn+�`)).optional()}),T=e.z.enum([`official`,`experimental`,`proprietary`]),ye=e.z.enum([`math`,`media-image`,`media-audio`,`media-video`,`hotspots`,`complex-pairing`,`open-text`]),E=e.z.object({name:p,type:T,vendor:e.z.string().optional()}).refine(e=>!(e.type===`proprietary`&&!e.vendor),{message:`Propriet+�rn+� funkce mus+� m+�t definovan+� vendor (nap+�. "memizy.com")`,path:[`vendor`]}),D=e.z.object({lang:c,id:s,title:p,downloadUrl:d.optional()}),O=e.z.object({id:s,title:p,downloadUrl:d.optional()}),k=e.z.enum([`remember`,`understand`,`apply`,`analyze`,`evaluate`,`create`]),A=e.z.enum([`low`,`medium`,`high`]),j=e.z.object({bloomLevel:k.optional(),irtDifficulty:e.z.number().optional(),irtDiscrimination:e.z.number().optional(),irtGuessing:e.z.number().min(0).max(1,`IRT guessing mus+� b+�t mezi 0 a 1`).optional(),avgTime:e.z.number().positive().optional(),cognitiveLoad:A.optional(),partialCredit:e.z.boolean().optional(),penaltyPerWrong:e.z.number().min(0).max(1,`Penalizace mus+� b+�t mezi 0 a 1`).optional()}),M=e.z.enum([`katex`,`mathjax`]),N=e.z.object({renderer:M.optional(),packages:e.z.array(e.z.string()).optional()}),P=e.z.object({id:s,language:c,title:p.max(500,`Titulek nesm+� b+�t del+�+� ne+� 500 znak+�`),description:m.max(5e3,`Popis nesm+� b+�t del+�+� ne+� 5000 znak+�`).optional(),thumbnail:f.optional(),assets:_.optional(),ageMin:e.z.number().int().nonnegative().optional(),ageMax:e.z.number().int().nonnegative().optional(),subject:e.z.string().optional(),createdAt:u,updatedAt:u,author:v.optional(),contributors:e.z.array(v).optional(),license:l.optional(),licenseUrl:d.optional(),requirements:w.optional(),requiredFeatures:e.z.array(E).optional(),tags:e.z.array(p).optional(),tagDefinitions:C.optional(),translations:e.z.array(D).optional(),sourceMaterials:e.z.array(b).optional(),estimatedTime:e.z.number().positive().optional(),prerequisites:e.z.array(O).optional(),relatedSets:e.z.array(O).optional(),mathSettings:N.optional(),customData:e.z.record(e.z.string(),e.z.unknown()).optional(),appSpecific:e.z.record(e.z.string(),e.z.unknown()).optional()}).refine(e=>e.ageMin!==void 0&&e.ageMax!==void 0?e.ageMin<=e.ageMax:!0,{message:`Minim+�ln+� v��k (ageMin) mus+� b+�t men+�+� nebo roven maxim+�ln+�mu v��ku (ageMax)`,path:[`ageMax`]}).refine(e=>new Date(e.createdAt)<=new Date(e.updatedAt),{message:`Datum vytvo+�en+� (createdAt) mus+� b+�t p+�ed nebo stejn+� jako datum aktualizace (updatedAt)`,path:[`updatedAt`]}),F=e.z.object({id:s,type:e.z.string(),assets:_.optional(),lang:c.optional(),tags:e.z.array(p).optional(),difficulty:e.z.number().int().min(1,`Obt+�+�nost mus+� b+�t minim+�ln�� 1`).max(5,`Obt+�+�nost mus+� b+�t maxim+�ln�� 5`).optional(),timeLimit:e.z.number().positive(`��asov+� limit mus+� b+�t kladn+� ��+�slo`).optional(),hints:e.z.array(m.max(2e3,`N+�pov��da nesm+� b+�t del+�+� ne+� 2000 znak+�`)).max(20,`Maxim+�ln�� 20 n+�pov��d na polo+�ku`).optional(),explanation:m.max(1e4,`Vysv��tlen+� nesm+� b+�t del+�+� ne+� 10000 znak+�`).optional(),incorrectFeedback:m.optional(),sources:e.z.array(x).optional(),relatedItems:e.z.array(s).optional(),dependencyItems:e.z.array(s).optional(),pedagogy:j.optional(),customData:e.z.record(e.z.string(),e.z.unknown()).optional(),appSpecific:e.z.record(e.z.string(),e.z.unknown()).optional()}),I=e.z.object({options:e.z.array(m).min(1,`Mus+� b+�t alespo+� 1 mo+�nost`),correctIndex:e.z.number().int().nonnegative()}).refine(e=>e.correctIndex<e.options.length,{message:`Index spr+�vn+� odpov��di odkazuje na neexistuj+�c+� mo+�nost`,path:[`correctIndex`]}),L=e.z.object({type:e.z.literal(`rect`),label:e.z.string().optional(),x:e.z.number().min(0).max(100,`X mus+� b+�t v rozmez+� 0-100%`),y:e.z.number().min(0).max(100,`Y mus+� b+�t v rozmez+� 0-100%`),width:e.z.number().min(0).max(100,`+�+�+�ka mus+� b+�t v rozmez+� 0-100%`),height:e.z.number().min(0).max(100,`V+�+�ka mus+� b+�t v rozmez+� 0-100%`)}),R=e.z.object({type:e.z.literal(`circle`),label:e.z.string().optional(),x:e.z.number().min(0).max(100,`X mus+� b+�t v rozmez+� 0-100%`),y:e.z.number().min(0).max(100,`Y mus+� b+�t v rozmez+� 0-100%`),radius:e.z.number().min(0).max(100,`Polom��r mus+� b+�t v rozmez+� 0-100%`)}),z=e.z.object({type:e.z.literal(`polygon`),label:e.z.string().optional(),points:e.z.array(e.z.object({x:e.z.number().min(0).max(100),y:e.z.number().min(0).max(100)})).min(3,`Polygon mus+� m+�t alespo+� 3 body`)}),B=e.z.object({type:e.z.literal(`mesh`),label:e.z.string().optional(),targetName:p}),V=e.z.discriminatedUnion(`type`,[L,R,z,B]),H=e.z.object({x:e.z.number(),y:e.z.number(),z:e.z.number()}),U=e.z.object({position:H.optional(),target:H.optional()}),be=e.z.object({id:p,text:m,correctCategoryIndex:e.z.number().int().nonnegative()}),xe=e.z.enum([`year`,`month`,`day`,`datetime`]),Se=e.z.object({id:p,text:m,date:u,precision:xe.optional()}),Ce=e.z.union([L.extend({correctLabelIndex:e.z.number().int().nonnegative()}),R.extend({correctLabelIndex:e.z.number().int().nonnegative()}),z.extend({correctLabelIndex:e.z.number().int().nonnegative()})]),we=e.z.object({label:p,percentage:e.z.number().min(0,`Procenta mus+� b+�t nez+�porn+�`).max(100,`Procenta nesm+� p+�es+�hnout 100`),description:e.z.string().optional()}),Te=e.z.object({criteria:e.z.array(we).min(1,`Rubrika mus+� m+�t alespo+� 1 krit+�rium`)}).refine(e=>e.criteria.reduce((e,t)=>e+t.percentage,0)>0,{message:`Sou��et procent v+�ech krit+�ri+� mus+� b+�t v��t+�+� ne+� 0`,path:[`criteria`]}),Ee=e.z.object({min:e.z.number(),max:e.z.number()}).refine(e=>e.min<=e.max,{message:`Minim+�ln+� hodnota mus+� b+�t men+�+� nebo rovna maxim+�ln+� hodnot��`,path:[`max`]}),De=F.extend({type:e.z.literal(`note`),title:e.z.string().optional(),content:m.max(1e4,`Obsah nesm+� b+�t del+�+� ne+� 10000 znak+�`)}),Oe=F.extend({type:e.z.literal(`flashcard`),front:m.max(1e4,`P+�edn+� strana nesm+� b+�t del+�+� ne+� 10000 znak+�`),back:m.max(1e4,`Zadn+� strana nesm+� b+�t del+�+� ne+� 10000 znak+�`)}),ke=F.extend({type:e.z.literal(`true-false`),question:m.max(1e4,`Ot+�zka nesm+� b+�t del+�+� ne+� 10000 znak+�`),answer:e.z.boolean()}),Ae=F.extend({type:e.z.literal(`mcq-single`),question:m.max(1e4,`Ot+�zka nesm+� b+�t del+�+� ne+� 10000 znak+�`),options:e.z.array(m.max(2e3,`Mo+�nost nesm+� b+�t del+�+� ne+� 2000 znak+�`)).min(2,`Ot+�zka mus+� m+�t alespo+� 2 mo+�nosti`).max(100,`Maxim+�ln�� 100 mo+�nost+�`),correctIndex:e.z.number().int().nonnegative(),shuffleOptions:e.z.boolean().optional(),optionExplanations:e.z.array(e.z.union([m,e.z.null()])).optional()}).refine(e=>e.correctIndex<e.options.length,{message:`Index spr+�vn+� odpov��di odkazuje na neexistuj+�c+� mo+�nost`,path:[`correctIndex`]}).refine(e=>e.optionExplanations?e.optionExplanations.length===e.options.length:!0,{message:`Po��et vysv��tlen+� mo+�nost+� mus+� b+�t stejn+� jako po��et mo+�nost+�`,path:[`optionExplanations`]}),je=F.extend({type:e.z.literal(`mcq-multi`),question:m.max(1e4,`Ot+�zka nesm+� b+�t del+�+� ne+� 10000 znak+�`),options:e.z.array(m.max(2e3,`Mo+�nost nesm+� b+�t del+�+� ne+� 2000 znak+�`)).min(2,`Ot+�zka mus+� m+�t alespo+� 2 mo+�nosti`).max(100,`Maxim+�ln�� 100 mo+�nost+�`),correctIndices:e.z.array(e.z.number().int().nonnegative()).min(1,`Mus+� b+�t alespo+� 1 spr+�vn+� odpov����`),minSelections:e.z.number().int().positive().optional(),maxSelections:e.z.number().int().positive().optional(),shuffleOptions:e.z.boolean().optional(),optionExplanations:e.z.array(e.z.union([m,e.z.null()])).optional()}).refine(e=>e.correctIndices.every(t=>t<e.options.length),{message:`N��kter+� z index+� spr+�vn+�ch odpov��d+� odkazuje na neexistuj+�c+� mo+�nost`,path:[`correctIndices`]}).refine(e=>new Set(e.correctIndices).size===e.correctIndices.length,{message:`Indexy spr+�vn+�ch odpov��d+� obsahuj+� duplicity`,path:[`correctIndices`]}).refine(e=>e.minSelections&&e.maxSelections?e.minSelections<=e.maxSelections:!0,{message:`Minim+�ln+� po��et v+�b��r+� mus+� b+�t men+�+� nebo roven maxim+�ln+�mu po��tu`,path:[`maxSelections`]}).refine(e=>e.maxSelections?e.maxSelections<=e.options.length:!0,{message:`Maxim+�ln+� po��et v+�b��r+� nesm+� p+�es+�hnout po��et mo+�nost+�`,path:[`maxSelections`]}).refine(e=>e.optionExplanations?e.optionExplanations.length===e.options.length:!0,{message:`Po��et vysv��tlen+� mo+�nost+� mus+� b+�t stejn+� jako po��et mo+�nost+�`,path:[`optionExplanations`]}),W=F.extend({type:e.z.literal(`short-answer`),question:m.max(1e4,`Ot+�zka nesm+� b+�t del+�+� ne+� 10000 znak+�`),answers:e.z.array(p).min(1,`Mus+� b+�t alespo+� 1 spr+�vn+� odpov����`),caseSensitive:e.z.boolean().optional(),trimWhitespace:e.z.boolean().optional(),acceptPartial:e.z.boolean().optional(),ignoreDiacritics:e.z.boolean().optional()}),Me=F.extend({type:e.z.literal(`fill-in-blanks`),question:h,text:m.max(1e4,`Text nesm+� b+�t del+�+� ne+� 10000 znak+�`),blanks:e.z.record(e.z.string(),e.z.array(p).min(1,`Ka+�d+� mezera mus+� m+�t alespo+� 1 spr+�vnou odpov����`)),caseSensitive:e.z.boolean().optional(),trimWhitespace:e.z.boolean().optional()}).refine(e=>Object.keys(e.blanks).length>0,{message:`Text mus+� obsahovat alespo+� 1 mezeru k dopln��n+�`,path:[`blanks`]}).refine(e=>{let t=/<blank:([a-zA-Z0-9_-]{1,64})\s*\/>/g,n=new Set,r;for(;(r=t.exec(e.text))!==null;)r[1]&&n.add(r[1]);let i=new Set(Object.keys(e.blanks));for(let e of n)if(!i.has(e))return!1;for(let e of i)if(!n.has(e))return!1;return!0},{message:`V+�echny tokeny v textu mus+� m+�t definici v blanks a v+�echny definice mus+� b+�t pou+�ity v textu`,path:[`blanks`]}),Ne=F.extend({type:e.z.literal(`fill-in-select`),question:h,text:m.max(1e4,`Text nesm+� b+�t del+�+� ne+� 10000 znak+�`),blanks:e.z.record(e.z.string(),I)}).refine(e=>Object.keys(e.blanks).length>0,{message:`Text mus+� obsahovat alespo+� 1 mezeru k v+�b��ru`,path:[`blanks`]}).refine(e=>{let t=/<blank:([a-zA-Z0-9_-]{1,64})\s*\/>/g,n=new Set,r;for(;(r=t.exec(e.text))!==null;)r[1]&&n.add(r[1]);let i=new Set(Object.keys(e.blanks));for(let e of n)if(!i.has(e))return!1;for(let e of i)if(!n.has(e))return!1;return!0},{message:`V+�echny tokeny v textu mus+� m+�t definici v blanks a v+�echny definice mus+� b+�t pou+�ity v textu`,path:[`blanks`]}),Pe=F.extend({type:e.z.literal(`match-pairs`),question:h,prompts:e.z.array(m).min(2,`Mus+� b+�t alespo+� 2 p+�ry k p+�i+�azen+�`),matches:e.z.array(m).min(2,`Mus+� b+�t alespo+� 2 p+�ry k p+�i+�azen+�`)}).refine(e=>e.prompts.length===e.matches.length,{message:`Po��et ot+�zek (prompts) mus+� b+�t stejn+� jako po��et odpov��d+� (matches)`,path:[`matches`]}),Fe=F.extend({type:e.z.literal(`match-complex`),question:h,leftItems:e.z.array(m).min(1,`Mus+� b+�t alespo+� 1 polo+�ka vlevo`),rightItems:e.z.array(m).min(1,`Mus+� b+�t alespo+� 1 polo+�ka vpravo`),connections:e.z.array(e.z.tuple([e.z.number().int().nonnegative(),e.z.number().int().nonnegative()])).min(1,`Mus+� b+�t alespo+� 1 propojen+�`),minCorrect:e.z.number().int().positive().optional()}).refine(e=>e.connections.every(([t,n])=>t<e.leftItems.length&&n<e.rightItems.length),{message:`N��kter+� propojen+� odkazuje na neexistuj+�c+� polo+�ku`,path:[`connections`]}).refine(e=>new Set(e.connections.map(e=>`${e[0]}-${e[1]}`)).size===e.connections.length,{message:`Propojen+� obsahuj+� duplicity`,path:[`connections`]}).refine(e=>e.minCorrect?e.minCorrect<=e.connections.length:!0,{message:`Minim+�ln+� po��et spr+�vn+�ch odpov��d+� nesm+� p+�es+�hnout celkov+� po��et propojen+�`,path:[`minCorrect`]}),Ie=F.extend({type:e.z.literal(`sort-items`),question:m.max(1e4,`Ot+�zka nesm+� b+�t del+�+� ne+� 10000 znak+�`),items:e.z.array(m).min(2,`Mus+� b+�t alespo+� 2 polo+�ky k se+�azen+�`)}),Le=F.extend({type:e.z.literal(`slider`),question:m.max(1e4,`Ot+�zka nesm+� b+�t del+�+� ne+� 10000 znak+�`),min:e.z.number(),max:e.z.number(),step:e.z.number().positive(`Krok mus+� b+�t kladn+� ��+�slo`),correctAnswer:e.z.number(),tolerance:e.z.number().nonnegative(`Tolerance mus+� b+�t nez+�porn+�`),unit:e.z.string().optional()}).refine(e=>e.min<e.max,{message:`Minim+�ln+� hodnota mus+� b+�t men+�+� ne+� maxim+�ln+� hodnota`,path:[`max`]}).refine(e=>e.correctAnswer>=e.min&&e.correctAnswer<=e.max,{message:`Spr+�vn+� odpov���� mus+� b+�t v rozmez+� min-max`,path:[`correctAnswer`]}).refine(e=>{let t=(e.correctAnswer-e.min)/e.step;return Math.abs(t-Math.round(t))<1e-4},{message:`Spr+�vn+� odpov���� mus+� b+�t dosa+�iteln+� pomoc+� definovan+�ho kroku`,path:[`correctAnswer`]}).refine(e=>e.tolerance<=(e.max-e.min)/2,{message:`Tolerance nesm+� b+�t v��t+�+� ne+� polovina rozsahu hodnot`,path:[`tolerance`]}),Re=F.extend({type:e.z.literal(`pin-on-image`),question:m.max(1e4,`Ot+�zka nesm+� b+�t del+�+� ne+� 10000 znak+�`),targetAsset:f,hotspots:e.z.array(V).min(1,`Mus+� b+�t alespo+� 1 hotspot`),multipleCorrect:e.z.boolean().optional(),minCorrect:e.z.number().int().positive().optional()}).refine(e=>e.minCorrect?e.minCorrect<=e.hotspots.length:!0,{message:`Minim+�ln+� po��et spr+�vn+�ch odpov��d+� nesm+� p+�es+�hnout po��et hotspot+�`,path:[`minCorrect`]}),ze=F.extend({type:e.z.literal(`categorize`),question:m.max(1e4,`Ot+�zka nesm+� b+�t del+�+� ne+� 10000 znak+�`),categories:e.z.array(p).min(2,`Mus+� b+�t alespo+� 2 kategorie`),items:e.z.array(be).min(1,`Mus+� b+�t alespo+� 1 polo+�ka ke kategorizaci`)}).refine(e=>e.items.every(t=>t.correctCategoryIndex<e.categories.length),{message:`N��kter+� polo+�ka odkazuje na neexistuj+�c+� kategorii`,path:[`items`]}),Be=F.extend({type:e.z.literal(`timeline`),question:m.max(1e4,`Ot+�zka nesm+� b+�t del+�+� ne+� 10000 znak+�`),events:e.z.array(Se).min(2,`Mus+� b+�t alespo+� 2 ud+�losti`),randomize:e.z.boolean().optional()}),Ve=F.extend({type:e.z.literal(`matrix`),question:m.max(1e4,`Ot+�zka nesm+� b+�t del+�+� ne+� 10000 znak+�`),rows:e.z.array(p).min(1,`Mus+� b+�t alespo+� 1 +�+�dek`),columns:e.z.array(p).min(1,`Mus+� b+�t alespo+� 1 sloupec`),correctCells:e.z.array(e.z.tuple([e.z.number().int().nonnegative(),e.z.number().int().nonnegative()])).min(1,`Mus+� b+�t alespo+� 1 spr+�vn+� bu+�ka`),multiplePerRow:e.z.boolean().optional()}).refine(e=>e.correctCells.every(([t,n])=>t<e.rows.length&&n<e.columns.length),{message:`N��kter+� sou+�adnice bu+�ky odkazuj+� na neexistuj+�c+� +�+�dek nebo sloupec`,path:[`correctCells`]}).refine(e=>new Set(e.correctCells.map(e=>`${e[0]}-${e[1]}`)).size===e.correctCells.length,{message:`Spr+�vn+� bu+�ky obsahuj+� duplicity`,path:[`correctCells`]}).refine(e=>{if(!e.multiplePerRow){let t=new Map;for(let[n]of e.correctCells)t.set(n,(t.get(n)||0)+1);return Array.from(t.values()).every(e=>e<=1)}return!0},{message:`Pokud multiplePerRow je false, ka+�d+� +�+�dek sm+� m+�t maxim+�ln�� 1 spr+�vnou bu+�ku`,path:[`correctCells`]}),He=F.extend({type:e.z.literal(`math-input`),question:m.max(1e4,`Ot+�zka nesm+� b+�t del+�+� ne+� 10000 znak+�`),correctAnswer:p,alternativeAnswers:e.z.array(p).optional(),tolerance:e.z.number().nonnegative().optional()}),Ue=F.extend({type:e.z.literal(`diagram-label`),question:m.max(1e4,`Ot+�zka nesm+� b+�t del+�+� ne+� 10000 znak+�`),targetAsset:f,labels:e.z.array(m).min(1,`Mus+� b+�t alespo+� 1 +�t+�tek`),caseSensitive:e.z.boolean().optional(),requireTyping:e.z.boolean().optional(),zones:e.z.array(Ce).min(1,`Mus+� b+�t alespo+� 1 z+-na`)}).refine(e=>e.zones.every(t=>t.correctLabelIndex<e.labels.length),{message:`N��kter+� z+-na odkazuje na neexistuj+�c+� +�t+�tek`,path:[`zones`]}),We=F.extend({type:e.z.literal(`open-ended`),question:m.max(1e4,`Ot+�zka nesm+� b+�t del+�+� ne+� 10000 znak+�`),minWords:e.z.number().int().positive().optional(),maxWords:e.z.number().int().positive().optional(),sampleAnswer:m.optional(),rubric:Te.optional()}).refine(e=>e.minWords&&e.maxWords?e.minWords<=e.maxWords:!0,{message:`Minim+�ln+� po��et slov mus+� b+�t men+�+� nebo roven maxim+�ln+�mu po��tu`,path:[`maxWords`]}),Ge=F.extend({type:e.z.literal(`numeric-input`),question:m.max(1e4,`Ot+�zka nesm+� b+�t del+�+� ne+� 10000 znak+�`),value:e.z.number(),tolerance:e.z.number().nonnegative().optional(),range:Ee.optional(),unit:e.z.string().optional()}),Ke=F.extend({type:e.z.literal(`pin-on-model`),question:m.max(1e4,`Ot+�zka nesm+� b+�t del+�+� ne+� 10000 znak+�`),targetAsset:f,hotspots:e.z.array(B).min(1,`Mus+� b+�t alespo+� 1 hotspot`),multipleCorrect:e.z.boolean().optional(),minCorrect:e.z.number().int().positive().optional(),camera:U.optional()}).refine(e=>e.minCorrect?e.minCorrect<=e.hotspots.length:!0,{message:`Minim+�ln+� po��et spr+�vn+�ch odpov��d+� nesm+� p+�es+�hnout po��et hotspot+�`,path:[`minCorrect`]}),qe=F.extend({type:e.z.literal(`chess-puzzle`),question:m.max(1e4,`Ot+�zka nesm+� b+�t del+�+� ne+� 10000 znak+�`),fen:p,answers:e.z.array(e.z.array(p).min(1,`Sekvence tah+� nesm+� b+�t pr+�zdn+�`)).min(1,`Mus+� b+�t alespo+� 1 spr+�vn+� sekvence tah+�`),elo:e.z.number().int().nonnegative(`ELO mus+� b+�t nez+�porn+� cel+� ��+�slo`).optional()}),G=e.z.discriminatedUnion(`type`,[De,Oe,ke,Ae,je,W,Me,Ne,Pe,Fe,Ie,Le,Re,ze,Be,Ve,He,Ue,We,Ge,Ke,qe]),K=e.z.object({$schema:e.z.string().url().optional(),version:e.z.string().regex(/^\d+\.\d+$/,`Verze musi byt ve formatu "X.Y" (napr. "0.1")`),meta:P,items:e.z.array(G).max(1e4,`Maxim+�ln�� 10000 polo+�ek na sadu`)}).refine(e=>{let t=new Set(e.items.map(e=>e.id));for(let n of e.items){if(n.relatedItems){for(let e of n.relatedItems)if(!t.has(e))return!1}if(n.dependencyItems){for(let e of n.dependencyItems)if(!t.has(e))return!1}}return!0},{message:`N��kter+� polo+�ka odkazuje na neexistuj+�c+� relatedItems nebo dependencyItems`,path:[`items`]}).refine(e=>e.meta.thumbnail&&e.meta.assets?e.meta.thumbnail in e.meta.assets:!0,{message:`Thumbnail odkazuje na neexistuj+�c+� asset`,path:[`meta`,`thumbnail`]}).refine(e=>{let t=new Set((e.meta.sourceMaterials||[]).map(e=>e.id));for(let n of e.items)if(n.sources){for(let e of n.sources)if(!t.has(e.id))return!1}return!0},{message:`N��kter+� polo+�ka odkazuje na neexistuj+�c+� source material`,path:[`items`]});function Je(e){return K.parse(e)}function Ye(e){let t=K.safeParse(e);return t.success?{success:!0,data:t.data}:{success:!1,error:t.error}}function Xe(e){return G.parse(e)}function Ze(e){let t=G.safeParse(e);return t.success?{success:!0,data:t.data}:{success:!1,error:t.error}}function Qe(e){return e.issues.map(e=>{let t=e.path.join(` ��� `);return t?`${t}: ${e.message}`:e.message})}function q(e){return/^\d+\.\d+$/.test(e)}function $e(e){return/^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/.test(e)}function J(e,t){let[n=0,r=0]=e.split(`.`).map(Number),[i=0,a=0]=t.split(`.`).map(Number);return n===i?r-a:n-i}function et(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.version==`string`&&typeof t.id==`string`&&typeof t.appName==`string`&&t.appName!==``&&typeof t.capabilities==`object`&&t.capabilities!==null&&Array.isArray(t.capabilities.actions)}function tt(e,t){return!(!q(e)||t.minOqseVersion&&q(t.minOqseVersion)&&J(e,t.minOqseVersion)<0||t.maxOqseVersion&&q(t.maxOqseVersion)&&J(e,t.maxOqseVersion)>0)}var Y=e.z.string().min(1,`Hodnota nesm+� b+�t pr+�zdn+�`).trim(),nt=e.z.string().url(`Mus+� b+�t platn+� absolutn+� URL`).refine(e=>e.startsWith(`http://`)||e.startsWith(`https://`),{message:`URL mus+� pou+�+�vat sch+�ma http nebo https`}),X=e.z.string().regex(/^\d+\.\d+$/,`Verze mus+� b+�t ve form+�tu MAJOR.MINOR (nap+�. "0.1")`),rt=e.z.string().regex(/^\d+\.\d+\.\d+$/,`Verze mus+� b+�t ve form+�tu MAJOR.MINOR.PATCH (nap+�. "1.2.3")`),it=[`render`,`edit`,`validate`,`import`,`export`],at=e.z.string().refine(e=>it.includes(e)||e.startsWith(`x-`),{message:`Akce mus+� b+�t jedna z [render, edit, validate, import, export] nebo m+�t prefix "x-"`}),ot=e.z.enum([`game`,`fun`,`drill`]),st=e.z.enum([`low`,`medium`,`high`]),ct=[`math`,`media`,`media-image`,`media-audio`,`media-video`,`media-model`,`hotspots`,`hotspots-3d`,`complex-pairing`,`open-text`,`chess`],lt=e.z.string().refine(e=>ct.includes(e)||e.startsWith(`x-`),{message:`Funkce mus+� b+�t jedna z ofici+�ln+�ch kl+���+� nebo m+�t prefix "x-"`}),ut=e.z.string().min(1,`Kl+��� vlastnosti polo+�ky nesm+� b+�t pr+�zdn+�`),dt=e.z.string().min(1,`Kl+��� vlastnosti metadat nesm+� b+�t pr+�zdn+�`);function Z(t){return e.z.union([e.z.tuple([e.z.literal(`*`)]),e.z.array(t),e.z.null()])}var ft=e.z.string().refine(e=>e.startsWith(`image/`),{message:`Mus+� b+�t platn+� MIME typ obr+�zku (image/...)`}),pt=e.z.string().refine(e=>e.startsWith(`audio/`),{message:`Mus+� b+�t platn+� MIME typ zvuku (audio/...)`}),mt=e.z.string().refine(e=>e.startsWith(`video/`),{message:`Mus+� b+�t platn+� MIME typ videa (video/...)`}),ht=e.z.string().refine(e=>e.startsWith(`model/`)||e===`application/octet-stream`,{message:`Mus+� b+�t platn+� MIME typ 3D modelu (model/... nebo application/octet-stream)`}),gt=e.z.object({image:Z(ft).optional(),audio:Z(pt).optional(),video:Z(mt).optional(),model:Z(ht).optional()}),_t=w.extend({actions:e.z.array(at).min(1,`Aplikace mus+� podporovat alespo+� jednu akci`),types:Z(Y).optional(),assets:gt.optional()}),Q=e.z.object({$schema:nt.optional(),id:Y.regex(/^[a-z0-9-]+(\.[a-z0-9-]+)*$/,`ID mus+� b+�t ve tvaru reverse-domain (nap+�. "com.acme.app")`),appName:Y.max(100,`N+�zev nesm+� b+�t del+�+� ne+� 100 znak+�`),version:X,pluginVersion:rt.optional(),minOqseVersion:X.optional(),maxOqseVersion:X.optional(),capabilities:_t,author:e.z.string().max(100,`N+�zev autora nesm+� b+�t del+�+� ne+� 100 znak+�`).optional(),authorUrl:nt.optional(),locales:e.z.array(Y).optional(),description:e.z.string().max(500,`Popis nesm+� b+�t del+�+� ne+� 500 znak+�`).optional(),emoji:e.z.string().optional(),tags:e.z.array(Y).optional(),studyMode:ot.optional(),questionDensity:st.optional(),appSpecific:e.z.record(e.z.string(),e.z.unknown()).optional()}).refine(e=>{if(!e.minOqseVersion||!e.maxOqseVersion)return!0;let t=e.minOqseVersion.split(`.`),n=e.maxOqseVersion.split(`.`),r=Number(t[0]),i=Number(t[1]),a=Number(n[0]),ee=Number(n[1]);return r===a?i<=ee:r<a},{message:`minOqseVersion nesm+� b+�t vy+�+�+� ne+� maxOqseVersion`,path:[`minOqseVersion`]});function vt(e){return Q.parse(e)}function yt(e){return Q.safeParse(e)}function bt(e){return e.issues.map(e=>{let t=e.path.map(e=>String(e)).join(`.`);return t?`${t}: ${e.message}`:e.message}).join(`
2
+ `)}function xt(e){return Q.safeParse(e).success}var St=e.z.object({attempts:e.z.number().int().nonnegative(),incorrect:e.z.number().int().nonnegative(),streak:e.z.number().int().nonnegative()}).refine(e=>e.incorrect<=e.attempts,{message:`incorrect nesmí být vyšší než attempts`,path:[`incorrect`]}),Ct=e.z.object({isCorrect:e.z.boolean(),confidence:e.z.union([e.z.literal(1),e.z.literal(2),e.z.literal(3),e.z.literal(4)]).optional(),answeredAt:u,timeSpent:e.z.number().int().nonnegative().optional(),hintsUsed:e.z.number().int().nonnegative().optional(),isSkipped:e.z.boolean().optional()}).refine(e=>!e.isSkipped||e.isCorrect===!1,{message:`Pokud je isSkipped=true, isCorrect má být false`,path:[`isCorrect`]}),wt=e.z.object({bucket:e.z.union([e.z.literal(0),e.z.literal(1),e.z.literal(2),e.z.literal(3),e.z.literal(4)]),nextReviewAt:u.optional(),stats:St,lastAnswer:Ct.optional(),appSpecific:e.z.record(e.z.string(),e.z.unknown()).optional()}),Tt=e.z.object({setId:s,exportedAt:u,algorithm:e.z.string().regex(/^[a-z0-9-]+$/,`algorithm musí mít formát lowercase alphanumeric s pomlčkami`).optional()}),$=e.z.object({$schema:e.z.string().url().optional(),version:e.z.string().regex(/^\d+\.\d+$/,`Verze musí být ve formátu MAJOR.MINOR`),meta:Tt,records:e.z.record(s,wt)});function Et(e){return $.parse(e)}function Dt(e){return $.safeParse(e)}function Ot(e){return s.safeParse(e).success}function kt(){return crypto.randomUUID()}exports.AbsoluteURLSchema=d,exports.AssetDictionarySchema=_,exports.AssetKeySchema=f,exports.AudioMimeTypeSchema=pt,exports.BaseItemSchema=F,exports.BloomLevelSchema=k,exports.CameraSetupSchema=U,exports.CategorizeItemSchema=be,exports.CategorizeItemTypeSchema=ze,exports.ChessPuzzleItemSchema=qe,exports.CircleHotspotSchema=R,exports.CognitiveLoadSchema=A,exports.DiagramLabelItemSchema=Ue,exports.DiagramZoneSchema=Ce,exports.FeatureFlagSchema=lt,exports.FeatureProfileSchema=w,exports.FeatureRequirementSchema=E,exports.FeatureTypeSchema=T,exports.FillInBlanksItemSchema=Me,exports.FillInSelectItemSchema=Ne,exports.FlashcardItemSchema=Oe,exports.HotspotObjectSchema=V,exports.ISO8601DateTimeSchema=u,exports.ImageMimeTypeSchema=ft,exports.ItemPropertyKeySchema=ut,exports.LanguageCodeSchema=c,exports.LastAnswerObjectSchema=Ct,exports.LinkedSetObjectSchema=O,exports.MCQMultiItemSchema=je,exports.MCQSingleItemSchema=Ae,exports.ManifestAssetsSchema=gt,exports.ManifestCapabilitiesSchema=_t,exports.MatchComplexItemSchema=Fe,exports.MatchPairsItemSchema=Pe,exports.MathInputItemSchema=He,exports.MathRendererSchema=M,exports.MathSettingsSchema=N,exports.MatrixItemSchema=Ve,exports.MediaObjectSchema=ve,exports.MeshHotspotSchema=B,exports.MetaPropertyKeySchema=dt,exports.ModelMimeTypeSchema=ht,exports.NoteItemSchema=De,exports.NumericInputItemSchema=Ge,exports.NumericRangeSchema=Ee,exports.OQSEActionSchema=at,exports.OQSEFileSchema=K,exports.OQSEItemSchema=G,exports.OQSEManifestSchema=Q,exports.OQSEMetaSchema=P,exports.OQSEPFileSchema=$,exports.OQSEQuestionDensitySchema=st,exports.OQSEStudyModeSchema=ot,exports.OfficialFeatureNameSchema=ye,exports.OpenEndedItemSchema=We,exports.OptionalRichContentSchema=h,exports.PedagogySchema=j,exports.PersonObjectSchema=v,exports.PinOnImageItemSchema=Re,exports.PinOnModelItemSchema=Ke,exports.PlainTextSchema=p,exports.PolygonHotspotSchema=z,exports.ProgressMetaSchema=Tt,exports.ProgressRecordSchema=wt,exports.RectHotspotSchema=L,exports.RichContentSchema=m,exports.RubricCriterionSchema=we,exports.RubricSchema=Te,exports.SPDXLicenseSchema=l,exports.SelectBlankObjectSchema=I,exports.ShortAnswerItemSchema=W,exports.SliderItemSchema=Le,exports.SortItemsItemSchema=Ie,exports.SourceMaterialSchema=b,exports.SourceMaterialTypeSchema=y,exports.SourceReferenceSchema=x,exports.StatsObjectSchema=St,exports.SubtitleTrackSchema=g,exports.TagDefinitionDictionarySchema=C,exports.TagDefinitionSchema=S,exports.TimelineEventSchema=Se,exports.TimelineItemSchema=Be,exports.TimelinePrecisionSchema=xe,exports.TranslationObjectSchema=D,exports.TrueFalseItemSchema=ke,exports.UUIDSchema=s,exports.Vector3Schema=H,exports.VideoMimeTypeSchema=mt,exports.compareManifestVersions=J,exports.formatManifestErrors=bt,exports.formatValidationErrors=Qe,exports.generateUUID=kt,exports.isCategorize=ce,exports.isChessPuzzle=ge,exports.isCoreItem=o,exports.isDiagramLabel=fe,exports.isExtendedItem=_e,exports.isFillInBlanks=te,exports.isFillInSelect=ne,exports.isFlashcard=n,exports.isMCQMulti=a,exports.isMCQSingle=i,exports.isMatchComplex=ie,exports.isMatchPairs=re,exports.isMathInput=de,exports.isMatrix=ue,exports.isNote=t,exports.isNumericInput=me,exports.isOQSEManifest=et,exports.isOpenEnded=pe,exports.isPinOnImage=se,exports.isPinOnModel=he,exports.isShortAnswer=ee,exports.isSlider=oe,exports.isSortItems=ae,exports.isTimeline=le,exports.isTrueFalse=r,exports.isValidManifestVersion=q,exports.isValidOQSEManifest=xt,exports.isValidSemVer=$e,exports.isValidUUID=Ot,exports.isVersionCompatible=tt,exports.safeValidateManifest=yt,exports.safeValidateOQSEFile=Ye,exports.safeValidateOQSEItem=Ze,exports.safeValidateOQSEPFile=Dt,exports.validateManifest=vt,exports.validateOQSEFile=Je,exports.validateOQSEItem=Xe,exports.validateOQSEPFile=Et;
@@ -0,0 +1 @@
1
+ export {}