{"_id":"@bobfrankston/userconfig","_rev":"15-cdecb3564fbfe685ba3101e830518dd6","name":"@bobfrankston/userconfig","dist-tags":{"latest":"1.0.15"},"versions":{"1.0.1":{"name":"@bobfrankston/userconfig","version":"1.0.1","keywords":["config","userconfig","json5"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/userconfig@1.0.1","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/userconfig#readme","bugs":{"url":"https://github.com/BobFrankston/userconfig/issues"},"dist":{"shasum":"9fa1b29fc55eb40349087ad761569b450f5a222e","tarball":"https://registry.npmjs.org/@bobfrankston/userconfig/-/userconfig-1.0.1.tgz","fileCount":3,"integrity":"sha512-JLOG3ArOG2C+vpq6MHhhdGtZdfJaEBSTyUj0gcYAhe7EkZf4Pifxle7Qmsn40XyRaTb+ZJcnwsink3Z1I/bd+Q==","signatures":[{"sig":"MEUCIAslcZ2lmMfw4oryA4FRy42MXGNe/3BpVNeBvCHYiDT/AiEA7jPZLE/eTwSZ1yFrztOyHpWghDKt3O8dA42FXApEX34=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3462},"main":"userconfig.js","type":"module","_from":"file:bobfrankston-userconfig-1.0.1.tgz","types":"./userconfig.d.ts","scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\userconfig\\bobfrankston-userconfig-1.0.1.tgz","_integrity":"sha512-JLOG3ArOG2C+vpq6MHhhdGtZdfJaEBSTyUj0gcYAhe7EkZf4Pifxle7Qmsn40XyRaTb+ZJcnwsink3Z1I/bd+Q==","repository":{"url":"git+https://github.com/BobFrankston/userconfig.git","type":"git"},"_npmVersion":"11.7.0","description":"Read/write user config from %USERPROFILE%\\.userconfig\\npm.json5","directories":{},"_nodeVersion":"25.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.2.1"},"_npmOperationalInternal":{"tmp":"tmp/userconfig_1.0.1_1771883353598_0.5309015422752359","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@bobfrankston/userconfig","version":"1.0.2","keywords":["config","userconfig","json5"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/userconfig@1.0.2","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/userconfig#readme","bugs":{"url":"https://github.com/BobFrankston/userconfig/issues"},"dist":{"shasum":"3315273fa2036927aca1a40821aca1379259399a","tarball":"https://registry.npmjs.org/@bobfrankston/userconfig/-/userconfig-1.0.2.tgz","fileCount":4,"integrity":"sha512-eMiD9RQJ3dr+vo0vJEMbtLk7KdFXWhwC27wIAls+UAS2+Nmi27oFlb7HuX44MY7Z29UBNoWDmtD8pBwoMPQwkg==","signatures":[{"sig":"MEUCIQCA6SZ8CRKnKuvulhYgzZflU8GyAxgVUFviCNU5BDo9SgIgCofJkZlgumkMAVccJ5RMSjbAAxg2xZccw8tOI129XOQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7679},"main":"userconfig.js","type":"module","_from":"file:bobfrankston-userconfig-1.0.2.tgz","types":"./userconfig.d.ts","scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\userconfig\\bobfrankston-userconfig-1.0.2.tgz","_integrity":"sha512-eMiD9RQJ3dr+vo0vJEMbtLk7KdFXWhwC27wIAls+UAS2+Nmi27oFlb7HuX44MY7Z29UBNoWDmtD8pBwoMPQwkg==","repository":{"url":"git+https://github.com/BobFrankston/userconfig.git","type":"git"},"_npmVersion":"11.7.0","description":"Read/write user config from %USERPROFILE%\\.userconfig\\npm.json5","directories":{},"_nodeVersion":"25.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.2.1"},"_npmOperationalInternal":{"tmp":"tmp/userconfig_1.0.2_1771885328799_0.9848864134228654","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@bobfrankston/userconfig","version":"1.0.3","keywords":["config","userconfig","json5"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/userconfig@1.0.3","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/userconfig#readme","bugs":{"url":"https://github.com/BobFrankston/userconfig/issues"},"dist":{"shasum":"eda73e9de48bfb4e16d1f7ba83ac0ae74c05753f","tarball":"https://registry.npmjs.org/@bobfrankston/userconfig/-/userconfig-1.0.3.tgz","fileCount":4,"integrity":"sha512-8qQnfG55+eppjVcFv7tMDLIc+dEMfdE1BChRF5dfmdu6Q9lsh/6PLLJsOOIZaetcvFb2VTS3XqvOjxX09xziJg==","signatures":[{"sig":"MEQCIDmYuYrBTrOSYQ1cWixe5OwqenZfZG04RREL+se18cqSAiAaiIqNxM+hapexTBjdnxsamfJERo+MJt+jFfMlKS/2Yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7679},"main":"userconfig.js","type":"module","_from":"file:bobfrankston-userconfig-1.0.3.tgz","types":"./userconfig.d.ts","scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\userconfig\\bobfrankston-userconfig-1.0.3.tgz","_integrity":"sha512-8qQnfG55+eppjVcFv7tMDLIc+dEMfdE1BChRF5dfmdu6Q9lsh/6PLLJsOOIZaetcvFb2VTS3XqvOjxX09xziJg==","repository":{"url":"git+https://github.com/BobFrankston/userconfig.git","type":"git"},"_npmVersion":"11.7.0","description":"Read/write user config from %USERPROFILE%\\.userconfig\\npm.json5","directories":{},"_nodeVersion":"25.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.2.1"},"_npmOperationalInternal":{"tmp":"tmp/userconfig_1.0.3_1771885476506_0.41680845291983015","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@bobfrankston/userconfig","version":"1.0.4","keywords":["config","userconfig","json5"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/userconfig@1.0.4","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/userconfig#readme","bugs":{"url":"https://github.com/BobFrankston/userconfig/issues"},"dist":{"shasum":"f24a85b492fff736c085e29b2fcbed254873748d","tarball":"https://registry.npmjs.org/@bobfrankston/userconfig/-/userconfig-1.0.4.tgz","fileCount":5,"integrity":"sha512-R455vlM1VxkYaoYglRyAcddsznOQuLkOK0GiEWPYU3FR3qjrNKo4/lTPLhqlMEfwQAOJw37Mb/yGnmc3OM5e5w==","signatures":[{"sig":"MEQCIFXmrK5gFH/S3IwuP8KYM7mFDS86YaXsww0sYuikPPE9AiBzF9ltDqhPF+24OXf6pZ9njdYYTTdV0DjB7oiVqnc7UQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7577},"main":"userconfig.js","type":"module","_from":"file:bobfrankston-userconfig-1.0.4.tgz","types":"./userconfig.d.ts","scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"y:\\dev\\utils\\userconfig\\bobfrankston-userconfig-1.0.4.tgz","_integrity":"sha512-R455vlM1VxkYaoYglRyAcddsznOQuLkOK0GiEWPYU3FR3qjrNKo4/lTPLhqlMEfwQAOJw37Mb/yGnmc3OM5e5w==","repository":{"url":"git+https://github.com/BobFrankston/userconfig.git","type":"git"},"_npmVersion":"11.11.1","description":"Read/write user config from %USERPROFILE%\\.userconfig\\npm.json5","directories":{},"_nodeVersion":"25.8.0","dependencies":{"json5":"^2.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/userconfig_1.0.4_1773787499558_0.6154254053926898","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@bobfrankston/userconfig","version":"1.0.5","keywords":["config","userconfig","json5"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/userconfig@1.0.5","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/userconfig#readme","bugs":{"url":"https://github.com/BobFrankston/userconfig/issues"},"dist":{"shasum":"d4f4b833d08244a92b8a27a8f803c3a1d713aaee","tarball":"https://registry.npmjs.org/@bobfrankston/userconfig/-/userconfig-1.0.5.tgz","fileCount":4,"integrity":"sha512-CZytyo3ohAetiYwYKnBGgShrVT7bdqZcZfOQZgwGrlx+fwFYCCq1PZWTSvNZVdajOYNFvN1eLwk4F98+iKYl1g==","signatures":[{"sig":"MEQCIAycmm0VpbqfFR1HrHeB3uwu/rIbucQ5HF8C3yvMgya7AiAn3aF2txyXA6qUC5/4Qa91ogdLpu9A5YZD6+JeqrQ5yA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7476},"main":"userconfig.js","type":"module","_from":"file:bobfrankston-userconfig-1.0.5.tgz","types":"./userconfig.d.ts","scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\userconfig\\bobfrankston-userconfig-1.0.5.tgz","_integrity":"sha512-CZytyo3ohAetiYwYKnBGgShrVT7bdqZcZfOQZgwGrlx+fwFYCCq1PZWTSvNZVdajOYNFvN1eLwk4F98+iKYl1g==","repository":{"url":"git+https://github.com/BobFrankston/userconfig.git","type":"git"},"_npmVersion":"11.11.1","description":"Read/write user config from %USERPROFILE%\\.userconfig\\npm.json5","directories":{},"_nodeVersion":"25.8.2","dependencies":{"json5":"^2.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/userconfig_1.0.5_1775007629217_0.56754410872494","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@bobfrankston/userconfig","version":"1.0.6","keywords":["config","userconfig","json5"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/userconfig@1.0.6","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/userconfig#readme","bugs":{"url":"https://github.com/BobFrankston/userconfig/issues"},"dist":{"shasum":"27d6e0fcf6fe9c8acd3478b8cfd8d87bffd2e481","tarball":"https://registry.npmjs.org/@bobfrankston/userconfig/-/userconfig-1.0.6.tgz","fileCount":4,"integrity":"sha512-92797rQY/Mv1C0RXIPYPDIXF8jR11vEpXHneOoLD8xXD7x8OIZF+4I3raiOG1h9NRcupLaR7wrs6JyQM1Wdy0A==","signatures":[{"sig":"MEYCIQDJ53mIMxyuwcHa1SXsq9uGn/E0EFopqK5UjOLx6wr3hAIhAP9gTwQ4ZQVsW37lhmdfXWhJF8DxP0x5nuxR5YnLl9tS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7476},"main":"userconfig.js","type":"module","_from":"file:bobfrankston-userconfig-1.0.6.tgz","types":"./userconfig.d.ts","scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\userconfig\\bobfrankston-userconfig-1.0.6.tgz","_integrity":"sha512-92797rQY/Mv1C0RXIPYPDIXF8jR11vEpXHneOoLD8xXD7x8OIZF+4I3raiOG1h9NRcupLaR7wrs6JyQM1Wdy0A==","repository":{"url":"git+https://github.com/BobFrankston/userconfig.git","type":"git"},"_npmVersion":"11.11.1","description":"Read/write user config from %USERPROFILE%\\.userconfig\\npm.json5","directories":{},"_nodeVersion":"25.8.2","dependencies":{"json5":"^2.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/userconfig_1.0.6_1775259993853_0.004945396889662446","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@bobfrankston/userconfig","version":"1.0.7","keywords":["config","userconfig","json5"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/userconfig@1.0.7","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/userconfig#readme","bugs":{"url":"https://github.com/BobFrankston/userconfig/issues"},"dist":{"shasum":"c7cf6474df8991e448e6816153bbde6212e154a7","tarball":"https://registry.npmjs.org/@bobfrankston/userconfig/-/userconfig-1.0.7.tgz","fileCount":4,"integrity":"sha512-w2bpCs4MignR3nku9DXFVUoacE+0RDvPoQJ31XOs3RS65cO2NSy1r3z6MyOYLX4xYWy5DejLb3cV+CVrrUPRmQ==","signatures":[{"sig":"MEQCIDgqlNLfMAPqYqLuyHV2khkUPVrfpTDanl6fkydgiPGiAiAOeV7yiJ6r3jtzKF9Xa+/SigEbxDC8SIqp3yJTJvjpJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7476},"main":"userconfig.js","type":"module","_from":"file:bobfrankston-userconfig-1.0.7.tgz","types":"./userconfig.d.ts","scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\userconfig\\bobfrankston-userconfig-1.0.7.tgz","_integrity":"sha512-w2bpCs4MignR3nku9DXFVUoacE+0RDvPoQJ31XOs3RS65cO2NSy1r3z6MyOYLX4xYWy5DejLb3cV+CVrrUPRmQ==","repository":{"url":"git+https://github.com/BobFrankston/userconfig.git","type":"git"},"_npmVersion":"11.11.1","description":"Read/write user config from %USERPROFILE%\\.userconfig\\npm.json5","directories":{},"_nodeVersion":"25.8.2","dependencies":{"json5":"^2.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/userconfig_1.0.7_1775848074497_0.20617483097790767","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@bobfrankston/userconfig","version":"1.0.8","keywords":["config","userconfig","json5"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/userconfig@1.0.8","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/userconfig#readme","bugs":{"url":"https://github.com/BobFrankston/userconfig/issues"},"dist":{"shasum":"100193d5a4f7ad548f4d1257d5cc0c1c6b0186fc","tarball":"https://registry.npmjs.org/@bobfrankston/userconfig/-/userconfig-1.0.8.tgz","fileCount":4,"integrity":"sha512-6ZbRk3Ox1lm3LFjWB0cZAmC6dSLwaJTlH0Eh8IfPWzjkcsj4YJnIwsOkPteLLjuktfba91vFGO1eX0JczlpMxA==","signatures":[{"sig":"MEUCIQDLnrxC3fg/f8F6ebcgpY865kXXbmPWqkjjAQkip6JMBwIgB6C00JTExkF7Opjldi+e2mkemPE/m7LRjqzBeZnVJUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7476},"main":"userconfig.js","type":"module","_from":"file:bobfrankston-userconfig-1.0.8.tgz","types":"./userconfig.d.ts","scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\userconfig\\bobfrankston-userconfig-1.0.8.tgz","_integrity":"sha512-6ZbRk3Ox1lm3LFjWB0cZAmC6dSLwaJTlH0Eh8IfPWzjkcsj4YJnIwsOkPteLLjuktfba91vFGO1eX0JczlpMxA==","repository":{"url":"git+https://github.com/BobFrankston/userconfig.git","type":"git"},"_npmVersion":"11.12.1","description":"Read/write user config from %USERPROFILE%\\.userconfig\\npm.json5","directories":{},"_nodeVersion":"25.9.0","dependencies":{"json5":"^2.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/userconfig_1.0.8_1777246441241_0.2891256661674855","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@bobfrankston/userconfig","version":"1.0.9","keywords":["config","userconfig","json5"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/userconfig@1.0.9","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/userconfig#readme","bugs":{"url":"https://github.com/BobFrankston/userconfig/issues"},"dist":{"shasum":"c6bff3f2a83fcbd929925e5ea1d17f7f12030418","tarball":"https://registry.npmjs.org/@bobfrankston/userconfig/-/userconfig-1.0.9.tgz","fileCount":4,"integrity":"sha512-MJVdLElXGRaRzupu6IvVMuB9qYZrwQTOcdRkhPEhytBPRw4D3LJAkQ7u/KiR9A90A6e1iL4ETimMNgXc1qArAg==","signatures":[{"sig":"MEUCIQDK61FHVaIPerDJEzU/2HZ2O9GQIHOYEpR69Cpl56O4KgIgbjnipp8XwYrQVIFdb0UdAMPTJ6Y5Jd3wRhqT4vas93I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7476},"main":"userconfig.js","type":"module","_from":"file:bobfrankston-userconfig-1.0.9.tgz","types":"./userconfig.d.ts","scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\userconfig\\bobfrankston-userconfig-1.0.9.tgz","_integrity":"sha512-MJVdLElXGRaRzupu6IvVMuB9qYZrwQTOcdRkhPEhytBPRw4D3LJAkQ7u/KiR9A90A6e1iL4ETimMNgXc1qArAg==","repository":{"url":"git+https://github.com/BobFrankston/userconfig.git","type":"git"},"_npmVersion":"11.13.0","description":"Read/write user config from %USERPROFILE%\\.userconfig\\npm.json5","directories":{},"_nodeVersion":"25.9.0","dependencies":{"json5":"^2.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/userconfig_1.0.9_1777928981392_0.8240824934737532","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@bobfrankston/userconfig","version":"1.0.10","keywords":["config","userconfig","json5"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/userconfig@1.0.10","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/userconfig#readme","bugs":{"url":"https://github.com/BobFrankston/userconfig/issues"},"dist":{"shasum":"c935fb07f5dfc317dd9b5133007f83e1e30b840a","tarball":"https://registry.npmjs.org/@bobfrankston/userconfig/-/userconfig-1.0.10.tgz","fileCount":4,"integrity":"sha512-nc0eaPBl75QpUyl3KzaRKpR3Z5wc758m6vz06B4vc9LDRCy11GdiM3RuRmPKu3vGg2ixOlXHmNsuBhN5KfASIQ==","signatures":[{"sig":"MEUCIQCDhQOaDGhKvWXlhu1CV67DsNgtzpD2mJBUFAQj/XdJbQIgdb9RqP+0LLKsp6XAl5Npv8lZBdfiWl88NRRRmF+qynI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7477},"main":"userconfig.js","type":"module","_from":"file:bobfrankston-userconfig-1.0.10.tgz","types":"./userconfig.d.ts","scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\userconfig\\bobfrankston-userconfig-1.0.10.tgz","_integrity":"sha512-nc0eaPBl75QpUyl3KzaRKpR3Z5wc758m6vz06B4vc9LDRCy11GdiM3RuRmPKu3vGg2ixOlXHmNsuBhN5KfASIQ==","repository":{"url":"git+https://github.com/BobFrankston/userconfig.git","type":"git"},"_npmVersion":"11.14.1","description":"Read/write user config from %USERPROFILE%\\.userconfig\\npm.json5","directories":{},"_nodeVersion":"26.1.0","dependencies":{"json5":"^2.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/userconfig_1.0.10_1780970315708_0.08970358469053363","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@bobfrankston/userconfig","version":"1.0.11","keywords":["config","userconfig","json5"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/userconfig@1.0.11","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/userconfig#readme","bugs":{"url":"https://github.com/BobFrankston/userconfig/issues"},"dist":{"shasum":"f41c6d1876a0b69c0e5d593702ed6525b8c54816","tarball":"https://registry.npmjs.org/@bobfrankston/userconfig/-/userconfig-1.0.11.tgz","fileCount":4,"integrity":"sha512-yEcOuAjOMtT6bfYQn0e3PxTuTBnyDbB9Bw/GzsNeGV8RUtatCa3uvEzu5WYNIZIIAUxau4MVWgKtlqrwwdJ6QQ==","signatures":[{"sig":"MEUCICQ54H4/64GpbjMxknL8LYOaKDKkYMLrYnpQ1AtWoKfGAiEA1c4uRKNA5R1NVSXQfNa5OofQRstg7su3Z2g1NRgMNBs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8114},"main":"userconfig.js","type":"module","_from":"file:bobfrankston-userconfig-1.0.11.tgz","types":"./userconfig.d.ts","scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\userconfig\\bobfrankston-userconfig-1.0.11.tgz","_integrity":"sha512-yEcOuAjOMtT6bfYQn0e3PxTuTBnyDbB9Bw/GzsNeGV8RUtatCa3uvEzu5WYNIZIIAUxau4MVWgKtlqrwwdJ6QQ==","repository":{"url":"git+https://github.com/BobFrankston/userconfig.git","type":"git"},"_npmVersion":"11.17.0","description":"Read/write user config from %USERPROFILE%\\.userconfig\\npm.json5","directories":{},"_nodeVersion":"26.4.0","dependencies":{"json5":"^2.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/userconfig_1.0.11_1787425478951_0.9257732577852467","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@bobfrankston/userconfig","version":"1.0.12","keywords":["config","userconfig","json5"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/userconfig@1.0.12","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/userconfig#readme","bugs":{"url":"https://github.com/BobFrankston/userconfig/issues"},"dist":{"shasum":"fbc2dcfc8fb8113197e877ce821e4651aa49b68b","tarball":"https://registry.npmjs.org/@bobfrankston/userconfig/-/userconfig-1.0.12.tgz","fileCount":4,"integrity":"sha512-o55nxEp9Mo21dPwkv6ZzxphbZZ6HYO7VzBNmLRZjyZEDV4Rl4DiRSLU4dIiBfu9W5C7gH+RuuKgdAPUmmXaxEw==","signatures":[{"sig":"MEUCIQDqS3FPJzu9lEnj0jheNG0Y1wfZDf2LX4ATCU13kptZrgIgS5JPKPncoEah2u50b7zQF90JifdKIRKrJRuFPra/73k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8249},"main":"userconfig.js","type":"module","_from":"file:bobfrankston-userconfig-1.0.12.tgz","types":"./userconfig.d.ts","scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\userconfig\\bobfrankston-userconfig-1.0.12.tgz","_integrity":"sha512-o55nxEp9Mo21dPwkv6ZzxphbZZ6HYO7VzBNmLRZjyZEDV4Rl4DiRSLU4dIiBfu9W5C7gH+RuuKgdAPUmmXaxEw==","repository":{"url":"git+https://github.com/BobFrankston/userconfig.git","type":"git"},"_npmVersion":"11.17.0","description":"Read/write user config from %USERPROFILE%\\.userconfig\\npm.json5","directories":{},"_nodeVersion":"26.4.0","dependencies":{"json5":"^2.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/userconfig_1.0.12_1788826505153_0.8192636383657901","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@bobfrankston/userconfig","version":"1.0.13","keywords":["config","userconfig","json5"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/userconfig@1.0.13","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/userconfig#readme","bugs":{"url":"https://github.com/BobFrankston/userconfig/issues"},"dist":{"shasum":"fb9f88ced63640e7fb82ba38663dd9d5721e7c96","tarball":"https://registry.npmjs.org/@bobfrankston/userconfig/-/userconfig-1.0.13.tgz","fileCount":4,"integrity":"sha512-nL4jkUB5iYyg8PK+2KoKM9VphtKGmYW7GEA8mjESpsS0jogrzJpNsPen9RrLkgx/TZQg8KqcMg/PgnGPIvVaSg==","signatures":[{"sig":"MEYCIQCzt/m/zH2TP4QNCmyUj0+tjZsr1KNg+/6LKRs6CzHQYAIhANQSffXxnWG4A9k4mf/lFMT3dVib4zJ+5ppFfuK/1n6d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8114},"main":"userconfig.js","type":"module","_from":"file:bobfrankston-userconfig-1.0.13.tgz","types":"./userconfig.d.ts","scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\userconfig\\bobfrankston-userconfig-1.0.13.tgz","_integrity":"sha512-nL4jkUB5iYyg8PK+2KoKM9VphtKGmYW7GEA8mjESpsS0jogrzJpNsPen9RrLkgx/TZQg8KqcMg/PgnGPIvVaSg==","repository":{"url":"git+https://github.com/BobFrankston/userconfig.git","type":"git"},"_npmVersion":"11.17.0","description":"Read/write user config from %USERPROFILE%\\.userconfig\\npm.json5","directories":{},"_nodeVersion":"26.4.0","dependencies":{"json5":"^2.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/userconfig_1.0.13_1788826800040_0.05199586826220237","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@bobfrankston/userconfig","version":"1.0.14","keywords":["config","userconfig","json5"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/userconfig@1.0.14","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/userconfig#readme","bugs":{"url":"https://github.com/BobFrankston/userconfig/issues"},"dist":{"shasum":"aed9041a4dec25d94d8df72605d08a3f6e32e524","tarball":"https://registry.npmjs.org/@bobfrankston/userconfig/-/userconfig-1.0.14.tgz","fileCount":4,"integrity":"sha512-ABYbbIUYrEA0H+qHIHLv0do0xobinyZ1T+MbWYXa9REDzyikrKYubb3sj+i4jkfsdmAWvoYenh2zSfAesoL+hw==","signatures":[{"sig":"MEUCIQDLAIIldYaosdKkzzguZXDEN9e02zWQZP9/djIELJ67igIgHInhuP1Q46oONw43uKaW4JAXH/4IqLCC/s3MJTbvwaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13052},"main":"userconfig.js","type":"module","_from":"file:bobfrankston-userconfig-1.0.14.tgz","types":"./userconfig.d.ts","scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\utils\\userconfig\\bobfrankston-userconfig-1.0.14.tgz","_integrity":"sha512-ABYbbIUYrEA0H+qHIHLv0do0xobinyZ1T+MbWYXa9REDzyikrKYubb3sj+i4jkfsdmAWvoYenh2zSfAesoL+hw==","repository":{"url":"git+https://github.com/BobFrankston/userconfig.git","type":"git"},"_npmVersion":"11.17.0","description":"Read/write user config from %USERPROFILE%\\.userconfig\\npm.json5","directories":{},"_nodeVersion":"26.4.0","dependencies":{"json5":"^2.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/userconfig_1.0.14_1789269539293_0.6586692316559362","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@bobfrankston/userconfig","version":"1.0.15","description":"Read/write user config from %USERPROFILE%\\.userconfig\\npm.json5","main":"userconfig.js","type":"module","scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"keywords":["config","userconfig","json5"],"author":{"name":"Bob Frankston"},"license":"MIT","devDependencies":{"@types/node":"^25.3.0"},"repository":{"type":"git","url":"git+https://github.com/BobFrankston/userconfig.git"},"publishConfig":{"access":"public"},"dependencies":{"json5":"^2.2.3"},"types":"./userconfig.d.ts","_id":"@bobfrankston/userconfig@1.0.15","bugs":{"url":"https://github.com/BobFrankston/userconfig/issues"},"homepage":"https://github.com/BobFrankston/userconfig#readme","_integrity":"sha512-5grUwSqMd5TQlTO8a3JRsAJvN6dk6ZfM2rCKCvnNtHIteQBzXBE8+41wOCHxmlMEo6SaM0aJSvqOJE6VozwvQw==","_resolved":"Y:\\dev\\utils\\userconfig\\bobfrankston-userconfig-1.0.15.tgz","_from":"file:bobfrankston-userconfig-1.0.15.tgz","_nodeVersion":"26.4.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-5grUwSqMd5TQlTO8a3JRsAJvN6dk6ZfM2rCKCvnNtHIteQBzXBE8+41wOCHxmlMEo6SaM0aJSvqOJE6VozwvQw==","shasum":"8ac54d128cef8c518d47bb3ca65f551511224619","tarball":"https://registry.npmjs.org/@bobfrankston/userconfig/-/userconfig-1.0.15.tgz","fileCount":4,"unpackedSize":15376,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIF7EzjZc1VaNx9v2Q/SSpe09sqo6tGEmTDvpRhZoF9sjAiBNudECj75UoixogYhDBYDxhv3Mg1ajXBknhwvdSyGWcQ=="}]},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"directories":{},"maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/userconfig_1.0.15_1789269773319_0.613386859323608"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-23T21:49:13.488Z","modified":"2026-09-13T03:22:53.609Z","1.0.1":"2026-02-23T21:49:13.732Z","1.0.2":"2026-02-23T22:22:08.973Z","1.0.3":"2026-02-23T22:24:36.649Z","1.0.4":"2026-03-17T22:44:59.701Z","1.0.5":"2026-04-01T01:40:29.360Z","1.0.6":"2026-04-03T23:46:34.158Z","1.0.7":"2026-04-10T19:07:54.671Z","1.0.8":"2026-04-26T23:34:01.371Z","1.0.9":"2026-05-04T21:09:41.535Z","1.0.10":"2026-06-09T01:58:35.855Z","1.0.11":"2026-08-22T19:04:39.100Z","1.0.12":"2026-09-08T00:15:05.288Z","1.0.13":"2026-09-08T00:20:00.181Z","1.0.14":"2026-09-13T03:18:59.428Z","1.0.15":"2026-09-13T03:22:53.459Z"},"bugs":{"url":"https://github.com/BobFrankston/userconfig/issues"},"author":{"name":"Bob Frankston"},"license":"MIT","homepage":"https://github.com/BobFrankston/userconfig#readme","keywords":["config","userconfig","json5"],"repository":{"type":"git","url":"git+https://github.com/BobFrankston/userconfig.git"},"description":"Read/write user config from %USERPROFILE%\\.userconfig\\npm.json5","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"readme":"# @bobfrankston/userconfig\n\nSingle source of truth for user-level npm/dev configuration at `%USERPROFILE%\\.userconfig\\npm.json5`.\n\n## Critical Path Rule\n\nDo not duplicate, infer, or reconstruct the user config directory path in consuming tools. The only supported way for code outside this package to get the user config directory or config file path is through the `@bobfrankston/userconfig` API (`configDir`, `configPath`, or a future exported helper).\n\nThe physical path shown in this README describes the current implementation. It is not permission for applications to hardcode `%USERPROFILE%\\.userconfig`, `os.homedir()`, `$HOME`, or any equivalent. Path policy belongs here so it can be changed in one place.\n\nUsed by `@bobfrankston/npmglobalize`, `@bobfrankston/reloc`, and other tools.\n\nPlanned changes are listed in [TODO.md](TODO.md).\n\n## Install\n\n```bash\nnpm install @bobfrankston/userconfig\n```\n\n## Config file\n\n`npm.json5` has two kinds of entries:\n\n- **Common fields** — shared across tools (scope, npmVisibility)\n- **App sections** — tool-specific settings (reloc, etc.)\n\n```json5\n{\n  // ─── Common fields ───\n  scope: \"@bobfrankston\",       // npm scope for publishing\n  npmVisibility: \"public\",      // default publish visibility: \"public\" or \"private\"\n\n  // ─── App-specific sections ───\n  reloc: {\n    dirs: [\"y:\\\\dev\\\\homecontrol\", \"y:\\\\dev\\\\projects\"],\n  },\n}\n```\n\n### Common fields\n\n| Field | Type | Description |\n|---|---|---|\n| `scope` | string | npm scope, e.g. `\"@bobfrankston\"` |\n| `npmVisibility` | `\"public\"` \\| `\"private\"` | Default publish visibility |\n\n### App sections\n\n| Section | Tool | Fields |\n|---|---|---|\n| `reloc` | @bobfrankston/reloc | `dirs` — default scan directories |\n\nNew tools can add their own sections without conflicting.\n\n## Usage\n\n```typescript\nimport { readConfig, getSection, setSection, configPath } from '@bobfrankston/userconfig';\n\n// Read common fields\nconst config = readConfig();\nconsole.log(config.scope);          // \"@bobfrankston\"\nconsole.log(config.npmVisibility);  // \"public\"\n\n// Read an app section\nconst reloc = getSection('reloc');\nconsole.log(reloc?.dirs);\n\n// Write an app section (preserves everything else)\nsetSection('reloc', { dirs: ['y:\\\\dev\\\\homecontrol'] });\n\n// Low-level: read any JSON5-ish file\nimport { readJson5, writeJson5 } from '@bobfrankston/userconfig';\nconst data = readJson5('/path/to/file.json5');\n```\n\n## API\n\n| Export | Description |\n|---|---|\n| `configDir` | `%USERPROFILE%\\.userconfig` |\n| `configPath` | `%USERPROFILE%\\.userconfig\\npm.json5` |\n| `readConfig()` | Read the full config (typed as `NpmConfig`) |\n| `writeConfig(data)` | Write the full config |\n| `getSection(name)` | Get a top-level key |\n| `setSection(name, value)` | Set a top-level key (preserves others) |\n| `readJson5(file)` | Parse any JSON5-ish file |\n| `writeJson5(file, data)` | Write JSON to a file (creates dirs) |\n| `pwordsPath` | `%USERPROFILE%\\.userconfig\\pwords.txt` — stored credentials |\n| `getCredential(key)` | Look up a stored credential; `{ user, pass }` or `null` |\n| `addCredential(key, user, pass)` | Append a credential line, creating the file (0600) if needed |\n\n## Stored credentials — `pwords.txt`\n\n`getCredential(key)` reads `%USERPROFILE%\\.userconfig\\pwords.txt` so consumers never\nneed to know its format. One credential per line, `key:user:password`, with `,` or\nwhitespace also accepted as the separator; everything after the second separator is the\npassword. `#` starts a comment. Keys match case-insensitively.\n\n```typescript\nimport { getCredential } from '@bobfrankston/userconfig';\n\nconst cred = getCredential('homeassistant-smb');   // { user, pass } or null\nif (!cred) { /* fall back and say so */ }\n```\n\nFails gracefully: a missing file or unknown key returns `null`. A file that exists but\ncannot be read throws, naming the file.\n\n`addCredential(key, user, pass)` appends a line (creating the directory 0700 and the file 0600\nwith a comment header when absent) and throws naming the file if the write fails.\n\n(Added 2026-09-12 by Claude Code. Consumers: `@bobfrankston/sites` (cert renewer),\n`@bobfrankston/setupkeys`, `@bobfrankston/mountsmb` — none of them parse the file themselves.)\n\n## Types\n\n```typescript\ninterface NpmCommonConfig {\n    scope?: string;\n    npmVisibility?: 'public' | 'private';\n}\n\ninterface RelocConfig {\n    dirs?: string[];\n}\n\ninterface NpmConfig extends NpmCommonConfig {\n    reloc?: RelocConfig;\n    [key: string]: any;  // other app sections\n}\n```\n","readmeFilename":"README.md"}