{"_id":"@elemental-concept/rx-persist","_rev":"12-66a124a067729afe50b14a7d351a5664","name":"@elemental-concept/rx-persist","dist-tags":{"latest":"1.0.1"},"versions":{"0.0.1":{"name":"@elemental-concept/rx-persist","version":"0.0.1","description":"Persistence operator for RxJS","main":"index.js","repository":{"type":"git","url":"git+https://github.com/elementalconcept/rx-persist.git"},"keywords":["rxjs","reactivex","persistence","storage"],"author":{"name":"Elemental Concept"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/elementalconcept/rx-persist/issues"},"homepage":"https://github.com/elementalconcept/rx-persist#readme","peerDependencies":{"rxjs":"^6"},"_id":"@elemental-concept/rx-persist@0.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"aux","email":"aux@hexmode.org"},"dist":{"integrity":"sha512-LdUlmv/134ZJGysYFjQB8zpLhOONfSoZfRcNx84Ud7/GWfWrAGxPu0kn4qTA21QADOUEvYdfV7yKDE/cD/kH7Q==","shasum":"4444e08dc0a849939b45882e12f3603a36eab755","tarball":"https://registry.npmjs.org/@elemental-concept/rx-persist/-/rx-persist-0.0.1.tgz","fileCount":11,"unpackedSize":3880,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEFVQCRA9TVsSAnZWagAAROYP/Annahwgy8Y7XFr5W9wC\nkeYq/z8nzn2zL2GBD6DM75rYrngHUD9HwPEGwCjra+NQM8TCaxV8WUpdtFOS\n3OLKueqhTWQNUlibZ/5GuAFORKUacnW0kPFzF0DYRGvkLE4cTZAlVtwd4Vq7\nxR5wxlIqXpiIXcyeYCvy7rLJMyHY6JiILpK+AmjC/CwAnFqpJm1DyrTNWdvA\nft2xVEP/+kyQTQnvvKlyIYBGKlyDrPADMLAEJTb27kH1AoaEF1V/3QpQ7PpF\ntak0X1MURzQO2laZe4W6pdNSplkD4JKWdf1Bo1uCy+Fp5in5CA8o0MuuWtof\n+p6cpSaL6GJb1UTZ8SMlpzY4yizJ48cuxz7omXsJaOV98/NvCpca6Uj+yj3W\nXdKOiliih7n/Hwm3skh2U5xj9LjOtaXUcko1jVam+T1T5an1kfmD3P+aikPl\nXaAibsXPL8CedkCUY8yvDHQvxCPRXryIgTVT8fmnVaZ47VQQzrhVOj+KQs2F\n83b44iuWhNgz7Di4JOFOwBFH+13POSLaOuuoDLai1g1nqnOq8eR9zWtAdpic\n0y63ZhCQhMy1XFn1MyxzXlLgx1/mtj5AA9C/W4OdtQEG+eGUihVIVmYv32ce\n0CVJOSWyKR9ftFdro/3/OlQmWSy1apwJSB8mv5gEncLrVLWhSmePmrZYxH84\nG0DC\r\n=03tk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBwvJBCp6/+fVtEb7zDQakRJoc/Dg1v6qGfAs/X5kR27AiEA55dhR1CzmVUzaqA+nWtBsaCnFOpDAr/aX682cdRg/R8="}]},"directories":{},"maintainers":[{"name":"aux","email":"aux@hexmode.org"},{"name":"simke2090","email":"simke2090@yahoo.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rx-persist_0.0.1_1611683151781_0.9683961401675871"},"_hasShrinkwrap":false},"0.0.2":{"name":"@elemental-concept/rx-persist","version":"0.0.2","description":"Persistence operator for RxJS","main":"index.js","repository":{"type":"git","url":"git+https://github.com/elementalconcept/rx-persist.git"},"keywords":["rxjs","reactivex","persistence","storage"],"author":{"name":"Elemental Concept"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/elementalconcept/rx-persist/issues"},"homepage":"https://github.com/elementalconcept/rx-persist#readme","peerDependencies":{"rxjs":"^6"},"_id":"@elemental-concept/rx-persist@0.0.2","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-ZXamItqFzf4Ef9AHHFnOFUoBQMQhnHVLsJP787eUNNAXnrtr4LJRqfA+a5QZxWNY/Tlii7o22dG4WaWrYDpe8A==","shasum":"42d41fda4a52f2504f5fb330408849f74b19b419","tarball":"https://registry.npmjs.org/@elemental-concept/rx-persist/-/rx-persist-0.0.2.tgz","fileCount":11,"unpackedSize":4866,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEU2GCRA9TVsSAnZWagAAod8P/RmOwDog8oGHjsXQ0J5t\nCD7g/D6D2esg9DLGfM5op9jir6FlRxkGdIxMEBrMSLKIpR6/GxabhGMqfpq+\nWxfgfLfjLnnhCtWB9mKC3snMwx9/vUWdL/dGZh+jlyFL73xdkiyNnZyaPNhe\njFAmiB5VHtVQn/Cxjm75If0+D3XKwS/yHcmqAsjzuhLhAjSqhDOJQ9TBGLME\nM4waTs6PGXmPHZoNTZwD7pJJjnNWzksIS/Ylxi0MGtgdhltyLavXmQsfMOeY\no6HmsYNw2H1oZ1CRMHQmSI5DMp1aikmPaHaROXXO2xy5qbV2bfMJO7NTzdxE\nn2fka6f4ymcUCBJmdfwIlcvOiwzL180TD7FukYl3oUgtNeKBIwBryax1vEWw\nVGYzuhdDHjsXS8t72HwC0Q0/0KeELIhExvj2HvVkY7hu3xVX7hKaNpPPx8ws\ntur+lIei9eY94hEd1T7/XZOZwyFi+qWVikeYgbj8HRdn0lm9pb/yL7S3FwyS\nRvkwORqfpz/CJ12JB7eN/2Lsi5S+b9tr77lYQdumInmcKKneIGEiGu6o/JCo\nfk+z6Im43/dA4G5+KvuBUyiZmeO9MXckXXa3nvmnRz3BY5K/UFPds64xGD69\nweb7HcsAotuHbPmw60Xm0RdRup2eknKbE4LmHYkfa+c0GsGL/yGiIQAn8MAP\npdxe\r\n=H02F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDy9aIXUOruhaB/QujBdhqQuIz94KOr3OpqejmaexaTSAiA6Wq1z0SV3821BvOsjFo5zsbwaQoBQ4adCx2DlRklbdQ=="}]},"_npmUser":{"name":"aux","email":"aux@hexmode.org"},"directories":{},"maintainers":[{"name":"aux","email":"aux@hexmode.org"},{"name":"simke2090","email":"simke2090@yahoo.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rx-persist_0.0.2_1611746694315_0.5998081109162969"},"_hasShrinkwrap":false},"0.0.3":{"name":"@elemental-concept/rx-persist","version":"0.0.3","description":"Persistence operator for RxJS","main":"index.js","repository":{"type":"git","url":"git+https://github.com/elementalconcept/rx-persist.git"},"keywords":["rxjs","reactivex","persistence","storage"],"author":{"name":"Elemental Concept"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/elementalconcept/rx-persist/issues"},"homepage":"https://github.com/elementalconcept/rx-persist#readme","peerDependencies":{"rxjs":"^6"},"_id":"@elemental-concept/rx-persist@0.0.3","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-NyO/511JCKASqszmEEnApfBCf9N6FCAIuqN1xyYREMb3NRW31EorKODJHIVCQOjwQC0OtsM8O5q2ssv3hBp5nA==","shasum":"79ea4e90a050b486dd193761890ba64eafb2ace2","tarball":"https://registry.npmjs.org/@elemental-concept/rx-persist/-/rx-persist-0.0.3.tgz","fileCount":11,"unpackedSize":4068,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEVLsCRA9TVsSAnZWagAATQAQAIPm9a3J4XMqB0ZJ8LKo\nysP7WRN96vnKMfmzs/Y8mLCoa28w+oG1LbtCdj/FXL8nqzPBLrhGDTBpGXzO\nfiFj29bboAd0neWpmhH/LKqv7LXkzXg6mFtMIjp5AFmdaYgFlbjy5erKOIuV\ncNFvrbaIkc3fy0VLv0pooHf2Fw0X7txAKvadWLnAqJDnzOKq/CCMBUaXbUWy\n32njGvEUcsLZBN/bdJZLR9CYfQ2VsiugJZOatkAI3f+sHV7Vlf8opmpFPmrJ\nueNRmETczgeadp97II2a75KT82seqGrvwgq54LhNTZZKObT2Lm4k6VHeQ/98\nNEGKAVB+mswtDz9ot/Q+jHUJGe3DHVjfi1BtQkDzV2NGwLEz3u+PrZSfsLoR\nqobUCUKrsGLywq1jIboHySgNBAwksv+gHGaETGoTB93rIYWLq398sdtK33mw\nPD6Qf+fLvXr8cy7+ksDNil9RSjf3tPvsUVPsP2HbX3ucfCiqLVE9fSRwEBcY\nvaNxYjdgFreoMjTgI8iPoXs4RAdnLLfpEsxXtqS3+dc2KQjQulMIstDNrSqH\nZodEjjkadFSqhhhWoEMn4UyQx9C/P4fRbgeyCAkoVdPbsnrrOIA+1nHMOiiL\negvWR2E+2OuvBEfCTM0/JXOHzjw+kGjNHKfMUjgx/2NQpCFMjXCZoUdOlxR/\nBJ6X\r\n=zo3L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA4Qk3LH7ToGOEbqfzd7XGTkc7hhMUw1ga+e6Br2iccVAiAGyX04gg2zsixLZ/BxFK4JpkWvcY2wr1U/1NSR+v4qVw=="}]},"_npmUser":{"name":"aux","email":"aux@hexmode.org"},"directories":{},"maintainers":[{"name":"aux","email":"aux@hexmode.org"},{"name":"simke2090","email":"simke2090@yahoo.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rx-persist_0.0.3_1611748075710_0.49022437892164916"},"_hasShrinkwrap":false},"0.0.4":{"name":"@elemental-concept/rx-persist","version":"0.0.4","description":"Persistence operator for RxJS","main":"index.js","repository":{"type":"git","url":"git+https://github.com/elementalconcept/rx-persist.git"},"keywords":["rxjs","reactivex","persistence","storage"],"author":{"name":"Elemental Concept"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/elementalconcept/rx-persist/issues"},"homepage":"https://github.com/elementalconcept/rx-persist#readme","peerDependencies":{"rxjs":"^6"},"_id":"@elemental-concept/rx-persist@0.0.4","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-IaiMmrHvTmcTDq0oNzq17OnMgcyegeYV+rhSxy9Bz2sk+2q2vA39PjPRCRMarwo8PAcF8uphvAPznb463kjftg==","shasum":"21b87e121e51c67dcb752509a137096ab33ca8f7","tarball":"https://registry.npmjs.org/@elemental-concept/rx-persist/-/rx-persist-0.0.4.tgz","fileCount":11,"unpackedSize":4159,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEVQRCRA9TVsSAnZWagAA0kwP/RBXrRymLTxmC5syNdcB\n37qghLTJp3y3JtW2ocmEJlp5XYEXD2SxbiNlpTWGcSfu51IkZgiSYH/v0Kcq\nFKrHLdvZKiyZEWYrnai3spUkxGsXcp2kpsNuqeM65QF0O8oEcUx/hd91wQj3\nyOcaHO2rGBuzaTKa1nnlj3Unqx0taGu4JyNMrpq/21eotcJ7kl1kbFzgTXfN\nG26Eh3cPcrgnBzxTL5aVBVIJCrfexbbX+ESEdVPtphZF373CZKFZeYKD96sa\nM4MZWHkNaEs0p6hVu0jBvu6hge9wITPonQRmBi7I7U26IC03kX1oxvfBoqT8\ng9SCzvIPohrB+HkbYLk6AQyu28sPoxXW6ep36XM918jxzd6v4d4e/kE154Th\nDnIXLex4SiXEi55864m2Xcfe11Gp4XTtuVLXeqPc/TQ7KZIMi5mbTm65dBvD\npG2q9fvIWYB41sbNB63/Q+YTYNIePiCTwflF24ByWZXkWeVqWpjnL3koc0Qs\n1mqiyVfByB/pqLXwp9mm/ft1RdU6BYsM7mlE4/rav/747WC/SOhpVZ4nPLj6\nhNtHrW/RZv0trWohnV4DQJ2UoR/3dsHD2uNWVrELFMtfDiJw96sTt0l1C1MQ\n3aIUbKzqQYcWns2GZMXJLvmIm1O9+EE/Ml/QIOXj5bCZG9h4mTrG+mKFvox7\nHo5M\r\n=wqG0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzO6LViZBGDhdo5Q1exoZrXvQzkH95YOuoVqpKmm/9/QIgCxvHs8sle/tr0BWnfS2XyNjkSb9JQvWZFnHjj3kmJIA="}]},"_npmUser":{"name":"aux","email":"aux@hexmode.org"},"directories":{},"maintainers":[{"name":"aux","email":"aux@hexmode.org"},{"name":"simke2090","email":"simke2090@yahoo.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rx-persist_0.0.4_1611748368677_0.6411879647639656"},"_hasShrinkwrap":false},"0.0.5":{"name":"@elemental-concept/rx-persist","version":"0.0.5","description":"Persistence operator for RxJS","main":"index.js","repository":{"type":"git","url":"git+https://github.com/elementalconcept/rx-persist.git"},"keywords":["rxjs","reactivex","persistence","storage"],"author":{"name":"Elemental Concept"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/elementalconcept/rx-persist/issues"},"homepage":"https://github.com/elementalconcept/rx-persist#readme","peerDependencies":{"rxjs":"^6"},"_id":"@elemental-concept/rx-persist@0.0.5","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-kCBnqnIp3pyysJLDBtGHeZFwOnBWPNV/gyvNlS7w0lXmlPtAb/cLp6ScslT0lZNzPzYAJDpoirtqnmwji+ZIsw==","shasum":"e9ba9d845f540a6352d54631c72225ff8194356d","tarball":"https://registry.npmjs.org/@elemental-concept/rx-persist/-/rx-persist-0.0.5.tgz","fileCount":11,"unpackedSize":4076,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEVYSCRA9TVsSAnZWagAA3O0QAJpDgZ5CfdVOfK6b6lnc\nV42FiR02wZXN3TKZhO6m5oRV32BKIHfRa5MHSJH9oj2eX+8kBv7puPdC+FQk\nmvTRCkIvpOdipb9UdfrgJv3QWhnIM44uSgrx63GoLrs+178EgYw7T8lagyBv\n3ePRdR7+PYZsWZSxR1dDosbHxiGzX/31mUfoI5NYFLMYbDsa51zegZ6eL6tu\nZAFsGKXDnkfh08x9tO8liy4NJzQU3PKjyCMZ+oxu3efA1Ib7StbmIqkhCLn8\neeiGJsmZraR+SQYfX6d/HF1qhsIGlX1ceez+Li2QqWvwAj9c8yi2txgLy7/O\nGM+08fLm+rzFVmR7P75GNY85hlIBf6ZqKEe+pUs0kmYpFUKcnVL1iZvdTObY\n3osuD060eg+Uwpnvy+MUtBJeNk0IFwmS1xyrX9m802ibUj1XquYyug2C4KDH\nml+3SfDK6y1cy68QVaplPnS5hlIA53oJTurAaRhIS2n29DN/h0RPe0AiRCcY\nfJy5YLeN7NtpsaWntk+ohEZ0e8URzJRE+Trk55hS+9/f3jVBUw1RvOAIzEDw\ncZAQPhl0Grfh8RMp2qKz6ax5FwNDOQ0SVxzna/cQ6YYGWoQ8BHNphmYMzHII\ncsNbeXCUaHqHMtMOfnOwJsADM/08GUE9au+oL+a1LV6rw+NLJiN9qN8WoUT7\ncUv+\r\n=Lsx7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGU+MYkdaPPiBJvNEG0ry3+aSsFLOD71SXRyuCc3byrRAiEAjNUmx9tfqWsTEnCPaenWQ2LkXEHrrszA7k3ZkHQrYLs="}]},"_npmUser":{"name":"aux","email":"aux@hexmode.org"},"directories":{},"maintainers":[{"name":"aux","email":"aux@hexmode.org"},{"name":"simke2090","email":"simke2090@yahoo.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rx-persist_0.0.5_1611748882159_0.02475409930046779"},"_hasShrinkwrap":false},"0.0.6":{"name":"@elemental-concept/rx-persist","version":"0.0.6","description":"Persistence operator for RxJS","main":"index.js","repository":{"type":"git","url":"git+https://github.com/elementalconcept/rx-persist.git"},"keywords":["rxjs","reactivex","persistence","storage"],"author":{"name":"Elemental Concept"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/elementalconcept/rx-persist/issues"},"homepage":"https://github.com/elementalconcept/rx-persist#readme","peerDependencies":{"rxjs":"^6"},"_id":"@elemental-concept/rx-persist@0.0.6","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-VeZR/9kwkRTbpDdVm9izftrkEFr8NM2oPlCleLHHIw7w4RLXCeWsoxFpTJufoS6sm4q41FALfX/iauL9N0c23Q==","shasum":"ecfeebee083b1e550ddbd817b30421cc8218148d","tarball":"https://registry.npmjs.org/@elemental-concept/rx-persist/-/rx-persist-0.0.6.tgz","fileCount":13,"unpackedSize":5443,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpAfVCRA9TVsSAnZWagAAhJIP/2s9TQUzux3giWXCylhw\ndlOmBrFo8hFllmgKOwCh3vmYC7qq94FXr0xV1Ezt41Blk/Ie2tv+q4imItMr\nhyfdCasolNdi9Cch/eKxmHpV8RFd62bIrDqhcUsBtZPkIZN10mm+4RvDAH43\nBdmU9WzPgquCtRgaOUdd1xSIjc32RiNaPobNfUaCNDMN6XBsdUMAlZaQB8Cb\nWvfn5UK1VOwPFVa1Cdgr40XrMHqiqFCVRhlfg75CRHBI3jaTPEbx6Ue6JclO\n01kPnCShTzdU80eK3PHdOAO6h8AOKqAjukMJ2/Ovy5BLXgWV+V9kuG7XFM5C\nIPvsUXgbc7xY+SNBDLae50l6iOQXqMqJEt4+q7qM+1zEdpf1CfpKR61FcvD9\nsdPxuxzelEKtf8NnWlo8KzDYOqpblwEnpzuy7eiF75yx6qbSbcFuM3DMKnR9\nyIZ1tTaMZ5IdoZRehvn/nY4jW3w+yogaXagcncZH3JJeynvBAttGCGAiVqtp\ndcoXpDwcty1PUMDbx/4JOIJ+JfkPFjZlJVjHhACtTDpTR9uRxpjekD7r7HsM\nIMNWm4tQ3ObU8r148FHPk+xlMSJVHK4/w36P4sAtoDtSjWxCClxrn84Hwajo\nVagF9PIEYvtqUSLsKpm1rBWHChqupH2fU08MtgiqG3souW1ToYsIRR53Iigj\n4ya2\r\n=n77H\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5NC29/NONmOV56aKJDoM7cg5LKFlhXEBwiZYazOwHNgIgCzRI117K4N9bhLdd0Uspknjykn3pgNi6FPRL4KGATRk="}]},"_npmUser":{"name":"aux","email":"aux@hexmode.org"},"directories":{},"maintainers":[{"name":"aux","email":"aux@hexmode.org"},{"name":"simke2090","email":"simke2090@yahoo.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rx-persist_0.0.6_1621362644719_0.1307169211075221"},"_hasShrinkwrap":false},"0.0.7":{"name":"@elemental-concept/rx-persist","version":"0.0.7","description":"Persistence operator for RxJS","main":"index.js","repository":{"type":"git","url":"git+https://github.com/elementalconcept/rx-persist.git"},"keywords":["rxjs","reactivex","persistence","storage"],"author":{"name":"Elemental Concept"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/elementalconcept/rx-persist/issues"},"homepage":"https://github.com/elementalconcept/rx-persist#readme","peerDependencies":{"rxjs":"^6"},"_id":"@elemental-concept/rx-persist@0.0.7","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-JtXiFKN/Ki0pYGVdwL/BtaHIBCIz7/rzkCtwamlqD4FTn90CVvQeF8H29mnrRR+IyC+CsM75cn+OGnKYRdqB7w==","shasum":"7df5aff2e48253a382a7ae11beedb6baf7f53542","tarball":"https://registry.npmjs.org/@elemental-concept/rx-persist/-/rx-persist-0.0.7.tgz","fileCount":13,"unpackedSize":5445,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpMeACRA9TVsSAnZWagAAa3UP/2AIj3z6uqLuu0bluOcE\nFvqaXQ+SSN3sShCNvFwLUMtCaFsZG9RkqRrpHJX/LvWjkfjxF7SMI2R28S94\nHkwPvhoWRO380fmLXla9Ab/o0tcXFE1HADby63MPk3R1cDQp8ReD1RDGuI2/\nN+6y0cXBB3EvtwMPHvGK2aqfsZT9bPCfOZS8/NLtSMTWTmUHKG/cOgIgsjLP\nX56fhB9gLD9cZInAk11dVsWhZbH9wlVyotmirHF0zmZ2xdAatNtnmxvfmi35\n5wkFv30YOAea/ffqABKbbmQNOkak6e5RkbQQ8pX5t/6cbSuffrAprdBahGDp\nhPFHAL+QDn99VZ3gSizkF5A9qGsoTZ7Bz/FkyHwblqSX25AF72q6znA+D0pg\nHZSd1aFpMaLKHSppD4sA5ECMKUjzP5+vMY8aYPv9F5GdQykju+/FX9+n7ho6\nomwWAk5pOGt+VtTZdS0+5/paQkYi2c9zdnNDkRW9kXoeMQAVM9v10se81KX2\niL+ods+RC/qmIntm/3E1ylbEKUqA/cisNsBPRNFuHGoWd1muGUeB0Xrj87vt\nMitQ+cg5HopRvFQyLs9lKYLisvY6ZNdm949iSI059b/J7UI4xv/YD50SOA9b\nD73YQdI9cDkIxiziyevwAvqI/AunTK/eCEc4Md/AVP6qvMKXcUVHiA0UpJZq\nLOvY\r\n=zUkb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbUB9lVZGIbixV8Ythpbpq4ly/uSEUzbWJrlaxLVDC9QIgKAgqmB785g+MCvgCLJHRJ7CTqDDZnHRW6+dEHPC0+ls="}]},"_npmUser":{"name":"aux","email":"aux@hexmode.org"},"directories":{},"maintainers":[{"name":"aux","email":"aux@hexmode.org"},{"name":"simke2090","email":"simke2090@yahoo.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rx-persist_0.0.7_1621411712175_0.03583124075167898"},"_hasShrinkwrap":false},"0.0.8":{"name":"@elemental-concept/rx-persist","version":"0.0.8","description":"Persistence operator for RxJS","repository":{"type":"git","url":"git+https://github.com/elementalconcept/rx-persist.git"},"keywords":["rxjs","reactivex","persistence","storage"],"author":{"name":"Elemental Concept"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/elementalconcept/rx-persist/issues"},"homepage":"https://github.com/elementalconcept/rx-persist#readme","peerDependencies":{"rxjs":">6"},"dependencies":{"tslib":"^2.3.0"},"module":"fesm2015/elemental-concept-rx-persist.mjs","es2020":"fesm2020/elemental-concept-rx-persist.mjs","esm2020":"esm2020/elemental-concept-rx-persist.mjs","fesm2020":"fesm2020/elemental-concept-rx-persist.mjs","fesm2015":"fesm2015/elemental-concept-rx-persist.mjs","typings":"index.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/elemental-concept-rx-persist.mjs","es2020":"./fesm2020/elemental-concept-rx-persist.mjs","es2015":"./fesm2015/elemental-concept-rx-persist.mjs","node":"./fesm2015/elemental-concept-rx-persist.mjs","default":"./fesm2020/elemental-concept-rx-persist.mjs"}},"sideEffects":false,"_id":"@elemental-concept/rx-persist@0.0.8","_nodeVersion":"14.21.2","_npmVersion":"6.14.17","dist":{"integrity":"sha512-LPwYNqtDSVIUz8VNYLZnzjnny4AE5nzHoqqat1fsUldz4kE339UbVSBQnnN7vujUbGmUCPEFCAnxUrpag1H6yg==","shasum":"b7e11ed0f9d5debdfbc2fb0855fcbbd5cc522fc9","tarball":"https://registry.npmjs.org/@elemental-concept/rx-persist/-/rx-persist-0.0.8.tgz","fileCount":32,"unpackedSize":55063,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3PZN0KkC1wAt7TnLsDMcQiXV4qFpNRWNSSmnw8qg/wQIhANDyShKymf2GIt2XV0hbbtY6pmFW8z7G5nYNQ06+hSHv"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/JksACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoSHQ//VIr2OwdinfTnAzcCInr96wlOovep7IhGHMfClUyZd5mpffFv\r\nx10CmwVk/UQ8oUjf/lgODdI7EbcvSYn286KL8q5SDNIJP/x3pVndlv+CQC+y\r\n2HK8oePUD7sTNDpcv5J8TCVtbrPxqmDMzEyG/EY3QrSxzCQd2e3SxkKJFIjA\r\nnq2IBmsY5dVPswnRTbAM57yVYbO6y2Gjhu9xHvolhDlsYACyjU/uhDMFqSp/\r\nL7fhRM8GnDb4iyhoB5AT4Cs9zVbrGgj5XRfH8h7kf4h3A292ZkEUWWi2/u+B\r\n0m+rtoBvIZTajgLsMeGra/vUVH5IkCUdadeQ4b42Ko/LUvswpz++mcavO1or\r\nklbz8FIseuvt1W+A6DP6Cnjj6wsQvFWnRBC13iPtRw/j/sG1io0j5uNL7eVw\r\n3h0x8OYmR4SuxGV0KQhGB7x/RLL5AT4/HJJSk1T3nLQHXOqCA/wZahLNueAn\r\nvzqS0oKj2leN3+A84UmLjyi1aD01Wne2pmGdBqLCFuDqchrvOnIQaQnaU5JF\r\nYgKunCqUMgjrCQEfKJDehdwu50AlHtI464S/6gp17dFnWR2qxp4MtIlaAg+D\r\n7964Rnd9NCW6JfApLOQuwBtS8thKEhHwKco8lDJdzUirkkaHd57fVGk6ViJ6\r\nN2BbAEwj5vsytIhGazJN2wqoWKxLbYGTSpw=\r\n=FBvI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"simke2090","email":"simke2090@yahoo.it"},"directories":{},"maintainers":[{"name":"aux","email":"aux@hexmode.org"},{"name":"simke2090","email":"simke2090@yahoo.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rx-persist_0.0.8_1677498668296_0.3697594363699579"},"_hasShrinkwrap":false},"0.0.9":{"name":"@elemental-concept/rx-persist","version":"0.0.9","description":"Persistence operator for RxJS","repository":{"type":"git","url":"git+https://github.com/elementalconcept/rx-persist.git"},"keywords":["rxjs","reactivex","persistence","storage"],"author":{"name":"Elemental Concept"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/elementalconcept/rx-persist/issues"},"homepage":"https://github.com/elementalconcept/rx-persist#readme","peerDependencies":{"rxjs":">6"},"dependencies":{"tslib":"^2.3.0"},"module":"fesm2015/elemental-concept-rx-persist.mjs","es2020":"fesm2020/elemental-concept-rx-persist.mjs","esm2020":"esm2020/elemental-concept-rx-persist.mjs","fesm2020":"fesm2020/elemental-concept-rx-persist.mjs","fesm2015":"fesm2015/elemental-concept-rx-persist.mjs","typings":"index.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/elemental-concept-rx-persist.mjs","es2020":"./fesm2020/elemental-concept-rx-persist.mjs","es2015":"./fesm2015/elemental-concept-rx-persist.mjs","node":"./fesm2015/elemental-concept-rx-persist.mjs","default":"./fesm2020/elemental-concept-rx-persist.mjs"}},"sideEffects":false,"_id":"@elemental-concept/rx-persist@0.0.9","_nodeVersion":"14.21.2","_npmVersion":"6.14.17","dist":{"integrity":"sha512-f48lUdERCi9joj/MbboUSHRkaFIl/JMrUlRDxhkgF2r8bXofcVnWXcmgBboFPTn9uclHP0d65pIk4mp85eDjJg==","shasum":"2fe80173130ad68e5bfdee977d2356da1d7e6aa6","tarball":"https://registry.npmjs.org/@elemental-concept/rx-persist/-/rx-persist-0.0.9.tgz","fileCount":32,"unpackedSize":60107,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCeFH4zNE4DFJtIyNTsjp53ZyqiNo7f0NUVa3gkmlQqqwIhALyj8klFuG3Nd1nmZzDZd2P4X4UeAXohyC+/8SDAhPWL"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/JxdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqaXw/9HARsnIyHtgA7GDec8uaK9zuAYjUFt5p5f9gp4bVxGBTF1Sc4\r\n5AiGdMd5RVAY+GkIDHkpa3Rjz+3wk8luHAleiWVXv/+1G7RGHcpzMkXTH3q3\r\nZSYeKC6r8OC4IFQAoeLDD/bxd0BEGeJYwYsoVXriU+roNR5gfOX1U1rARP1e\r\n2M+Cls7n52WWpPU1HSC04mt7KZG4y2O8OqeN74kTo3feaXFFtwITZ3dFJtHw\r\nGM7pRn3dFaa/j1QgrdXM5ZoCULy0DlioBWh52bPqDov9+FEBcN5VRHBtuvdO\r\nFk6UiowocMKBcFfLgsrJe8QPcKV97HFsq2Od+qPa+/mHOtH8PwHrOfqxox1k\r\n1KUcazs5hsRHg/jb4h55SFwUF7nmmMDZ4+LEGPDT3LV8hAZnN4w/ccSFjFx4\r\nOtXjzMy8vgjefksfYE7zfHKPsOL4DnpXM0keIMYs2j7kK2RtPsjnlBUh0z6C\r\n+8sneMrbTtcSPeGdhv79OboIOroUIi1lmhOQG+iYRVtqy8eEB/u96tXjvnYj\r\nIbCZoIb4bqlo+UnYoT9DSAjKtgH8k+r7BgbYb/Cm1Mjma3ITD4N97/rV41zZ\r\n3ag6RgPKfY/waGDzVUdraXGPzKS5TYYRSQwsX1S/nqmq5Gye0pBiKdBPPmza\r\nExI4R2Rt//IQuT66HZri3TSLdIm8Ll1QE/I=\r\n=BpeS\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"simke2090","email":"simke2090@yahoo.it"},"directories":{},"maintainers":[{"name":"aux","email":"aux@hexmode.org"},{"name":"simke2090","email":"simke2090@yahoo.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rx-persist_0.0.9_1677499485363_0.017466789155561324"},"_hasShrinkwrap":false},"1.0.0":{"name":"@elemental-concept/rx-persist","version":"1.0.0","description":"Persistence operator for RxJS","repository":{"type":"git","url":"git+https://github.com/elementalconcept/rx-persist.git"},"keywords":["rxjs","reactivex","persistence","storage"],"author":{"name":"Elemental Concept"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/elementalconcept/rx-persist/issues"},"homepage":"https://github.com/elementalconcept/rx-persist#readme","peerDependencies":{"rxjs":">6"},"dependencies":{"tslib":"^2.3.0"},"module":"fesm2015/elemental-concept-rx-persist.mjs","es2020":"fesm2020/elemental-concept-rx-persist.mjs","esm2020":"esm2020/elemental-concept-rx-persist.mjs","fesm2020":"fesm2020/elemental-concept-rx-persist.mjs","fesm2015":"fesm2015/elemental-concept-rx-persist.mjs","typings":"index.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/elemental-concept-rx-persist.mjs","es2020":"./fesm2020/elemental-concept-rx-persist.mjs","es2015":"./fesm2015/elemental-concept-rx-persist.mjs","node":"./fesm2015/elemental-concept-rx-persist.mjs","default":"./fesm2020/elemental-concept-rx-persist.mjs"}},"sideEffects":false,"_id":"@elemental-concept/rx-persist@1.0.0","_nodeVersion":"14.21.2","_npmVersion":"6.14.17","dist":{"integrity":"sha512-grWMHBNZbHOpFrsYpnb2GL3MhT8quNZtY5JrnfddpSJHCvHRln/wMQn+wh0XdjEdDPLzjS2l/eRAST9CvzXeGg==","shasum":"cf98e580ec1f145e0e2befd5f2d70e0189d2128d","tarball":"https://registry.npmjs.org/@elemental-concept/rx-persist/-/rx-persist-1.0.0.tgz","fileCount":32,"unpackedSize":60107,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEU98DWYlHJOx6SGrbtl/Nwfk+47DmdtYti+zLa6cefKAiBsgiZ7t8POm6jfyy4Xx6p+1fFGY88TcAqYaZsrEmcKHg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/J4AACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpETQ/6A47SNLk1QJUW2ukR/fxSQpcVaKVTHX0QFFOLZNrVHTfcseU4\r\nDExCDh+ULsc6HEcQZ4GiaBo1izpgqE7QVmNOaAg4Urr3e409C+URsrcb2qF3\r\nLcoWEciNqiIU+sc1GYp9fyKCTQTDj5IKkNECzj8S6cd1PEIf81dj1H6pgFT7\r\nEEFsHKYHlOwwDJiCq0rdcbsKs9tO5ZRZ0SVGwByfFIi0N3Px6IgJg0EIyRgC\r\nBghNbbfJQupiYzQcACc0rUoUG7c49D7gwfD174QwQ05m2/N6BiYdYQTRXS4p\r\nZ4MrcEcnF5JMqPhe87oi6pySBYMeFXQy2smq6b1+ccFLGGeRnDBXjbDTN/jw\r\n6nGda98A1AEooLfAszS/Zk/YANfvJaFT6QnGTjy67nuR+tv3VXbwlI8ah5MX\r\nLi6FvwnY6adsqPEA/Kl3g4eAU77dsqe6bEZL0vQV2vQqxG+I069J3+AZBMTK\r\nIn3kRuAWyW02lgZ4+7A6e2ZqKR4cOYEU/L18XmJtI7bjzr30vkjD2c9PKnhP\r\n5Ztbv7+t62pPNf9jfryPSFDondoQw6VhIi8lc24whHs3L82eXbNzcs3MYcs5\r\n16nVTKfxUHlNrP7FXgRsPLrUT+SIpmUGf3eCytR6F5RNmKJJAchzRCu4KPb9\r\nz570l7EpILxM4A2uZomnF6Bv7pGDeSiPEpU=\r\n=vB7p\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"simke2090","email":"simke2090@yahoo.it"},"directories":{},"maintainers":[{"name":"aux","email":"aux@hexmode.org"},{"name":"simke2090","email":"simke2090@yahoo.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rx-persist_1.0.0_1677499904179_0.4573525288083422"},"_hasShrinkwrap":false},"1.0.1":{"name":"@elemental-concept/rx-persist","version":"1.0.1","description":"Persistence operator for RxJS","repository":{"type":"git","url":"git+https://github.com/elementalconcept/rx-persist.git"},"keywords":["rxjs","reactivex","persistence","storage"],"author":{"name":"Elemental Concept"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/elementalconcept/rx-persist/issues"},"homepage":"https://github.com/elementalconcept/rx-persist#readme","peerDependencies":{"rxjs":">=6"},"dependencies":{"tslib":"^2.3.0"},"module":"fesm2015/elemental-concept-rx-persist.mjs","es2020":"fesm2020/elemental-concept-rx-persist.mjs","esm2020":"esm2020/elemental-concept-rx-persist.mjs","fesm2020":"fesm2020/elemental-concept-rx-persist.mjs","fesm2015":"fesm2015/elemental-concept-rx-persist.mjs","typings":"index.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2020":"./esm2020/elemental-concept-rx-persist.mjs","es2020":"./fesm2020/elemental-concept-rx-persist.mjs","es2015":"./fesm2015/elemental-concept-rx-persist.mjs","node":"./fesm2015/elemental-concept-rx-persist.mjs","default":"./fesm2020/elemental-concept-rx-persist.mjs"}},"sideEffects":false,"gitHead":"e9b3c5badcfc8f8b91beeaa8946e39a40062c0d1","_id":"@elemental-concept/rx-persist@1.0.1","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-ojHfZ6APBf0tBGjVtmLjPiMcuV5YQiHKnFinA3GqRrTzZVGaNVT7YQSMsvw5X9n0+Rblw3pr/960mLgtTJuP6w==","shasum":"1c03b91c61217fd5111b19eb02d6b9df9b9d739e","tarball":"https://registry.npmjs.org/@elemental-concept/rx-persist/-/rx-persist-1.0.1.tgz","fileCount":32,"unpackedSize":61960,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDsfz8BEGej2OhZcZqF+nzgsYPysrRPIbsoKunfGMLY4AiA5ADjjUE8gEBAk0s7RcF2YylBhPu7k836KVbWruiiFhA=="}]},"_npmUser":{"name":"aux","email":"aux@hexmode.org"},"directories":{},"maintainers":[{"name":"aux","email":"aux@hexmode.org"},{"name":"simke2090","email":"simke2090@yahoo.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rx-persist_1.0.1_1686574149389_0.049667519642885294"},"_hasShrinkwrap":false}},"time":{"created":"2021-01-26T17:45:51.689Z","0.0.1":"2021-01-26T17:45:51.956Z","modified":"2024-05-16T11:57:50.024Z","0.0.2":"2021-01-27T11:24:54.518Z","0.0.3":"2021-01-27T11:47:55.812Z","0.0.4":"2021-01-27T11:52:48.808Z","0.0.5":"2021-01-27T12:01:22.272Z","0.0.6":"2021-05-18T18:30:44.850Z","0.0.7":"2021-05-19T08:08:32.344Z","0.0.8":"2023-02-27T11:51:08.467Z","0.0.9":"2023-02-27T12:04:45.560Z","1.0.0":"2023-02-27T12:11:44.365Z","1.0.1":"2023-06-12T12:49:09.534Z"},"maintainers":[{"email":"david@elementalconcept.com","name":"ecdavid"},{"email":"aux@hexmode.org","name":"aux"},{"email":"simke2090@yahoo.it","name":"simke2090"}],"description":"Persistence operator for RxJS","homepage":"https://github.com/elementalconcept/rx-persist#readme","keywords":["rxjs","reactivex","persistence","storage"],"repository":{"type":"git","url":"git+https://github.com/elementalconcept/rx-persist.git"},"author":{"name":"Elemental Concept"},"bugs":{"url":"https://github.com/elementalconcept/rx-persist/issues"},"license":"BSD-2-Clause","readme":"# rx-persist\r\n\r\n`@elemental-concept/rx-persist` provides a persistence operator for RxJS subjects. It automatically saves each event\r\nemission into selected storage and restores last emission from storage on Subject creation. Additionally, provides\r\nstorage versioning with `persistentAndVersioned` operator.\r\n\r\n## Use-case example\r\n\r\nImagine you're working on a front-end application for an online clothing shop, and you want your users to be able to\r\nfilter products by size and colour. You might define the following interface to describe such filter:\r\n\r\n```typescript\r\nexport interface ProductFilter {\r\n  size: string;\r\n  color: string;\r\n}\r\n\r\nexport const defaultProductFilter: ProductFilter = {\r\n  size: 'any',\r\n  color: 'any'\r\n};\r\n```\r\n\r\nAnd then you'd have a subject which will allow different parts of your application to emit new filter values based on\r\nuser input and to subscribe to such events. You can also chain this filter subject into API call to fetch new data each\r\ntime your users request changes:\r\n\r\n```typescript\r\nexport class ProductsService {\r\n  private apiService = new ApiService();\r\n\r\n  private productFilter$ = new BehaviorSubject<ProductFilter>(defaultProductFilter);\r\n\r\n  private products$ = this.productFilter$\r\n    .pipe(switchMap(filter => this.apiService.getProducts(filter)));\r\n\r\n  get productFilter(): Observable<ProductFilter> {\r\n    return this.productFilter$.asObservable();\r\n  }\r\n\r\n  get products(): Observable<Product[]> {\r\n    return this.products$;\r\n  }\r\n\r\n  setFilter(filter: ProductFilter) {\r\n    this.productFilter$.next(filter);\r\n  }\r\n}\r\n```\r\n\r\nBut what would happen if a user decides to refresh your page in the browser? Filters will be reset to their default\r\nstate, and most likely this is not something you want to happen. This is where `rx-persist` comes into play. Simply wrap\r\nyour subject with `persistent` operator and each filter change will be stored in `window.localStorage`:\r\n\r\n```typescript\r\nexport class ProductsService {\r\n  // ...\r\n\r\n  private productFilter$ = persistent(\r\n    new BehaviorSubject<ProductFilter>(defaultProductFilter),\r\n    'storageKey');\r\n\r\n  // ...\r\n}\r\n```\r\n\r\n## Installation\r\n\r\nUsing npm:\r\n\r\n```shell\r\n$ npm i @elemental-concept/rx-persist\r\n```\r\n\r\nUsing Yarn:\r\n\r\n```shell\r\n$ yarn add @elemental-concept/rx-persist\r\n```\r\n\r\n## Example\r\n\r\nCheck [this example](https://github.com/elementalconcept/rx-persist/tree/upgrade/src/app) for a simple usage\r\nexample in an Angular application.\r\n\r\n## API\r\n\r\n### persistent()\r\n\r\n```typescript\r\nfunction persistent<T, S extends Subject<T>>(subject: S, key: string | string[], storage: StorageDriver = localStorageDriver): S;\r\n```\r\n\r\n* `subject` - specifies a subject to add persistence to.\r\n* `key` - key to use to read and write data changes into the storage.\r\n* `storage` - optionally specify a storage to use. `window.localStorage` is used by default.\r\n\r\n### persistentAndVersioned()\r\n\r\n```typescript\r\nfunction persistentAndVersioned<T, S extends Subject<T>>(subject: S, key: string | string[], options: VersionedOptions): S;\r\n```\r\n\r\n* `subject` - specifies a subject to add persistence to.\r\n* `key` - key to use to read and write data changes into the storage.\r\n* `options` - set of options for versioning.\r\n\r\n### VersionedOptions\r\n\r\n```typescript\r\ninterface VersionedOptions {\r\n  currentVersion: number;\r\n  versionKey: string | string[];\r\n  migrate: (version: number, value: any) => any;\r\n\r\n  storage?: StorageDriver;\r\n}\r\n```\r\n\r\n* `currentVersion` - specifies current version application expects.\r\n* `versionKey` - storage key to fetch version information.\r\n* `migrate` - method to run migrations between versions.\r\n* `storage` - same as in `persistent()`.\r\n\r\n### StorageDriver\r\n\r\n```typescript\r\ntype StorageResult<R> = Promise<R> | Observable<R>;\r\n\r\ninterface StorageDriver {\r\n  set<T, R>(key: string, value: T): void | StorageResult<R>;\r\n\r\n  get<T>(key: string): T | null | StorageResult<T | null>;\r\n\r\n  remove<R>(key: string): void | StorageResult<R>;\r\n}\r\n```\r\n\r\nDescribes a contract to implement custom storage support.\r\n\r\n### DOMStorageDriver\r\n\r\n```typescript\r\nexport class DOMStorageDriver implements StorageDriver {\r\n  constructor(private readonly storage: Storage) {\r\n  }\r\n}\r\n```\r\n\r\n`StorageDriver` for custom DOM `Storage` implementations.\r\n\r\n### sessionStorageDriver\r\n\r\n```typescript\r\nconst sessionStorageDriver = new DOMStorageDriver(sessionStorage);\r\n```\r\n\r\nPre-defined `StorageDriver` which uses `window.sessionStorage` as a back-end.\r\n\r\n### localStorageDriver\r\n\r\n```typescript\r\nconst sessionStorageDriver = new DOMStorageDriver(localStorage);\r\n```\r\n\r\nPre-defined `StorageDriver` which uses `window.localStorage` as a back-end.\r\n\r\n## Versioning\r\n\r\nData structure saved in a persistent Subject might change over life span of your application. To avoid data corruption\r\n`persistentAndVersioned()` operator is introduced to be used instead of `persistent()`. Versioning starts with 0 and\r\ngets incremented by 1 on each data structure change.\r\n\r\nWhen `persistentAndVersioned()` is called it will load currently saved version from storage from `versionKey` and will\r\ncompare this value to `currentVersion`. It will then call `migrate()` multiple times passing current version and\r\nincrementing it on success. For example, `currentVersion` is set to `7`, but version number obtained from `versionKey`\r\nis `5`. In this case `migrate()` will be called twice: for version `5` and version `6`.\r\n\r\n`migrate()` should check current version, apply data transformations and return the result. Result will be immediately\r\nsaved into storage and current version number will be bumped by 1.\r\n\r\n### Example\r\n\r\nLet's assume the following scenario:\r\n\r\n1. When the app was created, subject contained an object with just one field - `name`.\r\n2. After some time new field was added - `id`.\r\n3. Finally, data structure was updated to also include user type in a field called `type`.\r\n4. Most recent version is thus number `2` and there should be two migrations: from 0 to 1 and from 1 to 2.\r\n\r\n```typescript\r\npersistentAndVersioned<string, Subject<string>>(\r\n  new BehaviorSubject({ id: 1, type: 'GUEST', name: 'Guest' }),\r\n  'user',\r\n  {\r\n    currentVersion: 2,\r\n    versionKey: 'userVersion',\r\n    migrate: (version: number, value: any) => {\r\n      switch (version) {\r\n        case 0:\r\n          value.id = 1;\r\n          break;\r\n\r\n        case 1:\r\n          value.type = 'GUEST';\r\n          break;\r\n      }\r\n\r\n      return value;\r\n    }\r\n  })\r\n  .subscribe();\r\n```\r\n","readmeFilename":"README.md"}