@puzzmo/sdk 1.0.25 → 1.0.26

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.
@@ -1525,5 +1525,5 @@ const e=require(`./asyncToGenerator-BlxRHn40.cjs`),t=require(`./objectSpread2-B6
1525
1525
  </div>
1526
1526
  </div>
1527
1527
  </div>
1528
- `,document.body.appendChild(g);let _=g.querySelector(`#simulator-panel`),y=g.querySelector(`#simulator-header`),b=g.querySelector(`#simulator-header-indicator`),x=g.querySelector(`#simulator-header-status-text`),S=g.querySelector(`#simulator-header-pause`),C=g.querySelector(`#simulator-header-retry`),w=g.querySelector(`#simulator-header-settings`),T=g.querySelector(`#simulator-toggle`),E=g.querySelector(`#simulator-timer`),D=g.querySelector(`#simulator-tabs`),O=g.querySelector(`#simulator-content`),k=e=>g.querySelector(e),A=e=>{S.innerHTML=e?h.play:h.pause,S.title=e?`Resume`:`Pause`},j=(e,t)=>{let n=k(`#simulator-status .text`),r=k(`#simulator-status .indicator`),i=t===`complete`?`✓`:``;n&&(n.textContent=e),r&&(r.className=`indicator ${t}`,r.textContent=i),b.className=t,b.textContent=i,x.textContent=e},M=(e,t)=>{t&&t!==`0`?E.innerHTML=`${e}<span class="penalty">+${t}</span>`:E.textContent=e},N=e=>{var t;m.activeTab=e,O.classList.remove(`hidden`),d(e),D.querySelectorAll(`.simulator-tab`).forEach(t=>{t.classList.toggle(`active`,t.getAttribute(`data-tab`)===e)}),g.querySelectorAll(`.simulator-tab-content`).forEach(t=>{t.classList.toggle(`active`,t.id===`simulator-tab-${e}`)}),w.classList.toggle(`active`,e===`auth`);let n=f.find(t=>t.id===e);n==null||(t=n.onActivate)==null||t.call(n,B)},P=e=>{m.isCollapsed=e,_.classList.toggle(`collapsed`,e),u(e),e?(O.classList.add(`hidden`),D.querySelectorAll(`.simulator-tab`).forEach(e=>e.classList.remove(`active`))):N(m.activeTab)},F=()=>{c.updatePreview(B)},I=function(){var t=e.t(function*(){var e,t;if(m.puzzleData)return m.puzzleData;if(!a||a.size===0)throw Error(`No fixtures configured. Add puzzle JSON files to a fixtures directory and pass fixturesGlob to the simulator.`);let n=(e=m.selectedCategory)==null?o[0]:e,r=n?a.get(n):void 0;if(!r||r.size===0)throw Error(`No puzzles found in fixture category "${n}"`);let i=(t=m.selectedPuzzle)==null?r.keys().next().value:t,s=i?r.get(i):void 0;if(!s)throw Error(`Puzzle "${i}" not found in category "${n}"`);m.puzzleData=s,console.log(`Simulator: Puzzle loaded from fixtures`,{category:n,puzzle:i}),m.originalPuzzle=JSON.stringify(m.puzzleData,null,2);let c=k(`#simulator-puzzle`);return c&&(c.value=m.originalPuzzle),m.activeTab===`thumb`&&F(),m.puzzleData});return function(){return t.apply(this,arguments)}}(),L=ee(e=>{s.addLogEntry(e,B)}),R=(e,t)=>{te(e,t,L)},z=(e,t)=>{let n=g.querySelector(`[data-badge="${e}"]`);n&&(n.textContent=t&&t>0?String(t):``)},B={state:m,getElement:k,sendToGame:R,logMessage:L.log,loadPuzzle:I,updateStatus:j,updateTimer:M,setCollapsed:P,switchTab:N,updateThumbnail:F,updateBadge:z,fixtures:a,fixtureCategories:o,gameSlug:(r=t.slug)==null?null:r};console.log(`[Simulator] Context created with gameSlug:`,B.gameSlug),f.forEach(e=>e.bind(B)),D.querySelectorAll(`.simulator-tab`).forEach(e=>{e.addEventListener(`click`,()=>{let t=e.getAttribute(`data-tab`);N(t),z(t,0)})}),T.addEventListener(`click`,e=>{e.stopPropagation(),P(!0)}),S.addEventListener(`click`,e=>{e.stopPropagation(),m.isPaused?(R(`RESUME_GAME`,{}),m.isPaused=!1,A(!1),j(`Running`,`ready`)):(R(`PAUSE_GAME`,{}),m.isPaused=!0,A(!0),j(`Paused`,`paused`));let t=k(`#simulator-pause`);t&&(t.textContent=m.isPaused?`Resume`:`Pause`)}),C.addEventListener(`click`,e=>{e.stopPropagation(),R(`RETRY_PUZZLE`,{}),m.hasStarted=!1,m.isPaused=!1,A(!1),S.disabled=!0,j(`Ready to retry`,`ready`);let t=k(`#simulator-pause`),n=k(`#simulator-start`);t&&(t.disabled=!0,t.textContent=`Pause`),n&&(n.textContent=`Start`)}),w.addEventListener(`click`,e=>{e.stopPropagation(),m.isCollapsed&&P(!1),N(`auth`)}),y.addEventListener(`click`,e=>{m.isCollapsed&&e.target!==T&&P(!1)}),m.isCollapsed||N(m.activeTab);let V=new URLSearchParams(window.location.search);(V.has(`code`)||V.has(`error`))&&(P(!1),N(`auth`));let H=e=>({userState:{gameSettings:{},id:`simulator-user`,nakamaLogin:`simulator`,ownerID:`simulator-owner`},currentUser:null,startOrFindGameplay:{gamePlayed:{additionalTimeAddedSecs:0,boardState:m.currentInputStr,cheatsUsed:0,combinedTimeSecs:0,completed:!1,createdAt:new Date().toISOString(),elapsedTimeSecs:0,hintsUsed:0,id:`simulator-gameplay-${Date.now()}`,ownerID:`simulator-owner`,pointsAwarded:0,resetsUsed:0,slug:`simulator-game`,viewerOwnsPuzzle:!0,puzzle:{id:`simulator-puzzle`,name:`Proto Jig Puzzle`,puzzle:JSON.stringify(e),seriesNumber:1,game:{assetsPath:`./assets/`,assetsSha:``,displayName:`Proto Game`,exposedGlobalFunction:`startGame`,jsPath:``,slug:`proto-game`}}}},theme:m.selectedTheme,hostFlags:[],hostContext:[],appRuntimeContract:`1.0`}),U=function(){var t=e.t(function*(){j(`Loading puzzle...`,`waiting`);try{let e=H(yield I());j(`Sending READY_DATA...`,`waiting`),R(`READY_DATA`,e),j(`Waiting for game to load...`,`waiting`)}catch(e){j(`Error: ${e}`,`paused`)}});return function(){return t.apply(this,arguments)}}(),W=()=>{console.log(`Simulator: Game loaded, ready to start`),C.disabled=!1,f.forEach(e=>{var t;return(t=e.onMessage)==null?void 0:t.call(e,`READY_GAME_LOADED`,void 0,B)}),i&&!m.hasStarted&&setTimeout(()=>{let e=k(`#simulator-start`);e==null||e.click(),S.disabled=!1,m.hasStarted=!0,j(`Running`,`ready`)},100)};return ne((e,t)=>{var n,r;if(e===`READY`){console.log(`Simulator: Received READY from game`),U();return}if(e===`INITIALIZE_SETTINGS`){console.log(`Simulator: Game initialized settings`,t);return}if(e===`READY_GAME_LOADED`){W();return}if(e===`TIMER_TICK`){if(t!=null&&t.display){let[e,n]=t.display;M(e,n)}return}if(e===`TIMER_SYNC`)return;if(e===`SIDEBAR_UPDATE`){console.log(`Simulator: Sidebar update`,t);return}f.forEach(n=>{var r;return(r=n.onMessage)==null?void 0:r.call(n,e,t,B)});let i=(n=t==null||(r=t.input)==null?void 0:r.boardState)==null?t==null?void 0:t.boardState:n;e===`UPLOAD_NEW_GAME_STATE`&&i&&(m.currentInputStr=i,m.activeTab===`thumb`&&F(),console.log(`Simulator: Game state uploaded`,t)),e===`GAME_COMPLETED`&&(console.log(`Simulator: Game completed!`,t),S.disabled=!0,m.hasStarted=!1,j(`Completed!`,`complete`))},L),console.log(`Simulator initialized`),$={updateFixtures:e=>{a=v(e),o=Array.from(a.keys()).sort(),B.fixtures=a,B.fixtureCategories=o;let t=localStorage.getItem(`simulator-fixture-category`);if(!m.selectedCategory||!o.includes(m.selectedCategory)){var n;m.selectedCategory=t&&o.includes(t)?t:(n=o[0])==null?null:n}let r=f.find(e=>e.id===`ctrl`);r==null||r.bind(B),console.log(`Simulator: Fixtures updated`,{categories:o,selectedCategory:m.selectedCategory})},sendToGame:R,loadPuzzle:I},$}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Re}});
1529
- //# sourceMappingURL=createSimulator-BVMKhHqV.cjs.map
1528
+ `,document.body.appendChild(g);let _=g.querySelector(`#simulator-panel`),y=g.querySelector(`#simulator-header`),b=g.querySelector(`#simulator-header-indicator`),x=g.querySelector(`#simulator-header-status-text`),S=g.querySelector(`#simulator-header-pause`),C=g.querySelector(`#simulator-header-retry`),w=g.querySelector(`#simulator-header-settings`),T=g.querySelector(`#simulator-toggle`),E=g.querySelector(`#simulator-timer`),D=g.querySelector(`#simulator-tabs`),O=g.querySelector(`#simulator-content`),k=e=>g.querySelector(e),A=e=>{S.innerHTML=e?h.play:h.pause,S.title=e?`Resume`:`Pause`},j=(e,t)=>{let n=k(`#simulator-status .text`),r=k(`#simulator-status .indicator`),i=t===`complete`?`✓`:``;n&&(n.textContent=e),r&&(r.className=`indicator ${t}`,r.textContent=i),b.className=t,b.textContent=i,x.textContent=e},M=(e,t)=>{t&&t!==`0`?E.innerHTML=`${e}<span class="penalty">+${t}</span>`:E.textContent=e},N=e=>{var t;m.activeTab=e,O.classList.remove(`hidden`),d(e),D.querySelectorAll(`.simulator-tab`).forEach(t=>{t.classList.toggle(`active`,t.getAttribute(`data-tab`)===e)}),g.querySelectorAll(`.simulator-tab-content`).forEach(t=>{t.classList.toggle(`active`,t.id===`simulator-tab-${e}`)}),w.classList.toggle(`active`,e===`auth`);let n=f.find(t=>t.id===e);n==null||(t=n.onActivate)==null||t.call(n,B)},P=e=>{m.isCollapsed=e,_.classList.toggle(`collapsed`,e),u(e),e?(O.classList.add(`hidden`),D.querySelectorAll(`.simulator-tab`).forEach(e=>e.classList.remove(`active`))):N(m.activeTab)},F=()=>{c.updatePreview(B)},I=function(){var t=e.t(function*(){var e,t;if(m.puzzleData)return m.puzzleData;if(!a||a.size===0)throw Error(`No fixtures configured. Add puzzle JSON files to a fixtures directory and pass fixturesGlob to the simulator.`);let n=(e=m.selectedCategory)==null?o[0]:e,r=n?a.get(n):void 0;if(!r||r.size===0)throw Error(`No puzzles found in fixture category "${n}"`);let i=(t=m.selectedPuzzle)==null?r.keys().next().value:t,s=i?r.get(i):void 0;if(!s)throw Error(`Puzzle "${i}" not found in category "${n}"`);m.puzzleData=s,console.log(`Simulator: Puzzle loaded from fixtures`,{category:n,puzzle:i}),m.originalPuzzle=JSON.stringify(m.puzzleData,null,2);let c=k(`#simulator-puzzle`);return c&&(c.value=m.originalPuzzle),m.activeTab===`thumb`&&F(),m.puzzleData});return function(){return t.apply(this,arguments)}}(),L=ee(e=>{s.addLogEntry(e,B)}),R=(e,t)=>{te(e,t,L)},z=(e,t)=>{let n=g.querySelector(`[data-badge="${e}"]`);n&&(n.textContent=t&&t>0?String(t):``)},B={state:m,getElement:k,sendToGame:R,logMessage:L.log,loadPuzzle:I,updateStatus:j,updateTimer:M,setCollapsed:P,switchTab:N,updateThumbnail:F,updateBadge:z,fixtures:a,fixtureCategories:o,gameSlug:(r=t.slug)==null?null:r};console.log(`[Simulator] Context created with gameSlug:`,B.gameSlug),f.forEach(e=>e.bind(B)),D.querySelectorAll(`.simulator-tab`).forEach(e=>{e.addEventListener(`click`,()=>{let t=e.getAttribute(`data-tab`);N(t),z(t,0)})}),T.addEventListener(`click`,e=>{e.stopPropagation(),P(!0)}),S.addEventListener(`click`,e=>{e.stopPropagation(),m.isPaused?(R(`RESUME_GAME`,{}),m.isPaused=!1,A(!1),j(`Running`,`ready`)):(R(`PAUSE_GAME`,{}),m.isPaused=!0,A(!0),j(`Paused`,`paused`));let t=k(`#simulator-pause`);t&&(t.textContent=m.isPaused?`Resume`:`Pause`)}),C.addEventListener(`click`,e=>{e.stopPropagation(),R(`RETRY_PUZZLE`,{}),m.hasStarted=!1,m.isPaused=!1,A(!1),S.disabled=!0,j(`Ready to retry`,`ready`);let t=k(`#simulator-pause`),n=k(`#simulator-start`);t&&(t.disabled=!0,t.textContent=`Pause`),n&&(n.textContent=`Start`)}),w.addEventListener(`click`,e=>{e.stopPropagation(),m.isCollapsed&&P(!1),N(`auth`)}),y.addEventListener(`click`,e=>{m.isCollapsed&&e.target!==T&&P(!1)}),m.isCollapsed||N(m.activeTab);let V=new URLSearchParams(window.location.search);(V.has(`code`)||V.has(`error`))&&(P(!1),N(`auth`));let H=e=>({userState:{gameSettings:{},id:`simulator-user`,ownerID:`simulator-owner`},currentUser:{id:`simulator-user`,name:`Simulator`,username:`simulator`,usernameID:`0000`,type:`User`,roles:``,nakamaID:null},startOrFindGameplay:{gamePlayed:{additionalTimeAddedSecs:0,boardState:m.currentInputStr,combinedTimeSecs:0,completed:!1,createdAt:new Date().toISOString(),elapsedTimeSecs:0,id:`simulator-gameplay-${Date.now()}`,ownerID:`simulator-owner`,pointsAwarded:0,slug:`simulator-game`,viewerOwnsPuzzle:!0,puzzle:{id:`simulator-puzzle`,name:`Proto Jig Puzzle`,puzzle:JSON.stringify(e),game:{displayName:`Proto Game`,jsPath:``,slug:`proto-game`},mostRecentDaily:null}}},theme:m.selectedTheme,hostContext:[{type:`app`,layout:`desktop`,host:null}],appRuntimeContract:`1.0`}),U=function(){var t=e.t(function*(){j(`Loading puzzle...`,`waiting`);try{let e=H(yield I());j(`Sending READY_DATA...`,`waiting`),R(`READY_DATA`,e),j(`Waiting for game to load...`,`waiting`)}catch(e){j(`Error: ${e}`,`paused`)}});return function(){return t.apply(this,arguments)}}(),W=()=>{console.log(`Simulator: Game loaded, ready to start`),C.disabled=!1,f.forEach(e=>{var t;return(t=e.onMessage)==null?void 0:t.call(e,`READY_GAME_LOADED`,void 0,B)}),i&&!m.hasStarted&&setTimeout(()=>{let e=k(`#simulator-start`);e==null||e.click(),S.disabled=!1,m.hasStarted=!0,j(`Running`,`ready`)},100)};return ne((e,t)=>{var n,r;if(e===`READY`){console.log(`Simulator: Received READY from game`),U();return}if(e===`INITIALIZE_SETTINGS`){console.log(`Simulator: Game initialized settings`,t);return}if(e===`READY_GAME_LOADED`){W();return}if(e===`TIMER_TICK`){if(t!=null&&t.display){let[e,n]=t.display;M(e,n)}return}if(e===`TIMER_SYNC`)return;if(e===`SIDEBAR_UPDATE`){console.log(`Simulator: Sidebar update`,t);return}f.forEach(n=>{var r;return(r=n.onMessage)==null?void 0:r.call(n,e,t,B)});let i=(n=t==null||(r=t.input)==null?void 0:r.boardState)==null?t==null?void 0:t.boardState:n;e===`UPLOAD_NEW_GAME_STATE`&&i&&(m.currentInputStr=i,m.activeTab===`thumb`&&F(),console.log(`Simulator: Game state uploaded`,t)),e===`GAME_COMPLETED`&&(console.log(`Simulator: Game completed!`,t),S.disabled=!0,m.hasStarted=!1,j(`Completed!`,`complete`))},L),console.log(`Simulator initialized`),$={updateFixtures:e=>{a=v(e),o=Array.from(a.keys()).sort(),B.fixtures=a,B.fixtureCategories=o;let t=localStorage.getItem(`simulator-fixture-category`);if(!m.selectedCategory||!o.includes(m.selectedCategory)){var n;m.selectedCategory=t&&o.includes(t)?t:(n=o[0])==null?null:n}let r=f.find(e=>e.id===`ctrl`);r==null||r.bind(B),console.log(`Simulator: Fixtures updated`,{categories:o,selectedCategory:m.selectedCategory})},sendToGame:R,loadPuzzle:I},$}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Re}});
1529
+ //# sourceMappingURL=createSimulator-HNzTnWZh.cjs.map