{"_id":"@activitypods/synchronizer","_rev":"6-d4d0bb69cbe285beadddd7551c2a71ed","name":"@activitypods/synchronizer","dist-tags":{"latest":"1.1.0"},"versions":{"0.2.0":{"name":"@activitypods/synchronizer","version":"0.2.0","author":{"name":"Virtual Assembly"},"license":"Apache-2.0","_id":"@activitypods/synchronizer@0.2.0","maintainers":[{"name":"srosset81","email":"srosset81@gmail.com"}],"dist":{"shasum":"cebcdbcc66f3d5ba9cd401d5a4af7e431f791bf9","tarball":"https://registry.npmjs.org/@activitypods/synchronizer/-/synchronizer-0.2.0.tgz","fileCount":5,"integrity":"sha512-etie6ODt/CbQcIcE0RR2hf2B7ZBJHMfGAMhgMp7WS9HRVZH017HUhYCJup05WB5eSqPrmvap72+6wX2CVdobiA==","signatures":[{"sig":"MEYCIQCBtXnPPrieTz9hzrCOQmafy8ImtsLAB5XFhOW9ARi3hQIhAOtt+UPwDiaDoaRZmtESlp3XNNrVyKUbNEQjSgEoMFdN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15650,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhvK08CRA9TVsSAnZWagAARYoP/02N7dPwOkJa6oFIukEE\nfCKgwQG1Zoz/BFHGRZC13+201JLfiSuoIxA04owAxoF1NgXEPdHbVepM9tKC\nAEcILCvfiScXrnMdBgBD/hh1f9Tpjpv4l7Z04EusJ+xXwKNaFnSbfyN4/+Wf\nTdMsDLVFmtfLbh6cqmT7Jv1sn5RoolK1jXFYg1jjZqiB2vtfofRj101sk18l\nqOt4pEpEuRshNPPST4rjOBZ9lmqMIYAhWrbitYaDGhAyLDqoFugiimKb7Jqu\nO/+gIp+f13yw1mucnP6QEugqPJzca/ecLq1y/qiUiCUepfTqr9smNfoaui/C\n9tFqjO8ZqwqUtRiw7fkZT3BXYE+gG7loBO+jjnFXy/LxuZrrOPLsIZiMO52v\ndWo1Y8fuh4HmtXVphC2tuxBUxMa0stqqHXxBqgSPsvIDxftEze9C5Qve9gWl\ni+DJc2D+hrWm2+iMbxwUOseg6B7Kq6bdDoOqfjuYJIxMo2wQGBrCss7BI/i2\nNRCbleBwipGvoSBUWFOowlhKYKAVkR0RGCGa78mXs7Jr+mr9a0oXAeOuXedM\nx6ZApFIbUVeqFT8KrfeYm+2z30cg2oRlT9S3GcJ60OPU9aw/upS14kwwKIRp\nWACT8Q+yU5UkrwhPLS7e/B40C/NoYMKIoP2RVkcRLTyzPuCXPnqZM7TuD7s9\n4Y7F\r\n=BAej\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"1aa216ace27853a83b48d7a70399d8e391436bce","_npmUser":{"name":"srosset81","email":"srosset81@gmail.com"},"_npmVersion":"lerna/4.0.0/node@v12.19.1+x64 (linux)","description":"ActivityPods app to notify of objects' updates","directories":{},"_nodeVersion":"12.19.1","dependencies":{"@semapps/ldp":"0.4.0-alpha.3","@semapps/mime-types":"0.4.0-alpha.3","@semapps/activitypub":"0.4.0-alpha.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/synchronizer_0.2.0_1639755068156_0.17226547574934004","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"@activitypods/synchronizer","version":"0.2.1","author":{"name":"Virtual Assembly"},"license":"Apache-2.0","_id":"@activitypods/synchronizer@0.2.1","maintainers":[{"name":"srosset81","email":"srosset81@gmail.com"}],"dist":{"shasum":"7086411d3d40e1d9f1fdbcb513f1b6ffeea274df","tarball":"https://registry.npmjs.org/@activitypods/synchronizer/-/synchronizer-0.2.1.tgz","fileCount":5,"integrity":"sha512-hn+j0F06sgWfV81F+rOkTABXyOj7uvCxHb0K0CAlMFwbt63ljIlehwqRZzWCyCAIVCeJgMx/v3j8yuqqx82f0A==","signatures":[{"sig":"MEQCIEMwMqOEwXWKigJfnTVKn2waclhgsSLmtNON+4egS/t9AiAO2pqysSVYIqMVoIr8ClirR2oqTnXtfRmmJGb71n5zgQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15650,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhvLUMCRA9TVsSAnZWagAAoXcQAIDT8HeKC7yK2Qo4rYw4\nMBsoPHabj9rUShkfgMS+B8QXx5LTsP0TdS7cm0mCrHfDffFbhsVRY7ZChJ0L\nkST3xohgQEGL+HxxqWL/fCsFNtyXC4fpLWww/LupFc898QDlmj4LA6NUYWf/\n/8BMtZG0inLcjIU7K34KZD0jZtIOnqN/ielQ5+np11TedLvKIe9a3oOOMM7D\ndFr9imLIlfAI2V07/DNPuFW2Fzg3cWmLAznelBs6aD8256dyp/DHU+p83azk\nIwJTARbSej8uzawoocH3X5nnO78yIeH1H4TypJ9YDt0j79MxcbrjL4BIgskL\nKUQ9zNQjI5x7ppaRIyqp1BUbvfG1X+c17VGcUUxoOzVFt/E6l3k2zE2Obs9n\n6HO+F2Zefjo8bGvD7h04Zd23l+56DU3j/RgtBuBN2u/Vj9hMoUaCqxdsQ50X\nNd+g/bsVfSrl935ZidpP6/MaPxpl0D1QLixnzQ0p1iC2ZnLE7YoFSTHbHobw\nE/3Og+nkpX77OQiP0Hg+9vyhCT2KGxrmnYHjX5BeWpZshbCrFgdrWUCXZH2A\n+e0/RqACqvjmHd+9qoiVwT52mSw8+R230vhJN82ylAWd0Ba3HRgzPkFk+8xM\na/PDSXggtGSGduMSKDMeuzWX8IBrhjaEQsuqXaDtL6r9jLKDm6rhlmEWUX6k\nldVS\r\n=ZJwq\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"e4f0ccc64d8fb83c41d327a036b104de7ceb4cb3","_npmUser":{"name":"srosset81","email":"srosset81@gmail.com"},"_npmVersion":"lerna/4.0.0/node@v12.19.1+x64 (linux)","description":"ActivityPods app to notify of objects' updates","directories":{},"_nodeVersion":"12.19.1","dependencies":{"@semapps/ldp":"0.4.0-alpha.4","@semapps/mime-types":"0.4.0-alpha.4","@semapps/activitypub":"0.4.0-alpha.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/synchronizer_0.2.1_1639757068275_0.38876196719176215","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@activitypods/synchronizer","version":"1.0.0","author":{"name":"Virtual Assembly"},"license":"Apache-2.0","_id":"@activitypods/synchronizer@1.0.0","maintainers":[{"name":"srosset81","email":"srosset81@gmail.com"}],"dist":{"shasum":"77b33cfc63b4943df323ead32da5b65837ee3571","tarball":"https://registry.npmjs.org/@activitypods/synchronizer/-/synchronizer-1.0.0.tgz","fileCount":5,"integrity":"sha512-wvMX4NjXgvc2QAnfLmqLnQXet4D8jCFVlyPn3aMIZQonH/5cF00sth03vpkS6e05yOK8Sz9L6depqCSCpRxH9A==","signatures":[{"sig":"MEUCICFnY4auwUJab9t9mVfQsumIImA+1fI0I342wLSN15J5AiEAx7R8mxPsMVZFzyH19saaooR6F3d5pBUZ4cxb5+5BpJ0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15650,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhwwXhCRA9TVsSAnZWagAAXuwP/iH+D3UPrZV9S9UEp+gF\n6M0Pk8u7t0b8wJV/K3kztdaBn9ALAyoK/XKknWnEoSF1bQvYdITfAqD9YOZc\nDtw1bZE4nY/1gI9Qr/fEW3z7Rq9C8dF7EgvOKhJXsjB6pPjJlKR53QdmzMhh\nDZpsb0x9+0PIHeatMxQnhhEZoISM6y5OJElfZPPNqzlYp2OmN+HU3A711B5i\ne6HvJ0spm0VPeaqyAAvtbDnWYqIsyLqjE4eBffZTO129ZVcXRddDKAwxNF/G\nUhBRFJLmIFqoHoFf/fl7uWhqsnEJ17OCzFg6925gIYnB5ge0MPn4al3FkNj+\nG7G5hFzTaoFUENL2g0kl6VhxhVTG7ZKk0SaoN9V9cyKfu0JKFo9Tk/iYNCOS\nzrgM18doZfDWx7Tm9d4KhqlwwWz1z8JqQoDVaueSMy6PQZXb3zae6S0ZcUOP\nerZ4X/BwF66YxCTZ5CTu3A6eNuyJSr9Mh/GY/l1jHOdnokZcxOj7REAky1Qo\nltScAgvmKBwul84FznUMK7SD+seyBdwWQNcjq8p07Vt2KboC/ugpUlD1xY/9\nD5/uDqRAUQYhIDGnhJrm/t6+xwtu00kr3g5X+JfxMe13sq/uTzQWoYJiJrly\n5vsu6o9lnqqMm4gWscJE9PFwLVg8KTdcv6K/BiO7RK+1hcoFuO7JGViUNR80\nxFWI\r\n=87K+\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"5788105af09347a4c3368808ce49ebb854e76f19","_npmUser":{"name":"srosset81","email":"srosset81@gmail.com"},"_npmVersion":"lerna/4.0.0/node@v12.19.1+x64 (linux)","description":"ActivityPods app to notify of objects' updates","directories":{},"_nodeVersion":"12.19.1","dependencies":{"@semapps/ldp":"0.4.0-alpha.5","@semapps/mime-types":"0.4.0-alpha.5","@semapps/activitypub":"0.4.0-alpha.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/synchronizer_1.0.0_1640170977228_0.9870338909916652","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@activitypods/synchronizer","version":"1.1.0","author":{"name":"Virtual Assembly"},"license":"Apache-2.0","_id":"@activitypods/synchronizer@1.1.0","maintainers":[{"name":"srosset81","email":"srosset81@gmail.com"}],"dist":{"shasum":"e014d64feab2f5eac5b77a025bbc3ad950c4a4dc","tarball":"https://registry.npmjs.org/@activitypods/synchronizer/-/synchronizer-1.1.0.tgz","fileCount":6,"integrity":"sha512-ZDge9hCBs4m6RAvBG6q1sP7J+tJBdN9INkNpe8V47W/r5CwrgEBrLHoNgXALPI10axfWHS9er2ER70KDY7OpJg==","signatures":[{"sig":"MEUCICKdP/34mK/YYGtDc3updckk3//vAfTWoqnl9zpvTQMaAiEAhmN5p9nTnNxrYfRKmj9iyV8MpDyhwngWmHimwWdrxQ8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21307,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiaTigACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrCfw//VkyvUuVhBI6d8B5SXasnOC6jzY7w36LaAzLGAihEYGVUn4VF\r\nGrPg0SrU+y1wbI95hD0sGt5fn2U6hZg/A5YAYK8g1BZaRCpVaWEWDs8b4zQ2\r\n+Ap4/L0L5hQ5PFDUEB3daB05LWCIy6y5iqWOneodyRDpNu2sIInnvpslY+yL\r\n7zrybYjJgz24sR3WCdsR8IGLqINs85u/Is8eb5UkCYQGmjNLxZsHzqBtEzMF\r\nJZaqfMbcj88mt2T/pyeY1+qa5TR+TIjYaPtH/kcFoDT9BP7XarbCh+h2MGWS\r\ndFlD7B2Fn/j9GWuP8QdMdFFER7w2KeMjMo5AhArSx+rscrUlJyykAhLwJPl5\r\nUiemAgf/IF/54msMxmVuh991RbinI0MOLQlNZ9AvSKkww5UA3q/nctBbluOM\r\nxSF7bLs9oJUKixK1DHdtR351XFEGwNYGmYkemRYh4+h2pw0Xt6CxR72M3n+o\r\ng9hvYTR6yJ/KBF89Xs6hDocj42BC/Fyaw1otSaeSjug+4bzobLf/pkZAgE4s\r\nrWSTGhQbeRgnnDg3Omq9IURjurhc5JT9dwHECdBEsLVEojor/+bCvyjIe8SR\r\nHV30oAyyy6TCe34qj9K1A78Y/ChbHvq5e/pZbApel7ZMD4k2akvBhhYIFm1S\r\nCMUtI+xfMiro9QTcx4uQJQuF2O0wtQFc/hs=\r\n=uscM\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"02e79706b4856a6f7fe124eaeb9e407039ce6bfb","_npmUser":{"name":"srosset81","email":"srosset81@gmail.com"},"_npmVersion":"lerna/4.0.0/node@v12.19.1+x64 (linux)","description":"ActivityPods service to notify of objects' updates","directories":{},"_nodeVersion":"12.19.1","dependencies":{"@semapps/ldp":"0.4.0-alpha.19","@semapps/mime-types":"0.4.0-alpha.19","@semapps/activitypub":"0.4.0-alpha.19"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/synchronizer_1.1.0_1651062943881_0.6815279744634852","host":"s3://npm-registry-packages"}}},"time":{"created":"2021-12-17T15:31:08.098Z","modified":"2025-05-29T14:15:31.364Z","0.2.0":"2021-12-17T15:31:08.321Z","0.2.1":"2021-12-17T16:04:28.450Z","1.0.0":"2021-12-22T11:02:57.444Z","1.1.0":"2022-04-27T12:35:44.046Z"},"author":{"name":"Virtual Assembly"},"license":"Apache-2.0","description":"ActivityPods service to notify of objects' updates","maintainers":[{"email":"srosset81@gmail.com","name":"srosset81"},{"email":"mail@laurinweger.de","name":"laurin5"}],"readme":"# Synchronizer Service\n\nAn [ActivityPods](../../README.md) service to notify of objects' updates.\n\nWhen a watched object is updated or deleted, automatically send an activity to the actors who have the right to view this object.\n\n\n## Usage\n\nThe `SynchronizerService` is included in the [`CoreService`](../core). The easiest way to make use of it is to import the `SynchronizerMixin` along with the `ControlledContainerMixin`.\n\n```js\nconst { ControlledContainerMixin } = require('@semapps/ldp');\nconst { SynchronizerMixin } = require('@activitypods/synchronizer');\n\nmodule.exports = {\n  name: 'events',\n  mixins: [SynchronizerMixin, ControlledContainerMixin], // In that order\n  settings: {\n    path: '/events',\n    acceptedTypes: ['Event']\n  }\n}\n```\n\n> Note: The `SynchronizerMixin` must be added before the `ControlledContainerMixin`, as it overrides its `delete` action.\n\n\n## Actions\n\n### `watch`\n\nWatch a new type of object.\n\n##### Parameters\n| Property | Type     | Default      | Description                           |\n|----------|----------|--------------|---------------------------------------|\n| `type`   | `String` | **required** | The type of resource we want to watch |\n\n### `announceUpdate`\n\nAnnounce an object update to all actors who have the right to view this object.\n\n##### Parameters\n| Property    | Type     | Default      | Description                                |\n|-------------|----------|--------------|--------------------------------------------|\n| `objectUri` | `String` | **required** | The URI of resource which has been updated |\n| `newData`   | `Object` | **required** | The content of the resource (in JSON-LD)   |\n\n### `announceDelete`\n\nAnnounce an object deletion to all actors who have the right to view this object.\n\n##### Parameters\n| Property    | Type     | Default      | Description                                                     |\n|-------------|----------|--------------|-----------------------------------------------------------------|\n| `objectUri` | `String` | **required** | The URI of resource which has been deleted                      |\n| `oldData`   | `Object` | **required** | The content of the resource before it was deleted (in JSON-LD)  |\n\n\n## Handled activities\n\n### Announce update\n\n```json\n{\n  \"type\": \"Announce\",\n  \"object\": {\n    \"type\": \"Update\",\n    \"object\": {\n      \"type\": \"[WATCHED TYPES]\"\n    }\n  }\n}\n```\n\n#### Emitter's side effects\n\n- None\n\n#### Recipients' side effects\n\n- The object cached in the recipients' PODs is refreshed\n\n### Announce delete\n\n```json\n{\n  \"type\": \"Announce\",\n  \"object\": {\n    \"type\": \"Delete\",\n    \"object\": {\n      \"formerType\": \"[WATCHED TYPES]\"\n    }\n  }\n}\n```\n\n#### Emitter's side effects\n\n- None\n\n#### Recipients' side effects\n\n- The object cached in the recipients' PODs is deleted\n","readmeFilename":"README.md"}