@vue-skuilder/standalone-ui 0.1.40 → 0.2.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/assets/{TagViewer-Cu4HUTUv.js → TagViewer-D34iA3OS.js} +2 -2
- package/dist/assets/{TagViewer-Cu4HUTUv.js.map → TagViewer-D34iA3OS.js.map} +1 -1
- package/dist/assets/{common-ui.es-Dli7wjjJ.js → common-ui.es-B6UqZKxa.js} +4 -4
- package/dist/assets/{common-ui.es-Dli7wjjJ.js.map → common-ui.es-B6UqZKxa.js.map} +1 -1
- package/dist/assets/common-ui.es-r5-FfEsi.js +1 -0
- package/dist/assets/{dist-BoYWClge.js → dist-B6gIbmvQ.js} +3 -3
- package/dist/assets/{dist-BoYWClge.js.map → dist-B6gIbmvQ.js.map} +1 -1
- package/dist/assets/{index-Di-iurxs.js → index-5H45bc-8.js} +5 -5
- package/dist/assets/{index-Di-iurxs.js.map → index-5H45bc-8.js.map} +1 -1
- package/dist/index.html +3 -3
- package/dist-lib/questions.cjs.js +2 -2
- package/dist-lib/questions.cjs.js.map +1 -1
- package/dist-lib/questions.mjs +9 -4
- package/dist-lib/questions.mjs.map +1 -1
- package/package.json +6 -6
- package/dist/assets/common-ui.es-DnxE_Jon.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./dist-DCANvFNh.js";import{T as e,h as t}from"./MarkdownRenderer-DoVbFpA6-DYVMsbBP.js";import"./dist-B6gIbmvQ.js";import{E as n,T as r}from"./common-ui.es-B6UqZKxa.js";export{e as MarkdownRenderer,t as piniaPlugin,r as useAuthStore,n as useConfigStore};
|
|
@@ -282,7 +282,7 @@ Currently logged-in as ${this._username}.`);let n=await this.syncStrategy.create
|
|
|
282
282
|
tags: ${a.tags.join(`, `)}`),a.elo!==void 0&&(t+=`
|
|
283
283
|
elo: ${a.elo}`),r.push({originalText:t,status:`error`,message:`Error processing card: ${e instanceof Error?e.message:`Unknown error`}`})}return r}async function processCard(e,t,n){let{markdown:r,tags:a,elo:o}=e,s=r;a.length>0&&(s+=`
|
|
284
284
|
tags: ${a.join(`, `)}`),o!==void 0&&(s+=`
|
|
285
|
-
elo: ${o}`);let c={Input:r,Uploads:[]},l={};for(let e of a)l[e]={score:o||0,count:1};try{let e=await t.addNote(n.courseCode,n.dataShape,c,n.userName,a,void 0,o?{global:{score:o,count:1},tags:l,misc:{}}:void 0);return e.status===Status.ok?{originalText:s,status:`success`,message:`Card added successfully.`,cardId:e.id?e.id:`(unknown)`}:{originalText:s,status:`error`,message:e.message||`Failed to add card to database. Unknown error.`}}catch(e){return logger.error(`Error adding note:`,e),{originalText:s,status:`error`,message:`Error adding card: ${e instanceof Error?e.message:`Unknown error`}`}}}function validateProcessorConfig(e){return e.dataShape?e.courseCode?e.userName?{isValid:!0}:{isValid:!1,errorMessage:`No user name provided for card processing`}:{isValid:!1,errorMessage:`No course code provided for card processing`}:{isValid:!1,errorMessage:`No data shape provided for card processing`}}var init_cardProcessor=__esm({"src/core/bulkImport/cardProcessor.ts"(){init_logger()}}),init_types3=__esm({"src/core/bulkImport/types.ts"(){}}),init_bulkImport=__esm({"src/core/bulkImport/index.ts"(){init_cardProcessor(),init_types3()}});function getUserDB(){try{return getDataLayer().getUserDB()}catch{return logger.info(`[UserDB Debug] Data layer not initialized yet.`),null}}function getRawDB(){let e=getUserDB();return e?e.localDB||(logger.info(`[UserDB Debug] Unable to access raw database instance.`),null):null}function formatTimestamp(e){return new Date(e).toLocaleString()}function mountUserDBDebugger(){if(typeof window>`u`)return;let e=window;e.skuilder=e.skuilder||{},e.skuilder.userdb=userDBDebugAPI}var userDBDebugAPI,init_UserDBDebugger=__esm({"src/core/UserDBDebugger.ts"(){init_logger(),init_factory(),init_types_legacy(),init_userDBHelpers(),userDBDebugAPI={showUser(){let e=getUserDB();e&&(console.group(`👤 User Information`),logger.info(`Username: ${e.getUsername()}`),logger.info(`Logged in: ${e.isLoggedIn()?`Yes ✅`:`No (Guest) ❌`}`),e.getConfig().then(e=>{logger.info(`Configuration:`),logger.info(JSON.stringify(e,null,2))}).catch(e=>{logger.info(`Error loading config: ${e.message}`)}).finally(()=>{console.groupEnd()}))},async showScheduledReviews(e){let t=getUserDB();if(t)try{let n=await t.getPendingReviews(e);if(console.group(`\u{1F4C5} Scheduled Reviews${e?` (${e})`:``}`),logger.info(`Total: ${n.length}`),n.length>0){let e=new Map;for(let t of n)e.has(t.courseId)||e.set(t.courseId,[]),e.get(t.courseId).push(t);for(let[t,n]of e){console.group(`Course: ${t} (${n.length} reviews)`);let e=n.sort((e,t)=>{let n=typeof e.reviewTime==`string`?e.reviewTime:e.reviewTime.toISOString(),r=typeof t.reviewTime==`string`?t.reviewTime:t.reviewTime.toISOString();return new Date(n).getTime()-new Date(r).getTime()});for(let t of e.slice(0,10)){let e=typeof t.reviewTime==`string`?t.reviewTime:t.reviewTime.toISOString();logger.info(` ${t.cardId.slice(0,12)}... @ ${formatTimestamp(e)} [${t.scheduledFor}/${t.schedulingAgentId}]`)}e.length>10&&logger.info(` ... and ${e.length-10} more`),console.groupEnd()}}console.groupEnd()}catch(e){logger.info(`Error loading scheduled reviews: ${e.message}`)}},async showCourseRegistrations(){let e=getUserDB();if(e)try{let t=await e.getActiveCourses();console.group(`📚 Course Registrations`),logger.info(`Total: ${t.length}`),t.length>0&&console.table(t.map(e=>({courseId:e.courseID,status:e.status||`active`,elo:typeof e.elo==`number`?e.elo.toFixed(0):e.elo?.global?.score?.toFixed(0)||`N/A`}))),console.groupEnd()}catch(e){logger.info(`Error loading course registrations: ${e.message}`)}},async showCardHistory(e){let t=getRawDB();if(t)try{let n=(await filterAllDocsByPrefix(t,DocTypePrefixes.CARDRECORD)).rows.filter(t=>t.doc&&t.doc.cardID===e).map(e=>e.doc);if(console.group(`\u{1F3B4} Card History: ${e}`),logger.info(`Total interactions: ${n.length}`),n.length>0){let e=n.sort((e,t)=>new Date(t.timestamp).getTime()-new Date(e.timestamp).getTime());console.table(e.slice(0,20).map(e=>({time:formatTimestamp(e.timestamp),outcome:e.outcome||`N/A`,duration:e.duration?`${(e.duration/1e3).toFixed(1)}s`:`N/A`,courseId:e.courseId}))),e.length>20&&logger.info(`... and ${e.length-20} more interactions`)}console.groupEnd()}catch(e){logger.info(`Error loading card history: ${e.message}`)}},async queryByType(e,t=50){let n=getRawDB();if(n)try{let r=DocTypePrefixes[DocType[e]];if(!r){logger.info(`Unknown document type: ${e}`);return}let a=await filterAllDocsByPrefix(n,r);if(console.group(`\u{1F4C4} Documents: ${e}`),logger.info(`Total: ${a.rows.length}`),logger.info(`Prefix: ${r}`),a.rows.length>0){logger.info(`Sample documents:`);let e=a.rows.slice(0,Math.min(t,a.rows.length));for(let t of e)logger.info(`
|
|
285
|
+
elo: ${o}`);let c={Input:r,Uploads:[]},l={};for(let e of a)l[e]={score:o||0,count:1};try{let e=await t.addNote(n.courseCode,n.dataShape,c,n.userName,a,void 0,o?{global:{score:o,count:1},tags:l,misc:{}}:void 0);return e.status===Status.ok?{originalText:s,status:`success`,message:`Card added successfully.`,cardId:e.id?e.id:`(unknown)`}:{originalText:s,status:`error`,message:e.message||`Failed to add card to database. Unknown error.`}}catch(e){return logger.error(`Error adding note:`,e),{originalText:s,status:`error`,message:`Error adding card: ${e instanceof Error?e.message:`Unknown error`}`}}}function validateProcessorConfig(e){return e.dataShape?e.courseCode?e.userName?{isValid:!0}:{isValid:!1,errorMessage:`No user name provided for card processing`}:{isValid:!1,errorMessage:`No course code provided for card processing`}:{isValid:!1,errorMessage:`No data shape provided for card processing`}}var init_cardProcessor=__esm({"src/core/bulkImport/cardProcessor.ts"(){init_logger()}}),init_types3=__esm({"src/core/bulkImport/types.ts"(){}}),init_bulkImport=__esm({"src/core/bulkImport/index.ts"(){init_cardProcessor(),init_types3()}});function getUserDB(){try{return getDataLayer().getUserDB()}catch{return logger.info(`[UserDB Debug] Data layer not initialized yet.`),null}}function getRawDB(){let e=getUserDB();return e?e.localDB||(logger.info(`[UserDB Debug] Unable to access raw database instance.`),null):null}function formatTimestamp(e){return new Date(e).toLocaleString()}function mountUserDBDebugger(){if(typeof window>`u`)return;let e=window;e.skuilder=e.skuilder||{},e.skuilder.userdb=userDBDebugAPI}var userDBDebugAPI,init_UserDBDebugger=__esm({"src/core/UserDBDebugger.ts"(){init_logger(),init_factory(),init_types_legacy(),init_userDBHelpers(),userDBDebugAPI={showUser(){let e=getUserDB();e&&(console.group(`👤 User Information`),logger.info(`Username: ${e.getUsername()}`),logger.info(`Logged in: ${e.isLoggedIn()?`Yes ✅`:`No (Guest) ❌`}`),e.getConfig().then(e=>{logger.info(`Configuration:`),logger.info(JSON.stringify(e,null,2))}).catch(e=>{logger.info(`Error loading config: ${e.message}`)}).finally(()=>{console.groupEnd()}))},async showScheduledReviews(e){let t=getUserDB();if(!t){logger.info(`[UserDB Debug] Data layer not available`);return}logger.info(`[UserDB Debug] Fetching pending reviews${e?` for course: ${e}`:``}...`);try{let n=await t.getPendingReviews(e);if(logger.info(`[UserDB Debug] Got ${n.length} reviews`),console.group(`\u{1F4C5} Scheduled Reviews${e?` (${e})`:``}`),logger.info(`Total: ${n.length}`),n.length>0){let e=new Map;for(let t of n)e.has(t.courseId)||e.set(t.courseId,[]),e.get(t.courseId).push(t);for(let[t,n]of e){console.group(`Course: ${t} (${n.length} reviews)`);let e=n.sort((e,t)=>{let n=typeof e.reviewTime==`string`?e.reviewTime:e.reviewTime.toISOString(),r=typeof t.reviewTime==`string`?t.reviewTime:t.reviewTime.toISOString();return new Date(n).getTime()-new Date(r).getTime()});for(let t of e.slice(0,10)){let e=typeof t.reviewTime==`string`?t.reviewTime:t.reviewTime.toISOString();logger.info(` ${t.cardId.slice(0,12)}... @ ${formatTimestamp(e)} [${t.scheduledFor}/${t.schedulingAgentId}]`)}e.length>10&&logger.info(` ... and ${e.length-10} more`),console.groupEnd()}}console.groupEnd()}catch(e){logger.info(`Error loading scheduled reviews: ${e.message}`)}},async showCourseRegistrations(){let e=getUserDB();if(e)try{let t=await e.getActiveCourses();console.group(`📚 Course Registrations`),logger.info(`Total: ${t.length}`),t.length>0&&console.table(t.map(e=>({courseId:e.courseID,status:e.status||`active`,elo:typeof e.elo==`number`?e.elo.toFixed(0):e.elo?.global?.score?.toFixed(0)||`N/A`}))),console.groupEnd()}catch(e){logger.info(`Error loading course registrations: ${e.message}`)}},async showCardHistory(e){let t=getRawDB();if(t)try{let n=(await filterAllDocsByPrefix(t,DocTypePrefixes.CARDRECORD)).rows.filter(t=>t.doc&&t.doc.cardID===e).map(e=>e.doc);if(console.group(`\u{1F3B4} Card History: ${e}`),logger.info(`Total interactions: ${n.length}`),n.length>0){let e=n.sort((e,t)=>new Date(t.timestamp).getTime()-new Date(e.timestamp).getTime());console.table(e.slice(0,20).map(e=>({time:formatTimestamp(e.timestamp),outcome:e.outcome||`N/A`,duration:e.duration?`${(e.duration/1e3).toFixed(1)}s`:`N/A`,courseId:e.courseId}))),e.length>20&&logger.info(`... and ${e.length-20} more interactions`)}console.groupEnd()}catch(e){logger.info(`Error loading card history: ${e.message}`)}},async queryByType(e,t=50){let n=getRawDB();if(n)try{let r=DocTypePrefixes[DocType[e]];if(!r){logger.info(`Unknown document type: ${e}`);return}let a=await filterAllDocsByPrefix(n,r);if(console.group(`\u{1F4C4} Documents: ${e}`),logger.info(`Total: ${a.rows.length}`),logger.info(`Prefix: ${r}`),a.rows.length>0){logger.info(`Sample documents:`);let e=a.rows.slice(0,Math.min(t,a.rows.length));for(let t of e)logger.info(`
|
|
286
286
|
${t.id}:`),logger.info(JSON.stringify(t.doc,null,2));a.rows.length>t&&logger.info(`
|
|
287
287
|
... and ${a.rows.length-t} more documents`)}console.groupEnd()}catch(e){logger.info(`Error querying documents: ${e.message}`)}},async dbInfo(){let e=getRawDB();if(e)try{let t=await e.info();console.group(`ℹ️ Database Information`),logger.info(`Database name: ${t.db_name}`),logger.info(`Total documents: ${t.doc_count}`),logger.info(`Update sequence: ${t.update_seq}`),`disk_size`in t&&logger.info(`Disk size: ${(t.disk_size||0)/1024/1024} MB`),logger.info(`
|
|
288
288
|
Document counts by type:`);let n=await e.allDocs({include_docs:!1}),r=new Map;for(let e of n.rows){let t=`other`;for(let[n,r]of Object.entries(DocTypePrefixes))if(e.id.startsWith(r)){t=n;break}r.set(t,(r.get(t)||0)+1)}console.table(Array.from(r.entries()).sort((e,t)=>t[1]-e[1]).map(([e,t])=>({type:e,count:t}))),console.groupEnd()}catch(e){logger.info(`Error getting database info: ${e.message}`)}},listDocTypes(){console.group(`📋 Available Document Types`),logger.info(`Use with queryByType(type):`);for(let[e,t]of Object.entries(DocTypePrefixes))logger.info(` ${e.padEnd(30)} \u2192 prefix: "${t}"`);console.groupEnd()},async export(e=!1){let t=getRawDB(),n=getUserDB();if(!t||!n)return`{}`;try{let r={username:n.getUsername(),loggedIn:n.isLoggedIn(),timestamp:new Date().toISOString()};if(e){let e=await t.allDocs({include_docs:!0});r.documents=e.rows.map(e=>({id:e.id,doc:e.doc})),r.totalDocs=e.rows.length}else{let e=await t.allDocs({include_docs:!1});r.totalDocs=e.rows.length;let n=new Map;for(let t of e.rows){let e=`other`;for(let[n,r]of Object.entries(DocTypePrefixes))if(t.id.startsWith(r)){e=n;break}n.set(e,(n.get(e)||0)+1)}r.docCounts=Object.fromEntries(n)}let a=JSON.stringify(r,null,2);return logger.info(`[UserDB Debug] Database info exported. Copy the returned string or use:`),logger.info(` copy(window.skuilder.userdb.export())`),e||logger.info(` For full content export: window.skuilder.userdb.export(true)`),a}catch(e){return logger.info(`Error exporting database: ${e.message}`),`{}`}},async raw(e){let t=getRawDB();if(t)try{let n=await e(t);logger.info(`[UserDB Debug] Query result:`),logger.info(n)}catch(e){logger.info(`[UserDB Debug] Query error: ${e.message}`)}},help(){logger.info(`
|
|
@@ -372,5 +372,5 @@ Example:
|
|
|
372
372
|
`;if(!t)for(let e of d){let t={cardID:e.cardId,courseID:e.courseId,contentSourceType:`course`,contentSourceID:e.courseId,reviewID:e.reviewID,status:`review`};this.reviewQ.add(t,t.cardID),m+=`Review: ${e.courseId}::${e.cardId} (score: ${e.score.toFixed(2)})
|
|
373
373
|
`}let g=p.filter(e=>e.score>=_SessionController.WELL_INDICATED_SCORE).length,_=[];for(let e of p){let t={cardID:e.cardId,courseID:e.courseId,contentSourceType:`course`,contentSourceID:e.courseId,status:`new`};_.push(t),m+=`New: ${e.courseId}::${e.cardId} (score: ${e.score.toFixed(2)})
|
|
374
374
|
`}if(n){let e=this.newQ.mergeToFront(_,e=>e.cardID);m+=`Additive merge: ${e} new cards added to front of newQ
|
|
375
|
-
`}else if(t)this.newQ.replaceAll(_,e=>e.cardID);else for(let e of _)this.newQ.add(e,e.cardID);return this.log(m),g}_getItemsToHydrate(){let e=[],t=2;for(let t=0;t<Math.min(2,this.reviewQ.length);t++)e.push(this.reviewQ.peek(t));for(let t=0;t<Math.min(2,this.newQ.length);t++)e.push(this.newQ.peek(t));for(let t=0;t<Math.min(2,this.failedQ.length);t++)e.push(this.failedQ.peek(t));return e}_selectNextItemToHydrate(){let e=Math.random(),t=.1,n=.75;if(this.reviewQ.length===0&&this.failedQ.length===0&&this.newQ.length===0||this._secondsRemaining<2&&this.failedQ.length===0&&this._minCardsGuarantee<=0)return null;if(this._secondsRemaining<=0&&this._minCardsGuarantee<=0)return this.failedQ.length>0?this.failedQ.peek(0):null;if(this.newQ.dequeueCount<this.sources.length&&this.newQ.length)return this.newQ.peek(0);let r=this.estimateCleanupTime(),a=this.estimateReviewTime();return this._secondsRemaining-(r+a)>20?(t=.5,n=.9):this._secondsRemaining-r>20?(t=.05,n=.9):(t=.01,n=.1),this.failedQ.length===0&&(n=1),this.reviewQ.length===0&&(t=n),e<t&&this.newQ.length?this.newQ.peek(0):e<n&&this.reviewQ.length?this.reviewQ.peek(0):this.failedQ.length?this.failedQ.peek(0):(this.log(`No more cards available for the session!`),null)}async nextCard(e=`dismiss-success`){if(this.dismissCurrentCard(e),this._minCardsGuarantee>0&&(this._minCardsGuarantee--,this.log(`[CardGuarantee] ${this._minCardsGuarantee} guaranteed cards remaining`)),this._replanPromise&&this.newQ.length===0&&this.reviewQ.length===0&&this.failedQ.length===0&&(this.log(`nextCard: queues empty, awaiting in-flight replan before drawing`),await this._replanPromise),this.newQ.length<=
|
|
376
|
-
//# sourceMappingURL=dist-
|
|
375
|
+
`}else if(t)this.newQ.replaceAll(_,e=>e.cardID);else for(let e of _)this.newQ.add(e,e.cardID);return this.log(m),g}_getItemsToHydrate(){let e=[],t=2;for(let t=0;t<Math.min(2,this.reviewQ.length);t++)e.push(this.reviewQ.peek(t));for(let t=0;t<Math.min(2,this.newQ.length);t++)e.push(this.newQ.peek(t));for(let t=0;t<Math.min(2,this.failedQ.length);t++)e.push(this.failedQ.peek(t));return e}_selectNextItemToHydrate(){let e=Math.random(),t=.1,n=.75;if(this.reviewQ.length===0&&this.failedQ.length===0&&this.newQ.length===0||this._secondsRemaining<2&&this.failedQ.length===0&&this._minCardsGuarantee<=0)return null;if(this._secondsRemaining<=0&&this._minCardsGuarantee<=0)return this.failedQ.length>0?this.failedQ.peek(0):null;if(this.newQ.dequeueCount<this.sources.length&&this.newQ.length)return this.newQ.peek(0);let r=this.estimateCleanupTime(),a=this.estimateReviewTime();return this._secondsRemaining-(r+a)>20?(t=.5,n=.9):this._secondsRemaining-r>20?(t=.05,n=.9):(t=.01,n=.1),this.failedQ.length===0&&(n=1),this.reviewQ.length===0&&(t=n),e<t&&this.newQ.length?this.newQ.peek(0):e<n&&this.reviewQ.length?this.reviewQ.peek(0):this.failedQ.length?this.failedQ.peek(0):(this.log(`No more cards available for the session!`),null)}async nextCard(e=`dismiss-success`){if(this.dismissCurrentCard(e),this._minCardsGuarantee>0&&(this._minCardsGuarantee--,this.log(`[CardGuarantee] ${this._minCardsGuarantee} guaranteed cards remaining`)),this._replanPromise&&this.newQ.length===0&&this.reviewQ.length===0&&this.failedQ.length===0&&(this.log(`nextCard: queues empty, awaiting in-flight replan before drawing`),await this._replanPromise),this.newQ.length<=_SessionController.DEPLETION_PREFETCH_THRESHOLD&&this._secondsRemaining>0&&!this._replanPromise){this._suppressQualityReplan=!1;let e=this.reviewQ.length+this.failedQ.length;this.log(`[AutoReplan:depletion] newQ has ${this.newQ.length} card(s) (${e} in other queues) with ${this._secondsRemaining}s remaining. Triggering background replan.`),this.requestReplan()}if(!this._suppressQualityReplan&&this._wellIndicatedRemaining<=3&&this.newQ.length>0&&!this._replanPromise&&(this.log(`[AutoReplan:quality] ${this._wellIndicatedRemaining} well-indicated cards remaining (newQ: ${this.newQ.length}). Triggering background replan.`),this.requestReplan()),this._secondsRemaining<=0&&this.failedQ.length===0&&this._minCardsGuarantee<=0)return this._currentCard=null,endSessionTracking(),null;let t=3,n=250,r=0;for(;this._secondsRemaining>0&&this.newQ.length===0&&this.reviewQ.length===0&&this.failedQ.length===0;)if(this.log(`[WedgeBreaker] All queues empty with ${this._secondsRemaining}s remaining. Running pipeline (attempt ${r+1}/3).`),await this._replanUncoalesced({label:`wedge-breaker`}),this.newQ.length===0&&this.reviewQ.length===0&&this.failedQ.length===0){if(r++,r>=3){this.log(`[WedgeBreaker] Pipeline returned no content 3 consecutive times. Giving up; session will end.`);break}await new Promise(e=>setTimeout(e,250))}else r=0;let a=20;for(let e=0;e<20;e++){let e=this._selectNextItemToHydrate();if(!e)return this._currentCard=null,endSessionTracking(),null;let t=this.hydrationService.getHydratedCard(e.cardID);if(t||(t=await this.hydrationService.waitForCard(e.cardID)),this.removeItemFromQueue(e),t){await this.hydrationService.ensureHydratedCards(),this._currentCard=t;let n=e.status===`review`||e.status===`failed-review`?`review`:e.status===`new`||e.status===`failed-new`?`new`:`failed`,r=e.status.startsWith(`failed`)?`failedQ`:e.status===`review`?`reviewQ`:`newQ`;return recordCardPresentation(e.cardID,e.courseID,this.courseNameCache.get(e.courseID),n,r),snapshotQueues(this.reviewQ.length,this.newQ.length,this.failedQ.length),t}this.log(`Skipping card ${e.cardID}: hydration failed, trying next`),isReview(e)&&this.srsService.removeReview(e.reviewID)}return this.log(`Exhausted 20 skip attempts finding a hydratable card`),this._currentCard=null,endSessionTracking(),null}async submitResponse(e,t,n,r,a,o,s,c,l){let u={...r.item};return await this.services.response.processResponse(e,t,u,n,r,a,o,s,c,l)}dismissCurrentCard(e=`dismiss-success`){if(this._currentCard)if(e===`dismiss-success`)this.hydrationService.removeCard(this._currentCard.item.cardID);else if(e===`marked-failed`){let e;e=isReview(this._currentCard.item)?{cardID:this._currentCard.item.cardID,courseID:this._currentCard.item.courseID,contentSourceID:this._currentCard.item.contentSourceID,contentSourceType:this._currentCard.item.contentSourceType,status:`failed-review`,reviewID:this._currentCard.item.reviewID}:{cardID:this._currentCard.item.cardID,courseID:this._currentCard.item.courseID,contentSourceID:this._currentCard.item.contentSourceID,contentSourceType:this._currentCard.item.contentSourceType,status:`failed-new`},this.failedQ.add(e,e.cardID)}else (e===`dismiss-error`||e===`dismiss-failed`)&&this.hydrationService.removeCard(this._currentCard.item.cardID)}removeItemFromQueue(e){this.reviewQ.peek(0)?.cardID===e.cardID?this.reviewQ.dequeue(e=>e.cardID):this.newQ.peek(0)?.cardID===e.cardID?(this.newQ.dequeue(e=>e.cardID),this._wellIndicatedRemaining>0&&this._wellIndicatedRemaining--):this.failedQ.peek(0)?.cardID===e.cardID&&this.failedQ.dequeue(e=>e.cardID)}async endSession(){if(!this._sessionRecord||this._sessionRecord.length===0)return;let e=this._sessionRecord.flatMap(e=>e.records).filter(e=>e.userAnswer!==void 0);if(e.length===0)return;let t=null,n=[];for(let e of this.sources)if(e.getOrchestrationContext){try{t=await e.getOrchestrationContext(),e.getStrategyIds&&n.push(...e.getStrategyIds())}catch(e){logger.warn(`[SessionController] Failed to get orchestration context: ${e}`)}if(t)break}if(!t){logger.debug(`[SessionController] No orchestration context available, skipping outcome recording`);return}let r=new Date().toISOString(),a=new Date(this.startTime).toISOString();await recordUserOutcome(t,a,r,e,n)}},_defineProperty(_SessionController2,`MIN_WELL_INDICATED`,5),_defineProperty(_SessionController2,`WELL_INDICATED_SCORE`,.1),_defineProperty(_SessionController2,`DEPLETION_PREFETCH_THRESHOLD`,3),_SessionController2);init_TagFilteredContentSource(),init_factory();export{getDataLayer as a,isDataShapeRegistered as c,processCustomQuestionsData as d,registerCustomQuestionTypes as f,getCardHistoryID as i,isDataShapeSchemaAvailable as l,SessionController as n,getStudySource as o,removeCustomQuestionTypes as p,dist_exports as r,initializeDataLayer as s,GuestUsername as t,isQuestionTypeRegistered as u};
|
|
376
|
+
//# sourceMappingURL=dist-B6gIbmvQ.js.map
|