{"_id":"@actyx-contrib/registry","_rev":"11-ccc179d03717e644405a4987ec015a25","name":"@actyx-contrib/registry","dist-tags":{"latest":"3.0.0","beta":"2.0.0"},"versions":{"1.0.0":{"name":"@actyx-contrib/registry","version":"1.0.0","description":"Want to keep track of and work with all fish of a specific type? Meet the RegistryFish pattern.","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"clean":"rimraf ./lib ./coverage","tsc":"tsc","tsc:watch":"tsc --watch --pretty","build":"tsc -p ./tsconfig.json","build:watch":"npm run build -- --watch --pretty","build:doc":"rimraf ./docs & typedoc --options typedoc.json","lint":"tsc & eslint './src/**/*.{js,ts,tsx}' & prettier './src/**/*.{js,ts,tsx}' --check","lint:fix":"tsc & eslint './src/**/*.{js,ts,tsx}' --fix & prettier './src/**/*.{js,ts,tsx}' --write","license:add":"license-check-and-add add -f add-license-config.json","license:check":"license-check-and-add check -f add-license-config.json","license:check-dep":"license-checker --production --onlyAllow 'MIT; MIT OR X11; BSD; ISC; Apache-2.0;'"},"author":{"name":"Actyx AG"},"license":"Apache-2.0","dependencies":{"@actyx/pond":"^1.0.3","fp-ts":"^1.19.4","io-ts":"^1.10.1","io-ts-types":"^0.4.1","newtype-ts":"^0.2.4","rxjs":"^5.5.12"},"devDependencies":{"@types/node":"^14.0.13","license-check-and-add":"^3.0.4","typedoc":"^0.17.7","typescript":"^3.9.5"},"gitHead":"27c6477c8144dca151a24e750d7aeef2ae1323b7","_id":"@actyx-contrib/registry@1.0.0","_nodeVersion":"10.16.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-jw/G5EmDMmZPJR3jcG/pVw4stQnsqyc71qQSKjq+zec5oueSKR1o0pzyvoWZG0CVW5/DwRniGeeV6YZQTE9qEA==","shasum":"853e8413fc0d726d886c5f232512f914351e8966","tarball":"https://registry.npmjs.org/@actyx-contrib/registry/-/registry-1.0.0.tgz","fileCount":5,"unpackedSize":17044,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe5196CRA9TVsSAnZWagAAgIcP/ikAhrLOynAq2mbuIjXj\nLJiMSa55DoVJ4PODmjTjxdUYgWR7fbTKcCndDhWNxQH1Ezb5xR4Z07W5WBhM\nA5pYcIDWtrhAfud1+etNiekCPuKLG83HkCQSY8T0sF4OwJbSEuGRpkfIN5wS\nNXWUXevvqTU2OEo461OaYuyIwzJumZxZFBEuaL/EWZIGreL7VTB12+G54dny\nLZHU0vsO+QjzCCxMpHaGlA+x6av4088zO9aMA1Tbjayf+2JhPWFtSaz+CYy4\nZVXdeEnuz88busfGIoI0fq6yf73T7/NgpjKAwP2b70tOjmpFMLk1twXFJg+b\ncToAPIYR9PQVZYtXNi3Mt9FArAaCPzFbv081zfHdTGc8E/fZOGldIeLY673T\nEKCke4V7Z6w+lqt3c/6wMaKfzy+31zafMkFWtdJDKfnU26RHicgM8j/VtDSJ\nqU4KUPPDVUgdE1AJCuX0XPO3R1HgXMkyRr5BwNq9NX9p9rmxmzA3BAsnpGSo\nuwBOK45OMGEKyDeSqOMXzZ5SIBb63E46Y78UAt4MlNoMraP2cTmStYlgqE0c\nRCLAzbIL59MniD48T1+WQjBWPpOgM0A0BY0MBGu7N/TrfO3d88J/n7bjQTBI\nI6TcMJfPFfXK2qMl6Lt3QXh3FE240EUe7L7vD6yWz4dVMFAi7CiI5qR1N4GV\n/O1j\r\n=/wu+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAEEE10eMWUcC6IrqUG4G3xbMpWpyA3VDAbtOm1M7OABAiBLer4nXuVAo+8izKs5ZZBXguA8uLsjgRLeChquCjPf1w=="}]},"maintainers":[{"name":"alex(actyx)","email":"alex.halemba@actyx.io"}],"_npmUser":{"name":"alex(actyx)","email":"alex.halemba@actyx.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry_1.0.0_1592221561483_0.8769976833076578"},"_hasShrinkwrap":false},"1.0.1":{"name":"@actyx-contrib/registry","version":"1.0.1","description":"Want to keep track of and work with all fish of a specific type? Meet the RegistryFish pattern.","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"prepack":"npm run test:no-coverage && npm run build && npm run license:add && npm run lint","clean":"rimraf ./lib ./coverage","tsc":"tsc","tsc:watch":"tsc --watch --pretty","build":"tsc -p ./tsconfig.json","build:watch":"npm run build -- --watch --pretty","build:doc":"rimraf ./docs & typedoc --options typedoc.json","test":"TZ=UTC jest","test:no-coverage":"TZ=UTC jest --coverage=false","test:watch":"TZ=UTC jest --coverage=false --watch","lint":"tsc & eslint './src/**/*.{js,ts,tsx}' & prettier './src/**/*.{js,ts,tsx}' --check","lint:fix":"tsc & eslint './src/**/*.{js,ts,tsx}' --fix & prettier './src/**/*.{js,ts,tsx}' --write","license:add":"license-check-and-add add -f add-license-config.json","license:check":"license-check-and-add check -f add-license-config.json","license:check-dep":"license-checker --production --onlyAllow 'MIT; MIT OR X11; BSD; ISC; Apache-2.0;'"},"author":{"name":"Actyx AG"},"license":"Apache-2.0","dependencies":{"@actyx/pond":"^1.1","fp-ts":"^1.19.4","io-ts":"^1.10.1","io-ts-types":"^0.4.1","newtype-ts":"^0.2.4","rxjs":"^5.5.12"},"devDependencies":{"@types/jest":"^26.0.0","@types/node":"^14.0.13","@typescript-eslint/eslint-plugin":"^3.3.0","@typescript-eslint/parser":"^3.3.0","babel-jest":"^26.0.1","eslint":"^7.2.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","jest":"^26.0.1","prettier":"^1.19.1","license-check-and-add":"^3.0.4","ts-jest":"^26.1.0","typedoc":"^0.17.7","typescript":"^3.9.5"},"gitHead":"6638e4aafbbdbb12f97331e506c18a06785f80f9","_id":"@actyx-contrib/registry@1.0.1","_nodeVersion":"10.16.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-JXEAC2JEg3Wh1m196Pq1mK16eWeC2YX88IFAwWxyVZNqw7n5I55XFLgFdskPbxPlAN8kIuR4nx9a128VS0xqew==","shasum":"7e61e81ac7a07ebc23b5b5ae93cb773cf935abaa","tarball":"https://registry.npmjs.org/@actyx-contrib/registry/-/registry-1.0.1.tgz","fileCount":5,"unpackedSize":17592,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6NhXCRA9TVsSAnZWagAAivYP/RRspTGhIHZ91m8F5/xb\non26bVTUuJhA21JMHFpLU8iI/pBgr40r4+zsGYfL7YDEpUG8WN8Jtxb2Hk1v\n0QJyKLcYX2Mu939mhj28yRI4lnLL32B5nOi6eQE9lgx7LO0+jusOHMPh3dd3\n6v+6oJxVO6xZ96CURIdZagbYaBZooA6Zg7755urCA/2cE3U4YXbFipgm3bwI\nYRkI6LMrJRfyMkFUbTZ7p3YLbfFELwGuZztdQd87bON7sTGuvH+bIooxiQLI\nhfCxYu9At6JI7iGxyxOCjOiqebV5d5e5dN6UEmJFXde4ryi8iDJgw43xn6Jf\nrBA7iD2LTsDA07DZPiNP1IX7u7lqIxQ0qFU6/IgU2n16qLwyLRu71L0WAH8I\ngXQldGxgeBkhHbd1NlqdBl5/RMaFzGgXrOoYx8sadPr3S1HjFCTHZcuBpn5O\nUkq1p0SOR45mmCupLbqI2/o+T0hLWiCPsyywz1BxD64ee+LusnRr0ZsDO1Gk\njH5251lyaZKnGaxdmpbydiLLEf9IKinXHg07MUOEtoM/u4UY/BkEc/J7roYf\nKMcQpoWFmH1epNa7nj7QBRCLJpm5p/sj5q7yJIFZIz4gDtZTKeqkFFSmWPvl\n3+yZluPXQ+XvLTCVVtqrUmIFEf8uOIkxU1DIabxSQcNEBBbu0t8szWwyq0Qn\nU4vL\r\n=/J5E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzFKg4/frF9GVB8sAwgEpLQhootDuleBM1BfdCFckrRgIgXYBItWTq7CQYJ8Xx6sCiC8sP/dNV5IcUEIgsbW4oRyA="}]},"maintainers":[{"email":"alex.halemba@actyx.io","name":"alex(actyx)"},{"email":"oliver@alithia.net","name":"ostollmann"},{"email":"roland@actyx.io","name":"roland.kuhn"}],"_npmUser":{"name":"alex(actyx)","email":"alex.halemba@actyx.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry_1.0.1_1592318038629_0.7173324657710676"},"_hasShrinkwrap":false},"1.0.2":{"name":"@actyx-contrib/registry","version":"1.0.2","description":"Want to keep track of and work with all fish of a specific type? Meet the RegistryFish pattern.","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"prepack":"npm run test:no-coverage && npm run build && npm run license:add && npm run lint","clean":"rimraf ./lib ./coverage","tsc":"tsc","tsc:watch":"tsc --watch --pretty","build":"tsc -p ./tsconfig.json","build:watch":"npm run build -- --watch --pretty","build:doc":"rimraf ./docs & typedoc --options typedoc.json","test":"TZ=UTC jest","test:no-coverage":"TZ=UTC jest --coverage=false","test:watch":"TZ=UTC jest --coverage=false --watch","lint":"tsc & eslint './src/**/*.{js,ts,tsx}' & prettier './src/**/*.{js,ts,tsx}' --check","lint:fix":"tsc & eslint './src/**/*.{js,ts,tsx}' --fix & prettier './src/**/*.{js,ts,tsx}' --write","license:add":"license-check-and-add add -f add-license-config.json","license:check":"license-check-and-add check -f add-license-config.json","license:check-dep":"license-checker --production --onlyAllow 'MIT; MIT OR X11; BSD; ISC; Apache-2.0;'"},"author":{"name":"Actyx AG"},"license":"Apache-2.0","peerDependencies":{"@actyx/pond":"~1.1","fp-ts":"~1.19.4","io-ts":"~1.10.1","io-ts-types":"~0.4.1","rxjs":"~5.5.12"},"devDependencies":{"@actyx/pond":"~1.1","@types/jest":"^26.0.0","@types/node":"^14.0.13","@typescript-eslint/eslint-plugin":"^3.3.0","@typescript-eslint/parser":"^3.3.0","babel-jest":"^26.0.1","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","eslint":"^7.2.0","fp-ts":"^1.19.4","io-ts-types":"^0.4.1","io-ts":"^1.10.1","jest":"^26.0.1","license-check-and-add":"^3.0.4","prettier":"^1.19.1","rxjs":"^5.5.12","ts-jest":"^26.1.0","typedoc":"^0.17.7","typescript":"^3.9.5"},"gitHead":"5276fd40038bf94ef0cd54ab75e455607eb4f027","_id":"@actyx-contrib/registry@1.0.2","_nodeVersion":"10.16.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-JnT8k3BoIMCdG/x7WJL8nIXl3ExmjCAB8NkPSEBFJCUZGBKF3PprhDQHbvabBGuIi5Kv7cgmuvyaF98jcYXtWA==","shasum":"4ea861f0c81de9ef64a7c03f49e453ff974f1480","tarball":"https://registry.npmjs.org/@actyx-contrib/registry/-/registry-1.0.2.tgz","fileCount":5,"unpackedSize":17695,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDuoXCRA9TVsSAnZWagAAAOYP/2dS8+a6/J4JAFFLSni9\nKTQ+yhWacZTcYqtgNAXq4BgcopWXfPU3ZEuFiUcMAQpfwFzKpjX4SehAl7Du\nPS0RRYp7XKTdkagJc/vtUAn9m3hbx5V/fG4GSlo+N5+n9TU/08Iyw+X0gIgS\nzRqcDh06kgKpz4whwT0BOGM6Kz5BnGslsNoLBdn6Klf5gGkRazNa1qpv/k8A\nd3zmniHa5i71w/htCdzKLJz5Q+VUaPj7/yFdl5PDhfd1xnpF3g4FzlDcL6Sv\nQLlSOBWPVQnMWZWwvxuEQdZVNdRPMB2Wl95UVuJZMPLJWCOSk+dja63rs5k+\nyGNu0xjzwZqA7F6K0NJa27e6WvHv0KzQjF9I2PRTLdh3es/p3Qykh/HoNpFZ\nMf19R50Lsd5d2YBILkVJV/wY8M6h4B3IHPLoZN0yEzrSEuQNvVUZmDbtPJmW\n2jU3ehMztiGVqot075kGiixuhZgzHQmaWBAPACmvRINohjfdUmXUcK95gJHH\nEK3+27/GwDpzSxdW++SDqZeG/6SIkiN/9wQFUZ02HUul3uN6gjbWMOHYv4SO\nILheMQ0RAmEZKYXP4GeECJgYi/WHPkJDIZdL4gCtmMjYnivW4OfSLBqRU9F/\nNTbpSVFUSDMzcZW4iQezvy/ll5qZ8z8lOaXdyq+4/0DgY6iRxScweE+zJeC9\nZ5PA\r\n=gGLH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpwL7EATWmHp75SnuI/JOIkSUMRp2kUL5GuLyQlAS5RwIgMlBIjJl7M4FY1kZzbzpKe2F5uLHAmds1iE51tgQk/oQ="}]},"maintainers":[{"email":"alex.halemba@actyx.io","name":"alex(actyx)"},{"email":"oliver@alithia.net","name":"ostollmann"},{"email":"roland@actyx.io","name":"roland.kuhn"}],"_npmUser":{"name":"alex(actyx)","email":"alex.halemba@actyx.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry_1.0.2_1594812951365_0.8871663099463756"},"_hasShrinkwrap":false},"1.0.3":{"name":"@actyx-contrib/registry","version":"1.0.3","description":"Want to keep track of and work with all fish of a specific type? Meet the RegistryFish pattern.","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"prepack":"npm run test:no-coverage && npm run build && npm run license:add && npm run lint","clean":"rimraf ./lib ./coverage","tsc":"tsc","tsc:watch":"tsc --watch --pretty","build":"tsc -p ./tsconfig.json","build:watch":"npm run build -- --watch --pretty","build:doc":"rimraf ./docs & typedoc --options typedoc.json","test":"TZ=UTC jest","test:no-coverage":"TZ=UTC jest --coverage=false","test:watch":"TZ=UTC jest --coverage=false --watch","lint":"tsc & eslint './src/**/*.{js,ts,tsx}' & prettier './src/**/*.{js,ts,tsx}' --check","lint:fix":"tsc & eslint './src/**/*.{js,ts,tsx}' --fix & prettier './src/**/*.{js,ts,tsx}' --write","license:add":"license-check-and-add add -f add-license-config.json","license:check":"license-check-and-add check -f add-license-config.json","license:check-dep":"license-checker --production --onlyAllow 'MIT; MIT OR X11; BSD; ISC; Apache-2.0;'"},"author":{"name":"Actyx AG"},"license":"Apache-2.0","peerDependencies":{"@actyx/pond":"~1.1","fp-ts":"~1.19.4","io-ts":"~1.10.1","io-ts-types":"~0.4.1","rxjs":"~5.5.12"},"devDependencies":{"@actyx/pond":"~1.1","@types/jest":"^26.0.0","@types/node":"^14.0.13","@typescript-eslint/eslint-plugin":"^3.3.0","@typescript-eslint/parser":"^3.3.0","babel-jest":"^26.0.1","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","eslint":"^7.2.0","fp-ts":"^1.19.4","io-ts-types":"^0.4.1","io-ts":"^1.10.1","jest":"^26.0.1","license-check-and-add":"^3.0.4","prettier":"^1.19.1","rxjs":"^5.5.12","ts-jest":"^26.1.0","typedoc":"^0.17.7","typescript":"^3.9.5"},"gitHead":"5276fd40038bf94ef0cd54ab75e455607eb4f027","_id":"@actyx-contrib/registry@1.0.3","_nodeVersion":"10.16.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-soJmw+sTByYtVLwCNget93njEcr7mD4zAhr+N3RzGVGO/L1UrCQHP/5z4lj9r4oI6FeyN2nmGqg3K6mXU34cTQ==","shasum":"3b8320d6cca82417babbdae5a3f8f9ae6477b20c","tarball":"https://registry.npmjs.org/@actyx-contrib/registry/-/registry-1.0.3.tgz","fileCount":7,"unpackedSize":42654,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKsh3CRA9TVsSAnZWagAAh9YP/06rsGjReDa1ant5fJHd\nuOb4n7kXNCiGgXo5Nv7de736Of1R/VvKsS5DR4XPwk57PfcoeDkFm1MRMux0\nKpPhWcB/eHKaMM39hQJxKJu8x9ZPsHoD78mSA4nCl90AnoityH/5dZ/D7ycE\nztLJ/DQ9oQoB6dBUu9Cc/xKnqER331rjwYrU/zAns86N4id7IoduxtYZmfjo\nKt8UlB85UGvgQSy39TJc0qUTHNqe+6EM4RjPAnIz6Gp2OWwxiEOJD0QPej+4\nVcVYn2pfG8AxFqfPIwO58WKaLDnhcyIrN60bZUPDzXh+Yq1UlFu3tLdir1u4\nzIHwuFOdWmajeOY40y7V0/ktYLAxSpO48zkT832JQChzbJ9pujsTQOtJBke6\nZjcm8KVsRVSzYBoE+fheqBasBQh0SE1YQgPmolUikJHmy+CICGAF6m+KmztR\naZ+oKS+aO9I0PQhkVdIhDI42arnkekdpxalfWZH12kno/SfYm3R4cGCJigtr\nNO4N/8G+jaNcpe2H8G14aQ5q6GBpzi1dJvD6J2l5VAog74N48D4slY97xBeR\na5h9sWsBvMpVfVB4+R1bZ/Pr2S+TwMr2UzlyOL3jmIhW6Jw2iw8yOpb26VBs\njgHRtsPRk1ocGUO/HaGAH6NvwhGV7bQg6gnbym1pPPj10N2cUIvWaptkZG/H\njgJQ\r\n=UewU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDO4jRWpTjWPVoJ33zwIZ74koSHP6d1/ahAgEjOf8YgtAiEAjyWQwr0go8GTq8dwBBg9zj0S8YvtIkTNbiRBjCuBRbc="}]},"maintainers":[{"email":"alex.halemba@actyx.io","name":"alex(actyx)"},{"email":"oliver@alithia.net","name":"ostollmann"},{"email":"roland@actyx.io","name":"roland.kuhn"}],"_npmUser":{"name":"alex(actyx)","email":"alex.halemba@actyx.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry_1.0.3_1596639350566_0.14017402193919426"},"_hasShrinkwrap":false},"2.0.0":{"name":"@actyx-contrib/registry","version":"2.0.0","description":"Want to keep track of and work with all fish of a specific type? Meet the RegistryFish pattern.","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"clean":"rimraf ./lib ./coverage","tsc":"tsc","tsc:watch":"tsc --watch --pretty","build":"tsc -p ./tsconfig.json","build:watch":"npm run build -- --watch --pretty","build:doc":"rimraf ./docs & typedoc --options typedoc.json","test":"TZ=UTC jest","test:no-coverage":"TZ=UTC jest --coverage=false","test:watch":"TZ=UTC jest --coverage=false --watch","lint":"tsc & eslint './src/**/*.{js,ts,tsx}' & prettier './src/**/*.{js,ts,tsx}' --check","lint:fix":"tsc & eslint './src/**/*.{js,ts,tsx}' --fix & prettier './src/**/*.{js,ts,tsx}' --write","license:add":"license-check-and-add add -f add-license-config.json","license:check":"license-check-and-add check -f add-license-config.json","license:check-dep":"license-checker --production --onlyAllow 'MIT; MIT OR X11; BSD; ISC; Apache-2.0;'"},"author":{"name":"Actyx AG"},"license":"Apache-2.0","peerDependencies":{"@actyx-contrib/rx-pond":"0.2","@actyx/pond":"2.4","rxjs":">4"},"devDependencies":{"@actyx/pond":"2.4","@types/deep-equal":"^1.0.1","@types/jest":"^26.0.0","@types/node":"^14.0.13","@typescript-eslint/eslint-plugin":"^4.18.0","@typescript-eslint/parser":"^4.18.0","babel-jest":"^26.0.1","eslint":"^7.22.0","eslint-config-prettier":"^8.1.0","eslint-plugin-prettier":"^3.3.1","jest":"^26.0.1","license-check-and-add":"^3.0.4","prettier":"^2.2.1","rxjs":"6.6","ts-jest":"^26.1.0","typedoc":"^0.17.7","typescript":"^3.9.5"},"dependencies":{"deep-equal":"^2.0.5"},"readme":"<img width=\"130px\" src=\"https://raw.githubusercontent.com/actyx-contrib/registry/master/registry-icon.png?token=AATHWQKVWIHXWZACE2TBV3264QIVK\">\n\n# Registry toolkit\n\nWant to keep track of and work with all fish of a specific type? Meet the RegistryFish pattern.\n\n## scalable, reuseable, composable, and maintainable\n\nOne thing that has come up quite a few times is the need to track all fish of a certain kind in someplace. You may have a fish representing a specific entity on your shop-floor. There are going to be many instances of this fish, one for each entity. Now, what if you wanted to show a list of all these entities somewhere?\n\nThe registry pattern will lead you to a data model that is **scalable**, **reuseable**, **composable**, and **maintainable**.\n\nRead more about it in the [blog post](https://developer.actyx.com/blog/2020/06/16/registry-fishes).\n(still in Pond-V1 update is coming soon)\n\n## 📦 Installation\n\nRegistry toolkit is available as an [npm package](https://www.npmjs.com/package/@actyx-contrib/registry).\n\n```shell\nnpm install @actyx-contrib/registry\n```\n\n## 📖 Example / Tutorials\n\nThis library is made to reduce the code you write.\n\nUsing Callbacks:\n\n```typescript\nimport { observeRegistry } from '@actyx-contrib/registry'\nimport { ChatRoomRegistryFish, ChatFish } from \"./fish/chatFish\"\nimport { Pond } from '@actyx/pond'\n\nPond.default().then(pond => {\n  observeRegistry(pond, ChatRoomRegistryFish, Object.keys, ChatFish, states => console.log(states))\n})\n```\n\nusing RxJS:\n\n```typescript\nimport { observeRegistry$ } from '@actyx-contrib/registry'\nimport { ChatRoomRegistryFish, ChatFish } from \"./fish/chatFish\"\nimport { RxPond } from '@actyx-contrib/rx-pond'\n\nRxPond.default().then(rxPond => {\n  observeRegistry$(rxPond, ChatRoomRegistryFish, Object.keys, ChatFish)\n    .subscribe(states => console.log(states))\n})\n```\n\nYou will find detailed examples [here](https://github.com/actyx-contrib/registry/tree/master/example)\n\nYou can access the full api documentation and related examples by visiting:\n\n[https://actyx-contrib.github.io/registry](https://actyx-contrib.github.io/registry/)\n\n## 🤓 Developer tools\n\n| Script | Description  |\n|---|---|\n| `npm run clean` | Clean lib and coverage folders |\n| `npm run tsc` | Run TypeScript check |\n| `npm run tsc:watch` | Run TypeScript check watch mode |\n| `npm run build` | Build project |\n| `npm run build:watch` | Build project watch mode |\n| `npm run lint` | Check for lint issues |\n| `npm run lint:fix` | Check and automatically fix lint issues |\n| `npm run test` | Run Jest tests |\n| `npm run test:no-coverage` | Run Jest tests and exclude coverage report |\n| `npm run license:add` | Append license information to every relevant files |\n| `npm run license:check` | Check if license information is present on every relevant files |\n| `npm run license:check-dep` | Check the licenses for project dependencies and produce a summary |\n","readmeFilename":"README.md","gitHead":"c428d3ae87aa46e540fcb8cd2fa09f4dd54aa42f","_id":"@actyx-contrib/registry@2.0.0","_nodeVersion":"14.15.5","_npmVersion":"7.9.0","dist":{"integrity":"sha512-Renyosc4xdgOzfyrgFODhiHoxvfa1hpJaDi3PsaAeuzkZpam/CrBcW8ge+xdBF/pknXVDrELVV5pC7m6H0R/rg==","shasum":"85c19b09dc584d1ebc7207159a65e1130d2440bb","tarball":"https://registry.npmjs.org/@actyx-contrib/registry/-/registry-2.0.0.tgz","fileCount":7,"unpackedSize":42839,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgf/ONCRA9TVsSAnZWagAA52oP/1UAQ2JtYoE/K2ENJ/tC\n/00UCkSF79eXxFGcwEZrAoPUroNOTLfKs4v4XRNpYogwVWaOSgCjUUR7hi73\nXUicKbORF+bebxXgYR57koQUPSeR27/QzcH2VpDNnR37YRKVQ2q6hApoI52g\nXYDXDQk+U0Gl8PgN/EWsI7rdVT+WyS2GaqAI6Po+Q8VxzJ4cp66kznosWXsN\nycHmBG2X4/Lpo+pCQbqW7MgsqoqfvfU2GUme1oZYTWWWQL7ohpcUr6UGwIu/\nGcyIJzD3odKwdP5SmIizUbrNqPl7nkXQOWZays1SfTt0PCSHx+DXBtAj8gF3\n2SrEUH3bye6pkhTMXrMTCpfbcT/BD/YHuQtRN+PcWRW/ti7rNipxFP+jbM73\nxh5L9PAf0a1nCr0vI+LcIG2Vj9GW2+3aKWXY2IBQjgsPd4usK0IycRxT1tLP\nBGWGXFggpE2igN0zS9ouID0dQhxFpvIIbp1SOT/O0gm/g8jlqv8z12qlag1t\njQjYe667IIwtDT5BWY810//tRv1k+470mNphEx1vqTy+yx64ZOx4yMfRbnKm\nZeLPGotHnbdManKOx9D/0FVRFWkbd7un1fjStXylYI1wca+Bk2xgSeHSlwAE\nmkMTJs2rw5/FqnmTr01Ey2wIyXwemFQcZv60NHJBIgh8MecYIlsPn7h55coj\nEc/s\r\n=WS/G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZrZrgVFhy+6QnJZ65wBTx3njFIdKTJLhftLIJPeJ+rgIgMM9YjIKoqoqJGlsMpHj+dgsZWLeYDbXquSnPwidSkbU="}]},"_npmUser":{"name":"alex(actyx)","email":"alex.halemba@actyx.io"},"directories":{},"maintainers":[{"name":"alex(actyx)","email":"alex.halemba@actyx.io"},{"name":"ostollmann","email":"oliver@alithia.net"},{"name":"roland.kuhn","email":"roland@actyx.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry_2.0.0_1618998156915_0.46685709583191803"},"_hasShrinkwrap":false},"2.0.1":{"name":"@actyx-contrib/registry","version":"2.0.1","description":"Want to keep track of and work with all fish of a specific type? Meet the RegistryFish pattern.","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"prepack":"npm run test:no-coverage && npm run build && npm run license:add && npm run lint","clean":"rimraf ./lib ./coverage","tsc":"tsc","example:observeRegistry":"ts-node ./example/observeRegistry.ts ","tsc:watch":"tsc --watch --pretty","build":"tsc -p ./tsconfig.json","build:watch":"npm run build -- --watch --pretty","build:doc":"rimraf ./docs & typedoc --options typedoc.json","test":"TZ=UTC jest","test:no-coverage":"TZ=UTC jest --coverage=false","test:watch":"TZ=UTC jest --coverage=false --watch","lint":"tsc & eslint './src/**/*.{js,ts,tsx}' & prettier './src/**/*.{js,ts,tsx}' --check","lint:fix":"tsc & eslint './src/**/*.{js,ts,tsx}' --fix & prettier './src/**/*.{js,ts,tsx}' --write","license:add":"license-check-and-add add -f add-license-config.json","license:check":"license-check-and-add check -f add-license-config.json","license:check-dep":"license-checker --production --onlyAllow 'MIT; MIT OR X11; BSD; ISC; Apache-2.0;'"},"author":{"name":"Actyx AG"},"license":"Apache-2.0","peerDependencies":{"@actyx/pond":"2","rxjs":">4"},"devDependencies":{"@actyx/pond":"2.4","@types/deep-equal":"^1.0.1","@types/jest":"^26.0.0","@types/node":"^14.0.13","@typescript-eslint/eslint-plugin":"^3.10.1","@typescript-eslint/parser":"^3.10.1","babel-jest":"^26.0.1","eslint":"^7.11.0","eslint-config-prettier":"^6.14.0","eslint-plugin-prettier":"^3.1.4","jest":"^26.6.3","license-check-and-add":"^3.0.4","prettier":"^1.19.1","rxjs":"6.6","ts-jest":"^26.5.5","ts-node":"^9.1.1","typedoc":"^0.20.35","typescript":"4.0"},"dependencies":{"@actyx-contrib/rx-pond":"0.2","deep-equal":"^2.0.5"},"gitHead":"fc29d55bb33953cbe232f05b77266ff7fa88fd5f","_id":"@actyx-contrib/registry@2.0.1","_nodeVersion":"14.15.5","_npmVersion":"7.9.0","dist":{"integrity":"sha512-O1wPFAEOr873Bjz1wX99DIDgfUaPNPSkjNjpk0te9ACWDctMDji1sxxFI18Jtq0UZXx1oKxdF9uIip/qq1TbPQ==","shasum":"8a0d1736753b5bf57fb90bee1d816f3af2e55b08","tarball":"https://registry.npmjs.org/@actyx-contrib/registry/-/registry-2.0.1.tgz","fileCount":4,"unpackedSize":5607,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggC7zCRA9TVsSAnZWagAAuS4P/R3Xjy9VWvkIDpJE6MIP\nS0sdnUtbZBQIfwDem208OL7xqW9/qVmrXuoGbUzI/kKqqxxQdPtB6+40bNIB\n3dIm8JyIaPXdUek0IgHk6ISYPAK0mNC28Bfbt1cuvFpCIurA6rSzWvebTiDu\n9sCzSMl4hL4KulMDolO60r2RVhIJ9Vfu8hRbZRc+RkL79+h2MiOvZlkepabp\nhR7utRAngDkNKHq1VIG5MTEnHB4xL6tStYIEEi5ircrfBUL+33DxcMyrTXIX\nv2KVrSn49mpdX356tFhMvq4OlAxA2y+wFCndHfZj9pSSZs1KI8Pdym6hfZb9\nwJE0mcsB/TpgHEg3HfZ6r5NuZDdT3NVOb42ZLCJE8G+Og9s/C6n1UJYaJLOq\nWOqay7lprIEV4GWBZiN92TMXHwan9/N5Gkd/FpWaBVyuBNVKJU6wlskUzMeN\njGQ2jJQDOC65xMjGjJQ6auZHizTjqnqMCs4txAglRit4wGwqmoLMMdHzOxMl\ncpD3AzHX2GM+TinDDKN6beKT1a8WHOKdxWEKfR5f6xWnsr60vP/4nj87uvSC\nuAYRhx+j/4ezW7RyMAq0MY5h51cGPvUqg7z1iZ6Fta5t2ZE95S7MuW6DRZ/f\nzqIFA+3S15y52ZwOcvJy6302daZYggGKJGFYUt9gCJHy4jai+cd/R/Sn41jm\nZ0JI\r\n=KGsS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/GtIs6D6rKWpH8bF3tOFbLpcbBzNNrPguKdIurN8ZjAIgenZq7YBATmDGwIzzWGOZdAqzrvmABe0MEgHif4FimdY="}]},"_npmUser":{"name":"alex(actyx)","email":"alex.halemba@actyx.io"},"directories":{},"maintainers":[{"name":"alex(actyx)","email":"alex.halemba@actyx.io"},{"name":"ostollmann","email":"oliver@alithia.net"},{"name":"roland.kuhn","email":"roland@actyx.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry_2.0.1_1619013362569_0.20168997157216606"},"_hasShrinkwrap":false},"2.0.2":{"name":"@actyx-contrib/registry","version":"2.0.2","description":"Want to keep track of and work with all fish of a specific type? Meet the RegistryFish pattern.","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"prepack":"npm run test:no-coverage && npm run build && npm run license:add && npm run lint","clean":"rimraf ./lib ./coverage","tsc":"tsc","example:observeRegistry":"ts-node ./example/observeRegistry.ts ","tsc:watch":"tsc --watch --pretty","build":"tsc -p ./tsconfig.json","build:watch":"npm run build -- --watch --pretty","build:doc":"rimraf ./docs & typedoc --options typedoc.json","test":"TZ=UTC jest","test:no-coverage":"TZ=UTC jest --coverage=false","test:watch":"TZ=UTC jest --coverage=false --watch","lint":"tsc & eslint './src/**/*.{js,ts,tsx}' & prettier './src/**/*.{js,ts,tsx}' --check","lint:fix":"tsc & eslint './src/**/*.{js,ts,tsx}' --fix & prettier './src/**/*.{js,ts,tsx}' --write","license:add":"license-check-and-add add -f add-license-config.json","license:check":"license-check-and-add check -f add-license-config.json","license:check-dep":"license-checker --production --onlyAllow 'MIT; MIT OR X11; BSD; ISC; Apache-2.0;'"},"author":{"name":"Actyx AG"},"license":"Apache-2.0","peerDependencies":{"@actyx/pond":"2","rxjs":">4"},"devDependencies":{"@actyx/pond":"2.4","@types/deep-equal":"^1.0.1","@types/jest":"^26.0.0","@types/node":"^14.0.13","@typescript-eslint/eslint-plugin":"^3.10.1","@typescript-eslint/parser":"^3.10.1","babel-jest":"^26.0.1","eslint":"^7.11.0","eslint-config-prettier":"^6.14.0","eslint-plugin-prettier":"^3.1.4","jest":"^26.6.3","license-check-and-add":"^3.0.4","prettier":"^1.19.1","rxjs":"6.6","ts-jest":"^26.5.5","ts-node":"^9.1.1","typedoc":"^0.20.35","typescript":"4.0"},"dependencies":{"@actyx-contrib/rx-pond":"0.2","deep-equal":"^2.0.5"},"gitHead":"fc29d55bb33953cbe232f05b77266ff7fa88fd5f","_id":"@actyx-contrib/registry@2.0.2","_nodeVersion":"14.15.5","_npmVersion":"7.9.0","dist":{"integrity":"sha512-wOoNxqzbyw7fOQ0BYjdjp5ZZB9BcomyWcDXiz5FMphgCVJ+DuLbipOrlpGvL+++4hbJndgvwSW0bLWalr7hfEw==","shasum":"8b4b385ac40a1aeab14a720fd972acad1bc2899a","tarball":"https://registry.npmjs.org/@actyx-contrib/registry/-/registry-2.0.2.tgz","fileCount":6,"unpackedSize":13984,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggDB+CRA9TVsSAnZWagAAqcIP/2czBw/pCbSgeZtpnoeG\neV8Yx/giTTbXtUuJ5nH35ZLfFXbY6PydnJaMqd0lkNeJ7qnbUosrjAZeLYFx\nbmr475eGeSaX1nrMG+lt7vqWri6mJbvLJhCIa3AKl1cIiwGpdVx6Bz4VrBqh\n/0FwEsO/7nLhjIcCjjtt5/2U2m7MyXV9geWYPwtxTc/+s3CCuL1Ek4cTpsdO\nYLJ3PgThGTW/sTiBF5kdCE9jRZCtnOA5tVm7VB9AMgQjF9lnCON3yThLPjrk\nvgFp+zpnTwg7RigPTV5R78p/xvB4QYBiybakYeQdo2dsDW6xCoYn3Zmztl8b\nxPHZthwRIFqSHbWyP074l7nh5hOFsummMGiF2MmEsbezKoMhl7DXYegKFE6T\npOcRX3iP1fDVdN9DnpkXPgXDC48UqkDPxchhL1V2Ulre8af1qATwvHq75OhP\nCDz0xwgFf1ERbwRda1pQt4QYpiQPxenhiA2nS2Ybx0QSjQiuI40ObgZCdpcX\nxs2TmmAK9TMQSTdpyZpwxwZKorldtLYh7R08qxdFAsA4bBtbmTobI59LweRW\nStNlclnxEexrDuFsmHVuUVEeq2nnKbdkI08zI5ENe97thXoJf81St/ZoHi0n\nsgbWb4eDtTnjgTRxavRlbzSr9Ynmp6VBqo87m5HWrFeBAlEVvDK+JqlcjmRY\npLwv\r\n=4AUH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCp+zhuqvSljpbIgYGFU8kpzvtGdK+UFE1AtfHpAMhRqAIhAOc7HAhJXF5zrdbU0c6Nd3jIkry4XtlPYUP1mPlocSea"}]},"_npmUser":{"name":"alex(actyx)","email":"alex.halemba@actyx.io"},"directories":{},"maintainers":[{"name":"alex(actyx)","email":"alex.halemba@actyx.io"},{"name":"ostollmann","email":"oliver@alithia.net"},{"name":"roland.kuhn","email":"roland@actyx.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry_2.0.2_1619013758321_0.13136396134743733"},"_hasShrinkwrap":false},"2.1.0":{"name":"@actyx-contrib/registry","version":"2.1.0","description":"Want to keep track of and work with all fish of a specific type? Meet the RegistryFish pattern.","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"prepack":"npm run test:no-coverage && npm run build && npm run license:add && npm run lint","clean":"rimraf ./lib ./coverage","tsc":"tsc","example:observeRegistry":"ts-node ./example/observeRegistry.ts ","tsc:watch":"tsc --watch --pretty","build":"tsc -p ./tsconfig.json","build:watch":"npm run build -- --watch --pretty","build:doc":"rimraf ./docs & typedoc --options typedoc.json","test":"TZ=UTC jest","test:no-coverage":"TZ=UTC jest --coverage=false","test:watch":"TZ=UTC jest --coverage=false --watch","lint":"tsc & eslint './src/**/*.{js,ts,tsx}' & prettier './src/**/*.{js,ts,tsx}' --check","lint:fix":"tsc & eslint './src/**/*.{js,ts,tsx}' --fix & prettier './src/**/*.{js,ts,tsx}' --write","license:add":"license-check-and-add add -f add-license-config.json","license:check":"license-check-and-add check -f add-license-config.json","license:check-dep":"license-checker --production --onlyAllow 'MIT; MIT OR X11; BSD; ISC; Apache-2.0;'"},"author":{"name":"Actyx AG"},"license":"Apache-2.0","peerDependencies":{"@actyx/pond":"2","rxjs":">5"},"devDependencies":{"@actyx/pond":"^2.5.0","@types/deep-equal":"^1.0.1","@types/jest":"^26.0.0","@types/node":"^14.0.13","@typescript-eslint/eslint-plugin":"^3.10.1","@typescript-eslint/parser":"^3.10.1","babel-jest":"^26.0.1","eslint":"^7.11.0","eslint-config-prettier":"^6.14.0","eslint-plugin-prettier":"^3.1.4","jest":"^26.5.0","license-check-and-add":"^3.0.4","prettier":"^1.19.1","rxjs":"^6.6","ts-jest":"^26.5.5","ts-node":"^9.1.1","typedoc":"^0.20.35","typescript":"4.0"},"dependencies":{"@actyx-contrib/rx-pond":"0.3","deep-equal":"^2.0.5"},"gitHead":"be449bbe3a34b9684e800940f7ad832865317ac8","_id":"@actyx-contrib/registry@2.1.0","_nodeVersion":"14.15.5","_npmVersion":"7.9.0","dist":{"integrity":"sha512-FJ5aAFUs3UtMhDEWsDNcfkstpu7hdVigYOqfTSmvtuKnOvfCIUz/prQLk0SqQOZaUZzuE2lLt+ZMe6lX86GcWQ==","shasum":"e7c31989da69426af9241abd26f3242455489fdd","tarball":"https://registry.npmjs.org/@actyx-contrib/registry/-/registry-2.1.0.tgz","fileCount":6,"unpackedSize":14046,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJglPy/CRA9TVsSAnZWagAAeqoP/Akvq/elqHmr76KZfKrj\naajymcT068zEo3TPgyanS2r1wxBiNVjG5+AK5X93WN0fRcCXLFOJzR3NVyEd\nkaJrQ9XtP771ftRdmpIgd71ydN8/H1hmbH3QwHgipnZqxqQ7KdmXv2pnLx34\n2WPOKuTP/GeUvM49rn3Bm8L4WPW5Hbo7K3Da9TjoVSca262b1cjmsnkfJEgy\n4vkSTUWg2NWCR6LwJrdDGOW/MT2my+vupZjRtgIO0a4MYeMcmgjx/519blB7\n1+WGH3bxK+Kuos8WqhHmSC0X/v3KYGwhDUI7vA6sQIan8TYH9AlKd8ksvgrM\nO8My7XV+r5krx3S5xM7TBmPEEugQUBOg1YIi6Idi6eLKvE0UzwsYlFP6N+W3\nfVtbloMNvF8jhgfU7HwkFTcLGknXICrPZZvrqQxaTyIqFJXbWLskbEaK6OsZ\nTDH6+ZanpUp6idprcPHLJrHhBtesVnF26hec+6/L42aM310fFRIp/abnfpKs\n5xAIYvbq4TgTmWyBsYlh4NW3HtlKPKjaNEyfVWYL2JaseRYN3+wybj+42nzz\nzSfG5AOUIZZWL2Izunq0Jpm1A2hDqm0LcYbSWuQZTWZ2YAUpTewT8RHQGmcT\nGC618vFHqn9Drs5rFEo4W4KHeez6c2IFgaXebg2622WQKTswywmeULLGg/Kb\n5/jO\r\n=M+lq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHi3G+uak+cDXx/Z60sC2PmpEkA6eo2LAmMxJEZEHxkNAiEA0KsxZb7pZXTqSrA/+TEmVT4EeegDG4km1BSiOYxKME0="}]},"_npmUser":{"name":"alex(actyx)","email":"alex.halemba@actyx.io"},"directories":{},"maintainers":[{"name":"alex(actyx)","email":"alex.halemba@actyx.io"},{"name":"ostollmann","email":"oliver@alithia.net"},{"name":"roland.kuhn","email":"roland@actyx.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry_2.1.0_1620376766566_0.08428222576487232"},"_hasShrinkwrap":false},"3.0.0":{"name":"@actyx-contrib/registry","version":"3.0.0","description":"Want to keep track of and work with all fish of a specific type? Meet the RegistryFish pattern.","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"prepack":"npm run test:no-coverage && npm run build && npm run license:add && npm run lint","clean":"rimraf ./lib ./coverage","tsc":"tsc","example:observeRegistry":"ts-node ./example/observeRegistry.ts ","tsc:watch":"tsc --watch --pretty","build":"tsc -p ./tsconfig.json","build:watch":"npm run build -- --watch --pretty","build:doc":"rimraf ./docs & typedoc --options typedoc.json","test":"TZ=UTC jest","test:no-coverage":"TZ=UTC jest --coverage=false","test:watch":"TZ=UTC jest --coverage=false --watch","lint":"tsc & eslint './src/**/*.{js,ts,tsx}' & prettier './src/**/*.{js,ts,tsx}' --check","lint:fix":"tsc & eslint './src/**/*.{js,ts,tsx}' --fix & prettier './src/**/*.{js,ts,tsx}' --write","license:add":"license-check-and-add add -f add-license-config.json","license:check":"license-check-and-add check -f add-license-config.json","license:check-dep":"license-checker --production --onlyAllow 'MIT; MIT OR X11; BSD; ISC; Apache-2.0;'"},"author":{"name":"Actyx AG"},"license":"Apache-2.0","peerDependencies":{"@actyx/pond":"3","rxjs":">5"},"devDependencies":{"@actyx/pond":"^3.0.1","@types/deep-equal":"^1.0.1","@types/jest":"^26.0.0","@types/node":"^14.0.13","@typescript-eslint/eslint-plugin":"^3.10.1","@typescript-eslint/parser":"^3.10.1","babel-jest":"^26.0.1","eslint":"^7.11.0","eslint-config-prettier":"^6.14.0","eslint-plugin-prettier":"^3.1.4","jest":"^26.5.0","license-check-and-add":"^3.0.4","prettier":"^1.19.1","rxjs":"^6.6","ts-jest":"^26.5.5","ts-node":"^9.1.1","typedoc":"^0.20.35","typescript":"4.0"},"dependencies":{"@actyx-contrib/rx-pond":"^1.0.0","deep-equal":"^2.0.5"},"gitHead":"18e32d01d0d3d4724b85df1d33afe7512d521cd4","_id":"@actyx-contrib/registry@3.0.0","_nodeVersion":"14.15.5","_npmVersion":"7.19.1","dist":{"integrity":"sha512-Z73+uEb5rY3SBf6P5vwhQNpxtyQDPB5tfvEG/It8GRAhG9dbYwZTgTCNuQc/ICU5NO3Mq4pYdnbPHHw8kMx/PA==","shasum":"5354c4ddd7bdf1021b533a9b62ffbab4e303cc29","tarball":"https://registry.npmjs.org/@actyx-contrib/registry/-/registry-3.0.0.tgz","fileCount":6,"unpackedSize":14007,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+sLyCRA9TVsSAnZWagAAIq8QAKCbG3mB2y//b4J9AiqT\nW0VLc4QpyOKHUHXUC4XHNVtpS2H3louEedWgmUozZYfOxGDS++Dm5B1RcjtV\nIAHbpTmwaaG5/ejm4X2UMMtpU3ZUCm6iogYAsbQvSF8q70GSS531+YD2/g4t\nNE+64kUu0DbufCHD+FmOIrDayNcRom96a+0VqxWrPCn0haHU5At/IVlFyJwL\nz3JSDZb6WzlA6txAUH6/auBt5lSZQHzNeb7eDQuroSqKZvnSZcApBzLEgpV7\nrP14jgiy0ebgylEnL7H4u/P2RsWvSSU6/CXfybvAim0rYQHx5JPD+uqaPf/p\nKyZvMzt9k7mCIsDTFnGgruW0YVikzboPRXhudKdpwWd1Ym6RRTYJ1w13gpxB\nBb4q5ldWm8K09lbMqZrqx2Hc9ZVHcrrIiC+yWvOHhiZfwfOHv93v48r4/vnC\ncQMVJR6OwhTtTeebTkogUPr3/al6ZPrLyhjnWQpCxVxXVftcVyrB1FaFzRuh\nKl0ITeR39GFwrWX9WJRk4IBLXEJIIgD12i8GMzhjs+HqwbGD5qXsitjzvtiT\n0keXOMnfRhHkyB1T/Yw3u2fKQdZBvt+6Ow6H3NQygWbXLTfQ/JEzifL904jp\nA8KR32yTkdYlJuPm9jtzTVsuOSEMYo5HXHBMVWhnH0wzPZIjIkN3aLpxeqZR\nzDms\r\n=d9Fj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAk6ikKhEUvZzsV7UVK9MZOTLRK8zkj52BXkFAWZqbU+AiEArvsr4Jb8fdP6jltuDBx8Yccn+md6QAw6ixl/vF1yyw0="}]},"_npmUser":{"name":"alex(actyx)","email":"alex.halemba@actyx.io"},"directories":{},"maintainers":[{"name":"alex(actyx)","email":"alex.halemba@actyx.io"},{"name":"ostollmann","email":"oliver@alithia.net"},{"name":"roland.kuhn","email":"roland@actyx.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry_3.0.0_1627046642023_0.3191566852767018"},"_hasShrinkwrap":false}},"time":{"created":"2020-06-15T11:46:01.143Z","1.0.0":"2020-06-15T11:46:01.621Z","modified":"2022-04-04T11:20:24.327Z","1.0.1":"2020-06-16T14:33:58.777Z","1.0.2":"2020-07-15T11:35:51.484Z","1.0.3":"2020-08-05T14:55:50.821Z","2.0.0":"2021-04-21T09:42:37.044Z","2.0.1":"2021-04-21T13:56:02.714Z","2.0.2":"2021-04-21T14:02:38.442Z","2.1.0":"2021-05-07T08:39:26.710Z","3.0.0":"2021-07-23T13:24:02.169Z"},"maintainers":[{"name":"alex(actyx)","email":"alex.halemba@actyx.io"},{"name":"ostollmann","email":"oliver@alithia.net"},{"name":"roland.kuhn","email":"roland@actyx.io"}],"description":"Want to keep track of and work with all fish of a specific type? Meet the RegistryFish pattern.","author":{"name":"Actyx AG"},"license":"Apache-2.0","readme":"<img width=\"130px\" src=\"https://raw.githubusercontent.com/actyx-contrib/registry/master/registry-icon.png?token=AATHWQKVWIHXWZACE2TBV3264QIVK\">\n\n# Registry toolkit\n\nWant to keep track of and work with all fish of a specific type? Meet the RegistryFish pattern.\n\n## scalable, reuseable, composable, and maintainable\n\nOne thing that has come up quite a few times is the need to track all fish of a certain kind in someplace. You may have a fish representing a specific entity on your shop-floor. There are going to be many instances of this fish, one for each entity. Now, what if you wanted to show a list of all these entities somewhere?\n\nThe registry pattern will lead you to a data model that is **scalable**, **reuseable**, **composable**, and **maintainable**.\n\nRead more about it in the [blog post](https://developer.actyx.com/blog/2021/04/22/registry-fishes).\n\n## 📦 Installation\n\nRegistry toolkit is available as an [npm package](https://www.npmjs.com/package/@actyx-contrib/registry).\n\n```shell\nnpm install @actyx-contrib/registry\n```\n\n## 📖 Example / Micro tutorials\n\nThis library is made to reduce the code you write.\n\nUsing Callbacks:\n\n```typescript\nimport { observeRegistry } from '@actyx-contrib/registry'\nimport { ChatRoomRegistryFish, ChatFish } from \"./fish/chatFish\"\nimport { Pond } from '@actyx/pond'\n\nPond.default().then(pond => {\n  observeRegistry(pond, MachineFish.registry, Object.keys, MachineFish.of, states => console.log(states))\n})\n```\n\nusing RxJS:\n\n```typescript\nimport { observeRegistry$ } from '@actyx-contrib/registry'\nimport { ChatRoomRegistryFish, ChatFish } from \"./fish/chatFish\"\nimport { RxPond } from '@actyx-contrib/rx-pond'\n\nRxPond.default().then(rxPond => {\n  observeRegistry$(pond, MachineFish.registry, Object.keys, MachineFish.of)\n    .subscribe(states => console.log(states))\n})\n```\n\nYou will find detailed examples [here](https://github.com/actyx-contrib/registry/tree/master/example)\n\nYou can access the full api documentation and related examples by visiting:\n\n[https://actyx-contrib.github.io/registry](https://actyx-contrib.github.io/registry/)\n\n## 🤓 Developer tools\n\n| Script | Description  |\n|---|---|\n| `npm run clean` | Clean lib and coverage folders |\n| `npm run tsc` | Run TypeScript check |\n| `npm run tsc:watch` | Run TypeScript check watch mode |\n| `npm run build` | Build project |\n| `npm run build:watch` | Build project watch mode |\n| `npm run lint` | Check for lint issues |\n| `npm run lint:fix` | Check and automatically fix lint issues |\n| `npm run test` | Run Jest tests |\n| `npm run test:no-coverage` | Run Jest tests and exclude coverage report |\n| `npm run license:add` | Append license information to every relevant files |\n| `npm run license:check` | Check if license information is present on every relevant files |\n| `npm run license:check-dep` | Check the licenses for project dependencies and produce a summary |\n","readmeFilename":"README.md"}