{"_id":"@codemonster-ru/vueforge-playground-core","_rev":"5-1efb40f57e38a2f55113928e078a1cc9","name":"@codemonster-ru/vueforge-playground-core","dist-tags":{"latest":"2.1.0"},"versions":{"1.0.0":{"name":"@codemonster-ru/vueforge-playground-core","version":"1.0.0","keywords":["vueforge","playground","runtime","sandbox"],"license":"MIT","_id":"@codemonster-ru/vueforge-playground-core@1.0.0","maintainers":[{"name":"kolesnikov_k_a","email":"kolesnikov-kiril@mail.ru"}],"homepage":"https://github.com/codemonster-ru/vueforge/tree/main/packages/playground-core#readme","bugs":{"url":"https://github.com/codemonster-ru/vueforge/issues"},"dist":{"shasum":"9359f4ef278d6c497f92b69cf1c3ce274bacc3a4","tarball":"https://registry.npmjs.org/@codemonster-ru/vueforge-playground-core/-/vueforge-playground-core-1.0.0.tgz","fileCount":5,"integrity":"sha512-crMr8SsNgT3+xk1SSDtqv13OTEjxoSzW0bd+HrU7Omv9CVhs6BfxtNAythSIVLCHeTMZHBSMBGN6XKENiIHukg==","signatures":[{"sig":"MEUCIQDsR/M3CVnUpIG39pym/bM4CytuRXkrhTdpATc9O1qfRAIgP8Xkb6FQXVmpVACOTKI6Fsx5c0D7tNO6cxiHxUAQuTg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11881},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"4996154a16c40f882c720d10967b8de843972930","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean --external typescript","check":"npm run lint && npm run typecheck && npm run test && npm run build","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"kolesnikov_k_a","email":"kolesnikov-kiril@mail.ru"},"repository":{"url":"git+https://github.com/codemonster-ru/vueforge.git","type":"git","directory":"packages/playground-core"},"_npmVersion":"11.9.0","description":"Framework-agnostic playground core runtime","directories":{},"_nodeVersion":"24.14.0","dependencies":{"typescript":"^5.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0"},"_npmOperationalInternal":{"tmp":"tmp/vueforge-playground-core_1.0.0_1778007431772_0.09310627440628028","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@codemonster-ru/vueforge-playground-core","version":"1.1.0","keywords":["vueforge","playground","runtime","sandbox"],"license":"MIT","_id":"@codemonster-ru/vueforge-playground-core@1.1.0","maintainers":[{"name":"kolesnikov_k_a","email":"kolesnikov-kiril@mail.ru"}],"homepage":"https://github.com/codemonster-ru/vueforge/tree/main/packages/playground-core#readme","bugs":{"url":"https://github.com/codemonster-ru/vueforge/issues"},"dist":{"shasum":"8c430796369e29be08a478715c0ee571174fbf71","tarball":"https://registry.npmjs.org/@codemonster-ru/vueforge-playground-core/-/vueforge-playground-core-1.1.0.tgz","fileCount":5,"integrity":"sha512-tF/LcIOEswT/bnkpgm/4TNUJE/JDz9URBvUTyt2n5aOPwHP09xKJk28CkmVGm1bnTjzkqOFgaYkV4daGRw33ug==","signatures":[{"sig":"MEYCIQCHdIBurw8+9xYNKYirxos07eTcIQ/qE+hTba5/C+7tPgIhAI6kSkfBb0zoKX5LXB3uQDS7nSN2z74LVg2++twP8nR9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codemonster-ru%2fvueforge-playground-core@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19242},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8d173b241c93ccbb0f9987f286d10056b16be3a7","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean --external typescript","check":"npm run lint && npm run typecheck && npm run test && npm run build","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b81ec1d9-3953-4f8e-b862-2689315a0877"}},"repository":{"url":"git+https://github.com/codemonster-ru/vueforge.git","type":"git","directory":"packages/playground-core"},"_npmVersion":"11.11.0","description":"Framework-agnostic playground core runtime","directories":{},"_nodeVersion":"24.14.1","dependencies":{"typescript":"^5.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0"},"_npmOperationalInternal":{"tmp":"tmp/vueforge-playground-core_1.1.0_1778251635701_0.9424573072031048","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@codemonster-ru/vueforge-playground-core","version":"1.1.1","keywords":["vueforge","playground","runtime","sandbox"],"license":"MIT","_id":"@codemonster-ru/vueforge-playground-core@1.1.1","maintainers":[{"name":"kolesnikov_k_a","email":"kolesnikov-kiril@mail.ru"}],"homepage":"https://github.com/codemonster-ru/vueforge/tree/main/packages/playground-core#readme","bugs":{"url":"https://github.com/codemonster-ru/vueforge/issues"},"dist":{"shasum":"8c44ffa4a1b6efdd2b39566b3a5d58f2d94e1fc0","tarball":"https://registry.npmjs.org/@codemonster-ru/vueforge-playground-core/-/vueforge-playground-core-1.1.1.tgz","fileCount":5,"integrity":"sha512-baPH3BvAsD8qXWPSVxo856Dga4IBo/oU7UxOHohp5HXCIJIwxVs5gqhCcZZXLNM2i/eBKr9ws7qVXD1gjNEYKg==","signatures":[{"sig":"MEUCIQCd3H90PyI0jzFMms+ImwTdyrO/rfQH6u7GnXICAvpobgIgF9UU7q84yJx6TFLNZe0h6Z5naiHr6WZ6usZcyTZQSHU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codemonster-ru%2fvueforge-playground-core@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19266},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"3fa7eb4600ed2917325a33a62ac79e1f000cb1a3","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean --external typescript","check":"npm run lint && npm run typecheck && npm run test && npm run build","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b81ec1d9-3953-4f8e-b862-2689315a0877"}},"repository":{"url":"git+https://github.com/codemonster-ru/vueforge.git","type":"git","directory":"packages/playground-core"},"_npmVersion":"11.12.1","description":"Framework-agnostic playground core runtime","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"typescript":"^5.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0"},"_npmOperationalInternal":{"tmp":"tmp/vueforge-playground-core_1.1.1_1779972128131_0.8672618087796151","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@codemonster-ru/vueforge-playground-core","version":"2.0.0","keywords":["vueforge","playground","runtime","sandbox"],"license":"MIT","_id":"@codemonster-ru/vueforge-playground-core@2.0.0","maintainers":[{"name":"kolesnikov_k_a","email":"kolesnikov-kiril@mail.ru"}],"homepage":"https://github.com/codemonster-ru/vueforge/tree/main/packages/playground-core#readme","bugs":{"url":"https://github.com/codemonster-ru/vueforge/issues"},"dist":{"shasum":"09a08bf34ff7db07e7a39927b04181577c5cea50","tarball":"https://registry.npmjs.org/@codemonster-ru/vueforge-playground-core/-/vueforge-playground-core-2.0.0.tgz","fileCount":5,"integrity":"sha512-OyRCcRXjyMWbx7YO6Ch8xsDOOEhD/W64FayiIcPTFHATQQpDthn4Rgv+6czyLHgGvfw1UOJd1VnttKhjqkqOiQ==","signatures":[{"sig":"MEQCIG/BB4Bu2FFaMOJT9cXJqi2fLK1bf/cNf5VaIzPR6cpNAiB67NWFUwHgyTZCzyvdrTOU4gozTSkVl5PiVEggh84mGg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codemonster-ru%2fvueforge-playground-core@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25358},"type":"module","_from":"file:.release-artifacts/codemonster-ru-vueforge-playground-core-2.0.0.tgz","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"4b9b1828721ab3a11a6ab745af8b39646d3b04e8","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup src/index.ts --format esm --dts --clean --external typescript","check":"npm run lint && npm run typecheck && npm run test && npm run build","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b81ec1d9-3953-4f8e-b862-2689315a0877"}},"_resolved":"/home/runner/work/vueforge/vueforge/.release-artifacts/codemonster-ru-vueforge-playground-core-2.0.0.tgz","_integrity":"sha512-OyRCcRXjyMWbx7YO6Ch8xsDOOEhD/W64FayiIcPTFHATQQpDthn4Rgv+6czyLHgGvfw1UOJd1VnttKhjqkqOiQ==","repository":{"url":"git+https://github.com/codemonster-ru/vueforge.git","type":"git","directory":"packages/playground-core"},"_npmVersion":"11.9.0","description":"Framework-agnostic playground core runtime","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"typescript":"^5.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","eslint":"^9.39.4","vitest":"^3.2.6"},"_npmOperationalInternal":{"tmp":"tmp/vueforge-playground-core_2.0.0_1784920841324_0.12456660075473414","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@codemonster-ru/vueforge-playground-core","version":"2.1.0","description":"Framework-agnostic playground core runtime","type":"module","license":"MIT","engines":{"node":">=18"},"homepage":"https://github.com/codemonster-ru/vueforge/tree/main/packages/playground-core#readme","bugs":{"url":"https://github.com/codemonster-ru/vueforge/issues"},"repository":{"type":"git","url":"git+https://github.com/codemonster-ru/vueforge.git","directory":"packages/playground-core"},"keywords":["vueforge","playground","runtime","sandbox"],"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup src/index.ts src/typescriptWorker.js --format esm --dts --clean --external typescript","check":"npm run lint && npm run typecheck && npm run test && npm run build","lint":"eslint .","prepack":"npm run build","test":"vitest run","test:watch":"vitest","typecheck":"tsc -p tsconfig.json --noEmit"},"dependencies":{"typescript":"^5.8.2"},"devDependencies":{"eslint":"^10.8.0","tsup":"^8.5.0","vitest":"^3.2.6"},"publishConfig":{"access":"public"},"sideEffects":false,"gitHead":"fd793696f50d3be0fcd3788f0f8f751c63869963","_id":"@codemonster-ru/vueforge-playground-core@2.1.0","_integrity":"sha512-J6DK3XblSOYsey8zXTxSYKS/ASuuqWn6hMOcs4N4md0X5MySU8ZtLDDEuFsgYTwO8dzzuWtonxedPFu1e/g0MA==","_resolved":"/home/runner/work/vueforge/vueforge/.release-artifacts/codemonster-ru-vueforge-playground-core-2.1.0.tgz","_from":"file:.release-artifacts/codemonster-ru-vueforge-playground-core-2.1.0.tgz","_nodeVersion":"24.18.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-J6DK3XblSOYsey8zXTxSYKS/ASuuqWn6hMOcs4N4md0X5MySU8ZtLDDEuFsgYTwO8dzzuWtonxedPFu1e/g0MA==","shasum":"96b06ac2abbcf3397a3087050d341ee818d49cdb","tarball":"https://registry.npmjs.org/@codemonster-ru/vueforge-playground-core/-/vueforge-playground-core-2.1.0.tgz","fileCount":7,"unpackedSize":29394,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codemonster-ru%2fvueforge-playground-core@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC+SiNJCovbAsvEouNrORSviVDvPbL6SD5XawnZy53pUQIgGFW5UAzXu4u5Oog2jQfQUHpOPQZqeWkcfhTBvMeUClI="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b81ec1d9-3953-4f8e-b862-2689315a0877"}},"directories":{},"maintainers":[{"name":"kolesnikov_k_a","email":"kolesnikov-kiril@mail.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vueforge-playground-core_2.1.0_1786369673080_0.031569221287877536"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-05T18:57:11.674Z","modified":"2026-08-10T13:47:53.524Z","1.0.0":"2026-05-05T18:57:11.946Z","1.1.0":"2026-05-08T14:47:15.848Z","1.1.1":"2026-05-28T12:42:08.299Z","2.0.0":"2026-07-24T19:20:41.488Z","2.1.0":"2026-08-10T13:47:53.204Z"},"bugs":{"url":"https://github.com/codemonster-ru/vueforge/issues"},"license":"MIT","homepage":"https://github.com/codemonster-ru/vueforge/tree/main/packages/playground-core#readme","keywords":["vueforge","playground","runtime","sandbox"],"repository":{"type":"git","url":"git+https://github.com/codemonster-ru/vueforge.git","directory":"packages/playground-core"},"description":"Framework-agnostic playground core runtime","maintainers":[{"name":"kolesnikov_k_a","email":"kolesnikov-kiril@mail.ru"}],"readme":"# VueForge Playground Core\n\n![npm version](https://img.shields.io/npm/v/@codemonster-ru/vueforge-playground-core)\n![npm downloads](https://img.shields.io/npm/dm/@codemonster-ru/vueforge-playground-core)\n![publish](https://img.shields.io/github/actions/workflow/status/codemonster-ru/vueforge/release-from-tag.yml?label=publish)\n![license](https://img.shields.io/npm/l/@codemonster-ru/vueforge-playground-core)\n\nA framework-agnostic runtime core for interactive playground sessions in the VueForge ecosystem.\n\nCoordinated release: `@codemonster-ru/vueforge-playground-core@2.1.0`.\n\n## Requirements\n\n- Node.js 18 or newer for installation and build tooling.\n- A browser iframe for the built-in browser runtime. Remote runtimes can provide their own executor.\n\n## Install\n\n```bash\nnpm install @codemonster-ru/vueforge-playground-core\n```\n\n```bash\npnpm add @codemonster-ru/vueforge-playground-core\n```\n\n```bash\nyarn add @codemonster-ru/vueforge-playground-core\n```\n\n## Quick start\n\nThe package exposes one side-effect-free ESM entry and no CSS:\n\n```html\n<iframe id=\"playground-preview\" title=\"Playground preview\" sandbox=\"allow-scripts\"></iframe>\n```\n\n```ts\nimport { createPlaygroundSession } from '@codemonster-ru/vueforge-playground-core';\n\nconst iframe = document.querySelector<HTMLIFrameElement>('#playground-preview');\nif (!iframe) {\n  throw new Error('Playground preview iframe is missing.');\n}\n\nconst session = createPlaygroundSession({\n  files: { '/index.ts': 'console.log(\"ready\")' },\n  entry: '/index.ts',\n  iframe,\n});\n\nawait session.run();\n```\n\nThe browser runtime validates iframe messages and import resolution, and reports structured\nruntime errors. Importing the module is SSR-safe, but executing the browser runtime requires DOM\nAPIs. Call `dispose()` when the host is removed.\n\nTypeScript powers in-browser transpilation. Consumer bundlers therefore emit a compiler worker of\nabout 1 MiB gzip, but browsers download it only when a `.ts` file or inline `text/typescript` script\nmust be transpiled. Compilation runs in a dedicated Web Worker to keep compiler parsing and\ntranspilation off the UI thread. JavaScript/HTML-only sessions keep using the lightweight browser\nruntime. The Vue Playground UI activates the runtime boundary only when a sandbox session is created.\n\n## Package-local documentation\n\nSee\n[src/index.ts](https://github.com/codemonster-ru/vueforge/blob/main/packages/playground-core/src/index.ts),\n[src/types.ts](https://github.com/codemonster-ru/vueforge/blob/main/packages/playground-core/src/types.ts),\nand\n[CHANGELOG.md](https://github.com/codemonster-ru/vueforge/blob/main/packages/playground-core/CHANGELOG.md).\nThe higher-level Vue integration is documented in\n[`@codemonster-ru/vueforge-playground`](https://github.com/codemonster-ru/vueforge/blob/main/packages/playground/README.md).\n\n## License\n\n[MIT](https://github.com/codemonster-ru/vueforge/blob/main/packages/playground-core/LICENSE)\n","readmeFilename":"README.md"}