@memizy/oqse 0.1.0 → 0.1.1

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 CHANGED
@@ -1,2 +1,2 @@
1
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;
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)}var Ot=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function kt(e){return Ot.test(e)}function At(){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=At,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=kt,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;
package/dist/index.d.ts CHANGED
@@ -1 +1,7 @@
1
- export {}
1
+ export * from './src/oqse';
2
+ export * from './src/oqseValidation';
3
+ export * from './src/manifest';
4
+ export * from './src/manifestValidation';
5
+ export * from './src/progress';
6
+ export * from './src/progressValidation';
7
+ export * from './src/utils';
package/dist/index.js CHANGED
@@ -835,11 +835,12 @@ function Dt(e) {
835
835
  }
836
836
  //#endregion
837
837
  //#region src/utils.ts
838
- function Ot(e) {
839
- return s.safeParse(e).success;
838
+ var Ot = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
839
+ function kt(e) {
840
+ return Ot.test(e);
840
841
  }
841
- function kt() {
842
+ function At() {
842
843
  return crypto.randomUUID();
843
844
  }
844
845
  //#endregion
845
- export { d as AbsoluteURLSchema, _ as AssetDictionarySchema, f as AssetKeySchema, pt as AudioMimeTypeSchema, F as BaseItemSchema, k as BloomLevelSchema, U as CameraSetupSchema, be as CategorizeItemSchema, ze as CategorizeItemTypeSchema, qe as ChessPuzzleItemSchema, R as CircleHotspotSchema, A as CognitiveLoadSchema, Ue as DiagramLabelItemSchema, Ce as DiagramZoneSchema, lt as FeatureFlagSchema, w as FeatureProfileSchema, E as FeatureRequirementSchema, T as FeatureTypeSchema, Me as FillInBlanksItemSchema, Ne as FillInSelectItemSchema, Oe as FlashcardItemSchema, V as HotspotObjectSchema, u as ISO8601DateTimeSchema, ft as ImageMimeTypeSchema, ut as ItemPropertyKeySchema, c as LanguageCodeSchema, Ct as LastAnswerObjectSchema, O as LinkedSetObjectSchema, je as MCQMultiItemSchema, Ae as MCQSingleItemSchema, gt as ManifestAssetsSchema, _t as ManifestCapabilitiesSchema, Fe as MatchComplexItemSchema, Pe as MatchPairsItemSchema, He as MathInputItemSchema, M as MathRendererSchema, N as MathSettingsSchema, Ve as MatrixItemSchema, ve as MediaObjectSchema, B as MeshHotspotSchema, dt as MetaPropertyKeySchema, ht as ModelMimeTypeSchema, De as NoteItemSchema, Ge as NumericInputItemSchema, Ee as NumericRangeSchema, at as OQSEActionSchema, K as OQSEFileSchema, G as OQSEItemSchema, Q as OQSEManifestSchema, P as OQSEMetaSchema, $ as OQSEPFileSchema, st as OQSEQuestionDensitySchema, ot as OQSEStudyModeSchema, ye as OfficialFeatureNameSchema, We as OpenEndedItemSchema, h as OptionalRichContentSchema, j as PedagogySchema, v as PersonObjectSchema, Re as PinOnImageItemSchema, Ke as PinOnModelItemSchema, p as PlainTextSchema, z as PolygonHotspotSchema, Tt as ProgressMetaSchema, wt as ProgressRecordSchema, L as RectHotspotSchema, m as RichContentSchema, we as RubricCriterionSchema, Te as RubricSchema, l as SPDXLicenseSchema, I as SelectBlankObjectSchema, W as ShortAnswerItemSchema, Le as SliderItemSchema, Ie as SortItemsItemSchema, b as SourceMaterialSchema, y as SourceMaterialTypeSchema, x as SourceReferenceSchema, St as StatsObjectSchema, g as SubtitleTrackSchema, C as TagDefinitionDictionarySchema, S as TagDefinitionSchema, Se as TimelineEventSchema, Be as TimelineItemSchema, xe as TimelinePrecisionSchema, D as TranslationObjectSchema, ke as TrueFalseItemSchema, s as UUIDSchema, H as Vector3Schema, mt as VideoMimeTypeSchema, J as compareManifestVersions, bt as formatManifestErrors, Qe as formatValidationErrors, kt as generateUUID, ce as isCategorize, ge as isChessPuzzle, o as isCoreItem, fe as isDiagramLabel, _e as isExtendedItem, te as isFillInBlanks, ne as isFillInSelect, n as isFlashcard, a as isMCQMulti, i as isMCQSingle, ie as isMatchComplex, re as isMatchPairs, de as isMathInput, ue as isMatrix, t as isNote, me as isNumericInput, et as isOQSEManifest, pe as isOpenEnded, se as isPinOnImage, he as isPinOnModel, ee as isShortAnswer, oe as isSlider, ae as isSortItems, le as isTimeline, r as isTrueFalse, q as isValidManifestVersion, xt as isValidOQSEManifest, $e as isValidSemVer, Ot as isValidUUID, tt as isVersionCompatible, yt as safeValidateManifest, Ye as safeValidateOQSEFile, Ze as safeValidateOQSEItem, Dt as safeValidateOQSEPFile, vt as validateManifest, Je as validateOQSEFile, Xe as validateOQSEItem, Et as validateOQSEPFile };
846
+ export { d as AbsoluteURLSchema, _ as AssetDictionarySchema, f as AssetKeySchema, pt as AudioMimeTypeSchema, F as BaseItemSchema, k as BloomLevelSchema, U as CameraSetupSchema, be as CategorizeItemSchema, ze as CategorizeItemTypeSchema, qe as ChessPuzzleItemSchema, R as CircleHotspotSchema, A as CognitiveLoadSchema, Ue as DiagramLabelItemSchema, Ce as DiagramZoneSchema, lt as FeatureFlagSchema, w as FeatureProfileSchema, E as FeatureRequirementSchema, T as FeatureTypeSchema, Me as FillInBlanksItemSchema, Ne as FillInSelectItemSchema, Oe as FlashcardItemSchema, V as HotspotObjectSchema, u as ISO8601DateTimeSchema, ft as ImageMimeTypeSchema, ut as ItemPropertyKeySchema, c as LanguageCodeSchema, Ct as LastAnswerObjectSchema, O as LinkedSetObjectSchema, je as MCQMultiItemSchema, Ae as MCQSingleItemSchema, gt as ManifestAssetsSchema, _t as ManifestCapabilitiesSchema, Fe as MatchComplexItemSchema, Pe as MatchPairsItemSchema, He as MathInputItemSchema, M as MathRendererSchema, N as MathSettingsSchema, Ve as MatrixItemSchema, ve as MediaObjectSchema, B as MeshHotspotSchema, dt as MetaPropertyKeySchema, ht as ModelMimeTypeSchema, De as NoteItemSchema, Ge as NumericInputItemSchema, Ee as NumericRangeSchema, at as OQSEActionSchema, K as OQSEFileSchema, G as OQSEItemSchema, Q as OQSEManifestSchema, P as OQSEMetaSchema, $ as OQSEPFileSchema, st as OQSEQuestionDensitySchema, ot as OQSEStudyModeSchema, ye as OfficialFeatureNameSchema, We as OpenEndedItemSchema, h as OptionalRichContentSchema, j as PedagogySchema, v as PersonObjectSchema, Re as PinOnImageItemSchema, Ke as PinOnModelItemSchema, p as PlainTextSchema, z as PolygonHotspotSchema, Tt as ProgressMetaSchema, wt as ProgressRecordSchema, L as RectHotspotSchema, m as RichContentSchema, we as RubricCriterionSchema, Te as RubricSchema, l as SPDXLicenseSchema, I as SelectBlankObjectSchema, W as ShortAnswerItemSchema, Le as SliderItemSchema, Ie as SortItemsItemSchema, b as SourceMaterialSchema, y as SourceMaterialTypeSchema, x as SourceReferenceSchema, St as StatsObjectSchema, g as SubtitleTrackSchema, C as TagDefinitionDictionarySchema, S as TagDefinitionSchema, Se as TimelineEventSchema, Be as TimelineItemSchema, xe as TimelinePrecisionSchema, D as TranslationObjectSchema, ke as TrueFalseItemSchema, s as UUIDSchema, H as Vector3Schema, mt as VideoMimeTypeSchema, J as compareManifestVersions, bt as formatManifestErrors, Qe as formatValidationErrors, At as generateUUID, ce as isCategorize, ge as isChessPuzzle, o as isCoreItem, fe as isDiagramLabel, _e as isExtendedItem, te as isFillInBlanks, ne as isFillInSelect, n as isFlashcard, a as isMCQMulti, i as isMCQSingle, ie as isMatchComplex, re as isMatchPairs, de as isMathInput, ue as isMatrix, t as isNote, me as isNumericInput, et as isOQSEManifest, pe as isOpenEnded, se as isPinOnImage, he as isPinOnModel, ee as isShortAnswer, oe as isSlider, ae as isSortItems, le as isTimeline, r as isTrueFalse, q as isValidManifestVersion, xt as isValidOQSEManifest, $e as isValidSemVer, kt as isValidUUID, tt as isVersionCompatible, yt as safeValidateManifest, Ye as safeValidateOQSEFile, Ze as safeValidateOQSEItem, Dt as safeValidateOQSEPFile, vt as validateManifest, Je as validateOQSEFile, Xe as validateOQSEItem, Et as validateOQSEPFile };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memizy/oqse",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "TypeScript SDK and Zod validators for the OQSE specification.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -17,12 +17,13 @@
17
17
  "dist",
18
18
  "schemas",
19
19
  "README.md",
20
- "SPECIFICATION.md"
20
+ "SPECIFICATION.md",
21
+ "LICENSE"
21
22
  ],
22
23
  "scripts": {
23
24
  "dev": "vite build --watch",
24
25
  "generate:schemas": "tsx scripts/generate-schemas.ts",
25
- "build": "npm run generate:schemas && tsc && vite build",
26
+ "build": "npm run generate:schemas && tsc && vite build && tsx scripts/fix-types-entry.ts",
26
27
  "test": "vitest run",
27
28
  "test:watch": "vitest",
28
29
  "prepublishOnly": "npm run build"