{"_id":"@alisahindev/ilog","_rev":"14-3c20318b528dba35313d6918e6fe9a88","name":"@alisahindev/ilog","dist-tags":{"latest":"1.1.10"},"versions":{"1.0.3":{"name":"@alisahindev/ilog","version":"1.0.3","keywords":["logger","typescript","api","logging","monitoring","performance","interceptor","masking","structured-logging","nodejs","javascript"],"author":{"name":"Ali Sahin","email":"ali.sahin@trendyol.com"},"license":"MIT","_id":"@alisahindev/ilog@1.0.3","maintainers":[{"name":"alisahindev","email":"alisahindev@gmail.com"}],"homepage":"https://github.com/alisahindev/ilog#readme","bugs":{"url":"https://github.com/alisahindev/ilog/issues"},"dist":{"shasum":"8c2736e0cc1d51e05c656aedd784759d91e1a53d","tarball":"https://registry.npmjs.org/@alisahindev/ilog/-/ilog-1.0.3.tgz","fileCount":83,"integrity":"sha512-rffhHCPzeztQMnFUWZV60Gnx/wuunpPlDe7QCKEDPCD6xAt7I6seynQVKYfHmiwG7+Yuu+PwwhgOYj9iAMtSaw==","signatures":[{"sig":"MEYCIQDjyfL44YHgj5wLt+tXe+ZqohnS8qbvnMaBtAEXhuMH/AIhAM3m7xWfoHdfxhWaxH2IwML0KqmbDl+imysHm9CQ/XqR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":269327},"main":"dist/index.js","husky":{"hooks":{"pre-push":"npm run validate","pre-commit":"lint-staged"}},"types":"dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"cc0f5c022a813dbd4df03ff744071711cfbd7ab9","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts --fix","test":"playwright test","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\"","example":"ts-node examples/basic-usage.ts","test:ui":"playwright test --ui","validate":"npm run lint:check && npm run type-check && npm run test","deps:check":"depcheck","lint:check":"eslint src/**/*.ts","test:debug":"playwright test --debug","type-check":"tsc --noEmit","test:headed":"playwright test --headed","format:check":"prettier --check \"src/**/*.ts\"","security:fix":"npm audit fix","test:coverage":"playwright test --reporter=html","prepublishOnly":"npm run build","security:audit":"npm audit","security:check":"npm-check-updates -u","example-advanced":"ts-node examples/advanced-usage.ts"},"_npmUser":{"name":"alisahindev","actor":{"name":"alisahindev","type":"user","email":"alisahindev@gmail.com"},"email":"alisahindev@gmail.com"},"repository":{"url":"git+https://github.com/alisahindev/ilog.git","type":"git"},"_npmVersion":"10.8.2","description":"Full type-supported logger for JavaScript/TypeScript projects with API logging, performance monitoring, and sensitive data masking","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write","git add"],"*.{json,md}":["prettier --write","git add"]},"_nodeVersion":"20.18.0","dependencies":{"chalk":"^4.1.2"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^8.0.3","eslint":"^8.45.0","ts-node":"^10.9.0","depcheck":"^1.4.3","prettier":"^3.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.1.2","@playwright/test":"^1.53.1","npm-check-updates":"^16.10.0","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-security":"^1.7.1","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ilog_1.0.3_1750318382394_0.22583441408139215","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@alisahindev/ilog","version":"1.0.4","keywords":["logger","typescript","api","logging","monitoring","performance","interceptor","masking","structured-logging","nodejs","javascript"],"author":{"name":"Ali Sahin","email":"ali.sahin@trendyol.com"},"license":"MIT","_id":"@alisahindev/ilog@1.0.4","maintainers":[{"name":"alisahindev","email":"alisahindev@gmail.com"}],"homepage":"https://github.com/alisahindev/ilog#readme","bugs":{"url":"https://github.com/alisahindev/ilog/issues"},"dist":{"shasum":"d08c9d4f2029a4a4164f2b7e619143a2e5355c1b","tarball":"https://registry.npmjs.org/@alisahindev/ilog/-/ilog-1.0.4.tgz","fileCount":83,"integrity":"sha512-pDIXzD2SRPkxWDpL72WEAYf+Uep9pLw7AguA4T9qjhnTrX0VJqMuSCM7MzRr3sKmVREZjn0bSHvDz/Rtg1zEvA==","signatures":[{"sig":"MEYCIQCLrHS3XRK8tTsidW3DvCmbFuhWg+2UULgBp21wyPwwGgIhALQXpbjsjzBrGuv17vMmIXNxxQ78FD3gNmZK/LbvZknV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":269644},"main":"dist/index.js","husky":{"hooks":{"pre-push":"npm run validate","pre-commit":"lint-staged"}},"types":"dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"c4984f979f67e10d431bb453a30f0f8ca0d9e0ec","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts --fix","test":"playwright test","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\"","example":"ts-node examples/basic-usage.ts","test:ui":"playwright test --ui","validate":"npm run lint:check && npm run type-check && npm run test","deps:check":"depcheck","lint:check":"eslint src/**/*.ts","test:debug":"playwright test --debug","type-check":"tsc --noEmit","publish:all":"npm run publish:github && npm run publish:npm","publish:npm":"npm publish --registry=https://registry.npmjs.org/","test:headed":"playwright test --headed","format:check":"prettier --check \"src/**/*.ts\"","security:fix":"npm audit fix","test:coverage":"playwright test --reporter=html","prepublishOnly":"npm run build","publish:github":"npm publish --registry=https://npm.pkg.github.com/","security:audit":"npm audit","security:check":"npm-check-updates -u","example-advanced":"ts-node examples/advanced-usage.ts"},"_npmUser":{"name":"alisahindev","actor":{"name":"alisahindev","type":"user","email":"alisahindev@gmail.com"},"email":"alisahindev@gmail.com"},"repository":{"url":"git+https://github.com/alisahindev/ilog.git","type":"git"},"_npmVersion":"10.8.2","description":"Full type-supported logger for JavaScript/TypeScript projects with API logging, performance monitoring, and sensitive data masking","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write","git add"],"*.{json,md}":["prettier --write","git add"]},"_nodeVersion":"20.18.0","dependencies":{"chalk":"^4.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^8.0.3","eslint":"^8.45.0","ts-node":"^10.9.0","depcheck":"^1.4.3","prettier":"^3.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.1.2","@playwright/test":"^1.53.1","npm-check-updates":"^16.10.0","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-security":"^1.7.1","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ilog_1.0.4_1750318816635_0.5385287504450373","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@alisahindev/ilog","version":"1.0.5","keywords":["logger","typescript","api","logging","monitoring","performance","interceptor","masking","structured-logging","nodejs","javascript"],"author":{"name":"Ali Sahin","email":"ali.sahin@trendyol.com"},"license":"MIT","_id":"@alisahindev/ilog@1.0.5","maintainers":[{"name":"alisahindev","email":"alisahindev@gmail.com"}],"homepage":"https://github.com/alisahindev/ilog#readme","bugs":{"url":"https://github.com/alisahindev/ilog/issues"},"dist":{"shasum":"50c1b9ea4393cfb39ad923182600570da8ae40d2","tarball":"https://registry.npmjs.org/@alisahindev/ilog/-/ilog-1.0.5.tgz","fileCount":83,"integrity":"sha512-EFgOf9hcEO3Ypnt7b1T+ONYW6m1xObA/FRlAGe7zRgjJlABi/95wHWa5IC5OD9QIiVWKj4bjS0HR1RS1b/QRUg==","signatures":[{"sig":"MEUCIQCd5S3FA7ZXDUhDG4rSpOHq4/5Bpvi05H7+nQvST1L6XAIgUSUIpcWv8QB6xNvbDuIRQFlUEtBOlkPCXIZvLT+7k7A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":269738},"main":"dist/index.js","husky":{"hooks":{"pre-push":"npm run validate","pre-commit":"lint-staged"}},"types":"dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"6986305d3827b7547d40d3585b3e2df5f99fc07d","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts --fix","test":"playwright test","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\"","example":"ts-node examples/basic-usage.ts","test:ui":"playwright test --ui","validate":"npm run lint:check && npm run type-check && npm run test","deps:check":"depcheck","lint:check":"eslint src/**/*.ts","test:debug":"playwright test --debug","type-check":"tsc --noEmit","publish:all":"npm run publish:github && npm run publish:npm","publish:npm":"mv .npmrc .npmrc.backup 2>/dev/null || true && npm publish --registry=https://registry.npmjs.org/ && mv .npmrc.backup .npmrc 2>/dev/null || true","test:headed":"playwright test --headed","format:check":"prettier --check \"src/**/*.ts\"","security:fix":"npm audit fix","test:coverage":"playwright test --reporter=html","prepublishOnly":"npm run build","publish:github":"npm publish --registry=https://npm.pkg.github.com/","security:audit":"npm audit","security:check":"npm-check-updates -u","example-advanced":"ts-node examples/advanced-usage.ts"},"_npmUser":{"name":"alisahindev","actor":{"name":"alisahindev","type":"user","email":"alisahindev@gmail.com"},"email":"alisahindev@gmail.com"},"repository":{"url":"git+https://github.com/alisahindev/ilog.git","type":"git"},"_npmVersion":"10.8.2","description":"Full type-supported logger for JavaScript/TypeScript projects with API logging, performance monitoring, and sensitive data masking","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write","git add"],"*.{json,md}":["prettier --write","git add"]},"_nodeVersion":"20.18.0","dependencies":{"chalk":"^4.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^8.0.3","eslint":"^8.45.0","ts-node":"^10.9.0","depcheck":"^1.4.3","prettier":"^3.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.1.2","@playwright/test":"^1.53.1","npm-check-updates":"^16.10.0","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-security":"^1.7.1","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ilog_1.0.5_1750318984445_0.7936686274890143","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@alisahindev/ilog","version":"1.0.10","keywords":["logger","typescript","api","logging","monitoring","performance","interceptor","masking","structured-logging","nodejs","javascript"],"author":{"name":"Ali Sahin","email":"ali.sahin@trendyol.com"},"license":"MIT","_id":"@alisahindev/ilog@1.0.10","maintainers":[{"name":"alisahindev","email":"alisahindev@gmail.com"}],"homepage":"https://github.com/alisahindev/ilog#readme","bugs":{"url":"https://github.com/alisahindev/ilog/issues"},"dist":{"shasum":"f46ab65a5aff0f93c28160652f45af98928deb6a","tarball":"https://registry.npmjs.org/@alisahindev/ilog/-/ilog-1.0.10.tgz","fileCount":51,"integrity":"sha512-Ss1ugZy5Z9CtLVZaCJN4Fz10h8BbxjTccrK1HRqOeRZeUaGmx/N8lWuLkcP9sAdlkw3OxnhDozhGVr4Jwyf8pg==","signatures":[{"sig":"MEYCIQCCXQXTn87cw3lGOKAE+A0TKdIQFcHk5yXO3Zb3wEEAGQIhAJB7loV+xOSDPPEM1aGbhX2/cDZ4Yiox/lUaIA8Pcis7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160272},"main":"dist/index.js","husky":{"hooks":{"pre-push":"npm run validate","pre-commit":"lint-staged"}},"types":"dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"68c0cbe176b37a578f66033dd4f7b77026af16fe","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts --fix","test":"playwright test","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\"","example":"ts-node examples/basic-usage.ts","test:ui":"playwright test --ui","validate":"npm run lint:check && npm run type-check && npm run test","deps:check":"depcheck","lint:check":"eslint src/**/*.ts","test:debug":"playwright test --debug","type-check":"tsc --noEmit","publish:all":"npm run publish:github && npm run publish:npm","publish:npm":"mv .npmrc .npmrc.backup 2>/dev/null || true && npm publish --registry=https://registry.npmjs.org/ && mv .npmrc.backup .npmrc 2>/dev/null || true","test:headed":"playwright test --headed","format:check":"prettier --check \"src/**/*.ts\"","security:fix":"npm audit fix","test:coverage":"playwright test --reporter=html","prepublishOnly":"npm run build","publish:github":"npm publish --registry=https://npm.pkg.github.com/","security:audit":"npm audit","security:check":"npm-check-updates -u","example-advanced":"ts-node examples/advanced-usage.ts"},"_npmUser":{"name":"alisahindev","actor":{"name":"alisahindev","type":"user","email":"alisahindev@gmail.com"},"email":"alisahindev@gmail.com"},"repository":{"url":"git+https://github.com/alisahindev/ilog.git","type":"git"},"_npmVersion":"10.8.2","description":"Full type-supported logger for JavaScript/TypeScript projects with API logging, performance monitoring, and sensitive data masking","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write","git add"],"*.{json,md}":["prettier --write","git add"]},"_nodeVersion":"18.20.8","dependencies":{"chalk":"^4.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^8.0.3","eslint":"^8.45.0","ts-node":"^10.9.0","depcheck":"^1.4.3","prettier":"^3.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.1.2","@playwright/test":"^1.53.1","npm-check-updates":"^16.10.0","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-security":"^1.7.1","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ilog_1.0.10_1750321925371_0.7660232935151532","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@alisahindev/ilog","version":"1.1.0","keywords":["logger","typescript","api","logging","monitoring","performance","interceptor","masking","structured-logging","nodejs","javascript"],"author":{"name":"Ali Sahin","email":"ali.sahin@trendyol.com"},"license":"MIT","_id":"@alisahindev/ilog@1.1.0","maintainers":[{"name":"alisahindev","email":"alisahindev@gmail.com"}],"homepage":"https://github.com/alisahindev/ilog#readme","bugs":{"url":"https://github.com/alisahindev/ilog/issues"},"dist":{"shasum":"3a8d42c43a91d7e16934a9d437b065be51f25e3d","tarball":"https://registry.npmjs.org/@alisahindev/ilog/-/ilog-1.1.0.tgz","fileCount":79,"integrity":"sha512-pBADo7i+39X7/3Oa2l4pfvYrVIcoSli11rZYUETx0R+Y8ap1g9cZW9TLPJ5ffsJr0U8gSBY5Mgmd0SW8fGkgmA==","signatures":[{"sig":"MEYCIQDovnKc/aYPiL8Tr8IQV4e2zJck/i6RkbV5US/9XckVAgIhAMp8cbxrzQieEV1ur53htVKe72wSNddPvClnSeM7TMa8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":212097},"main":"dist/index.js","husky":{"hooks":{"pre-push":"npm run validate","pre-commit":"lint-staged"}},"types":"dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"c901642ac5e9838c7c725866b8d56412e3693756","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts --fix","test":"playwright test","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\"","example":"ts-node examples/basic-usage.ts","test:ui":"playwright test --ui","validate":"npm run lint:check && npm run type-check && npm run test","deps:check":"depcheck","lint:check":"eslint src/**/*.ts","test:debug":"playwright test --debug","type-check":"tsc --noEmit","publish:all":"npm run publish:github && npm run publish:npm","publish:npm":"mv .npmrc .npmrc.backup 2>/dev/null || true && npm publish --registry=https://registry.npmjs.org/ && mv .npmrc.backup .npmrc 2>/dev/null || true","test:headed":"playwright test --headed","format:check":"prettier --check \"src/**/*.ts\"","security:fix":"npm audit fix","test:coverage":"playwright test --reporter=html","prepublishOnly":"npm run build","publish:github":"npm publish --registry=https://npm.pkg.github.com/","security:audit":"npm audit","security:check":"npm-check-updates -u","example-advanced":"ts-node examples/advanced-usage.ts"},"_npmUser":{"name":"alisahindev","actor":{"name":"alisahindev","type":"user","email":"alisahindev@gmail.com"},"email":"alisahindev@gmail.com"},"repository":{"url":"git+https://github.com/alisahindev/ilog.git","type":"git"},"_npmVersion":"10.8.2","description":"Full type-supported logger for JavaScript/TypeScript projects with API logging, performance monitoring, and sensitive data masking","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write","git add"],"*.{json,md}":["prettier --write","git add"]},"_nodeVersion":"18.20.8","dependencies":{"chalk":"^4.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^8.0.3","eslint":"^8.45.0","ts-node":"^10.9.0","depcheck":"^1.4.3","prettier":"^3.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.1.2","@playwright/test":"^1.53.1","npm-check-updates":"^16.10.0","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-security":"^1.7.1","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ilog_1.1.0_1750328232588_0.558138534578281","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@alisahindev/ilog","version":"1.1.1","keywords":["logger","typescript","api","logging","monitoring","performance","interceptor","masking","structured-logging","nodejs","javascript"],"author":{"name":"Ali Sahin","email":"ali.sahin@trendyol.com"},"license":"MIT","_id":"@alisahindev/ilog@1.1.1","maintainers":[{"name":"alisahindev","email":"alisahindev@gmail.com"}],"homepage":"https://github.com/alisahindev/ilog#readme","bugs":{"url":"https://github.com/alisahindev/ilog/issues"},"dist":{"shasum":"e895427c6c52d832106ac3115e1adf8e4fe28981","tarball":"https://registry.npmjs.org/@alisahindev/ilog/-/ilog-1.1.1.tgz","fileCount":83,"integrity":"sha512-rMSaMLSvqewCItg2aaDlAkohMJf7QX/nny4CV4yfJ6WegHe+VYmPNtca/XZv5j9fGVEB/DED8dVEv2D/SCZznw==","signatures":[{"sig":"MEQCIEvbLk+wX5JVZsevKXLAUPWb6WM5gtEUTcDof02c7bXuAiAk18vO+xYlJ7P1PnJ2INjb5YFbiqiDjKXbXzpogIs/tA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":213847},"main":"dist/index.js","husky":{"hooks":{"pre-push":"npm run validate","pre-commit":"lint-staged"}},"types":"dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"0d5ab144027b8e23c12396949d09b0ed7aa4df18","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts --fix","test":"playwright test","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\"","example":"ts-node examples/basic-usage.ts","test:ui":"playwright test --ui","validate":"npm run lint:check && npm run type-check && npm run test","deps:check":"depcheck","lint:check":"eslint src/**/*.ts","test:debug":"playwright test --debug","type-check":"tsc --noEmit","publish:all":"npm run publish:github && npm run publish:npm","publish:npm":"mv .npmrc .npmrc.backup 2>/dev/null || true && npm publish --registry=https://registry.npmjs.org/ && mv .npmrc.backup .npmrc 2>/dev/null || true","test:headed":"playwright test --headed","format:check":"prettier --check \"src/**/*.ts\"","security:fix":"npm audit fix","test:coverage":"playwright test --reporter=html","prepublishOnly":"npm run build","publish:github":"npm publish --registry=https://npm.pkg.github.com/","security:audit":"npm audit","security:check":"npm-check-updates -u","example-advanced":"ts-node examples/advanced-usage.ts"},"_npmUser":{"name":"alisahindev","actor":{"name":"alisahindev","type":"user","email":"alisahindev@gmail.com"},"email":"alisahindev@gmail.com"},"repository":{"url":"git+https://github.com/alisahindev/ilog.git","type":"git"},"_npmVersion":"10.8.2","description":"Full type-supported logger for JavaScript/TypeScript projects with API logging, performance monitoring, and sensitive data masking","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write","git add"],"*.{json,md}":["prettier --write","git add"]},"_nodeVersion":"20.18.0","dependencies":{"chalk":"^4.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^8.0.3","eslint":"^8.45.0","ts-node":"^10.9.0","depcheck":"^1.4.3","prettier":"^3.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.1.2","@playwright/test":"^1.53.1","npm-check-updates":"^16.10.0","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-security":"^1.7.1","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ilog_1.1.1_1750330032164_0.7645179742887973","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@alisahindev/ilog","version":"1.1.2","keywords":["logger","typescript","api","logging","monitoring","performance","interceptor","masking","structured-logging","nodejs","javascript"],"author":{"name":"Ali Sahin","email":"ali.sahin@trendyol.com"},"license":"MIT","_id":"@alisahindev/ilog@1.1.2","maintainers":[{"name":"alisahindev","email":"alisahindev@gmail.com"}],"homepage":"https://github.com/alisahindev/ilog#readme","bugs":{"url":"https://github.com/alisahindev/ilog/issues"},"dist":{"shasum":"a24e0fd2c4ad14148a1955f562b574591a664911","tarball":"https://registry.npmjs.org/@alisahindev/ilog/-/ilog-1.1.2.tgz","fileCount":83,"integrity":"sha512-qDbZOIjy3kmajDWABkTIPjSURZiwmbB/HAP3AYP/aIGBNzs39P+6i2cQd7v+JHil0B0jru9YPwYeWLYKi+fAPA==","signatures":[{"sig":"MEUCIBX4kkW4rdCDm7MZe5663XJ6GIjIR+hS2mAycEEX8K1dAiEAs9i/9aWTKHUJLtDouzoHDaCFXdBTXcw6nJ+1i0thGpQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":212379},"main":"dist/src/index.js","husky":{"hooks":{"pre-push":"npm run validate","pre-commit":"lint-staged"}},"types":"dist/src/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"d24a348e29e35b294b94246ae308e67c6ac911c7","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts --fix","test":"playwright test","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\"","example":"ts-node examples/basic-usage.ts","test:ui":"playwright test --ui","validate":"npm run lint:check && npm run type-check && npm run test","deps:check":"depcheck","lint:check":"eslint src/**/*.ts","test:debug":"playwright test --debug","type-check":"tsc --noEmit","publish:all":"npm run publish:github && npm run publish:npm","publish:npm":"mv .npmrc .npmrc.backup 2>/dev/null || true && npm publish --registry=https://registry.npmjs.org/ && mv .npmrc.backup .npmrc 2>/dev/null || true","test:headed":"playwright test --headed","format:check":"prettier --check \"src/**/*.ts\"","security:fix":"npm audit fix","test:coverage":"playwright test --reporter=html","prepublishOnly":"npm run build","publish:github":"npm publish --registry=https://npm.pkg.github.com/","security:audit":"npm audit","security:check":"npm-check-updates -u","example-advanced":"ts-node examples/advanced-usage.ts"},"_npmUser":{"name":"alisahindev","actor":{"name":"alisahindev","type":"user","email":"alisahindev@gmail.com"},"email":"alisahindev@gmail.com"},"repository":{"url":"git+https://github.com/alisahindev/ilog.git","type":"git"},"_npmVersion":"10.8.2","description":"Full type-supported logger for JavaScript/TypeScript projects with API logging, performance monitoring, and sensitive data masking","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write","git add"],"*.{json,md}":["prettier --write","git add"]},"_nodeVersion":"20.18.0","dependencies":{"chalk":"^4.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^8.0.3","eslint":"^8.45.0","ts-node":"^10.9.0","depcheck":"^1.4.3","prettier":"^3.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.1.2","@playwright/test":"^1.53.1","npm-check-updates":"^16.10.0","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-security":"^1.7.1","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ilog_1.1.2_1750330388998_0.9521058064952772","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@alisahindev/ilog","version":"1.1.3","keywords":["logger","typescript","api","logging","monitoring","performance","interceptor","masking","structured-logging","nodejs","javascript"],"author":{"name":"Ali Sahin","email":"ali.sahin@trendyol.com"},"license":"MIT","_id":"@alisahindev/ilog@1.1.3","maintainers":[{"name":"alisahindev","email":"alisahindev@gmail.com"}],"homepage":"https://github.com/alisahindev/ilog#readme","bugs":{"url":"https://github.com/alisahindev/ilog/issues"},"dist":{"shasum":"d734867a0857781ec08d74f866e1821e0c0a2edc","tarball":"https://registry.npmjs.org/@alisahindev/ilog/-/ilog-1.1.3.tgz","fileCount":75,"integrity":"sha512-d1NEOocQvBBR7PWFkjy3hAHbIzJPyNmxWyAjmDp3C7WuFEKaxxHerhcWMnwhCBZrqc/CR4S1EzEfTh0wRnYygQ==","signatures":[{"sig":"MEMCH1y2w51Obox69Ja4K3EG8LaTx1qJBt3S0bOWjihq7c8CIDriaGFuRo+mjOL7DwB2sqE7Kcmvu8wBGImfBVBkTD8P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210061},"main":"dist/src/index.js","husky":{"hooks":{"pre-push":"npm run validate","pre-commit":"lint-staged"}},"types":"dist/src/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"2c9ec3d396d1ae3bd54226f79901fb935c3623cd","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts --fix","test":"playwright test","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\"","example":"ts-node examples/basic-usage.ts","test:ui":"playwright test --ui","validate":"npm run lint:check && npm run type-check && npm run test","deps:check":"depcheck","lint:check":"eslint src/**/*.ts","test:debug":"playwright test --debug","type-check":"tsc --noEmit","publish:all":"npm run publish:github && npm run publish:npm","publish:npm":"mv .npmrc .npmrc.backup 2>/dev/null || true && npm publish --registry=https://registry.npmjs.org/ && mv .npmrc.backup .npmrc 2>/dev/null || true","test:headed":"playwright test --headed","format:check":"prettier --check \"src/**/*.ts\"","security:fix":"npm audit fix","test:coverage":"playwright test --reporter=html","prepublishOnly":"npm run build","publish:github":"npm publish --registry=https://npm.pkg.github.com/","security:audit":"npm audit","security:check":"npm-check-updates -u","example-advanced":"ts-node examples/advanced-usage.ts"},"_npmUser":{"name":"alisahindev","actor":{"name":"alisahindev","type":"user","email":"alisahindev@gmail.com"},"email":"alisahindev@gmail.com"},"repository":{"url":"git+https://github.com/alisahindev/ilog.git","type":"git"},"_npmVersion":"10.8.2","description":"Full type-supported logger for JavaScript/TypeScript projects with API logging, performance monitoring, and sensitive data masking","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write","git add"],"*.{json,md}":["prettier --write","git add"]},"_nodeVersion":"18.20.8","dependencies":{"chalk":"^4.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^8.0.3","eslint":"^8.45.0","ts-node":"^10.9.0","depcheck":"^1.4.3","prettier":"^3.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.1.2","@playwright/test":"^1.53.1","npm-check-updates":"^16.10.0","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-security":"^1.7.1","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ilog_1.1.3_1750336557485_0.6547313533438865","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@alisahindev/ilog","version":"1.1.4","keywords":["logger","typescript","api","logging","monitoring","performance","interceptor","masking","structured-logging","nodejs","javascript"],"author":{"name":"Ali Sahin","email":"ali.sahin@trendyol.com"},"license":"MIT","_id":"@alisahindev/ilog@1.1.4","maintainers":[{"name":"alisahindev","email":"alisahindev@gmail.com"}],"homepage":"https://github.com/alisahindev/ilog#readme","bugs":{"url":"https://github.com/alisahindev/ilog/issues"},"dist":{"shasum":"b1ab6ad727b7f62037fe7c97d7270bc96f9c1d61","tarball":"https://registry.npmjs.org/@alisahindev/ilog/-/ilog-1.1.4.tgz","fileCount":59,"integrity":"sha512-lVoEWeRdVHcz6W3+xvsmFqjfUT30ZxunLhAAqADGez6xGy+VCwEsh1MFHLRzq8oq6NX8uZGmjyTn3Y96ubn65A==","signatures":[{"sig":"MEQCIHLKl2gma8qhhprDSs9+g1eW5XXKfYt/KQu58P/9oysEAiBa1U6dGwcw5vgFtbUC8Kc0UI8RVBqyo/abSgMjkix5ug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166325},"main":"dist/src/index.js","husky":{"hooks":{"pre-push":"npm run validate","pre-commit":"lint-staged"}},"types":"dist/src/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"1da14143d051f7cb263ca1a4e5b6a9dbd5c14b67","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts --fix","test":"playwright test","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\"","example":"ts-node examples/basic-usage.ts","test:ui":"playwright test --ui","validate":"npm run lint:check && npm run type-check && npm run test","deps:check":"depcheck","lint:check":"eslint src/**/*.ts","test:debug":"playwright test --debug","type-check":"tsc --noEmit","publish:all":"npm run publish:github && npm run publish:npm","publish:npm":"mv .npmrc .npmrc.backup 2>/dev/null || true && npm publish --registry=https://registry.npmjs.org/ && mv .npmrc.backup .npmrc 2>/dev/null || true","test:headed":"playwright test --headed","format:check":"prettier --check \"src/**/*.ts\"","security:fix":"npm audit fix","test:coverage":"playwright test --reporter=html","prepublishOnly":"npm run build","publish:github":"npm publish --registry=https://npm.pkg.github.com/","security:audit":"npm audit","security:check":"npm-check-updates -u","example-advanced":"ts-node examples/advanced-usage.ts"},"_npmUser":{"name":"alisahindev","actor":{"name":"alisahindev","type":"user","email":"alisahindev@gmail.com"},"email":"alisahindev@gmail.com"},"repository":{"url":"git+https://github.com/alisahindev/ilog.git","type":"git"},"_npmVersion":"10.8.2","description":"Full type-supported logger for JavaScript/TypeScript projects with API logging, performance monitoring, and sensitive data masking","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write","git add"],"*.{json,md}":["prettier --write","git add"]},"_nodeVersion":"18.20.8","dependencies":{"chalk":"^4.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^8.0.3","eslint":"^8.45.0","ts-node":"^10.9.0","depcheck":"^1.4.3","prettier":"^3.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.1.2","@playwright/test":"^1.53.1","npm-check-updates":"^16.10.0","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-security":"^1.7.1","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ilog_1.1.4_1750336902979_0.03794552062780898","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@alisahindev/ilog","version":"1.1.6","keywords":["logger","typescript","api","logging","monitoring","performance","interceptor","masking","structured-logging","nodejs","javascript"],"author":{"name":"Ali Sahin","email":"ali.sahin@trendyol.com"},"license":"MIT","_id":"@alisahindev/ilog@1.1.6","maintainers":[{"name":"alisahindev","email":"alisahindev@gmail.com"}],"homepage":"https://github.com/alisahindev/ilog#readme","bugs":{"url":"https://github.com/alisahindev/ilog/issues"},"dist":{"shasum":"1bbf77e8a8333d4c0e64b1817b33717e856f8e1c","tarball":"https://registry.npmjs.org/@alisahindev/ilog/-/ilog-1.1.6.tgz","fileCount":33,"integrity":"sha512-/gd4RV7EKgq3KXonuvXcVpB2H4roGtiBZkHSYqB//3RO6U3LtFp+oYJYnvjtCJe7Rn7NVFOhRWflFNlTHsxJnQ==","signatures":[{"sig":"MEUCICyrQqjm/OGDr8LQCAnHV3pzDfnC8u6B+EQSRlQbYVsZAiEA38sWtRgmN9X+15HZPnihjVQU2yfKbEwGB6JPWrB735Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98836},"main":"dist/src/index.js","husky":{"hooks":{"pre-push":"npm run validate","pre-commit":"lint-staged"}},"types":"dist/src/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"0e4f70e8259d5f244c587e153e9f7bb60577fa11","scripts":{"dev":"tsc --watch --sourceMap --declarationMap","lint":"eslint src/**/*.ts --fix","test":"playwright test","build":"npm run build:prod","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\"","example":"ts-node examples/basic-usage.ts","test:ui":"playwright test --ui","validate":"npm run lint:check && npm run type-check && npm run test","build:dev":"tsc -p tsconfig.build.json --sourceMap --declarationMap","build:prod":"tsc -p tsconfig.build.json","deps:check":"depcheck","lint:check":"eslint src/**/*.ts","test:debug":"playwright test --debug","type-check":"tsc --noEmit && tsc -p tsconfig.build.json --noEmit","publish:all":"npm run publish:github && npm run publish:npm","publish:npm":"mv .npmrc .npmrc.backup 2>/dev/null || true && npm publish --registry=https://registry.npmjs.org/ && mv .npmrc.backup .npmrc 2>/dev/null || true","test:headed":"playwright test --headed","format:check":"prettier --check \"src/**/*.ts\"","security:fix":"npm audit fix","test:coverage":"playwright test --reporter=html","prepublishOnly":"npm run build","publish:github":"npm publish --registry=https://npm.pkg.github.com/","security:audit":"npm audit","security:check":"npm-check-updates -u","example-advanced":"ts-node examples/advanced-usage.ts"},"_npmUser":{"name":"alisahindev","actor":{"name":"alisahindev","type":"user","email":"alisahindev@gmail.com"},"email":"alisahindev@gmail.com"},"repository":{"url":"git+https://github.com/alisahindev/ilog.git","type":"git"},"_npmVersion":"10.8.2","description":"Full type-supported logger for JavaScript/TypeScript projects with API logging, performance monitoring, and sensitive data masking","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write","git add"],"*.{json,md}":["prettier --write","git add"]},"_nodeVersion":"18.20.8","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^8.0.3","eslint":"^8.45.0","ts-node":"^10.9.0","depcheck":"^1.4.3","prettier":"^3.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.1.2","@playwright/test":"^1.53.1","npm-check-updates":"^16.10.0","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-security":"^1.7.1","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"chalk":"^4.1.2"},"peerDependenciesMeta":{"chalk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ilog_1.1.6_1750337935885_0.24977039131286172","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"@alisahindev/ilog","version":"1.1.7","keywords":["logger","typescript","api","logging","monitoring","performance","interceptor","masking","structured-logging","nodejs","javascript"],"author":{"name":"Ali Sahin","email":"ali.sahin@trendyol.com"},"license":"MIT","_id":"@alisahindev/ilog@1.1.7","maintainers":[{"name":"alisahindev","email":"alisahindev@gmail.com"}],"homepage":"https://github.com/alisahindev/ilog#readme","bugs":{"url":"https://github.com/alisahindev/ilog/issues"},"dist":{"shasum":"4f3c114392a47e2358e9a5053d9487f87724f10f","tarball":"https://registry.npmjs.org/@alisahindev/ilog/-/ilog-1.1.7.tgz","fileCount":33,"integrity":"sha512-UhfanHSzbdZWQjPF2p2KePAjHu9bNK/SRSm2yWJ9s/Ej9Zs6iy7cEGLf9/tVec3s+0cRbctoo6VA+ZqqPhVKUw==","signatures":[{"sig":"MEUCIEFeGFHXMjsOnN31vl3wmWNdkae9kpmglvgveNJBTFcPAiEAjwyL3PW+u8Rjok/IcoU5ekC3mzfER3wasP748vHZxc4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98757},"main":"dist/src/index.js","types":"dist/src/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"78905d4fca5ce02a4fbdfdea7039493ab35ea3c0","scripts":{"dev":"tsc --watch --sourceMap --declarationMap","lint":"eslint src/**/*.ts --fix","test":"playwright test","build":"npm run build:prod","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\"","example":"ts-node examples/basic-usage.ts","prepare":"husky install","test:ui":"playwright test --ui","validate":"npm run lint:check && npm run type-check && npm run test","build:dev":"tsc -p tsconfig.build.json --sourceMap --declarationMap","build:prod":"tsc -p tsconfig.build.json","deps:check":"depcheck","lint:check":"eslint src/**/*.ts","test:debug":"playwright test --debug","type-check":"tsc --noEmit && tsc -p tsconfig.build.json --noEmit","publish:all":"npm run publish:github && npm run publish:npm","publish:npm":"mv .npmrc .npmrc.backup 2>/dev/null || true && npm publish --registry=https://registry.npmjs.org/ && mv .npmrc.backup .npmrc 2>/dev/null || true","test:headed":"playwright test --headed","format:check":"prettier --check \"src/**/*.ts\"","security:fix":"npm audit fix","test:coverage":"playwright test --reporter=html","prepublishOnly":"npm run build","publish:github":"npm publish --registry=https://npm.pkg.github.com/","security:audit":"npm audit","security:check":"npm-check-updates -u","example-advanced":"ts-node examples/advanced-usage.ts"},"_npmUser":{"name":"alisahindev","actor":{"name":"alisahindev","type":"user","email":"alisahindev@gmail.com"},"email":"alisahindev@gmail.com"},"repository":{"url":"git+https://github.com/alisahindev/ilog.git","type":"git"},"_npmVersion":"10.8.2","description":"Full type-supported logger for JavaScript/TypeScript projects with API logging, performance monitoring, and sensitive data masking","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write","git add"],"*.{json,md}":["prettier --write","git add"]},"_nodeVersion":"18.20.8","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^8.0.3","eslint":"^8.45.0","ts-node":"^10.9.0","depcheck":"^1.4.3","prettier":"^3.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.1.2","@playwright/test":"^1.53.1","npm-check-updates":"^16.10.0","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-security":"^1.7.1","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"chalk":"^4.1.2"},"peerDependenciesMeta":{"chalk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ilog_1.1.7_1750338129840_0.5598792992930572","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"@alisahindev/ilog","version":"1.1.8","keywords":["logger","typescript","api","logging","monitoring","performance","interceptor","masking","structured-logging","nodejs","javascript"],"author":{"name":"Ali Sahin","email":"ali.sahin@trendyol.com"},"license":"MIT","_id":"@alisahindev/ilog@1.1.8","maintainers":[{"name":"alisahindev","email":"alisahindev@gmail.com"}],"homepage":"https://github.com/alisahindev/ilog#readme","bugs":{"url":"https://github.com/alisahindev/ilog/issues"},"dist":{"shasum":"10bb2860a5abca6fcafd8e88865bd2b0c73565ef","tarball":"https://registry.npmjs.org/@alisahindev/ilog/-/ilog-1.1.8.tgz","fileCount":33,"integrity":"sha512-pTj0i2zagcZ/ycdsqHVyJtbWPSNlDk/Zfe1Tfyt2fAPYGYyhqv7Mv+Of4PoEgoE1BBF38d69UfVHTMd7nkzhAQ==","signatures":[{"sig":"MEUCIAmSNxXe+Ii56FTz8/LJ65KyL4uKaBkhzEqdSGkLZvi/AiEA58p+oHzV6pqF18emSrOEOWE8wZAXHdV0bFusnlA6flI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98757},"main":"dist/src/index.js","types":"dist/src/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"b579af997aebc80f4105efa69e5f64919b0cb421","scripts":{"dev":"tsc --watch --sourceMap --declarationMap","lint":"eslint src/**/*.ts --fix","test":"playwright test","build":"npm run build:prod","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\"","example":"ts-node examples/basic-usage.ts","prepare":"husky install","test:ui":"playwright test --ui","validate":"npm run lint:check && npm run type-check && npm run test","build:dev":"tsc -p tsconfig.build.json --sourceMap --declarationMap","build:prod":"tsc -p tsconfig.build.json","deps:check":"depcheck","lint:check":"eslint src/**/*.ts","test:debug":"playwright test --debug","type-check":"tsc --noEmit && tsc -p tsconfig.build.json --noEmit","publish:all":"npm run publish:github && npm run publish:npm","publish:npm":"mv .npmrc .npmrc.backup 2>/dev/null || true && npm publish --registry=https://registry.npmjs.org/ && mv .npmrc.backup .npmrc 2>/dev/null || true","test:headed":"playwright test --headed","format:check":"prettier --check \"src/**/*.ts\"","security:fix":"npm audit fix","test:coverage":"playwright test --reporter=html","prepublishOnly":"npm run build","publish:github":"npm publish --registry=https://npm.pkg.github.com/","security:audit":"npm audit","security:check":"npm-check-updates -u","example-advanced":"ts-node examples/advanced-usage.ts"},"_npmUser":{"name":"alisahindev","actor":{"name":"alisahindev","type":"user","email":"alisahindev@gmail.com"},"email":"alisahindev@gmail.com"},"repository":{"url":"git+https://github.com/alisahindev/ilog.git","type":"git"},"_npmVersion":"10.8.2","description":"Full type-supported logger for JavaScript/TypeScript projects with API logging, performance monitoring, and sensitive data masking","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write","git add"],"*.{json,md}":["prettier --write","git add"]},"_nodeVersion":"18.20.8","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^8.0.3","eslint":"^8.45.0","ts-node":"^10.9.0","depcheck":"^1.4.3","prettier":"^3.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.1.2","@playwright/test":"^1.53.1","npm-check-updates":"^16.10.0","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-security":"^1.7.1","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"chalk":"^4.1.2"},"peerDependenciesMeta":{"chalk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ilog_1.1.8_1750338235749_0.752039332513438","host":"s3://npm-registry-packages-npm-production"}},"1.1.9":{"name":"@alisahindev/ilog","version":"1.1.9","keywords":["logger","typescript","api","logging","monitoring","performance","interceptor","masking","structured-logging","nodejs","javascript"],"author":{"name":"Ali Sahin","email":"ali.sahin@trendyol.com"},"license":"MIT","_id":"@alisahindev/ilog@1.1.9","maintainers":[{"name":"alisahindev","email":"alisahindev@gmail.com"}],"homepage":"https://github.com/alisahindev/ilog#readme","bugs":{"url":"https://github.com/alisahindev/ilog/issues"},"dist":{"shasum":"6ce15e53fef18c9ba2bb0815b1d4f246a97b22c4","tarball":"https://registry.npmjs.org/@alisahindev/ilog/-/ilog-1.1.9.tgz","fileCount":33,"integrity":"sha512-DL5SayaOCkbsnjO2UTUZEPn4Qkz51CJXrWifw8pL+ATq2QhJV7jBgLrJ/71wZuZJvF2xSI9SaTDo04P7nA3idA==","signatures":[{"sig":"MEYCIQDnishP6p6j7PKmVItOa/BsX7C6IhrizJFEd2VyRBv9CQIhAL1VxEhd+BYkch4bMSqkpbeQ66A/ok7wE0sOyX3fgdSf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99017},"main":"dist/src/index.js","types":"dist/src/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"d5b95b6d4d82d674e9492c2d5c6d085ba3604f65","scripts":{"dev":"tsc --watch --sourceMap --declarationMap","lint":"eslint src/**/*.ts --fix","test":"playwright test","build":"npm run build:prod","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\"","example":"ts-node examples/basic-usage.ts","prepare":"husky install","test:ui":"playwright test --ui","validate":"npm run lint:check && npm run type-check && npm run test","build:dev":"tsc -p tsconfig.build.json --sourceMap --declarationMap","build:prod":"tsc -p tsconfig.build.json","deps:check":"depcheck","lint:check":"eslint src/**/*.ts","test:debug":"playwright test --debug","type-check":"tsc --noEmit && tsc -p tsconfig.build.json --noEmit","publish:all":"npm run publish:github && npm run publish:npm","publish:npm":"mv .npmrc .npmrc.backup 2>/dev/null || true && npm publish --registry=https://registry.npmjs.org/ && mv .npmrc.backup .npmrc 2>/dev/null || true","test:headed":"playwright test --headed","format:check":"prettier --check \"src/**/*.ts\"","security:fix":"npm audit fix","test:coverage":"playwright test --reporter=html","prepublishOnly":"npm run build","publish:github":"npm publish --registry=https://npm.pkg.github.com/","security:audit":"npm audit","security:check":"npm-check-updates -u","example-advanced":"ts-node examples/advanced-usage.ts"},"_npmUser":{"name":"alisahindev","actor":{"name":"alisahindev","type":"user","email":"alisahindev@gmail.com"},"email":"alisahindev@gmail.com"},"repository":{"url":"git+https://github.com/alisahindev/ilog.git","type":"git"},"_npmVersion":"10.8.2","description":"Full type-supported logger for JavaScript/TypeScript projects with API logging, performance monitoring, and sensitive data masking","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write","git add"],"*.{json,md}":["prettier --write","git add"]},"_nodeVersion":"18.20.8","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^8.0.3","eslint":"^8.45.0","ts-node":"^10.9.0","depcheck":"^1.4.3","prettier":"^3.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","lint-staged":"^16.1.2","@playwright/test":"^1.53.1","npm-check-updates":"^16.10.0","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-security":"^1.7.1","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"chalk":"^4.1.2"},"peerDependenciesMeta":{"chalk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ilog_1.1.9_1750338700667_0.6869455315196658","host":"s3://npm-registry-packages-npm-production"}},"1.1.10":{"name":"@alisahindev/ilog","version":"1.1.10","description":"Full type-supported logger for JavaScript/TypeScript projects with API logging, performance monitoring, and sensitive data masking","main":"dist/src/index.js","types":"dist/src/index.d.ts","scripts":{"build":"npm run build:prod && npm run build:package","build:dev":"tsc -p tsconfig.build.json --sourceMap --declarationMap","build:prod":"tsc -p tsconfig.build.json","build:package":"node scripts/build-package.js","dev":"tsc --watch --sourceMap --declarationMap","test":"playwright test","test:ui":"playwright test --ui","test:debug":"playwright test --debug","test:headed":"playwright test --headed","test:coverage":"playwright test --reporter=html","example":"ts-node examples/basic-usage.ts","example-advanced":"ts-node examples/advanced-usage.ts","prepare":"husky install","prepublishOnly":"npm run build","publish:github":"npm publish --registry=https://npm.pkg.github.com/","publish:npm":"mv .npmrc .npmrc.backup 2>/dev/null || true && npm publish --registry=https://registry.npmjs.org/ && mv .npmrc.backup .npmrc 2>/dev/null || true","publish:all":"npm run publish:github && npm run publish:npm","clean":"rm -rf dist","lint":"eslint src/**/*.ts --fix","lint:check":"eslint src/**/*.ts","security:audit":"npm audit","security:fix":"npm audit fix","security:check":"npm-check-updates -u","type-check":"tsc --noEmit && tsc -p tsconfig.build.json --noEmit","validate":"npm run lint:check && npm run type-check && npm run test","deps:check":"depcheck","format":"prettier --write \"src/**/*.ts\"","format:check":"prettier --check \"src/**/*.ts\""},"keywords":["logger","typescript","api","logging","monitoring","performance","interceptor","masking","structured-logging","nodejs","javascript"],"author":{"name":"Ali Sahin","email":"ali.sahin@trendyol.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/alisahindev/ilog.git"},"bugs":{"url":"https://github.com/alisahindev/ilog/issues"},"homepage":"https://github.com/alisahindev/ilog#readme","publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"engines":{"node":">=14.0.0"},"devDependencies":{"@playwright/test":"^1.53.1","@types/node":"^20.0.0","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","depcheck":"^1.4.3","eslint":"^8.45.0","eslint-config-prettier":"^9.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-security":"^1.7.1","husky":"^8.0.3","lint-staged":"^16.1.2","npm-check-updates":"^16.10.0","prettier":"^3.0.0","ts-node":"^10.9.0","typescript":"^5.0.0"},"dependencies":{},"peerDependencies":{"chalk":"^4.1.2"},"peerDependenciesMeta":{"chalk":{"optional":true}},"lint-staged":{"*.ts":["eslint --fix","prettier --write","git add"],"*.{json,md}":["prettier --write","git add"]},"_id":"@alisahindev/ilog@1.1.10","gitHead":"a3f5a9c30aec7b59a4e40530e60b8d5cb489e508","_nodeVersion":"18.20.8","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Fhjo1nQH9KYdfEDVrOtzmI4ddvwD0sKSda/nz8hFzsofZBlOz0VSDV+3DEdFfPPYErtfzWKRgXbxsKxtd8kpnQ==","shasum":"82a6937bcbaa2688ab7b12ad45ea44f32d1082a1","tarball":"https://registry.npmjs.org/@alisahindev/ilog/-/ilog-1.1.10.tgz","fileCount":34,"unpackedSize":100153,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHq1gxjQJ5U0P95bZQNEgqJV4Y04ZRue30w/OOC6kKlTAiEA8xa4nsbAtzhJwUTYfvMeO90C4B0bhv3Et0WZssaj9/4="}]},"_npmUser":{"name":"alisahindev","email":"alisahindev@gmail.com","actor":{"name":"alisahindev","email":"alisahindev@gmail.com","type":"user"}},"directories":{},"maintainers":[{"name":"alisahindev","email":"alisahindev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ilog_1.1.10_1750339151879_0.7155784379339185"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-19T07:33:02.303Z","modified":"2025-06-19T13:19:12.212Z","1.0.3":"2025-06-19T07:33:02.590Z","1.0.4":"2025-06-19T07:40:16.827Z","1.0.5":"2025-06-19T07:43:04.648Z","1.0.10":"2025-06-19T08:32:05.553Z","1.1.0":"2025-06-19T10:17:12.790Z","1.1.1":"2025-06-19T10:47:12.357Z","1.1.2":"2025-06-19T10:53:09.173Z","1.1.3":"2025-06-19T12:35:57.691Z","1.1.4":"2025-06-19T12:41:43.174Z","1.1.6":"2025-06-19T12:58:56.293Z","1.1.7":"2025-06-19T13:02:10.019Z","1.1.8":"2025-06-19T13:03:55.923Z","1.1.9":"2025-06-19T13:11:40.852Z","1.1.10":"2025-06-19T13:19:12.027Z"},"bugs":{"url":"https://github.com/alisahindev/ilog/issues"},"author":{"name":"Ali Sahin","email":"ali.sahin@trendyol.com"},"license":"MIT","homepage":"https://github.com/alisahindev/ilog#readme","keywords":["logger","typescript","api","logging","monitoring","performance","interceptor","masking","structured-logging","nodejs","javascript"],"repository":{"type":"git","url":"git+https://github.com/alisahindev/ilog.git"},"description":"Full type-supported logger for JavaScript/TypeScript projects with API logging, performance monitoring, and sensitive data masking","maintainers":[{"name":"alisahindev","email":"alisahindev@gmail.com"}],"readme":"# iLog - TypeScript Logger\n\nA comprehensive, fully type-supported logging library for JavaScript/TypeScript projects. Easily manage API calls, performance metrics, and application logs with advanced features.\n\n## Features\n\n- 🎯 **Full TypeScript Support** - Complete type safety\n- 🚀 **API Logging** - Automatic HTTP request/response logging\n- 📊 **Performance Monitoring** - Track operation times and memory usage\n- 🔒 **Sensitive Data Masking** - Automatic masking of sensitive information\n- 📁 **Multiple Writers** - Console, file, HTTP endpoint support\n- 🎨 **Flexible Formatting** - JSON, Pretty, API-specific formatters\n- 🔄 **File Rotation** - Automatic log file rotation\n- 📦 **Modular Architecture** - Following separation of concerns principles\n- 🪝 **HTTP Interceptors** - Automatic capture for Fetch, Axios, XHR\n- ⚡ **Middleware System** - Extensible log processing pipeline\n\n## Installation\n\n```bash\nnpm install @alisahindev/ilog\n# or\nyarn add @alisahindev/ilog\n```\n\n## Quick Start\n\n```typescript\nimport { createLogger, LogLevel } from '@alisahindev/ilog';\n\n// Basic usage\nconst logger = createLogger({\n  level: LogLevel.INFO,\n  enableConsole: true,\n  enableFile: true,\n  filePath: './logs/app.log'\n});\n\nlogger.info('Application started');\nlogger.error('An error occurred', new Error('Sample error'));\n```\n\n## API Logging\n\n### Automatic Interceptors\n\n```typescript\nimport { FetchInterceptor, AxiosInterceptor } from '@alisahindev/ilog';\n\n// Automatic logging for Fetch API\nconst fetchInterceptor = new FetchInterceptor(logger, {\n  logRequests: true,\n  logResponses: true,\n  maskSensitiveData: true,\n  sensitiveFields: ['authorization', 'x-api-key']\n});\n\nfetchInterceptor.install();\n\n// Now all fetch calls will be automatically logged\nfetch('/api/users').then(response => response.json());\n```\n\n### Manual API Logging\n\n```typescript\n// Manual API logging\nlogger.logApiRequest('POST', '/api/users', {\n  requestBody: { name: 'John', email: 'john@example.com' },\n  requestHeaders: { 'Content-Type': 'application/json' }\n});\n\nlogger.logApiResponse('POST', '/api/users', 201, 250, {\n  responseBody: { id: 1, name: 'John' }\n});\n\nlogger.logApiError('GET', '/api/users/999', new Error('User not found'));\n```\n\n## Performance Monitoring\n\n```typescript\n// Automatic timing\nconst timer = logger.startTimer('database-query');\nawait performDatabaseQuery();\ntimer(); // Automatically logs duration and memory usage\n\n// Custom performance metrics\nlogger.logPerformance({\n  timestamp: new Date(),\n  level: LogLevel.INFO,\n  message: 'Batch processing completed',\n  operation: 'batch-process',\n  duration: 1500,\n  customMetrics: {\n    itemsProcessed: 100,\n    successRate: 0.95\n  }\n});\n```\n\n## Sensitive Data Masking\n\n```typescript\nimport { maskSensitiveData } from '@alisahindev/ilog';\n\nconst userData = {\n  name: 'John Doe',\n  email: 'john@example.com',\n  password: 'secret123',\n  creditCard: '1234-5678-9012-3456'\n};\n\nconst masked = maskSensitiveData(userData, {\n  sensitiveFields: ['password', 'creditCard'],\n  showFirst: 2,\n  showLast: 2\n});\n\nlogger.info('User data', { user: masked });\n// Output: { name: 'John Doe', email: 'john@example.com', password: 'se*****23', creditCard: '12**-****-****-**56' }\n```\n\n## Context Management\n\n```typescript\n// Global context\nlogger.setContext('requestId', 'req-123');\nlogger.setUserId('user-456');\nlogger.setSessionId('sess-789');\n\n// Child logger with additional context\nconst serviceLogger = logger.child({ \n  service: 'auth',\n  version: '1.2.0'\n});\n\nserviceLogger.info('Authentication successful');\n// Includes all parent context + service-specific context\n```\n\n## Middleware System\n\niLog provides a powerful middleware system that allows you to intercept and modify log entries before they are processed. This enables advanced logging features like filtering, enrichment, metrics collection, and rate limiting.\n\n### Built-in Middleware\n\n#### Timestamp Middleware\n```typescript\nimport { TimestampMiddleware } from '@alisahindev/ilog';\n\nconst logger = createLogger();\nlogger.use(new TimestampMiddleware({\n  format: 'iso', // 'iso', 'locale', or 'unix'\n  timezone: 'Europe/Istanbul'\n}));\n\nlogger.info('Message with formatted timestamp');\n```\n\n#### Filter Middleware\n```typescript\nimport { FilterMiddleware, LogLevel } from '@alisahindev/ilog';\n\nconst filterMiddleware = new FilterMiddleware({\n  minLevel: LogLevel.INFO,\n  maxLevel: LogLevel.ERROR,\n  excludeMessages: ['debug', 'trace'],\n  includeMessages: ['important'],\n  excludeContextKeys: ['sensitive'],\n  includeContextKeys: ['userId']\n});\n\nlogger.use(filterMiddleware);\n```\n\n#### Correlation ID Middleware\n```typescript\nimport { CorrelationIdMiddleware } from '@alisahindev/ilog';\n\nconst correlationMiddleware = new CorrelationIdMiddleware({\n  fieldName: 'traceId',\n  generateNew: false, // true to generate new ID for each log\n  idLength: 16\n});\n\nlogger.use(correlationMiddleware);\nlogger.info('Message with correlation ID');\n```\n\n#### Metrics Middleware\n```typescript\nimport { MetricsMiddleware } from '@alisahindev/ilog';\n\nconst metricsMiddleware = new MetricsMiddleware({\n  trackFrequency: true,\n  frequencyWindowMinutes: 5\n});\n\nlogger.use(metricsMiddleware);\n\n// Get metrics\nconst metrics = metricsMiddleware.getMetrics();\nconsole.log(metrics.totalLogs, metrics.errorCount, metrics.logFrequency);\n```\n\n#### Rate Limiting Middleware\n```typescript\nimport { RateLimitMiddleware, LogLevel } from '@alisahindev/ilog';\n\nconst rateLimitMiddleware = new RateLimitMiddleware({\n  maxLogsPerSecond: 10,\n  maxLogsPerMinute: 100,\n  maxLogsPerHour: 1000,\n  skipLevels: [LogLevel.FATAL], // Don't rate limit fatal errors\n  onRateLimitExceeded: (droppedCount) => {\n    console.warn(`Rate limit exceeded! Dropped ${droppedCount} logs`);\n  }\n});\n\nlogger.use(rateLimitMiddleware);\n```\n\n### Custom Middleware\n\n#### Function-based Middleware\n```typescript\nimport { Logger, MiddlewareFunction } from '@alisahindev/ilog';\n\nconst enrichmentMiddleware: MiddlewareFunction = async (entry, context, next) => {\n  // Enrich log entry\n  entry.context = {\n    ...entry.context,\n    environment: process.env.NODE_ENV,\n    service: 'my-service',\n    version: '1.0.0'\n  };\n  \n  // Add metadata for other middleware\n  context.metadata.processedAt = new Date().toISOString();\n  \n  // Continue to next middleware\n  await next();\n};\n\nlogger.use(enrichmentMiddleware);\n```\n\n#### Class-based Middleware\n```typescript\nimport { LogMiddleware, LogEntry, MiddlewareContext } from '@alisahindev/ilog';\n\nclass CustomMiddleware implements LogMiddleware {\n  name = 'CustomMiddleware';\n  \n  async execute(\n    entry: LogEntry,\n    context: MiddlewareContext,\n    next: () => Promise<void> | void\n  ): Promise<void> {\n    // Custom processing logic\n    if (entry.level >= LogLevel.ERROR) {\n      entry.context = {\n        ...entry.context,\n        alerting: true\n      };\n    }\n    \n    await next();\n  }\n}\n\nlogger.use(new CustomMiddleware());\n```\n\n### Middleware Pipeline Management\n\n```typescript\n// Add middleware\nlogger.use(new TimestampMiddleware());\nlogger.use(new CorrelationIdMiddleware());\n\n// Remove specific middleware\nlogger.removeMiddleware('TimestampMiddleware');\n\n// Clear all middleware\nlogger.clearMiddlewares();\n\n// Child loggers inherit parent middleware\nconst childLogger = logger.child({ component: 'auth' });\n```\n\n### Middleware Configuration at Logger Creation\n\n```typescript\nimport { \n  Logger, \n  TimestampMiddleware, \n  FilterMiddleware,\n  LogLevel \n} from '@alisahindev/ilog';\n\nconst logger = new Logger({\n  level: LogLevel.INFO,\n  enableConsole: true,\n  middlewares: [\n    new TimestampMiddleware({ format: 'iso' }),\n    new FilterMiddleware({ minLevel: LogLevel.INFO })\n  ]\n});\n```\n\n### Async Middleware Support\n\n```typescript\nconst asyncMiddleware: MiddlewareFunction = async (entry, context, next) => {\n  // Async operations are fully supported\n  await someAsyncOperation();\n  \n  entry.context = {\n    ...entry.context,\n    asyncProcessed: true\n  };\n  \n  await next();\n};\n\nlogger.use(asyncMiddleware);\n```\n\n## Custom Writers\n\n```typescript\nimport { HttpWriter, FileWriter, BufferedWriter } from '@alisahindev/ilog';\n\nconst logger = createLogger({\n  customWriters: [\n    // Send logs to HTTP endpoint\n    new HttpWriter('https://logs.yourservice.com/api/logs', {\n      'Authorization': 'Bearer your-token'\n    }),\n    \n    // Buffered file writing\n    new BufferedWriter(\n      new FileWriter('./logs/buffered.log'),\n      100, // Buffer size\n      5000 // Flush interval (ms)\n    )\n  ]\n});\n```\n\n## Advanced Configuration\n\n```typescript\nimport { Logger, LogLevel, JsonFormatter, ApiFormatter } from '@alisahindev/ilog';\n\nconst logger = new Logger({\n  level: LogLevel.DEBUG,\n  enableConsole: true,\n  enableFile: true,\n  filePath: './logs/app.log',\n  maxFileSize: 10, // MB\n  maxFiles: 5,\n  formatter: new JsonFormatter(), // or ApiFormatter, PrettyFormatter\n  enableApiLogging: true,\n  enablePerformanceLogging: true,\n  sensitiveFields: ['password', 'token', 'ssn', 'creditCard']\n});\n```\n\n## Log Levels\n\n```typescript\nlogger.debug('Debug message');    // LogLevel.DEBUG\nlogger.info('Info message');      // LogLevel.INFO  \nlogger.warn('Warning message');   // LogLevel.WARN\nlogger.error('Error message');    // LogLevel.ERROR\nlogger.fatal('Fatal message');    // LogLevel.FATAL\n```\n\n## Formatters\n\n### Pretty Formatter (Development)\n```typescript\nimport { PrettyFormatter } from '@alisahindev/ilog';\n\nconst logger = createLogger({\n  formatter: new PrettyFormatter()\n});\n// Colorful, human-readable output\n```\n\n### JSON Formatter (Production)\n```typescript\nimport { JsonFormatter } from '@alisahindev/ilog';\n\nconst logger = createLogger({\n  formatter: new JsonFormatter()\n});\n// Structured JSON output for log aggregation\n```\n\n### API Formatter\n```typescript\nimport { ApiFormatter } from '@alisahindev/ilog';\n\nconst logger = createLogger({\n  formatter: new ApiFormatter()\n});\n// Specialized formatting for API calls\n```\n\n## Best Practices\n\n### Structured Logging\n```typescript\n// ✅ Good - Structured data\nlogger.info('User login successful', {\n  userId: '123',\n  ip: '192.168.1.1',\n  userAgent: 'Mozilla/5.0...'\n});\n\n// ❌ Avoid - String interpolation\nlogger.info(`User ${userId} logged in from ${ip}`);\n```\n\n### Service-Specific Loggers\n```typescript\nclass UserService {\n  private logger = rootLogger.child({ service: 'user-service' });\n  \n  async createUser(userData: any) {\n    const timer = this.logger.startTimer('create-user');\n    try {\n      this.logger.info('Creating new user', { email: userData.email });\n      // ... user creation logic\n      this.logger.info('User created successfully', { userId: result.id });\n      return result;\n    } catch (error) {\n      this.logger.error('Failed to create user', error, { email: userData.email });\n      throw error;\n    } finally {\n      timer();\n    }\n  }\n}\n```\n\n### Error Handling\n```typescript\ntry {\n  await riskyOperation();\n} catch (error) {\n  logger.error('Operation failed', error, {\n    operation: 'riskyOperation',\n    context: { /* relevant context */ }\n  });\n  \n  // Re-throw if needed\n  throw error;\n}\n```\n\n## API Reference\n\n### Logger Methods\n- `debug(message, context?)` - Debug level logging\n- `info(message, context?)` - Info level logging  \n- `warn(message, context?)` - Warning level logging\n- `error(message, error?, context?)` - Error level logging\n- `fatal(message, error?, context?)` - Fatal level logging\n- `logApiRequest(method, url, options?)` - API request logging\n- `logApiResponse(method, url, status, responseTime, options?)` - API response logging\n- `logApiError(method, url, error, options?)` - API error logging\n- `startTimer(operation)` - Performance timing\n- `setContext(key, value)` - Set global context\n- `child(context)` - Create child logger\n\n### Interceptors\n- `FetchInterceptor` - Automatic Fetch API capture\n- `AxiosInterceptor` - Automatic Axios capture  \n- `XHRInterceptor` - Automatic XMLHttpRequest capture\n\n### Utilities\n- `maskSensitiveData(data, options)` - Sensitive data masking\n- `maskEmail(email)` - Email masking\n- `maskCreditCard(cardNumber)` - Credit card masking\n- `maskUrlParameters(url, sensitiveParams)` - URL parameter masking\n\n## TypeScript Support\n\nThis library is written in TypeScript and provides full type definitions. All methods are properly typed with generics and interfaces to ensure type safety in your applications.\n\n```typescript\n// Fully typed logger configuration\nconst config: LoggerConfig = {\n  level: LogLevel.INFO,\n  enableConsole: true,\n  enableFile: true,\n  filePath: './logs/app.log'\n};\n\n// Type-safe context\ninterface UserContext {\n  userId: string;\n  sessionId: string;\n  ip: string;\n}\n\nconst userLogger = logger.child<UserContext>({\n  userId: '123',\n  sessionId: 'sess-456',\n  ip: '192.168.1.1'\n});\n```\n\n## Examples\n\nCheck out the `examples/` directory for comprehensive usage examples:\n\n- `basic-usage.ts` - Basic logging patterns\n- `advanced-usage.ts` - Advanced features and configurations\n\n## Contributing\n\nWe welcome contributions! Please follow these steps:\n\n1. Fork the repository\n2. Create a feature branch\n3. Add tests for your changes\n4. Update documentation\n5. Submit a pull request\n\n## License\n\nMIT License - see the [LICENSE](LICENSE) file for details.\n\n## Support\n\n- GitHub Issues: [Report bugs or request features](https://github.com/alisahindev/ilog/issues)\n- Documentation: [Full API documentation](https://github.com/alisahindev/ilog#readme)\n\n## Changelog\n\n### v1.1.8\n- Enhanced middleware system\n- Improved sensitive data masking\n- Performance optimizations\n- Async middleware support\n- New formatter options\n\n### v1.0.0\n- Initial release\n- Full TypeScript support\n- API logging with interceptors\n- Performance monitoring\n- Sensitive data masking\n- Multiple output writers\n- Flexible formatting options\n","readmeFilename":"README.md"}