{"_id":"@afjk/loomlet","_rev":"5-920a66404eb0fcd8c63c44695f80226e","name":"@afjk/loomlet","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@afjk/loomlet","version":"0.1.0","keywords":["loomlet","dsl","dataflow","scene","scenesync","repl","cli"],"license":"MIT","_id":"@afjk/loomlet@0.1.0","maintainers":[{"name":"afjk","email":"afjk01@gmail.com"}],"homepage":"https://github.com/afjk/loomlet#readme","bugs":{"url":"https://github.com/afjk/loomlet/issues"},"bin":{"loomlet":"bin/loomlet.mjs"},"dist":{"shasum":"ca305d37314a4d1fbe9364a9d3c00dac16531162","tarball":"https://registry.npmjs.org/@afjk/loomlet/-/loomlet-0.1.0.tgz","fileCount":33,"integrity":"sha512-CUJFKcFalMMzzpYXippegjAWE9X5U/0FWJqlfrsMvsrqBf/BQFss21zniNHb0MTun9C5TXBlBz3ODSPoVk0hGw==","signatures":[{"sig":"MEUCIGHcQQEfgKMbjX/JuZ7LNsR/5o+RvYsOKtCjjOlai7ICAiEAzeDyKIB8c39+nFF9SrZy+4RA0JXGqmLRttL4v5Pqqp8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":356940},"type":"module","engines":{"node":">=20"},"exports":{".":"./src/index.js","./dsl":"./src/loom-dsl.js","./runtime":"./src/loom.js","./metadata":"./src/editor-metadata.js","./editor-model":"./src/loom-editor-model.js","./canonical-dsl":"./src/canonical-dsl.js","./node-editor-core":"./src/node-editor-core.js"},"gitHead":"1ac271d28b94c6a210b150bd582d64ea8f57bec8","private":false,"scripts":{"loom":"node bin/loom.mjs","test":"npm run test:unit","loomlet":"node bin/loomlet.mjs","pack:cli":"npm pack","test:cli":"node test/loom-cli.test.mjs","test:repl":"node test/loom-repl-session.test.mjs && node test/loom-repl-cli.test.mjs","test:unit":"node test/loom-cli.test.mjs && node test/tour-runnable.test.mjs && node test/vscode-examples.test.mjs && node test/scenesync-demo-cli.test.mjs && node test/loom-repl-session.test.mjs && node test/loom-repl-cli.test.mjs && node test/scenesync-client.test.mjs && node test/scenesync-session-store.test.mjs && node test/scenesync-effects.test.mjs && node test/scenesync-graphs.test.mjs && node test/scenesync-graph-adapter.test.mjs && node test/stdlib-baseline.test.mjs","pack:vscode":"cd extensions/vscode-loomlet && npx @vscode/vsce package","pages:build":"rm -rf dist-pages && mkdir -p dist-pages/node-editor dist-pages/editor dist-pages/src && cd editor-studio && npm install && VITE_BASE_PATH=/loomlet/node-editor/ npm run build && cp -R dist/* ../dist-pages/node-editor/ && cd .. && cp -R editor/* dist-pages/editor/ && cp -R src/* dist-pages/src/ && printf '<!doctype html>\\n<html>\\n<head><meta charset=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"/><title>Loomlet</title></head>\\n<body><h1>Loomlet</h1><ul><li><a href=\"./editor/\">Simple Editor</a></li><li><a href=\"./node-editor/\">Node Editor</a></li></ul></body>\\n</html>\\n' > dist-pages/index.html","pack:dry-run":"npm pack --dry-run","test:browser":"node ci/run-tests.mjs","build:node-editor":"cd editor-studio && npm install && VITE_BASE_PATH=/loomlet/node-editor/ npm run build","generate:vscode-metadata":"node scripts/generate-vscode-metadata.mjs"},"_npmUser":{"name":"afjk","email":"afjk01@gmail.com"},"repository":{"url":"git+https://github.com/afjk/loomlet.git","type":"git"},"_npmVersion":"9.6.7","description":"A small reactive DSL and node graph toolkit for interactive scenes.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"playwright":"^1.56.0","http-server":"^14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/loomlet_0.1.0_1778418530704_0.9476091174516088","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@afjk/loomlet","version":"0.1.1","keywords":["loomlet","dsl","dataflow","scene","scenesync","repl","cli"],"license":"MIT","_id":"@afjk/loomlet@0.1.1","maintainers":[{"name":"afjk","email":"afjk01@gmail.com"}],"homepage":"https://github.com/afjk/loomlet#readme","bugs":{"url":"https://github.com/afjk/loomlet/issues"},"bin":{"loomlet":"bin/loomlet.mjs"},"dist":{"shasum":"a386e96a206cdbdd9a78f736ed72045c5cd35af0","tarball":"https://registry.npmjs.org/@afjk/loomlet/-/loomlet-0.1.1.tgz","fileCount":33,"integrity":"sha512-vs+y9taGuCZkSOLW7Eg1xHYbwx5PpH/5hLffuLA4fNCelaIa2U15BSx8w5vfGTQ5gEDPZk9UznCVPudfhnyMQQ==","signatures":[{"sig":"MEYCIQCLSrlJ5wJEA5Z0Z4mKOBRNulWxwC08MQkAMLiTPBv0HAIhAN7YL1zvCuwAAeufp1s8HEFM3A54tSLA5Qvx8bkhGyOj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":327864},"type":"module","engines":{"node":">=20"},"exports":{".":"./src/index.js","./dsl":"./src/loom-dsl.js","./runtime":"./src/loom.js","./metadata":"./src/editor-metadata.js","./editor-model":"./src/loom-editor-model.js","./canonical-dsl":"./src/canonical-dsl.js","./node-editor-core":"./src/node-editor-core.js"},"gitHead":"d1d09a7ed78f34394c847a0f99192d63ce62b0f1","private":false,"scripts":{"loom":"node bin/loom.mjs","test":"npm run test:unit","loomlet":"node bin/loomlet.mjs","pack:cli":"npm pack","test:cli":"node test/loom-cli.test.mjs","test:repl":"node test/loom-repl-session.test.mjs && node test/loom-repl-cli.test.mjs","test:unit":"node test/loom-cli.test.mjs && node test/tour-runnable.test.mjs && node test/vscode-examples.test.mjs && node test/scenesync-demo-cli.test.mjs && node test/loom-repl-session.test.mjs && node test/loom-repl-cli.test.mjs && node test/scenesync-client.test.mjs && node test/scenesync-session-store.test.mjs && node test/scenesync-effects.test.mjs && node test/scenesync-graphs.test.mjs && node test/scenesync-graph-adapter.test.mjs && node test/stdlib-baseline.test.mjs","pack:vscode":"cd extensions/vscode-loomlet && npx @vscode/vsce package","pages:build":"rm -rf dist-pages && mkdir -p dist-pages/node-editor dist-pages/editor dist-pages/src && cd editor-studio && npm install && VITE_BASE_PATH=/loomlet/node-editor/ npm run build && cp -R dist/* ../dist-pages/node-editor/ && cd .. && cp -R editor/* dist-pages/editor/ && cp -R src/* dist-pages/src/ && printf '<!doctype html>\\n<html>\\n<head><meta charset=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"/><title>Loomlet</title></head>\\n<body><h1>Loomlet</h1><ul><li><a href=\"./editor/\">Simple Editor</a></li><li><a href=\"./node-editor/\">Node Editor</a></li></ul></body>\\n</html>\\n' > dist-pages/index.html","pack:dry-run":"npm pack --dry-run","test:browser":"node ci/run-tests.mjs","build:node-editor":"cd editor-studio && npm install && VITE_BASE_PATH=/loomlet/node-editor/ npm run build","generate:vscode-metadata":"node scripts/generate-vscode-metadata.mjs"},"_npmUser":{"name":"afjk","email":"afjk01@gmail.com"},"repository":{"url":"git+https://github.com/afjk/loomlet.git","type":"git"},"_npmVersion":"9.6.7","description":"A small reactive DSL and node graph toolkit for interactive scenes.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"playwright":"^1.56.0","http-server":"^14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/loomlet_0.1.1_1778456163238_0.2691521875364393","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@afjk/loomlet","version":"0.1.2","keywords":["loomlet","dsl","dataflow","scene","scenesync","repl","cli"],"license":"MIT","_id":"@afjk/loomlet@0.1.2","maintainers":[{"name":"afjk","email":"afjk01@gmail.com"}],"homepage":"https://github.com/afjk/loomlet#readme","bugs":{"url":"https://github.com/afjk/loomlet/issues"},"bin":{"loomlet":"bin/loomlet.mjs"},"dist":{"shasum":"b2fa2a240db05dea6d409a77bc26e74ec7797de1","tarball":"https://registry.npmjs.org/@afjk/loomlet/-/loomlet-0.1.2.tgz","fileCount":47,"integrity":"sha512-g+ZE5KiiKaVbdgV1kycG6Rk/HkIFJe7HS7IA6/r/TsnT1Kie+xXS0uAtBE7S1KPArDe15pNkX3rYu7A+qWCbKA==","signatures":[{"sig":"MEQCIHDKSGNH+t/N8MDJqHkIi1wp+V/e3YK//fMA3SaVZp2JAiAwzF7+Y9Vhtt5PDCOvLXNDeOMYy+DBHTAYRRKdRILRzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":357469},"type":"module","engines":{"node":">=20"},"exports":{".":"./src/index.js","./dsl":"./src/loom-dsl.js","./runtime":"./src/loom.js","./metadata":"./src/editor-metadata.js","./editor-model":"./src/loom-editor-model.js","./canonical-dsl":"./src/canonical-dsl.js","./node-editor-core":"./src/node-editor-core.js"},"gitHead":"f524f923aa000534bf98544d6cb219663ac35213","private":false,"scripts":{"loom":"node bin/loom.mjs","test":"npm run test:unit","loomlet":"node bin/loomlet.mjs","pack:cli":"npm pack","test:cli":"node test/loom-cli.test.mjs","test:repl":"node test/loom-repl-session.test.mjs && node test/loom-repl-cli.test.mjs","test:unit":"node test/loom-cli.test.mjs && node test/tour-runnable.test.mjs && node test/vscode-examples.test.mjs && node test/scenesync-demo-cli.test.mjs && node test/loom-repl-session.test.mjs && node test/loom-repl-cli.test.mjs && node test/scenesync-client.test.mjs && node test/scenesync-session-store.test.mjs && node test/scenesync-effects.test.mjs && node test/scenesync-graphs.test.mjs && node test/scenesync-graph-adapter.test.mjs && node test/stabilization-fixtures.test.mjs && node test/stabilization-invalid-fixtures.test.mjs && node test/library-metadata-schema.test.mjs && node test/metadata-registry.test.mjs && node test/node-registry.test.mjs && node test/builtin-node-registration.test.mjs && node test/trusted-package-registration.test.mjs && node test/package-metadata-registration.test.mjs && node test/package-registry-flow.test.mjs && node test/package-import-validation.test.mjs && node test/package-cli-loading.test.mjs && node test/runtime-node-registry.test.mjs && node test/runtime-metadata-drift.test.mjs && node test/unity-runtime-compatibility.test.mjs && node test/stdlib-baseline.test.mjs && node test/runtime-parity-fixtures.test.mjs && node test/library-reference-docs.test.mjs && node test/vscode-metadata-generation.test.mjs","pack:vscode":"cd extensions/vscode-loomlet && npx @vscode/vsce package","pages:build":"rm -rf dist-pages && mkdir -p dist-pages/node-editor dist-pages/editor dist-pages/src && cd editor-studio && npm install && VITE_BASE_PATH=/loomlet/node-editor/ npm run build && cp -R dist/* ../dist-pages/node-editor/ && cd .. && cp -R editor/* dist-pages/editor/ && cp -R src/* dist-pages/src/ && printf '<!doctype html>\\n<html>\\n<head><meta charset=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"/><title>Loomlet</title></head>\\n<body><h1>Loomlet</h1><ul><li><a href=\"./editor/\">Simple Editor</a></li><li><a href=\"./node-editor/\">Node Editor</a></li></ul></body>\\n</html>\\n' > dist-pages/index.html","pack:dry-run":"npm pack --dry-run","test:browser":"node ci/run-tests.mjs","build:node-editor":"cd editor-studio && npm install && VITE_BASE_PATH=/loomlet/node-editor/ npm run build","generate:metadata":"npm run generate:vscode-metadata && npm run generate:library-docs","generate:library-docs":"node scripts/generate-library-reference-docs.mjs","generate:vscode-metadata":"node scripts/generate-vscode-metadata.mjs"},"_npmUser":{"name":"afjk","email":"afjk01@gmail.com"},"repository":{"url":"git+https://github.com/afjk/loomlet.git","type":"git"},"_npmVersion":"9.6.7","description":"A small reactive DSL and node graph toolkit for interactive scenes.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"playwright":"^1.56.0","http-server":"^14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/loomlet_0.1.2_1779020158205_0.3091019111509541","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@afjk/loomlet","version":"0.2.0","keywords":["loomlet","dsl","dataflow","scene","scenesync","repl","cli"],"license":"MIT","_id":"@afjk/loomlet@0.2.0","maintainers":[{"name":"afjk","email":"afjk01@gmail.com"}],"homepage":"https://github.com/afjk/loomlet#readme","bugs":{"url":"https://github.com/afjk/loomlet/issues"},"bin":{"loomlet":"bin/loomlet.mjs"},"dist":{"shasum":"de6244c9a7bbe6cd3d843b617fa41acc4d204b30","tarball":"https://registry.npmjs.org/@afjk/loomlet/-/loomlet-0.2.0.tgz","fileCount":50,"integrity":"sha512-/dBNCtjoNPu7KLuzoKUzTFwLjkaPNVLyciyg7/i/LTiMeHb1eHUo6wuz1NTDERzH6+wS7Nj9NAJHhA8b49Jikg==","signatures":[{"sig":"MEQCIE3FxguOd8d8cFTNGPsRP8dH5HxWRi/oUhTskxd3ISGtAiBh+SycOhn4qgJ4n7ad778Ya2RAvnR6FV6fsQ95gbZNkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@afjk%2floomlet@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":473456},"type":"module","engines":{"node":">=20"},"exports":{".":"./src/index.js","./dsl":"./src/loom-dsl.js","./runtime":"./src/loom.js","./metadata":"./src/editor-metadata.js","./editor-model":"./src/loom-editor-model.js","./canonical-dsl":"./src/canonical-dsl.js","./node-editor-core":"./src/node-editor-core.js","./scenesync-runtime-browser":"./dist/loomlet-scenesync-runtime.browser.js"},"gitHead":"fe298a819c5da36bc3ab441e6cb7c1342e651fa7","private":false,"scripts":{"loom":"node bin/loom.mjs","test":"npm run test:unit","loomlet":"node bin/loomlet.mjs","pack:cli":"npm pack","test:cli":"node test/loom-cli.test.mjs","test:repl":"node test/loom-repl-session.test.mjs && node test/loom-repl-cli.test.mjs","test:unit":"node test/loom-cli.test.mjs && node test/tour-runnable.test.mjs && node test/vscode-examples.test.mjs && node test/scenesync-demo-cli.test.mjs && node test/loom-repl-session.test.mjs && node test/loom-repl-cli.test.mjs && node test/scenesync-client.test.mjs && node test/scenesync-session-store.test.mjs && node test/scenesync-effects.test.mjs && node test/scenesync-graphs.test.mjs && node test/scenesync-graph-adapter.test.mjs && node test/scenesync-runtime-browser-bundle.test.mjs && node test/stabilization-fixtures.test.mjs && node test/stabilization-invalid-fixtures.test.mjs && node test/library-metadata-schema.test.mjs && node test/metadata-registry.test.mjs && node test/node-registry.test.mjs && node test/builtin-node-registration.test.mjs && node test/trusted-package-registration.test.mjs && node test/package-metadata-registration.test.mjs && node test/package-registry-flow.test.mjs && node test/package-import-validation.test.mjs && node test/package-cli-loading.test.mjs && node test/runtime-node-registry.test.mjs && node test/runtime-metadata-drift.test.mjs && node test/unity-runtime-compatibility.test.mjs && node test/stdlib-baseline.test.mjs && node test/runtime-parity-fixtures.test.mjs && node test/library-reference-docs.test.mjs && node test/vscode-metadata-generation.test.mjs","pack:vscode":"cd extensions/vscode-loomlet && npx @vscode/vsce package","pages:build":"rm -rf dist-pages && mkdir -p dist-pages/node-editor dist-pages/editor dist-pages/src && cd editor-studio && npm install && VITE_BASE_PATH=/loomlet/node-editor/ npm run build && cp -R dist/* ../dist-pages/node-editor/ && cd .. && cp -R editor/* dist-pages/editor/ && cp -R src/* dist-pages/src/ && printf '<!doctype html>\\n<html>\\n<head><meta charset=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"/><title>Loomlet</title></head>\\n<body><h1>Loomlet</h1><ul><li><a href=\"./editor/\">Simple Editor</a></li><li><a href=\"./node-editor/\">Node Editor</a></li></ul></body>\\n</html>\\n' > dist-pages/index.html","pack:dry-run":"npm pack --dry-run","test:browser":"node ci/run-tests.mjs","build:node-editor":"cd editor-studio && npm install && VITE_BASE_PATH=/loomlet/node-editor/ npm run build","generate:metadata":"npm run generate:vscode-metadata && npm run generate:library-docs","generate:library-docs":"node scripts/generate-library-reference-docs.mjs","build:scenesync-runtime":"node scripts/build-scenesync-runtime-browser.mjs","generate:vscode-metadata":"node scripts/generate-vscode-metadata.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1b5bf3f4-408c-4901-925e-5270f15eca84"}},"repository":{"url":"git+https://github.com/afjk/loomlet.git","type":"git"},"_npmVersion":"11.15.0","description":"A small reactive DSL and node graph toolkit for interactive scenes.","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"playwright":"^1.56.0","http-server":"^14.1.1"},"_npmOperationalInternal":{"tmp":"tmp/loomlet_0.2.0_1779777659533_0.3960030643360837","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@afjk/loomlet","version":"0.3.0","private":false,"type":"module","description":"A small reactive DSL and node graph toolkit for interactive scenes.","repository":{"type":"git","url":"git+https://github.com/afjk/loomlet.git"},"bugs":{"url":"https://github.com/afjk/loomlet/issues"},"homepage":"https://github.com/afjk/loomlet#readme","license":"MIT","exports":{".":"./src/index.js","./dsl":"./src/loom-dsl.js","./runtime":"./src/loom.js","./scenesync-runtime-browser":"./dist/loomlet-scenesync-runtime.browser.js","./node-editor-core":"./src/node-editor-core.js","./editor-model":"./src/loom-editor-model.js","./canonical-dsl":"./src/canonical-dsl.js","./metadata":"./src/editor-metadata.js"},"publishConfig":{"access":"public"},"keywords":["loomlet","dsl","dataflow","scene","scenesync","repl","cli"],"engines":{"node":">=20"},"bin":{"loomlet":"bin/loomlet.mjs"},"scripts":{"test":"npm run test:unit","test:unit":"node test/loom-cli.test.mjs && node test/tour-runnable.test.mjs && node test/vscode-examples.test.mjs && node test/scenesync-demo-cli.test.mjs && node test/loom-repl-session.test.mjs && node test/loom-repl-cli.test.mjs && node test/scenesync-client.test.mjs && node test/scenesync-session-store.test.mjs && node test/scenesync-effects.test.mjs && node test/scenesync-graphs.test.mjs && node test/scenesync-graph-adapter.test.mjs && node test/scenesync-runtime-browser-bundle.test.mjs && node test/stabilization-fixtures.test.mjs && node test/stabilization-invalid-fixtures.test.mjs && node test/library-metadata-schema.test.mjs && node test/metadata-registry.test.mjs && node test/node-registry.test.mjs && node test/builtin-node-registration.test.mjs && node test/trusted-package-registration.test.mjs && node test/package-metadata-registration.test.mjs && node test/package-registry-flow.test.mjs && node test/package-import-validation.test.mjs && node test/package-cli-loading.test.mjs && node test/runtime-node-registry.test.mjs && node test/runtime-metadata-drift.test.mjs && node test/unity-runtime-compatibility.test.mjs && node test/stdlib-baseline.test.mjs && node test/runtime-parity-fixtures.test.mjs && node scripts/check-unity-runtime-fixtures.mjs && node test/library-reference-docs.test.mjs && node test/vscode-metadata-generation.test.mjs","loomlet":"node bin/loomlet.mjs","loom":"node bin/loom.mjs","test:cli":"node test/loom-cli.test.mjs","test:repl":"node test/loom-repl-session.test.mjs && node test/loom-repl-cli.test.mjs","test:browser":"node ci/run-tests.mjs","build:scenesync-runtime":"node scripts/build-scenesync-runtime-browser.mjs","generate:library-docs":"node scripts/generate-library-reference-docs.mjs","generate:vscode-metadata":"node scripts/generate-vscode-metadata.mjs","generate:metadata":"npm run generate:vscode-metadata && npm run generate:library-docs","pack:dry-run":"npm pack --dry-run","pack:cli":"npm pack","pack:vscode":"cd extensions/vscode-loomlet && npx @vscode/vsce package","build:node-editor":"cd editor-studio && npm install && VITE_BASE_PATH=/loomlet/node-editor/ npm run build","pages:build":"rm -rf dist-pages && mkdir -p dist-pages/node-editor dist-pages/editor dist-pages/src && cd editor-studio && npm install && VITE_BASE_PATH=/loomlet/node-editor/ npm run build && cp -R dist/* ../dist-pages/node-editor/ && cd .. && cp -R editor/* dist-pages/editor/ && cp -R src/* dist-pages/src/ && printf '<!doctype html>\\n<html>\\n<head><meta charset=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"/><title>Loomlet</title></head>\\n<body><h1>Loomlet</h1><ul><li><a href=\"./editor/\">Simple Editor</a></li><li><a href=\"./node-editor/\">Node Editor</a></li></ul></body>\\n</html>\\n' > dist-pages/index.html"},"devDependencies":{"http-server":"^14.1.1","playwright":"^1.56.0"},"gitHead":"51147d3aff5e36f89247a8e5f51122148e6945e6","_id":"@afjk/loomlet@0.3.0","_nodeVersion":"20.20.2","_npmVersion":"11.15.0","dist":{"integrity":"sha512-ydgyyirooD3WwdhJHfc9QIHAOBuDQRSJ1FyJTAbWjxPawjGr/7mlFwfjjBDAhT45o52kon3f9JJebwH+7+bPEA==","shasum":"bbaa99b930a6e7346bc9b28a323fc4048f78596b","tarball":"https://registry.npmjs.org/@afjk/loomlet/-/loomlet-0.3.0.tgz","fileCount":51,"unpackedSize":478406,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@afjk%2floomlet@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGX7Oz/NHgVCHW6ulIHcsu4wZ/FqGKARX3NBZhYzmgs8AiEA9w+ZbrG3TfhfyGJRbdZXWV4zoS+BBkzxg3QsHSw3ysE="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1b5bf3f4-408c-4901-925e-5270f15eca84"}},"directories":{},"maintainers":[{"name":"afjk","email":"afjk01@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/loomlet_0.3.0_1779897683641_0.29176074907430705"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-10T13:08:50.591Z","modified":"2026-05-27T16:01:24.528Z","0.1.0":"2026-05-10T13:08:50.863Z","0.1.1":"2026-05-10T23:36:03.383Z","0.1.2":"2026-05-17T12:15:58.373Z","0.2.0":"2026-05-26T06:40:59.683Z","0.3.0":"2026-05-27T16:01:23.797Z"},"bugs":{"url":"https://github.com/afjk/loomlet/issues"},"license":"MIT","homepage":"https://github.com/afjk/loomlet#readme","keywords":["loomlet","dsl","dataflow","scene","scenesync","repl","cli"],"repository":{"type":"git","url":"git+https://github.com/afjk/loomlet.git"},"description":"A small reactive DSL and node graph toolkit for interactive scenes.","maintainers":[{"name":"afjk","email":"afjk01@gmail.com"}],"readme":"# Loomlet\n\nA small reactive DSL and node graph toolkit for interactive scenes.\n\nLoomlet provides:\n\n- a `.loom` DSL\n- a core JavaScript library\n- a CLI\n- a VS Code extension\n- a Web Node Editor\n\n> Status: experimental. APIs, graph format, and DSL syntax may change.\n\n## Try it\n\n- Web Node Editor: https://afjk.github.io/loomlet/node-editor/\n- Examples: [examples/README.md](examples/README.md)\n\n## Install\n\n```bash\nnpm install @afjk/loomlet\n```\n\n## CLI\n\nCreate a small `.loom` file:\n\n```bash\necho 'x = 1' > hello.loom\n```\n\nCompile it:\n\n```bash\nnpx -p @afjk/loomlet loomlet compile hello.loom\n```\n\nFor global install:\n\n```bash\nnpm install -g @afjk/loomlet\nloomlet --help\n```\n\nTo load a trusted local package file or manifest directory:\n\n```bash\nloomlet run ./file.loom --package ./examples/packages/demo/index.js --get x.out\nloomlet run ./file.loom --package ./path/to/package-dir --get x.out\n```\n\nSee [Package System docs](docs/labs/PACKAGE_SYSTEM.md) for details.\n\n## Library usage\n\n```js\nimport { parseDSLToAST, compileToGraph } from \"@afjk/loomlet\";\n\nconst source = `x = 1`;\n\nconst { ast, errors: parseErrors } = parseDSLToAST(source);\nif (parseErrors.length) {\n  console.error(parseErrors);\n}\n\nconst { graph, errors: compileErrors } = compileToGraph(ast);\nif (compileErrors.length) {\n  console.error(compileErrors);\n}\n\nconsole.log(graph);\n```\n\n### Host events with `OnEvent`\n\n```js\nimport { Loom } from \"@afjk/loomlet/runtime\";\n\nconst graph = {\n  nodes: [{ id: \"flash\", type: \"onEvent\", params: { channel: \"custom.flash\" } }],\n  edges: []\n};\n\nconst engine = new Loom(graph);\nengine.evaluateOnce({\n  env: {\n    time: 1.5,\n    events: [{ channel: \"custom.flash\", timestamp: 1.2, payload: { intensity: 0.8 } }]\n  }\n});\n\nconsole.log(engine.getValue(\"flash.event\"));\n```\n\n## VS Code extension\n\nThe Loomlet VS Code extension provides:\n\n- syntax highlighting\n- completion\n- diagnostics\n- preview support\n\nSearch for `Loomlet` in the VS Code Marketplace.\n\n## Documentation\n\n- [Language guide](docs/language-guide.md)\n- [CLI guide](docs/cli.md)\n- [VS Code extension](docs/vscode-extension.md)\n- [Concepts and design notes](docs/concepts.md)\n- [Terminology](docs/TERMINOLOGY.md)\n- [Stabilization roadmap](docs/STABILIZATION_ROADMAP.md)\n- [設計ノート（日本語）](docs/concepts.ja.md)\n- [Scene Sync integration](docs/scene-sync.md)\n- [Release and maintainer notes](docs/RELEASE.md)\n- [Standard library reference](docs/STANDARD_LIBRARY_REFERENCE.md)\n- [Runtime node registration](docs/RUNTIME_NODE_REGISTRATION.md)\n- [Runtime parity fixtures](docs/RUNTIME_PARITY_FIXTURES.md)\n- [Unity runtime compatibility](docs/UNITY_RUNTIME_COMPATIBILITY.md)\n\nGenerated metadata and reference docs can be refreshed with `npm run generate:metadata`.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}