{"_id":"@2060.io/credo-ts-message-pickup-repository-pg","_rev":"9-b3cd90e7c68d90fba795cbc20bab3a7f","name":"@2060.io/credo-ts-message-pickup-repository-pg","dist-tags":{"latest":"0.0.15"},"versions":{"0.0.7":{"name":"@2060.io/credo-ts-message-pickup-repository-pg","version":"0.0.7","license":"Apache-2.0","_id":"@2060.io/credo-ts-message-pickup-repository-pg@0.0.7","maintainers":[{"name":"genaris","email":"gentilester@gmail.com"}],"homepage":"https://github.com/2060-io/message-pickup-repository/tree/main/packages/postgres","bugs":{"url":"https://github.com/2060-io/message-pickup-repository/issues"},"dist":{"shasum":"41998c44ec77432bf7be9e439fccc64217c86c20","tarball":"https://registry.npmjs.org/@2060.io/credo-ts-message-pickup-repository-pg/-/credo-ts-message-pickup-repository-pg-0.0.7.tgz","fileCount":14,"integrity":"sha512-95Lg+JgXRTW9NmCLVmiWw4bhBNFDIWOinYG2nRMnktFdXnQxjy1UzKjJeQO+Ido+ltu2GTfyzM4W0Q7cgzXBVw==","signatures":[{"sig":"MEQCIGUJUCKnTLrqgJmzlaLRNRhKho/qT1XzDg6iI9iYONKAAiBMBNxaKHY8IOa2Kd2+KGd35mpq4Pax7kV+aXoutkRw+A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60245},"main":"build/src/index.js","types":"build/src/index.d.ts","gitHead":"7753503bbe3d08f850cd4527d3bc1b76819502ae","scripts":{"test":"jest","build":"yarn run clean && yarn run compile","clean":"rimraf -rf ./build","compile":"tsc -p tsconfig.build.json","prepublishOnly":"yarn run build"},"_npmUser":{"name":"genaris","email":"gentilester@gmail.com"},"repository":{"url":"git+https://github.com/2060-io/message-pickup-repository.git","type":"git","directory":"packages/postgres"},"_npmVersion":"10.8.2","description":"Message Pickup Repository Postgres module","directories":{},"_nodeVersion":"20.18.1","dependencies":{"pg":"^8.11.3","loglevel":"^1.8.0","pg-pubsub":"^0.8.1","typescript":"^4.0.0","@credo-ts/core":"^0.5.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.0","ts-jest":"^27.0.0","webpack":"^5.0.0","@types/pg":"^8.11.10","ts-loader":"^9.0.0","@types/node":"^16.0.0","webpack-cli":"^4.0.0"},"peerDependencies":{"@credo-ts/core":"^0.5.11"},"_npmOperationalInternal":{"tmp":"tmp/credo-ts-message-pickup-repository-pg_0.0.7_1736521196382_0.8934648495012996","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@2060.io/credo-ts-message-pickup-repository-pg","version":"0.0.8","license":"Apache-2.0","_id":"@2060.io/credo-ts-message-pickup-repository-pg@0.0.8","maintainers":[{"name":"genaris","email":"gentilester@gmail.com"}],"homepage":"https://github.com/2060-io/message-pickup-repository/tree/main/packages/postgres","bugs":{"url":"https://github.com/2060-io/message-pickup-repository/issues"},"dist":{"shasum":"895a599f523e19f9f0fba7d74d15fcf28b0ac415","tarball":"https://registry.npmjs.org/@2060.io/credo-ts-message-pickup-repository-pg/-/credo-ts-message-pickup-repository-pg-0.0.8.tgz","fileCount":14,"integrity":"sha512-ZVFWXA6SP25YSmidg7D3xFQauPEb/c+Tm2wz+m/EUpbtqYqV3C2tmPTx6KCBhrGQ/pDuS4E2V+M3inD/VJoDBw==","signatures":[{"sig":"MEUCIQC4TFWAFD5hPgnne5PwUt8yFH3y1Y0KOHUnbINhK1RbEAIgYaX1y0NIJN26zHESCmv1qxSqiSrTDqnbmL+F3fGKszI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67404},"main":"build/index.js","types":"build/index.d.ts","gitHead":"d332c51f1bcc809c04f1ff54943e4ceca9d2b81b","scripts":{"test":"jest","build":"yarn run clean && yarn run compile","clean":"rimraf -rf ./build","compile":"tsc -p tsconfig.build.json","prepublishOnly":"yarn run build"},"_npmUser":{"name":"genaris","email":"gentilester@gmail.com"},"repository":{"url":"git+https://github.com/2060-io/message-pickup-repository.git","type":"git","directory":"packages/postgres"},"_npmVersion":"10.8.2","description":"Message Pickup Repository Postgres module","directories":{},"_nodeVersion":"20.19.0","dependencies":{"pg":"^8.11.3","pg-pubsub":"^0.8.1","typescript":"^4.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.0","ts-jest":"^27.0.0","webpack":"^5.0.0","@types/pg":"^8.11.10","ts-loader":"^9.0.0","@types/node":"^16.0.0","webpack-cli":"^4.0.0","@credo-ts/core":"^0.5.11"},"peerDependencies":{"@credo-ts/core":"^0.5.11"},"_npmOperationalInternal":{"tmp":"tmp/credo-ts-message-pickup-repository-pg_0.0.8_1743599780142_0.1719117931457359","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@2060.io/credo-ts-message-pickup-repository-pg","version":"0.0.9","license":"Apache-2.0","_id":"@2060.io/credo-ts-message-pickup-repository-pg@0.0.9","maintainers":[{"name":"genaris","email":"gentilester@gmail.com"}],"homepage":"https://github.com/2060-io/message-pickup-repository/tree/main/packages/postgres","bugs":{"url":"https://github.com/2060-io/message-pickup-repository/issues"},"dist":{"shasum":"0026430b63d90e12bdd9c983a49ec3554090d9ca","tarball":"https://registry.npmjs.org/@2060.io/credo-ts-message-pickup-repository-pg/-/credo-ts-message-pickup-repository-pg-0.0.9.tgz","fileCount":14,"integrity":"sha512-zyJKeSyYiJo9QRFaMv35hB1ssOH1hItK55AWhMZGZGgiYf3crXyaEyIbduAiaVDY+v7rY7xF4o/a5fI015LdMg==","signatures":[{"sig":"MEUCIHsf+EKxJ7FuB244/0EGjosF3io9EeBpaTd+vLfG4G0rAiEAu5Z6Pomwat90AcUXQ3WxEHEgCaKNHWWppt6g1mylJ0U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72172},"main":"build/index.js","types":"build/index.d.ts","gitHead":"eedd71469ad240697db8fbc3337c2028a6cdd590","scripts":{"test":"jest","build":"yarn run clean && yarn run compile","clean":"rimraf -rf ./build","compile":"tsc -p tsconfig.build.json","prepublishOnly":"yarn run build"},"_npmUser":{"name":"genaris","email":"gentilester@gmail.com"},"repository":{"url":"git+https://github.com/2060-io/message-pickup-repository.git","type":"git","directory":"packages/postgres"},"_npmVersion":"10.8.2","description":"Message Pickup Repository Postgres module","directories":{},"_nodeVersion":"20.19.0","dependencies":{"pg":"^8.11.3","pg-pubsub":"^0.8.1","typescript":"^4.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.0","ts-jest":"^27.0.0","webpack":"^5.0.0","@types/pg":"^8.11.10","ts-loader":"^9.0.0","@types/node":"^16.0.0","webpack-cli":"^4.0.0","@credo-ts/core":"^0.5.11"},"peerDependencies":{"@credo-ts/core":"^0.5.11"},"_npmOperationalInternal":{"tmp":"tmp/credo-ts-message-pickup-repository-pg_0.0.9_1743714036711_0.5349443638689309","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@2060.io/credo-ts-message-pickup-repository-pg","version":"0.0.10","license":"Apache-2.0","_id":"@2060.io/credo-ts-message-pickup-repository-pg@0.0.10","maintainers":[{"name":"genaris","email":"gentilester@gmail.com"}],"homepage":"https://github.com/2060-io/message-pickup-repository/tree/main/packages/postgres","bugs":{"url":"https://github.com/2060-io/message-pickup-repository/issues"},"dist":{"shasum":"956b7f75cc0952556de03cb9a047986a6f3c4e02","tarball":"https://registry.npmjs.org/@2060.io/credo-ts-message-pickup-repository-pg/-/credo-ts-message-pickup-repository-pg-0.0.10.tgz","fileCount":14,"integrity":"sha512-TXRJiDkgJGM2l1CNtQVd2x0QdIGoituEqUlO8t9L4utW/LmQstjwGYBMlDHypizgn4myMnKUXKd4r2FuXqtQQQ==","signatures":[{"sig":"MEYCIQC/qEn8itS3ec5BvTLfGuhUznQmJVoOlGAbjc4ccuZ4dgIhALguVieE98e2uFgAECoLHgZhrlUhcMJi3rUYNuPJ1e3O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72174},"main":"build/index.js","types":"build/index.d.ts","gitHead":"7f4e0489a19bc7ce0fd53198d9c869ae8d0ef4ce","scripts":{"test":"jest","build":"yarn run clean && yarn run compile","clean":"rimraf -rf ./build","compile":"tsc -p tsconfig.build.json","prepublishOnly":"yarn run build"},"_npmUser":{"name":"genaris","email":"gentilester@gmail.com"},"repository":{"url":"git+https://github.com/2060-io/message-pickup-repository.git","type":"git","directory":"packages/postgres"},"_npmVersion":"10.8.2","description":"Message Pickup Repository Postgres module","directories":{},"_nodeVersion":"20.19.0","dependencies":{"pg":"^8.11.3","pg-pubsub":"^0.8.1","typescript":"^4.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.0","ts-jest":"^27.0.0","webpack":"^5.0.0","@types/pg":"^8.11.10","ts-loader":"^9.0.0","@types/node":"^16.0.0","webpack-cli":"^4.0.0","@credo-ts/core":"^0.5.11"},"peerDependencies":{"@credo-ts/core":"^0.5.11"},"_npmOperationalInternal":{"tmp":"tmp/credo-ts-message-pickup-repository-pg_0.0.10_1744237087901_0.2662125209046986","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@2060.io/credo-ts-message-pickup-repository-pg","version":"0.0.11","license":"Apache-2.0","_id":"@2060.io/credo-ts-message-pickup-repository-pg@0.0.11","maintainers":[{"name":"genaris","email":"gentilester@gmail.com"}],"homepage":"https://github.com/2060-io/message-pickup-repository/tree/main/packages/postgres","bugs":{"url":"https://github.com/2060-io/message-pickup-repository/issues"},"dist":{"shasum":"ae398a3a3f64b83cfbb31737e1eb585a41fb1a61","tarball":"https://registry.npmjs.org/@2060.io/credo-ts-message-pickup-repository-pg/-/credo-ts-message-pickup-repository-pg-0.0.11.tgz","fileCount":14,"integrity":"sha512-LiQFD+MDNpMKoQTB9JMxkJfqTmATlOXOsGVqpMEyfqkX7udgfi0x9qy2nvrOIuOU4KMyfsDyXXBoRumYR85U7g==","signatures":[{"sig":"MEUCIDX87CqDieK544pr8VOaErgjevD7cbZ+iH4gr1kO0DSNAiEA+TOLN8z6cRPFooh9H0qbI5kJb6g1RFWgOa6EUnu217w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72175},"main":"build/index.js","types":"build/index.d.ts","gitHead":"eb449c2edd96cec3b7b2c7c5b4f93393b1edf315","scripts":{"test":"jest","build":"yarn run clean && yarn run compile","clean":"rimraf -rf ./build","compile":"tsc -p tsconfig.build.json","prepublishOnly":"yarn run build"},"_npmUser":{"name":"genaris","email":"gentilester@gmail.com"},"repository":{"url":"git+https://github.com/2060-io/message-pickup-repository.git","type":"git","directory":"packages/postgres"},"_npmVersion":"10.8.2","description":"Message Pickup Repository Postgres module","directories":{},"_nodeVersion":"20.19.0","dependencies":{"pg":"^8.11.3","pg-pubsub":"^0.8.1","typescript":"^4.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.0","ts-jest":"^27.0.0","webpack":"^5.0.0","@types/pg":"^8.11.10","ts-loader":"^9.0.0","@types/node":"^16.0.0","webpack-cli":"^4.0.0","@credo-ts/core":"^0.5.11"},"peerDependencies":{"@credo-ts/core":"^0.5.11"},"_npmOperationalInternal":{"tmp":"tmp/credo-ts-message-pickup-repository-pg_0.0.11_1744291351076_0.6088368691446029","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@2060.io/credo-ts-message-pickup-repository-pg","version":"0.0.12","license":"Apache-2.0","_id":"@2060.io/credo-ts-message-pickup-repository-pg@0.0.12","maintainers":[{"name":"genaris","email":"gentilester@gmail.com"}],"homepage":"https://github.com/2060-io/message-pickup-repository/tree/main/packages/postgres","bugs":{"url":"https://github.com/2060-io/message-pickup-repository/issues"},"dist":{"shasum":"9d0f30655e6a2ea3d5e8abdb10a8546ebe47d927","tarball":"https://registry.npmjs.org/@2060.io/credo-ts-message-pickup-repository-pg/-/credo-ts-message-pickup-repository-pg-0.0.12.tgz","fileCount":14,"integrity":"sha512-SC6cgEiC/8MmdIcUXCx3dihIG53Xj9sEVlKcibN6+oSTMvAON2IdJQjjcnOOZGHDLcMDv0GEM1WNoVsAIXVbVQ==","signatures":[{"sig":"MEYCIQDZ8e8NW3Nu6yOiYQF3AwbYLI4Mzh4/ASMVr4EAVqqhXQIhANFd4OE8XdUbEFpnq0Dht5I+4sbTDO0vkb67RGbkdyTs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72177},"main":"build/index.js","types":"build/index.d.ts","gitHead":"c93184b9190556cd50de8b6a0d6cc9f6b3161f36","scripts":{"test":"jest","build":"yarn run clean && yarn run compile","clean":"rimraf -rf ./build","compile":"tsc -p tsconfig.build.json","prepublishOnly":"yarn run build"},"_npmUser":{"name":"genaris","email":"gentilester@gmail.com"},"repository":{"url":"git+https://github.com/2060-io/message-pickup-repository.git","type":"git","directory":"packages/postgres"},"_npmVersion":"10.8.2","description":"Message Pickup Repository Postgres module","directories":{},"_nodeVersion":"20.19.0","dependencies":{"pg":"^8.11.3","pg-pubsub":"^0.8.1","typescript":"^4.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.0","ts-jest":"^27.0.0","webpack":"^5.0.0","@types/pg":"^8.11.10","ts-loader":"^9.0.0","@types/node":"^16.0.0","webpack-cli":"^4.0.0","@credo-ts/core":"^0.5.11"},"peerDependencies":{"@credo-ts/core":"^0.5.11"},"_npmOperationalInternal":{"tmp":"tmp/credo-ts-message-pickup-repository-pg_0.0.12_1744304650828_0.5937344124645196","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@2060.io/credo-ts-message-pickup-repository-pg","version":"0.0.13","license":"Apache-2.0","_id":"@2060.io/credo-ts-message-pickup-repository-pg@0.0.13","maintainers":[{"name":"genaris","email":"gentilester@gmail.com"}],"homepage":"https://github.com/2060-io/message-pickup-repository/tree/main/packages/postgres","bugs":{"url":"https://github.com/2060-io/message-pickup-repository/issues"},"dist":{"shasum":"40405bc094cccefa2a481ed2dcdf1ef8f6c748d0","tarball":"https://registry.npmjs.org/@2060.io/credo-ts-message-pickup-repository-pg/-/credo-ts-message-pickup-repository-pg-0.0.13.tgz","fileCount":16,"integrity":"sha512-LSnrDxZu93Zjwtz64zuMiLo0F4LsKr8JLFD2QTTmGb3mcZ4t4TR8jA+F/Z5E4ipcBTPdRQJ3qKk/bkndaT8OtA==","signatures":[{"sig":"MEUCIQDCKGq04FjdSmVIYuIszCTQeGa+ThqK4MG3dM5+8WJy/wIgdkbksAJUpGb6XLGtvYpAiA7gdL6AghroEZLaUjdqIkQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69636},"main":"build/index.js","types":"build/index.d.ts","gitHead":"a352bed872633d1bee028658539151df991449f6","scripts":{"test":"jest","build":"yarn run clean && yarn run compile && yarn run copy:migrations","clean":"rimraf -rf ./build","compile":"tsc -p tsconfig.build.json","prepublishOnly":"yarn run build","copy:migrations":"cp -r src/migrations build/migrations"},"_npmUser":{"name":"genaris","email":"gentilester@gmail.com"},"repository":{"url":"git+https://github.com/2060-io/message-pickup-repository.git","type":"git","directory":"packages/postgres"},"_npmVersion":"10.8.2","description":"Message Pickup Repository Postgres module","directories":{},"_nodeVersion":"20.19.0","dependencies":{"pg":"^8.11.3","pg-pubsub":"^0.8.1","typescript":"^4.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.0","ts-jest":"^27.0.0","webpack":"^5.0.0","@types/pg":"^8.11.10","ts-loader":"^9.0.0","@types/node":"^16.0.0","webpack-cli":"^4.0.0","@credo-ts/core":"^0.5.11"},"peerDependencies":{"@credo-ts/core":"^0.5.11"},"_npmOperationalInternal":{"tmp":"tmp/credo-ts-message-pickup-repository-pg_0.0.13_1745500243104_0.5976663959814177","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@2060.io/credo-ts-message-pickup-repository-pg","version":"0.0.14","license":"Apache-2.0","_id":"@2060.io/credo-ts-message-pickup-repository-pg@0.0.14","maintainers":[{"name":"genaris","email":"gentilester@gmail.com"}],"homepage":"https://github.com/2060-io/message-pickup-repository/tree/main/packages/postgres","bugs":{"url":"https://github.com/2060-io/message-pickup-repository/issues"},"dist":{"shasum":"98c50dc5959217a2729bf6848672e051cde85fcf","tarball":"https://registry.npmjs.org/@2060.io/credo-ts-message-pickup-repository-pg/-/credo-ts-message-pickup-repository-pg-0.0.14.tgz","fileCount":16,"integrity":"sha512-+DYPHhNQ4S47LEvucpDmdyPIeUaPevydxw4uPI906Ird95yanMvIqVt63ZD+k2/uXKHwBjZUfO1BkEu/3Fo6kw==","signatures":[{"sig":"MEYCIQCwYIwD0RvbRueMVXS0joTBOJoYN7z7QwIK2EUULVV/2gIhAMiHG99s73a9raRKCaPuk9tVzhLtb8n41rygcJeL63wV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69942},"main":"build/index.js","types":"build/index.d.ts","gitHead":"c83176b9dd7d3441baa950768ec7bdfa1aba0b48","scripts":{"test":"jest","build":"yarn run clean && yarn run compile && yarn run copy:migrations","clean":"rimraf -rf ./build","compile":"tsc -p tsconfig.build.json","prepublishOnly":"yarn run build","copy:migrations":"cp -r src/migrations build/migrations"},"_npmUser":{"name":"genaris","actor":{"name":"genaris","type":"user","email":"gentilester@gmail.com"},"email":"gentilester@gmail.com"},"repository":{"url":"git+https://github.com/2060-io/message-pickup-repository.git","type":"git","directory":"packages/postgres"},"_npmVersion":"10.8.2","description":"Message Pickup Repository Postgres module","directories":{},"_nodeVersion":"20.19.3","dependencies":{"pg":"^8.11.3","pg-pubsub":"^0.8.1","typescript":"^4.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.0","ts-jest":"^27.0.0","webpack":"^5.0.0","@types/pg":"^8.11.10","ts-loader":"^9.0.0","@types/node":"^16.0.0","webpack-cli":"^4.0.0","@credo-ts/core":"^0.5.11"},"peerDependencies":{"@credo-ts/core":"^0.5.11"},"_npmOperationalInternal":{"tmp":"tmp/credo-ts-message-pickup-repository-pg_0.0.14_1752072302175_0.18343842384535103","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@2060.io/credo-ts-message-pickup-repository-pg","main":"build/index.js","types":"build/index.d.ts","version":"0.0.15","publishConfig":{"access":"public"},"description":"Message Pickup Repository Postgres module","license":"Apache-2.0","homepage":"https://github.com/2060-io/message-pickup-repository/tree/main/packages/postgres","repository":{"type":"git","url":"git+https://github.com/2060-io/message-pickup-repository.git","directory":"packages/postgres"},"scripts":{"build":"yarn run clean && yarn run compile && yarn run copy:migrations","clean":"rimraf -rf ./build","compile":"tsc -p tsconfig.build.json","copy:migrations":"cp -r src/migrations build/migrations","prepublishOnly":"yarn run build","test":"jest"},"dependencies":{"pg":"^8.11.3","pg-pubsub":"^0.8.1","typescript":"^4.0.0"},"devDependencies":{"@types/node":"^16.0.0","@types/pg":"^8.11.10","jest":"^27.0.0","ts-jest":"^27.0.0","ts-loader":"^9.0.0","webpack":"^5.0.0","webpack-cli":"^4.0.0","@credo-ts/core":"^0.5.11"},"peerDependencies":{"@credo-ts/core":"^0.5.11"},"_id":"@2060.io/credo-ts-message-pickup-repository-pg@0.0.15","gitHead":"bc1668662ca9f801394f436992870199d0a8467a","bugs":{"url":"https://github.com/2060-io/message-pickup-repository/issues"},"_nodeVersion":"20.19.3","_npmVersion":"10.8.2","dist":{"integrity":"sha512-cTzLKbWa1uJ/Or94Ds/JjJBeTqt0dTgYuaVubGLAQm2Ige5hEULobJ0qY+zu76SImZzTvhzcAICfLwSrhKLGVg==","shasum":"18d008bbddc97a3d93c24d8ae65bd4db3633e1ff","tarball":"https://registry.npmjs.org/@2060.io/credo-ts-message-pickup-repository-pg/-/credo-ts-message-pickup-repository-pg-0.0.15.tgz","fileCount":16,"unpackedSize":70212,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDZNrda1UkbiY2zSqAYjiiS0CGYRVx/wM9NTcyJjdBYPAIhAKrsJ6mPVupBYLacePjfqr+W0DEuI1EsbIooKcbLu/rY"}]},"_npmUser":{"name":"genaris","email":"gentilester@gmail.com","actor":{"name":"genaris","email":"gentilester@gmail.com","type":"user"}},"directories":{},"maintainers":[{"name":"genaris","email":"gentilester@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/credo-ts-message-pickup-repository-pg_0.0.15_1752179919866_0.8764167289302995"},"_hasShrinkwrap":false}},"time":{"created":"2025-01-10T14:59:56.277Z","modified":"2025-07-10T20:38:40.251Z","0.0.7":"2025-01-10T14:59:56.609Z","0.0.8":"2025-04-02T13:16:20.357Z","0.0.9":"2025-04-03T21:00:36.952Z","0.0.10":"2025-04-09T22:18:08.095Z","0.0.11":"2025-04-10T13:22:31.267Z","0.0.12":"2025-04-10T17:04:11.009Z","0.0.13":"2025-04-24T13:10:43.313Z","0.0.14":"2025-07-09T14:45:02.366Z","0.0.15":"2025-07-10T20:38:40.031Z"},"bugs":{"url":"https://github.com/2060-io/message-pickup-repository/issues"},"license":"Apache-2.0","homepage":"https://github.com/2060-io/message-pickup-repository/tree/main/packages/postgres","repository":{"type":"git","url":"git+https://github.com/2060-io/message-pickup-repository.git","directory":"packages/postgres"},"description":"Message Pickup Repository Postgres module","maintainers":[{"name":"genaris","email":"gentilester@gmail.com"}],"readme":"# Postgres Message Pickup repository for Credo\n\n## Overview\n\nThis package provides a simple but efficient Message Pickup Repository implementation to use with a [Credo](https://github.com/openwallet-foundation/credo-ts) mediator that wishes to persist queued messages for offline users in a shared database that will allow using multiple Credo instances. And everything without the need of using extra components, since the same Postgres database host used to store Credo wallet can be used for the Pickup Messages database!\n\n![Minimalist multi-instance architecture](./docs/diagrams/minimalist-multi-instance-architecture.png)\n\n## Features\n\n- Message storage and retrieval: save and fetch messages from a PostgreSQL database.\n- Pub/Sub integration: automatically notify other instances about new messages that arrived to a certain client.\n\n- Live session management: handle [Message Pickup V2 Live sessions](https://github.com/hyperledger/aries-rfcs/tree/main/features/0685-pickup-v2#live-mode) for efficient message delivery.\n\n- Automatic database initialization: set up the database structure required for message operations at startup.\n\n- Event-driven notifications: emit a `MessagePickupRepositoryMessageQueued` event whenever a message is queued, allowing external listeners to implement flexible notification mechanisms like push notifications or webhooks when a message has arrived for an offline user (not connected to any instance).\n\n## How does it work?\n\n`PostgresMessagePickupRepository` creates two tables in its PostgreSQL database: one to store the queued messages, and another one to keep track of Live sessions when clients connect and disconnect from it. It also registers to a [PG PubSub](https://github.com/voxpelli/node-pg-pubsub) channel to be notified when a message arrives (for any connection).\n\nWhen a new message for a certain DIDComm connection is added to the queue, `PostgresMessagePickupRepository` looks if there is an existing session with it:\n\n- If there is a local Live mode session, it will pack and deliver the message directly, adding it to the persistent queue with a particular status flag (`sending`) to reflect that it is expected to be delivered and acknowledged soon\n- If there is not any local session, the client could be connected to another instance. Therefore, it adds the message to the persistent queue and looks into the shared message pickup session database:\n  - If there is a session registered to another instance, it will publish a notification\n  - If no session is found, it emits a `MessagePickupRepositoryMessageQueued` event, which external listeners can use to handle notifications (push/webhooks).\n\n> **Note**: at the moment, all instances are notified when a message arrives for any online DIDComm connection. A possible improvement could be to create a channel per connection, so only the instance connected to that client is triggered. But it is uncertain for us yet how well it would scale when there is a large number of connected users at the same time.\n\nThe following diagrams show the operation when messages arrive in both online and offline scenarios.\n\n![Message arrived for an online client](./docs/diagrams/message-arrived-online-client.png)\n\n![Message arrived for an offline client](./docs/diagrams/message-arrived-offline-client.png)\n\n## Installation\n\nThis module is designed to work with Credo 0.5.X. Newer versions may include breaking changes in its API and therefore would require code updates to this module.\n\nTo use it, install package in your DIDComm Mediator application. For example:\n\n```bash\nnpm i @2060.io/message-pickup-repository-pg\n```\n\nor\n\n```bash\nyarn add @2060.io/message-pickup-repository-pg\n```\n\n## Usage\n\nSetting up PostgresMessagePickupRepository is quite simple if you have some prior experience with Credo. We can summarize it in three steps: create, initialize and inject into a Credo instance.\n\n### Constructing the Repository\n\nYou need to instance `PostgresMessagePickupRepository` with explicit database configuration (remember: it could be the same used for Credo wallet). If `postgresDatabaseName` is not specified, default `messagepickuprepository` will be used (if it does not exist, it will try to automatically create it using the provided credentials).\n\n```ts\nconst messageRepository = new PostgresMessagePickupRepository({\n  logger: yourLoggerInstance,\n  postgresUser: 'your_postgres_user',\n  postgresPassword: 'your_postgres_password',\n  postgresHost: 'your_postgres_host',\n  postgresDatabaseName: 'your_database_name',\n})\n```\n\n### Initializing the Repository\n\nTo start using the `PostgresMessagePickupRepository`, initialize it with an agent and a callback function for retrieving connection information.\n\nThis callback must return another callback function that will be called by `PostgresMessagePickupRepository` when it determines that a Push Notification must be sent. It is a generic approach that makes you free to implement the Push notification service you want.\n\nNote that in this example, notification token is stored as a tag in connection records, so it is used to determine whether to create a Push notification callback or not for a given DIDComm connection.\n\n```ts\nawait messagePickupRepository.initialize({ agent })\n```\n\n### Handling `MessagePickupRepositoryMessageQueued` Event\n\nListeners can handle queued messages by listening for the emitted event:\n\n```typescript\nagent.events.on(MessageQueuedEventType, async ({ payload }) => {\n  const { connectionId, messageId } = payload\n\n  // Example: call external notification service\n  await notificationService.notify(connectionId, messageId)\n})\n```\n\n### Injecting into an Agent instance\n\nThis full example shows how `PostgresMessagePickupRepository` is created an initialized alongside an `Agent` instance:\n\n```javascript\nimport { Agent, MediatorModule, MessagePickupModule } from '@credo-ts/core'\nimport { agentDependencies } from '@credo-ts/node'\nimport { MessageForwardingStrategy } from '@credo-ts/core/build/modules/routing/MessageForwardingStrategy'\nimport { PostgresMessagePickupRepository } from './PostgresMessagePickupRepository'\n\nconst messagePickupRepository = new PostgresMessagePickupRepository({\n  postgresHost: 'postgres',\n  postgresUser: 'user',\n  postgresPassword: 'pass',\n})\nconst agent = new Agent({\n  dependencies: agentDependencies,\n  config: { label: 'Test' },\n  modules: {\n    mediator: new MediatorModule({ messageForwardingStrategy: MessageForwardingStrategy.QueueOnly }),\n    messagePickup: new MessagePickupModule({\n      messagePickupRepository,\n    }),\n  },\n})\n\nawait messagePickupRepository.initialize({ agent })\nawait agent.initialize()\n\nagent.events.on('MessagePickupRepositoryMessageQueued', async ({ payload }) => {\n  const { connectionId, messageId } = payload\n\n  // Custom logic for notification, webhook, etc here\n})\n```\n\nAs you can see, all you have to do is to set up your Credo agent's `ForwardingStrategy` to to `QueueOnly` and provide a `PostgresMessagePickupRepository` instance (with the appropriate callbacks) to `MessagePickupModuleConfig`. Then, initialize both your agent and PostgresMessagePickupRepository` and have fun!\n","readmeFilename":"README.md"}