{"_id":"@angelator312/codetest","_rev":"12-47c3b606704865b21a23a67d2589b876","name":"@angelator312/codetest","dist-tags":{"latest":"3.1.1"},"versions":{"1.0.0":{"name":"@angelator312/codetest","version":"1.0.0","author":{"name":"angelator312, zaro"},"license":"MIT","_id":"@angelator312/codetest@1.0.0","maintainers":[{"name":"angelator312","email":"angel.raev2012@gmail.com"}],"bin":{"Codetest":"Codetest.js"},"dist":{"shasum":"597c4a34cd466aaad6ddb5d6b4eba5d7aebbbbb2","tarball":"https://registry.npmjs.org/@angelator312/codetest/-/codetest-1.0.0.tgz","fileCount":26,"integrity":"sha512-gctKQCpK4SZ+8+Bijm9649yogxii4y/EcTDOFqXrDAXzVqfrqEsln4V6dM7pngPwjrzYVk9fSCO8TfB6eNFAmg==","signatures":[{"sig":"MEUCIQDSRyAWgHxtQdsxss+570X67O1w/OxVIF3BP6fwAekTAQIgIGjSvyJzC90CGPM/bt8eDkVIZRFuqvy2uZt6nJXr1dA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24650},"main":"index.js","type":"module","gitHead":"a97ec53a6c94e1f28d6f846f05b9e43a4fb57e06","scripts":{"test":"exit 0"},"_npmUser":{"name":"angelator312","email":"angel.raev2012@gmail.com"},"_npmVersion":"10.8.2","description":"## Install","directories":{},"_nodeVersion":"20.20.0","dependencies":{"diff":"^8.0.3","chalk":"^5.6.2","chokidar":"^5.0.0","random-seedable":"^1.0.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/codetest_1.0.0_1769449444116_0.0021260323966658667","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@angelator312/codetest","version":"1.0.1","author":{"name":"angelator312, zaro"},"license":"MIT","_id":"@angelator312/codetest@1.0.1","maintainers":[{"name":"angelator312","email":"angel.raev2012@gmail.com"}],"bin":{"codetest":"Codetest.js"},"dist":{"shasum":"67ec9ee972cf6e56efb3cdf4dbaf3630f55ef298","tarball":"https://registry.npmjs.org/@angelator312/codetest/-/codetest-1.0.1.tgz","fileCount":26,"integrity":"sha512-+zwTBvOVsyqQqGTONIiuCleX/KgfWY75PzMbbmd8OtWHvPK9V+gwCV33Vw/qWOnSmBQ70svy5sVv3IjkTMlVDg==","signatures":[{"sig":"MEUCICGwUIMfgrM40pLyk1wiamC9HA+VO8jkYMzbaCCZ+56eAiEAitsYcCnklsIBLt+aHqVsEe4NMjAvzxyQaiY4RJ04LyA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24650},"main":"index.js","type":"module","gitHead":"00c8e61b79032f0004e560c0ffa29443cb119172","scripts":{"test":"exit 0"},"_npmUser":{"name":"angelator312","email":"angel.raev2012@gmail.com"},"_npmVersion":"10.8.2","description":"## Install","directories":{},"_nodeVersion":"20.20.0","dependencies":{"diff":"^8.0.3","chalk":"^5.6.2","chokidar":"^5.0.0","random-seedable":"^1.0.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/codetest_1.0.1_1769449819997_0.09722503965626572","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@angelator312/codetest","version":"1.0.2","author":{"name":"angelator312, zaro"},"license":"MIT","_id":"@angelator312/codetest@1.0.2","maintainers":[{"name":"angelator312","email":"angel.raev2012@gmail.com"}],"bin":{"codetest":"Codetest.js"},"dist":{"shasum":"029109d9f58a20fee356db591b32183487ee8c8b","tarball":"https://registry.npmjs.org/@angelator312/codetest/-/codetest-1.0.2.tgz","fileCount":44,"integrity":"sha512-L6swgH6EEcHsODniWQ8wtiYMPWT1R8jCOzLiAwXk+oBUjWG3FHXQPyTaIgPU1CQaiEWNFGfFxLfSpWAWZ9xIBw==","signatures":[{"sig":"MEQCIDwOqe4S/TPc+ReNzqioGDDrmw4nvmaCPdgJyRAKqDRvAiA8I3ZZTNrI6qqfKCHRYNM9fmJ3R2YjXnFhmw6EdHGlvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67759},"main":"index.js","type":"module","gitHead":"06475e54df9a07d4a570001076d32a3e11b10096","scripts":{"test":"exit 0"},"_npmUser":{"name":"angelator312","email":"angel.raev2012@gmail.com"},"_npmVersion":"10.8.2","description":"## Install","directories":{},"_nodeVersion":"20.20.0","dependencies":{"diff":"^8.0.3","chalk":"^5.6.2","chokidar":"^5.0.0","random-seedable":"^1.0.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/codetest_1.0.2_1770123946594_0.9963699283464333","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@angelator312/codetest","version":"1.0.3","author":{"name":"angelator312, zaro"},"license":"MIT","_id":"@angelator312/codetest@1.0.3","maintainers":[{"name":"angelator312","email":"angel.raev2012@gmail.com"}],"bin":{"codetest":"Codetest.js"},"dist":{"shasum":"64c1cf61379ff81b9a13f0c5b401e7de5e41569e","tarball":"https://registry.npmjs.org/@angelator312/codetest/-/codetest-1.0.3.tgz","fileCount":44,"integrity":"sha512-VoafqGDI1KRr01HuHtEW19uxjOxzlCUoJpdh2QH/MOW0lBaLpa9SIRJmrmspxM5sFlmg4OioG0tCrhTA6ISWeQ==","signatures":[{"sig":"MEYCIQCFVzMaj+hV0IsZotnYs4012sw0saOvD3/MNG0Fh4W0XQIhANErDkBAwyHy3baebdhQYB9XWzqEgvQ5hTV6XwJ5+Zu3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71258},"main":"index.js","type":"module","gitHead":"642c06de205432404e9a44b82c04bc042007a90e","scripts":{"test":"exit 0"},"_npmUser":{"name":"angelator312","email":"angel.raev2012@gmail.com"},"_npmVersion":"10.8.2","description":"## Install","directories":{},"_nodeVersion":"20.20.0","dependencies":{"diff":"^8.0.3","chalk":"^5.6.2","chokidar":"^5.0.0","random-seedable":"^1.0.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/codetest_1.0.3_1770182365489_0.312866297267695","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@angelator312/codetest","version":"1.0.4","author":{"name":"angelator312, zaro"},"license":"MIT","_id":"@angelator312/codetest@1.0.4","maintainers":[{"name":"angelator312","email":"angel.raev2012@gmail.com"}],"bin":{"codetest":"Codetest.js"},"dist":{"shasum":"dd317f95d575a4f1d9f934e83bdcebbdbfdde190","tarball":"https://registry.npmjs.org/@angelator312/codetest/-/codetest-1.0.4.tgz","fileCount":44,"integrity":"sha512-3/mm2R3pTc7/zIC/OCrHADzlLiIBZiT1SJUzVA/ZDhmaDK6Bb8pSdJhooOr/oGQFtaTQuvGBj555iePrA6sQ7w==","signatures":[{"sig":"MEQCIBz7rKsSH+zRuOwJQykBD+/3AEWNNUf8juhwG1PyNzwcAiAXqtW+sPyEhEQzVt76JrIIr9zGq/YGhheoa4FeFZr50Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76297},"main":"index.js","type":"module","gitHead":"0ffb822099676d7be676ee650450905cfca902ab","scripts":{"test":"exit 0"},"_npmUser":{"name":"angelator312","email":"angel.raev2012@gmail.com"},"_npmVersion":"10.8.2","description":"## Install","directories":{},"_nodeVersion":"20.20.0","dependencies":{"diff":"^8.0.3","chalk":"^5.6.2","chokidar":"^5.0.0","random-seedable":"^1.0.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/codetest_1.0.4_1773076064307_0.17619380269354257","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@angelator312/codetest","version":"1.0.5","author":{"name":"angelator312, zaro"},"license":"MIT","_id":"@angelator312/codetest@1.0.5","maintainers":[{"name":"angelator312","email":"angel.raev2012@gmail.com"}],"bin":{"codetest":"Codetest.js"},"dist":{"shasum":"7b533194dd390578d0d1f8160fb79c367c2ebec8","tarball":"https://registry.npmjs.org/@angelator312/codetest/-/codetest-1.0.5.tgz","fileCount":44,"integrity":"sha512-yNt/kGuVxrefIuB3VkKJZ8Lov9JWXeQvUAik9fl2j1gslbgSWyM4UTujXPVrjAzeluz/esReoaJgoTnmFy85sQ==","signatures":[{"sig":"MEUCIQCA9iKx3Kp/KgTpxdQEts8GcVq10GOiOjHEg/9YDg++LAIgas4cS9K2qLEL0hqqe3GU3B0v8I9tFz4Wyy8m7YzyPgw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76297},"main":"index.js","type":"module","gitHead":"8285b043e82d0f772c2cd9d03dff3489bd79360a","scripts":{"test":"exit 0"},"_npmUser":{"name":"angelator312","email":"angel.raev2012@gmail.com"},"_npmVersion":"10.8.2","description":"## Install","directories":{},"_nodeVersion":"20.20.0","dependencies":{"diff":"^8.0.3","chalk":"^5.6.2","chokidar":"^5.0.0","random-seedable":"^1.0.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/codetest_1.0.5_1773076232467_0.8150652878842926","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@angelator312/codetest","version":"1.1.0","author":{"name":"angelator312, zaro"},"license":"MIT","_id":"@angelator312/codetest@1.1.0","maintainers":[{"name":"angelator312","email":"angel.raev2012@gmail.com"}],"bin":{"codetest":"Codetest.js"},"dist":{"shasum":"b07f37e14c53f62cd13bcb399c9432410b791656","tarball":"https://registry.npmjs.org/@angelator312/codetest/-/codetest-1.1.0.tgz","fileCount":44,"integrity":"sha512-QOKZzsEdyWmY4ynfF+C8muF8thsqspiCxCy1bPpPlBkruViCYeHV+0yvswoZceIi45+aFYbvF7UA/1/81yMDTA==","signatures":[{"sig":"MEUCIQD637Hv96VHmhdaft/V64WsNXCx7EwMywpbvP7b7Kt0AwIgbRQouxPge+oHZtjvUoukLzWmmYNbJeWgjQUYQwq8oso=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76884},"main":"index.js","type":"module","gitHead":"5d67c0c5bac9a334889b5bf4ff402c769ba2ee6e","scripts":{"test":"exit 0"},"_npmUser":{"name":"angelator312","email":"angel.raev2012@gmail.com"},"_npmVersion":"10.8.2","description":"## Install","directories":{},"_nodeVersion":"20.20.0","dependencies":{"diff":"^8.0.3","chalk":"^5.6.2","chokidar":"^5.0.0","random-seedable":"^1.0.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/codetest_1.1.0_1773333694081_0.9681305071623676","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@angelator312/codetest","version":"1.1.1","author":{"name":"angelator312, zaro"},"license":"MIT","_id":"@angelator312/codetest@1.1.1","maintainers":[{"name":"angelator312","email":"angel.raev2012@gmail.com"}],"bin":{"codetest":"Codetest.js"},"dist":{"shasum":"024e6b406407e947dd59228f13b6da9e11c916b8","tarball":"https://registry.npmjs.org/@angelator312/codetest/-/codetest-1.1.1.tgz","fileCount":44,"integrity":"sha512-hQvFaHKbZCrIHFbCUOtF58Xam8HpM62YNOqM+fUZTvJt6eSNhKjGmGrqaPstRASh65DJEb3B/15bhBSfMDc0RA==","signatures":[{"sig":"MEUCIQCuL3cb87eft+ssOEXhXH1WPCIA56gwUoi5H3lh4nQrJAIgMx+vkFDJA5lVSZV7N79EYJN8HVGYwJRqRGvNFFL9Exs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77085},"main":"index.js","type":"module","gitHead":"5e6adbfbc00bb05cd696e028c53be08f4cfb00f1","scripts":{"test":"exit 0"},"_npmUser":{"name":"angelator312","email":"angel.raev2012@gmail.com"},"_npmVersion":"10.8.2","description":"## Install","directories":{},"_nodeVersion":"20.20.1","dependencies":{"diff":"^8.0.3","chalk":"^5.6.2","chokidar":"^5.0.0","random-seedable":"^1.0.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/codetest_1.1.1_1774080871375_0.3962106493062012","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@angelator312/codetest","version":"2.0.0","author":{"name":"angelator312, zaro"},"license":"MIT","_id":"@angelator312/codetest@2.0.0","maintainers":[{"name":"angelator312","email":"angel.raev2012@gmail.com"}],"bin":{"codetest":"Codetest.ts"},"dist":{"shasum":"e93ba2ccbc94ca3148c191bfdc8981a402f09a83","tarball":"https://registry.npmjs.org/@angelator312/codetest/-/codetest-2.0.0.tgz","fileCount":53,"integrity":"sha512-GCGsgjZgVllqciTyZXJlDdvsA5Fqd+uJDGLjt0N9TQKLhY1kwlmNhGlmNtF5xExYI73r6AkCtVcG3FwUjmSn2g==","signatures":[{"sig":"MEYCIQDqXpddcBmCVIvXt227/VWb0fIs3yeIuPF50AMpmeEJXQIhAMpTZdYKgUFxXz6dGayatVmyM/RQUK4L9qtnNl0n+x8O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93473},"main":"index.js","type":"module","gitHead":"db9cc7565f0e0c73b0839f51195fe856ce6a9d78","scripts":{"test":"exit 0","build":"node scripts/BuildTypes.ts","prepack":"npm run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"angelator312","email":"angel.raev2012@gmail.com"},"_npmVersion":"11.9.0","description":"1.  Clone this repo","directories":{},"_nodeVersion":"24.14.0","dependencies":{"diff":"^8.0.3","chalk":"^5.6.2","chokidar":"^5.0.0","random-seedable":"^1.0.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^25.5.0","dts-bundle-generator":"^9.5.1"},"_npmOperationalInternal":{"tmp":"tmp/codetest_2.0.0_1774357371767_0.7832635002322683","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@angelator312/codetest","version":"2.1.0","author":{"name":"angelator312, zaro"},"license":"MIT","_id":"@angelator312/codetest@2.1.0","maintainers":[{"name":"angelator312","email":"angel.raev2012@gmail.com"}],"bin":{"codetest":"Codetest.ts"},"dist":{"shasum":"d63945cc9c99b1ecc319fd2a5a5458e4f2717c08","tarball":"https://registry.npmjs.org/@angelator312/codetest/-/codetest-2.1.0.tgz","fileCount":59,"integrity":"sha512-ETkeCqqD64bV5Au7nAF4XpNTWQBUNKAwp7x5bquXZppNDmri3GD2R9lO5pnEWwy7hL7b0hL7S1Y48H7oCbxhYg==","signatures":[{"sig":"MEQCIBBuYQD/oyg3XkI3i15kP3mgOGGn7YDWEpDSW11+nTA5AiBAJYwLrr8ElKTmvOCJJsmSYvG8In0lktL0bjdop93qMg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103329},"main":"index.js","type":"module","gitHead":"8f85fe967c453fe05628c45745446401d625ef11","scripts":{"test":"exit 0","build":"node scripts/BuildTypes.ts","prepack":"npm run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"angelator312","email":"angel.raev2012@gmail.com"},"_npmVersion":"11.11.0","description":"1.  Clone this repo","directories":{},"_nodeVersion":"24.14.1","dependencies":{"diff":"^8.0.3","chalk":"^5.6.2","chokidar":"^5.0.0","random-seedable":"^1.0.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","ts-node":"^10.9.2","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","dts-bundle-generator":"^9.5.1"},"_npmOperationalInternal":{"tmp":"tmp/codetest_2.1.0_1775797349256_0.4628125736435811","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@angelator312/codetest","version":"3.0.0","author":{"name":"angelator312, zaro"},"license":"MIT","_id":"@angelator312/codetest@3.0.0","maintainers":[{"name":"angelator312","email":"angel.raev2012@gmail.com"}],"bin":{"codetest":"entrypoints/main.ts"},"dist":{"shasum":"a67eae99a554706c767958100a84a2ed3bdb2a94","tarball":"https://registry.npmjs.org/@angelator312/codetest/-/codetest-3.0.0.tgz","fileCount":90,"integrity":"sha512-25eMCXukBhKdRayxyTQ30Qf9+v1wqGWjt6BqDehtUlbM7cdel4T87ZPSK1OWRror59GRPUYCKRfr5f+wmVV4KQ==","signatures":[{"sig":"MEUCIHDPl/LDQFoMAeHoWScTPKixCXLbSsQEUyBAzgGaHAKNAiEAmtF/RIsw129vlFWswwEZChICBtaaUfjg4PQ3zCbSVLY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136246},"main":"index.js","type":"module","gitHead":"142ac4fef2cf1a529dc1400a7d7f87c04f438d56","scripts":{"test":"exit 0","build":"node scripts/BuildTypes.ts","prepack":"npm run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"angelator312","email":"angel.raev2012@gmail.com"},"_npmVersion":"11.16.0","description":"1.  Clone this repo","directories":{},"_nodeVersion":"24.18.0","dependencies":{"diff":"^8.0.3","chalk":"^5.6.2","chokidar":"^5.0.0","random-seedable":"^1.0.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","ts-node":"^10.9.2","prettier":"^3.8.1","@types/bun":"^1.3.13","typescript":"^5.9.3","@types/node":"^25.5.0","dts-bundle-generator":"^9.5.1"},"_npmOperationalInternal":{"tmp":"tmp/codetest_3.0.0_1783853695434_0.8972646930928623","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"@angelator312/codetest","version":"3.1.1","description":"1.  Clone this repo","license":"MIT","author":{"name":"angelator312, zaro"},"type":"module","main":"index.js","scripts":{"test":"exit 0","typecheck":"tsc --noEmit","build":"node scripts/BuildTypes.ts","prepack":"npm run build"},"bin":{"codetest":"entrypoints/main.ts"},"dependencies":{"chalk":"^5.6.2","chokidar":"^5.0.0","diff":"^8.0.3","random-seedable":"^1.0.8"},"devDependencies":{"@types/bun":"^1.3.13","@types/node":"^25.5.0","dts-bundle-generator":"^9.5.1","prettier":"^3.8.1","ts-node":"^10.9.2","tsx":"^4.21.0","typescript":"^5.9.3"},"gitHead":"4b88273225461e4a2e78bb3239ad03cbce87843f","_id":"@angelator312/codetest@3.1.1","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-8K2akIwsoB/60SsXXBad5NT/Fbzfe5i2RNdQ2AUAGEhA6idAP1HfElzupvzXPXnKSkt/euDl91gzmvStRLcZoQ==","shasum":"c02a49867cebd3b550db93990d617201b78bd106","tarball":"https://registry.npmjs.org/@angelator312/codetest/-/codetest-3.1.1.tgz","fileCount":117,"unpackedSize":540340,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDoDjSiNeUHG4D2QING/SITckJzkaYLdzWu0M6lNsCWvQIgExygwMd0MxDmKDyLGLIC8GynPHqH3y9ZAMpFquPjRH8="}]},"_npmUser":{"name":"angelator312","email":"angel.raev2012@gmail.com"},"directories":{},"maintainers":[{"name":"angelator312","email":"angel.raev2012@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codetest_3.1.1_1785760133493_0.46148088904251083"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-26T17:44:04.011Z","modified":"2026-08-03T12:28:53.860Z","1.0.0":"2026-01-26T17:44:04.257Z","1.0.1":"2026-01-26T17:50:20.134Z","1.0.2":"2026-02-03T13:05:46.738Z","1.0.3":"2026-02-04T05:19:25.632Z","1.0.4":"2026-03-09T17:07:44.483Z","1.0.5":"2026-03-09T17:10:32.618Z","1.1.0":"2026-03-12T16:41:34.229Z","1.1.1":"2026-03-21T08:14:31.516Z","2.0.0":"2026-03-24T13:02:51.925Z","2.1.0":"2026-04-10T05:02:29.426Z","3.0.0":"2026-07-12T10:54:55.589Z","3.1.1":"2026-08-03T12:28:53.647Z"},"author":{"name":"angelator312, zaro"},"license":"MIT","description":"1.  Clone this repo","maintainers":[{"name":"angelator312","email":"angel.raev2012@gmail.com"}],"readme":"# Test runner\n\n## Install\n\n1.  Clone this repo\n\n2.  In the cloned repo directory run\n\n        npm install\n        npm link\n\n## Usage\n\n1. Create a js file, to generate test data. See example folder, i.e testGen.js\n\n2. Run it with:\n\n```sh\n    # Run once\n    codetest testGen.js N=30..31 M=5..6\n\n    # Rerun on each change with verbose output and keeping input files\n    codetest testGen.js N=30..31 M=5..6 --verbose --keep-input --watch\n```\n\n### Dev\n\n```sh\n    codetest dev CPP=sum.cpp DIR=test.in.d\n```\n\nThe script will run the tests(from the DIR or `nameOfCPP.d`) and compare the output with the expected output.\nTests starting whith '.someName' are ignored.\nSee example folder.\n\n#### Params\n\n- CPP - which file to run\n- DIR - which directory to look for tests(cppname.d)\n- TIME - how many ms to wait the program before gracefully terminating her\n\n### Options\n\nOptions can be specified in any order.\n\n- **--verbose** - verbose output\n- **--keep-input** - After successful test, preserve the input file\n- **--watch** - Watch test file and rerun automatically on change\n- **--export-types [file]** - exports all types into the *file*\n- **--get-dev** - Copy `npmdir/stdTest/dev.js` to `./dev.js` \n- **--auth** - Auth one of the judges\n\n### Parameters\n\nAll parameters must be one of:\n\n- **VAR=VALUE** - variable named VAR will be exported in the global namespace with value VALUE\n\n- **VAR=<RANGE_START>..<RANGE_END>** - global variable that is iterated from RANGE_START to RANGE_END. The increment happens only if NextCase() is called.\n\n### Commands\n\nPress Ctrl-G while the command is running(watch mode is required) for help.\n\n### Sending to judges\n\nPress Ctr-F\nIf CPP file first line is like `// judge.orc/...` and the judge is supported. The file 'll be submitted.\n\nThere's also way to authenticate\n\n1. Cses\n   - Run `codetest --auth cses`\n   - You'll be prompted to type your username and password\n   - If you typed it correctly the command is going to exit with OK.\n\n## TODO:\n\n1. Add more onilne judges\n2. Make a blog post about Codetest\n3. More examples\n4. Remade sender\n5. Make a new command for getting constrains of the problem\n6. Make generateble templates for code\n\n- with dynamic constraints\n- dynamic input logic\n- codesender new CPP=... URL=...\n\n7. Support other languages(not only c++)\n","readmeFilename":"README.md"}