{"_id":"semantically","_rev":"32-dea87ed0e9277e04cfd5ad3893365973","name":"semantically","dist-tags":{"next":"0.1.0","latest":"1.0.9"},"versions":{"0.0.0":{"name":"semantically","version":"0.0.0","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@0.0.0","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"3ed48e31ad91f784ddaa90e6f225ee5e1406ccfb","tarball":"https://registry.npmjs.org/semantically/-/semantically-0.0.0.tgz","fileCount":1,"integrity":"sha512-wfcSgd3cOb9poLrw1GYlFqudiFNJ5FSPLq9kcWnngwur2ATLAzVSGtyff6Nphtz2JpQFe9pRqAOczm0cuucQZA==","signatures":[{"sig":"MEYCIQDNyY5sFN29Zj3sJ4FB7jGxt5ek+LG7HCoCACWC1n4QBQIhAJtFxhAM3F2umyh2NtHj+wqr6GCuD9nG29o024gJ7SHA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1151,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjtFxXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoXKxAAlU2YfRYNSn7EKVpUbcLVKucMOql4n30BxYXp8RukYvyMLfAB\r\nBPngptYTH5Y+JW0656RVsDXIxA3P3j/BiPUFTRWQnmoCfXh8TjINolNc1XbI\r\nBZ8HP+ol6tLPz2dUNVV5dJpMrFn5PQbis1MgJfFGGWXuteFd++/r+14fi3Vu\r\n3a1nCa8PKYC65Uuh3BhmxO92hJlDJwOrFgHOGuJvsf9l5Q8YY0F1RklqH+S8\r\nDGSBLOhdgOYruaiwlZxL8m7L18MSiqZHvPnTuNS7sS9aV/lGv79MKkRh2WYG\r\nxFyz8T8VpW+OIS0w30mJlaz5Zqy5NZMf1eUMivPAbjzrdDWcJbr889y4fiIj\r\nrD1yjhFnLQ25ioGtf65nHADxhsVFMqtHnRsirO8NeRif7WsvPQ0CoDW0SzPx\r\nnSmyulwrFKbpHosaYkOufgBuHLyiBIKPmm4IrerfcyCCRH/SiCZHfKsuhAOb\r\nkoeT9ymPjSzf+1hoosLK+lESUx+BXjIbnyGA/GVKy0HhKoE4Qqwr/+vUErQE\r\nT7SuHKp9dIC3rbeC75awAlhgJT/bXgRccuVVNTm4mx1A0Firtxb9wcIegfEc\r\n4NAEYab3AdfW3UdH9yDKFaEbcoNuVBEzwGmG2rm+TmvwJI2T773akg2BmraE\r\nrtqFy2FkLD+9ys5v1mg8DS7OhBSiQlh/PYg=\r\n=kPc9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","gitHead":"99c974948ca98331b840c83cb0d21f690d7dd2f8","private":false,"scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rm -rf dist && tsc"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"workspaces":{"src":["./src"]},"_npmVersion":"8.19.2","description":"CQRS/Event Sourcing library for coding semantically","directories":{},"_nodeVersion":"18.12.1","dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_0.0.0_1672764503613_0.4289723155820593","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"semantically","version":"1.0.0","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@1.0.0","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"dcbb1d80d7098513feca388879a2367cd23a0d5b","tarball":"https://registry.npmjs.org/semantically/-/semantically-1.0.0.tgz","fileCount":2,"integrity":"sha512-3bvxNSPLYWC2ZY9FlMzJ05ONu4tVoxiGA9x0pOvYb+21sgkcHKD2UEPGUDFRaUvtct//zjrNkuXoAlOhBquibA==","signatures":[{"sig":"MEQCIGg+STgXhrxBm5Ly6jk+CP32Csb20CxK2q7HCEE7bl4NAiBO9IW+I6yG54bLnsYRm88bZFtIYvP9v7AQ8ytPjMKmgg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1186,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjtF+7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp3cg/9FB+Zl96nlTH8zJqAV0uw15zjijl8IEJI2UiMEumwdKjKxAFj\r\nswpm+Oy/mT+M/KXQ/eSPgIxHfbka3FjrPXD458SISMJuAcMbOfhP89Uov+fo\r\ny5r/gWLxsJNoi0T0zuIuKhmUB4l9L/S6gFSnSCMMg96/ZTkCqILYV3++YOaT\r\np4n/3ail6RfrzPpNCx+CP/sRUdgKMrH8RH9driSsPtc0Nk6umCYV8bqEcIOC\r\nel1wtxDE4i8jvwOBvy7ME/MFTwoJhYrF+1ThcmJO1bHlnGSbdCCXzAgbWEqK\r\nlhxd9CvPEaw8kMFVNjaCbCxAqO3ZVg2shVAi9ZVZ4vC11euOBZVywc2KoUDO\r\nEiNkCi0wSpSBdHs+aRVMwdKPwR6nWpTISUTQIRBbKU5ipen6qoB2cx6GnQ41\r\npAd/mu1K36OWYR3Jez0g2w0WLh/WS8djsa8JfR8/Gd5mHwOyofG1bBc3eZxM\r\nBcVwCDa1gu3FXqVuFkBlO+EQGpiqGoSlL0K9/ZMR985SOHJDfeYcddi+5dkE\r\nkJYSffsVFjcs4A7aWahqixT5GmO301RX6yCabTxelrXmRZWG4m4qV9Bhajue\r\nkQuPQdWVIf/9NTDKit3giYz11hemJh+6HYDznnUPv5RI+Utd/XmPhW753Ej4\r\nmhuZbc9xPeOj9yINpudqkr6o6Eh1ziKFrsw=\r\n=JqRI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","private":false,"scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rm -rf dist && tsc"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"workspaces":{"lib":["./dist"],"src":["./src"]},"description":"CQRS/Event Sourcing library for coding semantically","directories":{},"dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_1.0.0_1672765371014_0.6228273885911624","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"semantically","version":"1.0.1","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@1.0.1","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"552559232b3743e78b8cf8400bcc7b6e32783051","tarball":"https://registry.npmjs.org/semantically/-/semantically-1.0.1.tgz","fileCount":2,"integrity":"sha512-vSu8ygOEPLhwytcn/Omo28f2TOFzT9denRO/ufdHLYhuvfX6OKJm7iEVZP9YvnF4P206DqRaliZx8SSCTkLppg==","signatures":[{"sig":"MEQCIH2HOVh+KgihsjTN0Iz37YqroxnzgNQM9nHXXrTFyeyLAiBo6J1qHeEPzsR3mu0RkwTlJEmS6b+g+rCC+q9L4yrePg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1186,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjtGACACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrMpw//d0sIoYi+1hX3p598d7j77gW5Q1rLPoNYW2JWSfYb24mv4Jjq\r\n6LuI1RDAj2Dfq+QnK1aRZ5teRbIXkxKxLPrs+q28zTb7ctQzDZ6sDoQ/tLtw\r\nSbUrtKcrpL/NFxGlrcaU1mrn6YOAZdlnAeowrWxDvce3lnTH6cVEdXYQqWZM\r\nWbxbzbmi3wPwia1Ox5bXYWtcnzhC0CR0kWH1dwhECrUDqghjlhKm8QB7Xmpj\r\nguXi4OI63IJwUPUdjyNlguR5In6cVBd3vWvDAzQXwM4ZaTExTBL0Xrb9n8sM\r\nWYn0jATLH/5jlo/wId+yNiXX65Ujq9E+Ohm4P74UlRz7l0Y1LooMv9zwzeCc\r\noNv0+DY9eRuebKiHgoqNC7cKW6gA2QKubMaVyZWPPWcgaTHcuIZHn1F7P5FB\r\nNB9Jv5KbzfJeiMPpG0alOImdBOXkQBZEmltvX7ZtswvWPz4Src0rhoVgc6Jd\r\nMQaRYS0D6NawoZYOjq5pd61CoDCaacRcc/Va0icYNtrYjWcwkSlZFZyow+xj\r\nJmrXPFTnbeNiuVkMGImGprLqQfWx/r7rKghbmu4b2DHdRVwh5QBf8+9vpnT7\r\niryZeawVZEZjDAculQmRbfoTF6P1QBARsKUseIvXr/te20ukbwF8X4PFgFdG\r\nRezuAghbtcPsldGSeDtc0rYU0R0566s7eyk=\r\n=8RPd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","private":false,"scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rm -rf dist && tsc"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"workspaces":{"lib":["./dist"],"src":["./src"]},"description":"CQRS/Event Sourcing library for coding semantically","directories":{},"dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_1.0.1_1672765442730_0.48904308443608424","host":"s3://npm-registry-packages"}},"0.0.1":{"name":"semantically","version":"0.0.1","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@0.0.1","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"19d2f84a6f4657fb3bb845bad3ab659f81d7e322","tarball":"https://registry.npmjs.org/semantically/-/semantically-0.0.1.tgz","fileCount":13,"integrity":"sha512-mShcGyjvCcnj5u+6Ts1oHhNK6hAlZOXzzvt1+Sd4cIwqy2bXDGinLDc0B33sZ2CNM8fX3MY/bzLHJVftVwXCrg==","signatures":[{"sig":"MEUCIFhfyd2Jm74RWP7lSp9+OXFVkefLpLr6HwDxBx3lYsOfAiEAi1SK9dBbmjoRUBxmgqtZFGuMcfgB/x6PIPb6V4LszVg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7147,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjtGCHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrmRQ/9FFBj28/Lh9gMr9T3dj8yFSKbPlkY49qivJ6yi6xir+/bx7UL\r\n1P4bF+0N7mdQKW7h4dqlhJSho+qRXbPxY3JfREH72hOGRmZjZ/NnRczl9rQr\r\ncrvBsCy9xC90LHefE/QGaGcRgJK9z/jqth4SIwjk6Ty/Ue1y7xgec/+M21LP\r\nVHOYoNfO9okNvm2gpUtH58f2prwV80UnZdwRoAreYN4KDZvGV0ilmp83ytpl\r\n9x5ouOoGZJqnSSdmnTMhf1GGdxEzX7knznaJOP3wKCUDcUxjm8kuGrrHX5kZ\r\nxkTY/xPpSSOcHGhUUDGf5Eur4arWOY29SRTsu+WZ6EsIGhiBdg+eDPmIECYd\r\nsGmbrlM5Yd6mksROYUAK0YBlegIaXTc7d9okaYEHljsSJ273cZnEUW93nD01\r\npxOX7/oqvuIDKhxNC5uju5vG5AESvVgs3sIgIneNGsTMEamRIFdPicU4A4SR\r\nTjH7MPz7PAu8HphQ2EBTPAyw11xVPSBD3KL/AtrJ+r2TkcZzVqJdhTkuKORn\r\nEcqR/JLcFMpE+v50OoL9JC8wmyF9vzBi1VN5Xid46Z0y4dguDILTZGCrRMfm\r\nKsmJwfvUR1cFBXm6lLK8tCMkE18dDho5r1pm2XvDNcxaIid1K8m9j9Yd26qi\r\n4h0xXclB+blQRIVJlP/Ux1zPVO+8Oa60DfE=\r\n=FhnN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"99c974948ca98331b840c83cb0d21f690d7dd2f8","private":false,"scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rm -rf dist && tsc"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"workspaces":{"lib":["./dist"],"src":["./src"]},"_npmVersion":"8.19.2","description":"CQRS/Event Sourcing library for coding semantically","directories":{},"_nodeVersion":"18.12.1","dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_0.0.1_1672765575187_0.9886299019173523","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"semantically","version":"0.0.2","keywords":["semantically","semantics","event","driven","cqrs"],"author":{"name":"LINQ"},"license":"MIT","_id":"semantically@0.0.2","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"bin":{"semantically":"dist/index.js"},"dist":{"shasum":"934d640bfcab1021617c3a7c08310d0f99658ea0","tarball":"https://registry.npmjs.org/semantically/-/semantically-0.0.2.tgz","fileCount":33,"integrity":"sha512-68IbSjxji4y2JKd26EwbWAhvdXn0dh3600MNZW7RF+tWYODST/1fzbLNRUbAPQSjEDEPlkKoW+nwG8sUdr9s8A==","signatures":[{"sig":"MEUCIQCEqg/IAyFbI0/uhMCBrPzzP51qoSFrI1VcOmaaWI5q/wIgadJ9cuMJEpAy9G/Dr+W+nK9vwMYovq85DPKmbokIZzA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17969},"main":"dist/index.js","paths":{"@linq/semantically":["./src/index"]},"types":"dist/index.d.ts","gitHead":"5e07830f64c917c91b000e7a191532c97e75ad42","scripts":{"lint":"eslint src/**/*.ts","test":"jest","prepare":"rm -rf dist && tsc -p tsconfig.json","refresh":"rm -rf ./node_modules && yarn install"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"_npmVersion":"9.6.7","description":"A helpful library facilitating Event Sourcing","directories":{},"_nodeVersion":"18.17.0","dependencies":{"uuid":"^8.3.2","luxon":"^3.0.4","@types/node":"^17.0.21","@types/uuid":"^8.3.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","ts-jest":"^29.0.3","ts-loader":"^9.4.2","jest-junit":"^15.0.0","typescript":"^4.8.4","@types/jest":"^29.2.4","@types/luxon":"^3.0.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_0.0.2_1692977565832_0.6985376475480984","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"semantically","version":"0.0.3","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@0.0.3","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"fb4fb41b1a391dfe40f84b301011b5ff508b2524","tarball":"https://registry.npmjs.org/semantically/-/semantically-0.0.3.tgz","fileCount":13,"integrity":"sha512-E1L8gSGHCg4BQoa4y+wtxYK89pbSaLo2QZdYt+kgnq7mflW1SXVCGZXDuwyd2Hx0tFtb/eHnV9R2TygZsNPReA==","signatures":[{"sig":"MEQCIENq4ngxAlh0bpulrWfsIJIoy39Ynr6QbkQcAWqdbDCoAiAhhgs3dIKbPqVLwTlHQ/ZZqjM/tkvMw50Pjippheb+ug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7293},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9ce84bf2062b58df51ecf552b78ddee7ac336cce","scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rimraf dist && tsc","prepublishOnly":"yarn build"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"repository":{"url":"https://registry.npmjs.org/semantically"},"_npmVersion":"11.6.2","description":"CQRS/Event Sourcing library for coding semantically","directories":{},"_nodeVersion":"24.11.1","dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_0.0.3_1768632111599_0.7693085420910861","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"semantically","version":"0.0.4","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@0.0.4","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"c85557e0912a1746742e39ea9eed2f3a2402eb9f","tarball":"https://registry.npmjs.org/semantically/-/semantically-0.0.4.tgz","fileCount":13,"integrity":"sha512-DQSv0hWm6Wtgiu+xqZusil4zgiXKL1pgN7J+r8Q+X2Kc33MNQwj7GM86eNFM6CRBR4dyHeOh1bk6MyukcGl8VA==","signatures":[{"sig":"MEQCIFRz2ULierCKD8ouNHNZs3K/85Ayuqlp/ZyvXWHZ5OfUAiBY2m1Qx5EBlb4AFnrH4RLX9XxelIUybd7zFLV7Th/OVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7298},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9ce84bf2062b58df51ecf552b78ddee7ac336cce","scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rimraf dist && tsc","prepublishOnly":"yarn build"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"repository":{"url":"https://registry.npmjs.org/semantically"},"_npmVersion":"11.6.2","description":"CQRS/Event Sourcing library for coding semantically","directories":{},"_nodeVersion":"24.11.1","dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_0.0.4_1768706718173_0.8026088627451355","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"semantically","version":"0.0.5","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@0.0.5","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"550e5cad2b70b112d3f775510e1c18dd1a048c85","tarball":"https://registry.npmjs.org/semantically/-/semantically-0.0.5.tgz","fileCount":13,"integrity":"sha512-w4FYqPePkilsnYhY54QrNsXtNuliAAG1i4ATd/p2B/Mjpw6lkenyhzDp4hjeaVfzzHyPFDU2ZeTE/RaL42Sr/A==","signatures":[{"sig":"MEQCIFXlVMoo/PsDBcPNBHXsiWaQsuTkwiqaxXpKogdQonv0AiBuL3e63oyyd2j6SyaN+LdJ9I7CzFFtiJUMIT/aMASmkg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7310},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9ce84bf2062b58df51ecf552b78ddee7ac336cce","scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rimraf dist && tsc","prepublishOnly":"yarn build"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"repository":{"url":"https://registry.npmjs.org/semantically"},"_npmVersion":"11.6.2","description":"CQRS/Event Sourcing library for coding semantically","directories":{},"_nodeVersion":"24.11.1","dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_0.0.5_1768794119155_0.8802052556242528","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"semantically","version":"0.0.6","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@0.0.6","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"7e2c378375820ddccfa638375964bc4accaaf89b","tarball":"https://registry.npmjs.org/semantically/-/semantically-0.0.6.tgz","fileCount":13,"integrity":"sha512-UIfmqkGqwc45b0JhbTXqc80Sx583Oq+RO4ODlfzDCyHlKVs2FzI+iOzf+wRxu28TQFbtXp9D0WJbqmcfK9u61Q==","signatures":[{"sig":"MEQCIC0+SJ5Vh1i7wcUrx4exMB9re7IEPctfEUkOYhr0t+TwAiA/P3eTxeSJ8s3blWyiib01feTkQa0nXI7ziSHaoiFFWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7822},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9ce84bf2062b58df51ecf552b78ddee7ac336cce","scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rimraf dist && tsc","prepublishOnly":"yarn build"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"repository":{"url":"https://registry.npmjs.org/semantically"},"_npmVersion":"11.6.2","description":"CQRS/Event Sourcing library for coding semantically","directories":{},"_nodeVersion":"24.11.1","dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_0.0.6_1768799579479_0.5873553795272759","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"semantically","version":"0.0.7","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@0.0.7","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"71f69ec06aed4c4dca08acdc4b58ed7f2e18a0c5","tarball":"https://registry.npmjs.org/semantically/-/semantically-0.0.7.tgz","fileCount":13,"integrity":"sha512-HHy70P2UNjX1qHYVMd7XNdr3opRcVu+Sz2YjC6EkGIEk4zl+xLYmT3yF4IVA0wglydGCGpPkHKIT/Gbeuk7I1Q==","signatures":[{"sig":"MEQCICpk2og/AdQDcnoo9QrfRd1pns7g7ggNeQUIOTayTyUbAiBnvq13nk1RNVGcFvcAp+Ey3VdiZh+2itWeJMsbqc+b6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7310},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9ce84bf2062b58df51ecf552b78ddee7ac336cce","scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rimraf dist && tsc","prepublishOnly":"yarn build"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"repository":{"url":"https://registry.npmjs.org/semantically"},"_npmVersion":"11.6.2","description":"CQRS/Event Sourcing library for coding semantically","directories":{},"_nodeVersion":"24.11.1","dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_0.0.7_1768799975150_0.4883399697390465","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"semantically","version":"0.0.8","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@0.0.8","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"4f9acb12723ab3f30be6378d5ff5207f4a37a96c","tarball":"https://registry.npmjs.org/semantically/-/semantically-0.0.8.tgz","fileCount":13,"integrity":"sha512-AiLFaH8Kjd9xaVfMw4xVDMMDj8W4RKbW3Egolkbw/qAnS4P/kygAOBL8E7VIRXDm9+eq2Cd3vXGg2eZBHSsjpw==","signatures":[{"sig":"MEUCIC0gedTREm5LjSeH1+yiaAL5AAv7BY9ejQr2B66wynoqAiEAyxWe53zUAvoEPM8GhlRqbOIwAxLfmi+B12zn9wqW0fg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8973},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9ce84bf2062b58df51ecf552b78ddee7ac336cce","scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rimraf dist && tsc","prepublishOnly":"yarn build"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"repository":{"url":"https://registry.npmjs.org/semantically"},"_npmVersion":"11.6.2","description":"CQRS/Event Sourcing library for coding semantically","directories":{},"_nodeVersion":"24.11.1","dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_0.0.8_1768830542322_0.3282671941056543","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"semantically","version":"0.0.9","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@0.0.9","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"96a7c617a729a91b3a9e62ca67e90bdd072f8ffc","tarball":"https://registry.npmjs.org/semantically/-/semantically-0.0.9.tgz","fileCount":13,"integrity":"sha512-5GZmyayRSzMePxv7rHYczY2NgSbrly3rO/7m3SM5a3YLD3HqjH9gcOh7M3679IETEjNvCLVzjC9pH4aqaYNOUA==","signatures":[{"sig":"MEQCIB6mRz9oykZvtxWPnLPkl+Ebn5Fwhacf6+BUG2c6ClQSAiB3CL3zCcRBwMuNNc+Eha+oCOI806+AHUHzTYaVvznnnw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8979},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9ce84bf2062b58df51ecf552b78ddee7ac336cce","scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rimraf dist && tsc","prepublishOnly":"yarn build"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"repository":{"url":"https://registry.npmjs.org/semantically"},"_npmVersion":"11.6.2","description":"CQRS/Event Sourcing library for coding semantically","directories":{},"_nodeVersion":"24.11.1","dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_0.0.9_1768831539886_0.26678381380064153","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"semantically","version":"0.0.10","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@0.0.10","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"b6b22606a14d44070ab052d792b71d18312cdab9","tarball":"https://registry.npmjs.org/semantically/-/semantically-0.0.10.tgz","fileCount":13,"integrity":"sha512-GOM8JfgvmcDx+ovIPdV/fQg1xu/Fntus3SEctKtaViuTRq9UJ7Gorayc/v8a4W805TH6Mh5Ncy2OLZBiF7LQYg==","signatures":[{"sig":"MEUCIQCkPD10w3O0n1grpiCVjwuCL8SMz3QiCCn73TXYEQCxugIgXOoQQ6c4iw8GGdqU78saGTIh8cnSf1qzzbaPO4szpU8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8844},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"a9a84aff9ad2f649b7e7a6b61b22a261f0a1cc2a","scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rm -rf dist && tsc"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"repository":{"url":"https://registry.npmjs.org/semantically"},"_npmVersion":"11.6.2","description":"CQRS/Event Sourcing library for coding semantically","directories":{},"_nodeVersion":"24.11.1","dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_0.0.10_1769198146726_0.7038901985696484","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"semantically","version":"0.1.0","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@0.1.0","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"8bd13d9f64e48807b924772f417192bd97ab6435","tarball":"https://registry.npmjs.org/semantically/-/semantically-0.1.0.tgz","fileCount":14,"integrity":"sha512-838MMc4KlOy+YzDTo6+/sAbmFfL1R7FZ+PDjq6/7qQPOWVzD1DKg43T1jtaWNW1YdvFfyNoOCinLx9GJNUoffw==","signatures":[{"sig":"MEYCIQCEgU2KUujCvkjCHqVvCzdivTVKx91umL7h6itI/9Qs5wIhAMyHrsVLAVpDG5LFCSUz2xLCQSp1NgFugOQBgigD2SSO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13839},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"c1609c3fa5d1acc0b4c70406409631b934e27aae","scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rm -rf dist && tsc"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"repository":{"url":"https://registry.npmjs.org/semantically"},"_npmVersion":"11.6.2","description":"CQRS/Event Sourcing library for coding semantically","directories":{},"_nodeVersion":"24.11.1","dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_0.1.0_1769448262650_0.22783548775239137","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"semantically","version":"1.0.2","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@1.0.2","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"9356a46806fbf0c03f3b46d52c655b6b34868f3b","tarball":"https://registry.npmjs.org/semantically/-/semantically-1.0.2.tgz","fileCount":14,"integrity":"sha512-Kyg1I63Jpd0jBhUXSUqI5Q2wX/D8lYOxpHgFLhDYKpXF5+0RE46gGVcPBWp7fZ2s4KFiyD4cmMrtfZbRIA4Pig==","signatures":[{"sig":"MEQCIFQprqd6dni1KdwHjAC+nUIslipqJ6ZUWkZuKS2WvqjjAiBStYSNc7zfs0nsu+GG25fRDtquuk05pRe54hjp/CnyIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13186},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"1f10e7dea98f76274e610f62e9e04c5bbfb1da01","scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rm -rf dist && tsc"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"repository":{"url":"https://registry.npmjs.org/semantically"},"_npmVersion":"11.6.2","description":"CQRS/Event Sourcing library for coding semantically","directories":{},"_nodeVersion":"24.11.1","dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_1.0.2_1775659455747_0.9195854957838523","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"semantically","version":"1.0.3","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@1.0.3","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"9a7f100a95d06242d3cb8b18eb5fb75a59adc099","tarball":"https://registry.npmjs.org/semantically/-/semantically-1.0.3.tgz","fileCount":14,"integrity":"sha512-6eKHWwi3SKknkKq1tHoO11kRTP9L9JuEe3YaVdfylrnJeosN9xo42FXH8dPtCcQAY2IS814LzUN3sZLAKj/q/g==","signatures":[{"sig":"MEUCIFLa3jlQU6mlnQAjO4jl9ROnvl4JQkkDu6vEAoKKciHgAiEA6YDaqhaLp5dgPZpoN5qHRrX9K9Yom+1W8JoittSdP58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13296},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"025410edf18fc24527d12c9c27f94c41c5e3cef1","scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rm -rf dist && tsc"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"repository":{"url":"https://registry.npmjs.org/semantically"},"_npmVersion":"11.6.2","description":"CQRS/Event Sourcing library for coding semantically","directories":{},"_nodeVersion":"24.11.1","dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_1.0.3_1775659882321_0.5088943599548039","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"semantically","version":"1.0.4","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@1.0.4","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"e8364d59da1b98b776f24e07582fea6716ab5a81","tarball":"https://registry.npmjs.org/semantically/-/semantically-1.0.4.tgz","fileCount":14,"integrity":"sha512-ks8GgeC2GHPwp+/jqSX2QjLviW50kdgqz66jWEsAlJAqklvymsQQxa10WFV7uHthbiAbGjPYxEFNHQu/A+YE6A==","signatures":[{"sig":"MEUCIEDylqD7JyfDsXMjt8aA/6QRUHcFySXQ5nV5POPJ8hBRAiEAs2tKOuWELT/cEAvsMa2jP8ho0/0nAfLB4lPcn1PyDYI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13330},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"cd8d67da3c8e4ffe6b06af06a0d5ce1a310ff879","scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rm -rf dist && tsc"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"repository":{"url":"https://registry.npmjs.org/semantically"},"_npmVersion":"11.6.2","description":"CQRS/Event Sourcing library for coding semantically","directories":{},"_nodeVersion":"24.11.1","dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_1.0.4_1775660285789_0.8010444342298153","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"semantically","version":"1.0.5","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@1.0.5","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"39d64d845c91910acbc350ee76498724e630e8dc","tarball":"https://registry.npmjs.org/semantically/-/semantically-1.0.5.tgz","fileCount":14,"integrity":"sha512-iVcGILuhVlhc8yqH/e0kC/OuMZld98bwa5bsJnjMOMIX5IpmM78D2AJ5EdnnSJlKkqsM2jcbcx9qjUuHsVKjQA==","signatures":[{"sig":"MEUCIQDPOrFTkCXopawvQYYaY8omNRs8l9XJp/Tr4/iVLXjDeQIgHU2/xgeH3cuLBYBv1ECR6V2P3kCKp1utXSGbyx1/KMQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13262},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"6f8790fe8c2c1bcbd2bb9d3b3da1f4b7df1aa5dc","scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rm -rf dist && tsc"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"repository":{"url":"https://registry.npmjs.org/semantically"},"_npmVersion":"11.6.2","description":"CQRS/Event Sourcing library for coding semantically","directories":{},"_nodeVersion":"24.11.1","dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_1.0.5_1775660443817_0.4167238755820011","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"semantically","version":"1.0.6","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@1.0.6","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"3993031b417eef688a6ea468bc2568cdfa74b5b5","tarball":"https://registry.npmjs.org/semantically/-/semantically-1.0.6.tgz","fileCount":14,"integrity":"sha512-8qJoDJEAAunFYY0iCKx7pUUgZBZJbm8vKIKDXy/HfZ9tAyOsPly+8F5AMixRP0PJjxxwNGBehnNPUAEPBKQBtw==","signatures":[{"sig":"MEUCIQC40LYPansUqMCf1MGFHD/JITdYAHtOXlk6i8LllmBxLAIgT8Qa4vKY77Wu351NJDac/yL2Ft9gYCBKhAsM5N8RUIw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13326},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"7ab9c19d6f0e35dd7a4c934defa8dd74d0d6041e","scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rm -rf dist && tsc"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"repository":{"url":"https://registry.npmjs.org/semantically"},"_npmVersion":"11.6.2","description":"CQRS/Event Sourcing library for coding semantically","directories":{},"_nodeVersion":"24.11.1","dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_1.0.6_1775660694047_0.2086399878270626","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"semantically","version":"1.0.7","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@1.0.7","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"eff97e58306f91324b8443582cc60c8dbb5b8f25","tarball":"https://registry.npmjs.org/semantically/-/semantically-1.0.7.tgz","fileCount":14,"integrity":"sha512-MP94ZLOuXjjuu4DqnvgwD7fws2s36ZTIa26meOSWqm5FcFVV4pasMNPWyrWlp30HiWffCamMzoSVz+02DoeaGQ==","signatures":[{"sig":"MEYCIQDp+FNLX1zQN9T6EuETyDIxMuodWrojUfNHck4j7JkHPgIhANgciN3XI+8Zx/8IB+Sh7ARMFwNXgXMyK2POaORxzhZu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13551},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"23c1dfd5bc570bdfc21a68405a3e843850bbe0f4","scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rm -rf dist && tsc"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"repository":{"url":"https://registry.npmjs.org/semantically"},"_npmVersion":"11.6.2","description":"CQRS/Event Sourcing library for coding semantically","directories":{},"_nodeVersion":"24.11.1","dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_1.0.7_1775661570055_0.653218266500839","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"semantically","version":"1.0.8","author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","_id":"semantically@1.0.8","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"dist":{"shasum":"80c36a8123b9b34dfcbeafc8b5726db84c82770a","tarball":"https://registry.npmjs.org/semantically/-/semantically-1.0.8.tgz","fileCount":14,"integrity":"sha512-+ZcsqIFhQJiYxHMMGp1HjmTrTj+Iu4nb61iIYSEcJCHYMDEbbd2tKnf66fFfuzjC4LGY3d7TohaQ2R4cYaUe2g==","signatures":[{"sig":"MEYCIQDLbYoZzXLIeRnXmRZiPggwqdLHNUr264Hiv+I764VGrgIhAKDBav0Mtx43OmpUTbMYckAhrlTWAY/vSZDrYzd17IND","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14196},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"938a2cd8462e35557d57661d9b5d83c291fb42d0","scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rm -rf dist && tsc"},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"repository":{"url":"https://registry.npmjs.org/semantically"},"_npmVersion":"11.6.2","description":"CQRS/Event Sourcing library for coding semantically","directories":{},"_nodeVersion":"24.11.1","dependencies":{"uuid":"^8.3.2","events":"^3.3.0","@types/uuid":"^8.3.4","@types/events":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","eslint":"^7.10.0","rimraf":"^3.0.2","ts-jest":"^27.1.4","prettier":"^2.6.2","jest-junit":"^13.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","eslint-plugin-jest":"^24.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"6.12.0","eslint-plugin-prettier":"3.1.4","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import-alias":"^1.2.0","eslint-import-resolver-alias":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/semantically_1.0.8_1775662370341_0.8931826311494777","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"semantically","version":"1.0.9","description":"CQRS/Event Sourcing library for coding semantically","main":"dist/index.js","repository":{"url":"https://registry.npmjs.org/semantically"},"author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","scripts":{"lint":"eslint \"**/src/**/*.{js,ts}\"","test":"jest","build":"rm -rf dist && tsc"},"devDependencies":{"@types/jest":"^27.4.1","eslint":"^7.10.0","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"6.12.0","eslint-import-resolver-alias":"^1.1.2","eslint-plugin-import":"^2.22.1","eslint-plugin-import-alias":"^1.2.0","eslint-plugin-jest":"^24.1.0","eslint-plugin-prettier":"3.1.4","eslint-plugin-promise":"^4.2.1","jest":"^27.5.1","jest-junit":"^13.1.0","prettier":"^2.6.2","rimraf":"^3.0.2","ts-jest":"^27.1.4","typescript":"^4.6.3"},"dependencies":{"@types/events":"^3.0.0","@types/uuid":"^8.3.4","events":"^3.3.0","uuid":"^8.3.2"},"gitHead":"aaba7a74f79e5c6e4c3dce0f8bc1c18a41cba433","types":"./dist/index.d.ts","_id":"semantically@1.0.9","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-Qns8OIIbDmVslGHnBGyPgbiy/Db4fLKTYWlYHfve9U7194RUWIGHzlv13ahjEEhz26FjsdSGsvDAdg4gYkiUew==","shasum":"409c2551d5a3485fcd9cfa74c315d76bc897c2f0","tarball":"https://registry.npmjs.org/semantically/-/semantically-1.0.9.tgz","fileCount":14,"unpackedSize":14339,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDHkstIMuTlc16wYMINzpDvGY740uLrwWwieR0NOqqZRQIhANfdEZb2f5HiC4N35ucWvS0OMNHp4qCpjssU6NorBRH/"}]},"_npmUser":{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"},"directories":{},"maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/semantically_1.0.9_1775663527664_0.561642374143595"},"_hasShrinkwrap":false}},"time":{"created":"2023-01-03T16:48:23.613Z","modified":"2026-04-08T15:52:07.926Z","0.0.0":"2023-01-03T16:48:23.756Z","1.0.0":"2023-01-03T17:02:51.138Z","1.0.1":"2023-01-03T17:04:02.923Z","0.0.1":"2023-01-03T17:06:15.408Z","0.0.2":"2023-08-25T15:32:45.987Z","0.0.3":"2026-01-17T06:41:51.753Z","0.0.4":"2026-01-18T03:25:18.342Z","0.0.5":"2026-01-19T03:41:59.282Z","0.0.6":"2026-01-19T05:12:59.623Z","0.0.7":"2026-01-19T05:19:35.325Z","0.0.8":"2026-01-19T13:49:02.478Z","0.0.9":"2026-01-19T14:05:40.023Z","0.0.10":"2026-01-23T19:55:46.863Z","0.1.0":"2026-01-26T17:24:22.802Z","1.0.2":"2026-04-08T14:44:15.887Z","1.0.3":"2026-04-08T14:51:22.451Z","1.0.4":"2026-04-08T14:58:05.918Z","1.0.5":"2026-04-08T15:00:43.947Z","1.0.6":"2026-04-08T15:04:54.177Z","1.0.7":"2026-04-08T15:19:30.216Z","1.0.8":"2026-04-08T15:32:50.489Z","1.0.9":"2026-04-08T15:52:07.803Z"},"author":{"name":"Matthew Krizanac","email":"matthewkrizanac@gmail.com"},"license":"MIT","repository":{"url":"https://registry.npmjs.org/semantically"},"description":"CQRS/Event Sourcing library for coding semantically","maintainers":[{"name":"dirtypaws","email":"matthewkrizanac@gmail.com"}],"readme":"# semantically ⚡️\r\n\r\nA minimal CQRS / Event Sourcing helper library for TypeScript that favors clear, semantic domain code.\r\n\r\n- **Package:** `semantically`\r\n- **Purpose:** Provide base classes and decorators for defining Aggregate roots, strongly-typed domain Events, Event Handlers, and a simple AggregateRepository pattern.\r\n\r\n---\r\n\r\n## Quick summary ✅\r\n\r\n- Define events that extend `AggregateEvent` and annotate them with `@Event(...)`.\r\n- Define handlers that extend `EventHandler<T>` and annotate with `@Handles(...)`.\r\n- Implement aggregates by extending `Aggregate<TId>` and use `applyEvent(...)` to register uncommitted domain events.\r\n- Use an `AggregateRepository` implementation which takes a list of handlers and calls them on save, then commits events on the aggregate.\r\n\r\n---\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install semantically\r\n# dev scripts\r\nnpm test\r\nnpm run build\r\n```\r\n\r\n---\r\n\r\n## Usage examples 🔧\r\n\r\n### Defining events\r\n\r\n```ts\r\nimport { AggregateEvent, Event } from 'semantically';\r\n\r\n@Event(UserCreatedEvent)\r\nclass UserCreatedEvent extends AggregateEvent {\r\n  constructor(public readonly id: string, public readonly email: string) {\r\n    super(1); // event version\r\n  }\r\n}\r\n```\r\n\r\nEvents get:\r\n- `eventId` (uuid),\r\n- `recordedAt` (Date),\r\n- `version` (number)\r\n\r\nThe `@Event` decorator sets an internal `__name` property used to match handlers to events.\r\n\r\n### Aggregate roots\r\n\r\n```ts\r\nimport { Aggregate } from 'semantically';\r\n\r\nclass UserAggregate extends Aggregate<string> {\r\n  private email!: string;\r\n\r\n  constructor(id: string, email: string) {\r\n    super(id);\r\n    this.registerEventHandlers();\r\n    this.applyEvent(new UserCreatedEvent(id, email));\r\n  }\r\n\r\n  override registerEventHandlers(): void {\r\n    this.on(UserCreatedEvent, (evt) => {\r\n      this.email = evt.email;\r\n    });\r\n  }\r\n\r\n  updateEmail(newEmail: string) {\r\n    if (this.email !== newEmail) {\r\n      this.applyEvent(new UserEmailUpdatedEvent(this.id, newEmail, this.version));\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nNotes:\r\n- `registerEventHandlers()` is where you wire up all event listeners using `this.on(...)`. Call it at the top of your constructor.\r\n- `applyEvent(event)` adds an *uncommitted* domain event to the aggregate.\r\n- The `aggregate` exposes `getEvents()` to read uncommitted events.\r\n- Call `commit(event)` (or let a repository call it) to emit the event and remove it from the uncommitted list.\r\n\r\n### Snapshot rehydration\r\n\r\nWhen loading an aggregate from a read store rather than replaying events, use the snapshot overload of `on`. Pass only a listener with a type parameter — the library automatically routes it to the `'snapshot'` event name:\r\n\r\n```ts\r\ntype UserSnapshot = {\r\n  id: string;\r\n  email: string;\r\n  version: number;\r\n};\r\n\r\noverride registerEventHandlers(): void {\r\n  this.on(UserCreatedEvent, (evt) => {\r\n    this.email = evt.email;\r\n  });\r\n\r\n  this.on<UserSnapshot>((snapshot) => {\r\n    this.email = snapshot.email;\r\n    this.version = snapshot.version;\r\n  });\r\n}\r\n```\r\n\r\nThe type parameter shapes the listener argument — no extra base class or decorator needed. This overload is visually distinct from regular event handlers, making it clear that snapshot loading is a special case.\r\n\r\n### Event handlers and decorators\r\n\r\n```ts\r\nimport { Handles, EventHandler } from 'semantically';\r\n\r\n@Handles(UserCreatedEvent)\r\nclass SendWelcomeEmail extends EventHandler<UserCreatedEvent> {\r\n  async handle(event: UserCreatedEvent): Promise<void> {\r\n    // send email or persist projection etc.\r\n  }\r\n}\r\n```\r\n\r\nThe `@Handles` decorator sets an internal `__handles` property so the repository can route events to matching handlers.\r\n\r\n### AggregateRepository\r\n\r\nImplement a repository by extending `AggregateRepository<TId, T>` and providing a `get(id)` method.\r\n\r\n```ts\r\nclass UserRepository extends AggregateRepository<string, UserAggregate> {\r\n  async get(id: string): Promise<UserAggregate | null> {\r\n    // load persisted state and return rehydrated aggregate or null\r\n  }\r\n}\r\n\r\n// instantiate with handlers\r\nconst repo = new UserRepository([new SendWelcomeEmail()]);\r\n\r\n// when saving an aggregate the repo runs handlers and commits events\r\nawait repo.save(userAggregate);\r\n```\r\n\r\n---\r\n\r\n## API Reference\r\n\r\nExports (from `index.ts`):\r\n\r\n- `Aggregate<TId>` - base class for aggregates\r\n- `AggregateEvent` - base class for domain events\r\n- `EventHandler<TEvent>` - base class for handlers\r\n- `AggregateRepository<TId, T extends Aggregate<TId>>` - repository base class\r\n- `@Event(...)` decorator - annotate event classes\r\n- `@Handles(...)` decorator - annotate handler classes\r\n\r\n---\r\n\r\n## Tests & Development 🧪\r\n\r\n- Run tests: `npm test` (uses `jest`)\r\n- Build: `npm run build` (emits `dist/`)\r\n\r\nThe repo contains comprehensive unit tests that demonstrate intended usage patterns (see `src/*.spec.ts`).\r\n\r\n---\r\n\r\n## Notes & Implementation details ⚠️\r\n\r\n- This library relies on TypeScript decorators; ensure `tsconfig.json` enables `experimentalDecorators` and `emitDecoratorMetadata`.\r\n- `AggregateEvent` assigns a GUID and recorded timestamp for each event.\r\n- The event emitter is fully encapsulated — consumers never interact with it directly. Use `this.on(...)` in `registerEventHandlers()` to subscribe, and `applyEvent(...)` / `commit(...)` to publish.\r\n- The `AggregateRepository.save` implementation iterates uncommitted events and calls `handler.handle(...)` when a handler's `__handles` matches the event `__name` (set by `@Event`).\r\n\r\n---\r\n\r\n## Contributing & License\r\n\r\n- MIT © Matthew Krizanac\r\n- Contributions welcome; follow existing patterns in tests for examples.\r\n\r\n---\r\n","readmeFilename":"README.md"}