{"_id":"@aller/pino-gcp-transport","_rev":"24-6d40c061bbceb98989315c096c280888","name":"@aller/pino-gcp-transport","dist-tags":{"latest":"1.0.2"},"versions":{"0.2.3":{"name":"@aller/pino-gcp-transport","version":"0.2.3","keywords":["pino","google cloud","gcp","logging","transport","structured","stdout"],"author":{"url":"https://github.com/allermedia","name":"Aller Media"},"license":"MIT","_id":"@aller/pino-gcp-transport@0.2.3","maintainers":[{"name":"jimoe","email":"jon3828@gmail.com"},{"name":"lobunto","email":"marius.ibsen@gmail.com"},{"name":"goodleby","email":"goodleby@gmail.com"},{"name":"konrad-j","email":"konrad.jorgensen@gmail.com"},{"name":"roninjc","email":"jesus.castanocandela@gmail.com"},{"name":"toremeek","email":"tore.meek@aller.com"},{"name":"paed01","email":"pal.edman@outlook.com"},{"name":"kuhanloh","email":"kuhanloh@gmail.com"}],"homepage":"https://github.com/allermedia/pino-gcp-transport#readme","bugs":{"url":"https://github.com/allermedia/pino-gcp-transport/issues"},"dist":{"shasum":"98169fcce8b2dbb846097c2eedb3e2562e8ca213","tarball":"https://registry.npmjs.org/@aller/pino-gcp-transport/-/pino-gcp-transport-0.2.3.tgz","fileCount":14,"integrity":"sha512-zvAUB3dsEkZA9OtSuSbOkfK2aAisr7yY/hCCQqVSkCWZoK97XWDAX6RjWhwXCebcqkhJog/bnGoh+oo/zeRnfQ==","signatures":[{"sig":"MEUCIQDjT6vt/7dV3DhCvRgrjWhfl9qH7px5d3A3vVLHniV6zwIgUDBQRi1xfCHMISpZVQA+7rAV3WE/nhbSiZG10l5fAoI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63528},"main":"./lib/index.cjs","type":"module","types":"./types/index.d.ts","module":"./src/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./types/index.d.ts","import":"./src/index.js","require":"./lib/index.cjs"},"./tracing":{"types":"./types/index.d.ts","import":"./src/tracing.js","require":"./lib/tracing.cjs"}},"gitHead":"9c739e32e6c20733b5ce538444d722e5576fd87e","scripts":{"lint":"eslint . --cache && prettier . --check --cache","test":"mocha","build":"rollup -c && dts-buddy","example":"texample -g","pretest":"npm run build","cov:html":"c8 -n src -r html -r text mocha","posttest":"npm run lint && npm run example","test:lcov":"c8 -n src -r lcov -r text mocha","prepublishOnly":"npm run build"},"_npmUser":{"name":"paed01","email":"pal.edman@outlook.com"},"repository":{"url":"git+https://github.com/allermedia/pino-gcp-transport.git","type":"git"},"_npmVersion":"10.8.2","description":"Pino google cloud structured logging stdout transport","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.2","chai":"^5.1.1","nock":"^14.0.2","pino":"^9.1.0","mocha":"^11.1.0","eslint":"^9.3.0","rollup":"^4.38.0","express":"^5.1.0","fastify":"^5.3.2","globals":"^16.0.0","prettier":"^3.2.5","texample":"^0.0.8","dts-buddy":"^0.6.0","supertest":"^7.1.0","exp-config":"^4.2.1","@types/chai":"^5.0.0","@types/node":"^20.17.27","pino-pretty":"^13.0.0","@types/mocha":"^10.0.3","chronokinesis":"^7.0.0","@types/express":"^5.0.1","@rollup/plugin-commonjs":"^28.0.1","@rollup/plugin-node-resolve":"^16.0.1"},"peerDependencies":{"sonic-boom":"4.x","pino-abstract-transport":"2.x"},"_npmOperationalInternal":{"tmp":"tmp/pino-gcp-transport_0.2.3_1755842949475_0.19774247171691006","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@aller/pino-gcp-transport","version":"0.3.0","keywords":["pino","google cloud","gcp","logging","transport","structured","stdout"],"author":{"url":"https://github.com/allermedia","name":"Aller Media"},"license":"MIT","_id":"@aller/pino-gcp-transport@0.3.0","maintainers":[{"name":"jimoe","email":"jon3828@gmail.com"},{"name":"lobunto","email":"marius.ibsen@gmail.com"},{"name":"goodleby","email":"goodleby@gmail.com"},{"name":"konrad-j","email":"konrad.jorgensen@gmail.com"},{"name":"roninjc","email":"jesus.castanocandela@gmail.com"},{"name":"toremeek","email":"tore.meek@aller.com"},{"name":"paed01","email":"pal.edman@outlook.com"},{"name":"kuhanloh","email":"kuhanloh@gmail.com"}],"homepage":"https://github.com/allermedia/pino-gcp-transport#readme","bugs":{"url":"https://github.com/allermedia/pino-gcp-transport/issues"},"dist":{"shasum":"102474af4f9c93b2a884311b845825fc535eac1f","tarball":"https://registry.npmjs.org/@aller/pino-gcp-transport/-/pino-gcp-transport-0.3.0.tgz","fileCount":14,"integrity":"sha512-+kvRWdiqAAbgQtPw8hVMgr9Rc7f8/OkzVr9HYzGckGuWoJyAB2C4MTHIcaIX7DBV/dUETuOYsV5dG1yr0auo5g==","signatures":[{"sig":"MEQCICi5xzE1WRGDA7dhd6CMVTvPnuxKVNbgq871z+y6Gh8DAiBAzbkvKCTSjssmefcJXeK8KEsMAZ5LrH0CJsL6EwaRGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64093},"main":"./lib/index.cjs","type":"module","types":"./types/index.d.ts","module":"./src/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./types/index.d.ts","import":"./src/index.js","require":"./lib/index.cjs"},"./tracing":{"types":"./types/index.d.ts","import":"./src/tracing.js","require":"./lib/tracing.cjs"}},"gitHead":"97aa6cbc4ac7899245e144dd0ce0c2da2a1e6448","scripts":{"lint":"eslint . --cache && prettier . --check --cache","test":"mocha","build":"rollup -c && dts-buddy","example":"texample -g","pretest":"npm run build","cov:html":"c8 -n src -r html -r text mocha","posttest":"npm run lint && npm run example","test:lcov":"c8 -n src -r lcov -r text mocha","prepublishOnly":"npm run build"},"_npmUser":{"name":"paed01","email":"pal.edman@outlook.com"},"repository":{"url":"git+https://github.com/allermedia/pino-gcp-transport.git","type":"git"},"_npmVersion":"10.8.2","description":"Pino google cloud structured logging stdout transport","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.2","chai":"^6.0.1","nock":"^14.0.2","pino":"^10.0.0","mocha":"^11.1.0","eslint":"^9.3.0","rollup":"^4.38.0","express":"^5.1.0","fastify":"^5.3.2","globals":"^16.0.0","prettier":"^3.2.5","texample":"^0.0.8","dts-buddy":"^0.6.0","supertest":"^7.1.0","exp-config":"^4.2.1","@types/chai":"^5.0.0","@types/node":"^20.17.27","pino-pretty":"^13.0.0","@types/mocha":"^10.0.3","chronokinesis":"^7.0.0","@types/express":"^5.0.1","@rollup/plugin-commonjs":"^28.0.1","pino-abstract-transport":"^3.0.0","@rollup/plugin-node-resolve":"^16.0.1"},"peerDependencies":{"sonic-boom":"4.x","pino-abstract-transport":">=2"},"_npmOperationalInternal":{"tmp":"tmp/pino-gcp-transport_0.3.0_1759756176187_0.7432306677896514","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@aller/pino-gcp-transport","version":"0.3.1","keywords":["pino","google cloud","gcp","logging","transport","structured","stdout"],"author":{"url":"https://github.com/allermedia","name":"Aller Media"},"license":"MIT","_id":"@aller/pino-gcp-transport@0.3.1","maintainers":[{"name":"jimoe","email":"jon3828@gmail.com"},{"name":"lobunto","email":"marius.ibsen@gmail.com"},{"name":"goodleby","email":"goodleby@gmail.com"},{"name":"konrad-j","email":"konrad.jorgensen@gmail.com"},{"name":"roninjc","email":"jesus.castanocandela@gmail.com"},{"name":"toremeek","email":"tore.meek@aller.com"},{"name":"paed01","email":"pal.edman@outlook.com"},{"name":"kuhanloh","email":"kuhanloh@gmail.com"}],"homepage":"https://github.com/allermedia/pino-gcp-transport#readme","bugs":{"url":"https://github.com/allermedia/pino-gcp-transport/issues"},"dist":{"shasum":"0d402a9be0d82d35d7f26429784816f491e0fcdc","tarball":"https://registry.npmjs.org/@aller/pino-gcp-transport/-/pino-gcp-transport-0.3.1.tgz","fileCount":14,"integrity":"sha512-3qBaDiS+Uv2syDZs7FvDkUGHZp9bHCal5WbwdvyxiVEA7kbdGoxoeqU0wOy9m9EY/hjSlfNhE5nUlpu/YieTmQ==","signatures":[{"sig":"MEYCIQCrUkO64S9s9gF/jVx4zcFG3bXWzpINZ01cG5StuczibgIhAMOdOU/ejhVyvJoH14mJyqswN8DtSFEpOc5Fxr/Ubzod","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66383},"main":"./lib/index.cjs","type":"module","types":"./types/index.d.ts","module":"./src/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./types/index.d.ts","import":"./src/index.js","require":"./lib/index.cjs"},"./tracing":{"types":"./types/index.d.ts","import":"./src/tracing.js","require":"./lib/tracing.cjs"}},"gitHead":"cf6ddad7f63a6f3bc29b6f474844eae4c5c0792d","scripts":{"lint":"eslint . --cache && prettier . --check --cache","test":"mocha","build":"rollup -c && dts-buddy","example":"texample -g","pretest":"npm run build","cov:html":"c8 -n src -r html -r text mocha","posttest":"npm run lint && npm run example","test:lcov":"c8 -n src -r lcov -r text mocha","prepublishOnly":"npm run build"},"_npmUser":{"name":"paed01","email":"pal.edman@outlook.com"},"repository":{"url":"git+https://github.com/allermedia/pino-gcp-transport.git","type":"git"},"_npmVersion":"10.8.2","description":"Pino google cloud structured logging stdout transport","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.2","chai":"^6.0.1","nock":"^14.0.2","pino":"^10.0.0","mocha":"^11.1.0","eslint":"^9.3.0","rollup":"^4.38.0","express":"^5.1.0","fastify":"^5.3.2","globals":"^16.0.0","prettier":"^3.2.5","texample":"^0.0.8","dts-buddy":"^0.6.0","supertest":"^7.1.0","exp-config":"^4.2.1","@types/chai":"^5.0.0","@types/node":"^20.17.27","pino-pretty":"^13.0.0","@types/mocha":"^10.0.3","chronokinesis":"^7.0.0","@types/express":"^5.0.1","@rollup/plugin-commonjs":"^28.0.1","pino-abstract-transport":"^3.0.0","@rollup/plugin-node-resolve":"^16.0.1"},"peerDependencies":{"sonic-boom":"4.x","pino-abstract-transport":">=2"},"_npmOperationalInternal":{"tmp":"tmp/pino-gcp-transport_0.3.1_1761824690746_0.11176185949813555","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@aller/pino-gcp-transport","version":"1.0.0","keywords":["pino","google cloud","gcp","logging","transport","structured","stdout"],"author":{"url":"https://github.com/allermedia","name":"Aller Media"},"license":"MIT","_id":"@aller/pino-gcp-transport@1.0.0","maintainers":[{"name":"jimoe","email":"jon3828@gmail.com"},{"name":"lobunto","email":"marius.ibsen@gmail.com"},{"name":"goodleby","email":"goodleby@gmail.com"},{"name":"konrad-j","email":"konrad.jorgensen@gmail.com"},{"name":"roninjc","email":"jesus.castanocandela@gmail.com"},{"name":"toremeek","email":"tore.meek@aller.com"},{"name":"paed01","email":"pal.edman@outlook.com"},{"name":"kuhanloh","email":"kuhanloh@gmail.com"}],"homepage":"https://github.com/allermedia/pino-gcp-transport#readme","bugs":{"url":"https://github.com/allermedia/pino-gcp-transport/issues"},"dist":{"shasum":"1ada64c877300708deab15c1a37fd230b49159f6","tarball":"https://registry.npmjs.org/@aller/pino-gcp-transport/-/pino-gcp-transport-1.0.0.tgz","fileCount":14,"integrity":"sha512-7NJjgF3mkBcWGYzSyGgkyZIfg9iMeE8uO9zf04v1XRO7K6xtqxLAYfOrZ9bxtsv6iKxrnZOdryKz8eGQu3cjZA==","signatures":[{"sig":"MEUCIEcKD42KwfJm94qKGcLqn9lXtRT6p0XREMNpfIFQpJcZAiEAiLHppIuzKGR7BN0BuDB4ja0E2/PU1w66W4bjSdmF1rg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aller%2fpino-gcp-transport@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":66433},"main":"./lib/index.cjs","type":"module","types":"./types/index.d.ts","module":"./src/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./types/index.d.ts","import":"./src/index.js","require":"./lib/index.cjs"},"./tracing":{"types":"./types/index.d.ts","import":"./src/tracing.js","require":"./lib/tracing.cjs"}},"gitHead":"b5d72abe7f28ec9b844b7f460a21fddae83a7e7c","scripts":{"lint":"eslint . --cache && prettier . --check --cache","test":"mocha","build":"rollup -c && dts-buddy","example":"texample -g","pretest":"npm run build","cov:html":"c8 -n src -r html -r text mocha","posttest":"npm run lint && npm run example","test:lcov":"c8 -n src -r lcov -r text mocha","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:40509946-0019-44a9-bc3f-d09b03c7f354"}},"repository":{"url":"git+https://github.com/allermedia/pino-gcp-transport.git","type":"git"},"_npmVersion":"11.6.2","description":"Pino google cloud structured logging stdout transport","directories":{},"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.2","chai":"^6.0.1","nock":"^14.0.2","pino":"^10.0.0","mocha":"^11.1.0","eslint":"^9.3.0","rollup":"^4.38.0","express":"^5.1.0","fastify":"^5.3.2","globals":"^16.0.0","prettier":"^3.2.5","texample":"^0.0.8","dts-buddy":"^0.6.0","supertest":"^7.1.0","exp-config":"^4.2.1","@types/chai":"^5.0.0","@types/node":"^22.19.1","pino-pretty":"^13.0.0","@types/mocha":"^10.0.3","chronokinesis":"^7.0.0","@types/express":"^5.0.1","@rollup/plugin-commonjs":"^29.0.0","pino-abstract-transport":"^3.0.0","@rollup/plugin-node-resolve":"^16.0.1"},"peerDependencies":{"sonic-boom":"4.x","pino-abstract-transport":">=2"},"_npmOperationalInternal":{"tmp":"tmp/pino-gcp-transport_1.0.0_1762941589911_0.2203650966996702","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aller/pino-gcp-transport","version":"1.0.1","keywords":["pino","google cloud","gcp","logging","transport","structured","stdout"],"author":{"url":"https://github.com/allermedia","name":"Aller Media"},"license":"MIT","_id":"@aller/pino-gcp-transport@1.0.1","maintainers":[{"name":"jimoe","email":"jon3828@gmail.com"},{"name":"lobunto","email":"marius.ibsen@gmail.com"},{"name":"goodleby","email":"goodleby@gmail.com"},{"name":"konrad-j","email":"konrad.jorgensen@gmail.com"},{"name":"roninjc","email":"jesus.castanocandela@gmail.com"},{"name":"toremeek","email":"tore.meek@aller.com"},{"name":"vnorvik","email":"vnorvik@gmail.com"},{"name":"robinwa","email":"robin.wasjo@aller.com"},{"name":"paed01","email":"pal.edman@outlook.com"},{"name":"kuhanloh","email":"kuhanloh@gmail.com"}],"homepage":"https://github.com/allermedia/pino-gcp-transport#readme","bugs":{"url":"https://github.com/allermedia/pino-gcp-transport/issues"},"dist":{"shasum":"25ebd504cfb0a203915393de0deb007fb891de68","tarball":"https://registry.npmjs.org/@aller/pino-gcp-transport/-/pino-gcp-transport-1.0.1.tgz","fileCount":14,"integrity":"sha512-2ZxoAtyr+xvcbHtwVt9s6z6ihjFmJykaAwgzoKFJumCIVMRE5k6nd8yguPgdUgt8R9mqQiGuPH7AwI5srltcfQ==","signatures":[{"sig":"MEUCIQDz2bwcveUxcQuHWVDv1x2jmAWX7xu4pyFEgbXHSCRpawIgHuTlVvjEQqA+3LFuVzXJCRH+RmEShgSGSHRf6715kmk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aller%2fpino-gcp-transport@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":67231},"main":"./lib/index.cjs","type":"module","types":"./types/index.d.ts","module":"./src/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./types/index.d.ts","import":"./src/index.js","require":"./lib/index.cjs"},"./tracing":{"types":"./types/index.d.ts","import":"./src/tracing.js","require":"./lib/tracing.cjs"}},"gitHead":"b28aa70d215577e017f343433157e671bca5604e","scripts":{"lint":"eslint . --cache && prettier . --check --cache","test":"mocha","build":"rollup -c && dts-buddy","example":"texample -g","pretest":"npm run build","cov:html":"c8 -n src -r html -r text mocha","posttest":"npm run lint && npm run example","test:lcov":"c8 -n src -r lcov -r text mocha","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:40509946-0019-44a9-bc3f-d09b03c7f354"}},"repository":{"url":"git+https://github.com/allermedia/pino-gcp-transport.git","type":"git"},"_npmVersion":"11.16.0","description":"Pino google cloud structured logging stdout transport","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.0.1","nock":"^14.0.2","pino":"^10.0.0","mocha":"^11.1.0","eslint":"^10.0.2","rollup":"^4.38.0","express":"^5.1.0","fastify":"^5.3.2","globals":"^17.0.0","prettier":"^3.2.5","texample":"^1.0.0","dts-buddy":"^0.8.0","supertest":"^7.1.0","@eslint/js":"^10.0.1","exp-config":"^4.2.1","@types/chai":"^5.2.3","@types/node":"^22.19.1","pino-pretty":"^13.0.0","@types/mocha":"^10.0.10","chronokinesis":"^8.0.0","@types/express":"^5.0.1","@rollup/plugin-commonjs":"^29.0.0","pino-abstract-transport":"^3.0.0","@rollup/plugin-node-resolve":"^16.0.1"},"peerDependencies":{"sonic-boom":"4.x","pino-abstract-transport":">=2"},"_npmOperationalInternal":{"tmp":"tmp/pino-gcp-transport_1.0.1_1785403678337_0.5484571898973376","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"_id":"@aller/pino-gcp-transport@1.0.2","bugs":{"url":"https://github.com/allermedia/pino-gcp-transport/issues"},"dist":{"shasum":"693ec7b5c4320e673ca469ba0ad3590decfb7023","tarball":"https://registry.npmjs.org/@aller/pino-gcp-transport/-/pino-gcp-transport-1.0.2.tgz","fileCount":15,"integrity":"sha512-f4Am3Nzh6r5ow1BZ8hVSRlCejGXbnRpGalHaGWSGl/uyj8k9gb7z6GlNYY7DiApE6AbB7KNwhILxmtQiQi0M7A==","signatures":[{"sig":"MEUCIBedlx54RHaxMzxBph15wMmTCHImYmXC2iSew1lSuzvUAiEAxrJYAcQEruBeBQDHwUE13aRn7I2kaWM06y/VQDXkptc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCjVDgYZNJoAg931Vjsg+PSpBBnQZ0fd18JxIi/+yDaUwIhAIUdtdPe/XXfGmUjAYoKhTt2/7eRFQEqh399k9e/O7+K"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aller%2fpino-gcp-transport@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":69084},"main":"./lib/index.cjs","name":"@aller/pino-gcp-transport","type":"module","types":"./types/index.d.ts","author":{"url":"https://github.com/allermedia","name":"Aller Media"},"module":"./src/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./types/index.d.ts","import":"./src/index.js","require":"./lib/index.cjs"},"./tracing":{"types":"./types/index.d.ts","import":"./src/tracing.js","require":"./lib/tracing.cjs"}},"gitHead":"041bda1cf0fd5815263122f2772e52d1c8c7de70","license":"MIT","scripts":{"toc":"toc README.md","lint":"eslint . --cache && prettier . --check --cache","test":"mocha","build":"rollup -c && dts-buddy && npm run toc","example":"texample -g","posttoc":"prettier --write README.md","pretest":"npm run build","cov:html":"c8 -n src -r html -r text mocha","posttest":"npm run lint && npm run example","test:lcov":"c8 -n src -r lcov -r text mocha","prepublishOnly":"npm run build"},"version":"1.0.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:40509946-0019-44a9-bc3f-d09b03c7f354"}},"homepage":"https://github.com/allermedia/pino-gcp-transport#readme","keywords":["pino","google cloud","gcp","logging","transport","structured","stdout"],"repository":{"url":"git+https://github.com/allermedia/pino-gcp-transport.git","type":"git"},"workspaces":["example"],"_npmVersion":"11.19.0","description":"Pino google cloud structured logging stdout transport","directories":{},"maintainers":[{"name":"jimoe","email":"jon3828@gmail.com"},{"name":"lobunto","email":"marius.ibsen@gmail.com"},{"name":"goodleby","email":"goodleby@gmail.com"},{"name":"konrad-j","email":"konrad.jorgensen@gmail.com"},{"name":"roninjc","email":"jesus.castanocandela@gmail.com"},{"name":"toremeek","email":"tore.meek@aller.com"},{"name":"vnorvik","email":"vnorvik@gmail.com"},{"name":"robinwa","email":"robin.wasjo@aller.com"},{"name":"paed01","email":"pal.edman@outlook.com"},{"name":"kuhanloh","email":"kuhanloh@gmail.com"}],"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.0.1","nock":"^14.0.2","mocha":"^12.0.1","eslint":"^10.0.2","rollup":"^4.38.0","globals":"^17.0.0","prettier":"^3.2.5","texample":"^1.0.0","@0dep/toc":"^1.0.1","dts-buddy":"^0.8.0","supertest":"^7.1.0","@eslint/js":"^10.0.1","@types/chai":"^5.2.3","@types/node":"^22.19.1","@types/mocha":"^10.0.10","chronokinesis":"^8.0.0","@types/express":"^5.0.1","@rollup/plugin-commonjs":"^29.0.0","pino-abstract-transport":"^3.0.0","@rollup/plugin-node-resolve":"^16.0.1"},"peerDependencies":{"sonic-boom":"4.x","pino-abstract-transport":">=2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pino-gcp-transport_1.0.2_1789564963893_0.3999586000169906"}}},"time":{"created":"2025-08-22T06:09:09.373Z","modified":"2026-09-16T13:22:44.294Z","0.0.1":"2025-03-29T08:26:22.403Z","0.0.2":"2025-03-31T07:13:37.523Z","0.0.3":"2025-04-03T05:35:08.595Z","0.0.4":"2025-04-07T10:38:19.850Z","0.1.0":"2025-04-24T06:39:27.674Z","0.1.1":"2025-05-02T07:03:17.528Z","0.1.2":"2025-05-02T15:47:19.294Z","0.1.3":"2025-05-21T11:14:27.871Z","0.2.0":"2025-05-21T13:21:17.814Z","0.2.1":"2025-05-21T13:39:48.893Z","0.2.2":"2025-05-21T14:02:16.869Z","0.2.3":"2025-08-22T06:09:09.656Z","0.3.0":"2025-10-06T13:09:36.366Z","0.3.1":"2025-10-30T11:44:50.932Z","1.0.0":"2025-11-12T09:59:50.089Z","1.0.1":"2026-07-30T09:27:58.481Z","1.0.2":"2026-09-16T13:22:44.000Z"},"bugs":{"url":"https://github.com/allermedia/pino-gcp-transport/issues"},"author":{"url":"https://github.com/allermedia","name":"Aller Media"},"license":"MIT","homepage":"https://github.com/allermedia/pino-gcp-transport#readme","keywords":["pino","google cloud","gcp","logging","transport","structured","stdout"],"repository":{"url":"git+https://github.com/allermedia/pino-gcp-transport.git","type":"git"},"description":"Pino google cloud structured logging stdout transport","maintainers":[{"name":"jimoe","email":"jon3828@gmail.com"},{"name":"lobunto","email":"marius.ibsen@gmail.com"},{"name":"goodleby","email":"goodleby@gmail.com"},{"name":"konrad-j","email":"konrad.jorgensen@gmail.com"},{"name":"roninjc","email":"jesus.castanocandela@gmail.com"},{"name":"toremeek","email":"tore.meek@aller.com"},{"name":"vnorvik","email":"vnorvik@gmail.com"},{"name":"robinwa","email":"robin.wasjo@aller.com"},{"name":"paed01","email":"pal.edman@outlook.com"},{"name":"kuhanloh","email":"kuhanloh@gmail.com"}],"readme":"# pino-gcp-transport\n\nConvert pino stdout logging to structured json suitable for google cloud logging.\n\n[![Build](https://github.com/allermedia/pino-gcp-transport/actions/workflows/build.yaml/badge.svg)](https://github.com/allermedia/pino-gcp-transport/actions/workflows/build.yaml)[![Build (Windows)](https://github.com/allermedia/pino-gcp-transport/actions/workflows/build-windows.yaml/badge.svg)](https://github.com/allermedia/pino-gcp-transport/actions/workflows/build-windows.yaml)\n\n<!-- toc -->\n\n- [Api](#api)\n  - [`compose([options[, Transformation = StructuredTransformation]])`](#composeoptions-transformation--structuredtransformation)\n  - [`middleware()`](#middleware)\n  - [`fastifyHook()`](#fastifyhook)\n  - [`getLogTrace(projectId)`](#getlogtraceprojectid)\n  - [`getTraceHeaders([flags = 0])`](#gettraceheadersflags--0)\n  - [`getTraceHeadersAsObject([flags = 0])`](#gettraceheadersasobjectflags--0)\n- [Setup example](#setup-example)\n  - [Express middleware](#express-middleware)\n  - [Fastify hook](#fastify-hook)\n- [Logger example](#logger-example)\n- [Span Context](#span-context)\n- [The projectId](#the-projectid)\n- [References](#references)\n\n<!-- /toc -->\n\n## Api\n\nExported as ESM and commonjs. Runnable middleware and logging examples are found in [example](/example/README.md).\n\n### `compose([options[, Transformation = StructuredTransformation]])`\n\nCompose transport to get structured log. Default and named export.\n\n**Arguments**:\n\n- `options`: optional structured transport options\n  - `ignoreKeys`: optional list of pino ignore keys, filters what log line keys are sent to `jsonPayload`, defaults to `['hostname', 'pid', 'level', 'time', 'msg']`\n  - `destination`: optional integer or string, integer `1` = stdout which is default, if a string is used the destination will be considered a log file, e.g. `./logs/test.log`\n  - `append`: optional boolean, set to false if you want file test logging to be reset between test runs, passed to [`sonic-boom`](https://www.npmjs.com/package/sonic-boom)\n  - `[key]`: any other options that can be passed to [`sonic-boom`](https://www.npmjs.com/package/sonic-boom)\n- `Transformation`: optional transformation stream type, defaults to builtin `StructuredTransformation` stream type, will be called with new. Can be used to override with extended StructuredTransformation type\n\n```javascript\nimport pino from 'pino';\nimport compose, { getLogTrace } from '@aller/pino-gcp-transport';\n\nexport const logger = pino(\n  {\n    mixin() {\n      return { ...getLogTrace(process.env.MYAPP_projectId) };\n    },\n  },\n  compose({\n    ignoreKeys: ['message', 'hostname', 'pid', 'level', 'time', 'msg'],\n  })\n);\n```\n\n### `middleware()`\n\nFunction to create express middleware that collects Opentelemetry headers if any.\n\n```javascript\nimport express from 'express';\nimport { middleware } from '@aller/pino-gcp-transport';\n\nconst app = express();\n\napp.use(middleware());\n```\n\n### `fastifyHook()`\n\nFunction to create fastify hook that collects Opentelemetry headers if any.\n\n```javascript\nimport fastify from 'fastify';\nimport { fastifyHook } from '@aller/pino-gcp-transport';\n\nconst app = fastify();\n\napp.addHook('onRequest', fastifyHook());\n```\n\n### `getLogTrace(projectId)`\n\nUsed in mixin to get trace context logging params. Named export.\n\n**Arguments**:\n\n- `projectId`: required string [google project id](#the-projectid)\n\n**Returns**\n\nObject with structured log keys `logging.googleapis.com/trace` and `logging.googleapis.com/spanId`.\n\n```javascript\nimport { getLogTrace } from '@aller/pino-gcp-transport';\nimport pino from 'pino';\n\nexport const logger = pino({\n  mixin() {\n    return { ...getLogTrace(process.env.MYAPP_projectId) };\n  },\n});\n```\n\n### `getTraceHeaders([flags = 0])`\n\nUsed to forward tracing to donwstream calls. Named export.\n\n**Arguments**:\n\n- `flags`: optional positive integer, below 256, tracing flag, 0 = not sampled, 1 = sampled\n\n**Returns**\n\nMap with trace headers `traceparent` and legacy `x-cloud-trace-context`.\n\n```javascript\nimport pino from 'pino';\nimport compose, { getTraceHeaders, getLogTrace } from '@aller/pino-gcp-transport';\n\nexport const logger = pino(\n  {\n    mixin() {\n      return { ...getLogTrace(process.env.MYAPP_projectId) };\n    },\n  },\n  compose()\n);\n\nawait fetch('http://localhost:11434/get', {\n  headers: Object.fromEntries(getTraceHeaders()),\n}).catch((err) => {\n  logger.error(err);\n});\n```\n\n### `getTraceHeadersAsObject([flags = 0])`\n\nSame as [`getTraceHeaders`](#gettraceheadersflags--0) but returns object.\n\n## Setup example\n\n### Express middleware\n\n```javascript\nimport pino from 'pino';\nimport express from 'express';\nimport request from 'supertest';\n\nimport compose, { middleware, getLogTrace, getTraceHeadersAsObject } from '@aller/pino-gcp-transport';\n\nconst logger = pino(\n  {\n    level: 'trace',\n    mixin() {\n      return { ...getLogTrace('aller-project-1') };\n    },\n  },\n  compose()\n);\n\nconst app = express();\n\napp.use(middleware());\n\napp.get('/downstream', async (req, res, next) => {\n  try {\n    logger.debug('foo');\n    // pass your tracing headers to a downstream service\n    await request('https://example.com')\n      .get('/')\n      .set(getTraceHeadersAsObject(req.query.flags ? Number(req.query.flags) : undefined));\n    res.send({});\n  } catch (err) {\n    next(err);\n  }\n});\n\napp.use('/log/request', (req, res) => {\n  logger.info(req);\n  res.send({});\n});\n\napp.get('/log/error', (req, res) => {\n  logger.error(new Error(req.query.message ?? 'expected'));\n  res.send({});\n});\n\napp.use((err, _req, res, next) => {\n  if (!(err instanceof Error)) return next();\n\n  logger.error(err);\n  res.status(500).send({ message: err.message });\n});\n\n// For testing\nawait request(app).get('/log/request').expect(200);\n```\n\n### Fastify hook\n\n```javascript\nimport pino from 'pino';\nimport fastify from 'fastify';\n\nimport compose, { fastifyHook, getLogTrace, getTraceHeadersAsObject } from '@aller/pino-gcp-transport';\n\nconst logOptions = {\n  level: 'trace',\n  mixin() {\n    return { ...getLogTrace('aller-project-1') };\n  },\n};\n\nconst logger = pino(logOptions, compose());\n\nconst app = fastify({\n  logger: logOptions,\n  logInstance: logger,\n});\n\napp.addHook('onRequest', fastifyHook());\n\napp.get('/', (request, reply) => {\n  request.log.info('hello world');\n  reply.send({ hello: 'world' });\n});\n\napp.get('/downstream', async (request, reply) => {\n  logger.debug('foo');\n  const res = await fetch('https://example.com', {\n    method: 'GET',\n    headers: {\n      ...getTraceHeadersAsObject(request.query.flags ? Number(request.query.flags) : undefined),\n    },\n  });\n\n  logger.info({ ok: res.ok }, 'bar');\n\n  reply.send({});\n});\n\napp.get('/log/request', (request, reply) => {\n  logger.info(request, 'foo');\n  reply.send({});\n});\n\napp.get('/log/error', (request, reply) => {\n  logger.error(new Error(request.query.message ?? 'expected'));\n  reply.send({});\n});\n\n// For testing\nawait app.inject().get('/log/request');\n```\n\n## Logger example\n\n```js\nimport config from 'exp-config';\nimport { pino } from 'pino';\n\nimport { getLogTrace } from '@aller/pino-gcp-transport';\n\nconst destination = config.logging?.target === 'file' ? `./logs/${config.envName}.log` : 1;\n\nconst targets = [];\nif (config.logging.prettify) {\n  targets.push({\n    target: 'pino-pretty',\n    options: {\n      colorize: true,\n      ignore: 'pid,hostname',\n      translateTime: \"yyyy-mm-dd'T'HH:MM:ss.l\",\n      destination,\n      append: false,\n    },\n  });\n} else {\n  targets.push({\n    target: '@aller/pino-gcp-transport',\n    options: {\n      destination,\n      append: false,\n    },\n  });\n}\n\nconst transport = pino.transport({ targets });\n\nexport default pino(\n  {\n    level: config.logging?.level || 'debug',\n    mixin() {\n      return { ...getLogTrace(config.projectId) };\n    },\n  },\n  transport\n);\n```\n\n## Span Context\n\nExecute in an existing tracing context.\n\n```javascript\nimport pino from 'pino';\nimport compose, { SpanContext, getTraceHeadersAsObject, getLogTrace } from '@aller/pino-gcp-transport';\n\nconst logger = pino(\n  {\n    level: 'trace',\n    mixin() {\n      return { ...getLogTrace('aller-project-1') };\n    },\n  },\n  compose()\n);\n\nawait new SpanContext('b657b24860f0a4390698ba907685c88d', 'e29221ca9e364975', 0).runInNewSpanContext(function track(foo) {\n  return new Promise((resolve) => {\n    logger.info(getTraceHeadersAsObject(), 'called with argument %s', foo);\n    resolve();\n  });\n}, 'bar');\n```\n\nExecute in a new tracing context.\n\n```javascript\nimport { SpanContext, getTraceHeadersAsObject } from '@aller/pino-gcp-transport';\n\nawait new SpanContext().runInNewSpanContext(function track(foo) {\n  return new Promise((resolve) => {\n    console.log(foo, getTraceHeadersAsObject());\n    resolve();\n  });\n}, 'baz');\n```\n\n## The projectId\n\nTo be able to log trace the google project id needs to be passed to the mixin function `getLogTrace(projectId)`. Undefined is returned if called without project id.\n\nThe project id is used to format the log parameter `logging.googleapis.com/trace` formatted as `projects/${projectId.trim()}/traces/${traceId}`\n\nIf deploying with terraform you can pick the id from your project resource, e.g:\n\n```terraform\nlocals {\n  env_pfx = \"MYAPP_\"\n}\n\nresource \"google_cloud_run_v2_service\" \"myapp\" {\n  template {\n    containers {\n      image = \"gcr.io/cloudrun/hello\"\n\n      ports {\n        container_port = 3000\n      }\n\n      env {\n        name  = \"NODE_ENV\"\n        value = var.environment\n      }\n      env {\n        name  = \"ENV_PREFIX\"\n        value = local.env_pfx\n      }\n      env {\n        name  = \"INTERPRET_CHAR_AS_DOT\"\n        value = \"_\"\n      }\n\n      # The google project eventually picked up by exp-config as config.projectId, or just use as process.env.MYAPP_projectId\n      env {\n        name  = \"${local.env_pfx}projectId\"\n        value = google_project.default.project_id\n      }\n```\n\n## References\n\n- [Google Cloud Logging ⇗](https://cloud.google.com/logging/docs/structured-logging)\n- [Trace context ⇗](https://www.w3.org/TR/trace-context)\n","readmeFilename":"README.md"}