{"_id":"@aberrantflux/kai-script","_rev":"8-b4f1ad896315247867259eef83a58a01","name":"@aberrantflux/kai-script","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@aberrantflux/kai-script","version":"0.1.0","_id":"@aberrantflux/kai-script@0.1.0","maintainers":[{"name":"aberrantflux","email":"kai@kaistevenson.com"}],"dist":{"shasum":"d8e2d082ccecf4d04f0637713005305ab32f5e9f","tarball":"https://registry.npmjs.org/@aberrantflux/kai-script/-/kai-script-0.1.0.tgz","fileCount":101,"integrity":"sha512-KpyegJSSE8EJkAxQYehhaSNMFkOjxYS7MqOuJIMi2FZvtKHD4mJ9XNmoYDrK0AZ9Pjf64DvKVLzqCxclBoMWyQ==","signatures":[{"sig":"MEQCIDOUJlMR9Cw6ZchOOFQ7/86+9+qBs3wQCzplxHp3QlMQAiBOfxy7Ir6FEKo8+g4btdYbMdLhLJq/Ql52rW9KFtGqgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80594},"exports":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"gitHead":"ef861b383a29fd8e5f0e963e96bd0a043b918c6f","scripts":{"build":"tsc"},"_npmUser":{"name":"aberrantflux","email":"kai@kaistevenson.com"},"_npmVersion":"11.4.2","description":"A type safe framework for TypeScript","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.20.0","devDependencies":{"tsx":"^4.19.2","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/kai-script_0.1.0_1762244827008_0.46676720649999703","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aberrantflux/kai-script","version":"0.2.0","_id":"@aberrantflux/kai-script@0.2.0","maintainers":[{"name":"aberrantflux","email":"kai@kaistevenson.com"}],"dist":{"shasum":"dc202f3124cc1accd0308458ce7a06a7339cdf68","tarball":"https://registry.npmjs.org/@aberrantflux/kai-script/-/kai-script-0.2.0.tgz","fileCount":98,"integrity":"sha512-BUvoOY2y8nFEdcu58GDYG2mpYhmfIrsusgski2NT0BJWjWoEehRRm9Ati8EYktekcsk4ONzcez/UuO8odWlIdA==","signatures":[{"sig":"MEQCICm2SUMJZU6dR6TfXEHklP29eRD8PgvFuQgbT0vkR7+oAiA+EstLtnOZdWBIDTIwrxhn96k86alWoyppRh9MhJRruA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98968},"exports":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"gitHead":"ccaff310c85a64a852d96ee71ecf9640de57ea36","scripts":{"build":"tsc"},"_npmUser":{"name":"aberrantflux","email":"kai@kaistevenson.com"},"_npmVersion":"11.4.2","description":"A type safe framework for TypeScript","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.20.0","devDependencies":{"tsx":"^4.19.2","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/kai-script_0.2.0_1762489888110_0.9649554437166725","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@aberrantflux/kai-script","version":"0.2.1","_id":"@aberrantflux/kai-script@0.2.1","maintainers":[{"name":"aberrantflux","email":"kai@kaistevenson.com"}],"dist":{"shasum":"3a44453417075b1dae6754e9cb83120fc365dd2b","tarball":"https://registry.npmjs.org/@aberrantflux/kai-script/-/kai-script-0.2.1.tgz","fileCount":105,"integrity":"sha512-qw7jazsC/tm1QfsX0WLMj5TzYwyGyEPFabPixgUjXsjgMvPlMg6EOue7UKmtOQVdexUEjxlSKx3siXBltWuuVQ==","signatures":[{"sig":"MEUCIQDucTeNvHZ8LiingaBUXf28g1N01ncWAp4PUFzAwGr0NAIgQ9q2lfGyU5E3d2EhW9ooAePuMCNm/xtZDz4ZNihDCXs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104884},"exports":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"gitHead":"083090d615e6a33ec1e1c65f186346424b8ba195","scripts":{"build":"tsc"},"_npmUser":{"name":"aberrantflux","email":"kai@kaistevenson.com"},"repository":{"url":"git+https://git.aberrantflux.xyz/kai-script.git/","type":"git"},"_npmVersion":"11.4.2","description":"A type safe framework for TypeScript","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.20.0","devDependencies":{"tsx":"^4.19.2","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/kai-script_0.2.1_1762493904403_0.49163882079521204","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@aberrantflux/kai-script","version":"0.2.2","_id":"@aberrantflux/kai-script@0.2.2","maintainers":[{"name":"aberrantflux","email":"kai@kaistevenson.com"}],"dist":{"shasum":"a0d99e34cf93df7b9f3d6ebc19446b05d8af5e51","tarball":"https://registry.npmjs.org/@aberrantflux/kai-script/-/kai-script-0.2.2.tgz","fileCount":105,"integrity":"sha512-2Pe//1GwGxvUlsrAkvw72WrevA0pCO66R3x3lbs4jFi77htMmfbG3GJsezwfkcp9LZYTqscIFIJiSOiOI8eLQw==","signatures":[{"sig":"MEUCIHD67P/UM2+jswyDGoaAGvaeSnKwU/LlWXfobW/xYxlPAiEAzLkTtn+mSk6APtn2JNUvd2Uot0bBU12GqKbWApsKe8A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104900},"exports":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"gitHead":"3111336dd98c68dccc7c0e734d4b2d70e1402dc7","scripts":{"build":"tsc"},"_npmUser":{"name":"aberrantflux","email":"kai@kaistevenson.com"},"repository":{"url":"git+https://git.aberrantflux.xyz/kai-script.git/","type":"git"},"_npmVersion":"11.4.2","description":"A type safe framework for TypeScript","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.20.0","devDependencies":{"tsx":"^4.19.2","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/kai-script_0.2.2_1762494442709_0.10765664480642512","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@aberrantflux/kai-script","version":"0.2.3","_id":"@aberrantflux/kai-script@0.2.3","maintainers":[{"name":"aberrantflux","email":"kai@kaistevenson.com"}],"dist":{"shasum":"db3ca5db348663071b15b401d96cd38d452dd244","tarball":"https://registry.npmjs.org/@aberrantflux/kai-script/-/kai-script-0.2.3.tgz","fileCount":105,"integrity":"sha512-BYuDpkSC8noAkrnlDG/NM1JADTnrju2ZeXrAeL4TDoI+jTRVkr9am0HEPU3iZhgxMtZmNa05nRqSauWVt7Je1w==","signatures":[{"sig":"MEUCIFg0qL0ana0i3wiyQeU5TBe+ObIuqeH4r/EO2E+2ALz4AiEA7TdeWuLfuEmC9Xm5ZrR/DwJlQ3t4+yTP54Gtv65YDoE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105062},"exports":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"gitHead":"0a046893eaffc0d9ef762eb56b48f01bbd79846f","scripts":{"build":"tsc"},"_npmUser":{"name":"aberrantflux","email":"kai@kaistevenson.com"},"repository":{"url":"git+https://git.aberrantflux.xyz/kai-script.git/","type":"git"},"_npmVersion":"11.4.2","description":"A type safe framework for TypeScript","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.20.0","devDependencies":{"tsx":"^4.19.2","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/kai-script_0.2.3_1762495243426_0.6780511502101818","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@aberrantflux/kai-script","version":"0.2.4","_id":"@aberrantflux/kai-script@0.2.4","maintainers":[{"name":"aberrantflux","email":"kai@kaistevenson.com"}],"dist":{"shasum":"23dfcf5c925a826c2dfe1970d9d7674c15143266","tarball":"https://registry.npmjs.org/@aberrantflux/kai-script/-/kai-script-0.2.4.tgz","fileCount":106,"integrity":"sha512-U5Flcv0H4tarZYx24ufQMR/cOiuC8L6BombmnScIkaVpwxne+XSdgC8/qfJEP4Q9oc+PHPvBjHIaoeXMcJ/gMQ==","signatures":[{"sig":"MEQCIAaXgVQ+ccdRdYB7XrM2xVD1yaNfCO22gVsdXkwyOcS1AiANsMhvQBgabIJxz/71HmvqWK1WJW2jyegqxbU7QLaBUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139381},"_from":"file:aberrantflux-kai-script-0.2.4.tgz","exports":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"scripts":{"test":"pnpm run generate-tests && vitest run --reporter verbose && tsc --noEmit --project tests/type-consistency/tsconfig.json","build":"tsc --declaration","generate-tests":"rm -f tests/type-consistency/generated/*.test.ts && tsx tests/type-consistency/generateAll.ts"},"_npmUser":{"name":"aberrantflux","email":"kai@kaistevenson.com"},"_resolved":"/private/var/folders/mw/7mfm9t5s03xfnz6btpb1jwkh0000gn/T/600c351a0f87ae8d8691a91abca7041d/aberrantflux-kai-script-0.2.4.tgz","_integrity":"sha512-U5Flcv0H4tarZYx24ufQMR/cOiuC8L6BombmnScIkaVpwxne+XSdgC8/qfJEP4Q9oc+PHPvBjHIaoeXMcJ/gMQ==","repository":{"url":"git+https://git.aberrantflux.xyz/kai-script.git/","type":"git"},"_npmVersion":"11.4.2","description":"A type safe framework for TypeScript","directories":{},"_nodeVersion":"24.3.0","dependencies":{"node":"^25.1.0","typescript":"5.9.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^4.0.8","@types/node":"^24.10.0"},"_npmOperationalInternal":{"tmp":"tmp/kai-script_0.2.4_1762651871472_0.49529715358666104","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@aberrantflux/kai-script","version":"0.3.0","_id":"@aberrantflux/kai-script@0.3.0","maintainers":[{"name":"aberrantflux","email":"kai@kaistevenson.com"}],"dist":{"shasum":"9e7a70636ae354f32e4350deb4ea11de451d3e0c","tarball":"https://registry.npmjs.org/@aberrantflux/kai-script/-/kai-script-0.3.0.tgz","fileCount":106,"integrity":"sha512-DA0lXTgIfbGpkt6JmK/kwFwsIm/N3cCHjfnzDEZJ9f8q0k6RvhQQWlLIv9QaxbNIKvhk69BVrL4+UNpz6Xt7Dw==","signatures":[{"sig":"MEYCIQCuvuSa6j56qmZroejq35uQ1BQIb8LZdJFJ6afTxMQAFAIhANL/XIyseXfWjYY1e9uNrb3fiTIDnIRQg5JALSwdv5Aa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114802},"exports":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"gitHead":"413eaa284e164143c5416cdce5a1de0f9f992409","scripts":{"test":"pnpm run generate-tests && vitest run --reporter verbose && tsc --noEmit --project tests/type-consistency/tsconfig.json && echo 'All tests passed!'","build":"tsc --declaration","safe-publish":"rm -rf dist && pnpm build && pnpm test && npm publish","generate-tests":"rm -f tests/type-consistency/generated/*.test.ts && tsx tests/type-consistency/generateAll.ts"},"_npmUser":{"name":"aberrantflux","email":"kai@kaistevenson.com"},"repository":{"url":"https://git.aberrantflux.xyz/kai-script.git/","type":"git"},"_npmVersion":"11.4.2","description":"A type safe framework for TypeScript","directories":{},"_nodeVersion":"24.3.0","dependencies":{"node":"^25.1.0","typescript":"5.9.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.20.0","devDependencies":{"tsx":"^4.19.2","vitest":"^4.0.8","@types/node":"^24.10.0"},"_npmOperationalInternal":{"tmp":"tmp/kai-script_0.3.0_1762751340891_0.5910376618463982","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@aberrantflux/kai-script","description":"A type safe framework for TypeScript","version":"0.4.0","repository":{"type":"git","url":"https://git.aberrantflux.xyz/kai-script.git/"},"scripts":{"build":"tsc --declaration","generate-tests":"rm -f tests/type-consistency/generated/*.test.ts && tsx tests/type-consistency/generateAll.ts","test":"pnpm run generate-tests && vitest run --reporter verbose && tsc --noEmit --project tests/type-consistency/tsconfig.json && echo 'All tests passed!'","safe-publish":"rm -rf dist && pnpm build && pnpm test && npm publish"},"exports":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"dependencies":{"typescript":"5.9.3","node":"^25.1.0"},"devDependencies":{"tsx":"^4.19.2","vitest":"^4.0.8","@types/node":"^24.10.0"},"publishConfig":{"access":"public"},"packageManager":"pnpm@10.20.0","_id":"@aberrantflux/kai-script@0.4.0","gitHead":"190f85ff1ac23f952a7b4960638fee79495e249a","_nodeVersion":"24.3.0","_npmVersion":"11.4.2","dist":{"integrity":"sha512-55XynXBotqopqMTPMKO1UZhWLStV9S4ulB5iEn9xuw7cpi6CfMBKZrDpegCbo1PhZkfJhbt+ZJxctlQOUdaSrQ==","shasum":"8dc341d6f689506c71e3116341ca384d78dd6ac0","tarball":"https://registry.npmjs.org/@aberrantflux/kai-script/-/kai-script-0.4.0.tgz","fileCount":106,"unpackedSize":118568,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFUgfpBfw06Q9ilMcOHnniMwNb2DJgcNDjXD2PidY8y0AiEAnqtLNzYxn7KHDyHYmy0YBNQNZvsQ5CIfc/lVB0iIulo="}]},"_npmUser":{"name":"aberrantflux","email":"kai@kaistevenson.com"},"directories":{},"maintainers":[{"name":"aberrantflux","email":"kai@kaistevenson.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/kai-script_0.4.0_1762753954453_0.7930464435067348"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-04T08:27:06.917Z","modified":"2025-11-10T05:52:34.826Z","0.1.0":"2025-11-04T08:27:07.216Z","0.2.0":"2025-11-07T04:31:28.309Z","0.2.1":"2025-11-07T05:38:24.580Z","0.2.2":"2025-11-07T05:47:22.890Z","0.2.3":"2025-11-07T06:00:43.602Z","0.2.4":"2025-11-09T01:31:11.695Z","0.3.0":"2025-11-10T05:09:01.085Z","0.4.0":"2025-11-10T05:52:34.633Z"},"repository":{"type":"git","url":"https://git.aberrantflux.xyz/kai-script.git/"},"description":"A type safe framework for TypeScript","maintainers":[{"name":"aberrantflux","email":"kai@kaistevenson.com"}],"readme":"# KaiScript\n\n#### KaiScript is a simple functional programming language implemented inside of the TypeScript type system and inside of the TypeScript language.\n\nThis means that you can write programs inside TypeScript that evaluate without running the code. The inferred type of a KaiScript program is always exactly equal to the runtime value.\n\n![KaiScript example code](https://files.aberrantflux.xyz/pictures/kaiscript_example.png)\n\n## Using KaiScript\n\nTo see what KaiScript is capable of, take a look at the guided tour here: [[EXAMPLES]](./examples/README.md)\n\n## Links\n\n- [GitHub repository](https://github.com/KaiStevenson/kai-script)\n\n- [Self hosted repository](https://git.aberrantflux.xyz/kai-script.git/)\n\n- [NPM package](https://www.npmjs.com/package/@aberrantflux/kai-script)\n\n## FAQ\n\n> Why would I want to use this?\n\nYou probably wouldn't!\n\n> Why did you make this?\n\nTypeScript has a fantastic type system that is somewhat underappreciated in the public consciousness. Writing this was super fun, and I discovered a lot along the way. You should do it too! If you're interested in trying, I recommend not looking at the implementation of KaiScript. **Most of the fun is in figuring it out for yourself**.\n\n> How can I write imperative code?\n\nYou can't.\n\n> How can I publish a package for KaiScript?\n\nKaiScript doesn't have its own package manager yet, but it works natively with npm.\nIf you've written a useful library, just export it like so:\n\n```typescript\nexport const myKaiScriptFunction = \"fn(...)\";\n```\n\nPublish it to npm, and anyone else can easily use it via template literals:\n\n```typescript\nimport { myKaiScriptFunction } from \"my-kai-script-function\";\nexport const usesLibrary = `call(${myKaiScriptFunction}, args)`;\n```\n","readmeFilename":"README.md"}