{"_id":"@aller/pubsub-emulator","_rev":"7-30ddf674ffcc8416ab701d7a47d50dbe","name":"@aller/pubsub-emulator","dist-tags":{"latest":"0.1.1"},"versions":{"0.0.1":{"name":"@aller/pubsub-emulator","version":"0.0.1","keywords":["google cloud pubsub","pubsub","fake","mock","grpc","emulator"],"author":{"url":"https://github.com/allernordic","name":"Aller Nordic"},"license":"MIT","_id":"@aller/pubsub-emulator@0.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/allernordic/pubsub-emulator#readme","bugs":{"url":"https://github.com/allernordic/pubsub-emulator/issues"},"dist":{"shasum":"27f58175c7d28c026b44c358008667d5e6f1706b","tarball":"https://registry.npmjs.org/@aller/pubsub-emulator/-/pubsub-emulator-0.0.1.tgz","fileCount":6,"integrity":"sha512-GKNG3YG6Ux9rdSFCt6s0ykpfoprVH1j/69Kuy0C+qaSgYX6XOavrTVHlD+wYEHVUcx0xJs1XydxVnbSEVR3k3A==","signatures":[{"sig":"MEUCIQDuz7ZnxG81gVBUctXY/Lx6UbWz2+2FxDM+SS5jt9F1PAIgKevg53BHIGziwPlmjqhVWHnr2e81/5FnccWQHaCPT6c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48213},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"}},"gitHead":"927fb081ea3bcc5a0e5f90ec61cf7db4d391a2c2","scripts":{"toc":"node ./scripts/toc.js","lint":"eslint . --cache && prettier . -c","test":"mocha","build":"dts-buddy && npm run toc","test:md":"node --experimental-vm-modules --no-warnings ./scripts/texample-setup.js","cov:html":"c8 -n src -r html -r text mocha","posttest":"npm run lint && npm run build && npm run test:types && npm run test:md","prettier":"prettier . -w","test:lcov":"c8 -n src -r lcov -r text mocha","test:types":"tsc -p . && tsc -p test","prepublishOnly":"npm run build"},"_npmUser":{"name":"paed01","email":"pal.edman@outlook.com"},"repository":{"url":"git+https://github.com/allernordic/pubsub-emulator.git","type":"git"},"_npmVersion":"10.9.8","description":"In-process Google Cloud Pub/Sub emulator for tests, runs the real @google-cloud/pubsub client against a local gRPC server","directories":{},"_nodeVersion":"22.23.1","dependencies":{"smqp":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.0.1","debug":"^4.4.1","mocha":"^11.7.1","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.6.2","texample":"^1.0.2","dts-buddy":"^0.8.3","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.20.1","@types/debug":"^4.1.13","@types/mocha":"^10.0.10","@grpc/grpc-js":"^1.13.4","mocha-cakes-2":"^3.3.0","@grpc/proto-loader":"^0.8.0","@google-cloud/pubsub":"^5.2.0","eslint-plugin-perfectionist":"^5.9.0"},"peerDependencies":{"debug":">=4","@grpc/grpc-js":"1.x","@grpc/proto-loader":"0.x","@google-cloud/pubsub":">=4"},"_npmOperationalInternal":{"tmp":"tmp/pubsub-emulator_0.0.1_1785211951414_0.8439152634979614","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@aller/pubsub-emulator","version":"0.0.2","keywords":["google cloud pubsub","pubsub","fake","mock","grpc","emulator"],"author":{"url":"https://github.com/allernordic","name":"Aller Nordic"},"license":"MIT","_id":"@aller/pubsub-emulator@0.0.2","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/allernordic/pubsub-emulator#readme","bugs":{"url":"https://github.com/allernordic/pubsub-emulator/issues"},"dist":{"shasum":"81edb7cefa22b0d410d21b67ceb76f2a063731e5","tarball":"https://registry.npmjs.org/@aller/pubsub-emulator/-/pubsub-emulator-0.0.2.tgz","fileCount":6,"integrity":"sha512-BTXUdcko0iftzY1U86YXhUf6nG5DPj+M82Eu6mNDG7TjadnsvtBImu5sIaYyrANfuWoHh7EMyLGNVlOChKObfQ==","signatures":[{"sig":"MEQCIGnoe1YpIwcdA5E7ArXT2YU7BEPDfWuj6EkI8l4e8MLHAiBwGlrodpqXn7j+CgH57SpmMQNW9x454JD3WmcEwHE+tQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aller%2fpubsub-emulator@0.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48321},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"}},"gitHead":"0e5b5e95067ad7192395c6ae405a2cf2ae11a548","scripts":{"toc":"node ./scripts/toc.js","lint":"eslint . --cache && prettier . -c","test":"mocha","build":"dts-buddy && npm run toc","test:md":"node --experimental-vm-modules --no-warnings ./scripts/texample-setup.js","cov:html":"c8 -n src -r html -r text mocha","posttest":"npm run lint && npm run build && npm run test:types && npm run test:md","prettier":"prettier . -w","test:lcov":"c8 -n src -r lcov -r text mocha","test:types":"tsc -p . && tsc -p test","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8b2434d-4997-44b7-828c-337612eff05e"}},"overrides":{"mocha":{"yargs":"^18.1.0","serialize-javascript":"^7.0.3"}},"repository":{"url":"git+https://github.com/allernordic/pubsub-emulator.git","type":"git"},"_npmVersion":"11.16.0","description":"In-process Google Cloud Pub/Sub emulator for tests, runs the real @google-cloud/pubsub client against a local gRPC server","directories":{},"_nodeVersion":"24.18.0","dependencies":{"smqp":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.0.1","debug":"^4.4.1","mocha":"^11.7.1","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.6.2","texample":"^1.0.2","dts-buddy":"^0.8.3","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.20.1","@types/debug":"^4.1.13","@types/mocha":"^10.0.10","@grpc/grpc-js":"^1.13.4","mocha-cakes-2":"^3.3.0","@grpc/proto-loader":"^0.8.0","@google-cloud/pubsub":"^5.2.0","eslint-plugin-perfectionist":"^5.9.0"},"peerDependencies":{"debug":">=4","@grpc/grpc-js":"1.x","@grpc/proto-loader":"0.x","@google-cloud/pubsub":">=4"},"_npmOperationalInternal":{"tmp":"tmp/pubsub-emulator_0.0.2_1785216881703_0.06790575954005096","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@aller/pubsub-emulator","version":"0.0.3","keywords":["google cloud pubsub","pubsub","fake","mock","grpc","emulator"],"author":{"url":"https://github.com/allernordic","name":"Aller Nordic"},"license":"MIT","_id":"@aller/pubsub-emulator@0.0.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":"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/allernordic/pubsub-emulator#readme","bugs":{"url":"https://github.com/allernordic/pubsub-emulator/issues"},"dist":{"shasum":"f68d44c610e63eafbbb44708485b31f0bca9f64c","tarball":"https://registry.npmjs.org/@aller/pubsub-emulator/-/pubsub-emulator-0.0.3.tgz","fileCount":6,"integrity":"sha512-yI1be+rRUlIJuE9V2dfZQK4TZYJ3QRmixgWJU3Tspes+6smdM1rIhZtJ0z2iuqIO4xqGyyQ6irGqQ6iaXI/YTA==","signatures":[{"sig":"MEYCIQDI7mRsw+ILWVhrlPfLzcKAh2RMSymvXjnddgshde/9QgIhAMezplgSw4+XBe+PTYhyIMdys2ZwKLSIkqOqhSkbtcs8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aller%2fpubsub-emulator@0.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48514},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"}},"gitHead":"a6e98adbcbe744d032a953ecf5226f3826badaa5","scripts":{"toc":"node ./scripts/toc.js","lint":"eslint . --cache && prettier . -c","test":"mocha","build":"dts-buddy && npm run toc","test:md":"node --experimental-vm-modules --no-warnings ./scripts/texample-setup.js","cov:html":"c8 -n src -r html -r text mocha","posttest":"npm run lint && npm run build && npm run test:types && npm run test:md","prettier":"prettier . -w","test:lcov":"c8 -n src -r lcov -r text mocha","test:types":"tsc -p . && tsc -p test","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8b2434d-4997-44b7-828c-337612eff05e"}},"overrides":{"mocha":{"yargs":"^18.1.0","serialize-javascript":"^7.0.3"}},"repository":{"url":"git+https://github.com/allernordic/pubsub-emulator.git","type":"git"},"_npmVersion":"11.16.0","description":"In-process Google Cloud Pub/Sub emulator for tests, runs the real @google-cloud/pubsub client against a local gRPC server","directories":{},"_nodeVersion":"24.18.0","dependencies":{"smqp":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.0.1","debug":"^4.4.1","mocha":"^11.7.1","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.6.2","texample":"^1.0.2","dts-buddy":"^0.8.3","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.20.1","@types/debug":"^4.1.13","@types/mocha":"^10.0.10","@grpc/grpc-js":"^1.13.4","mocha-cakes-2":"^3.3.0","@grpc/proto-loader":"^0.8.0","@google-cloud/pubsub":"^5.2.0","eslint-plugin-perfectionist":"^5.9.0"},"peerDependencies":{"debug":">=4","@grpc/grpc-js":"1.x","@grpc/proto-loader":"0.x","@google-cloud/pubsub":">=4"},"_npmOperationalInternal":{"tmp":"tmp/pubsub-emulator_0.0.3_1785337435838_0.9925459066543829","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@aller/pubsub-emulator","version":"0.0.4","keywords":["google cloud pubsub","pubsub","fake","mock","grpc","emulator"],"author":{"url":"https://github.com/allernordic","name":"Aller Nordic"},"license":"MIT","_id":"@aller/pubsub-emulator@0.0.4","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/allernordic/pubsub-emulator#readme","bugs":{"url":"https://github.com/allernordic/pubsub-emulator/issues"},"dist":{"shasum":"9e0bcdbec448f7c04e66fecf7f301adecc33bad1","tarball":"https://registry.npmjs.org/@aller/pubsub-emulator/-/pubsub-emulator-0.0.4.tgz","fileCount":6,"integrity":"sha512-mMP3UsrJpAabc9glgSZNKlLNiU837AHRzqwlYDKNIv4dEuOQB+rRALdSv0dzJXo25dSNmTuKhU3MsdqsL84tmg==","signatures":[{"sig":"MEUCIQDQHEDY6no/SMr22X+aBqWR09mACsrpI01Ol87qzwoxfwIgTCNkTz5FWiT8GJOCFBRQTQDAHTcYK2GUCkkGaDlKM2k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aller%2fpubsub-emulator@0.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48514},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"}},"gitHead":"5fff5d3a28969e50808a6fe0f704616edc893626","scripts":{"toc":"node ./scripts/toc.js","lint":"eslint . --cache && prettier . -c","test":"mocha","build":"dts-buddy && npm run toc","test:md":"node --experimental-vm-modules --no-warnings ./scripts/texample-setup.js","cov:html":"c8 -n src -r html -r text mocha","posttest":"npm run lint && npm run build && npm run test:types && npm run test:md","prettier":"prettier . -w","test:lcov":"c8 -n src -r lcov -r text mocha","test:types":"tsc -p . && tsc -p test","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8b2434d-4997-44b7-828c-337612eff05e"}},"overrides":{"mocha":{"yargs":"^18.1.0","serialize-javascript":"^7.0.3"}},"repository":{"url":"git+https://github.com/allernordic/pubsub-emulator.git","type":"git"},"_npmVersion":"11.17.0","description":"In-process Google Cloud Pub/Sub emulator for tests, runs the real @google-cloud/pubsub client against a local gRPC server","directories":{},"_nodeVersion":"24.19.0","dependencies":{"smqp":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.0.1","debug":"^4.4.1","mocha":"^11.7.1","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.6.2","texample":"^1.0.2","dts-buddy":"^0.8.3","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.20.1","@types/debug":"^4.1.13","@types/mocha":"^10.0.10","@grpc/grpc-js":"^1.13.4","mocha-cakes-2":"^3.3.0","@grpc/proto-loader":"^0.8.0","@google-cloud/pubsub":"^6.0.1","eslint-plugin-perfectionist":"^5.9.0"},"peerDependencies":{"debug":">=4","@grpc/grpc-js":"1.x","@grpc/proto-loader":"0.x","@google-cloud/pubsub":">=4"},"_npmOperationalInternal":{"tmp":"tmp/pubsub-emulator_0.0.4_1786954606756_0.4490712134139332","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@aller/pubsub-emulator","version":"0.0.5","keywords":["google cloud pubsub","pubsub","fake","mock","grpc","emulator"],"author":{"url":"https://github.com/allernordic","name":"Aller Nordic"},"license":"MIT","_id":"@aller/pubsub-emulator@0.0.5","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/allernordic/pubsub-emulator#readme","bugs":{"url":"https://github.com/allernordic/pubsub-emulator/issues"},"dist":{"shasum":"4d9eb7907d8240d3c9ba5f6414b69a3db4a4aaac","tarball":"https://registry.npmjs.org/@aller/pubsub-emulator/-/pubsub-emulator-0.0.5.tgz","fileCount":6,"integrity":"sha512-BMumroCYBxI3OqHGzvBAecDVYFV+WXIA0emGjmF5vakayRr2zmNc23xc3lWpwQMk9Nj+3OzWdWe6vF13ckQDnw==","signatures":[{"sig":"MEQCICNtsocomD2quj8NPxONfk3U+aAz1nA4pgs6yo9rMgA5AiAohZ6p1rzRB8mICAt5Nf39wyS0E9sq4EGZ4I/70pfJfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aller%2fpubsub-emulator@0.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48709},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"}},"gitHead":"bb75a1854f4dce305caeeb844d72febaf5fa4b2b","scripts":{"toc":"node ./scripts/toc.js","lint":"eslint . --cache && prettier . -c","test":"mocha","build":"dts-buddy && npm run toc","test:md":"node --experimental-vm-modules --no-warnings ./scripts/texample-setup.js","cov:html":"c8 -n src -r html -r text mocha","posttest":"npm run lint && npm run build && npm run test:types && npm run test:md","prettier":"prettier . -w","test:lcov":"c8 -n src -r lcov -r text mocha","test:types":"tsc -p . && tsc -p test","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8b2434d-4997-44b7-828c-337612eff05e"}},"overrides":{"mocha":{"yargs":"^18.1.0","serialize-javascript":"^7.0.3"}},"repository":{"url":"git+https://github.com/allernordic/pubsub-emulator.git","type":"git"},"_npmVersion":"11.17.0","description":"In-process Google Cloud Pub/Sub emulator for tests, runs the real @google-cloud/pubsub client against a local gRPC server","directories":{},"_nodeVersion":"24.19.0","dependencies":{"smqp":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.0.1","debug":"^4.4.1","mocha":"^11.7.1","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.6.2","texample":"^1.0.2","dts-buddy":"^0.8.3","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.20.1","@types/debug":"^4.1.13","@types/mocha":"^10.0.10","@grpc/grpc-js":"^1.13.4","mocha-cakes-2":"^3.3.0","@grpc/proto-loader":"^0.8.0","@google-cloud/pubsub":"^6.0.1","eslint-plugin-perfectionist":"^5.9.0"},"peerDependencies":{"debug":">=4","@grpc/grpc-js":"1.x","@grpc/proto-loader":"0.x","@google-cloud/pubsub":">=4"},"_npmOperationalInternal":{"tmp":"tmp/pubsub-emulator_0.0.5_1786957959039_0.35415650813702126","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@aller/pubsub-emulator","version":"0.1.0","keywords":["google cloud pubsub","pubsub","fake","mock","grpc","emulator"],"author":{"url":"https://github.com/allernordic","name":"Aller Nordic"},"license":"MIT","_id":"@aller/pubsub-emulator@0.1.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":"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/allernordic/pubsub-emulator#readme","bugs":{"url":"https://github.com/allernordic/pubsub-emulator/issues"},"dist":{"shasum":"3e3aa1b8899d877d8ba8641aa9af5195489fe28b","tarball":"https://registry.npmjs.org/@aller/pubsub-emulator/-/pubsub-emulator-0.1.0.tgz","fileCount":6,"integrity":"sha512-08MoDi8wkHl03Zv9j2VW0PokGvvTSs3OEDroHAZ6ZiIpKrvEshrEiYyzjZssY83rhoupHn6XB2xznv9y2InWLA==","signatures":[{"sig":"MEQCIG0RYxGrEwbhtmnqMi4ngi0R3sNw6QDUnP6lvkWY0lDrAiAeKqC2F1T3fpbguTlyIsKIxtTKyUtb1a7H6Hh7w86IXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aller%2fpubsub-emulator@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48769},"main":"./src/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"}},"gitHead":"af5c540c8e631a15df285e4fb091db2d4516f782","scripts":{"toc":"node ./scripts/toc.js","lint":"eslint . --cache && prettier . -c","test":"mocha","build":"dts-buddy && npm run toc","test:md":"node --experimental-vm-modules --no-warnings ./scripts/texample-setup.js","cov:html":"c8 -n src -r html -r text mocha","posttest":"npm run lint && npm run build && npm run test:types && npm run test:md","prettier":"prettier . -w","test:lcov":"c8 -n src -r lcov -r text mocha","test:types":"tsc -p . && tsc -p test","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8b2434d-4997-44b7-828c-337612eff05e"}},"overrides":{"mocha":{"yargs":"^18.1.0","serialize-javascript":"^7.0.3"},"@grpc/proto-loader":{"yargs":"^18.1.0"}},"repository":{"url":"git+https://github.com/allernordic/pubsub-emulator.git","type":"git"},"_npmVersion":"11.19.0","description":"In-process Google Cloud Pub/Sub emulator for tests, runs the real @google-cloud/pubsub client against a local gRPC server","directories":{},"_nodeVersion":"24.20.0","dependencies":{"smqp":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.0.1","debug":"^4.4.1","mocha":"^11.7.1","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.6.2","texample":"^1.0.2","dts-buddy":"^0.8.3","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.20.1","@types/debug":"^4.1.13","@types/mocha":"^10.0.10","@grpc/grpc-js":"^1.13.4","mocha-cakes-2":"^3.3.0","@grpc/proto-loader":"^0.8.0","@google-cloud/pubsub":"^6.0.1","eslint-plugin-perfectionist":"^5.9.0"},"peerDependencies":{"debug":">=4","@grpc/grpc-js":"1.x","@grpc/proto-loader":"0.x","@google-cloud/pubsub":">=4"},"_npmOperationalInternal":{"tmp":"tmp/pubsub-emulator_0.1.0_1788847978195_0.6925135508815556","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"_id":"@aller/pubsub-emulator@0.1.1","bugs":{"url":"https://github.com/allernordic/pubsub-emulator/issues"},"dist":{"shasum":"0a817f554f84aafc1d3b3ef71dafca3b83e6c67d","tarball":"https://registry.npmjs.org/@aller/pubsub-emulator/-/pubsub-emulator-0.1.1.tgz","fileCount":7,"integrity":"sha512-IlL7oC9Dx7matcZh3nMNmYcTjM5TAXFIbrmeiFaARbYpk9g4T2eFS7t7V27REOrvgnQrMrSOtamsr6GAUSnq/g==","signatures":[{"sig":"MEQCIGtpNPqVRtNSjWn8nrWLFAf4ADV8ZmSxuVLuY1TFNAs/AiBtjpnNcHC+BOAbGFXhRMdgJM21snvX3WIMW/kur5b9zg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDXdO4jiYyUcSLGjj5/EzjZ/w88oU3P662SFg82IYkP9wIhAK97A46SPy20gKB0zNttZCNKD16YzpHqTcs11XFmM7+W"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aller%2fpubsub-emulator@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49403},"main":"./src/index.js","name":"@aller/pubsub-emulator","type":"module","types":"./types/index.d.ts","author":{"url":"https://github.com/allernordic","name":"Aller Nordic"},"engines":{"node":">=22"},"exports":{".":{"types":"./types/index.d.ts","default":"./src/index.js"}},"gitHead":"7e15deaee18737a67ec9ed1238761e4a17a54b32","license":"MIT","scripts":{"toc":"toc README.md","lint":"eslint . --cache && prettier . -c","test":"mocha","build":"dts-buddy && npm run toc","test:md":"node --experimental-vm-modules --no-warnings ./scripts/texample-setup.js","cov:html":"c8 -n src -r html -r text mocha","posttest":"npm run toc && npm run lint && npm run build && npm run test:types && npm run test:md","prettier":"prettier . -w","test:lcov":"c8 -n src -r lcov -r text mocha","test:types":"tsc -p . && tsc -p test","prepublishOnly":"npm run build"},"version":"0.1.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8b2434d-4997-44b7-828c-337612eff05e"}},"homepage":"https://github.com/allernordic/pubsub-emulator#readme","keywords":["google cloud pubsub","pubsub","fake","mock","grpc","emulator"],"overrides":{"mocha":{"yargs":"^18.1.0","serialize-javascript":"^7.1.1"},"@grpc/proto-loader":{"yargs":"^18.1.0"}},"repository":{"url":"git+https://github.com/allernordic/pubsub-emulator.git","type":"git"},"_npmVersion":"11.19.0","description":"In-process Google Cloud Pub/Sub emulator for tests, runs the real @google-cloud/pubsub client against a local gRPC server","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","dependencies":{"smqp":"^15.0.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.0.1","debug":"^4.4.1","mocha":"^11.8.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.6.2","texample":"^1.0.2","@0dep/toc":"^1.0.1","dts-buddy":"^0.8.3","@0dep/piso":"^5.1.2","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.20.1","@types/debug":"^4.1.13","@types/mocha":"^10.0.10","@grpc/grpc-js":"^1.13.4","mocha-cakes-2":"^3.3.0","@grpc/proto-loader":"^0.8.0","@google-cloud/pubsub":"^6.0.1","eslint-plugin-perfectionist":"^5.9.0"},"peerDependencies":{"debug":">=4","@grpc/grpc-js":"1.x","@grpc/proto-loader":"0.x","@google-cloud/pubsub":">=4"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pubsub-emulator_0.1.1_1789558334581_0.18765296662897124"}}},"time":{"created":"2026-07-28T04:12:31.229Z","modified":"2026-09-16T11:32:15.010Z","0.0.1":"2026-07-28T04:12:31.557Z","0.0.2":"2026-07-28T05:34:41.848Z","0.0.3":"2026-07-29T15:03:55.972Z","0.0.4":"2026-08-17T08:16:46.895Z","0.0.5":"2026-08-17T09:12:39.202Z","0.1.0":"2026-09-08T06:12:58.333Z","0.1.1":"2026-09-16T11:32:14.672Z"},"bugs":{"url":"https://github.com/allernordic/pubsub-emulator/issues"},"author":{"url":"https://github.com/allernordic","name":"Aller Nordic"},"license":"MIT","homepage":"https://github.com/allernordic/pubsub-emulator#readme","keywords":["google cloud pubsub","pubsub","fake","mock","grpc","emulator"],"repository":{"url":"git+https://github.com/allernordic/pubsub-emulator.git","type":"git"},"description":"In-process Google Cloud Pub/Sub emulator for tests, runs the real @google-cloud/pubsub client against a local gRPC server","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":"# @aller/pubsub-emulator\n\nIn-process [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) emulator for tests. Run the real `@google-cloud/pubsub` client against a local gRPC server — no Java, no gcloud SDK, no Docker, no credentials, no TLS.\n\nMessage state is backed by an [smqp](https://github.com/paed01/smqp) broker: topics are exchanges, subscriptions are FIFO queues, so ordering, ack/nack and redelivery behave predictably — and the broker is exported so tests can prefill state directly.\n\n[![Build](https://github.com/allernordic/pubsub-emulator/actions/workflows/build.yaml/badge.svg)](https://github.com/allernordic/pubsub-emulator/actions/workflows/build.yaml)\n[![Build (Windows)](https://github.com/allernordic/pubsub-emulator/actions/workflows/build-windows.yaml/badge.svg)](https://github.com/allernordic/pubsub-emulator/actions/workflows/build-windows.yaml)\n\n<!-- toc -->\n\n- [Features](#features)\n- [Versus the official emulator](#versus-the-official-emulator)\n- [Usage](#usage)\n  - [Prefill via the broker](#prefill-via-the-broker)\n  - [Inspecting fake state](#inspecting-fake-state)\n  - [API](#api)\n- [Test](#test)\n\n<!-- /toc -->\n\n## Features\n\n- `Publisher` service: create/get/list/delete topics, publish\n- `Subscriber` service: create/get/list/delete subscriptions, unary pull, acknowledge, modifyAckDeadline (deadline `0` = nack + redelivery), streaming pull (`subscription.on('message')`)\n- Real `pubsub.proto` serialization, real gRPC status codes (`NOT_FOUND`, `ALREADY_EXISTS`, `INVALID_ARGUMENT`, …)\n- Unacked messages are requeued when a stream closes; late acks (flushed after stream close, as the Node client does) still land\n- Dead-letter policy: nacks bump `deliveryAttempt`, and when `maxDeliveryAttempts` (default 5) is exhausted the message is forwarded to the `deadLetterTopic` with a new message id, original attributes kept and `CloudPubSubDeadLetterSource*` attributes added — a missing dead-letter topic keeps the message retrying, as in the real API\n- Auto-creates entities by default, since production topology is usually pre-provisioned: publishing to a missing topic creates it, and subscribing (pull or streaming) to a missing subscription creates it bound to a same-named topic (created too) — disable with `autoCreate: false` to get strict `NOT_FOUND` behavior; differently named topic↔subscription bindings are a prefill concern\n- Prefill topics, subscriptions and messages through the exported broker\n\n## Versus the official emulator\n\nGoogle's Cloud SDK ships a Pub/Sub emulator (`gcloud beta emulators pubsub start`) — a separate Java process implementing the same gRPC API. It is Google's own implementation, so its behavior tracks the real service most closely; prefer it for high-fidelity integration tests. This package targets fast, isolated test suites instead:\n\n- In-process and dependency-free: `await startServer()` starts in milliseconds, no Java, gcloud SDK or Docker\n- Seedable and inspectable: prefill state through the broker, assert on queues and outstanding acks — the official emulator can only be interacted with through the API itself\n- Isolated: every server gets its own broker, so parallel suites never share state\n- Auto-creates topology by default, the official emulator requires creating topics and subscriptions up front\n\nBoth are wire-compatible with the client's emulator conventions, so `PUBSUB_EMULATOR_HOST` works here too:\n\n```javascript\nimport { PubSub } from '@google-cloud/pubsub';\nimport { startServer } from '@aller/pubsub-emulator';\n\nconst server = await startServer();\nprocess.env.PUBSUB_EMULATOR_HOST = `localhost:${server.origin.port}`;\n\nconst pubsub = new PubSub({ projectId: 'test-project' });\nconst messageId = await pubsub.topic('env-configured').publishMessage({ data: Buffer.from('via env') });\nconsole.log('published', messageId);\n\ndelete process.env.PUBSUB_EMULATOR_HOST;\nawait pubsub.close();\nserver.forceShutdown();\n```\n\n## Usage\n\n```javascript\nimport { PubSub } from '@google-cloud/pubsub';\nimport { startServer } from '@aller/pubsub-emulator';\n\nconst server = await startServer();\nconst pubsub = new PubSub({ apiEndpoint: `localhost:${server.origin.port}`, projectId: 'test-project' });\n\nawait pubsub.createTopic('orders');\nawait pubsub.topic('orders').createSubscription('order-worker');\n\nconst subscription = pubsub.subscription('order-worker');\nsubscription.on('message', (message) => {\n  console.log(message.data.toString());\n  message.ack();\n});\n\nawait pubsub.topic('orders').publishMessage({ data: Buffer.from('hello') });\n\n// teardown, all state lives on the server's broker and dies with it\nawait subscription.close();\nawait pubsub.close();\nserver.forceShutdown();\n```\n\nThe client switches to insecure channel credentials automatically for a non-GCP `apiEndpoint`, so no auth setup is required.\n\nEach server gets its own broker, so parallel servers are fully isolated.\n\n### Prefill via the broker\n\nThe smqp broker is the server's source of truth, so seeding state before any client connects is plain broker API — either pass a prefilled broker to `startServer`:\n\n```javascript\nimport { Broker, startServer } from '@aller/pubsub-emulator';\n\nconst broker = new Broker();\nbroker.assertExchange('projects/test-project/topics/orders', 'topic');\nbroker.assertQueue('projects/test-project/subscriptions/order-worker');\nbroker.bindQueue('projects/test-project/subscriptions/order-worker', 'projects/test-project/topics/orders', '#');\nbroker.publish('projects/test-project/topics/orders', 'message', Buffer.from('seeded'));\n\nconst server = await startServer({ broker });\n// clients now see the seeded topic, subscription and message\n```\n\nor seed the started server's own broker via `server.broker` before clients connect.\n\n### Inspecting fake state\n\n```javascript\nimport { startServer } from '@aller/pubsub-emulator';\n\nconst server = await startServer();\nserver.broker.assertExchange('projects/test-project/topics/orders', 'topic');\nserver.broker.assertQueue('projects/test-project/subscriptions/order-worker');\nserver.broker.bindQueue('projects/test-project/subscriptions/order-worker', 'projects/test-project/topics/orders', '#');\nserver.broker.publish('projects/test-project/topics/orders', 'message', Buffer.from('inspect me'));\n\nserver.getTopic('projects/test-project/topics/orders'); // stored topic resource\nconst { subscription, queue, outstanding } = server.getSubscription('projects/test-project/subscriptions/order-worker');\nqueue.messageCount; // queued + delivered-but-unacked messages, 1\noutstanding.size; // delivered-but-unacked messages, 0\n```\n\nState lives on the server's broker — discard the server and the state is gone, no reset needed.\n\n### API\n\n- `startServer(options?)` → `Promise<grpc.Server & { origin: { hostname, port }, broker, getTopic, getSubscription }>` — options: `port` (default 0, OS-assigned), `credentials` (default insecure), `broker` (default a new broker per server, pass one to prefill), `autoCreate` (default `true`, auto-create topics on publish and subscriptions on subscribe).\n- `server.broker` — the server's backing [smqp](https://github.com/paed01/smqp) broker, for prefilling and inspection.\n- `server.getTopic(name)` / `server.getSubscription(name)` — inspect fake state by full resource name.\n- `Broker` — re-exported from smqp, for constructing prefilled brokers.\n- `FakePublisher` / `FakeSubscriber` — the gRPC service implementations, classed and constructed with a broker, for composing your own grpc-js server.\n- `RpcCodes` — gRPC status code map.\n\nRequires Node `>=22` (`require()` of the ESM source is supported natively — no CJS build is shipped).\n\n## Test\n\n```sh\nnpm i\nnpm test\n```\n\nTests are written in BDD style with [mocha-cakes-2](https://www.npmjs.com/package/mocha-cakes-2), see `test/features/`.\n","readmeFilename":"README.md"}