@pyscript/core 0.7.15 → 0.7.16

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.
Files changed (29) hide show
  1. package/dist/core-DDf1f5vl.js +4 -0
  2. package/dist/core-DDf1f5vl.js.map +1 -0
  3. package/dist/core.js +1 -1
  4. package/dist/{deprecations-manager-9ZyrTvDd.js → deprecations-manager-B8ZteYqC.js} +2 -2
  5. package/dist/{deprecations-manager-9ZyrTvDd.js.map → deprecations-manager-B8ZteYqC.js.map} +1 -1
  6. package/dist/{donkey-BT724r9p.js → donkey-CI8axTp4.js} +2 -2
  7. package/dist/{donkey-BT724r9p.js.map → donkey-CI8axTp4.js.map} +1 -1
  8. package/dist/{error-M0noMyk4.js → error-B9rYJWCZ.js} +2 -2
  9. package/dist/{error-M0noMyk4.js.map → error-B9rYJWCZ.js.map} +1 -1
  10. package/dist/{mpy-C-mFwLd4.js → mpy-BqUoeNzT.js} +2 -2
  11. package/dist/{mpy-C-mFwLd4.js.map → mpy-BqUoeNzT.js.map} +1 -1
  12. package/dist/{py-CCtvrzWS.js → py-_z3TfAz4.js} +2 -2
  13. package/dist/{py-CCtvrzWS.js.map → py-_z3TfAz4.js.map} +1 -1
  14. package/dist/{py-editor-DiFcvRlU.js → py-editor-CZ3TM8k0.js} +2 -2
  15. package/dist/{py-editor-DiFcvRlU.js.map → py-editor-CZ3TM8k0.js.map} +1 -1
  16. package/dist/{py-game-2v7HaC-d.js → py-game-DPu1fyiF.js} +2 -2
  17. package/dist/py-game-DPu1fyiF.js.map +1 -0
  18. package/dist/{py-terminal-C8V2KXpf.js → py-terminal-CkK0KvpF.js} +2 -2
  19. package/dist/{py-terminal-C8V2KXpf.js.map → py-terminal-CkK0KvpF.js.map} +1 -1
  20. package/dist/toml-V4Savzlc.js +3 -0
  21. package/dist/toml-V4Savzlc.js.map +1 -0
  22. package/package.json +5 -5
  23. package/src/config.js +11 -8
  24. package/src/core.js +2 -1
  25. package/dist/core-uXjUCyYJ.js +0 -4
  26. package/dist/core-uXjUCyYJ.js.map +0 -1
  27. package/dist/py-game-2v7HaC-d.js.map +0 -1
  28. package/dist/toml-DCqPSmRg.js +0 -3
  29. package/dist/toml-DCqPSmRg.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"py-game-2v7HaC-d.js","sources":["../node_modules/polyscript/esm/exports.js","../src/plugins/py-game.js"],"sourcesContent":["// this file simply exports enough stuff to allow\n// 3rd party libraries, including PyScript, to work\nimport { buffered } from './interpreter/_io.js';\nimport { createProgress } from './interpreter/_utils.js';\nimport { loadProgress as lP } from './interpreter/_python.js';\nimport { registry } from './interpreters.js';\n\nconst loadProgress = (type, ...rest) => lP(registry.get(type), ...rest);\n\nexport { buffered, createProgress, loadProgress };\nexport * from './index.js';\nexport * from './script-handler.js';\nexport * from './utils.js';\n","import {\n dedent,\n define,\n createProgress,\n loadProgress,\n} from \"polyscript/exports\";\n\nimport { stdlib } from \"../core.js\";\nimport { configDetails } from \"../config.js\";\nimport { getText } from \"../fetch.js\";\n\nconst progress = createProgress(\"py-game\");\n\nconst inputPatch = `\nimport builtins\ndef input(prompt=\"\"):\n import js\n return js.prompt(prompt)\n\nbuiltins.input = input\ndel builtins\ndel input\n`;\n\nlet toBeWarned = true;\n\nconst hooks = {\n main: {\n onReady: async (wrap, script) => {\n if (toBeWarned) {\n toBeWarned = false;\n console.warn(\"⚠️ EXPERIMENTAL `py-game` FEATURE\");\n }\n\n let config = {};\n if (script.hasAttribute(\"config\")) {\n const value = script.getAttribute(\"config\");\n const { json, toml, text, url } = await configDetails(value);\n if (json) config = JSON.parse(text);\n else if (toml) {\n const { parse } = await import(\n /* webpackIgnore: true */ \"../3rd-party/toml.js\"\n );\n config = parse(text);\n }\n if (config.packages) {\n await wrap.interpreter.loadPackage(\"micropip\");\n const micropip = wrap.interpreter.pyimport(\"micropip\");\n await micropip.install(config.packages, {\n keep_going: true,\n });\n micropip.destroy();\n }\n await loadProgress(\n \"py-game\",\n progress,\n wrap.interpreter,\n config,\n url ? new URL(url, location.href).href : location.href,\n );\n }\n\n wrap.interpreter.registerJsModule(\"_pyscript\", {\n PyWorker() {\n throw new Error(\n \"Unable to use PyWorker in py-game scripts\",\n );\n },\n js_import: (...urls) =>\n Promise.all(urls.map((url) => import(url))),\n get target() {\n return script.id;\n },\n });\n\n await wrap.interpreter.runPythonAsync(stdlib);\n wrap.interpreter.runPython(inputPatch);\n\n let code = dedent(script.textContent);\n if (script.src) code = await fetch(script.src).then(getText);\n\n const target = script.getAttribute(\"target\") || \"canvas\";\n const canvas = document.getElementById(target);\n wrap.interpreter.canvas.setCanvas2D(canvas);\n\n // allow 3rd party to hook themselves right before\n // the code gets executed\n const event = new CustomEvent(\"py-game\", {\n bubbles: true,\n cancelable: true,\n detail: {\n canvas,\n code,\n config,\n wrap,\n },\n });\n script.dispatchEvent(event);\n // run only if the default was not prevented\n if (!event.defaultPrevented)\n await wrap.interpreter.runPythonAsync(code);\n },\n },\n};\n\ndefine(\"py-game\", {\n config: { packages: [\"pygame-ce\"] },\n configURL: new URL(\"./config.txt\", location.href).href,\n interpreter: \"pyodide\",\n env: \"py-game\",\n hooks,\n});\n"],"names":["progress","createProgress","toBeWarned","hooks","main","onReady","async","wrap","script","console","warn","config","hasAttribute","value","getAttribute","json","toml","text","url","configDetails","JSON","parse","import","packages","interpreter","loadPackage","micropip","pyimport","install","keep_going","destroy","type","rest","lP","registry","get","loadProgress","URL","location","href","registerJsModule","PyWorker","Error","js_import","urls","Promise","all","map","target","id","runPythonAsync","stdlib","runPython","code","dedent","textContent","src","fetch","then","getText","canvas","document","getElementById","setCanvas2D","event","CustomEvent","bubbles","cancelable","detail","dispatchEvent","defaultPrevented","define","configURL","env"],"mappings":"wFAOA,MCIMA,EAAWC,EAAe,WAahC,IAAIC,GAAa,EAEjB,MAAMC,EAAQ,CACVC,KAAM,CACFC,QAASC,MAAOC,EAAMC,KACdN,IACAA,GAAa,EACbO,QAAQC,KAAK,sCAGjB,IAAIC,EAAS,CAAA,EACb,GAAIH,EAAOI,aAAa,UAAW,CAC/B,MAAMC,EAAQL,EAAOM,aAAa,WAC5BC,KAAEA,EAAIC,KAAEA,EAAIC,KAAEA,EAAIC,IAAEA,SAAcC,EAAcN,GACtD,GAAIE,EAAMJ,EAASS,KAAKC,MAAMJ,QACzB,GAAID,EAAM,CACX,MAAMK,MAAEA,SAAgBC,OACM,sBAE9BX,EAASU,EAAMJ,EACnB,CACA,GAAIN,EAAOY,SAAU,OACXhB,EAAKiB,YAAYC,YAAY,YACnC,MAAMC,EAAWnB,EAAKiB,YAAYG,SAAS,kBACrCD,EAASE,QAAQjB,EAAOY,SAAU,CACpCM,YAAY,IAEhBH,EAASI,SACb,MD7CK,EAACC,KAASC,IAASC,EAAGC,EAASC,IAAIJ,MAAUC,GC8C5CI,CACF,UACApC,EACAO,EAAKiB,YACLb,EACAO,EAAM,IAAImB,IAAInB,EAAKoB,SAASC,MAAMA,KAAOD,SAASC,KAE1D,CAEAhC,EAAKiB,YAAYgB,iBAAiB,YAAa,CAC3C,QAAAC,GACI,MAAM,IAAIC,MACN,4CAER,EACAC,UAAW,IAAIC,IACXC,QAAQC,IAAIF,EAAKG,IAAK7B,GAAQI,OAAOJ,KACzC,UAAI8B,GACA,OAAOxC,EAAOyC,EAClB,UAGE1C,EAAKiB,YAAY0B,eAAeC,GACtC5C,EAAKiB,YAAY4B,UA/DV,8IAiEP,IAAIC,EAAOC,EAAO9C,EAAO+C,aACrB/C,EAAOgD,MAAKH,QAAaI,MAAMjD,EAAOgD,KAAKE,KAAKC,IAEpD,MAAMX,EAASxC,EAAOM,aAAa,WAAa,SAC1C8C,EAASC,SAASC,eAAed,GACvCzC,EAAKiB,YAAYoC,OAAOG,YAAYH,GAIpC,MAAMI,EAAQ,IAAIC,YAAY,UAAW,CACrCC,SAAS,EACTC,YAAY,EACZC,OAAQ,CACJR,SACAP,OACA1C,SACAJ,UAGRC,EAAO6D,cAAcL,GAEhBA,EAAMM,wBACD/D,EAAKiB,YAAY0B,eAAeG,MAKtDkB,EAAO,UAAW,CACd5D,OAAQ,CAAEY,SAAU,CAAC,cACrBiD,UAAW,IAAInC,IAAI,eAAgBC,SAASC,MAAMA,KAClDf,YAAa,UACbiD,IAAK,UACLtE","x_google_ignoreList":[0]}
@@ -1,3 +0,0 @@
1
- /*! (c) Andrea Giammarchi - ISC */
2
- const{isArray:e}=Array,{parse:r}=JSON,s=(e,{s:r})=>e.replace(/"s(\d+)"/g,(e,s)=>r[s]),t=(e,s)=>r(e.replace(/(\S+?)\s*=/g,'"$1":'),(e,r)=>"string"==typeof r?s[r[0]][r.slice(1)]:r),p=(r,t,p,l)=>{for(let a=0,{length:c}=r,g=c-1;a<c;a++){const c=s(r[a],t);p=p[c]||(p[c]=l&&a===g?[]:{}),e(p)&&(a!==g&&p.length||p.push({}),p=p.at(-1))}return p},l=e=>{const[r,l]=((e,r,s)=>[e.replace(/(["'])(?:(?=(\\?))\2.)*?\1/g,e=>`"s${r.push(e.slice(1,-1))-1}"`).replace(/\d{2,}([:-]\d{2}){2}([ T:-][\dZ:-]+)?/g,e=>`"d${s.push(new Date(e))-1}"`).replace(/,\s*[\r\n]+/g,", ").replace(/\[\s*[\r\n]+/g,"[").replace(/[\r\n]+\s*]/g,"]").replace(/,\s*]/g,"]"),{s:r,d:s}])(e,[],[]),a={};let c=a;for(let e of r.split(/[\r\n]+/))if((e=e.trim())&&!e.startsWith("#"))if(/^(\[+)(.*?)\]+/.test(e))c=p(RegExp.$2.trim().split("."),l,a,"["!==RegExp.$1);else if(/^(\S+?)\s*=([^#]+)/.test(e)){const{$1:e,$2:r}=RegExp;c[s(e,l)]=t(r.trim(),l)}return a};export{l as parse};
3
- //# sourceMappingURL=toml-DCqPSmRg.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toml-DCqPSmRg.js","sources":["../node_modules/polyscript/esm/3rd-party/toml.js"],"sourcesContent":["/* c8 ignore start */\n/*! (c) Andrea Giammarchi - ISC */\n\nconst {isArray} = Array;\nconst {parse: jsonParse} = JSON;\n\n/** @typedef {{s: string[], d: Date[]}} Foreign foreign strings and dates */\n\n/**\n * Transform quoted keys into regular keys.\n * @param {string} str the key to eventually normalize\n * @param {Foreign} foreign foreign strings and dates\n * @returns \n */\nconst getKey = (str, {s}) => str.replace(/\"s(\\d+)\"/g, (_, $1) => s[$1]);\n\n/**\n * Given a `'string'` or a `\"string\"` returns a JSON compatible string.\n * @param {string} str a TOML entry to parse\n * @param {Foreign} foreign foreign strings and dates\n * @returns {string}\n */\nconst getValue = (str, foreign) => jsonParse(\n str.replace(/(\\S+?)\\s*=/g, '\"$1\":'),\n (_, value) => typeof value === 'string' ?\n foreign[value[0]][value.slice(1)] :\n value\n);\n\n/**\n * Crawl the `json` object via the given array of keys and handle array entries.\n * @param {string[]} keys a path with all keys to reach the entry\n * @param {Foreign} foreign foreign strings and dates\n * @param {object} entry the root entry of the TOML\n * @param {boolean} asArray handle array entries\n * @returns {object} the current entry to handle\n */\nconst getPath = (keys, foreign, entry, asArray) => {\n for (let i = 0, {length} = keys, last = length - 1; i < length; i++) {\n const key = getKey(keys[i], foreign);\n entry = entry[key] || (entry[key] = (asArray && (i === last) ? [] : {}));\n if (isArray(entry)) {\n if ((i === last) || !entry.length)\n entry.push({});\n entry = entry.at(-1);\n }\n }\n return entry;\n};\n\n/**\n * Given a TOML text, removes stirngs and dates for easier parsing +\n * remove multi-line arrays to not need evaluation.\n * @param {string} toml the TOML text to map\n * @param {string[]} strings mapped strings\n * @param {Date[]} dates mapped Dates\n * @returns {[string, Foreign]}\n */\nconst mapForeign = (toml, strings, dates) => [\n toml\n // map strings in the TOML\n .replace(\n /([\"'])(?:(?=(\\\\?))\\2.)*?\\1/g,\n value => `\"s${strings.push(value.slice(1, -1)) - 1}\"`\n )\n // map dates in the TOML\n .replace(\n /\\d{2,}([:-]\\d{2}){2}([ T:-][\\dZ:-]+)?/g,\n value => `\"d${dates.push(new Date(value)) - 1}\"`\n )\n // avoid multi-line array entries\n .replace(/,\\s*[\\r\\n]+/g, ', ')\n .replace(/\\[\\s*[\\r\\n]+/g, '[')\n .replace(/[\\r\\n]+\\s*]/g, ']')\n // remove trailing commas\n .replace(/,\\s*]/g, ']'),\n {s: strings, d: dates}\n];\n\n/**\n * Given a simple subset of a TOML file, returns its JS equivalent.\n * @param {string} toml the TOML text to parse\n * @returns {object} the TOML equivalent as JSON serializable\n */\nconst parse = toml => {\n const [text, foreign] = mapForeign(toml, [], []);\n const json = {};\n let entry = json;\n for (let line of text.split(/[\\r\\n]+/)) {\n if ((line = line.trim()) && !line.startsWith('#')) {\n if (/^(\\[+)(.*?)\\]+/.test(line))\n entry = getPath(RegExp.$2.trim().split('.'), foreign, json, RegExp.$1 !== '[');\n else if (/^(\\S+?)\\s*=([^#]+)/.test(line)) {\n const {$1: key, $2: value} = RegExp;\n entry[getKey(key, foreign)] = getValue(value.trim(), foreign);\n }\n }\n }\n return json;\n};\n\nexport { parse };\n\n/* c8 ignore stop */\n"],"names":["isArray","Array","parse","jsonParse","JSON","getKey","str","s","replace","_","$1","getValue","foreign","value","slice","getPath","keys","entry","asArray","i","length","last","key","push","at","toml","text","strings","dates","Date","d","mapForeign","json","line","split","trim","startsWith","test","RegExp","$2"],"mappings":";AAGA,MAAMA,QAACA,GAAWC,OACXC,MAAOC,GAAaC,KAUrBC,EAAS,CAACC,GAAMC,OAAOD,EAAIE,QAAQ,YAAa,CAACC,EAAGC,IAAOH,EAAEG,IAQ7DC,EAAW,CAACL,EAAKM,IAAYT,EACjCG,EAAIE,QAAQ,cAAe,SAC3B,CAACC,EAAGI,IAA2B,iBAAVA,EACnBD,EAAQC,EAAM,IAAIA,EAAMC,MAAM,IAC9BD,GAWEE,EAAU,CAACC,EAAMJ,EAASK,EAAOC,KACrC,IAAK,IAAIC,EAAI,GAAGC,OAACA,GAAUJ,EAAMK,EAAOD,EAAS,EAAGD,EAAIC,EAAQD,IAAK,CACnE,MAAMG,EAAMjB,EAAOW,EAAKG,GAAIP,GAC5BK,EAAQA,EAAMK,KAASL,EAAMK,GAAQJ,GAAYC,IAAME,EAAQ,GAAK,CAAA,GAChErB,EAAQiB,KACLE,IAAME,GAAUJ,EAAMG,QACzBH,EAAMM,KAAK,IACbN,EAAQA,EAAMO,OAElB,CACA,OAAOP,GAqCHf,EAAQuB,IACZ,MAAOC,EAAMd,GA3BI,EAACa,EAAME,EAASC,IAAU,CAC3CH,EAEGjB,QACC,8BACAK,GAAS,KAAKc,EAAQJ,KAAKV,EAAMC,MAAM,GAAG,IAAO,MAGlDN,QACC,yCACAK,GAAS,KAAKe,EAAML,KAAK,IAAIM,KAAKhB,IAAU,MAG7CL,QAAQ,eAAgB,MACxBA,QAAQ,gBAAiB,KACzBA,QAAQ,eAAgB,KAExBA,QAAQ,SAAU,KACrB,CAACD,EAAGoB,EAASG,EAAGF,IASQG,CAAWN,EAAM,GAAI,IACvCO,EAAO,CAAA,EACb,IAAIf,EAAQe,EACZ,IAAK,IAAIC,KAAQP,EAAKQ,MAAM,WAC1B,IAAKD,EAAOA,EAAKE,UAAYF,EAAKG,WAAW,KAC3C,GAAI,iBAAiBC,KAAKJ,GACxBhB,EAAQF,EAAQuB,OAAOC,GAAGJ,OAAOD,MAAM,KAAMtB,EAASoB,EAAoB,MAAdM,OAAO5B,SAChE,GAAI,qBAAqB2B,KAAKJ,GAAO,CACxC,MAAOvB,GAAIY,EAAKiB,GAAI1B,GAASyB,OAC7BrB,EAAMZ,EAAOiB,EAAKV,IAAYD,EAASE,EAAMsB,OAAQvB,EACvD,CAGJ,OAAOoB","x_google_ignoreList":[0]}