{"_id":"@akitain/sandjs","_rev":"16-060d9f9c3d345aca44d2831f5f5dfded","name":"@akitain/sandjs","dist-tags":{"latest":"1.0.0"},"versions":{"0.1.2":{"name":"@akitain/sandjs","version":"0.1.2","keywords":[],"author":"","license":"MIT","_id":"@akitain/sandjs@0.1.2","maintainers":[{"name":"akitain","email":"corentinfox08+npm@gmail.com"}],"homepage":"https://github.com/Aqu1tain/sandjs#readme","bugs":{"url":"https://github.com/Aqu1tain/sandjs/issues"},"dist":{"shasum":"b03655a96624a0fd774c3b273bb8e307b9241293","tarball":"https://registry.npmjs.org/@akitain/sandjs/-/sandjs-0.1.2.tgz","fileCount":15,"integrity":"sha512-U6ZoBBuhQfiKv5nIv72jSk78KSEV62lFzzinjKqyO3JeT/6s07lPuQmGDPqC9kllh910g5F6YYzjmYh8nZJAmw==","signatures":[{"sig":"MEUCIEAGshKIWs4Jlv0tntwrFYRuPt7AcT5Gdg4Ydx2BjZBkAiEAiNCs7U9axg04NM+XK/5+5+3hM7tty273RXc7FPR70JA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132811},"main":"dist/sandjs.mjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/sandjs.iife.min.js","module":"dist/sandjs.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/sandjs.mjs","default":"./dist/sandjs.mjs"},"./dist/sandjs.iife.min.js":"./dist/sandjs.iife.min.js"},"gitHead":"1e86aff1f37b4f8a5f2873846ce5b53e90bc995f","scripts":{"test":"npm run test:build && node --test dist-tests/tests/**/*.js","build":"npm run clean && rollup -c","clean":"rimraf dist","verify":"npm run test && npm run build","clean:test":"rimraf dist-tests","test:build":"npm run clean:test && tsc --project tsconfig.test.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"akitain","email":"corentinfox08+npm@gmail.com"},"jsdelivr":"dist/sandjs.iife.min.js","repository":{"url":"git+https://github.com/Aqu1tain/sandjs.git","type":"git"},"_npmVersion":"11.4.2","description":"Sunburst Advanced Node Data","directories":{},"sideEffects":false,"_nodeVersion":"23.10.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rimraf":"^6.0.1","rollup":"^4.50.2","typescript":"^5.9.2","rollup-plugin-copy":"^3.5.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/sandjs_0.1.2_1758035488248_0.124773637275579","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@akitain/sandjs","version":"0.2.0","keywords":[],"author":"","license":"MIT","_id":"@akitain/sandjs@0.2.0","maintainers":[{"name":"akitain","email":"corentinfox08+npm@gmail.com"}],"homepage":"https://github.com/Aqu1tain/sandjs#readme","bugs":{"url":"https://github.com/Aqu1tain/sandjs/issues"},"dist":{"shasum":"3646919320b170ef5833f807717343be0b892dec","tarball":"https://registry.npmjs.org/@akitain/sandjs/-/sandjs-0.2.0.tgz","fileCount":15,"integrity":"sha512-UFb00uPMqe5SscZ8mnnN4eJ2vMTMgaOs50I/qwVQoo+vBHHxJeaWGxk/A17cqnYQZRhlq6V2KF99OV1r5m/iGw==","signatures":[{"sig":"MEQCIDtyl1Ck8MeECZ1v/dGb2zkRXQxIS1CAiPLq/rS09VelAiBa7i7FRqnsBgEJFhTQTNDN6eVsdlHvLTXc8wRA0Y84Bg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186120},"main":"dist/sandjs.mjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/sandjs.iife.min.js","module":"dist/sandjs.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/sandjs.mjs","default":"./dist/sandjs.mjs"},"./dist/sandjs.iife.min.js":"./dist/sandjs.iife.min.js"},"gitHead":"76aea22ab2d7469090e768ed3de5d833314449d7","scripts":{"test":"npm run test:build && node --test dist-tests/tests/**/*.js","build":"npm run clean && rollup -c","clean":"rimraf dist","verify":"npm run test && npm run build","clean:docs":"rimraf temp docs/api","clean:test":"rimraf dist-tests","docs:build":"npm run build && npm run clean:docs && npm run docs:extract && api-documenter markdown --input-folder temp --output-folder docs/api && node scripts/postprocess-docs.mjs","test:build":"npm run clean:test && tsc --project tsconfig.test.json","docs:extract":"api-extractor run --local","prepublishOnly":"npm run build"},"_npmUser":{"name":"akitain","email":"corentinfox08+npm@gmail.com"},"jsdelivr":"dist/sandjs.iife.min.js","repository":{"url":"git+https://github.com/Aqu1tain/sandjs.git","type":"git"},"_npmVersion":"11.4.2","description":"Sunburst Advanced Node Data","directories":{},"sideEffects":false,"_nodeVersion":"23.10.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rimraf":"^6.0.1","rollup":"^4.50.2","typescript":"^5.9.2","rollup-plugin-copy":"^3.5.0","@rollup/plugin-terser":"^0.4.4","@microsoft/api-extractor":"^7.52.13","@microsoft/api-documenter":"^7.26.34","@rollup/plugin-typescript":"^12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/sandjs_0.2.0_1758533860221_0.9332713967496546","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@akitain/sandjs","version":"0.2.1","keywords":[],"author":"","license":"MIT","_id":"@akitain/sandjs@0.2.1","maintainers":[{"name":"akitain","email":"corentinfox08+npm@gmail.com"}],"homepage":"https://github.com/Aqu1tain/sandjs#readme","bugs":{"url":"https://github.com/Aqu1tain/sandjs/issues"},"dist":{"shasum":"f00d5a1c978e97f30d8125b611c0086170450152","tarball":"https://registry.npmjs.org/@akitain/sandjs/-/sandjs-0.2.1.tgz","fileCount":21,"integrity":"sha512-X73UH8/MC+RvTDRX7gE/DTvyap0WaMT6RKTdvmxqH7ZNHTknSG3hMO9RTpyBDta9XY3pItRO29NAiN5VSClKAQ==","signatures":[{"sig":"MEUCIA/o64ZIs0bYacWd2bWb9fvKd7Uetg1QN5GCpkkn30MFAiEAmTY0DrLxq2nDYLmKuG15J5ugNkEmP5h9d8jVzTvIQnM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":208935},"main":"dist/sandjs.mjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/sandjs.iife.min.js","module":"dist/sandjs.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/sandjs.mjs","default":"./dist/sandjs.mjs"},"./dist/sandjs.iife.min.js":"./dist/sandjs.iife.min.js"},"gitHead":"5d4ee9e591153e8ee97239a7acf18b15cfc9fcc6","scripts":{"test":"npm run test:build && node --test dist-tests/tests/**/*.js","build":"npm run clean && rollup -c","clean":"rimraf dist","verify":"npm run test && npm run build","clean:docs":"rimraf temp docs/api","clean:test":"rimraf dist-tests","docs:build":"npm run build && npm run clean:docs && npm run docs:extract && api-documenter markdown --input-folder temp --output-folder docs/api && node scripts/postprocess-docs.mjs","test:build":"npm run clean:test && tsc --project tsconfig.test.json","docs:extract":"api-extractor run --local","prepublishOnly":"npm run build"},"_npmUser":{"name":"akitain","email":"corentinfox08+npm@gmail.com"},"jsdelivr":"dist/sandjs.iife.min.js","repository":{"url":"git+https://github.com/Aqu1tain/sandjs.git","type":"git"},"_npmVersion":"11.4.2","description":"Sunburst Advanced Node Data","directories":{},"sideEffects":false,"_nodeVersion":"23.10.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rimraf":"^6.0.1","rollup":"^4.50.2","typescript":"^5.9.2","rollup-plugin-copy":"^3.5.0","@rollup/plugin-terser":"^0.4.4","@microsoft/api-extractor":"^7.52.13","@microsoft/api-documenter":"^7.26.34","@rollup/plugin-typescript":"^12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/sandjs_0.2.1_1758553398393_0.6620353837825623","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@akitain/sandjs","version":"0.2.2","keywords":[],"author":"","license":"MIT","_id":"@akitain/sandjs@0.2.2","maintainers":[{"name":"akitain","email":"corentinfox08+npm@gmail.com"}],"homepage":"https://github.com/Aqu1tain/sandjs#readme","bugs":{"url":"https://github.com/Aqu1tain/sandjs/issues"},"dist":{"shasum":"e598b650641ded3d825dc002749cb80f5f49cd84","tarball":"https://registry.npmjs.org/@akitain/sandjs/-/sandjs-0.2.2.tgz","fileCount":21,"integrity":"sha512-FfPD9XcCWyz0r5Fo9tb82/2LkiQK/hWFnp7u19ujrEh+XRKgDjv7iJmO8+0xy1wR8vkaTA/YrrRCmHYntP17JA==","signatures":[{"sig":"MEQCIHbG4YYLU+X5tWBjaJY+3B7Q72jKucr9PoLXIn9bdyExAiAlI0tbirJh9a7VxZCYzrzSVPGjY/cVvwDG6KjKA54H5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":212444},"main":"dist/sandjs.mjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/sandjs.iife.min.js","module":"dist/sandjs.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/sandjs.mjs","default":"./dist/sandjs.mjs"},"./dist/sandjs.iife.min.js":"./dist/sandjs.iife.min.js"},"gitHead":"273e8347a7db603ce885bd58c341bc2eb4142a56","scripts":{"test":"npm run test:build && node --test dist-tests/tests/**/*.js","build":"npm run clean && rollup -c","clean":"rimraf dist","verify":"npm run test && npm run build","clean:docs":"rimraf temp docs/api","clean:test":"rimraf dist-tests","docs:build":"npm run build && npm run clean:docs && npm run docs:extract && api-documenter markdown --input-folder temp --output-folder docs/api && node scripts/postprocess-docs.mjs","test:build":"npm run clean:test && tsc --project tsconfig.test.json","docs:extract":"api-extractor run --local","prepublishOnly":"npm run build"},"_npmUser":{"name":"akitain","email":"corentinfox08+npm@gmail.com"},"jsdelivr":"dist/sandjs.iife.min.js","repository":{"url":"git+https://github.com/Aqu1tain/sandjs.git","type":"git"},"_npmVersion":"11.4.2","description":"Sunburst Advanced Node Data","directories":{},"sideEffects":false,"_nodeVersion":"23.10.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rimraf":"^6.0.1","rollup":"^4.50.2","typescript":"^5.9.2","rollup-plugin-copy":"^3.5.0","@rollup/plugin-terser":"^0.4.4","@microsoft/api-extractor":"^7.52.13","@microsoft/api-documenter":"^7.26.34","@rollup/plugin-typescript":"^12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/sandjs_0.2.2_1758620262724_0.6313962863358182","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@akitain/sandjs","version":"0.2.3","keywords":[],"author":"","license":"MIT","_id":"@akitain/sandjs@0.2.3","maintainers":[{"name":"akitain","email":"corentinfox08+npm@gmail.com"}],"homepage":"https://github.com/Aqu1tain/sandjs#readme","bugs":{"url":"https://github.com/Aqu1tain/sandjs/issues"},"dist":{"shasum":"f29d731929f2375c4d003a84a22dec5100cfe294","tarball":"https://registry.npmjs.org/@akitain/sandjs/-/sandjs-0.2.3.tgz","fileCount":21,"integrity":"sha512-/MkXf707nif8Uq+mcI+KeeytT9gSaEgNT9o52/gPHcsIvLN0l1nDAuZv8UkMMnqkabEyPsZ74QFHRmh+B+sNDQ==","signatures":[{"sig":"MEQCIAglTegqzkl9Zt31q6nZmpsdkAh1mMOyaEFY/PAeDbJ9AiBFLUUPPqpOipYoqv+3LVLNGLAmGm+ICeieny14D6gNXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":212516},"main":"dist/sandjs.mjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/sandjs.iife.min.js","module":"dist/sandjs.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/sandjs.mjs","default":"./dist/sandjs.mjs"},"./dist/sandjs.iife.min.js":"./dist/sandjs.iife.min.js"},"gitHead":"8665875117c898daec1c25dbd4e449df0bb3d458","scripts":{"dev":"node scripts/dev-server.mjs","test":"npm run test:build && node --test dist-tests/tests/**/*.js","build":"npm run clean && rollup -c","clean":"rimraf dist","verify":"npm run test && npm run build","clean:docs":"rimraf temp docs/api","clean:test":"rimraf dist-tests","docs:build":"npm run build && npm run clean:docs && npm run docs:extract && api-documenter markdown --input-folder temp --output-folder docs/api && node scripts/postprocess-docs.mjs","test:build":"npm run clean:test && tsc --project tsconfig.test.json","docs:extract":"api-extractor run --local","prepublishOnly":"npm run build"},"_npmUser":{"name":"akitain","email":"corentinfox08+npm@gmail.com"},"jsdelivr":"dist/sandjs.iife.min.js","repository":{"url":"git+https://github.com/Aqu1tain/sandjs.git","type":"git"},"_npmVersion":"11.4.2","description":"Sunburst Advanced Node Data","directories":{},"sideEffects":false,"_nodeVersion":"23.10.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rimraf":"^6.0.1","rollup":"^4.50.2","typescript":"^5.9.2","@types/node":"^24.5.2","rollup-plugin-copy":"^3.5.0","@rollup/plugin-terser":"^0.4.4","@microsoft/api-extractor":"^7.52.13","@microsoft/api-documenter":"^7.26.34","@rollup/plugin-typescript":"^12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/sandjs_0.2.3_1758635938961_0.7656698690733807","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@akitain/sandjs","version":"0.3.0","keywords":[],"author":"","license":"MIT","_id":"@akitain/sandjs@0.3.0","maintainers":[{"name":"akitain","email":"corentinfox08+npm@gmail.com"}],"homepage":"https://github.com/Aqu1tain/sandjs#readme","bugs":{"url":"https://github.com/Aqu1tain/sandjs/issues"},"dist":{"shasum":"751c42b54ce1de31801990a34b542385a9279fb4","tarball":"https://registry.npmjs.org/@akitain/sandjs/-/sandjs-0.3.0.tgz","fileCount":31,"integrity":"sha512-2WdMBZIFNVpUANq/kdg+KoCzEIvoFG3CIwzcza+v3bCA1m5FdVLVad/owVWQR427Nw7AAyubC8rbzMbKMW88UQ==","signatures":[{"sig":"MEUCIFa4KZNQhnC5tCKh3eB07ckRGsO2Eqvoo4kY263v6YnPAiEA4+G4C00YtDzasuGEfvq+0ibwEIheaEm0/912EB+KEPM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":481220},"main":"dist/sandjs.mjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/sandjs.iife.min.js","module":"dist/sandjs.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/sandjs.mjs","default":"./dist/sandjs.mjs"},"./dist/sandjs.iife.min.js":"./dist/sandjs.iife.min.js"},"gitHead":"4e5d56f18aebbbf2501ecf025d77176b71023f9d","scripts":{"dev":"node scripts/dev-server.mjs","test":"npm run test:build && node --test dist-tests/tests/**/*.js","build":"npm run clean && rollup -c","clean":"rimraf dist","verify":"npm run test && npm run build","clean:docs":"rimraf temp docs/api","clean:test":"rimraf dist-tests","docs:build":"npm run build && npm run clean:docs && npm run docs:extract && api-documenter markdown --input-folder temp --output-folder docs/api && node scripts/postprocess-docs.mjs","test:build":"npm run clean:test && tsc --project tsconfig.test.json","docs:extract":"api-extractor run --local","prepublishOnly":"npm run build"},"_npmUser":{"name":"akitain","email":"corentinfox08+npm@gmail.com"},"jsdelivr":"dist/sandjs.iife.min.js","repository":{"url":"git+https://github.com/Aqu1tain/sandjs.git","type":"git"},"_npmVersion":"11.6.1","description":"Sunburst Advanced Node Data","directories":{},"sideEffects":false,"_nodeVersion":"24.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rimraf":"^6.0.1","rollup":"^4.50.2","typescript":"^5.9.2","@types/node":"^24.5.2","rollup-plugin-copy":"^3.5.0","@rollup/plugin-terser":"^0.4.4","@microsoft/api-extractor":"^7.52.13","@microsoft/api-documenter":"^7.26.34","@rollup/plugin-typescript":"^12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/sandjs_0.3.0_1760971920935_0.5329963712741868","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@akitain/sandjs","version":"0.3.1","keywords":[],"author":"","license":"MIT","_id":"@akitain/sandjs@0.3.1","maintainers":[{"name":"akitain","email":"corentinfox08+npm@gmail.com"}],"homepage":"https://github.com/Aqu1tain/sandjs#readme","bugs":{"url":"https://github.com/Aqu1tain/sandjs/issues"},"dist":{"shasum":"00ec48c3d0f3c5f85be8aff02c41b74c463033a7","tarball":"https://registry.npmjs.org/@akitain/sandjs/-/sandjs-0.3.1.tgz","fileCount":31,"integrity":"sha512-rZArmsyPH4UKEJuKyCjfXGKj5T2canyhSH7tYzzO3Rvjms8+xbxPPSU1p0/f/ysATt08dPVZP9Y+JR4cXAr1lA==","signatures":[{"sig":"MEQCIGTBn0yFzTIeLvwEWe+gUXiLZa0sAn85cLbEMs9NZIPeAiB7Rt5Yw2BGJWwO+J0eJN1HhLpYsmxWMnGHIVCBNJrX1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":480597},"main":"dist/sandjs.mjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/sandjs.iife.min.js","module":"dist/sandjs.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/sandjs.mjs","default":"./dist/sandjs.mjs"},"./dist/sandjs.iife.min.js":"./dist/sandjs.iife.min.js"},"gitHead":"7629d5a9e18d3882729eaf886537fd45435e9ff8","scripts":{"dev":"node scripts/dev-server.mjs","test":"npm run test:build && node --test dist-tests/tests/**/*.js","build":"npm run clean && rollup -c","clean":"rimraf dist","verify":"npm run test && npm run build","clean:docs":"rimraf temp docs/api","clean:test":"rimraf dist-tests","docs:build":"npm run build && npm run clean:docs && npm run docs:extract && api-documenter markdown --input-folder temp --output-folder docs/api && node scripts/postprocess-docs.mjs","test:build":"npm run clean:test && tsc --project tsconfig.test.json","docs:extract":"api-extractor run --local","prepublishOnly":"npm run build"},"_npmUser":{"name":"akitain","email":"corentinfox08+npm@gmail.com"},"jsdelivr":"dist/sandjs.iife.min.js","repository":{"url":"git+https://github.com/Aqu1tain/sandjs.git","type":"git"},"_npmVersion":"11.6.1","description":"Sunburst Advanced Node Data","directories":{},"sideEffects":false,"_nodeVersion":"24.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rimraf":"^6.0.1","rollup":"^4.50.2","typescript":"^5.9.2","@types/node":"^24.5.2","rollup-plugin-copy":"^3.5.0","@rollup/plugin-terser":"^0.4.4","@microsoft/api-extractor":"^7.52.13","@microsoft/api-documenter":"^7.26.34","@rollup/plugin-typescript":"^12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/sandjs_0.3.1_1761210582123_0.18974570375922983","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@akitain/sandjs","version":"0.3.2","keywords":[],"author":"","license":"MIT","_id":"@akitain/sandjs@0.3.2","maintainers":[{"name":"akitain","email":"corentinfox08+npm@gmail.com"}],"homepage":"https://github.com/Aqu1tain/sandjs#readme","bugs":{"url":"https://github.com/Aqu1tain/sandjs/issues"},"dist":{"shasum":"6b7d47fa182df2f5a6a51173ba647a0a44358d97","tarball":"https://registry.npmjs.org/@akitain/sandjs/-/sandjs-0.3.2.tgz","fileCount":43,"integrity":"sha512-Iq1aPD4JPsHGffM27ELaD2mhAoR5SQKFfxrBCjcQFOmApE48UoJjdrjSyPmmEs9MDRCjNQ2qg8bi+ph9SDakPA==","signatures":[{"sig":"MEYCIQCUflFXE9vcYeySBbQQSr4HcBZPKVN1mbD/BDHhd+SW5wIhANsthQILKyKB7bY8Jt89FO/AbdQQjSIZTk04cWTO8MDq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":508701},"main":"dist/sandjs.mjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/sandjs.iife.min.js","module":"dist/sandjs.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/sandjs.mjs","default":"./dist/sandjs.mjs"},"./dist/sandjs.iife.min.js":"./dist/sandjs.iife.min.js"},"gitHead":"b7c4aeee188e555b6ec8ae9cf4f445ca5fcc24ee","scripts":{"dev":"node scripts/dev-server.mjs","test":"npm run test:build && node --test dist-tests/tests/**/*.js","build":"npm run clean && rollup -c","clean":"rimraf dist","verify":"npm run test && npm run build","clean:docs":"rimraf temp docs/api","clean:test":"rimraf dist-tests","docs:build":"npm run build && npm run clean:docs && npm run docs:extract && api-documenter markdown --input-folder temp --output-folder docs/api && node scripts/postprocess-docs.mjs","test:build":"npm run clean:test && tsc --project tsconfig.test.json","docs:extract":"api-extractor run --local","prepublishOnly":"npm run build"},"_npmUser":{"name":"akitain","email":"corentinfox08+npm@gmail.com"},"jsdelivr":"dist/sandjs.iife.min.js","repository":{"url":"git+https://github.com/Aqu1tain/sandjs.git","type":"git"},"_npmVersion":"11.6.1","description":"Sunburst Advanced Node Data","directories":{},"sideEffects":false,"_nodeVersion":"24.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rimraf":"^6.0.1","rollup":"^4.50.2","typescript":"^5.9.2","@types/node":"^24.5.2","rollup-plugin-copy":"^3.5.0","@rollup/plugin-terser":"^0.4.4","@microsoft/api-extractor":"^7.52.13","@microsoft/api-documenter":"^7.26.34","@rollup/plugin-typescript":"^12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/sandjs_0.3.2_1761231712604_0.19328128676254375","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@akitain/sandjs","version":"0.3.3","keywords":[],"author":"","license":"MIT","_id":"@akitain/sandjs@0.3.3","maintainers":[{"name":"akitain","email":"corentinfox08+npm@gmail.com"}],"homepage":"https://github.com/Aqu1tain/sandjs#readme","bugs":{"url":"https://github.com/Aqu1tain/sandjs/issues"},"dist":{"shasum":"6a1610236732b9572e4d0d69de319eb148aa4adb","tarball":"https://registry.npmjs.org/@akitain/sandjs/-/sandjs-0.3.3.tgz","fileCount":43,"integrity":"sha512-idS4z+P0rKMT/u8vUZR7ROiEud3cAsV4Yh3Q+06zwbflksCdT+kfjqDUue+BaK/49bNwoqvGctd7CLlJZWGjbw==","signatures":[{"sig":"MEUCIADQOLLgohRRmh8SVXoiewmHk2Ug3kakxZkE/TEbw3cpAiEAgvh5balXPaCZCMYktortxoUPu0fZbf3Lpe7MOuOu1gs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":512483},"main":"dist/sandjs.mjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/sandjs.iife.min.js","module":"dist/sandjs.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/sandjs.mjs","default":"./dist/sandjs.mjs"},"./dist/sandjs.iife.min.js":"./dist/sandjs.iife.min.js"},"gitHead":"f00c4c6f7db7fb7d6c92772fabb1be64700f3ab5","scripts":{"dev":"node scripts/dev-server.mjs","test":"npm run test:build && node --test dist-tests/tests/**/*.js","build":"npm run clean && rollup -c","clean":"rimraf dist","verify":"npm run test && npm run build","clean:docs":"rimraf temp docs/api","clean:test":"rimraf dist-tests","docs:build":"npm run build && npm run clean:docs && npm run docs:extract && api-documenter markdown --input-folder temp --output-folder docs/api && node scripts/postprocess-docs.mjs","test:build":"npm run clean:test && tsc --project tsconfig.test.json","docs:extract":"api-extractor run --local","prepublishOnly":"npm run build"},"_npmUser":{"name":"akitain","email":"corentinfox08+npm@gmail.com"},"jsdelivr":"dist/sandjs.iife.min.js","repository":{"url":"git+https://github.com/Aqu1tain/sandjs.git","type":"git"},"_npmVersion":"11.6.1","description":"Sunburst Advanced Node Data","directories":{},"sideEffects":false,"_nodeVersion":"24.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rimraf":"^6.0.1","rollup":"^4.50.2","typescript":"^5.9.2","@types/node":"^24.5.2","rollup-plugin-copy":"^3.5.0","@rollup/plugin-terser":"^0.4.4","@microsoft/api-extractor":"^7.52.13","@microsoft/api-documenter":"^7.26.34","@rollup/plugin-typescript":"^12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/sandjs_0.3.3_1763716422342_0.6486520713621664","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@akitain/sandjs","version":"0.3.4","keywords":[],"author":"","license":"MIT","_id":"@akitain/sandjs@0.3.4","maintainers":[{"name":"akitain","email":"corentinfox08+npm@gmail.com"}],"homepage":"https://github.com/Aqu1tain/sandjs#readme","bugs":{"url":"https://github.com/Aqu1tain/sandjs/issues"},"dist":{"shasum":"87af191040143be7a4a9264eb4a56fe793927272","tarball":"https://registry.npmjs.org/@akitain/sandjs/-/sandjs-0.3.4.tgz","fileCount":44,"integrity":"sha512-oLOfVoZCUhJvjCfGCaSTIuUPhmT0ULfBfWL9YppuW/PNMcl8I8IiWXuutDVIpQ8g7KzBPdNfru6ndWHm5ytZqw==","signatures":[{"sig":"MEUCIQDcdNVIgTTn0JB1wkMzXMq7iP2v8ofzvN9WhfAcSk60bgIgaHD5eigXyXDmv+aoEN5LW8ujH4zzWNK2pmqgIWJ/98M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":540780},"main":"dist/sandjs.mjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/sandjs.iife.min.js","module":"dist/sandjs.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/sandjs.mjs","default":"./dist/sandjs.mjs"},"./dist/sandjs.iife.min.js":"./dist/sandjs.iife.min.js"},"gitHead":"3c8156e8acb7d2ae26494f51ff4459ee7120b9f5","scripts":{"dev":"node scripts/dev-server.mjs","test":"npm run test:build && node --test dist-tests/tests/**/*.js","build":"npm run clean && rollup -c","clean":"rimraf dist","verify":"npm run test && npm run build","clean:docs":"rimraf temp docs/api","clean:test":"rimraf dist-tests","docs:build":"npm run build && npm run clean:docs && npm run docs:extract && api-documenter markdown --input-folder temp --output-folder docs/api && node scripts/postprocess-docs.mjs","test:build":"npm run clean:test && tsc --project tsconfig.test.json","docs:extract":"api-extractor run --local","prepublishOnly":"npm run build"},"_npmUser":{"name":"akitain","email":"corentinfox08+npm@gmail.com"},"jsdelivr":"dist/sandjs.iife.min.js","repository":{"url":"git+https://github.com/Aqu1tain/sandjs.git","type":"git"},"_npmVersion":"11.6.1","description":"Sunburst Advanced Node Data","directories":{},"sideEffects":false,"_nodeVersion":"24.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rimraf":"^6.0.1","rollup":"^4.50.2","typescript":"^5.9.2","@types/node":"^24.5.2","rollup-plugin-copy":"^3.5.0","@rollup/plugin-terser":"^0.4.4","@microsoft/api-extractor":"^7.52.13","@microsoft/api-documenter":"^7.26.34","@rollup/plugin-typescript":"^12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/sandjs_0.3.4_1764153161462_0.8132978871849554","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@akitain/sandjs","version":"0.3.5","keywords":[],"author":"","license":"MIT","_id":"@akitain/sandjs@0.3.5","maintainers":[{"name":"akitain","email":"corentinfox08+npm@gmail.com"}],"homepage":"https://github.com/Aqu1tain/sandjs#readme","bugs":{"url":"https://github.com/Aqu1tain/sandjs/issues"},"dist":{"shasum":"3c05fae1e3d9f470fda987ca969d9d9babea3470","tarball":"https://registry.npmjs.org/@akitain/sandjs/-/sandjs-0.3.5.tgz","fileCount":44,"integrity":"sha512-3oQhERV1Vh4FS+61f9GypYiG2iDCNgynYW1bQZWiM/naAHRLVPvDyQgg+Jzlwq6mFuJhHrE4g3Rw1uxSnAKwzQ==","signatures":[{"sig":"MEUCIQDPagUXeYkrgXMHoCFqi2tT6skVhJ/jMJMK8RdClLDdfAIgB4B9Fj4a/BZxNJHCUCeGcRCGitfyTLunwVzUMySttVs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":561044},"main":"dist/sandjs.mjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/sandjs.iife.min.js","module":"dist/sandjs.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/sandjs.mjs","default":"./dist/sandjs.mjs"},"./dist/sandjs.iife.min.js":"./dist/sandjs.iife.min.js"},"gitHead":"0e061efe4f4b44c8138aaf2b0562e938a1c625b0","scripts":{"dev":"node scripts/dev-server.mjs","test":"npm run test:build && node --test dist-tests/tests/**/*.js","build":"npm run clean && rollup -c","clean":"rimraf dist","verify":"npm run test && npm run build","clean:docs":"rimraf temp docs/api","clean:test":"rimraf dist-tests","docs:build":"npm run build && npm run clean:docs && npm run docs:extract && api-documenter markdown --input-folder temp --output-folder docs/api && node scripts/postprocess-docs.mjs","test:build":"npm run clean:test && tsc --project tsconfig.test.json","docs:extract":"api-extractor run --local","prepublishOnly":"npm run build"},"_npmUser":{"name":"akitain","email":"corentinfox08+npm@gmail.com"},"jsdelivr":"dist/sandjs.iife.min.js","repository":{"url":"git+https://github.com/Aqu1tain/sandjs.git","type":"git"},"_npmVersion":"11.6.1","description":"Sunburst Advanced Node Data","directories":{},"sideEffects":false,"_nodeVersion":"24.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rimraf":"^6.0.1","rollup":"^4.50.2","typescript":"^5.9.2","@types/node":"^24.5.2","rollup-plugin-copy":"^3.5.0","@rollup/plugin-terser":"^0.4.4","@microsoft/api-extractor":"^7.52.13","@microsoft/api-documenter":"^7.26.34","@rollup/plugin-typescript":"^12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/sandjs_0.3.5_1764235162070_0.23541271652008944","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@akitain/sandjs","version":"0.3.6","keywords":[],"author":"","license":"MIT","_id":"@akitain/sandjs@0.3.6","maintainers":[{"name":"akitain","email":"corentinfox08+npm@gmail.com"}],"homepage":"https://github.com/Aqu1tain/sandjs#readme","bugs":{"url":"https://github.com/Aqu1tain/sandjs/issues"},"dist":{"shasum":"fbbd5e5da564220dd6977537120276d19abc6a11","tarball":"https://registry.npmjs.org/@akitain/sandjs/-/sandjs-0.3.6.tgz","fileCount":44,"integrity":"sha512-CZhqRRPFzh7Ngxs4uK8i7EteGy7Wre7jnYgTTKFqFmrD5NzdnzCioT6O9ISVEj7Sp0eBEYR0uPUNJBOX+J2d9Q==","signatures":[{"sig":"MEUCID2jTaClCQ4vXRo7+IzlPQS9zRd8TdoP/BOYKYXAu0hEAiEAhZJtvU4ngh4MD0xLG8pSldcgCdnCzigJUVgbUwwKv/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":565098},"main":"dist/sandjs.mjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/sandjs.iife.min.js","module":"dist/sandjs.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/sandjs.mjs","default":"./dist/sandjs.mjs"},"./dist/sandjs.iife.min.js":"./dist/sandjs.iife.min.js"},"gitHead":"269b77e66254d01ec42cd681f73a10dd30b22ec7","scripts":{"dev":"node scripts/dev-server.mjs","test":"npm run test:build && node --test dist-tests/tests/**/*.js","build":"npm run clean && rollup -c","clean":"rimraf dist","verify":"npm run test && npm run build","clean:docs":"rimraf temp docs/api","clean:test":"rimraf dist-tests","docs:build":"npm run build && npm run clean:docs && npm run docs:extract && api-documenter markdown --input-folder temp --output-folder docs/api && node scripts/postprocess-docs.mjs","test:build":"npm run clean:test && tsc --project tsconfig.test.json","docs:extract":"api-extractor run --local","prepublishOnly":"npm run build"},"_npmUser":{"name":"akitain","email":"corentinfox08+npm@gmail.com"},"jsdelivr":"dist/sandjs.iife.min.js","repository":{"url":"git+https://github.com/Aqu1tain/sandjs.git","type":"git"},"_npmVersion":"11.6.1","description":"Sunburst Advanced Node Data","directories":{},"sideEffects":false,"_nodeVersion":"24.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rimraf":"^6.0.1","rollup":"^4.50.2","typescript":"^5.9.2","@types/node":"^24.5.2","rollup-plugin-copy":"^3.5.0","@rollup/plugin-terser":"^0.4.4","@microsoft/api-extractor":"^7.52.13","@microsoft/api-documenter":"^7.26.34","@rollup/plugin-typescript":"^12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/sandjs_0.3.6_1764238223325_0.531540982379459","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@akitain/sandjs","version":"0.4.0","keywords":[],"author":"","license":"MIT","_id":"@akitain/sandjs@0.4.0","maintainers":[{"name":"akitain","email":"corentinfox08+npm@gmail.com"}],"homepage":"https://github.com/Aqu1tain/sandjs#readme","bugs":{"url":"https://github.com/Aqu1tain/sandjs/issues"},"dist":{"shasum":"9420cdffb5c36057306dc7e4fab8164d10f8b381","tarball":"https://registry.npmjs.org/@akitain/sandjs/-/sandjs-0.4.0.tgz","fileCount":49,"integrity":"sha512-SsUJU50Qdd4eKC9kFc0HZ3uicOYGcXPi5z86aatrZdvctcGEfeeHxsJoIxAM0G5OopFVM99Wx84EtA1ygO7ogQ==","signatures":[{"sig":"MEUCIQDrZeqX3LuGcnGucr4yu5IyZX4EEc2yL5B/QJNLjiBbUwIgJBAKf5Rv/GF0YIOrNdk28+ddRXxtBJ1w5OK1x0ishHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":592812},"main":"dist/sandjs.mjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/sandjs.iife.min.js","module":"dist/sandjs.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/sandjs.mjs","default":"./dist/sandjs.mjs"},"./dist/sandjs.iife.min.js":"./dist/sandjs.iife.min.js"},"gitHead":"2dd595fbccc36394ed003b8f3d4b3660ee41fcd2","scripts":{"dev":"node scripts/dev-server.mjs","test":"npm run test:build && node --test dist-tests/tests/*.js","build":"npm run clean && rollup -c","clean":"rimraf dist","verify":"npm run test && npm run build","clean:docs":"rimraf temp docs/api","clean:test":"rimraf dist-tests","docs:build":"npm run build && npm run clean:docs && npm run docs:extract && api-documenter markdown --input-folder temp --output-folder docs/api && node scripts/postprocess-docs.mjs","test:build":"npm run clean:test && tsc --project tsconfig.test.json","docs:extract":"api-extractor run --local","prepublishOnly":"npm run build"},"_npmUser":{"name":"akitain","email":"corentinfox08+npm@gmail.com"},"jsdelivr":"dist/sandjs.iife.min.js","repository":{"url":"git+https://github.com/Aqu1tain/sandjs.git","type":"git"},"_npmVersion":"11.6.1","description":"Sunburst Advanced Node Data","directories":{},"sideEffects":false,"_nodeVersion":"24.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rimraf":"^6.0.1","rollup":"^4.50.2","typescript":"^5.9.2","@types/node":"^24.5.2","rollup-plugin-copy":"^3.5.0","@rollup/plugin-terser":"^0.4.4","@microsoft/api-extractor":"^7.52.13","@microsoft/api-documenter":"^7.26.34","@rollup/plugin-typescript":"^12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/sandjs_0.4.0_1768905571416_0.8977090059286696","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.1":{"name":"@akitain/sandjs","version":"1.0.0-rc.1","keywords":[],"author":"","license":"MIT","_id":"@akitain/sandjs@1.0.0-rc.1","maintainers":[{"name":"akitain","email":"corentinfox08+npm@gmail.com"}],"homepage":"https://github.com/Aqu1tain/sandjs#readme","bugs":{"url":"https://github.com/Aqu1tain/sandjs/issues"},"dist":{"shasum":"065cbe05dfeab0571548cd796afea1abfed5a87f","tarball":"https://registry.npmjs.org/@akitain/sandjs/-/sandjs-1.0.0-rc.1.tgz","fileCount":49,"integrity":"sha512-QAqmu4oFDL8FI7mj1HQnMkPUmr0bMVudSk9wOFahNLUIjIigFkNEYpIZzmA1c6iU89jExkj07CO0x76C4VkuTw==","signatures":[{"sig":"MEQCIHQ7Ix6DMdpCdc9Yk5RYIEg8aIiVhFhMYM0OLARzyCXaAiBr0pr/pvQQfWmhdpBVco1aVU9e/PDCRB0jESafS5E5Nw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":615291},"main":"dist/sandjs.mjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/sandjs.iife.min.js","module":"dist/sandjs.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/sandjs.mjs","default":"./dist/sandjs.mjs"},"./dist/sandjs.iife.min.js":"./dist/sandjs.iife.min.js"},"gitHead":"fad5f693f74e4e3da5c64bc46675842cb731aa9d","scripts":{"dev":"node scripts/dev-server.mjs","test":"npm run test:build && node --test dist-tests/tests/*.js","bench":"npm run bench:build && node dist-benchmarks/benchmarks/index.js","build":"npm run clean && rollup -c","clean":"rimraf dist","verify":"npm run test && npm run build","clean:docs":"rimraf temp docs/api","clean:test":"rimraf dist-tests","docs:build":"npm run build && npm run clean:docs && npm run docs:extract && api-documenter markdown --input-folder temp --output-folder docs/api && node scripts/postprocess-docs.mjs","test:build":"npm run clean:test && tsc --project tsconfig.test.json","bench:build":"npm run clean:bench && tsc --project tsconfig.bench.json","clean:bench":"rimraf dist-benchmarks","bench:layout":"npm run bench:build && node dist-benchmarks/benchmarks/layout.bench.js","bench:render":"npm run bench:build && node dist-benchmarks/benchmarks/render.bench.js","docs:extract":"api-extractor run --local","prepublishOnly":"npm run build","bench:navigation":"npm run bench:build && node dist-benchmarks/benchmarks/navigation.bench.js"},"_npmUser":{"name":"akitain","email":"corentinfox08+npm@gmail.com"},"jsdelivr":"dist/sandjs.iife.min.js","repository":{"url":"git+https://github.com/Aqu1tain/sandjs.git","type":"git"},"_npmVersion":"11.6.1","description":"Sunburst Advanced Node Data","directories":{},"sideEffects":false,"_nodeVersion":"24.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tslib":"^2.8.1","rimraf":"^6.0.1","rollup":"^4.50.2","typescript":"^5.9.2","@types/node":"^24.5.2","rollup-plugin-copy":"^3.5.0","@rollup/plugin-terser":"^0.4.4","@microsoft/api-extractor":"^7.52.13","@microsoft/api-documenter":"^7.26.34","@rollup/plugin-typescript":"^12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/sandjs_1.0.0-rc.1_1769009298255_0.08154225342276766","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@akitain/sandjs","version":"1.0.0","keywords":[],"author":"","license":"MIT","_id":"@akitain/sandjs@1.0.0","maintainers":[{"name":"akitain","email":"corentinfox08+npm@gmail.com"}],"homepage":"https://github.com/Aqu1tain/sandjs#readme","bugs":{"url":"https://github.com/Aqu1tain/sandjs/issues"},"dist":{"shasum":"780b937818d854d3d11734c0a91172faad3dfc49","tarball":"https://registry.npmjs.org/@akitain/sandjs/-/sandjs-1.0.0.tgz","fileCount":49,"integrity":"sha512-mjsw+MahkR3NRqMdpqbAcI897JjKPZhUIMDYPuMspYlsisjXn/3Nx0qq6ySRL5uPwFiaWqwnQW2gJ9zgR7rCAg==","signatures":[{"sig":"MEUCIQCB08gCyhSl4+S+BwooBUM7W2C16JKOYb4CeMx/GlC2lwIgLdxyH7sm25NTFchJjwrlugD5WpzBkTw5ORRV7mCNPQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":616434},"main":"dist/sandjs.mjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/sandjs.iife.min.js","module":"dist/sandjs.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/sandjs.mjs","default":"./dist/sandjs.mjs"},"./dist/sandjs.iife.min.js":"./dist/sandjs.iife.min.js"},"gitHead":"53c0c9b7a87312f4ffa2b798ee199b0010d9f277","scripts":{"dev":"node scripts/dev-server.mjs","test":"npm run test:build && node --test dist-tests/tests/*.js","bench":"npm run bench:build && node dist-benchmarks/benchmarks/index.js","build":"npm run clean && rollup -c","clean":"rimraf dist","verify":"npm run test && npm run build","clean:docs":"rimraf temp docs/api","clean:test":"rimraf dist-tests","docs:build":"npm run build && npm run clean:docs && npm run docs:extract && api-documenter markdown --input-folder temp --output-folder docs/api && node scripts/postprocess-docs.mjs","test:build":"npm run clean:test && tsc --project tsconfig.test.json","bench:build":"npm run clean:bench && tsc --project tsconfig.bench.json","clean:bench":"rimraf dist-benchmarks","bench:layout":"npm run bench:build && node dist-benchmarks/benchmarks/layout.bench.js","bench:render":"npm run bench:build && node dist-benchmarks/benchmarks/render.bench.js","docs:extract":"api-extractor run --local","prepublishOnly":"npm run build","bench:navigation":"npm run bench:build && node dist-benchmarks/benchmarks/navigation.bench.js"},"_npmUser":{"name":"akitain","email":"corentinfox08+npm@gmail.com"},"jsdelivr":"dist/sandjs.iife.min.js","repository":{"url":"git+https://github.com/Aqu1tain/sandjs.git","type":"git"},"_npmVersion":"11.6.1","description":"Sunburst Advanced Node Data","directories":{},"sideEffects":false,"_nodeVersion":"24.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rimraf":"^6.0.1","rollup":"^4.50.2","typescript":"^5.9.2","@types/node":"^24.5.2","rollup-plugin-copy":"^3.5.0","@rollup/plugin-terser":"^0.4.4","@microsoft/api-extractor":"^7.52.13","@microsoft/api-documenter":"^7.26.34","@rollup/plugin-typescript":"^12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/sandjs_1.0.0_1769072955752_0.6783172493405241","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-09-16T15:11:28.123Z","modified":"2026-01-22T09:12:44.687Z","0.1.2":"2025-09-16T15:11:28.419Z","0.2.0":"2025-09-22T09:37:40.392Z","0.2.1":"2025-09-22T15:03:18.611Z","0.2.2":"2025-09-23T09:37:42.901Z","0.2.3":"2025-09-23T13:58:59.149Z","0.3.0":"2025-10-20T14:52:01.118Z","0.3.1":"2025-10-23T09:09:42.349Z","0.3.2":"2025-10-23T15:01:52.774Z","0.3.3":"2025-11-21T09:13:42.538Z","0.3.4":"2025-11-26T10:32:41.705Z","0.3.5":"2025-11-27T09:19:22.250Z","0.3.6":"2025-11-27T10:10:23.559Z","0.4.0":"2026-01-20T10:39:31.583Z","1.0.0-rc.1":"2026-01-21T15:28:18.427Z","1.0.0":"2026-01-22T09:09:15.952Z"},"bugs":{"url":"https://github.com/Aqu1tain/sandjs/issues"},"license":"MIT","homepage":"https://github.com/Aqu1tain/sandjs#readme","keywords":[],"repository":{"url":"git+https://github.com/Aqu1tain/sandjs.git","type":"git"},"description":"Sunburst Advanced Node Data","maintainers":[{"name":"akitain","email":"corentinfox08+npm@gmail.com"}],"readme":"# Sand.js\n\n**Sunburst Advanced Node Data**\n\nA lightweight, framework-agnostic JavaScript library for building interactive sunburst charts using SVG. Sand.js is fully data-driven: describe your chart in JSON, and it handles both layout computation and rendering.\n\n[![npm version](https://img.shields.io/npm/v/@akitain/sandjs.svg)](https://www.npmjs.com/package/@akitain/sandjs)\n[![GitHub stars](https://img.shields.io/github/stars/aqu1tain/sandjs.svg?style=social&label=Star)](https://github.com/aQu1tain/sandjs)\n\n## Documentation\n\n**[View Complete Documentation →](./docs/README.md)**\n\nFor detailed guides, API reference, and examples, visit the [full documentation](./docs/README.md).\n\n---\n\n## Table of Contents\n\n- [Introduction](#introduction)\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Core Concepts](#core-concepts)\n- [Configuration Reference](#configuration-reference)\n- [Features](#features)\n  - [Color Themes](#color-themes)\n  - [Navigation & Drilldown](#navigation--drilldown)\n  - [Tooltips](#tooltips)\n  - [Breadcrumbs](#breadcrumbs)\n  - [Highlighting](#highlighting)\n  - [Transitions](#transitions)\n  - [Labels](#labels)\n- [API Reference](#api-reference)\n- [Build & Development](#build--development)\n- [CDN Usage](#cdn-usage)\n- [Browser Support](#browser-support)\n- [License](#license)\n\n---\n\n## Introduction\n\nSand.js is designed for developers who need to visualize hierarchical data as sunburst charts with minimal setup. Built with modern web standards, it offers:\n\n- **Zero dependencies**: Lightweight and fast\n- **Framework agnostic**: Works with vanilla JavaScript or any framework\n- **JSON-driven**: Declarative configuration\n- **Interactive**: Built-in tooltips, navigation, and event callbacks\n- **Customizable**: Extensive theming and styling options\n- **TypeScript ready**: Full type definitions included\n\n---\n\n## Installation\n\n```bash\nnpm install @akitain/sandjs\n```\n\nFor Yarn users:\n\n```bash\nyarn add @akitain/sandjs\n```\n\n---\n\n## Quick Start\n\nCreate a basic sunburst chart in three steps:\n\n1. **Add an SVG element to your HTML:**\n\n```html\n<svg id=\"chart\"></svg>\n```\n\n2. **Define your data configuration:**\n\n```javascript\nimport { renderSVG } from '@akitain/sandjs';\n\nconst config = {\n  size: { radius: 200 },\n  layers: [\n    {\n      id: 'main',\n      radialUnits: [0, 2],\n      angleMode: 'free',\n      tree: [\n        { name: 'Engineering', value: 45, key: 'eng' },\n        {\n          name: 'Design',\n          value: 30,\n          key: 'design',\n          children: [\n            { name: 'UI', value: 15 },\n            { name: 'UX', value: 15 }\n          ]\n        },\n        { name: 'Marketing', value: 25, key: 'marketing' }\n      ]\n    }\n  ]\n};\n```\n\n3. **Render the chart:**\n\n```javascript\nconst chart = renderSVG({\n  el: '#chart',\n  config,\n  tooltip: true\n});\n```\n\nThat's it! You now have a fully interactive sunburst chart.\n\n### Simple API (Recommended for Basic Charts)\n\nFor simple sunbursts, skip the full configuration and use the `data` + `radius` shorthand:\n\n```javascript\nimport { renderSVG } from '@akitain/sandjs';\n\nconst chart = renderSVG({\n  el: '#chart',\n  radius: 200,\n  data: [\n    { name: 'Engineering', value: 45 },\n    {\n      name: 'Design',\n      value: 30,\n      children: [\n        { name: 'UI', value: 15 },\n        { name: 'UX', value: 15 }\n      ]\n    },\n    { name: 'Marketing', value: 25 }\n  ],\n  tooltip: true\n});\n```\n\nThe Simple API automatically:\n- Creates a single layer with `angleMode: 'free'`\n- Computes `radialUnits` from your tree depth\n- Sets the chart radius\n\nFor partial sunbursts (less than a full circle), add the `angle` option:\n\n```javascript\nrenderSVG({\n  el: '#chart',\n  radius: 200,\n  angle: Math.PI,  // Half circle\n  data: [...]\n});\n```\n\nUse the full `config` object when you need multiple layers, alignment modes, or advanced layout options.\n\n---\n\n## Core Concepts\n\nUnderstanding these fundamental concepts will help you build complex charts:\n\n### Sunburst\n\nThe complete chart containing one or more layers. Defined by overall size (radius and optional angle).\n\n### Layer\n\nA logical grouping of rings with a shared dataset. Layers can operate independently (`free` mode) or align with other layers (`align` mode).\n\n**Properties:**\n- `id` (string): Unique identifier\n- `radialUnits` ([number, number]): Inner and outer radial positions\n- `angleMode` ('free' | 'align'): How angular space is distributed\n- `tree` (Node | Node[]): Data structure for the layer\n\n### Node\n\nA unit of data representing a segment in your chart. Nodes can have children for hierarchical data.\n\n**Key properties:**\n- `name` (string): Display label\n- `value` (number): Size of the segment\n- `key` (string, optional): Stable identifier for animations and alignment\n- `children` (Node[], optional): Child nodes for hierarchical structure\n\n### Arc\n\nA computed geometric entity created by the layout engine, ready for rendering with coordinates and metadata.\n\n### Ring\n\nA radial band in the chart, automatically calculated based on nodes and their `expandLevels` property.\n\n### Key-group\n\nNodes sharing the same `key` value, used for alignment across layers and coordinated interactions.\n\n---\n\n## Configuration Reference\n\n### SunburstConfig\n\nThe root configuration object for your chart.\n\n```typescript\n{\n  size: {\n    radius: number;      // Final radius in pixels\n    angle?: number;      // Total angle in radians (default: 2π)\n  },\n  layers: LayerConfig[]  // Array of layer definitions\n}\n```\n\n### LayerConfig\n\n```typescript\n{\n  id: string;                          // Unique layer identifier\n  radialUnits: [number, number];       // [inner, outer] radial positions\n  angleMode: 'free' | 'align';         // Angular distribution mode\n  alignWith?: string;                  // Reference layer ID (for 'align' mode)\n  padAngle?: number;                   // Gap between arcs (radians)\n  baseOffset?: number;                 // Global rotation offset (radians)\n  arcOffsetMode?: 'relative' | 'absolute'; // Offset calculation mode\n  defaultArcOffset?: number;           // Default offset for all arcs\n  borderColor?: string;                // Border color for arcs in this layer\n  borderWidth?: number;                // Border width in pixels\n  labelColor?: string;                 // Label text color for this layer\n  showLabels?: boolean;                // Show/hide labels for this layer\n  tree: TreeNodeInput | TreeNodeInput[]; // Data structure\n}\n```\n\n### TreeNodeInput\n\n```typescript\n{\n  name: string;              // Display name\n  value: number;             // Arc size (auto-summed if children exist)\n  key?: string;              // Stable identifier\n  expandLevels?: number;     // Radial thickness in rings (default: 1)\n  offset?: number;           // Local angular offset\n  color?: string;            // Custom color (CSS format)\n  labelColor?: string;       // Custom label text color\n  children?: TreeNodeInput[]; // Child nodes\n  tooltip?: string;          // Custom tooltip content\n  collapsed?: boolean;       // Hide children while preserving value\n  hidden?: boolean;          // Hide node completely\n}\n```\n\n---\n\n## Features\n\n### Color Themes\n\nSand.js includes 14 built-in color palettes across three theme types.\n\n#### Qualitative Themes\n\nBest for categorical data with no inherent order:\n\n```javascript\nimport { renderSVG, QUALITATIVE_PALETTES } from '@akitain/sandjs';\n\nrenderSVG({\n  el: '#chart',\n  config,\n  colorTheme: {\n    type: 'qualitative',\n    palette: 'ocean',  // 'default' | 'pastel' | 'vibrant' | 'earth' | 'ocean' | 'sunset'\n    assignBy: 'key'    // Color assignment strategy\n  }\n});\n```\n\n#### Sequential Themes\n\nBest for ordered data with progression from low to high:\n\n```javascript\ncolorTheme: {\n  type: 'sequential',\n  palette: 'blues',  // 'blues' | 'greens' | 'purples' | 'oranges'\n  assignBy: 'depth'\n}\n```\n\n#### Diverging Themes\n\nBest for data with a meaningful midpoint (e.g., positive/negative values):\n\n```javascript\ncolorTheme: {\n  type: 'diverging',\n  palette: 'redBlue',  // 'redBlue' | 'orangePurple' | 'greenRed'\n  assignBy: 'value'\n}\n```\n\n#### Color Assignment Strategies\n\n- **key**: Consistent colors based on arc keys (default for qualitative)\n- **depth**: Colors vary by hierarchical depth (default for sequential/diverging)\n- **index**: Sequential assignment by arc position\n- **value**: Colors mapped to normalized values\n\n#### Custom Palettes\n\n```javascript\ncolorTheme: {\n  type: 'qualitative',\n  palette: ['#ff6b6b', '#4ecdc4', '#45b7d1', '#f7dc6f'],\n  assignBy: 'key'\n}\n```\n\n#### Custom Color Keys\n\n```javascript\ncolorTheme: {\n  type: 'qualitative',\n  palette: 'default',\n  deriveKey: (arc) => arc.data.category  // Use any arc property\n}\n```\n\nNote: Individual `node.color` values always override theme colors.\n\n---\n\n### Navigation & Drilldown\n\nEnable interactive drill-down navigation with smooth transitions:\n\n#### Basic Usage\n\n```javascript\nconst chart = renderSVG({\n  el: '#chart',\n  config,\n  navigation: true,  // Enable with defaults\n  transition: true   // Enable smooth animations\n});\n```\n\n#### Advanced Options\n\n```javascript\nnavigation: {\n  layers: ['main', 'details'],  // Specify navigable layers\n  rootLabel: 'Home',            // Breadcrumb root text\n  focusTransition: {\n    duration: 600,               // Animation duration (ms)\n    easing: (t) => t * t        // Custom easing function\n  },\n  onFocusChange: (focus) => {\n    if (focus) {\n      console.log('Focused:', focus.arc.data.name);\n    } else {\n      console.log('Reset to root');\n    }\n  }\n}\n```\n\n#### Programmatic Control\n\n```javascript\n// Reset to root view\nchart.resetNavigation?.();\n```\n\n---\n\n### Tooltips\n\nDisplay contextual information on hover.\n\n#### Basic Tooltips\n\n```javascript\nrenderSVG({\n  el: '#chart',\n  config,\n  tooltip: true  // Enable default tooltips\n});\n```\n\n#### Custom Tooltips\n\n```javascript\ntooltip: {\n  formatter: (arc) => {\n    return `\n      <strong>${arc.data.name}</strong><br>\n      Value: ${arc.data.value}<br>\n      Percentage: ${arc.percentage.toFixed(1)}%\n    `;\n  },\n  container: '#tooltip-container'  // Custom container selector\n}\n```\n\n#### Per-Node Tooltips\n\n```javascript\ntree: [\n  {\n    name: 'Engineering',\n    value: 45,\n    tooltip: 'Custom tooltip for Engineering department'\n  }\n]\n```\n\n---\n\n### Breadcrumbs\n\nVisualize the current navigation path.\n\n#### Basic Breadcrumbs\n\n```javascript\nrenderSVG({\n  el: '#chart',\n  config,\n  breadcrumbs: true  // Enable with defaults\n});\n```\n\n#### Advanced Configuration\n\n```javascript\nbreadcrumbs: {\n  container: '#breadcrumb-trail',  // Custom container\n  interactive: true,               // Enable click navigation\n  separator: ' › ',                // Custom separator\n  rootLabel: 'Overview',           // Root element label\n  formatter: (arc) => arc.data.name.toUpperCase()  // Custom formatting\n}\n```\n\n---\n\n### Highlighting\n\nHighlight related arcs by key.\n\n#### Basic Highlighting\n\n```javascript\nrenderSVG({\n  el: '#chart',\n  config,\n  highlightByKey: true  // Enable with defaults\n});\n```\n\n#### Advanced Options\n\n```javascript\nhighlightByKey: {\n  className: 'highlighted',  // Custom CSS class\n  pinOnClick: true,          // Keep highlight on click\n  onPinChange: (key, pinned) => {\n    console.log(`${key} is ${pinned ? 'pinned' : 'unpinned'}`);\n  }\n}\n```\n\n---\n\n### Transitions\n\nSmooth animations when updating your chart.\n\n#### Enable Transitions\n\n```javascript\nrenderSVG({\n  el: '#chart',\n  config,\n  transition: true  // Enable with defaults\n});\n```\n\n#### Custom Transition Settings\n\n```javascript\ntransition: {\n  duration: 800,           // Animation duration (ms)\n  easing: (t) => t * t,   // Easing function\n  delay: 100              // Delay before animation starts (ms)\n}\n```\n\n#### Updating with Transitions\n\n```javascript\nconst chart = renderSVG({ el: '#chart', config, transition: true });\n\n// Later, update with smooth transition\nchart.update({\n  config: newConfig,\n  transition: {\n    duration: 500\n  }\n});\n```\n\n---\n\n### Labels\n\nRender text labels on arcs.\n\n#### Enable Labels\n\n```javascript\nrenderSVG({\n  el: '#chart',\n  config,\n  labels: true  // Enable default labels\n});\n```\n\n#### Label Options\n\n```javascript\nlabels: {\n  labelPadding: 8,       // Spacing around text in pixels (default: 8)\n  labelFit: 'both',      // 'both' | 'height' | 'width'\n  fontSize: { min: 8, max: 16 },\n  autoLabelColor: true   // Contrast-aware text color\n}\n```\n\n**`labelFit`** controls which dimensions are checked when fitting labels:\n- `'both'` (default): Label must fit the arc's radial thickness and arc length\n- `'height'`: Only check radial thickness, use max font size based on ring height\n- `'width'`: Only check arc length, labels always fit along the arc path\n\n#### Custom Label Formatting\n\n```javascript\nlabels: {\n  formatter: (arc) => {\n    if (arc.percentage > 10) {\n      return `${arc.data.name} (${arc.percentage.toFixed(0)}%)`;\n    }\n    return '';  // Hide labels for small arcs\n  }\n}\n```\n\nNote: Labels automatically hide on arcs that are too narrow to display text legibly.\n\n---\n\n## API Reference\n\n### renderSVG(options)\n\nMain function to create a sunburst chart.\n\n**Parameters:**\n\n```typescript\n{\n  el: string | SVGElement;           // Target SVG element or selector\n  config: SunburstConfig;            // Chart configuration\n  tooltip?: boolean | TooltipOptions; // Tooltip settings\n  breadcrumbs?: boolean | BreadcrumbOptions; // Breadcrumb settings\n  highlightByKey?: boolean | HighlightByKeyOptions; // Highlight settings\n  navigation?: boolean | NavigationOptions; // Navigation settings\n  transition?: boolean | TransitionOptions; // Transition settings\n  labels?: boolean | LabelOptions;   // Label settings\n  colorTheme?: ColorThemeOptions;    // Color theme\n  onArcEnter?: (payload) => void;    // Hover enter callback\n  onArcMove?: (payload) => void;     // Hover move callback\n  onArcLeave?: (payload) => void;    // Hover leave callback\n  onArcClick?: (payload) => void;    // Click callback\n  debug?: boolean;                   // Enable diagnostic logging\n}\n```\n\n**Returns:**\n\n```typescript\n{\n  update: (updateInput) => void;     // Update the chart\n  dispose: () => void;               // Clean up resources\n  resetNavigation?: () => void;      // Reset to root (if navigation enabled)\n}\n```\n\n### layout(config)\n\nCompute arc geometries from configuration (layout-only mode).\n\n**Parameters:**\n- `config` (SunburstConfig): Chart configuration\n\n**Returns:**\n- `LayoutArc[]`: Array of computed arcs with geometry and metadata\n\n### formatArcBreadcrumb(arc)\n\nGenerate a breadcrumb trail for an arc.\n\n**Parameters:**\n- `arc` (LayoutArc): The arc to generate breadcrumbs for\n\n**Returns:**\n- `BreadcrumbTrailItem[]`: Array of breadcrumb items\n\n---\n\n## Build & Development\n\n### Development Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/aqu1tain/sandjs.git\ncd sandjs\n\n# Install dependencies\nnpm install\n\n# Run tests\nnpm test\n\n# Build the library\nnpm run build\n\n# Run tests and build\nnpm run verify\n```\n\n### Development Server\n\n```bash\nnpm run dev\n```\n\nOpens a development server at `http://localhost:4173` with live examples.\n\n### Project Structure\n\n```\nsandjs/\n├── src/\n│   ├── index.ts           # Public API exports\n│   ├── layout/            # Layout computation\n│   ├── render/            # SVG rendering\n│   └── types/             # TypeScript definitions\n├── demo/                  # Interactive examples\n├── dist/                  # Build output (generated)\n└── tests/                 # Test suite\n```\n\n### Build Output\n\n- `dist/sandjs.mjs`: ES Module (default)\n- `dist/sandjs.iife.min.js`: Minified IIFE for CDN usage\n- `dist/index.d.ts`: TypeScript type definitions\n\n---\n\n## CDN Usage\n\nFor quick prototyping or non-bundled environments:\n\n```html\n<svg id=\"chart\"></svg>\n\n<script src=\"https://unpkg.com/@akitain/sandjs@1.0.0/dist/sandjs.iife.min.js\"></script>\n<script>\n  const { renderSVG } = window.SandJS;\n\n  renderSVG({\n    el: '#chart',\n    config: {\n      size: { radius: 200 },\n      layers: [\n        {\n          id: 'main',\n          radialUnits: [0, 2],\n          angleMode: 'free',\n          tree: [\n            { name: 'Category A', value: 40 },\n            { name: 'Category B', value: 60 }\n          ]\n        }\n      ]\n    },\n    tooltip: true\n  });\n</script>\n```\n\n---\n\n## Browser Support\n\nSand.js targets ESNext and supports modern browsers:\n\n| Browser | Minimum Version |\n|---------|-----------------|\n| Chrome | 80+ |\n| Firefox | 74+ |\n| Safari | 13.1+ |\n| Edge | 80+ |\n| iOS Safari | 13.4+ |\n| Chrome Android | 80+ |\n\n**Not supported:** Internet Explorer\n\n> For older browsers, transpile the bundle with Babel. See the [Browser Support Guide](./docs/guides/browser-support.md) for details.\n\n---\n\n## License\n\nMIT © Aqu1tain\n","readmeFilename":"README.md"}