{"_id":"apperror_js","_rev":"27-431600459514f677572928c74da03835","name":"apperror_js","dist-tags":{"latest":"2.4.8"},"versions":{"1.0.0":{"name":"apperror_js","version":"1.0.0","description":"Make logging and reporting of errors easier, more informative, and more consistent.","main":"index.mjs","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"stack-trace":"file:../node-stack-trace","serialize-anything":"^1.1.10"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"023d400b34e12f7b96599c4f228354df53923a1b","_id":"apperror_js@1.0.0","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-G2DZu63TVj9fW0+ggZYdKt6mwMQRjSuR3KbLhfrPdkl3T/kW+U9RyqI9Bpi4SGdzKbtr1sDsT12uyIH3iR+5tw==","shasum":"51bf7e01ef6903497729099f17219cfec608a4af","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-1.0.0.tgz","fileCount":5,"unpackedSize":8520,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaGgqQUwVTjJ8uV7G9D2PYgXqAAVuD6/w6fwyK1dfvbgIhAPxT34DEXKTkwVgwTmEEcfYZHV22SYm0O9Ip2cmdbbJv"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJis5OnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp0+Q//VlXIfqFwsJKGR2XdkT5eST57EFn6b2WeFnwcf8MtUcXLTLTB\r\nKYmtPVCyiNEZBZ46eIrNmeVrizzA1fOsTUXyI5o5nmRQ6OUJbgMZPsl6sl7Z\r\nOrwjJfB/jm6h7SqB71MImzDL8ceme8/y4UDf9lMPf6T3FRgFzBy5fcK3BPBx\r\nwfUUPPuefCqAM0PTN2uTkNmClf/YvdCtG+TSrvJsLlA2K0o44OutLZZHLmi+\r\nn4Ohv+7nkuEv+Zmz0NPOKUVF5hN6Not0FJHHwa3SRaBO8fPinbXb3gQio1bN\r\naJgXFeJM4Vp3evWTzD3bFBbOJaL82okRxm6Z1H1pCGW9IVUXAt7mqn8RzldM\r\nWpRK3XwZB3E4rFkmlx/FTVKOSfDD1E/wRsyiq/N+OASXfQmmwNEaqmTCEy69\r\nSMa0rSt6hdiX2N9kPD4MQLQLv9IJYCXZYsQtBf6QYqCghaYRlabZRUgsD3jR\r\nveSzWP0IUxSTqTnEr/AFOyW6/zDdGP1dWbJVbrC+Y9WMo55T82Z75D+11OOw\r\nWFAvhgam3A6IBlLPlfP+6UJLJ2MD5EgTaDr5x4U7jXi0KiIdRLJsPqto6YSQ\r\noHdW97E2fQ03URbNM6Z+e8IevAyFL0pFAlLa939D7JP4g8T54xAEij13KbBi\r\nqe0OfZ5YbuYd8u/KGAvETqg8tDcmBaHb7vE=\r\n=eedB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_1.0.0_1655935911397_0.9087040690841213"},"_hasShrinkwrap":false},"1.1.0":{"name":"apperror_js","version":"1.1.0","description":"Make logging and reporting of errors easier, more informative, and more consistent.","main":"index.mjs","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"lodash-es":"^4.17.21","stack-trace":"file:../node-stack-trace","serialize-anything":"^1.1.10"},"devDependencies":{"mocha":"^10.0.0"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"06e2d27f062fc29c377db4487cdf8e1a255bf704","_id":"apperror_js@1.1.0","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-MYQ0PNfuFqqJ0wftqh4f/oyy5KYfT5qC3IdcTW9GWhIuEOm4+GL6KSGq73AD+VvLVNRSS+DtPmdyx6w/YbssWA==","shasum":"ce37d38a43c35f5daa9e476e9b610dbec044eb05","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-1.1.0.tgz","fileCount":6,"unpackedSize":16324,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHyxjnlQO0r1lYoCAAgAMM8VbEUWzRCJ7pbqrdjbZTxQAiEA98Z8uKmenyqRtGv2Ksxuw87vAgPkG9+DNtpKhy3y1q4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitKw1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoEUQ/9HNHcKwTA55i5QNRBDL9oSwX2Xw5/vd2OZ6f8K4K8mFWbHNRA\r\n17EaSQsZzAjpf7aJH1iDEtWq4uxG+BaI6pelTO4nFFxWmqZHv6j4feAVOIDk\r\nLDSLFBeBlSUPDprmlROrKIZ7L39CIUHk1DvsYEQzO2/SCsTJoa3MzDOWwjXh\r\nGKu9uHSQPj5a4u4Ah3HZeM8/hqoflmNRSn5QAEjwbKTP8eYgjxaEPuI8Erxz\r\ncSqK+4qR1YtLkTLe7t8GE9cse/q5wWXk4LdgHqeCpGeOr0i96yGO9TyvuWDa\r\n+OeoZuC7Mtnd73ThI/gUN30MiobqJMRBBjFqrt5mk//DVoLllA1cGH+bXtxZ\r\ndj/mM4/o9szEYPWUntmU51VUjB8YbCs7EWSsMmTc9DkzOg3HnZppQU37h3Cc\r\nGA6+RCRc46nGzt3ic+HyFvh4iT+c5/+xEDmJQ/8sn8DHWRrMFQOW/Elu1/ae\r\nxmCpYaZpyxEFNbAT5kNRiVtWJCT+/qAHJXiLncB0HqBufOr6ziQ5OsTcGgHG\r\nj2piTlktA8BNDSBxcyPi1C8MG+ClH3DaLFwM2oaM030nJumccfs7TUTuiqui\r\nmdOvFiLMiFbJiQtwKpxK108R4o8nt23vPHsgd8JPQahsyd7M0HePeyeYUCIc\r\nuFtFVs3bCHXV3TEBrrSnCOq+e0TYCyOMzT4=\r\n=NpGE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_1.1.0_1656007733571_0.18906361966488006"},"_hasShrinkwrap":false},"1.2.0":{"name":"apperror_js","version":"1.2.0","description":"Make logging and reporting of errors easier, more informative, and more consistent.","main":"index.mjs","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"lodash-es":"^4.17.21","stack-trace-anynode":"^1.0","serialize-anything":"^1.1.10"},"devDependencies":{"mocha":"^10.0.0"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"7eddbb077a954467059f0b9fa92218a23fcc4642","_id":"apperror_js@1.2.0","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-cxM/2QpNsuW+v+YFxSpRBD3nzl/eSwxRD4nJ1znRBGLlvkOcdGLHHTtvwaMcDno7Sb9UAQdgv9yo4BUyVm/pgw==","shasum":"557193bce54a9e4f18602d0f8ccb2df75b74fb2e","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-1.2.0.tgz","fileCount":6,"unpackedSize":21569,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDlk62u1iMeXbrhjZw1RqYOP17EY1cu6EXym0JEaDGxKAiB79dPOBqPt8m3mH8e46bimlyItPqL5s8hvjAl2yiQP4w=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitNiTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmogBQ/+OKOjNPGkooaEuUCRv/756NJrodrKkNpmom7qZftLucy/w0ch\r\numT7yOzXDWjTsEsd/PLGn1suHTxLVQjDZDAQeWMZEFJ5d72RsG1qyH2uQQUm\r\nU8vkCjbk5ZBsZZkxKmcwih97Qx4R0j4Lzih9vpQaHeRDNYE9Y/xSDSw5HPfB\r\noDFhMZQ6BtVg+tjC//4zd/sAQF8n7MO2/peZmhCC2kbw+kYvSfSzNegMeG7K\r\np7kwaytEkCIQ+qX/hPSf6+OYD0UbQbG4Q6pZ1yzGa6dMQTTy5t/zReJ1bRQ5\r\nXQZMl0VxN//sUXOof6hVDG60MbpK18DxSGqdLykgy52gpP7oDpAzy1A8e0S0\r\nQo1r+NL8eIiCnDIYLyXYN25/+gfbR/EO7rqeiPZHHYalhMn6yvq7Al7qMpkm\r\np0wYqOyMYXKAWf0Mg2DYv0ZbiLw5XOkeTjAJTkLIEo2/upkv1whv2qh3G/Gg\r\n6npeFHMgZ+qyzA6Na+Q2qpRABqRD1guLO4KsZeVUsovbeA+OaFGa7VfT8KhC\r\nSdKnw9nQveGtIbc0AewMmunoglyjtGZMzrx3nlos5wuXyP21aEUI5A5dPyGP\r\nwENwg01ncJzRFkSzQT7QfZOIsqnUmBRhyUvMKzEYCt6zoKOcJfEq1k8WhkRp\r\nDeQPbiq1047Kkihl4UDA9WyYj3juI612bqI=\r\n=0K3u\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_1.2.0_1656019091638_0.3461264553798711"},"_hasShrinkwrap":false},"1.2.1":{"name":"apperror_js","version":"1.2.1","description":"Make logging and reporting of errors easier, more informative, and more consistent.","main":"index.mjs","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"lodash-es":"^4.17.21","stack-trace-anynode":"^1.0.0-pre3","serialize-anything":"^1.1.10"},"devDependencies":{"mocha":"^10.0.0"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"b6e26141c03410cafc8a7ec166e7416b4f3080a1","_id":"apperror_js@1.2.1","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-XnxdTm3IFsmvC62eUq/Twi/Asyz+QLLC81TV+q4ChFrnPMQ6alz/Ng4nCRKsXkY4nQSablp4/Ck9XKm6/QEWbw==","shasum":"3cce7078549222afb229f129aa19c65f884845c9","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-1.2.1.tgz","fileCount":6,"unpackedSize":21584,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3SNHet9tFrKGMhQdEwxjqttLxquvv+SwkJKo0eTZ2OQIhAJN2Th+DeH2ihrDUQ8xCoa7VcftJE5xQnkP7LMwJjz9I"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitNqhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr0rBAAgqS1PiAT8DHYhnMd5huCSrXadBcd4YEFHt4GWGbA4tWLitIz\r\n1EKsRMSIHIJmU7mYCayknWROPdHlexSwk4RbskyintfE/xpGxwJ1Ulb6iOD5\r\nbDjvDg9L8kXIHmoL2oONg34H31nDTsGSOOXM5EwaZ0TbFLCbJEuaBsMyynQf\r\nZetx3r3xE/tnOJ86I//XDiCrC2dUQ/ApLgADb1ex7ab9KSiQGq7Dt7PuyXku\r\n8FrSBwDheBbiI73lwbb4y5U0SEAxnZF/Gek16kFXTVZ3h1FVmrCfENfGKfvc\r\n5Y7W/F1GRd/O2Eof/33FIr/RUbi6bw3TERNJHmXS9EHPt7i1WTKtzEsILkpg\r\nCv7lm6wqjBIV/TuqzhXj1xeAvi5arUacxUdtnrW8gtlCvbqQoxJ59MnHaBoz\r\nfFdrpYVXscyE9SNH6mg5NMhHhyxvul+xgoI/hKWL2UNBC8fZvsLGUE02IQq3\r\ngRsIlGPyMWLb+3TsbPdaHyYmxFdCiwRiWHIXRJP+lIv4riVv4Q1yjGpiNVUp\r\nHvSS0Lqs79Ms3s3l2+GxhdqdGAx1VNEghEBVxgcXDasrhgfHb9CxfKSfl9Vh\r\nhjN3QgQMzuawnsYhjtyG1FCk+mpkjTbeJNSRDzIEeT+G2sb83mDpNl5RSAWq\r\nsgRCjZbNG4hQ2AWv/r8jHzG/DQG7v5F5l1Y=\r\n=Jdrb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_1.2.1_1656019616926_0.18400125730304717"},"_hasShrinkwrap":false},"1.3.0":{"name":"apperror_js","version":"1.3.0","description":"Make logging and reporting of errors easier, more informative, and more consistent.","main":"index.mjs","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"lodash-es":"^4.17.21","stack-trace-anynode":"^1.0.0-pre3","serialize-anything":"^1.1.10"},"devDependencies":{"mocha":"^10.0.0"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"0c602ee370c5daa7d148971fe0e69f5271e33fce","_id":"apperror_js@1.3.0","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-uHKZ2Iybaa8vKbZTMPtG7XCLrtUuFaijT1l7s0uA4v/FjbNCvMZvCDo63pz1lXBHbpy13AECJ4pQ4OYBOI4JJQ==","shasum":"a69aa87814bef9174b912b33daa3cdbeb4e1dfe7","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-1.3.0.tgz","fileCount":6,"unpackedSize":22468,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDNNYgrvzW/HZq2tFVO3rY76Cq6/gnI66iBo7uixf2EmAiEA/UZfsWXFBjGr7pmv238PvEOWtTp1jR3N2z4lWZxiIjs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiulV9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr2ShAAjou8WOV461uJO6Jyzy8hAuoKRZ9l9jZ32UoDIS3CEY/sGGy6\r\nMUubKuO9TiRQ04EABDysb76VbpczfeczZn4wwPDHRSZQRQaBwnNAjxWnzJLp\r\n3+QzG5kWaklBfPDfZVO0IgP5IqRbrQ/vSQh+gocrDQMdf2PKhFR5SAck9xLD\r\nOOWwfL7AKtieiVDc5W5SYJYkhkaxScrn0f9uYD40HGVfAn/1IMj8uMASDfTp\r\nCiScSQ/czLyS2Hpse7/jSJPAhUO3bBCv2mg0AFyX0pgkEhmHSI0qEYI1rfLS\r\nyohApPEU4RoXFWTdO6BdvVf5/D2VeWbvBdSGdVrdTFUokGK3ool1ODph8AZp\r\nNOkafL11WcbzEV3opb5Oqq/c3tQtlYGJy4KJER61QZgp6oQOqZCl+kXN1mOd\r\nkIdveWPNd/77g0eYOUss5GYzj3GGwCvMU5ID3wnRbkUFkuMURJQ4iBV3ERH4\r\nhFDYaJchXJAVK0Pyl6ITgXcHi1BwRYZCHJkkVWyWrTEfVCdlB3JlwyxfitOd\r\nlrONe8SqcMRQIPWrS0FBRXyG2MGgbz9cm81H9lfrX6vCFzX23YqRfWJ7HWNN\r\n1VSbo/ICfvKu1wx3yDYNtNgg5KLdOFPoBRecP+fFw5ZdJmfUBesAtp6x13jc\r\n61TPi9CmUajMUqSJ0i8F31MkIG8RqJhV18U=\r\n=EGSC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_1.3.0_1656378748741_0.5386644529099507"},"_hasShrinkwrap":false},"1.4.0":{"name":"apperror_js","version":"1.4.0","description":"Make logging and reporting of errors easier, more informative, and more consistent.","main":"index.mjs","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"lodash-es":"^4.17.21","stack-trace-anynode":"^1.0.0-pre3","serialize-anything":"^1.1.10"},"devDependencies":{"mocha":"^10.0.0"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"9b9b2fcc19429eab5da93e4af29cd2c1386a02a4","_id":"apperror_js@1.4.0","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-9nAbZ6fC18i8HAYj1DuI5+ssFY2PE61ulAlGZB6yHYCRffuSmYyxEDB6SUnwZCijCiHEznnaEenQh+FKsd/wjg==","shasum":"ca53e8e3cecdabe100401e9e8d53f9f4f1861983","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-1.4.0.tgz","fileCount":6,"unpackedSize":55673,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/6JvzZ07iYwKzN/XQt48Ywb+r7BVDWcQO4/PIQoS7eQIhANcb0kxh6Pm+M9uLIlTlfU6JV6SWXoxCcEFotQn7UvXk"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivLWbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrrchAAhjtAqWQ80qkC5iEOo88R6RH1o7+OaVz7chzncgVTme4YB1de\r\nzgeZs5/5Lme5lO882DMzvC9RxYI8xkuUpoScacFRxUhAdRcOXDZZzjgMIvb6\r\nvCofDqo9nx4Wql/Wj4yqG42jMKqJQeGxI2EwqjH3KBocvQSy+gzISExh5al8\r\nvkd4CLnV6loCSC8d/w0cPHbbay8bR0ng8Y5Xqlk32BV7HbMn4vtdik+3c3DN\r\nrU1feYlcDx2AIYBqOj7Vn1vxo8vdnw9nR/5QJy4l6YUv3xijIdqYnEM1ryjp\r\nwYMPhY8EZ1ZaD4DLel2JjSdYQGmeFSTotgUqrsd2OQ+umSiMRMutB+mrNxpB\r\n+PEJ/O6xp+zaU9+c8aXouFGwluzMCtOc0sSk+DjFKrv53UM/uBvRbdxr12zd\r\nHTDlXhP2NQ6g2CTGgwa9mBJPXqxR8ZtJKlzeY6JQkdW5deLmXa+P4Iv1GO+n\r\nqA/iALELbALSLlN9ySYS4y2bl/BRg8PVJoOaaFxkKJ3ygGNOC2GaRKsoZB3S\r\nZ493tKlkYvSJpOasrcYJMMaCLBvVD5I/H5GVrglfWlk9WeLC1c6u6tRos+OS\r\n0jEr3rGu9OP+Q5Wap0z45uvsxXBisugO8YzgjcZd6FFA/2c88QFGolKA8PRS\r\nzZ4Gbdvk7lGRaTeUzQqDvwjBBVtw0Cl3JiY=\r\n=AA5t\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_1.4.0_1656534427198_0.7995219934965041"},"_hasShrinkwrap":false},"1.4.1":{"name":"apperror_js","version":"1.4.1","description":"Make logging and reporting of errors easier, more informative, and more consistent.","main":"index.mjs","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"lodash-es":"^4.17.21","stack-trace-anynode":"^1.0.0-pre3","serialize-anything":"^1.1.10"},"devDependencies":{"mocha":"^10.0.0"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"a0bc76c8f232c3a7d09f2c6de7fa0bb6b8fead75","_id":"apperror_js@1.4.1","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-Fkv52SRHpNGZWJaDfJYB3rhxqAwdIhNQXdSvGTTcrNSY4iDvClXyPFhSbYZk+EWtggLVOO7SPusTdz7rZFT9LA==","shasum":"98097c9c80a98f530c32dc47b8be998ec65f8cd0","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-1.4.1.tgz","fileCount":6,"unpackedSize":55331,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDV281iqQ41JkF+WuTexSAIEgOg0QHYFgGaF4BTB8Ge7AIhAO4+UdVOouDsVSrKLUGC20b3OFO9t0I3BRNbsFy0E6VO"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivNlsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqtQRAAmKxYwgfUG0U+feAAOHd87KGpZfF5KaFlrnp6idHvuvWwr+wd\r\ndOWOmZASqD34/XPxajY17SLTxrYgIYSEOEHD3h1ZVEv1P/NXlfORYQxJJq0k\r\nnKAbgUykvXgPRYDx7bq1eJsUyg9uFsODmK3KWX4g0bx9C8nHoN6yPhE1yZUP\r\n5CzJs13RIORHfqPBbzGq9TTvlNBZrs7CoGFj8JgO3yrU9n9QY1FbNw2WOUJV\r\nZk2k5vPosUCvQSOLlR1y8lpkWokrheK4jL0nRfhwmDCoZGQWKudv7WoPHslH\r\ntqO6j3XtwXsyeC+LCCvWAXvQ3PYf2Q+rSLJP+CeAhWuxassIRAe5dQ+PKOq3\r\n2Fww8Ut6xGuY6h+QmEh2/Qc6I/tY12D3QuMaGEGb5n3X57P6Li7lKrT56cfB\r\nngXJ4o5CPY29UChF/2NXgQza5v+RUL1SCRBhub/GfHIR+r0iF7L3P+6pMHzI\r\nMD1KRIJT1v4mhvDZxJwnZ86MfoCzhYblxKF0ZYYc25qOYpHmpwBXqtIj7YVO\r\nnMOgbO6oIhOcnOYN0OTnEuTcermYq3MhxfVUksEuibAmsnvHalnYlmYCx/qG\r\nnHO5Tx96XUGWTLJLnUQoEyqvPtHXdKpR6NH4adPlNDBBtUFpRFsjd0c0kkFi\r\neaziDgPKLCdahHnbYRpmRRpx3AhgQ970JXw=\r\n=hh7j\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_1.4.1_1656543595926_0.26319685139759974"},"_hasShrinkwrap":false},"1.4.2":{"name":"apperror_js","version":"1.4.2","description":"Make logging and reporting of errors easier, more informative, and more consistent.","main":"index.mjs","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"lodash-es":"^4.17.21","stack-trace-anynode":"^1.0.0-pre3","serialize-anything":"^1.1.10"},"devDependencies":{"mocha":"^10.0.0"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"ddeb405b65b9203308e15786ede68e84e8f23bce","_id":"apperror_js@1.4.2","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-CAVIuBPIy7UhZhS2vaJcck6mYsnr+mChnUk+DfKv8LoVx/h71BBExrDRlUkOfdaNAGu+QNPxwzNn3PrB+vjOrw==","shasum":"ded178b03aef559fdad43981d59d68976dc99d67","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-1.4.2.tgz","fileCount":6,"unpackedSize":55363,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDv4Nuy3kuXy31pyDxV17U1utiJalsaK2xh6vIpaJN6bAIgRTdheYF7TrARKLFJFxNSF2360kAdFkfHosOjwkP1x0Y="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivO0ZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpadg/7BbO6/RvY5QokcrnBZHQaeXgZvDgQEF084wOEWM+gxT0xCgNZ\r\nq/IN1qtgy4EUZX2nDfeJiki+4jZ9hnNNbjYln3OS3qNxMG1d4FYpQVCmci+E\r\nLQgvyeBBZvqD4jxOya7ilPWpRQ5ZRU5OjPXaDPJPjUuHAyMh27VxTmLatCeQ\r\nF+IJdywBj/LbHHh/VgSy0Einn2yO41tbYbbiEUQne50UJTHzVX8/L1CInkHZ\r\nqplEsI7l1HqmaE9iEAu5x56XQF6+0L7Wi65dfB5dp4upDZyuifDPw1PYpH4u\r\n8SRSqDhU2BrxFcRjS/qNr2Sw4gUlJ5zDzLE34rUMtHT/VAs4wc6MVXVbJE9z\r\ny1yrU//hrpDPyRATL8eJYBm6gTJz8ZuSYgvGpPkaR09vMdyxGCD331RTnhQO\r\nIYj8/c4ZC8oBuK7Aq0rG7U3+uZYbV9lb4JP1YUOE0gpdz2lRH+EZH3My/jL+\r\nHTjB5z127mg8O/P03iwRiGqpCi08xjc5mwbCj8qV7rvUcaeA2BCfSDl6/Wd1\r\nKNIZmbXnVBdOncblfpaV4vINgB25Ume9ZK6FQyvNLhtPKxGuotrjAVQxX7H7\r\nXipRg2813nkZV2kzp2K9ot2OAkSs+WBLN3aiPfHbxZ2szW/onqpL31bl9v6K\r\n5j6YELEUdW3NAX+OB8tjFt6pCKiauwku7TM=\r\n=y2I0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_1.4.2_1656548633062_0.26988350144657924"},"_hasShrinkwrap":false},"1.5.0":{"name":"apperror_js","version":"1.5.0","description":"Make logging and reporting of errors easier, more informative, and more consistent.","main":"index.mjs","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"lodash-es":"^4.17.21","stack-trace-anynode":"^1.0.0-pre3","serialize-anything":"^1.1.10"},"devDependencies":{"mocha":"^10.0.0","docopt":"^0.6.2"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"32ee0764c3f3bb24eca7d30ad8dd41601a772611","_id":"apperror_js@1.5.0","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-ahaAo0y+qa6z/d3499W/oNn0Hzdsy9Y7tz1ZOt9ZvdcaYx8HkAzdrLT9XVJN/39rmhlxa6xIS5b1gqncmylPvg==","shasum":"8abe63d852ba068c9cc6b17df9bd78ea291673c3","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-1.5.0.tgz","fileCount":6,"unpackedSize":64903,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHO0VnQuQLExw0EvMpAk6ZyCchRwogwmbcYrlWj49pmWAiAv7+fnbGpsOP7KIoZGpx0E90fTsCk27V3J90zjfkCQZw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyHLDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoSqA//cS6zXIY7/5gMqEoJMEkw77S9edI66BL91sXUomdVooNFB94z\r\nlpWARtPUK48tUWDmsx/rAPQ3DYZqfzomLUXLWg4M0OYzqKek9KegZukbN8oT\r\n5pW37rmlQQWulPE1q39awduOfKkwSIJ9uOqsjGSUqB+TicAJUlFRRqwNT7+t\r\nRnyQ4A46czy7bYbgqmF5qBwSKvqz8kcqCekI/MjzIZzcSHX12YSjSp4PNvKO\r\nGOvo9ID7QtmyK9eG1SO8ua3hjWmSBBBNtzxWoJYgroEIwcqgIIBI3L83IKUg\r\n3i8sJLi9Yeyn3dT/nmcBmYHnwHqbiJzUC/KBbYKchhxBlfJw8rRT5ZgTchDW\r\nisznEFwQTSECH+HJjTHkR5jpHXIrpgd3AeTXqMx3Y54bdyA4oXwqlzPyDq05\r\nnia70HMad8vq1vBsKSzEIEWmtPB9cMMa+6PYlco2SP0+L5CVL86cnv5Yt6y9\r\nxXEH8ZL/LYRYg/jIO7LKT7+Pk/NJ6hns2qTQCtQmd2U0GTVPOkvU8ZPyOcR4\r\nEtjyzatPnN2VNgR9rRA8KPvSvQlY2kWZ/pDW/23sW/QJv07uOudL31b4yWSJ\r\npf4Ek40SQfX/NKzJOGwd8E/PuXLujzoIeUhU4x3AhGqawzUPsevyNeyUpgyF\r\nD45PNDPMCA9/lIjVcq5bOUa/Jb0NxjGBL7w=\r\n=LCiX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_1.5.0_1657303747720_0.5844882312549415"},"_hasShrinkwrap":false},"1.5.1":{"name":"apperror_js","version":"1.5.1","description":"Make logging and reporting of errors easier, more informative, and more consistent.","main":"index.mjs","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"lodash-es":"^4.17.21","stack-trace-anynode":"^1.0.0-pre3","serialize-anything":"^1.1.10"},"devDependencies":{"mocha":"^10.0.0","docopt":"^0.6.2"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"c9b04742460fc3b79d585aa56c3fcfede5e5c966","_id":"apperror_js@1.5.1","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-vfnILF6nF4MxgC3iQM9cK/RGy7uakNsVOVA0+/BCks6lX0Pt4Hsml5icncUHoducgXfc4mFCf2CVFcWqx369FA==","shasum":"83e790da0ce964ba475801ecfb207e0ff280931c","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-1.5.1.tgz","fileCount":4,"unpackedSize":50480,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDx/JYXLE5hd0BgxTWapswlNf9UnX8TnxBw+Qfk0dY+IAiBHsmBgDCBD9C+iKYEmTbWQ9ZgrU+RQYd+ANkngPG1l9Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyKLUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp8kg//YgtgkwhxzpFHIt5McRMNfmYpqxjcQf6lcDBfs85ujlu381Lb\r\nGRht4eqqasRkbdYyKPZGKSvQs2uKFTmaLC/RtFQFhAbyvLggWd6R7r9UU1sH\r\nGzxQZxuGrnOU6aJ1gJQk4iUVV9HGV4z+9XKgt/eGRU8qF8fYGwgnS6+4CDRO\r\nrBQDUOvlarHwzJ12RC8HQOlq0zqqQZOlxz2yb5pzZmoa1VfIB+cZb2ApRfbZ\r\n5fMZt4q5sxVW7nkvBa9mW1YAgyCkMdEaHyLwl/3vJXnWGHhTDZkBZgEzz6eY\r\nL68N72pcaFXnhcNDfMlvm3u1mOUoh/0TwVKo/KtpbuKyeyx8H95KXwUKUV5R\r\nO5kxEnoQM0l+RFDtIAUVHztiMK/ILDqjvHbeefjTU/kFKrcyKlkYHm6EJHSI\r\n9PJCv2epgWsMzQ+TQDffxH36puHJkBD3txaKEK/5JVszcuSMnNkHHq8XrzEJ\r\nm+29fiwU4/0G5eF37Tnj7fejzIU14Tr6+wcVyzupHs1GeHNppECH4pjwVBJl\r\nsw7HXN0v7GdIAM8XZdCLXYjnxXsnotpRUBhAx8qGjmN4kWnzQnXXc+LCStGy\r\nzM+v4cQtZpDMGZO54t1uld6gVJX5cUm9r1QvCA7lnIxcwq/a8+wkChzuzd3l\r\nWQpb38fRdDxDDBCwF78nSZZc77U5ZfdEC5o=\r\n=N/mL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_1.5.1_1657316052445_0.5360728677781996"},"_hasShrinkwrap":false},"1.5.2":{"name":"apperror_js","version":"1.5.2","description":"Make logging and reporting of errors easier, more informative, and more consistent.","main":"index.mjs","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"lodash-es":"^4.17.21","stack-trace-anynode":"^1.0.0-pre3","serialize-anything":"^1.1.10"},"devDependencies":{"mocha":"^10.0.0","docopt":"^0.6.2"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"ebc511320dfbf05ad2478e9ac2aa9368f807f66b","_id":"apperror_js@1.5.2","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-Uzxem0BdO5lLefe5cn7diJJoMNv5EZQgVCpz8wLHSdLreveeBjG9AJ32RzbghkNlBkElBP2995gxLfppjqBtCg==","shasum":"a8a5742587e3f1347ed4004dc89f22eb79a3e555","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-1.5.2.tgz","fileCount":4,"unpackedSize":50657,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBiH8lJL3aBfqvIMiHXqPnK8xbUuXLi6p1WJDMKZ1/adAiApHE6p1DVZfLAsYoTeeZ3xOa9EAKUSPAvta7511COgOA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyKWkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqgExAAjdWntlIaYzJfZGWpza59/r8i+TZS3b7RPyC6T3gzfIqOpAN1\r\ndriatEPHxvafkfOsLZuotHYgvmQok8qZkcVTVBwCugOpuCRdnRG3eLSjyu/i\r\nb/JhBWXT8R4rEwuia3Jr/XZHcxNT7zoPTsVC1K66mfxnYHb2hhWfxv9PsHeC\r\nEDkflWT4chn2FF4eUG6c8tO68F27OukJ+FX674tn/bEzNDVTgnRE1raWC0MC\r\nLimVHZXy+ljLMEw0RDJx3j8GGL9s0ulZUxv/vpshHYMWVbiZ78o1i2/v4Cd8\r\ny/rES4TJsHo43udEd0NQYCLN3bt1s4Qn9SlD6xTMZfk4VMG3vk/ODYH+v7uB\r\n9MXRWjoKdsG8qFoiTdsGiCJqHymTd/MmJVrSIB5baY1FrYMQ2Dd3NxMRNKiW\r\nMcB2qXMejsLrv7DdU1ffyVeyBa9LrJd6Tq406QYEwT+AQhZDQIpSjDqF7oXU\r\nefCY285tgjEsYVjMPs7vzoMJEyCnV3Zv8WN1AmaiTda16kR0DyM5PVeAA8GL\r\nqrIak1i3LBEtcspxxx56zvfl+Zghf461M7xGJvA58TrjCs1BiOhBt7/DVcxk\r\ngaSw00yIxhxTahEQU6OmIYfl6SAQhYMbReW27WboGOEMJ8WIBt/fnemEOl1E\r\njxEP8pThp9x64Q6vdBQ4/b8qi4Hod4fJ4DM=\r\n=QkGF\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_1.5.2_1657316772542_0.9144176015631797"},"_hasShrinkwrap":false},"1.6.0":{"name":"apperror_js","version":"1.6.0","description":"Make logging and reporting of errors easier, more informative, and more consistent.","main":"index.mjs","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"lodash-es":"^4.17.21","stack-trace-anynode":"^1.0.0-pre3","serialize-anything":"^1.1.10"},"devDependencies":{"mocha":"^10.0.0","docopt":"^0.6.2"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"ab20e8cdc3f166381057d13ddd3698e1033f819a","_id":"apperror_js@1.6.0","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-aub44mADA5PrdUruNlbJwB8BTfQnkdsF+pVRCoDssast+gxeFlcFVr/wPyMz7mYl9s1/aOZCDtfhuWGz3A9tyQ==","shasum":"44821be320baec4907b5f946e259c239ed319f51","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-1.6.0.tgz","fileCount":4,"unpackedSize":51149,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCormQ9RNLJL3wYwuUab9ai6HVZGD2UWjNz22ZGyGB4AQIhAMm8lPwQG7GDtl4DjYF+fXi5RGhlHWSmqz65fAD7aeJj"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyLiXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmogHg/9G6LAi7/cfFd1DlntM/4QtKsJbkxAUDsjA0EyQhuPnyTyXyHG\r\nqDAhEqwbEQKpeZIxNNRrFT29M2xSPHR0lO2dD/1uts5GoSyI1Pb8e29IEsTj\r\n6bvbLPqE4J3aojdI2bwg8pBcJ36ut2oJBbf7abcVMAI3H6BsY11OA6L4zBMj\r\n3lK0lc2/l7/E2MWezNdDMhJQDCHFeUSGB0dPAVszSrBgNiR+bPZxqBqAcuX7\r\nXdulPDTuTbpP6DftLDyXiK3ACut2CFhJCwFUJv/JeJuHFY8MZ5/hMyIqGiGu\r\nBEHwWMS/cboF/pVldLUjxAVM9PVMTekrIJtsZMgj8U/+/zvE+cSlNfVR1zMN\r\njpPq24iDUbLYu8Uutt9GRoOi6b7TfZ2kp7lWS1HpXX+nwwOjjx/dDPYOhEgf\r\nA3mlTSF0awqMCUmQWR7EwTzRegbVt0Us/OkYATm5m9jD0rjKtwYiLyVJv1SK\r\nNurcBhgdP+R88nvv0yl6QsOPI1rEQo1hjEtoJdWTWAx5dQ1BtZXuagYCoO3f\r\nA2r22+Q2RZBNNtZ1Dly426yN9Ns/zTUeEi2XuVlQkAbTarW/qTdbMjN/2/e2\r\nDLIkmw7CjWPhGdUrHl8/HRx7rQqYDzoNqA+uWmJL3bQDgL1EJyITXfDBhRZb\r\nrBr7AHE/1k3RB1Xz7HiMQImgHcK2P3xek3M=\r\n=+NA6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_1.6.0_1657321622825_0.27401084744189874"},"_hasShrinkwrap":false},"1.6.1":{"name":"apperror_js","version":"1.6.1","description":"Make logging and reporting of errors easier, more informative, and more consistent.","main":"index.mjs","type":"module","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"lodash-es":"^4.17.21","serialize-anything-circular":"^1.2.1","stack-trace-anynode":"^1.0.0-pre3"},"devDependencies":{"docopt":"^0.6.2","mocha":"^10.0.0"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"f4136aa0a0bc3eb6017b21486286f88e7f86d279","_id":"apperror_js@1.6.1","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-gHQMBGqHZFVL4tizu4Z4wyggoV1RYoIDqCQpfHt0ko22nPOELj0CV0pD86IoMaldW/vjOghJfJdjmbCzPKDh3g==","shasum":"f2aa3d199c20f373c56be908d5d5efd9d95d7c47","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-1.6.1.tgz","fileCount":4,"unpackedSize":51997,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtlHbhqhCLns7o/kTqR7CKwiWJF9vqkhib1jzfHMJAkQIgVGpXMmJWfs618+rmvtIT8dEsNP8L4+C8r88qfLQc2gE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi1wG5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrefw//ZQLVD7NsncslukLT3MbGSlhAexuUVjBhmin89KCg7WuyLp9y\r\nxjwTW7MlDduuM8Dz9VRyI9/sGz85YTguKOnF3db8sU9vAZ65xJeLWaxlsy9V\r\niD28PW8yLRGvxs4xlZPHStw3F2KNIDhlt3vP0LUSR8M+ijEDY8ypsC/Iv9dj\r\nhWWReGmoejQQRB+XQuQ30ji20b7ZN8UgOeDi5p3XmJzdqtZVqt8i5t4KWTW4\r\n5H/OjKUu+wEs2H6CMb/22AivmaJ7C9atrmXJkAHtdR0MgiObCNzO53WCJaJL\r\n6QphWKmtrtvSr1/dS6XSrqBd+lvPBtCdeJ/T3vaciMdOmZoRntl015ymNXtq\r\ndJ+R3OeFVtFjshr1RIXbDWaGw1IQNG6S/82EHfrZm88Zq1d5C8mMjucQvY2T\r\ng4Nmt5LTSanQEDB+t324525/VpiiZZ9a+krT5mGDuVSmb4+hBZAXAsufJabY\r\np5cLXgPuZ6umafYyhX5llGhqw4nEJARK1INGzNwji7wUAYKr5IO94jiMGECV\r\nybUONELYjBPSaSGjzN9hk76niLO7Ib34trSHLLu9Dq6UMryy0vYEAIfx1/KM\r\nadz6DoS8f5u0l7IT6t6B0W47be/n+3TSY+8u2gTph8aj/YTQDTwmNSZLmA2J\r\nvtypNUyPF2qIbP+a/nxAuXXKYRKINmr6488=\r\n=Junm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_1.6.1_1658257849542_0.8910414856013"},"_hasShrinkwrap":false},"2.0.0":{"name":"apperror_js","version":"2.0.0","description":"Make logging and reporting of errors easier, more informative, and more consistent.","main":"index.mjs","type":"module","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"lodash-es":"^4.17.21","serialize-anything":"^1.2.1","stack-trace-anynode":"^1.0.0-pre3"},"devDependencies":{"docopt":"^0.6.2","mocha":"^10.0.0"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"cd6afcbb9eb771693a4a160a9b0d4c29f0b20c04","_id":"apperror_js@2.0.0","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-Nc6AvswUy/WZkuzWksLWK7mD/0hSMu0Okopwm/jidsduRlZKm+Jdym1LwQhQp/KiFOtkLKsfz5UNyKge6nj1OQ==","shasum":"a1d2d07996f9200f174835213f1cf20274fa57c0","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-2.0.0.tgz","fileCount":4,"unpackedSize":52309,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCx0de3sRaPoXUGbZwGnFxRCzhS346dOHKALBqDH7GzOAIhAJg0bT9AQ5RaLd9gx3nbmQvIH2ilTe1pJJIhm7NomZSc"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2FeZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqGBg/9HhBj7fUbXgAXfx9tBEQq6xg1cJhmGf7LizAjc7/dCN09dnkM\r\nO9iOzrk1cM4jPeqsbQDIfYTgN7TuwQJl3l+enGQ8g+d7bdzmdNNCeSTs0QY+\r\nXAoLeMTWynUGWoUk11lO5ntF+9vn2ApoSWrEAxs6Mt4gpejHC3E+lKeeeL5E\r\nt4bbcVQW7ofO5Vf+etiylhdNHgrf1Z/hw96c0ZfEFewTYnkrKNqg9pAvw6rs\r\nbecKSKxJUNarxrrBEiH+3RECVNSpCvLPdo/YbewgGp07Iae9491h6x+GZMgP\r\nrZnjhMYl7iE4xoEPsiB2HZDkscQK83+Xhx6ToiHEY5L5KcF+Qi3VV2zaNiBo\r\ndQhNTVq4VAvlpYhQyVKXDdKpDp1I7xnLEdAMeEXj73nppkgh2s4EDdXGjc+U\r\nLQ99UGIiigQtkKXItwyLf3XqPkafnNd8CL+tbhLm5IKHXe6Lf9kJ0rtvxGWs\r\nLk24WLvnowzozZuqfneQEcpX2vbm3YLM8HY7vDLxPiZLSdxw7q+YjpoXpNZ7\r\nX70SPgVMsw7me1GtJILbTlmrr8Gp2TAMdgurhswAXwfBY1/3Nl2JRWfNcnKq\r\nW4qwkRPrKBAh4rnBzKHzr3l3XW/sI2MGXxylRgTJfot1idKl3XsQvx/JeKGj\r\n9GV7Q8u83JHrI7fv7d9XqJg1QmeSD5KV18o=\r\n=J22v\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_2.0.0_1658345369608_0.23197799774799743"},"_hasShrinkwrap":false},"2.1.0":{"name":"apperror_js","version":"2.1.0","description":"Make logging and reporting of errors easier, more informative, and more consistent.","main":"index.mjs","type":"module","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"lodash-es":"^4.17.21","serialize-anything":"^1.2.1","stack-trace-anynode":"^1.0.0-pre3"},"devDependencies":{"docopt":"^0.6.2","mocha":"^10.0.0"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"71992c711b7f6cf80c851f596ee61ea44e6b8500","_id":"apperror_js@2.1.0","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-te/k9rO/VT/X1mR0C1qG44XCbjU8XEvdCXUIlUoYesi9FJy36GyCimGxx4XFE+c8qlkEwg+7qNujPFjsBOqxxA==","shasum":"fc09d34f0eb89b2add2da21070343a49fc9dd326","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-2.1.0.tgz","fileCount":4,"unpackedSize":52617,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCciNZuSTLaImne5Lj8cDB2wB1H9jPkcQJEyhVBgmEM0QIgbH6jRiu0SmZktLLxsKYaYRUoS+Di1WqKHdnUD7WOTcM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2MCAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrV+g/+JOYC86YuRd7dx6iT/QHvefCCOs9jIX1f4UcP3FhgphevDqEh\r\nSNnRu9LX8K12iBgPmQ+mMLBVQFH3236o2EwAyyuCk1Mt+3O9zICTi2LtSxR7\r\n6T4BiIaiB1+eE6uGYzfX4soyCV7bZYHfX4ubWH5K77JTMxnOTfiWirc5ZgzX\r\n5nLUCBfl0+QvnDs8wEYpJGIIL9yH7af3pXKZQCC9/JNpmVUHwG7E4VWtIDeA\r\nby0gZNs3trjH5zvhjduNlcPD3fDYd+gGjfYl/WOTlvZUVlzvtNfRCz1zlRz3\r\nUqidB0JFThjNE7puxbqchmWUzmkuq85TKAlwsbCmEm+ryWfFlXvNKaKIElKh\r\nyXCQmSy7/9zIUzFOSjj/jY37Vc8eYK3E0sPqF95ccMiwWGnFpZDhiHYMyKJD\r\nBzpDD7nMpQxV6uKJ0Bi86EsSYvM/H39C/L5LIpx/zIY/NwtumEDVKkQyG381\r\nsChFSBVn05h4kx/erOIR5N6Ug4/9AyA7Q/JbNOxq6PHYx/RHyjTqseBmfQfS\r\n83Vwskz4ldD/uAnZpEgIoT1tLzgzaaoopthkqk8F1+WOp16z0V1KSYmbTkcW\r\nESBa2HCDzKxIa8XGSWKEehrZW1WGMe249urTFON3rVX3Ob2g1FGkONCzIHng\r\nQe8WtZ/UykdOsXhAau8bA1bYOJmHab//nNE=\r\n=p5oO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_2.1.0_1658372223468_0.525922989337678"},"_hasShrinkwrap":false},"2.2.0":{"name":"apperror_js","version":"2.2.0","description":"Make logging and reporting of errors easier, more informative, and more consistent.","main":"index.mjs","type":"module","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"lodash-es":"^4.17.21","serialize-anything":"^1.2.1","stack-trace-anynode":"^1.0.0-pre3"},"devDependencies":{"docopt":"^0.6.2","mocha":"^10.0.0"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"30909c2d287b9294d926d35f1ee75c1da2b56815","_id":"apperror_js@2.2.0","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-jHAyEHVy3k0lJ4467KgiWGtavbKv4GaQTFm7ZKIM87s1D7hFCgePr6ggg0AYSn29k1IacGWxOq68jz0Yp20n8A==","shasum":"effea04c45cce8deda6d99a79a830013582c3bea","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-2.2.0.tgz","fileCount":4,"unpackedSize":52917,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5VKWy8xOgPKXWMd4P38T2cI02EWH4am9uVCPeza+bqwIgJmDl2ny1lmsis0r+N7lcAqPZ9/fdInAcErkpBCg2VF8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6VAHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqGwA//ZSXpCoPTa87EnI8UbdL5Lil0IWCulxpMwOjSTKlELDK1Qxv7\r\n2huVXXKaPNXXQjX4o+PeT4tR/+6xt1Iv+efyY/TZsTPWjRJtzE3YKuKtdVHm\r\n4+m42PFl4t8v9lCjMtjfaq58xhenx91KEcqsMRwwI8CO5+3ZsSEkJG1M0yge\r\nJR/Qau+7zk/LrgcZMICt83jDI0QdIZKAiczhxLqQ5lkP6OBf44AV8PLLhD2l\r\nrkcrWJWbuF8lifRHZJ+fiM7OU0za+ztzRrCMTSa4i1GtL2hC1TzFr4ZsgXZY\r\nFYotyH4zVvXr81usaQDmIdiG8Gh+y+O4WIeAoBuhsmXEzP/4CIhv+VCu8JDN\r\n+axMHW2dqYM+ksaom0ZJv+Y1ZpGamDo+8SnObBtyOyMr41Gs9lET2UHZ/duM\r\nljXnPacDFLw6IUe4yzh9s6I0tT4g5XPkObH82zzeoVDzZauEEC+xz7zChc5i\r\nQVGBH7T6BmSTgyU3H7f1yQxDKQj47PlDiuyT2m5IqonNCnj038mBwJ8k5Xnx\r\nxqHVOKyKy70jvVMHUx00dKO/1ESSFEnaNiopciM/MvzB/wBlmehmwHtooqjs\r\nuaVViEsTecLrKIhnNEZtzLOIdzj+fcppcDbW3weygNjBN2PXycLKXWFaoltZ\r\nA/4lgAnHqAMa8SL7IiZsQYkoASpCgiTLKYc=\r\n=lILm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_2.2.0_1659457543418_0.2764489188312944"},"_hasShrinkwrap":false},"2.2.1":{"name":"apperror_js","version":"2.2.1","description":"Make logging and reporting of errors easier, more informative, and more consistent.","main":"index.mjs","type":"module","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"lodash-es":"^4.17.21","serialize-anything":"^1.2.2","stack-trace-anynode":"^1.0.0-pre3"},"devDependencies":{"docopt":"^0.6.2","mocha":"^10.0.0"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"3c0af34699a9018e45a94d0a3889bb0aa7a3462c","_id":"apperror_js@2.2.1","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-7wiHJKkUtBH9mzuKIXHO/69rIgANDZL9LzvLhj0cdTnQ1Bsi3JB6/OKllTAO/zmLMrk+aCIopYNzqo579gRHUQ==","shasum":"4feba4ddb3dbc19e998275f6738e30d974657f46","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-2.2.1.tgz","fileCount":4,"unpackedSize":53202,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4iueWCOKQ639rcdD2tfkiNi1BTDBpCIRCS06z6/tn6wIhAJk6IaRvLxlefZRgjWmlwDMXnS2f9lfXdPlP1ireNqxq"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7WOSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqQWQ/8CSvRZ0i72240mVXEsJWfLSMbYUg5Eqx1wp67FR9TpGFKsZqM\r\nenewid9S+mw1qmTIF8WjjSMG6Tlnv0vjSasSWZfzPmnUU2SFp7E1U1A/Y/P/\r\nAZ2/ctGjhacXzeeYtZwm031gzk24nQYBb1Vrbww0zTB5wssNqreHNhT/3Flz\r\ntPk9OJIjbTSzxYZxyhXN3wMINm6BHFo6ec+5m6IaX8ET/VOiGDYZD4956i0q\r\nIaYKSUcyjzsFELlZv9x3fPRPmJp0fAK6CGk+iFny+pWNSBUqOOpBqa+quHrf\r\n03YWUgMEMq9n7FyF1MdMns6tXv9fkk8RyOoGgdENyXOKkVkbyPIs1MR9g67d\r\nKEmxLHQTspyJzCSKlSS9jqEP+uGE/OSmSVtpr/o2BIwrLnZ0ePa0xDwITbXE\r\nzPtri9fQd4UkwOMBoWIzCGP4+do7/f8XTdeGGBiXhJl/2UhthJ747X1J7t9D\r\nmoZV5zN+r8JzNVrYObD3D1Z+nSGmBQ+/dZ9in0SuaKVuEjOSYoaWD2kBeztm\r\nMnSE7zNU7Q4UaQPJl5UgYAzCyIRxLMj7Z95l+qkDhxRP6llVgwDw6a70TpAX\r\nnnvIHs8pRGhswa6jPAVQfArqbTJ7s0PBD32hk5MignujRNM27e79ERuKBUUb\r\nS8WyVoVx4BsPE2FHMS2Ks+Q9ZOj3U+Qn3XI=\r\n=HFa/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_2.2.1_1659724690723_0.11212089789340807"},"_hasShrinkwrap":false},"2.2.2":{"name":"apperror_js","version":"2.2.2","description":"Make logging and reporting of errors easier, more informative, and more consistent.","main":"index.mjs","type":"module","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"lodash-es":"^4.17.21","serialize-anything":"^1.2.3","stack-trace-anynode":"^1.0.0-pre3"},"devDependencies":{"docopt":"^0.6.2","mocha":"^10.0.0"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"4aa6c923f69baada39a94a2a055eab44311a29c9","_id":"apperror_js@2.2.2","_nodeVersion":"18.3.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-ULfLO2HLug92us6qmD0AZgBN+nhi293r90eOTiFm5/wgC/CnE0faQFMPC+QfD8g47BkzcepR6YlrEi+RArYbiA==","shasum":"db5887b052237b7f70c7d2dfa7382225a25eb9ee","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-2.2.2.tgz","fileCount":4,"unpackedSize":53202,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCk9SmpKp+rNyGsN4pZOYQX1IkzxVj55fHT4mY5ECUkNQIhAJsYeUYN6JQ/HTD0QAldkTzg9lGbKkaaro8jeTvyJyVu"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8ErAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrFhA/+JhRvb+rwif/7zhVaVtCWYx+a+j7HS0W1GokO6VkChfto9cFo\r\nYOSEVRtq49rLdhw4CF64JPcS+VQ4h61FJV5VQimqpJ6WpRm2+9/Kzvimm3my\r\nsdRl4/yicpDhPKAXSKpNxmIm0W7kfYNUbSLtu8oS/Ue0cD7lAFkEAeaTqsXr\r\nd65+MfiK341MkzTYV7hQw+wbI2si11lBM/2tUcdnSzwiIBzqxe7z5Guxesa+\r\nuDTg90ZDQdC3NWZeCbJnIdXnRiqeJ6/PD58kq5IYxkHQHqx/ueH9pQYhHYqp\r\nE/Vk+U1RWsLHHIgB3AkRk91IZE4tCQayC/zOo2/q/9zSZHFm9R6Dtw/MGXSz\r\nQOJIYUsMoKotCXHzWaql8nLvZZKIX/mCJeoyiPrFvjKWKT5yLm84m0Vgi9Sf\r\nsBfmXX2drGM4ikl7GVRw/KyY1P79c0+WqBIX4/StLfbrHl9H1QrzDsA7aH9q\r\n1wybY7T1l/M9OAgfxGtzPRNXDtvA0gl52XthX3KhvxzwB64odkpX33PxavN+\r\njaAra9n8wjhiqR+m7S3Y9c5eAiUAPzdjBL5vib6oztyeI549diW/LFNpFcne\r\n3jvhxn/o2nbYDlkXYUlqXnkYG425MshLjvhd/TYosDBI4KC26pLPKU2NZ+sE\r\n7h0zaXYm14Vs0gVyK35y+cF9kwpoZgvi7EU=\r\n=FloR\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_2.2.2_1659914944321_0.43242111888506396"},"_hasShrinkwrap":false},"2.3.0":{"name":"apperror_js","version":"2.3.0","description":"Make logging and reporting of errors easier, more informative, and more consistent.","main":"build/index.mjs","types":"build/index.d.ts","type":"module","scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"lodash-es":"^4.17.21","serialize-anything":"^1.2.3","stack-trace-anynode":"^1.0.0-pre3"},"devDependencies":{"docopt":"^0.6.2","mocha":"^10.0.0"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"f9e3d0af2f4136824611f7860a931e80221e5e97","_id":"apperror_js@2.3.0","_nodeVersion":"18.11.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-bi+1aS9HbtDcM/ONwPPc722fAZ5Jl+nTCMo9R9ofSMmvzeBywO0UplQqruqROLHN6f0+GapoymlQDHGR4TYKOA==","shasum":"b2911a0e906520f7e189b13796c97e2926ac8555","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-2.3.0.tgz","fileCount":3,"unpackedSize":24646,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCit+6a+7vSFMeDKrFiSeREIH9icS7NB8aX+6oEMlY9MQIgcCTKFcReCsVJ7YgLk/UCmP7Epvd+A1uq8lBiLszDjWU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjkNsXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpVLg/+KSVlnc6pLZyZlM9odESH2QoEp2NG259c03+kaZALFEQz+ouu\r\n3+IJQ1YkuF5rrjSR6hzuZraS9Ux3e5Pq0h/Ji10QKiNkSoVJoOKGFBT3q367\r\n9btFWLYyu0ANYdZeY/8dJGXzXY75Dnm+gxDJYnUWB6vBVaC/1ZIG3oQB77jS\r\nEIZMrxwWtIwSLTbh82DHk/A5lKpddKjRHCKYTvyrBCpBsvanF7y3oHrzzss8\r\nYthK1b617E9UfplecBIUOnVQXmzZJ4oQu8Wvb9Msb+WFgtuMuDzRc1RNEMWJ\r\nShdwyMrnBNiMWECE0BXJyGLofIRIXSpNJdBF73UMnXCf7gSMxpdDE9sNPhu3\r\nsx2b3YOuFGuqLHfDiFcFrPEKD1ubazUGKTXlV7bTBC12sVI5m17/PSYfanBu\r\np/BhwIiwSomzdvJCZ5AO9xeMjFlL6s/LSI/676nLPFMOCXfbVHdzBR7Y2ioR\r\nh8/9VpWE3gHT/TIV5Tq6lqIusugo1TsEblq1fqx4KTOJ2X/XC8XVPsbdG2/z\r\nQ6nZemm3Q539Tu0i7d/BR6z4OUeHDdDjBM1K+CtCfT0HtmcnGcGYpQQe/0J8\r\ngPzFFtJedxTPF3P90ZYZf9lwLYWjyyr8RXoK4MjO7y0+Hcwv9mREdSObuWNV\r\ngTyjClKXS7MEJhr7IO5VEhXk8LFDftE6nHU=\r\n=gyKN\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_2.3.0_1670437655407_0.6040898552068119"},"_hasShrinkwrap":false},"2.4.0":{"name":"apperror_js","version":"2.4.0","description":"Make logging and reporting of errors easier, more informative, and more consistent.","type":"commonjs","scripts":{"clean":"rm ./dist-???/*","watch":"concurrently npm:watch:*","watch:es6":"npx tsc -p tsconfig-es6.json --watch","watch:cjs":"npx tsc -p tsconfig-cjs.json --watch","build":"concurrently npm:build:*","build:es6":"npx tsc -p tsconfig-es6.json","build:cjs":"npx tsc -p tsconfig-cjs.json","test":"mocha"},"exports":{"require":"./dist-cjs/index.js","import":"./dist-es6/index.js"},"main":"./dist-cjs/index.js","types":"./dist-cjs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"callsite":"^1.0.0","serialize-anything":"^1.2.3"},"devDependencies":{"lodash-es":"^4.17.21","@types/node":"^18.11.15","concurrently":"^7.6.0","docopt":"^0.6.2","mocha":"^10.0.0","ts-node":"^10.9.1","typescript":"^4.9.3"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"8402b77f23c913ad7c5c858e9981ee1f473da259","_id":"apperror_js@2.4.0","_nodeVersion":"18.11.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-nnPIRWQ1VZUCzogW5edJeHpmh+kpitgkScoBzc5deMBigALygg1/hDKDu+Dw+BX+678rQZgSjYFSZ+1nz8jmpw==","shasum":"4527796f39a074fa881aaf7964dd830ad61df291","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-2.4.0.tgz","fileCount":3,"unpackedSize":25460,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCRhtDJPcNMSEG7+8mpXaXLPmKVCrNR3N+tj+gUS1Yq4gIgXGhg+C9Ve/s+WDzZJ6mJWZSQPmtpjzFNDnrFpYGdqws="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjnYD3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrX6w/9GT38j6OGckqzm+pTH9/v27KYUSTzPlqQHNPoPxOdyfr5V41Y\r\nnVAsKsi8CZK3n+gejRcy3IJTaheMJB7Nplr1oPdQ2Na+kWl8q+WOxMBqjSkR\r\nuwhfKRdrcwi6vhpVzkIhsTdx/2L7lgxWdJ4UFgmoE5bCOGMuqaEPpo2/f0Y9\r\nmpeAwcnQLqr0sQtSZS9ntDCXns8e6LuW129izZLwxkSyYyociNSzJ66LivoO\r\nq2Nb1D1Bv43WNrcwXjKxIcA9ncGQbZJs+vUXkJU16n38rPpPrB7J1wuEBwkU\r\nfT7M0trrMJnN2XBM3rt7eYkXgBJF2nO2F6CYrkPBRXlPvQMnaa+ezmYuSkHB\r\nTKmJwHTm+ZKOA/dW/ywPn2Jjtv2Gpl/eVKtnPzgtiGnSfX8ZnMVON5FcYE7y\r\nTOQ04VFlPKQBVwyky2o75+ZQW09mDD6WuLbOUwvXfCfqvHL+23xFoYvowtse\r\n2f17CHMFcsr4CE2ZoR5VC7N/1CEHi8XrG+bt+SEH2edMGHdwExF6pkWXSGBu\r\nGuI5fdN+O9FPNZcXtfpXvmAzQhul9MjFH8lrSvasj65789UXjfgmMRSNaC9z\r\nasRQbEPovLuuPzO2hh2EMMCi43quQBS0aGvDIiaXOUiBeFU5ptlMBv93eVos\r\nMczKAT8MQlYPhQw+V1WzenAr84CdhUtnNu0=\r\n=arg9\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_2.4.0_1671266551530_0.9402516461486068"},"_hasShrinkwrap":false},"2.4.1":{"name":"apperror_js","version":"2.4.1","description":"Make logging and reporting of errors easier, more informative, and more consistent.","type":"commonjs","scripts":{"clean":"rm ./dist-???/*","watch":"concurrently npm:watch:*","watch:es6":"npx tsc -p tsconfig-es6.json --watch","watch:cjs":"npx tsc -p tsconfig-cjs.json --watch","build":"concurrently npm:build:*","build:es6":"npx tsc -p tsconfig-es6.json","build:cjs":"npx tsc -p tsconfig-cjs.json","test":"mocha"},"exports":{"require":"./dist-cjs/index.js","import":"./dist-es6/index.js"},"main":"./dist-cjs/index.js","types":"./dist-cjs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"callsite":"^1.0.0","serialize-anything":"^1.2.3"},"devDependencies":{"lodash-es":"^4.17.21","@types/node":"^18.11.15","concurrently":"^7.6.0","docopt":"^0.6.2","mocha":"^10.0.0","ts-node":"^10.9.1","typescript":"^4.9.3"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"8402b77f23c913ad7c5c858e9981ee1f473da259","_id":"apperror_js@2.4.1","_nodeVersion":"18.11.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-Zongz9iSJMZkUFv5ZY9TTppzJmp9iBbhj9Py4cpbwMosDRuvpuMp/QmVdatgY7lsiLY1W/AEWLxFtPwinZDveA==","shasum":"1efbcd479e33f953e744e02784c68d0125593242","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-2.4.1.tgz","fileCount":9,"unpackedSize":239828,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIADjmsn4NbtQxkcg9IbFNqpxPGfP9lmubhcB4qrZiaD0AiEA2eIGlDG8W7FCfU//91nGD07HavjlXzLnEPf8PukY9Jg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjnlnQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq/0g/+N/9uiA2SbpI9xp7wIijTtNVEwINyyLFWUP70Wl+Glii/GV1F\r\nlLPrBs2m8Px1fVi++vvZM08TC2rj+i8xwT3ymjOBlEVl65yWWYujdZCj4jz7\r\nHpUlOizKcFHC0Enoz2hejahNGqPfxOCEhWVgwBWOiea6wJledCR/nXxRxqQW\r\nUjEP5UZDFzgpTbbFoEEfzBZC27JRWkmXSMEUjf1ak6+zxbmWn/9Wja3CTxzK\r\nm2/BbDXuzH9czN1M8G7dg6PH5+C7G51kOrdNpio1tpvJqkRplZifBEyX2B1p\r\nW3it2Bs3cmysHvSu7/FNv21muErVG8iFs0dibhsMcytIq8tEqThpuwk9/99N\r\n9286NDlegmozWnlT4E8nVn/akZYTLnD3fOKHRXvWwlfGCq3HnUmSiE9NdjLe\r\nb0ybcBVTrx70tHSUYkNZ9N4Wmwi8HOt7wD++pD9RdAZn2BSU6bYr6vZFvXl0\r\nSQ3REicZpzUAekxy9+HiiUOzL0r4F/M+h7DuN6aQ9l2n9QF+LjEttJkeLUJd\r\nD8F4uxIWPE3cxrWE8Nps1FQ4V6IwunmV0uBT3Wry6VKlfTUB5v2q1z9jaJ/I\r\npruT5xweEOKxLcyZT0KU4uPUGroXpFJPlY0RXxPn1fzwE5eIVGQB74CXYP/G\r\nSuJxijATeTmC2WPogE3crDI/8xnlswcWQ54=\r\n=2ZhT\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_2.4.1_1671322064712_0.30855156844307574"},"_hasShrinkwrap":false},"2.4.2":{"name":"apperror_js","version":"2.4.2","description":"Make logging and reporting of errors easier, more informative, and more consistent.","type":"commonjs","scripts":{"clean":"rm ./dist-???/*","watch":"concurrently npm:watch:*","watch:es6":"npx tsc -p tsconfig-es6.json --watch","watch:cjs":"npx tsc -p tsconfig-cjs.json --watch","build":"concurrently npm:build:*","build:es6":"npx tsc -p tsconfig-es6.json && node ./create-dist-package.json.js es6","build:cjs":"npx tsc -p tsconfig-cjs.json && node ./create-dist-package.json.js cjs","test":"mocha"},"exports":{".":{"require":"./dist-cjs/index.js","import":"./dist-es6/index.js"},"./es6":"./dist-es6/index.js","./es6/":"./dist-es6/","./cjs":"./dist-cjs/index.js","./cjs/":"./dist-cjs/"},"main":"./dist-cjs/index.js","types":"./dist-cjs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"callsite":"^1.0.0","serialize-anything":"^1.2.3"},"devDependencies":{"lodash-es":"^4.17.21","@types/node":"^18.11.15","concurrently":"^7.6.0","docopt":"^0.6.2","mocha":"^10.0.0","ts-node":"^10.9.1","typescript":"^4.9.3"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"4c8b5e94c56103e6da416094640ab84403fdd76e","_id":"apperror_js@2.4.2","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-3k9QRvoEg/T6s2MmhhKJbMDcXW8InX+2nKGS/hZnCOsO3+ICzHPYly98P3F3x/HAqlxKd4HuhZKFxJKUoJgswg==","shasum":"08e7e1ea68feab318b2bf92dc9ccac71caacdb78","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-2.4.2.tgz","fileCount":3,"unpackedSize":25854,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCejOYBUYDLLBqgCDioWKzrY+r3vTROPT0qZV6rsBg6+gIhAOwdOhVTiO6CIdrJ3UVRu4sNUBTDFnQSeYryNSqm6fJh"}]},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_2.4.2_1687729463390_0.8354121043955174"},"_hasShrinkwrap":false},"2.4.3":{"name":"apperror_js","version":"2.4.3","description":"Make logging and reporting of errors easier, more informative, and more consistent.","type":"commonjs","scripts":{"clean":"rm ./dist-???/*","watch":"concurrently npm:watch:*","watch:es6":"npx tsc -p tsconfig-es6.json --watch","watch:cjs":"npx tsc -p tsconfig-cjs.json --watch","build":"concurrently npm:build:*","build:es6":"npx tsc -p tsconfig-es6.json && node ./create-dist-package.json.js es6","build:cjs":"npx tsc -p tsconfig-cjs.json && node ./create-dist-package.json.js cjs","test":"mocha"},"exports":{".":{"require":"./dist-cjs/index.js","import":"./dist-es6/index.js"},"./es6":"./dist-es6/index.js","./es6/":"./dist-es6/","./cjs":"./dist-cjs/index.js","./cjs/":"./dist-cjs/"},"main":"./dist-cjs/index.js","types":"./dist-cjs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"callsite":"^1.0.0","serialize-anything":"^1.2.3"},"devDependencies":{"lodash-es":"^4.17.21","@types/node":"^18.11.15","concurrently":"^7.6.0","docopt":"^0.6.2","mocha":"^10.0.0","ts-node":"^10.9.1","typescript":"^4.9.3"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"e84fccc670c9307d5814821507f2dc23d06846c5","_id":"apperror_js@2.4.3","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-vmIUQXAegbnWR0ANj8U6//q4xASVHZOateVJs18RXssT40lcYAPM41VyCUlybBGow1NHaiQqDBoXn5THS7Bduw==","shasum":"bb88f71dc6d2ef2aa80b2eca2522888e01fb6554","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-2.4.3.tgz","fileCount":3,"unpackedSize":26015,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDSDW8U/qyrOti1KlQv85+IQbN04B2hALohEkGAX8yTXAiAYJL3AjeQF9sRx4vZppBrwDiEJa3HXa1tIV2PSHYs5Xw=="}]},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_2.4.3_1693362369324_0.361060570322963"},"_hasShrinkwrap":false},"2.4.4":{"name":"apperror_js","version":"2.4.4","description":"Make logging and reporting of errors easier, more informative, and more consistent.","type":"commonjs","scripts":{"clean":"rm ./dist-???/*","watch":"concurrently npm:watch:*","watch:es6":"npx tsc -p tsconfig-es6.json --watch","watch:cjs":"npx tsc -p tsconfig-cjs.json --watch","build":"concurrently npm:build:*","build:es6":"npx tsc -p tsconfig-es6.json && node ./create-dist-package.json.js es6","build:cjs":"npx tsc -p tsconfig-cjs.json && node ./create-dist-package.json.js cjs","test":"mocha"},"exports":{".":{"require":"./dist-cjs/index.js","import":"./dist-es6/index.js"},"./es6":"./dist-es6/index.js","./es6/":"./dist-es6/","./cjs":"./dist-cjs/index.js","./cjs/":"./dist-cjs/"},"main":"./dist-cjs/index.js","types":"./dist-cjs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"callsite":"^1.0.0","serialize-anything":"^1.2.3"},"devDependencies":{"lodash-es":"^4.17.21","@types/node":"^18.11.15","concurrently":"^7.6.0","docopt":"^0.6.2","mocha":"^10.0.0","ts-node":"^10.9.1","typescript":"^4.9.3"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"6291278da6e3084f87aa32f95dae98e83898d73d","_id":"apperror_js@2.4.4","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-Il5rNHqChqQM1ySwKOLRcPoCIWl7G+1sHLRacnzk+023Cobce1PCoafCbPIERrpj+4A1DMJqtWBBKereeDzMcQ==","shasum":"fd87c3df89a84b879b1d7c7cd5eb8c8b84fb6d6a","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-2.4.4.tgz","fileCount":3,"unpackedSize":26079,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkBLXcM6bLd5QdhTRlLH1Gu5BTvi1UlgAZyYAKchjaQwIgR7j4DI3B4H7cf94v2LSEc5qbU9xDtS53RbNgKx+yEgk="}]},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_2.4.4_1693362964647_0.7853647153059022"},"_hasShrinkwrap":false},"2.4.5":{"name":"apperror_js","version":"2.4.5","description":"Make logging and reporting of errors easier, more informative, and more consistent.","type":"commonjs","scripts":{"clean":"rm ./dist-???/*","watch":"concurrently npm:watch:*","watch:es6":"npx tsc -p tsconfig-es6.json --watch","watch:cjs":"npx tsc -p tsconfig-cjs.json --watch","build":"concurrently npm:build:*","build:es6":"npx tsc -p tsconfig-es6.json && node ./create-dist-package.json.js es6","build:cjs":"npx tsc -p tsconfig-cjs.json && node ./create-dist-package.json.js cjs","test":"mocha"},"exports":{".":{"require":"./dist-cjs/index.js","import":"./dist-es6/index.js"},"./es6":"./dist-es6/index.js","./es6/":"./dist-es6/","./cjs":"./dist-cjs/index.js","./cjs/":"./dist-cjs/"},"main":"./dist-cjs/index.js","types":"./dist-cjs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"callsite":"^1.0.0","serialize-anything":"^1.2.3"},"devDependencies":{"lodash-es":"^4.17.21","@types/node":"^18.11.15","concurrently":"^7.6.0","docopt":"^0.6.2","mocha":"^10.0.0","ts-node":"^10.9.1","typescript":"^4.9.3"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","gitHead":"bb910639ef18904042bf23c891f685fb1268ea17","_id":"apperror_js@2.4.5","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-GUwsyDp+O7P/8IUrLXfkbJBhbznjtz56RDYSNyL3Z64ghCQ7toJoB4OtmxQl47Yzpvuf7RQISONhZfxFh1sn8Q==","shasum":"9b0e73e52c493f1bcbf64dd79f024f17cf4fb5fd","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-2.4.5.tgz","fileCount":11,"unpackedSize":241905,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFvlLi2wwBYJWI8x+qQu1OC94C/K1W5ZLQ6Mufaw49QlAiEAuP/ZFYjGAyJDe43r+BDm9MBr0CXFgKwY07HaTCULE5A="}]},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_2.4.5_1693363622386_0.2935399688536555"},"_hasShrinkwrap":false},"2.4.6":{"name":"apperror_js","version":"2.4.6","description":"Make logging and reporting of errors easier, more informative, and more consistent.","type":"commonjs","scripts":{"clean":"rm ./dist-???/*","watch":"concurrently npm:watch:*","watch:es6":"npx tsc -p tsconfig-es6.json --watch","watch:cjs":"npx tsc -p tsconfig-cjs.json --watch","build":"concurrently npm:build:*","build:es6":"npx tsc -p tsconfig-es6.json && node ./create-dist-package.json.js es6","build:cjs":"npx tsc -p tsconfig-cjs.json && node ./create-dist-package.json.js cjs","test":"NODE_OPTIONS=--experimental-vm-modules npx jest"},"exports":{".":{"require":"./dist-cjs/index.js","import":"./dist-es6/index.js"},"./es6":"./dist-es6/index.js","./es6/":"./dist-es6/","./cjs":"./dist-cjs/index.js","./cjs/":"./dist-cjs/"},"main":"./dist-cjs/index.js","types":"./dist-cjs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"callsite":"^1.0.0","serialize-anything":"^1.2.3"},"devDependencies":{"@types/node":"^18.11.15","jest":"^29.6.4","concurrently":"^7.6.0","docopt":"^0.6.2","lodash-es":"^4.17.21","typescript":"^4.9.3"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","jest":{"transform":{},"testMatch":["**/?(*.)+(test.[cm]js)"]},"gitHead":"5f4cd4673c63fc2c9debe71ea7686b76c3b32fc2","_id":"apperror_js@2.4.6","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-JngaIqgUcQD0XlCCih5JAKtMNrKRn3GStJ591ANenmaG6zkBWJpRRvvfIxponFPFp5toNZBcf6qobj7HcXWYQw==","shasum":"c0921dd1cbbda4aba348a89f8373edf11db5ecc3","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-2.4.6.tgz","fileCount":11,"unpackedSize":242137,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDfeceuS92BjGDiPV9N4vOfkEQbHsHIMQeN8koLaBDRcQIhAKHdgsR2yxCZHFRD0PVo7oRKjXo8l2tkTSFv+ZrvX9Kz"}]},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_2.4.6_1693800185639_0.8254596126681544"},"_hasShrinkwrap":false},"2.4.7":{"name":"apperror_js","version":"2.4.7","description":"Make logging and reporting of errors easier, more informative, and more consistent.","type":"commonjs","scripts":{"clean":"rm ./dist-???/*","watch":"concurrently npm:watch:*","watch:es6":"npx tsc -p tsconfig-es6.json --watch","watch:cjs":"npx tsc -p tsconfig-cjs.json --watch","build":"concurrently npm:build:*","build:es6":"npx tsc -p tsconfig-es6.json && node ./create-dist-package.json.js es6","build:cjs":"npx tsc -p tsconfig-cjs.json && node ./create-dist-package.json.js cjs","test":"NODE_OPTIONS=--experimental-vm-modules npx jest"},"exports":{".":{"require":"./dist-cjs/index.js","import":"./dist-es6/index.js"},"./es6":"./dist-es6/index.js","./es6/":"./dist-es6/","./cjs":"./dist-cjs/index.js","./cjs/":"./dist-cjs/"},"main":"./dist-cjs/index.js","types":"./dist-cjs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"serialize-anything":"^1.2.3","stacktrace-parser":"^0.1.10"},"devDependencies":{"@types/node":"^18.11.15","concurrently":"^7.6.0","docopt":"^0.6.2","jest":"^29.6.4","lodash-es":"^4.17.21","typescript":"^4.9.3"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","jest":{"transform":{},"testMatch":["**/?(*.)+(test.[cm]js)"]},"gitHead":"aef94f30d514aa40de833b51cf548c560ec4e905","_id":"apperror_js@2.4.7","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-1w//T1CSiCV98Cv+zkdJ7kL3PF968vKsE/tT8SQIdIrHpgAXL0lFsFS6bHjm3dqxiIvsaJAGaDocQmKgB1LSeA==","shasum":"1d8c684885eb50e766e3389e807fbe47030c748d","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-2.4.7.tgz","fileCount":11,"unpackedSize":243735,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF2cIyqpQ3qUCS9xoXJlY/u0h64LX8F6MG6EFRTy8t1BAiEAvi8epjNXDTtX2EzCQNgoboXeqMmcRelYBRXIxuwHG9s="}]},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_2.4.7_1693809059600_0.27800504426477235"},"_hasShrinkwrap":false},"2.4.8":{"name":"apperror_js","version":"2.4.8","description":"Make logging and reporting of errors easier, more informative, and more consistent.","type":"commonjs","scripts":{"clean":"rm ./dist-???/*","watch":"concurrently npm:watch:*","watch:es6":"npx tsc -p tsconfig-es6.json --watch","watch:cjs":"npx tsc -p tsconfig-cjs.json --watch","build":"concurrently npm:build:*","build:es6":"npx tsc -p tsconfig-es6.json && node ./create-dist-package.json.js es6","build:cjs":"npx tsc -p tsconfig-cjs.json && node ./create-dist-package.json.js cjs","test":"NODE_OPTIONS=--experimental-vm-modules npx jest"},"exports":{".":{"require":"./dist-cjs/index.js","import":"./dist-es6/index.js"},"./es6":"./dist-es6/index.js","./es6/":"./dist-es6/","./cjs":"./dist-cjs/index.js","./cjs/":"./dist-cjs/"},"main":"./dist-cjs/index.js","types":"./dist-cjs/index.d.ts","repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"dependencies":{"serialize-anything":"^1.2.3","stacktrace-parser":"^0.1.10"},"devDependencies":{"@types/node":"^18.11.15","concurrently":"^7.6.0","docopt":"^0.6.2","jest":"^29.6.4","lodash-es":"^4.17.21","typescript":"^4.9.3"},"keywords":["logging"],"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"license":"ISC","bugs":{"url":"https://github.com/jric/apperror_js/issues"},"homepage":"https://github.com/jric/apperror_js#readme","jest":{"transform":{},"testMatch":["**/?(*.)+(test.[cm]js)"]},"gitHead":"2117283034bc0872f69bf0d65d4f6fa784b79909","_id":"apperror_js@2.4.8","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-nb6X9evPyAWu6kGkzXweza0Ucx2nDydjAPrR8jdaGUO5CfZ1ra1TDx/4715bVadtwNyj6Y4AOVKplq+OfDe4Ww==","shasum":"ec4d2b7236e1fc3970471fc26e60335f80773980","tarball":"https://registry.npmjs.org/apperror_js/-/apperror_js-2.4.8.tgz","fileCount":11,"unpackedSize":243852,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkB2OqLFyljTMP0G4PLScSaEirhWKPMDl3vtOMSIqsgwIhAOXjjPUupCiZQxx9/dfE8bngPkUPyEvEhlPU72qGjI17"}]},"_npmUser":{"name":"jric","email":"joshuarbox-junk1@yahoo.com"},"directories":{},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/apperror_js_2.4.8_1693819624408_0.10224665929951793"},"_hasShrinkwrap":false}},"time":{"created":"2022-06-22T22:11:51.396Z","1.0.0":"2022-06-22T22:11:51.567Z","modified":"2023-09-04T09:27:04.811Z","1.1.0":"2022-06-23T18:08:53.777Z","1.2.0":"2022-06-23T21:18:11.806Z","1.2.1":"2022-06-23T21:26:57.059Z","1.3.0":"2022-06-28T01:12:28.982Z","1.4.0":"2022-06-29T20:27:07.440Z","1.4.1":"2022-06-29T22:59:56.117Z","1.4.2":"2022-06-30T00:23:53.246Z","1.5.0":"2022-07-08T18:09:07.942Z","1.5.1":"2022-07-08T21:34:12.646Z","1.5.2":"2022-07-08T21:46:12.755Z","1.6.0":"2022-07-08T23:07:03.009Z","1.6.1":"2022-07-19T19:10:49.740Z","2.0.0":"2022-07-20T19:29:29.787Z","2.1.0":"2022-07-21T02:57:04.100Z","2.2.0":"2022-08-02T16:25:43.614Z","2.2.1":"2022-08-05T18:38:10.887Z","2.2.2":"2022-08-07T23:29:04.489Z","2.3.0":"2022-12-07T18:27:35.557Z","2.4.0":"2022-12-17T08:42:31.692Z","2.4.1":"2022-12-18T00:07:44.918Z","2.4.2":"2023-06-25T21:44:23.594Z","2.4.3":"2023-08-30T02:26:09.599Z","2.4.4":"2023-08-30T02:36:04.785Z","2.4.5":"2023-08-30T02:47:02.682Z","2.4.6":"2023-09-04T04:03:05.961Z","2.4.7":"2023-09-04T06:30:59.854Z","2.4.8":"2023-09-04T09:27:04.631Z"},"maintainers":[{"name":"jric","email":"joshuarbox-junk1@yahoo.com"}],"description":"Make logging and reporting of errors easier, more informative, and more consistent.","homepage":"https://github.com/jric/apperror_js#readme","keywords":["logging"],"repository":{"type":"git","url":"git+https://github.com/jric/apperror_js.git"},"author":{"name":"Joshua Richardson","email":"https://github.com/jric"},"bugs":{"url":"https://github.com/jric/apperror_js/issues"},"license":"ISC","readme":"# apperror_js\n\nThe purpose of this module is to make logging and reporting of errors easier, more informative, and more consistent.\n\nThis is the javascript version of https://github.com/CheggEng/apperror.\n\nLog messages include\n\n* The name of the system generating the message (helpful in pipelines)\n* The file name and line number where the log is written (helpful for quickly finding the relevant code)\n* The log level of the message (useful for quick identification and filtering)\n* The actual message\n\nLoggers can log any type of object with no hassle and optimum performance.\n\nLoggers can be set up to write to other streams, including in-memory status objects.\n\nIn addition, there is a bunch of other helpful functionality, see demo code below.\n\n## Usage\n\nInstall with `npm i apperror_js` or put `apperror_js` into `package.json` dependencies.\n\nFor ESM code:\n```\nimport { AppLogger, AppStatus, AppError, Options, makeASCII } from 'apperror_js';\nor if that fails use\nimport { AppLogger, AppStatus, AppError, Options, makeASCII } from 'apperror_js/es6';\n```\n\nFor commonJS code:\n\n```\nvar apperror=require(\"apperror_js\");\nof if that fails use\nvar apperror=require(\"apperror_js/cjs\");\nconst { AppLogger, AppStatus, AppError, Options, makeASCII } = apperror;\n\n```\n\nThen:\n```\nl = new AppLogger('demo');\n// objects are serialized directly to log (no string building)\nl.v1(\"Don't build string, \", [0, 1, 2, 3], \" or serialize \",\n        my_complex_object, \" unless verbose, so I can feel \",\n        \"free to make lots of logging statements!\");\nif (l.isSetDebug())\n    l.debug(\"I do want to protect logging inside conditional \",\n            \"if I need to log with \", slowFunctionCall());\n```\nOutput\n```\ndemo: DEBUG: demo.mjs:25: Don't build string, [0, 1, 2, 3], or\nserialize { \"complex\": \"object\" } unless verbose, so I can feel\nfree to make lots of logging statements!\ndemo: DEBUG: demo.mjs:28: I do want to protect logging inside\nconditional if I need to log with output of slow function call\n```\n\n## Demo Code \n\n```\n/**\n * Basic usage of the logger\n * @param {AppLogger} l - an instance to log onto\n * @returns what will be logged to diagnostic stream set on logger\n */\nexport function doBasicLogging(l) {\n    l.error(\"I owe: $\", 300 + 100, \" dollars to my ex\");\n    l.warn(\"I don't have enough money in the bank:  $\", 0);\n    l.info(\"wise to pay your debts!\");\n    l.debug(\"i probably shouldn't borrow from her\");\n    l.verbose = 2;\n    l.v1(\"I borrowed $400\");\n    l.v2(\"First it was $300\");\n    l.v2(\"Then it was another $100\");\n    l.v3(\"(It was to pay the rent)\");\n    return `\ndemo: ERROR: demo.js:38: I owe: $400 dollars to my ex\ndemo: WARN: demo.js:39: I don't have enough money in the bank:  $0\ndemo: INFO: demo.js:40: wise to pay your debts!\ndemo: DEBUG: demo.js:41: i probably shouldn't borrow from her\ndemo: V1: demo.js:43: I borrowed $400\ndemo: V2: demo.js:44: First it was $300\ndemo: V2: demo.js:45: Then it was another $100\n`;\n}\n\n// Basic usage - using a status object\n\n/** \n * Illustrates using the AppStatus object\n * @param {AppLogger} l - an instance to log into\n */\nexport function doBasicStatus(l) {\n    let s = new AppStatus();\n    if (s.ok) l.info(\"we're doing fine\");\n    \n    s = new AppStatus(\"unable to find boot sector\");\n    s.addWarn(\"backup all data now\");\n    if (s.hasErrors()) // show whole status, inc. the warning\n        l.error(\"We have a problem: \", s);\n    return `\ndemo: INFO: demo.mjs:37: we're doing fine\ndemo: ERROR: demo.mjs:43: We have a problem: ERROR: demo.mjs:39: unable to find boot sector; WARN: demo.mjs:40: backup all data now\n`;\n}\n\n// Intermediate usage - different verbosity levels\n\nexport function doCheckVerbose(l) {\n    let l1 = new AppLogger('here we set verbosity', {verbose: 0});\n    l1.v1(\"won't print (verbose=0), but also won't throw an error, \",\n         \"because verbosity explicitly set\");\n    delete process.env.VERBOSE;\n    let l2 = new AppLogger('here we did not set verbosity');\n    try {\n        l2.v1(\"will throw an error (verbosity not set)\");\n    } catch (err) {\n        l.err(err.toString());\n    }\n    process.env.VERBOSE = 3;\n    l2 = new AppLogger('get verbosity from env');\n    l2.diagStream = l.diagStream;\n    l2.v1(\"can do 'verbose' logging now\");\n    return `\ndemo: ERROR: demo.mjs:66: Error: verbosity not set on logger 'here we did not set verbosity'\nget verbosity from env: V1: demo.mjs:70: can do 'verbose' logging now\n`\n}\n\n/** helper function to show effects of verbosity */\nfunction showVerbosity(l) {\n    let v2 = new Options({\"level\": 2});    \n    l.ifVerbose(\"ok, we're verbose!\");\n    l.ifVerbose(\"very verbose!\", v2);          // checks verbosity >=2 before writing log\n    if (l.verbose > 2)                         // manual check, verbosity >=3 before writing\n        l.warn(\"we're too darned verbose!\");\n}\n\n/** Illustrates how to change verbosity of logger */\nexport function doShowVerbose(l) {\n    // helper function\n    let l1 = new AppLogger('demo', {verbose: 2});  // can set verbosity in the constructor\n    l1.diagStream = l.diagStream;                  // mirror output to original logger\n    showVerbosity(l1);\n    l1.v1(\"a verbose message\");\n    l1.v2(\"a very verbose message\");\n    l1.v3(\"a very, very verbose message\");\n    l1.verbose = 1;                                // property way to set\n    showVerbosity(l1);\n    l1.setVerbose(0);                              // or set with setter\n    showVerbosity(l1);\n    return `\ndemo: V1: demo.mjs:68: ok, we're verbose!\ndemo: V2: demo.mjs:69: very verbose!\ndemo: V1: demo.mjs:77: a verbose message\ndemo: V2: demo.mjs:78: a very verbose message\ndemo: V1: demo.mjs:68: ok, we're verbose!\n`;\n}\n\n/** turn anything in javascript to a compact string representation */\nexport function doMakeASCII(l1) {\n    l1.info('a string: ', makeASCII('foo'));\n    l1.info('a number: ', makeASCII(42));\n    l1.info('null: ', makeASCII(null));\n    l1.info('undefined: ', makeASCII(undefined));\n    l1.info('an array: ', makeASCII(['foo', 42]));\n    l1.info('an object: ', {'foo': 42});\n    l1.info('a map: ', makeASCII(new Map().set('foo', 42)));\n    l1.info('an Error: ', makeASCII(new Error('bad stuff happened')));\n    return `\ndemo: INFO: demo.mjs:98: a string: foo\ndemo: INFO: demo.mjs:98: a number: 42\ndemo: INFO: demo.mjs:98: null: null\ndemo: INFO: demo.mjs:98: undefined: undefined\ndemo: INFO: demo.mjs:98: an array: [\"foo\",42]\ndemo: INFO: demo.mjs:98: an object: {\"foo\":42}\ndemo: INFO: demo.mjs:98: a map: {\"foo\":42}\ndemo: INFO: demo.mjs:118: an Error: Error: bad stuff happened\n    <STACKTRACE - 1 line>\n`;\n}\n\n// Intermediate usage - debug and tag / filter the messages\n\nexport function doShowDebug(l) {\n    \n    let mathTag = new Options({\"tag\": \"math\"});\n    let spellingTag = new Options({\"tag\": 'spelling'});\n    function showDebugLevel(l) {\n        l.ifDebug(\"we're debuggin!\");                          // only shows if debug set to true or '*'\n        l.ifDebug(5, \" =? \", 2 + 3, mathTag);                  // only shows if debug includes '*' or 'math'\n        l.ifDebug(\"spelling is a breeze\", spellingTag);        // only shows if debug includes '*' or 'spelling'\n    }\n    \n    let l1 = new AppLogger('second-logger', {verbose: 0, debug: true});\n    l1.diagStream = l.diagStream;                              // echo all data onto stream for logger, l\n    showDebugLevel(l1);\n    l1.setDebug(false);                                        // can set (or reset)\n    showDebugLevel(l1);\n    l1.setDebug('math');                                       // can set to debug by tagname, but then we filter\n    showDebugLevel(l1);\n    l1.setDebug(['math', 'art']);                              // or multiple tags\n    showDebugLevel(l1);\n    return `\nsecond-logger: DEBUG: demo.mjs:100: we're debuggin!\nsecond-logger: DEBUG[math]: demo.mjs:101: 5 =? 5\nsecond-logger: DEBUG[spelling]: demo.mjs:102: spelling is a breeze\nsecond-logger: INFO: demo.mjs:110: math debugging enabled\nsecond-logger: DEBUG[math]: demo.mjs:101: 5 =? 5\nsecond-logger: INFO: demo.mjs:112: math debugging enabled\nsecond-logger: INFO: demo.mjs:112: art debugging enabled\nsecond-logger: DEBUG[math]: demo.mjs:103: 5 =? 5\n`;\n}\n\n// Intermediate usage - writing log messages as strings\n\n/** getting log string instead of actually logging to the current diagnostics stream, e.g. stderr */\nexport function doLogToString(l) {\n    let forLater = 'sleep this: ' + l.warn(\"I want to capture this log message for later\", new Options({\"asString\": true}));\n    l.info(\"Earlier I saw this message: \", forLater);\n    return `\ndemo: INFO: demo.mjs:134: Earlier I saw this message: sleep this: demo: WARN: demo.mjs:133: I want to capture this log message for later\n`;\n}\n\n// Intermediate usage - more ways to use AppStatus\n\n/** is status ok? */\nexport function doAppStatusAsBool(l) {\n    function checkOk(s) {\n        if (s.ok()) l.info('we\\'re ok');\n        else l.info('not ok: ', s.errorMsg());\n    }\n    let s = new AppStatus();\n    checkOk(s);\n    s.addWarn(\"something fishy\");\n    checkOk(s);\n    s.addError('fish is rotten');\n    checkOk(s);\n    return `\ndemo: INFO: demo.mjs:142: we're ok\ndemo: INFO: demo.mjs:144: we're ok\ndemo: INFO: demo.mjs:146: not ok: ERROR: demo.mjs:145: fish is rotten\n`;\n}\n\n/** dumping the status object\n *  shows all info, warnings, errors, and everything else in the status object\n */\nexport function doAppStatusDump(l) {\n    l.info(new AppStatus());\n    return `\ndemo: INFO: demo.mjs:160: ok\n`;\n}\n\n/** adding/removing info/warnings/errors to the status */\nexport function doAddDiagnosticsToStatus(l) {\n    let s = new AppStatus();\n    s.addInfo(\"threshold 1 was not met\");\n    s.addInfo(\"threshold 2 was not met\");\n    if (s.hasInfo()) {\n        l.info(s.infoMsg());\n        s.clearInfo();                    // way to clear diagnostics \n    }\n    s.addWarn(\"I think the wheels fell off\");\n    if (s.hasWarnings()) {\n        l.warn(s.warnMsg());\n        for (let warn of s.warnings)      // it's a list we can iterate\n            if (warn.includes(\"the wheels fell off\"))\n                s.addError(warn);         // will record this line number and line number of warning\n        s.warnings = [];                  // We can also assign directly to the list, e.g. to clear\n    }\n    if (s.hasErrors())\n        l.error(s.errorMsg());            // N.B. l.error(s) would be the same\n    return `\ndemo: INFO: demo.mjs:175: INFO: demo.mjs:172: threshold 1 was not met; demo.mjs:173: threshold 2 was not met\ndemo: WARN: demo.mjs:180: WARN: demo.mjs:178: I think the wheels fell off\ndemo: ERROR: demo.mjs:186: ERROR: demo.mjs:182: demo.mjs:177: I think the wheels fell off\n`\n}\n\n/** adding a return value to status object (e.g. to pass it up the call stack along with the diagnostics) */\nexport function doAddValueToStatus(l1) {\n    let s = new AppStatus(\"Houston, we have a problem\");\n    l1.info(\"status hasValue(): \", s.hasValue()); // no value yet, but ok to check\n    s.addValue(\"foo\");\n    try {\n        l1.info(\"got value '\", s.getValue(), \"'\");\n    } catch (err) {\n        l1.warn(err);\n        l1.info(\"status hasValue(): \", s.hasValue()); // ok to see if there is a value; just don't retrieve until handling errors\n        s.clearErrors(); // normally, handle errors before clearing them (e.g. log them)\n        l1.info(\"got value '\", s.getValue(), \"'\");  // now, no problem\n    }\n    return `\ndemo: INFO: demo.mjs:220: status hasValue(): false\ndemo: WARN: demo.mjs:225: AppError: ERROR: demo.mjs:223: You must clear errors on status object before accessing value: ERROR: demo.mjs:219: Houston, we have a problem\ndemo: INFO: demo.mjs:226: status hasValue(): true\ndemo: INFO: demo.mjs:228: got value 'foo'\n`;\n}\n\n/** adding additional values to the status object */\nexport function doAddAdditionalValuesToStatus(l) {\n    let s = new AppStatus();\n    s.myOtherValue = \"bar\";   // I can use any property name here\n    s.myFooValue = \"foo\";\n    l.info(\"my status also has value \", s.myOtherValue);\n    \n    // getExtraAttrs() returns a Map with all the custom values as kv pairs\n    l.info(\"custom value: \", s.getExtraAttrs().get(\"myOtherValue\"));\n    return `\ndemo: INFO: demo.mjs:207: my status also has value bar\ndemo: INFO: demo.mjs:210: custom value: bar\n`;\n}\n\nexport function doDedupMessages(l) {\n    let s = new AppStatus()\n    // deduping messages to remove clutter\n    for (let i of [1, 2])\n        s.addInfo(\"threshold 1 was not met\");\n    s.dedupInfo();  // two messages about threshold 1 on same line become a single message with (x2) indicator\n    l.info(s.infoMsg());\n    return `\ndemo: INFO: demo.mjs:227: INFO: demo.mjs:225: threshold 1 was not met (x2)\n`;\n}\n\n/** the \"last_error\" added to the status */\nexport function doCheckLastError(l) {\n    let s = new AppStatus(\"1. bad stuff happened\");  // last_error = \"1. bad stuff ...\"\n    s.addError(\"2. the driver bailed\");              // last_error  = \"2. the driver ...\"\n    let currentStatus = new AppStatus(\"3. the wheels fell off the bus\");\n    s.addStatus(currentStatus);                      // last_error = \"3. the wheels ...\"\n    if (s.lastError.includes(\"the wheels fell off\"))\n        l.info(\"at the end of the day, the wheels fell off\");\n    else\n        l.error(\"unexpected sequence of events; last error was: \", s.lastError);\n    return `\ndemo: INFO: demo.mjs:236: at the end of the day, the wheels fell off\n`;\n}\n\n/** converting between status object and exception */\nexport function doSwitchBetweenStatusAndException(l) {\n    let s = new AppStatus(\"the wheels fell off the bus\");\n    try {\n        // We can turn the status object to an AppError exception\n        throw new AppError(s); // same as new AppError(s.toString());\n        // Or we can directly create the AppError as easily as an AppStatus object\n        throw new AppError(\"Unexpectedly, we still have \", 4, \" wheels\");\n    } catch (err) {\n        // we turn the exception back to a status object, e.g. to combine it with other status objects, etc.\n        let currentStatus = err instanceof AppError ? err.toStatus() : null;\n        if (currentStatus) {\n            currentStatus.addWarn(\"Now we can do more with the status object\");\n            l.info(currentStatus);\n        } else {\n            l.err('Unexpected exception: ', err.message);\n        }\n    }\n    return `\ndemo: INFO: demo.mjs:268: ERROR: demo.mjs:260: ERROR: demo.mjs:257: the wheels fell off the bus; WARN: demo.mjs:267: Now we can do more with the status object\n`;\n}\n\n/** Sometimes you want to attach multiple values to an AppStatus, as a return value. \n * You can find out which extra attributes have been added. */\nexport function doGetExtraAttributes(l1) {\n    // 800-464-4000\n    let s = new AppStatus();\n    s.addValue(2); // this value is reported as an \"extra\" attribute\n    s.addWarn(\"haha\"); // diagnostics are not: error, warning, info, debug, v1, ...\n    s.foo = \"bar\";\n    let e = s.getExtraAttrs();\n    l1.info('extra attributes: ', Array.from(e.keys()).sort());\n    l1.info('foo: ', e.get('foo'));\n    return `\n    demo: INFO: demo.mjs:286: extra attributes: [\"foo\",\"value\"]\n    demo: INFO: demo.mjs:287: foo: bar\n`;\n}\n\n/** merging status objects together\n  *   Handy to keep track of the cumulative outcome of multiple, but unrelated function calls\n  */\nfunction _getMergedStatusObjects() {\n    let s1 = new AppStatus().addInfo(\"Stuff is going well\").addValue(1);\n    let s2 = new AppStatus(\"This time we blew it\").addValue(2);\n    s2.foo = 'bar';  // extra attribute\n    // here we'll combine the info, error, and custom values set on both status objects, but when there are\n    //   conflicts, the last status object wins, so value will be 2\n    s1.addStatus(s2);\n    return s1;\n}\n\nexport function doMergeStatusObjects(l1) {\n    let s1 = _getMergedStatusObjects();\n    l1.info(s1);\n    return `\n    demo: INFO: demo.mjs:196: ERROR: demo.mjs:191: This time we blew it; INFO: demo.mjs:190: Stuff is going well; extra attributes: {\"value\":2,\"foo\":\"bar\"}\n`;\n}\n\n/**\n## Logging all status levels at the appropriate log level\n### The logger will create an INFO for each info entry in the status object, a WARN entry for each warn\n###  etnry, etc.\n */\nexport function doLogAllLevels(l) {\n    let s1 = _getMergedStatusObjects();\n    s1.log(l);\n    // we can also prepend a custom message to each of those log lines\n    s1.log(l, \"This is how it went down\");\n    return `\ndemo: ERROR: demo.mjs:284: ERROR: demo.mjs:191: This time we blew it\ndemo: INFO: demo.mjs:284: INFO: demo.mjs:190: Stuff is going well\ndemo: ERROR: demo.mjs:286: This is how it went down: ERROR: demo.mjs:191: This time we blew it\ndemo: INFO: demo.mjs:286: This is how it went down: INFO: demo.mjs:190: Stuff is going well\n`;\n}\n\n// Advanced usage\n\n/** capture all log messages into a buffer  */\nimport {PassThrough} from 'node:stream';\nexport function doCaptureIntoABuffer(l) {\n    let buff = new PassThrough();\n    let restore = l.diagStream;\n    l.diagStream = buff;\n    l.info(\"logging to a buffer now - we have to take care not to log more than the default buffer size before reading the data back\");\n    l.diagStream = restore;\n    l.info(\"logging normally again; earlier we got: \" + buff.read());\n    buff.end(); // ends write stream\n    buff.destroy(); // ends read stream\n    return `\ndemo: INFO: demo.mjs:305: logging normally again; earlier we got: demo: INFO: demo.mjs:301: logging to a buffer now - we have to take care not to log more than the default buffer size before reading the data back\n`;\n}\n\n/** easily set log levels from your commandline arguments\n  *   -- only works if you're using a \"standard\" commandline parser like docopt and you define 'debug' or 'verbose'\n  *   arguments, which will set 'debug'/'verbose' properties in your object or keys in a dict\n  */\n import {docopt} from 'docopt';\n export function doSetFromArgs(l1) {\n    let usage = `\nUsage: \n  demo [--verbose]... [--debug]\n  `;\n    let args = docopt(usage, {argv: ['--verbose', '--verbose'], version: 'demo 1.0'});\n    l1.setFromArgs(args);\n    showVerbosity(l1);  // will show how verbose we are, depending on which arguments were passed to demo\n    return `\ndemo: V1: demo.mjs:78: ok, we're verbose!\ndemo: V2: demo.mjs:79: very verbose!\n`;\n}\n\n/** logging a line from higher in the call stack\n  * When you have an error handler you don't want to put the file location of the handler in the log.  \n  *  Instead, you want to log the location where the error was detected.  All of the logger functions have \n  *  the ability to specify higher stack frames to use when constructing the log message.\n  *  See this example:\n  */\nexport function doHideDeepCallStack(l) {\n    /** We return the string, instead of logging immediately because of asString parameter */\n    function constructStatus(msg) {\n        return l.error(\"I'm deep in the error handler: \", msg, new Options({extraFrames: 2, asString: true}));\n    }\n    /**\n     *  Maybe I want to send diagnostics somewhere other than the standard log file, or do other processing on errors,\n     *  so I make an error handler for my message\n     */\n    function handleError(msg) {\n        let deepMsg = constructStatus(msg);  // this is just for illustration\n        // AppLogger functions accept the extraFrames parameter\n        l.warn(\"I'm in the error handler: \", deepMsg, new Options({extraFrames: 1}));\n    }\n    handleError(\"Root problem is here\"); // all logging will cite this same line number\n    return `\ndemo: WARN: demo.mjs:368: I'm in the error handler: demo: ERROR: demo.mjs:368: I'm deep in the error handler: Root problem is here\n`;\n}\n\n/**\n * Test numFramesInThisModule()\n * \n * numFramesInThisModul() tells you how deep you are into the callstack for the current module\n### frame X: test.mjs (different file)\n### frame 1: doTellMeHowDeepIAm(l)\n### frame 2: c()\n### frame 3: b()\n### frame 4: a()\n */\nimport { numFramesInThisModule } from './index.mjs';\nexport function doTellMeHowDeepIAm(l) {\n    function a() {\n        l.info(\"num frames deep in this module: \", numFramesInThisModule());\n    }\n    function b() {\n        a()\n        l.info(\"num frames deep in this module: \", numFramesInThisModule());\n    }\n    function c() {\n        b();\n        l.info(\"num frames deep in this module: \", numFramesInThisModule());\n    }\n    c();\n    return `\ndemo: INFO: demo.mjs:50: num frames deep in this module: 4\ndemo: INFO: demo.mjs:54: num frames deep in this module: 3\ndemo: INFO: demo.mjs:58: num frames deep in this module: 2\n`;\n}\n\nimport { adorn } from './index.mjs';\nexport function doAdornMessage(l) {\n    l.info(adorn(\"Hello!\"));  // adorn and info both stamp linenumber (we wouldn't normally use both)\n    l.info(adorn(\"Hello\", \" world!\"));\n    l.info(adorn(\"Hello\", \" and check out my object! \", {foo: \"bar\"}));\n    return `\n    demo: INFO: demo.mjs:79: demo.mjs:79: Hello!\n    demo: INFO: demo.mjs:79: demo.mjs:80: Hello world!\n    demo: INFO: demo.mjs:79: demo.mjs:81: Hello and check out my object! {\"foo\":\"bar\"}\n`;\n}\n\n/** write a diagnostic at INFO level showing how the program has been called\n I like to put this at the start of every program, so I can easily tell what log level the program ran at  */\nexport function doAnnounceMyself(l) {\n    l.announceMyself();  // can also be called with asString=True parameter if you don't want to log immediately\n    return `\ndemo: INFO: demo.mjs:296: called as: node mocha\n`;\n}\n```\n\n## Changelog\n\n- 2.4.8: Fixed a couple short-circuit checks\n- 2.4.7: Use stacktrace-parser instead of callsite for more portability\n- 2.4.6: Switch from mocha to jest to test the module\n- 2.4.5: Fix the dist* to grab all the files underneath\n- 2.4.4: Define package as files in dist* instead of just dist\n- 2.4.3: I think I created the previous build without compiling the code first, so completely foobarred\n- 2.4.2: Make commonJS and ESM packages available with explicit import in case default doesn't work\n- 2.4.0: Publish both commonJS and ESM packages, per https://techsparx.com/nodejs/typescript/modules-01.html\n- 2.2.1: Upgraded version of serialize-any\n- 2.2.0: Log one line of stack trace when logging an object with stack (thrown object)\n- 2.1.0: Get verbosity from environment if not set explicitly\n- 2.0.0: More standard / convenient options handling.\n- 1.6.1: Handle logging objects with circular references\n- 1.6.0: Added Status.hasValue()\n- 1.5.2: Remove reference to demo.mjs too!\n- 1.5.1: Remove demo.mjs from package; it was causing module to fail to load due to missing dev dependency\n- 1.5.0: Added AppError / AppLogger.setFromArgs(), implemented AppStatus.getValue(), exposed makeASCII(); added assorted tests/fixes\n- 1.4.2: Another patch for a reference error when loaded from other modules.\n- 1.4.1: Removed unused member of AppLogger causing reference error when loaded from other modules.\n- 1.4.0: Added AppStatus and a bunch of tests.\n\n## For Maintainers\n\n### to publish new version of apperror_js\n\n1. npm run build\n2. npm test\n3. Update version in package.json, using semantic versioning\n4. Re-paste demo code above (if changed)\n5. Update Changelog section above\n6. git commit -a; git push\n7. npm pack (if needed to see what will go into the package)\n8. tar tzf <the generated tarball> (if needed to see what went in the package)\n9. npm login (if needed)\n10. npm publish","readmeFilename":"README.md"}