code-playpad 0.15.0 → 0.16.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/README.md +23 -3
- package/dist/{boot-BVedZD8N.js → boot-BjUY1Ie7.js} +1 -1
- package/dist/cdn.js +2 -2
- package/dist/{compiler-D7kIFltD.js → compiler-UMrA2h8r.js} +1 -1
- package/dist/{cpp-CI2vFLOK.js → cpp-CDeK5gz8.js} +1 -1
- package/dist/{csharp-B4M3Us-m.js → csharp-D2mcw4Xx.js} +1 -1
- package/dist/{element-UgFuSGoC.js → element-Biju-4SA.js} +1 -1
- package/dist/element.js +1 -1
- package/dist/index.js +1 -1
- package/dist/{java-BYlTOHGf.js → java-cevrzY6x.js} +1 -1
- package/dist/{javascript-CNLIMOk1.js → javascript-DZlNZDDe.js} +1 -1
- package/dist/{next-C9S3EZEz.js → next-CKL809hs.js} +1 -1
- package/dist/{next-xTgh8PXL.js → next-Cb5W_u4U.js} +1 -1
- package/dist/next-vendor.generated-CZBsaQeS.js +6 -0
- package/dist/{pyodide-Cr69zEd2.js → pyodide-DJAtHIb8.js} +1 -1
- package/dist/{react-DPG8BrcN.js → react-SfE82Kr_.js} +1 -1
- package/dist/react.js +1 -1
- package/dist/runtime/next-vendor.generated.d.ts +2 -2
- package/dist/standalone.js +1 -1
- package/dist/{worker-runtime-5Ujf07eB.js → worker-runtime-dxTpNm5e.js} +1 -1
- package/package.json +1 -1
- package/dist/next-vendor.generated-DcyCefTD.js +0 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{l as e}from"./config-3Z6xX6Jr.js";import{t}from"./worker-runtime-
|
|
1
|
+
import{l as e}from"./config-3Z6xX6Jr.js";import{t}from"./worker-runtime-dxTpNm5e.js";var n=`let pyodide=null,stdinLines=[],stdinExhausted=!1,currentId=null,interactive=!1,inputWaitMs=0,nextRequest=1;const pendingLines=new Map,MOUNT="/home/pyodide/playground";let written=new Set,internals=null;const REFRESH=["import importlib, os, sys","MOUNT = "+JSON.stringify(MOUNT),"os.makedirs(MOUNT, exist_ok=True)","sys.path.insert(0, MOUNT) if MOUNT not in sys.path else None","os.chdir(MOUNT)","for _name, _mod in list(sys.modules.items()):",' _file = getattr(_mod, "__file__", None) or ""',' _paths = list(getattr(_mod, "__path__", None) or [])'," if _file.startswith(MOUNT) or any(str(p).startswith(MOUNT) for p in _paths):"," del sys.modules[_name]","importlib.invalidate_caches()"].join(\`
|
|
2
2
|
\`);function flushStreams(){try{pyodide.runPython(\`import sys
|
|
3
3
|
sys.stdout.flush()
|
|
4
4
|
sys.stderr.flush()\`,{globals:internals})}catch{}flushOutput()}const INPUT_OVERRIDE=["import builtins, sys, js","from pyodide.ffi import run_sync","",'def _pg_input(prompt=""):',' if prompt != "":'," sys.stdout.write(str(prompt))"," sys.stdout.flush()"," line = run_sync(js._pgReadLine())"," # Pyodide maps JS null to its own JsNull singleton, not None, so test"," # for what we want rather than for the several ways EOF can arrive."," if not isinstance(line, str):",' raise EOFError("EOF when reading a line")'," return line","",'_pg_input.__name__ = "input"','_pg_input.__qualname__ = "input"',"_pg_input.__doc__ = builtins.input.__doc__","builtins.input = _pg_input"].join(\`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./react-version.generated-BNNJmf7J.js";import{u as t}from"./config-3Z6xX6Jr.js";import{n,t as r}from"./boot-
|
|
1
|
+
import{t as e}from"./react-version.generated-BNNJmf7J.js";import{u as t}from"./config-3Z6xX6Jr.js";import{n,t as r}from"./boot-BjUY1Ie7.js";var i=[`src/main.jsx`,`src/main.js`],a=`<!doctype html><html lang="en"><head><meta charset="utf-8"></head><body><div id="root"></div></body></html>`;function o(e){return/^([a-z][a-z0-9+.-]*:|\/\/)/i.test(e)}function s(e,n,s){let{CompileError:c,compileProject:l,resolveImport:u}=s,d=n.endsWith(`.html`)?n:`index.html`,f=Object.hasOwn(e,d),p=new DOMParser().parseFromString(f?e[d]:a,`text/html`),m=[];if(f){let t=[...p.querySelectorAll(`script[src], link[rel="stylesheet"][href]`)],n=[];for(let r of t){let t=r.tagName===`SCRIPT`,i=r.getAttribute(t?`src`:`href`);if(o(i))throw new c(d,`This project can't load "${i}". The preview can only use the project's own files.`);let a=u(e,d,i);if(!a)throw new c(d,`The file "${i}" does not exist.`);(t?n:m).push(a),r.remove()}if(!n.length)throw new c(d,`Add <script type="module" src="/src/main.jsx"><\/script> so the app has an entry file.`);m.push(...n)}else{let t=n.endsWith(`.html`)?void 0:Object.hasOwn(e,n)?n:i.find(t=>Object.hasOwn(e,t));if(!t)throw new c(`index.html`,`This project has no entry file. Add src/main.jsx.`);m.push(t)}let h=l(e,m),{nonce:g,runtimeURL:_}=t(),v=p.createElement(`meta`);v.httpEquiv=`Content-Security-Policy`,v.content=`default-src 'none'; script-src 'unsafe-inline'${_?` ${_}`:``}; style-src 'unsafe-inline'; img-src data:; font-src data:; form-action 'none'; base-uri 'none'`;let y=p.createElement(`script`);return g&&y.setAttribute(`nonce`,g),y.textContent=r,p.head.prepend(v,y),{html:`<!doctype html>${p.documentElement.outerHTML}`,modules:h,entries:m}}var c=new class{id=`react`;label=`React ${e}`;interactiveStdin=!1;statusDecidesFailure=!0;#e=null;#t=null;#n=null;#r=/* @__PURE__ */ new WeakMap;#i=/* @__PURE__ */ new WeakMap;get ready(){return this.#e!==null}async editorLanguage(){let{javascript:e}=await import(`@codemirror/lang-javascript`);return e({jsx:!0})}load(){return this.#n??=(async()=>{try{let e=import(`./compiler-A2mqXrqO.js`),n=t().runtimeURL?null:import(`./react-vendor.generated-DMxIoCMn.js`);this.#t=(await n)?.REACT_VENDOR_SOURCE??null,this.#e=await e}catch(e){throw this.#n=null,Error(`The React runtime could not be loaded. Check your connection and reload the page. (${e.message})`)}})(),this.#n}run(e,r={}){let i=r.preview;if(!i)return Promise.reject(/* @__PURE__ */ Error(`React needs a <code-playpad> widget to render in.`));this.dispose(i.host);let a,o=r.files??{},s=new Promise((e,r)=>{let o=t().runtimeURL;a=new n(i,{...o?{runtimeURL:o}:{vendor:this.#t},nonce:t().nonce},e,r)});return this.#r.set(i.host,a),this.#i.set(s,a),this.#a(a,o,r.entry??`index.html`),s}async#a(e,t,n){try{await this.load();let r=this.#e,i;try{i=s(t,n,r)}catch(t){if(t instanceof r.CompileError){e.fail(t.reason,{file:t.file,...t.line?{line:t.line}:{},...t.column?{column:t.column}:{}},t.hint),e.showCompileBanner(t.hint);return}throw t}e.payload.modules=i.modules,e.payload.entries=i.entries,e.open(i.html)}catch(t){e.fail(t.message)}}stop(e){e&&this.#i.get(e)?.dispose(!0)}hasLivePreview(e){return this.#r.get(e)?.live??!1}dispose(e){this.#r.get(e)?.dispose(!0),this.#r.delete(e)}};export{c as reactRuntime};
|
package/dist/react.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./element-
|
|
1
|
+
import{n as e}from"./element-Biju-4SA.js";import{useEffect as t,useRef as n}from"react";import{jsx as r}from"react/jsx-runtime";e();function i({code:e=``,files:i,entry:a,stdin:o,language:s=`python`,height:c,minHeight:l,maxHeight:u,previewHeight:d,treeWidth:f,fileView:p,openFile:m,theme:h=`auto`,themeControls:g=!0,readOnly:_,autoRun:v,persist:y,practice:b,className:x,style:S,onReady:C,onRun:w,onOutput:T,onError:E}){let D=n(null),O=n({onReady:C,onRun:w,onOutput:T,onError:E});O.current={onReady:C,onRun:w,onOutput:T,onError:E},t(()=>{let e=D.current;if(!e)return;let t=(t,n)=>{let r=e=>n(O.current)?.(e.detail);return e.addEventListener(t,r),()=>e.removeEventListener(t,r)},n=[t(`py-ready`,e=>e.onReady),t(`py-run`,e=>e.onRun),t(`py-output`,e=>e.onOutput),t(`py-error`,e=>e.onError)];return()=>n.forEach(e=>e())},[]);let k=i?JSON.stringify(i):null;t(()=>{let t=D.current;t&&(k?t.files=JSON.parse(k):e!==t.code&&(t.code=e))},[e,k]),t(()=>{D.current&&o!==void 0&&(D.current.stdin=o)},[o]);let A=b?JSON.stringify(b):null;return t(()=>{D.current&&(D.current.practice=A?JSON.parse(A):null)},[A]),/* @__PURE__ */ r(`code-playpad`,{ref:D,language:s,theme:h,"theme-controls":g?void 0:`off`,class:x,style:S,...c===void 0?{}:{height:String(c)},...l===void 0?{}:{"min-height":String(l)},...u===void 0?{}:{"max-height":String(u)},...d===void 0?{}:{"preview-height":String(d)},...f===void 0?{}:{"tree-width":String(f)},...p?{"file-view":p}:{},...m?{"open-file":m}:{},..._?{readonly:``}:{},...v?{autorun:``}:{},...y?{persist:y}:{},...a?{entry:a}:{},children:i?null:e})}export{i as CodePlayPad,i as default};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export declare const NEXT_SERVER_STAMP: {
|
|
2
2
|
readonly react: "19.2.8";
|
|
3
|
-
readonly sha256: "
|
|
3
|
+
readonly sha256: "3dfd92fe246013cecc531f772833e7450f564f8f025a5ed0a220bedf5d33197e";
|
|
4
4
|
};
|
|
5
5
|
export declare const NEXT_CLIENT_STAMP: {
|
|
6
6
|
readonly react: "19.2.8";
|
|
7
|
-
readonly sha256: "
|
|
7
|
+
readonly sha256: "e8642d911af2320b6fa37d610efee411270d90a1e2e83190f154d9dd1ed691ed";
|
|
8
8
|
};
|
|
9
9
|
export declare const NEXT_SERVER_SOURCE: string;
|
|
10
10
|
export declare const NEXT_CLIENT_SOURCE: string;
|
package/dist/standalone.js
CHANGED
|
@@ -15,7 +15,7 @@ import{n as e,t}from"./types-CfcYqU2K.js";import{t as n}from"./hints-DpBIeoeG.js
|
|
|
15
15
|
--cp-ok: ${n.ok};
|
|
16
16
|
color-scheme: ${t};
|
|
17
17
|
}`]:[]).join(`
|
|
18
|
-
`)}async function S(e){try{return await D(e)}catch(t){return console.warn(`[code-playpad] CodeMirror unavailable, using plain textarea:`,t),O(e)}}var C=/* @__PURE__ */ new Map,w=/* @__PURE__ */ new Set,T=!1;function E(){T||(T=!0,queueMicrotask(()=>{T=!1;for(let e of w){let t=[...e.adoptedStyleSheets];e.adoptedStyleSheets=[],e.adoptedStyleSheets=t}}))}async function D(e){let[t,n,r,i,a,o,s]=await Promise.all([import(`./dist-D4P7t1AU.js`).then(e=>e.s),import(`./dist-CjnVq6q1.js`).then(e=>e.x),import(`./dist-g8djAEMH.js`),import(`./dist-CTLX4tws.js`),import(`./dist-_fde-E8H.js`).then(e=>e.n),import(`./dist-DHeVjdBc.js`),import(`./dist-IFh_mUXG.js`).then(e=>e.t)]),{EditorView:c,keymap:l,lineNumbers:u,highlightActiveLine:f,highlightActiveLineGutter:p,highlightSpecialChars:m,drawSelection:h,rectangularSelection:g,crosshairCursor:_}=t,{EditorState:v,Compartment:y}=n,{defaultKeymap:b,history:x,historyKeymap:S,indentWithTab:T}=r,{syntaxHighlighting:D,defaultHighlightStyle:O,HighlightStyle:k,indentOnInput:A,bracketMatching:j,foldGutter:M,foldKeymap:N}=i,{autocompletion:P,closeBrackets:F,closeBracketsKeymap:I,completionKeymap:ee}=a,L=new y,R=new y,z=new y,B=C.get(`default-light`)??[c.theme({"&":{color:`#1f2328`,backgroundColor:`#ffffff`},".cm-gutters":{backgroundColor:`#f6f8fa`,color:`#8b949e`,border:`none`},".cm-activeLine":{backgroundColor:`#f6f8fa88`},".cm-activeLineGutter":{backgroundColor:`#eaeef2`},".cm-cursor":{borderLeftColor:`#1f2328`},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, ::selection":{backgroundColor:`#cfe3ff`}}),D(O,{fallback:!0})];C.set(`default-light`,B);let{tags:V}=s,H=(e,t)=>[c.theme({"&":{color:e.fg,backgroundColor:e.bg},".cm-content":{caretColor:e.fg},".cm-gutters":{backgroundColor:e.surface,color:e.muted,border:`none`},".cm-activeLine":{backgroundColor:e.activeLine},".cm-activeLineGutter":{backgroundColor:e.selection},".cm-cursor, .cm-dropCursor":{borderLeftColor:e.fg},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:e.selection},".cm-tooltip":{backgroundColor:e.surface,color:e.fg,border:`1px solid ${e.border}`},".cm-tooltip-autocomplete > ul > li[aria-selected]":{backgroundColor:e.selection,color:e.fg}},{dark:t}),D(k.define([{tag:[V.comment,V.meta],color:e.comment,fontStyle:`italic`},{tag:[V.keyword,V.operatorKeyword,V.modifier],color:e.keyword},{tag:[V.string,V.special(V.string),V.regexp],color:e.string},{tag:[V.number,V.bool,V.null,V.atom],color:e.number},{tag:[V.function(V.variableName),V.function(V.propertyName),V.definition(V.function(V.variableName))],color:e.fn},{tag:[V.typeName,V.className,V.namespace,V.tagName],color:e.type},{tag:[V.variableName,V.propertyName,V.attributeName],color:e.variable},{tag:V.invalid,color:e.keyword,textDecoration:`underline`}]))],U=(e,t)=>{let n=d.find(e=>e.id===t);if(!n?.colors)return e?o.oneDark:B;let r=C.get(n.id);return r||(r=H(n.colors,n.mode===`dark`),C.set(n.id,r)),r},W=l.of([{key:`Mod-Enter`,preventDefault:!0,run:()=>(e.onRun?.(),!0)},{key:`Shift-Enter`,preventDefault:!0,run:()=>(e.onRun?.(),!0)}]),G=e.dark,K=e.themeId,q=e.readOnly,J=e.language??[],Y=t=>v.create({doc:t,extensions:[u(),p(),m(),x(),M(),h(),v.allowMultipleSelections.of(!0),A(),j(),F(),P(),g(),_(),f(),W,l.of([...I,...b,...S,...N,...ee,T]),c.lineWrapping,z.of(J),L.of(U(G,K)),R.of(v.readOnly.of(q)),c.updateListener.of(t=>{t.startState.facet(c.styleModule)!==t.state.facet(c.styleModule)&&E(),t.docChanged&&e.onChange?.(t.state.doc.toString())})]}),X=new c({parent:e.parent,state:Y(e.doc)});w.add(X.root),E();let Z=/* @__PURE__ */ new Map,Q=e.name??``;return{fallback:!1,getCode:()=>X.state.doc.toString(),setCode(e){X.dispatch({changes:{from:0,to:X.state.doc.length,insert:e}})},openFile(e,t){if(e===Q)return;Z.set(Q,X.state);let n=Z.get(e);X.setState(n??Y(t)),Q=e,n&&X.dispatch({effects:[L.reconfigure(U(G,K)),R.reconfigure(v.readOnly.of(q)),z.reconfigure(J)]}),E()},fileCode(e,t){if(e===Q)return X.state.doc.toString();let n=Z.get(e);return n?n.doc.toString():t},forgetFiles(e){for(let t of[...Z.keys()])e.includes(t)||Z.delete(t)},setTheme(e,t){G=e,K=t,X.dispatch({effects:L.reconfigure(U(G,K))})},setReadOnly(e){q=e,X.dispatch({effects:R.reconfigure(v.readOnly.of(q))})},setLanguage(e){J=e,X.dispatch({effects:z.reconfigure(J)})},focus:()=>X.focus(),destroy(){w.delete(X.root),X.destroy()}}}function O(e){let t=document.createElement(`textarea`);t.className=`cp-fallback-editor`,t.spellcheck=!1,t.value=e.doc,t.readOnly=e.readOnly,t.addEventListener(`input`,()=>e.onChange?.(t.value)),t.addEventListener(`keydown`,t=>{(t.metaKey||t.ctrlKey)&&t.key===`Enter`&&(t.preventDefault(),e.onRun?.())}),e.parent.appendChild(t);let n=/* @__PURE__ */ new Map,r=e.name??``;return{fallback:!0,getCode:()=>t.value,setCode:e=>{t.value=e},openFile(e,i){e!==r&&(n.set(r,t.value),t.value=n.get(e)??i,r=e)},fileCode(e,i){return e===r?t.value:n.get(e)??i},forgetFiles(e){for(let t of[...n.keys()])e.includes(t)||n.delete(t)},setTheme:()=>{},setReadOnly:e=>{t.readOnly=e},setLanguage:()=>{},focus:()=>t.focus(),destroy:()=>t.remove()}}var k=/* @__PURE__ */ new Map,A=/* @__PURE__ */ new Map;function j(e,t){k.set(e,t)}function M(){return[...k.keys()]}function N(e){let t=A.get(e);if(t)return t;let n=k.get(e);if(!n)return Promise.reject(/* @__PURE__ */ Error(`Unknown runtime "${e}". Registered: ${M().join(`, `)||`none`}`));let r=n().catch(t=>{throw A.delete(e),t});return A.set(e,r),r}j(`python`,()=>import(`./pyodide-C5KhmXre.js`).then(e=>e.pythonRuntime)),j(`javascript`,()=>import(`./javascript-kqyWH6DS.js`).then(e=>e.javascriptRuntime)),j(`typescript`,()=>import(`./javascript-kqyWH6DS.js`).then(e=>e.typescriptRuntime)),j(`java`,()=>import(`./java-2z8CcJaR.js`).then(e=>e.javaRuntime)),j(`c`,()=>import(`./cpp-BxFy0NSM.js`).then(e=>e.cRuntime)),j(`cpp`,()=>import(`./cpp-BxFy0NSM.js`).then(e=>e.cppRuntime)),j(`csharp`,()=>import(`./csharp-ByGGaB0V.js`).then(e=>e.csharpRuntime)),j(`cs`,()=>import(`./csharp-ByGGaB0V.js`).then(e=>e.csharpRuntime)),j(`react`,()=>import(`./react-BKPRfjtf.js`).then(e=>e.reactRuntime)),j(`next`,()=>import(`./next-
|
|
18
|
+
`)}async function S(e){try{return await D(e)}catch(t){return console.warn(`[code-playpad] CodeMirror unavailable, using plain textarea:`,t),O(e)}}var C=/* @__PURE__ */ new Map,w=/* @__PURE__ */ new Set,T=!1;function E(){T||(T=!0,queueMicrotask(()=>{T=!1;for(let e of w){let t=[...e.adoptedStyleSheets];e.adoptedStyleSheets=[],e.adoptedStyleSheets=t}}))}async function D(e){let[t,n,r,i,a,o,s]=await Promise.all([import(`./dist-D4P7t1AU.js`).then(e=>e.s),import(`./dist-CjnVq6q1.js`).then(e=>e.x),import(`./dist-g8djAEMH.js`),import(`./dist-CTLX4tws.js`),import(`./dist-_fde-E8H.js`).then(e=>e.n),import(`./dist-DHeVjdBc.js`),import(`./dist-IFh_mUXG.js`).then(e=>e.t)]),{EditorView:c,keymap:l,lineNumbers:u,highlightActiveLine:f,highlightActiveLineGutter:p,highlightSpecialChars:m,drawSelection:h,rectangularSelection:g,crosshairCursor:_}=t,{EditorState:v,Compartment:y}=n,{defaultKeymap:b,history:x,historyKeymap:S,indentWithTab:T}=r,{syntaxHighlighting:D,defaultHighlightStyle:O,HighlightStyle:k,indentOnInput:A,bracketMatching:j,foldGutter:M,foldKeymap:N}=i,{autocompletion:P,closeBrackets:F,closeBracketsKeymap:I,completionKeymap:ee}=a,L=new y,R=new y,z=new y,B=C.get(`default-light`)??[c.theme({"&":{color:`#1f2328`,backgroundColor:`#ffffff`},".cm-gutters":{backgroundColor:`#f6f8fa`,color:`#8b949e`,border:`none`},".cm-activeLine":{backgroundColor:`#f6f8fa88`},".cm-activeLineGutter":{backgroundColor:`#eaeef2`},".cm-cursor":{borderLeftColor:`#1f2328`},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, ::selection":{backgroundColor:`#cfe3ff`}}),D(O,{fallback:!0})];C.set(`default-light`,B);let{tags:V}=s,H=(e,t)=>[c.theme({"&":{color:e.fg,backgroundColor:e.bg},".cm-content":{caretColor:e.fg},".cm-gutters":{backgroundColor:e.surface,color:e.muted,border:`none`},".cm-activeLine":{backgroundColor:e.activeLine},".cm-activeLineGutter":{backgroundColor:e.selection},".cm-cursor, .cm-dropCursor":{borderLeftColor:e.fg},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:e.selection},".cm-tooltip":{backgroundColor:e.surface,color:e.fg,border:`1px solid ${e.border}`},".cm-tooltip-autocomplete > ul > li[aria-selected]":{backgroundColor:e.selection,color:e.fg}},{dark:t}),D(k.define([{tag:[V.comment,V.meta],color:e.comment,fontStyle:`italic`},{tag:[V.keyword,V.operatorKeyword,V.modifier],color:e.keyword},{tag:[V.string,V.special(V.string),V.regexp],color:e.string},{tag:[V.number,V.bool,V.null,V.atom],color:e.number},{tag:[V.function(V.variableName),V.function(V.propertyName),V.definition(V.function(V.variableName))],color:e.fn},{tag:[V.typeName,V.className,V.namespace,V.tagName],color:e.type},{tag:[V.variableName,V.propertyName,V.attributeName],color:e.variable},{tag:V.invalid,color:e.keyword,textDecoration:`underline`}]))],U=(e,t)=>{let n=d.find(e=>e.id===t);if(!n?.colors)return e?o.oneDark:B;let r=C.get(n.id);return r||(r=H(n.colors,n.mode===`dark`),C.set(n.id,r)),r},W=l.of([{key:`Mod-Enter`,preventDefault:!0,run:()=>(e.onRun?.(),!0)},{key:`Shift-Enter`,preventDefault:!0,run:()=>(e.onRun?.(),!0)}]),G=e.dark,K=e.themeId,q=e.readOnly,J=e.language??[],Y=t=>v.create({doc:t,extensions:[u(),p(),m(),x(),M(),h(),v.allowMultipleSelections.of(!0),A(),j(),F(),P(),g(),_(),f(),W,l.of([...I,...b,...S,...N,...ee,T]),c.lineWrapping,z.of(J),L.of(U(G,K)),R.of(v.readOnly.of(q)),c.updateListener.of(t=>{t.startState.facet(c.styleModule)!==t.state.facet(c.styleModule)&&E(),t.docChanged&&e.onChange?.(t.state.doc.toString())})]}),X=new c({parent:e.parent,state:Y(e.doc)});w.add(X.root),E();let Z=/* @__PURE__ */ new Map,Q=e.name??``;return{fallback:!1,getCode:()=>X.state.doc.toString(),setCode(e){X.dispatch({changes:{from:0,to:X.state.doc.length,insert:e}})},openFile(e,t){if(e===Q)return;Z.set(Q,X.state);let n=Z.get(e);X.setState(n??Y(t)),Q=e,n&&X.dispatch({effects:[L.reconfigure(U(G,K)),R.reconfigure(v.readOnly.of(q)),z.reconfigure(J)]}),E()},fileCode(e,t){if(e===Q)return X.state.doc.toString();let n=Z.get(e);return n?n.doc.toString():t},forgetFiles(e){for(let t of[...Z.keys()])e.includes(t)||Z.delete(t)},setTheme(e,t){G=e,K=t,X.dispatch({effects:L.reconfigure(U(G,K))})},setReadOnly(e){q=e,X.dispatch({effects:R.reconfigure(v.readOnly.of(q))})},setLanguage(e){J=e,X.dispatch({effects:z.reconfigure(J)})},focus:()=>X.focus(),destroy(){w.delete(X.root),X.destroy()}}}function O(e){let t=document.createElement(`textarea`);t.className=`cp-fallback-editor`,t.spellcheck=!1,t.value=e.doc,t.readOnly=e.readOnly,t.addEventListener(`input`,()=>e.onChange?.(t.value)),t.addEventListener(`keydown`,t=>{(t.metaKey||t.ctrlKey)&&t.key===`Enter`&&(t.preventDefault(),e.onRun?.())}),e.parent.appendChild(t);let n=/* @__PURE__ */ new Map,r=e.name??``;return{fallback:!0,getCode:()=>t.value,setCode:e=>{t.value=e},openFile(e,i){e!==r&&(n.set(r,t.value),t.value=n.get(e)??i,r=e)},fileCode(e,i){return e===r?t.value:n.get(e)??i},forgetFiles(e){for(let t of[...n.keys()])e.includes(t)||n.delete(t)},setTheme:()=>{},setReadOnly:e=>{t.readOnly=e},setLanguage:()=>{},focus:()=>t.focus(),destroy:()=>t.remove()}}var k=/* @__PURE__ */ new Map,A=/* @__PURE__ */ new Map;function j(e,t){k.set(e,t)}function M(){return[...k.keys()]}function N(e){let t=A.get(e);if(t)return t;let n=k.get(e);if(!n)return Promise.reject(/* @__PURE__ */ Error(`Unknown runtime "${e}". Registered: ${M().join(`, `)||`none`}`));let r=n().catch(t=>{throw A.delete(e),t});return A.set(e,r),r}j(`python`,()=>import(`./pyodide-C5KhmXre.js`).then(e=>e.pythonRuntime)),j(`javascript`,()=>import(`./javascript-kqyWH6DS.js`).then(e=>e.javascriptRuntime)),j(`typescript`,()=>import(`./javascript-kqyWH6DS.js`).then(e=>e.typescriptRuntime)),j(`java`,()=>import(`./java-2z8CcJaR.js`).then(e=>e.javaRuntime)),j(`c`,()=>import(`./cpp-BxFy0NSM.js`).then(e=>e.cRuntime)),j(`cpp`,()=>import(`./cpp-BxFy0NSM.js`).then(e=>e.cppRuntime)),j(`csharp`,()=>import(`./csharp-ByGGaB0V.js`).then(e=>e.csharpRuntime)),j(`cs`,()=>import(`./csharp-ByGGaB0V.js`).then(e=>e.csharpRuntime)),j(`react`,()=>import(`./react-BKPRfjtf.js`).then(e=>e.reactRuntime)),j(`next`,()=>import(`./next-Cb5W_u4U.js`).then(e=>e.nextRuntime));var P=String.raw`
|
|
19
19
|
:host {
|
|
20
20
|
--cp-bg: #ffffff;
|
|
21
21
|
--cp-fg: #1f2328;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{d as e,l as t,u as n}from"./element-
|
|
1
|
+
import{d as e,l as t,u as n}from"./element-Biju-4SA.js";var r=1,i=class{#e=null;#t=null;#n=`module`;#r=null;#i=null;#a=!1;#o=!1;#s=``;#c=/* @__PURE__ */ new Set;#l=[];#u=null;#d=!1;get recycleAfterRun(){return!1}get startTimeoutMs(){}initPayload(){return{}}loadModule(e){return Promise.reject(/* @__PURE__ */ Error(`no module named ${e}`))}get ready(){return this.#a}get interactiveStdin(){return this.#o}get version(){return this.#s}load(t){t&&this.#c.add(t);let n=()=>{t&&this.#c.delete(t)};if(!this.#r){let t=new Promise((t,n)=>{this.#i={resolve:t,reject:n};let r;try{if(typeof Worker>`u`)throw Error(`Worker constructor missing`);let e=new Blob([this.source],{type:`text/javascript`});this.#t=URL.createObjectURL(e),r=new Worker(this.#t,{type:this.#n})}catch(t){this.#i=null,n(new e(`Could not start a Web Worker: ${t.message}`));return}this.#e=r;let i=this.startTimeoutMs,a=i===void 0?void 0:setTimeout(()=>{this.#e!==r||this.#a||(this.#m(),n(/* @__PURE__ */ Error(`The ${this.label} worker did not start within ${i} ms.`)))},i);r.onmessage=e=>{if(this.#e!==r)return;let i=e.data;i.type===`ready`?(this.#s=i.version,this.#o=i.interactiveStdin===!0,this.#a=!0,this.#i=null,clearTimeout(a),this.#h({phase:`ready`,message:`${this.label} ready`}),t()):i.type===`fatal`&&!this.#a?(clearTimeout(a),this.#p(i.message,t,n)):this.#g(i)},r.onerror=e=>{if(this.#e!==r)return;let i=e.message||`Worker failed to start`;clearTimeout(a),this.#a?this.#u&&this.#y(this.#u,Error(i)):this.#p(i,t,n)},r.postMessage({type:`init`,...this.initPayload()})});this.#r=t,t.catch(()=>{this.#r===t&&(this.#r=null)})}return this.#r.then(n,e=>{throw n(),e})}run(e,t={}){let n,i,a=new Promise((e,t)=>{n=e,i=t}),o,s=new Promise(e=>{o=e}),c={id:r++,code:e,options:t,stdout:``,stderr:``,resolve:n,reject:i,promise:a,started:!1,settled:!1,done:s,markDone:()=>{clearTimeout(c.timer),c.settled=!0,o()}};return this.#l.push(c),this.#b(),a}stop(e){if(e){let t=this.#l.findIndex(t=>t.promise===e);if(t!==-1){this.#y(this.#l.splice(t,1)[0],new n);return}let r=this.#u;if(!r||r.promise!==e||r.settled)return;if(!r.started){this.#y(r,new n),this.recycleAfterRun&&this.#f();return}}this.#f()}#f(){let e=this.#e!==null,t=this.#i;if(this.#m(),this.#u&&this.#y(this.#u,new n),e&&(t||!this.recycleAfterRun)){let e=this.load();t&&e.then(t.resolve,t.reject),e.catch(()=>{})}}#p(e,t,n){this.#m(),this.#n===`module`?(this.#n=`classic`,this.load().then(t,n)):n(Error(e))}#m(){this.#e?.terminate(),this.#e=null,this.#t&&=(URL.revokeObjectURL(this.#t),null),this.#r=null,this.#i=null,this.#a=!1}#h(e){for(let t of this.#c)t(e)}#g(e){if(e.type===`progress`){this.#h({phase:e.phase,message:e.message}),this.#u&&e.id===this.#u.id&&!this.#u.settled&&this.#u.options.onProgress?.({phase:e.phase,message:e.message});return}let n=this.#u;if(n&&`id`in e&&e.id===n.id)switch(e.type){case`stdout`:n.stdout+=e.text,n.options.onStdout?.(e.text);break;case`echo`:n.options.onEcho?.(e.text);break;case`stdin-request`:this.#v(n,e.request);break;case`module-request`:this.#_(n,e.name);break;case`stderr`:n.stderr+=e.text,n.options.onStderr?.(e.text);break;case`result`:n.resolve({stdout:n.stdout,stderr:n.stderr||void 0,value:e.value,durationMs:Math.round(e.durationMs),failed:!1,...e.memory?{memory:e.memory}:{},...e.cases?{cases:e.cases,passed:e.passed,total:e.total}:{}}),n.markDone();break;case`error`:case`fatal`:{let r=(n.stderr&&!n.stderr.endsWith(`
|
|
2
2
|
`)?`
|
|
3
3
|
`:``)+e.message+`
|
|
4
4
|
`;n.stderr+=r,n.options.onStderr?.(r);let i={stdout:n.stdout,stderr:n.stderr,hint:`hint`in e?e.hint:void 0,durationMs:Math.round(`durationMs`in e?e.durationMs:0),failed:!0,...`cases`in e&&e.cases?{cases:e.cases,passed:0,total:e.cases.length}:{}};`hintAbout`in e&&e.hintAbout===`stdin`&&t.add(i),n.resolve(i),n.markDone();break}}}#_(e,t){let n=this.#e,r=r=>{this.#e===n&&this.#u===e&&n?.postMessage({type:`module`,name:t,...r})};this.loadModule(t).then(e=>r({code:e}),e=>r({error:e instanceof Error?e.message:String(e)}))}#v(e,t){let n=this.#e,r=r=>{this.#e===n&&this.#u===e&&n?.postMessage({type:`stdin-response`,request:t,text:r})},i=e.options.onStdinRequest;i?i().then(r,()=>r(null)):r(null)}#y(e,t){e.reject(t),e.markDone()}async#b(){if(!this.#d){this.#d=!0;try{for(;this.#l.length;){let e=this.#l.shift();this.#u=e;let t=null;try{if(this.recycleAfterRun?await Promise.race([this.load(),e.done]):await this.load(),e.settled)continue;e.started=!0,e.options.onStart?.(),e.options.timeoutMs&&Number.isFinite(e.options.timeoutMs)&&e.options.timeoutMs>0&&(e.timer=setTimeout(()=>{this.#u!==e||e.settled||(this.#g({type:`error`,id:e.id,message:`Run exceeded its wall-clock time limit.`,durationMs:e.options.timeoutMs}),this.#m())},e.options.timeoutMs)),t=this.#e,this.#e.postMessage({type:`run`,id:e.id,code:e.code,stdin:e.options.stdin,files:e.options.files,entry:e.options.entry,...e.options.compilerLanguage?{compilerLanguage:e.options.compilerLanguage}:{},...e.options.practice?{practice:e.options.practice}:{}}),await e.done}catch(t){this.#y(e,t)}finally{this.#u=null,this.recycleAfterRun&&t&&this.#e===t&&this.#m()}}}finally{this.#d=!1}}}};export{i as t};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "code-playpad",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "Embeddable browser code playground: a CodeMirror editor that runs Python, JavaScript, TypeScript, a subset of Java, experimental C/C++ and multi-file React in the browser. No backend. One shared worker per page, blocking input(), multi-file projects, lazy per-language loading.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|