@pie-qti/element-schemas 0.1.9 → 0.1.11
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.d.ts +0 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/index.d.ts.map +0 -1
package/dist/index.d.ts
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB;IACpB,OAAO;IACP,+BAA+B;IAC/B,aAAa;IACb,iBAAiB;IACjB,mBAAmB;IACnB,MAAM;IACN,SAAS;IACT,yBAAyB;IACzB,YAAY;IACZ,SAAS;CACD,CAAC;AAIX;;GAEG;AACH,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,WAAwB;IACvD,oBAAoB;IACpB,IAAI,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,OAAO,WAAW,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC;IACvC,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,WAAW,WAAW,OAAO,CAAC,CAAC;IAErE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,6BAA6B,WAAW,KAAM,KAAe,CAAC,OAAO,EAAE,CACxE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1C,KAAK,MAAM,WAAW,IAAI,iBAAiB,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,gBAAgB,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,WAAwB;IAChD,OAAO,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,WAAmB;IAC3C,OAAO,iBAAiB,CAAC,QAAQ,CAAC,WAA0B,CAAC,CAAC;AAChE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB;IACpB,OAAO;IACP,+BAA+B;IAC/B,aAAa;IACb,iBAAiB;IACjB,mBAAmB;IACnB,MAAM;IACN,SAAS;IACT,yBAAyB;IACzB,YAAY;IACZ,SAAS;CACD,CAAC;AAIX;;GAEG;AACH,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,WAAwB;IACvD,oBAAoB;IACpB,IAAI,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,OAAO,WAAW,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC;IACvC,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,WAAW,WAAW,OAAO,CAAC,CAAC;IAErE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,6BAA6B,WAAW,KAAM,KAAe,CAAC,OAAO,EAAE,CACxE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1C,KAAK,MAAM,WAAW,IAAI,iBAAiB,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,gBAAgB,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,WAAwB;IAChD,OAAO,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,WAAmB;IAC3C,OAAO,iBAAiB,CAAC,QAAQ,CAAC,WAA0B,CAAC,CAAC;AAChE,CAAC","sourcesContent":["/**\n * @pie-qti/element-schemas\n *\n * PIE element JSON schemas for validation\n */\n\nimport { readFile } from 'node:fs/promises';\nimport { dirname, resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\n/**\n * Available PIE element schemas\n */\nexport const AVAILABLE_SCHEMAS = [\n 'multiple-choice',\n 'extended-text-entry',\n 'placement-ordering',\n 'match',\n 'explicit-constructed-response',\n 'select-text',\n 'inline-dropdown',\n 'drag-in-the-blank',\n 'ebsr',\n 'hotspot',\n 'image-cloze-association',\n 'match-list',\n 'passage',\n] as const;\n\nexport type ElementType = typeof AVAILABLE_SCHEMAS[number];\n\n/**\n * Schema cache\n */\nconst schemaCache = new Map<string, object>();\n\n/**\n * Load a PIE element schema\n * @param elementType - Element type (e.g., 'multiple-choice')\n * @returns JSON schema object\n */\nexport async function loadSchema(elementType: ElementType): Promise<object> {\n // Check cache first\n if (schemaCache.has(elementType)) {\n return schemaCache.get(elementType)!;\n }\n\n const schemaPath = resolve(__dirname, `schemas/${elementType}.json`);\n\n try {\n const content = await readFile(schemaPath, 'utf-8');\n const schema = JSON.parse(content);\n schemaCache.set(elementType, schema);\n return schema;\n } catch (error) {\n throw new Error(\n `Failed to load schema for ${elementType}: ${(error as Error).message}`\n );\n }\n}\n\n/**\n * Load all available schemas\n * @returns Map of element type to schema\n */\nexport async function loadAllSchemas(): Promise<Map<string, object>> {\n const schemas = new Map<string, object>();\n\n for (const elementType of AVAILABLE_SCHEMAS) {\n const schema = await loadSchema(elementType);\n schemas.set(`@pie-element/${elementType}`, schema);\n }\n\n return schemas;\n}\n\n/**\n * Get schema synchronously (must be loaded first)\n * @param elementType - Element type\n * @returns Cached schema or undefined\n */\nexport function getSchema(elementType: ElementType): object | undefined {\n return schemaCache.get(elementType);\n}\n\n/**\n * Check if a schema is available\n * @param elementType - Element type to check\n */\nexport function hasSchema(elementType: string): elementType is ElementType {\n return AVAILABLE_SCHEMAS.includes(elementType as ElementType);\n}\n"]}
|
package/package.json
CHANGED
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH;;GAEG;AACH,eAAO,MAAM,iBAAiB,mPAcpB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAO3D;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB1E;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CASnE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAEtE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,IAAI,WAAW,CAEzE"}
|