{"_id":"@kedem/okjs","_rev":"30-fba344334c8a62cbcc07468e53bd36bb","name":"@kedem/okjs","dist-tags":{"latest":"1.4.0"},"versions":{"1.2.3":{"name":"@kedem/okjs","version":"1.2.3","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.3","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"4621c6b7e1feb9f26c546134e22987fdc3fc2b9d","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.3.tgz","fileCount":138,"integrity":"sha512-xm04zNuQHI+T0YE04WGuV9sk4X9Stktnw4z7pILdeq1hvN+2AzFaimzkiLi0LXElWCzaH/u8x3ZrXCy0ycG15Q==","signatures":[{"sig":"MEYCIQD6orL2cRMAzyLLa81SaABXFbRAATBRZGBKDg3NsRoi8wIhAJfzU8emG8T9AO89Z2Jq82XMlVi7M8jSbBWHXQb9KX2d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":913776},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./toolkit":"./toolkit/index.js"},"gitHead":"530fa69d99ce7a8dd8f8589bc3a206ab20bc6a24","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.9.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.3_1777941740295_0.03995584933909946","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@kedem/okjs","version":"1.2.4","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.4","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"84a6180262fb7a978bf80cb9a225f416e4991462","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.4.tgz","fileCount":138,"integrity":"sha512-DcjpPfiq0KYOOnSjCr2NzcnqICWjUj5P05XHk5lG46KvXVp+N6gz/YyMK6XFvRgOwrXQFUVOhzI5pyi5JLfjcQ==","signatures":[{"sig":"MEUCIQDdtwNls8ejlfj32NorL/JW5mZ+7k6416SMvHJ1k45pSwIgJK+BrRA+4Dky79CEawTPnZCL5R0HkjosocW75PwaMmU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":839043},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./toolkit":"./toolkit/index.js"},"gitHead":"835ad1021d66c875edf38c08fa3e88d855211fea","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.9.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.4_1777995599714_0.053354541627673724","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@kedem/okjs","version":"1.2.5","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.5","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"df6e60c9c431bf5f12d918316add9765892f024e","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.5.tgz","fileCount":138,"integrity":"sha512-3Thj+pRGthG3zWIhmzCd/h7xaVdYTPk1YiCmzjCvK16GGAKMzqw2wHbdful/BycADEq1Q6uu+zendX4faRP6Jg==","signatures":[{"sig":"MEUCIQD22/iN+o749XtJHOURj94u+3D2m34gaGEFjq9yxM+qSwIgG75I7lB04HseiA3boqU+ZCU1IoIktzy0y/uyon0pQaw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":839510},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./toolkit":"./toolkit/index.js"},"gitHead":"bbbcfe8555f0e3ca2d4808dd57f6180efabe3c29","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.9.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.5_1778008788433_0.17136385753254513","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"@kedem/okjs","version":"1.2.6","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.6","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"35ccbdc4d34877069b0ebe53fda4a2e6c6845d41","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.6.tgz","fileCount":138,"integrity":"sha512-HFxZtuHhGD5HaVpB0Yzvt4LIfVNQgK6h9YUeu7ovhb0xZwFLHXdPwcEzNnZJHm01r1D/ty6wSnyJ9s4gFdoZvQ==","signatures":[{"sig":"MEUCIQCmyyMrq0tacd94xE3EEnN+FvnwBOaURThb5Qgh+mzEpgIgS7568Ty+Zcc42wyJ4idO3yh9Cd/fBXqfUWsdeFrOL/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":841367},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./toolkit":"./toolkit/index.js"},"gitHead":"c895b134e059ffae8ac6e055e0b7430c06a9e395","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.9.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.6_1778403250119_0.2831171072369756","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"@kedem/okjs","version":"1.2.7","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.7","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"f64505e6d2dc80453de98aea6d7231a9d69ed180","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.7.tgz","fileCount":138,"integrity":"sha512-RZeagH1mkxCW+BPfQEuBxuWRhaBlTBcYuVmH/rFpLbznVb0q/75aZMq7Br8GuagEnc4JRCdJIqD8Koa9XPBiYw==","signatures":[{"sig":"MEUCIAMfUAyh0ogiW3oHkQja/1ig7DYwpC6JOPp6YYGHOmDzAiEAy33w+7tpJLsokm5T/R0OT51aPyenNudLglSFz81TpfU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":839774},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./toolkit":"./toolkit/index.js"},"gitHead":"b05f51b202bc84063812ea55d0cf510ce0747794","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.9.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.7_1778597537024_0.1544957018024815","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"@kedem/okjs","version":"1.2.8","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.8","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"225303c0f56e54af1dfffa2d4387bb5b248b4c99","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.8.tgz","fileCount":138,"integrity":"sha512-aBPhqY6fQITbpiCO9MPKIYoPGcCkoaGaThjxLJn0oVCDRYzFst2K71Gu2OzgR3LGzKfLW3Ln5UlWI3AuWgEHww==","signatures":[{"sig":"MEYCIQCUjS3Ih1gbUv5P97HnzlV1Lwkp8TMpqTOQ3biekX7t8AIhAMU2WcLjmnoldicu+5qbWwSyd/OB9cpQBzz/WXk4N9Vs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":840253},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./toolkit":"./toolkit/index.js"},"gitHead":"f91e4afd81139b855d1fc950cb40b63a19e68e85","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.9.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.8_1778608685196_0.3731264829720049","host":"s3://npm-registry-packages-npm-production"}},"1.2.9":{"name":"@kedem/okjs","version":"1.2.9","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.9","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"678d77030a8b3e29cfa38b814a25fa4a2e26caf8","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.9.tgz","fileCount":139,"integrity":"sha512-Mbh0DhI5NK3As4J6n1UOup8oN7/xGtY/GL//WGMun/TXSJQYRxwb+4Dzyy3O59b7pzBRzr8/YpdeQt1BefOa2g==","signatures":[{"sig":"MEUCIHjNp70ngJoF5N+m2xNPd2S6pyLt5NTuf7tCLXlJlXARAiEA83tSWsYlXnf6eK3EiIHkZ25MYSCZbY6FDCN2j2IceVs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":843489},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./toolkit":"./toolkit/index.js"},"gitHead":"878e15f3fd8c83ae192c3b7f23ab72aa9e52c891","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.9.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.9_1778781769724_0.9571165556426764","host":"s3://npm-registry-packages-npm-production"}},"1.2.10":{"name":"@kedem/okjs","version":"1.2.10","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.10","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"7d7d1387dd7b5b270e3c7248c509b2644a7f0298","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.10.tgz","fileCount":139,"integrity":"sha512-XsEIrsbhH/HyJJ5bGOVr/WSWXWB7MoW3YyhRw7q6UTW6nm+XJL9XPK5png3F/q5HqIrNS17saeGLUTXL3LctIA==","signatures":[{"sig":"MEUCIBp92T/K6I/GtfVllO234CobKBPmZhJpK72myxpDTb4rAiEA1us9fDYoK6+d5Ri20YfNmhVErWtW2py3caqgfIozvWw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":841190},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./toolkit":"./toolkit/index.js"},"gitHead":"b72be4fd0a6f38e5a136b8dcc5014d696e9b11c9","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.9.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.10_1778790392904_0.1491908859981812","host":"s3://npm-registry-packages-npm-production"}},"1.2.12":{"name":"@kedem/okjs","version":"1.2.12","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.12","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"509f26270085bb8e4950ea5882c860e6550feab3","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.12.tgz","fileCount":139,"integrity":"sha512-3gauZiAkh8Vx71PwpPctSSztWd20Hg2PnPsq1tNTVExawwylB4KSQkg9X1JoJS0YwnjvhCsRs7wVrD8UyyHIOg==","signatures":[{"sig":"MEYCIQDd4tMte2VDsY8UwBpGAMwleFDQBhADvgY7feoVcosjewIhAPbJQjhr42DJKCmdTADeBTyY+Ym3cuOhqSq0qEq67zzz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":860553},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./toolkit":"./toolkit/index.js"},"gitHead":"5c2d4bfef3854ec4f24812ffa84534e72a7841d9","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.9.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.12_1785791160511_0.9111428267154078","host":"s3://npm-registry-packages-npm-production"}},"1.2.13":{"name":"@kedem/okjs","version":"1.2.13","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.13","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"baa05c402da638e9b9d6e227987839f484db8d7c","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.13.tgz","fileCount":139,"integrity":"sha512-JSnno+sRwjZdy9pSUZljIveABlhB1ny7oqbrwd0+70lY/Y5A8LZO7A49F++ko5ByPKRjWPL4KO7NUmgcLuKKYQ==","signatures":[{"sig":"MEYCIQC2+/8rffEfQuG5FpfB8m5alCV1BkqhXHScw915viPM7AIhANxb6NQUDign5YYTeG9tlcgB5U0NJ0ivSzF4Rj78SxRZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":860377},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./toolkit":"./toolkit/index.js"},"gitHead":"ab169f82304557201f24e6627c1e18335db8233e","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.9.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.13_1786448797608_0.6123855122726918","host":"s3://npm-registry-packages-npm-production"}},"1.2.14":{"name":"@kedem/okjs","version":"1.2.14","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.14","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"528bed262e2dcf5732a2984d63b6d6024bb2b471","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.14.tgz","fileCount":139,"integrity":"sha512-+GiUuMc9aKIvj2W7YoqZuh43gTQ8qlJpypYiUwOh0iroUIr+WJKeplX3sVWB5gXG/FC1h9fIERo4ep9/NL6WEg==","signatures":[{"sig":"MEUCIQD54lOeL3Y7jAb4KMqHsipBwDWTtRjGN+ZIXHSJXGTiIAIgQHikUxj6L/hl/t/VBhNee7ssGcHjtDZN71uoTyVKE2Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":860613},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./toolkit":"./toolkit/index.js"},"gitHead":"264eeb13bf464b87158c80518890316e6e08fe9b","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.9.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.14_1786451942478_0.9413976729580338","host":"s3://npm-registry-packages-npm-production"}},"1.2.15":{"name":"@kedem/okjs","version":"1.2.15","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.15","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"f4faecacaf9b687119ebd492d346d7466f1f5f70","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.15.tgz","fileCount":139,"integrity":"sha512-dvu/MuQKRoR2aq32+miKeHsQu41v+x7hBmSPn8+u9EoSq1RUedkpXrxz/O71NxK9YAsr38q0ws0jAwpYFCAu2A==","signatures":[{"sig":"MEUCIQCR35KFLMfPCrGAJU423KmrPOJGnvg/nGGkrJLAeVap5wIgY8gWxX8MB/X4DsiSf0b0kOSN/oTxZ5aTKU7ZOdqR4Zs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":862516},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./toolkit":"./toolkit/index.js"},"gitHead":"b6facd5321962501873b8b759ebee0e2c49569c7","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.9.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.15_1786471950604_0.02350870216809775","host":"s3://npm-registry-packages-npm-production"}},"1.2.16":{"name":"@kedem/okjs","version":"1.2.16","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.16","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"7c18665776d687366307d7a74f22726470c5f28f","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.16.tgz","fileCount":139,"integrity":"sha512-i55N7OXoXyAvy+ITRsHDhRZ84t6Gd7Ug9yDf4KBqCRPDwztPu1fDrhYFrMdOFbtS3+P/7z7GIBPOAERgw/tWqQ==","signatures":[{"sig":"MEYCIQD5cV3uzcDabhq8CE8FAOcNxIfLBBejaYGZIMrFz6R3YwIhANmkvQXvfcrZyPUDWMPz/0nNcV6qaw8E6lr02ngQdyJj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":863205},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./toolkit":"./toolkit/index.js"},"gitHead":"e1852b935b5a805f69f3994f24818f734ea14ec1","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.9.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.16_1786557806806_0.04836633714939209","host":"s3://npm-registry-packages-npm-production"}},"1.2.17":{"name":"@kedem/okjs","version":"1.2.17","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.17","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"be2601e01195cde5797c0be3a8a77825a9d60dc9","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.17.tgz","fileCount":139,"integrity":"sha512-vFY+iU6YiczypkLG5y/l/LKEvbXWYiX6bhvE55ATWO3Y+ZwkFRaX5KWDT+dPRx/4QRpDyCaoSGBNfYPw+FKglA==","signatures":[{"sig":"MEUCIAXC+hM/sInYvII1oIi1+VazZDxD6SmGMJSSMTZQloJoAiEAyfM6yNyOlADGISoV84ZDykkTRNar649Xpm2mWYu5CY0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":861293},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./toolkit":"./toolkit/index.js"},"gitHead":"4106b7c77384d5e27ebdbe742b87a7d33a599339","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.9.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.17_1786558420692_0.5738748668213451","host":"s3://npm-registry-packages-npm-production"}},"1.2.18":{"name":"@kedem/okjs","version":"1.2.18","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.18","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"7dd026e0a3ea0f27b8eb698173cbb4d6484affbb","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.18.tgz","fileCount":139,"integrity":"sha512-/Beu8zdkosSLfqhrQxbuvdzG09tIy+uItL38w5p1ZlQpLs3tPHHEK3ko0EIftqrSdw1JTSaFELiin4qbXiuHyQ==","signatures":[{"sig":"MEYCIQCZ8D3USZX3UuyQ0H4U2+PSu3TCPv8kdgG/JS45R+X7HQIhAJKEq6uZ4BHvxe0rWoIj0hN5CmvlBdyKTC+T1ioMP4lt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":862850},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./toolkit":"./toolkit/index.js"},"gitHead":"9450f102fad3b6fbea447ad53a5bf0c566672079","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.9.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.18_1786558913026_0.05748917641526341","host":"s3://npm-registry-packages-npm-production"}},"1.2.19":{"name":"@kedem/okjs","version":"1.2.19","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.19","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"8abd84413547d37dcd41f593a1c4bc2228ef85b8","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.19.tgz","fileCount":139,"integrity":"sha512-Yml0kQIlwkYRmafYS3rQsiZsI6wCgnQlXNg85MNzwvr66RUBpWANPfHmWEn3V7K0eTG/9DxkB32HZDJ4OGSCVA==","signatures":[{"sig":"MEQCICdKvbjGoi8mGMdA5g5zQBhvx+XZBBNPtFjAHHMOl4U4AiBfv/cFz76bNsBeDFcsuRAAtIkCoBY7Rr37oDW5ti3BDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":862902},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./toolkit":"./toolkit/index.js"},"gitHead":"46415e0bd7c7a99dcc16dd832fbead0c08e8aff3","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.9.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.19_1786559938746_0.4073173382947872","host":"s3://npm-registry-packages-npm-production"}},"1.2.21":{"name":"@kedem/okjs","version":"1.2.21","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.21","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"917a70a6c29b822c9eb07ca83236f19a299d536e","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.21.tgz","fileCount":140,"integrity":"sha512-Q+17KwhwEWYaUaX8l8RXpFT9mrONSA86PyiueD4tmGIsTn3o8z8fxnhZiYhv9PNpk2hcwBPmxuGnY2MULeZp0g==","signatures":[{"sig":"MEUCIQD18GUl45CK3Nf01O0QV8J1H9TbS3l9/ddNP19yilfB1AIgHGfvl7faqavrssR5cvDa8HZHllanoAAjhw/Gcy3a9vg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":876044},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./tooling":{"types":"./src/tooling/index.d.ts","import":"./src/tooling/index.js","default":"./src/tooling/index.js"},"./toolkit":"./toolkit/index.js"},"gitHead":"f18211bbf0c52095426cc1e954ef209452af5e33","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.9.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.14.0","dependencies":{"acorn":"^8.18.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.21_1786965080529_0.3544415277592152","host":"s3://npm-registry-packages-npm-production"}},"1.2.23":{"name":"@kedem/okjs","version":"1.2.23","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.23","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"551b6cb45467fa5c6ea945cf6a12823fa8e44a67","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.23.tgz","fileCount":152,"integrity":"sha512-KXvvWQ/1KfA1MTYX+Vf2ZWAZ8wPpvBVMAkMz/o0ypUusr9QuNnDtMJ5PFfeVC44IfAMz3HFi+//0rrOPiYQ4qw==","signatures":[{"sig":"MEUCIHS6K2MvKgwarH35RImfWWQbjx8RCP7IaY/RKkkkpkyjAiEApzsPCD4PJCrl91643UHKCc2te3aaxwbUhPysGCFygSA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":990182},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./tooling":{"types":"./src/tooling/index.d.ts","import":"./src/tooling/index.js","default":"./src/tooling/index.js"},"./toolkit":"./dist/toolkit/manifest.js","./toolkit/*":"./dist/toolkit/*"},"gitHead":"39abb8d8f56f90eaa9080f9b176e436bb01cca30","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.9.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.14.0","dependencies":{"acorn":"^8.18.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.23_1786966330570_0.9781063345072878","host":"s3://npm-registry-packages-npm-production"}},"1.2.24":{"name":"@kedem/okjs","version":"1.2.24","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.24","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"2fac82df9b931ee8c1f298f495b51e4a2017bc34","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.24.tgz","fileCount":152,"integrity":"sha512-Es2aPqx5tiwAtP5Pv/CCybcBkRL4D3NuYVv6A2yYirtnyMdgKbkKfMR/+MBAqaVUrjvHkLzninh5/j2Gtr+hew==","signatures":[{"sig":"MEQCIDRJiWlq0PlCj1Xt7AHkzBii+wrFqDWJiyE9F0ZTjMBvAiBsZJ0xkFk9xuUFj9NgmtAcXQVBW6lvdwe6E0e5zylNIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":984792},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./tooling":{"types":"./src/tooling/index.d.ts","import":"./src/tooling/index.js","default":"./src/tooling/index.js"},"./toolkit":"./dist/toolkit/manifest.js","./toolkit/*":"./dist/toolkit/*"},"gitHead":"e48954cab91197473ebf82bddc9e060622d4f109","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.17.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"acorn":"^8.18.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.24_1787257211965_0.13500985049238912","host":"s3://npm-registry-packages-npm-production"}},"1.2.25":{"name":"@kedem/okjs","version":"1.2.25","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.2.25","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"88d13826341d5fe3834e0705cf950748bf90d7a9","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.2.25.tgz","fileCount":152,"integrity":"sha512-usSHMOE3YYp7AbbMLdND+SMTh3/4E30/Uezyw4vDIuJF42NCZXLzBeSIjp9PZaJhWoR3/H+DopfOhJH5Iaa10A==","signatures":[{"sig":"MEQCIBX75MMYimSyhPWtO3c1S/LX4KY3h3k/uzpklEKwnn6FAiBHwPbJ1RhFBzzCiyVBzgBI4YZVZ4bDqACtdKfRgzyswg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHpE+znz1PGmeYz71aoSndyIF/LOodRF1w8tM4Qz9YMVAiAIE2kGlgHSA5c4JXt2iiZnKXd89NjCNVa4EZVS92yNng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":989775},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./tooling":{"types":"./src/tooling/index.d.ts","import":"./src/tooling/index.js","default":"./src/tooling/index.js"},"./toolkit":"./dist/toolkit/manifest.js","./toolkit/*":"./dist/toolkit/*"},"gitHead":"c71b36063743b43bebd22b2aa463b917bcaa5836","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.17.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"acorn":"^8.18.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.2.25_1789916783407_0.913654685934828","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@kedem/okjs","version":"1.3.0","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.3.0","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"13f8638e64e0f703600bc0080cede45028d53794","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.3.0.tgz","fileCount":155,"integrity":"sha512-vtRLJr9lMdu2/It8kEG9K3twtM/1QfLkkvZ5ga99eMeWm7HY1B8zhJzaMyyx5725pA78LH172OV2+ZuNulPOfA==","signatures":[{"sig":"MEUCIQCvgy3XjwkgRsElgFPgLC1i+icoUc5WqGyxHKmPKYhCggIgEmLcQ+Cuynnc80Jy0wCACGdGNcn2+h64ukHCehzs9zU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICivMRdRCd5ExtyEBPNB9RNGQU2VUg0RU1eyl/zgICsHAiADiodZ1+uiFYIK5Cj5cFd5w0mKJ195swRgJP6+m22bsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1049729},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./tooling":{"types":"./src/tooling/index.d.ts","import":"./src/tooling/index.js","default":"./src/tooling/index.js"},"./toolkit":"./dist/toolkit/manifest.js","./toolkit/*":"./dist/toolkit/*"},"gitHead":"d81a1b75566fe6715e43fa6b93345451880868f5","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.17.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"acorn":"^8.18.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.3.0_1790100967380_0.11543715189478632","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@kedem/okjs","version":"1.3.1","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.3.1","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"23a26f69c4a549d0c1716d599353aeaa07a5040f","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.3.1.tgz","fileCount":157,"integrity":"sha512-ZrABJ3ap3vknjzMiwWeO/aekGFAsgMX5wax6qI6Q73weFTm6KVhdNHXnewU8J187FmompzoAdg+I733RByPEkg==","signatures":[{"sig":"MEUCIBLLtTo3nToLwPT9pJZYApvp3vsgUz/pxc5uX223fYAKAiEAmxUnFmM7uwOzJRsnCJrhbbhIOC0UHqjqAN4UoaRawww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHkk25khh31bG9UrbY3v6UQCxlDXUldfnRWGKsU4O0fOAiBcWqSKUcRWgnUh8SVmqnAqPHDe2tZWLvIqSmcddF3zrg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1057184},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./tooling":{"types":"./src/tooling/index.d.ts","import":"./src/tooling/index.js","default":"./src/tooling/index.js"},"./toolkit":"./dist/toolkit/manifest.js","./toolkit/*":"./dist/toolkit/*"},"gitHead":"7ddc1ba835f2772af03cad63f36ee94a50aa8d68","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.17.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"acorn":"^8.18.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.3.1_1790187060304_0.9205155573807324","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@kedem/okjs","version":"1.3.3","license":"SEE LICENSE IN LICENSE","_id":"@kedem/okjs@1.3.3","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"2594352d561f741fd8b906e59f8eca5040900e9c","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.3.3.tgz","fileCount":157,"integrity":"sha512-E5Mf3jcz4U922N5abxbkbBs9jSRlTe83YfGLKEKrLv+1/OR4ER5wT6a2cXMXo+y3wrfZHrPTntPb/kqp/z/MqQ==","signatures":[{"sig":"MEYCIQCOJLj1bfOtJ/nt+YWHcU3rTIiEFq7nTA4xBBgr6hG9zAIhAOfdH3mR8SOW2BAGk/bY2tHWLqBMXRm8qbYWsWRpilSZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFCfAYnkEkh5MIINZmtbh4Enig67+VNrVMuRuy4GS+mLAiEA6X/ZXXZI+G1XO/F6qWmNWgOJ0sxo3n3eTyeYOXA/RhA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1067601},"main":"dist/ok.esm.js","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./tooling":{"types":"./src/tooling/index.d.ts","import":"./src/tooling/index.js","default":"./src/tooling/index.js"},"./toolkit":"./dist/toolkit/manifest.js","./toolkit/*":"./dist/toolkit/*"},"gitHead":"90de9351311a787e7f1f9895aefcd1fe4420f901","private":false,"_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.17.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"acorn":"^8.18.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/okjs_1.3.3_1790622148170_0.7822207084265307","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"_id":"@kedem/okjs@1.4.0","bin":{"okjs":"bin/okjs.js","okjs-server":"bin/okjs.js"},"dist":{"shasum":"c1c436dbed8e8fdf4552f031dc8826726ef3c28d","tarball":"https://registry.npmjs.org/@kedem/okjs/-/okjs-1.4.0.tgz","fileCount":157,"integrity":"sha512-CYGSuRnP26FDJukefPXOfMpxJ17ozKMKgaDjY1RtHO899CpvobMNBMKE5GyiQ4jSBmnjkQgTt1RrTpV9a1NF0g==","signatures":[{"sig":"MEYCIQD1EP6B/0nHdy7nyU1PuERoXPZy7XSJTUbobj0WHXBP5AIhAKouwphL50OHSKZVj23q+Hi+Pk1sHPgC57E8OegYcGcT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCTFgbGHklhz9kmbzB0+xhs2wHyExkfWzmuiNolI3dERAIgG+GbXtPSWFG/6mRgdlOcCxtjRKxe+rderSrt9cDO16Q="}],"unpackedSize":1067646},"main":"dist/ok.esm.js","name":"@kedem/okjs","type":"module","module":"dist/ok.esm.js","exports":{".":"./dist/ok.esm.js","./*":"./*","./tooling":{"types":"./src/tooling/index.d.ts","import":"./src/tooling/index.js","default":"./src/tooling/index.js"},"./toolkit":"./dist/toolkit/manifest.js","./toolkit/*":"./dist/toolkit/*"},"gitHead":"d2fbb26839706c16e6710b9e4b6e0447dbbe0a4a","license":"SEE LICENSE IN LICENSE","private":false,"version":"1.4.0","_npmUser":{"name":"kedemd","email":"kedemdpc@gmail.com"},"web-types":"web-types.json","_npmVersion":"11.17.0","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","directories":{},"maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"_nodeVersion":"24.19.0","dependencies":{"acorn":"^8.18.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/okjs_1.4.0_1790623941933_0.7967904898156268"}}},"time":{"created":"2026-05-04T19:33:22.052Z","modified":"2026-09-28T19:32:22.240Z","1.2.0":"2026-05-04T19:33:22.321Z","1.2.1":"2026-05-04T20:13:05.733Z","1.2.2":"2026-05-04T21:49:22.015Z","1.2.3":"2026-05-05T00:42:20.499Z","1.2.4":"2026-05-05T15:39:59.929Z","1.2.5":"2026-05-05T19:19:48.638Z","1.2.6":"2026-05-10T08:54:10.281Z","1.2.7":"2026-05-12T14:52:17.168Z","1.2.8":"2026-05-12T17:58:05.400Z","1.2.9":"2026-05-14T18:02:49.902Z","1.2.10":"2026-05-14T20:26:33.065Z","1.2.12":"2026-08-03T21:06:00.715Z","1.2.13":"2026-08-11T11:46:37.753Z","1.2.14":"2026-08-11T12:39:02.627Z","1.2.15":"2026-08-11T18:12:30.792Z","1.2.16":"2026-08-12T18:03:26.990Z","1.2.17":"2026-08-12T18:13:40.919Z","1.2.18":"2026-08-12T18:21:53.175Z","1.2.19":"2026-08-12T18:38:58.891Z","1.2.21":"2026-08-17T11:11:20.680Z","1.2.23":"2026-08-17T11:32:10.710Z","1.2.24":"2026-08-20T20:20:12.098Z","1.2.25":"2026-09-20T15:06:23.485Z","1.3.0":"2026-09-22T18:16:07.551Z","1.3.1":"2026-09-23T18:11:00.430Z","1.3.3":"2026-09-28T19:02:28.278Z","1.4.0":"2026-09-28T19:32:22.056Z"},"license":"SEE LICENSE IN LICENSE","description":"![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)","maintainers":[{"name":"kedemd","email":"kedemdpc@gmail.com"}],"readme":"# OK JS\n\n![OK JS Banner](https://raw.githubusercontent.com/kedemd/okjs/main/banner.jpg)\n\n> **The UI framework you'd actually love to use.**\n> No build. No JSX. No bullshit. Just JavaScript.\n\n---\n\n## What makes OK JS different\n\nMost modern frameworks require you to adopt an entire build pipeline, a new file format, or a non-standard templating language before you write a single line of product code. OK JS takes the opposite position:\n\n- **Your HTML is already the template.** Bindings are plain attributes (`@click`, `:value`, `!value`). Text interpolation uses `{{ }}`. No JSX, no compilation to a virtual tree — just the real DOM, wired reactively.\n- **No build step required.** Drop the ESM bundle into a `<script type=\"module\">` and you're running. Rollup is provided for production minification, not a hard requirement.\n- **Reactivity without magic.** The engine is a custom `OKProxy` implementation (≈700 lines, fully readable) wrapping your objects in ES `Proxy` traps — automatic dependency tracking, batched dispatch, deep collection support (Array, Map, Set). Every change that fires is delivered; nothing is silently collapsed.\n- **Crash-safe by default.** Every component is wrapped in a configurable crash boundary. A broken component renders an error indicator and stops propagation instead of crashing the whole page.\n- **A real toolkit, not a toy.** 40+ production-grade toolkit components ship alongside the core — router, modals, toasts, theming, i18n, Monaco editor integration, charts, virtualized lists, drag-and-drop, hotkeys, devtools inspector, and more — all implemented as normal OK components with no special privileges.\n\n---\n\n## Install\n\n```bash\nnpm install\nnpm run build   # optional — produces dist/ (ESM + IIFE, minified + unminified)\n```\n\nDuring development you can import the source directly:\n\n```js\nimport OK from './src/ok.js';\n```\n\nOr use the pre-built ESM bundle:\n\n```html\n<script type=\"module\">\n  import OK from './dist/ok.esm.min.js';\n  const ok = await OK.init(document.body, { count: 0 });\n</script>\n```\n\n---\n\n## Quick start\n\n```html\n<!DOCTYPE html>\n<html>\n<body>\n  <div id=\"app\">\n    <button @click=\"count++\">+1</button>\n    <button @click=\"count = 0\">Reset</button>\n\n    <p :textContent=\"`Count: ${count}`\"></p>\n\n    <if :if=\"count % 2 === 0\">\n      <span>Even vibes only.</span>\n      <else><span>Odd mood.</span></else>\n    </if>\n  </div>\n\n  <script type=\"module\">\n    import OK from './dist/ok.esm.min.js';\n    const ok = await OK.init(document.querySelector('#app'), { count: 0 });\n  </script>\n</body>\n</html>\n```\n\n`OK.init(node, context, config)` creates an instance, attaches a reactive scope to `node`, and initializes all bindings in one async call.\n\n---\n\n## Core concepts\n\n### Reactive Proxy engine\n\nAll state lives in `OKProxy`-wrapped objects. Call `ok.proxy(obj)` to make any object reactive:\n\n```js\nconst state = ok.proxy({ user: { name: 'Ada' }, tags: ['ok', 'js'] });\n```\n\nUnder the hood:\n- **`get` trap** — records `(receiver, property)` as a dependency for any currently-tracking watcher.\n- **`set` / `deleteProperty` traps** — queue a change record and schedule dispatch.\n- **Dispatch model** — changes are batched and flushed via `queueMicrotask → requestAnimationFrame` by default. Every change in a cycle is preserved and delivered in order; nothing is silently collapsed to \"final value only\".\n- **Deep collections** — `Array`, `Map`, and `Set` mutating methods (`push`, `splice`, `set`, `add`, `delete`…) are monkey-patched to flow through the same change queue.\n\n```js\nscope.$watch(\n  () => state.user.name,           // dependency collector — runs once, records deps\n  changes => console.log(changes)  // called with the full ordered change record array\n);\n\nstate.user.name = 'Grace';  // schedules → dispatches → watcher fires\n```\n\nUse `await ok.flush()` in tests or coordination code to wait for a full dispatch cycle to complete.\n\n---\n\n### Scopes\n\nEvery DOM element OK manages gets a **scope** — the object responsible for lifecycle, bindings, watchers, and context. Scopes are created automatically by `OK.init` and the component system.\n\n| Method | Purpose |\n|---|---|\n| `$init()` | Hydrate children, run `mounted`, emit lifecycle events |\n| `$destroy(remove)` | Tear down children, run `unmount`, clean DOM |\n| `$watch(fn, onChange)` | Reactive watcher, auto-stopped on unmount |\n| `$observe(proxy, prop, fn)` | Property-specific observer, auto-stopped on unmount |\n| `$observeDeep(target, fn)` | Deep observer on any nested change |\n| `$memo(fn)` | Memoized reactive computation |\n| `$fn(cmd)` | Compile an expression string bound to `$scope`, `$context`, `$vars` |\n| `$invoke(name, ...args)` | Call a lifecycle hook by name across all registered handlers |\n\n**Lifecycle order:** `$init` → `mounted` → *(app runs)* → `$destroy` → `unmount` → `unmounted`.\nAll sync unmount handlers fire before async teardown continues — cleanup is always predictable.\n\n---\n\n### Binding syntax\n\n| Syntax | Type | Example |\n|---|---|---|\n| `{{ expr }}` | Text interpolation | `Hello {{ name }}` |\n| `@event` | Event listener | `@click=\"count++\"` |\n| `@event:modifier` | Modified event | `@keydown:ctrl+enter=\"submit()\"` |\n| `:prop` | One-way property/attribute bind | `:textContent=\"label\"` |\n| `:class` / `:style` | Class/style object or array | `:class=\"{ active: isOn }\"` |\n| `!prop` | Two-way bind (inputs) | `!value=\"username\"` |\n| `...prop` | Spread object into attrs/props | `...aria-label=\"label\"` |\n\nTwo-way binds (`!`) automatically generate an `input` event handler that coerces by `type` — checkbox → `checked`, number/range → `Number(…)`, everything else → `.value`.\n\n---\n\n### Components\n\nComponents are plain JavaScript objects (or `.ok.html` single-file modules) registered with `ok.register()`:\n\n```js\n// my-counter.ok.js\nimport { defineComponent } from './ok.esm.min.js';\n\nexport default defineComponent({\n  tag: 'my-counter',\n  context(scope) {\n    return scope.$ok.proxy({ count: 0 });\n  },\n  template: `\n    <button @click=\"count++\">clicks: {{ count }}</button>\n  `\n});\n```\n\n**`.ok.html` single-file components** — HTML-native equivalents of Vue SFCs, parsed at runtime with no compiler required:\n\n```html\n<!-- my-counter.ok.html -->\n<template>\n  <button @click=\"count++\">clicks: {{ count }}</button>\n</template>\n\n<script>\nexport default {\n  tag: 'my-counter',\n  context(scope) {\n    return { count: 0 };\n  }\n}\n</script>\n\n<style>\n  button { font-weight: bold; }\n</style>\n```\n\nComponents are dynamically imported, cached, and always mounted inside a **crash boundary**. The `<component>` primitive lets you mount by tag name or lazy import path directly in HTML.\n\n---\n\n## Built-in primitives\n\nRegistered automatically on every OK instance:\n\n| Tag | Purpose |\n|---|---|\n| `<if :if=\"…\">` / `<else>` | Conditional rendering |\n| `<switch :switch=\"…\">` / `<case>` | Switch-case rendering |\n| `<each :of=\"list\">` | List rendering with keyed diffing |\n| `<repeat :times=\"n\">` | Repeat a template N times |\n| `<fragment>` | Logical grouping without a wrapper element |\n| `<slot>` | Content projection into components |\n| `<component :tag=\"…\" :import=\"…\">` | Dynamic component mounting |\n| `<shadow>` | Mount inside a Shadow DOM root |\n| `<context …attrs>` | Scoped context injection |\n| `<var …attrs>` | Scoped variable declarations |\n| `<crash-boundary>` | Catch errors and render fallback UI |\n| `<crash-boundary-default>` | Default styled crash fallback |\n| `<crash-service>` | App-level crash event bus |\n| `<crash-fatal>` | Full-page fatal error renderer |\n| `<singleton-service>` | Register shared singleton services |\n\n---\n\n## Toolkit\n\n40+ components registered the moment an OK instance is created. Every toolkit component is a regular OK component — read the source, trim what you don't need.\n\n### Navigation\n- `<router>` / `<hash-router>` — client-side routing with path params, wildcards, nested routes, and programmatic navigation\n\n### UI Components\n- `<ok-table>` — reactive data table\n- `<ok-dropdown>` / `<ok-select>` — accessible dropdown and select\n- `<ok-icon>` — icon primitive\n- `<ok-modal>` / modal service — layered modal system with focus trap\n- `<ok-window>` — draggable floating windows\n- `<ok-toast>` / toast service — notification queue\n- `<ok-overlay>` — overlay / backdrop management\n- `<ok-resizer>` — drag-to-resize panels\n- `<virtualized>` — virtual scrolling for large lists\n- `<transition>` — enter/leave CSS transitions\n\n### Interaction\n- `<ok-draggable>` — drag-and-drop with configurable constraints\n- `<ok-flyover>` — flyover / tooltip panels\n- `<ok-highlight>` — element highlight overlays\n- `<ok-context-menu>` — right-click context menus\n- `<ok-submenu>` — nested menu system\n- `<ok-popout>` / popout service — floating panel system\n- `<ok-hotkeys-service>` — global keyboard shortcut registry\n\n### Theming\n- `<ok-theme>` — CSS variable theming engine with preset stacking, dark/light mode, per-component overrides\n- `<ok-theme-editor>` — visual runtime theme editor\n- `<ok-design>` — complete OK Design system (buttons, inputs, typography, layout variables)\n\n### Internationalization\n- `<ok-i18n>` service — reactive translation registry\n- `<ok-i18n-editor>` — runtime translation editor\n\n### Developer Tools\n- `<ok-inspector>` — DOM + scope tree inspector with keyboard navigation\n- `<ok-js-tree>` — collapsible reactive JS object tree viewer\n- `<ok-console>` / console service — in-app log console\n- `<ok-fps-monitor>` — real-time FPS overlay\n- `ok.perfDump()` — scope lifecycle timing table printed to `console.table`\n\n### Editor & Content\n- `<ok-monaco>` — Monaco Editor (VS Code engine) integration\n- `<ok-live-shell>` / `<ok-live-component>` / `<ok-live-example>` — live code editing and in-page preview\n- `<ok-marked>` — reactive Markdown rendering\n- `<ok-doc-viewer>` — in-app documentation viewer\n- `<ok-chart>` — chart component\n\n### Async & Sync\n- `<async>` — declarative async state management (loading / error / data states)\n- `<reactive-sync-service>` — cross-context reactive sync (localStorage, BroadcastChannel, custom adapters)\n\n---\n\n## Instance API\n\n```js\nconst ok = OK(config);\n// or shortcut:\nconst ok = await OK.init(node, context, config);\n\nok.register(componentDef);       // register a component definition\nok.init(node, context);          // initialize a DOM node\nok.destroy(node);                // destroy a node and all its scopes\nok.proxy(obj);                   // create a reactive proxy\nok.flush();                      // Promise — resolves after next dispatch cycle\nok.shared;                       // reactive shared app-wide state object\nok.emit / ok.on / ok.off;        // app-level event bus\nok.getScopeById(id);             // look up any live scope by ID\nok.perfDump({ sortBy, limit });  // print scope lifecycle perf table\n```\n\n### Configuration\n\n```js\nOK({\n  env: 'dev',          // 'dev' | 'prod' | 'debug'\n  crash: {\n    mode: 'default',   // 'default' | 'throw' | 'silent'\n  },\n  dom: {\n    marker: '…',       // comment vs empty-text node markers (env-based default)\n  },\n  bind: {\n    remove_bind_attributes: false,  // strip @/:/! attrs in prod\n  },\n  log: {\n    console: true,\n  },\n  parser: {\n    self_closing_tag: 'allow',  // 'allow' | 'warn' | 'throw'\n  },\n  components: {        // per-component config, keyed by tag\n    'ok-icon': { api: null },\n  },\n  shared: { … },       // initial shared state seed\n})\n```\n\nAll keys deep-merge with environment-aware defaults — override only what you need.\n\n`parser` was called `component` before 1.3.0; the old spelling still works. Note the\ndistinction: `parser` configures template parsing, while `components` (plural) holds\nsettings for individual components, keyed by tag.\n\n---\n\n## Project structure\n\n```\nsrc/\n  ok.js                   # Factory entry point\n  ok-proxy/               # Reactive Proxy engine (OKProxy) — ≈700 lines\n  ok-scope.js             # Scope system (lifecycle, watchers, context)\n  runtime/                # Binder, component registry, parser, node walker\n  primitives/             # Built-in primitive components (if, each, slot…)\n  emitter.js              # Lightweight event emitter\n  timing.js               # nextTick, nextFrame, awaitFrame\n\ntoolkit/\n  navigation/             # router (hash + history)\n  modals/                 # modal, window, toast\n  theming/                # ok-theme, ok-design, theme editor\n  interaction/            # drag, popout, hotkeys, context menu, flyover…\n  devtools/               # inspector, console, fps monitor, JS tree\n  elements/               # table, dropdown, select, icon\n  editor/                 # live shell, live component, live example\n  i18n/                   # i18n service + editor\n  sync/                   # reactive sync service\n  components/             # monaco, marked, doc-viewer, chart\n  layout/                 # resizer\n  core/                   # overlay, transition, virtualized\n\napps/\n  live-editor/            # Standalone in-browser live code editor app\n  site/                   # Documentation site (built with OK JS itself)\n  site-2/                 # Next-gen docs site\n\ndocs/                     # Markdown documentation source\ndev/\n  dev-server/             # Dev server with HMR\n  sandbox/                # Isolated feature test pages\n```\n\n---\n\n## Developing\n\n```bash\n# Build for production\nnpm run build\n# → dist/ok.esm.js  dist/ok.esm.min.js\n# → dist/ok.iife.js  dist/ok.iife.min.js\n# → dist/toolkit/  (individual ESM modules, tree-shakeable)\n```\n\nThe live editor (`apps/live-editor/`) uses a Service Worker to serve local `.ok.js` / `.ok.html` files directly in the browser playground.\n\n---\n\n## IDE support\n\n- `.ok.js` files already inherit JavaScript support because the final extension is `.js`.\n- `.ok.html` files already inherit HTML support because the final extension is `.html`.\n- `web-types.json` adds JetBrains/WebStorm autocomplete and element discovery for OK primitives, toolkit components, and app-local OK components.\n- `defineComponent(...)` adds typed autocomplete for the outer component object in JS/TS-aware editors.\n- `src/analysis/` now provides a shared editor-agnostic analysis core for `.ok.html` structure, OK directives, primitive attrs, diagnostics, and completions.\n- `dev/ide/jetbrains-plugin/` now contains an initial JetBrains plugin scaffold that calls the shared analysis core through `dev/ide/ok-analysis-cli.mjs`.\n\nRegenerate the metadata after adding or renaming components:\n\n```bash\nnpm run ide:metadata\n```\n\nThis improves custom tag completion and navigation in HTML-like contexts. Full semantic completion inside `template: \\`...\\`` strings in `.ok.js` files would still require a dedicated IDE plugin or language-server-style integration.\n\nIf you want better editing inside `.ok.js` template strings today, JetBrains can also use language injection comments:\n\n```js\nimport { defineComponent } from './ok.esm.min.js';\n\nexport default defineComponent({\n  tag: 'my-card',\n  template: /* language=HTML */ `\n    <div class=\"card\">\n      <ok-icon name=\"sparkles\"></ok-icon>\n    </div>\n  `,\n  style: /* language=CSS */ `\n    [tag] .card { display: block; }\n  `,\n});\n```\n\n---\n\n## License\n\nSee [LICENSE](LICENSE).\n\n---\n\n> *OK JS is designed to be readable. If something isn't clear, the source is the documentation.*\n","readmeFilename":"README.md"}