{"_id":"@0stv0/toolkit","_rev":"2-39b6d599454cd1a06c900af43b8b20fa","name":"@0stv0/toolkit","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@0stv0/toolkit","version":"1.0.0","author":{"name":"stevku"},"license":"MIT","_id":"@0stv0/toolkit@1.0.0","maintainers":[{"name":"0stv0","email":"stevku.mejster@gmail.com"}],"homepage":"https://github.com/0stv0/toolkit#readme","bugs":{"url":"https://github.com/0stv0/toolkit/issues"},"dist":{"shasum":"f731c649a4cf05ee1ac228a19adec7e4b871dc4c","tarball":"https://registry.npmjs.org/@0stv0/toolkit/-/toolkit-1.0.0.tgz","fileCount":57,"integrity":"sha512-Juh1yL3UvEIhaVy1m7PFzVspnmAaE+jpNK0eg6Ck6iZSoZFQpBwO2CW/bEGtzavT9E3JcHyvZDKgRzchiX8NAg==","signatures":[{"sig":"MEUCIQDns499Htk1E5pU0n6kE5a/Opn2dHHllVh69UuLEIhAyAIgMPwGFNGsfKC166Dh8csI5nDS+zmmegHz8MCpL712Rl0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39914},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"4905fc79165b519557492971a0770d1290fc904a","_npmUser":{"name":"0stv0","email":"stevku.mejster@gmail.com"},"repository":{"url":"git+https://github.com/0stv0/toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"","directories":{},"_nodeVersion":"25.6.1","dependencies":{"@toon-format/toon":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.3"},"_npmOperationalInternal":{"tmp":"tmp/toolkit_1.0.0_1772751706705_0.5628049635930945","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@0stv0/toolkit","version":"1.0.1","description":"```bash npm install @0stv0/toolkit ``` ### Logger ```ts import { Logger } from '@0stv0/toolkit';","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"author":{"name":"stevku"},"license":"MIT","type":"module","dependencies":{"@toon-format/toon":"^2.1.0"},"devDependencies":{"@types/node":"^25.3.3"},"repository":{"type":"git","url":"git+https://github.com/0stv0/toolkit.git"},"homepage":"https://github.com/0stv0/toolkit#readme","gitHead":"45cd9a8372b7c085742584b026204b756dc3585a","_id":"@0stv0/toolkit@1.0.1","bugs":{"url":"https://github.com/0stv0/toolkit/issues"},"_nodeVersion":"25.6.1","_npmVersion":"11.9.0","dist":{"integrity":"sha512-UL/vqvr2x+aUtSyhNNz/+hQc66xpN7iM6ypWB/ztiI85mq+PQ/VFheowtKZ9YTVQVntytdXd65gJG4RokJp2zw==","shasum":"89cc8d5d77354da58563c4b4c5bd44b23baedaaa","tarball":"https://registry.npmjs.org/@0stv0/toolkit/-/toolkit-1.0.1.tgz","fileCount":58,"unpackedSize":42689,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD5ZSBDTMjH9xFJ2Mr7KcIH8nnnscTv+wGcnw5J7rqJSwIhAPi+0AtnfHjlOcWTMGcPSS+gpKgf7mxwq6HRfT0VR9dN"}]},"_npmUser":{"name":"0stv0","email":"stevku.mejster@gmail.com"},"directories":{},"maintainers":[{"name":"0stv0","email":"stevku.mejster@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/toolkit_1.0.1_1772753553727_0.021961316174067047"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-05T23:01:46.599Z","modified":"2026-03-05T23:32:34.314Z","1.0.0":"2026-03-05T23:01:46.855Z","1.0.1":"2026-03-05T23:32:33.878Z"},"bugs":{"url":"https://github.com/0stv0/toolkit/issues"},"author":{"name":"stevku"},"license":"MIT","homepage":"https://github.com/0stv0/toolkit#readme","repository":{"type":"git","url":"git+https://github.com/0stv0/toolkit.git"},"maintainers":[{"name":"0stv0","email":"stevku.mejster@gmail.com"}],"readme":"### Installation\n```bash\nnpm install @0stv0/toolkit\n```\n### Logger\n```ts\nimport { Logger } from '@0stv0/toolkit';\n\nLogger.info('info msg');\nLogger.warn(123);\nLogger.error(false);\n```\n\n### AES256\n```ts\nimport { AES } from \"@0stv0/toolkit\";\n\nlet aes: AES = new AES({\n    secret: 'somesecret',\n    tagLength: 16, // Optional, default 16\n    ivLength: 12 // Optional, default 12\n});\naes.encode('123'); // 9xGGjwWY6oHovPGUPS2a7SuMOUBllanJtiwjrIfadA==\naes.decode('9xGGjwWY6oHovPGUPS2a7SuMOUBllanJtiwjrIfadA==') // 123\n```\n\n### JWT\n```ts\nimport { JWT } from \"@0stv0/toolkit\";\n\nlet jwt: JWT = new JWT('somesecret');\njwt.sign({\n    user: 'stevku',\n    value: 123,\n    otherValue: false\n}, 60); // 60 seconds\n\njwt.decode('sometoken');\n// null if expired or invalid\n// valid return payload\n```\n\n### Passwords\n```ts\nimport { Passwords } from \"@0stv0/toolkit\";\n\nlet plain: string = 'strongpass';\nlet hash: string  = Passwords.hash(plain);\n\nconsole.log(plain, hash);\nconsole.log(Passwords.verify(plain, hash));\n```\n\n### Checker\n```ts\nimport { Checker } from \"@0stv0/toolkit\";\n\nChecker.email('email@example.com');\nChecker.empty('');\n```\n\n### env\n```ts\nimport { env } from \"@0stv0/toolkit\";\n\nenv.load();\n\n// env.get(key, fallback)\n// process.env still works\nenv.get(\"PORT\", 8080);\nenv.get(\"HOST\", \"127.0.0.1\");\n```\n\n### Requests\n```ts\nimport { JsonRequests, ToonRequests } from \"@0stv0/toolkit\";\n\ntype TestUser = {\n    username: string;\n    id: number;\n};\n\nlet data: TestUser[] | null = await JsonRequests.get<TestUser[]>({\n    url: 'someurl',\n    headers: {\n        'some-header': 'some-value'\n    },\n    auth: 'some jwt or sessionid'\n});\nlet data2: TestUser[] | null = await JsonRequests.post<TestUser[]>({\n    url: 'someurl',\n    body: {\n        key: 123\n    }\n});\n```\n\n### Random\n```ts\nimport { Random } from \"@0stv0/toolkit\";\n\nconsole.log(Random.code({\n    length: 6,\n    result: 'str'\n}));\nconsole.log(Random.code({\n    length: 10,\n    result: 'num'\n}));\nconsole.log(Random.string({length: 16}));\n\n// output\n// 259283\n// [\n//   1, 5, 9, 9, 4,\n//   7, 3, 1, 2, 2\n// ]\n// c7675ca340683c44\n```\n\n### SafeJSON\n```ts\nimport { SafeJSON } from \"@0stv0/toolkit\";\n\nlet obj: object = {\n    key: 123,\n    key2: 321\n};\nSafeJSON.stringify(obj); // string | null if error\nSafeJSON.parse<Record<string, any>>('{}'); // T | null if error\n```\n\n### Validator\n```ts\nimport { Validator } from \"@0stv0/toolkit\";\n\nconst testBodyFromRequest: object = {\n    id: 123\n};\nlet errors: Record<string, string[]> = Validator.validate(testBodyFromRequest, {\n    'id': [\n        {\n            required: true,\n            errorMsg: \"Invalid id\",\n            checker: (v: any): boolean => v === 321\n        }\n    ]\n});\n// Record contains all found errors by body key\n```","readmeFilename":"README.md","description":"```bash npm install @0stv0/toolkit ``` ### Logger ```ts import { Logger } from '@0stv0/toolkit';"}