{"_id":"@dvsa/business-events","_rev":"6-8edc12eb2b55c89906e95efddefced55","name":"@dvsa/business-events","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.1":{"name":"@dvsa/business-events","version":"1.0.1","keywords":["typescript","nodejs"],"author":{"name":"DVSA"},"license":"ISC","_id":"@dvsa/business-events@1.0.1","maintainers":[{"name":"johnneill","email":"david.neill@kainos.com"},{"name":"michalszy","email":"szyszka.michal@gmail.com"},{"name":"joshua.license.dvsa","email":"joshua.license@dvsa.gov.uk"},{"name":"foysalm","email":"mohammedf@kainos.com"},{"name":"baljinderhayre","email":"baljinder.hayre@dvsa.gov.uk"},{"name":"gittinsr","email":"rgittins.dvsa@icloud.com"},{"name":"r.stepnowski","email":"stepnowski.r@gmail.com"},{"name":"tombillington","email":"contact@thomasbillington.co.uk"},{"name":"rfaulds","email":"ross.faulds@gmail.com"},{"name":"cullifordm","email":"matthew.culliford@gmail.com"},{"name":"matthew2564","email":"mbell.dvsa@icloud.com"},{"name":"edwardwilson","email":"edward.wilson@me.com"},{"name":"shaun.hare","email":"shaun.hare@dvsa.gov.uk"},{"name":"janmrozowicz","email":"jan.mrozowicz+npm@gmail.com"},{"name":"wraggj_dvsa","email":"james.wragg@dvsa.gov.uk"},{"name":"david.aaron","email":"david.aaron@dvsa.gov.uk"},{"name":"tomcrawleyy","email":"thomas.crawley@dvsa.gov.uk"},{"name":"setterfielda","email":"asetterfield.dvsa@icloud.com"},{"name":"annadodson","email":"anna.dodson@dvsa.gov.uk"}],"dist":{"shasum":"27d3de304e936cc98c7cb50a3073f15e7d1f9b2f","tarball":"https://registry.npmjs.org/@dvsa/business-events/-/business-events-1.0.1.tgz","fileCount":15,"integrity":"sha512-IAZJUU2ubK2EL4XpKgClvCIsEkkaUqIALPCJsJ174sTCy71DP7EjmvqQWyY3iWVRHw4wwTJPY2JcWeUkAsQU2g==","signatures":[{"sig":"MEUCIEG9M0S/grTMOYLDBaAG7vLAdnQYwWryftV4EDbcljolAiEAowtwdSDKlAzoDBuly0Z5xze92w6RHDrIkIzNs4p9FtU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16775},"types":"./index.d.ts","gitHead":"52421be827859703ba5f4b5a0c989fc051dd2f7c","scripts":{"lint":"biome check src","test":"jest --runInBand","build":"npm run clean && tsc","clean":"rimraf coverage dist","format":"prettier . --write","prepare":"husky","lint:fix":"npm run lint -- --write","gitSecrets":"git secrets --scan . && git log -p -- . | scanrepo","postpublish":"git clean -fd","build:package":"npm run build","test:coverage":"jest --coverage","prepublishOnly":"npm run build:package && cp -r ./dist/* . && rm -rf ./dist"},"_npmUser":{"name":"matthew2564","email":"mbell.dvsa@icloud.com"},"_npmVersion":"10.1.0","description":"A package to help manage business events in a domain context.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"aws-xray-sdk":"^3.9.0","@aws-sdk/client-sns":"^3.620.0","@aws-sdk/credential-providers":"^3.620.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^9.0.2","rimraf":"^6.0.1","ts-jest":"^29.1.4","ts-node":"^10.9.2","prettier":"^3.3.0","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.14.2","lint-staged":"^15.2.0","@biomejs/biome":"1.8.3","@types/aws-lambda":"^8.10.145","@dvsa/biome-config":"0.1.0","aws-sdk-client-mock":"^4.0.1","jest-plugin-context":"^2.9.0","aws-sdk-client-mock-jest":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/business-events_1.0.1_1731512031553_0.4780485155794485","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@dvsa/business-events","version":"1.1.0","keywords":["typescript","nodejs"],"author":{"name":"DVSA"},"license":"ISC","_id":"@dvsa/business-events@1.1.0","maintainers":[{"name":"r.stepnowski","email":"stepnowski.r@gmail.com"},{"name":"tombillington","email":"contact@thomasbillington.co.uk"},{"name":"rfaulds","email":"ross.faulds@gmail.com"},{"name":"cullifordm","email":"matthew.culliford@gmail.com"},{"name":"matthew2564","email":"mbell.dvsa@icloud.com"},{"name":"edwardwilson","email":"edward.wilson@me.com"},{"name":"shaun.hare","email":"shaun.hare@dvsa.gov.uk"},{"name":"janmrozowicz","email":"jan.mrozowicz+npm@gmail.com"},{"name":"wraggj_dvsa","email":"james.wragg@dvsa.gov.uk"},{"name":"david.aaron","email":"david.aaron@dvsa.gov.uk"},{"name":"tomcrawleyy","email":"thomas.crawley@dvsa.gov.uk"},{"name":"setterfielda","email":"asetterfield.dvsa@icloud.com"},{"name":"annadodson","email":"anna.dodson@dvsa.gov.uk"},{"name":"michalszy","email":"szyszka.michal@gmail.com"},{"name":"johnneill","email":"david.neill@kainos.com"},{"name":"joshua.license.dvsa","email":"joshua.license@dvsa.gov.uk"},{"name":"foysalm","email":"mohammedf@kainos.com"},{"name":"gittinsr","email":"rgittins.dvsa@icloud.com"},{"name":"baljinderhayre","email":"baljinder.hayre@dvsa.gov.uk"}],"dist":{"shasum":"bf45250e2f12c276aa11e4782d3c6c601bf1fb01","tarball":"https://registry.npmjs.org/@dvsa/business-events/-/business-events-1.1.0.tgz","fileCount":15,"integrity":"sha512-TsU/NoDnHlvQOEb67+pq8j6ynO3JJGeo9Qfwmu2+c24QnSDfqq449X2ANUeSkJ9SLDWYaQi2O6dTl5Bej+LcuA==","signatures":[{"sig":"MEUCIDann7iLXudOVef5LEJ4jkkXnhiHzPnCnRnUB73YhB57AiEA1h83QXGyuKCwSMF1bsrpgtoR9HYD61WUTA84j07Eih0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16691},"types":"./index.d.ts","gitHead":"a778f242b51864d80516b6032f7a069156e97f8b","scripts":{"lint":"biome check src","test":"jest --runInBand","build":"npm run clean && tsc","clean":"rimraf coverage dist","format":"prettier . --write","prepare":"husky","lint:fix":"npm run lint -- --write","gitSecrets":"git secrets --scan . && git log -p -- . | scanrepo","postpublish":"git clean -fd","build:package":"npm run build","test:coverage":"jest --coverage","prepublishOnly":"npm run build:package && cp -r ./dist/* . && rm -rf ./dist"},"_npmUser":{"name":"matthew2564","email":"mbell.dvsa@icloud.com"},"_npmVersion":"10.1.0","description":"A package to help manage business events in a domain context.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"aws-xray-sdk":"^3.10.2","@aws-sdk/client-sns":"^3.699.0","@aws-sdk/credential-providers":"^3.699.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^9.0.2","rimraf":"^6.0.1","ts-jest":"^29.1.4","ts-node":"^10.9.2","prettier":"^3.3.0","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.14.2","lint-staged":"^15.2.0","@biomejs/biome":"1.8.3","@types/aws-lambda":"^8.10.145","@dvsa/biome-config":"0.1.0","aws-sdk-client-mock":"^4.0.1","jest-plugin-context":"^2.9.0","aws-sdk-client-mock-jest":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/business-events_1.1.0_1732801485032_0.2039669532815358","host":"s3://npm-registry-packages"}}},"time":{"created":"2024-11-13T15:33:51.386Z","modified":"2026-06-10T10:55:30.098Z","1.0.1":"2024-11-13T15:33:51.755Z","1.1.0":"2024-11-28T13:44:45.218Z"},"author":{"name":"DVSA"},"license":"ISC","keywords":["typescript","nodejs"],"description":"A package to help manage business events in a domain context.","maintainers":[{"email":"stepnowski.r@gmail.com","name":"r.stepnowski"},{"email":"ross.faulds@gmail.com","name":"rfaulds"},{"email":"matthew.culliford@gmail.com","name":"cullifordm"},{"email":"mbell.dvsa@icloud.com","name":"matthew2564"},{"email":"edward.wilson@me.com","name":"edwardwilson"},{"email":"shaun.hare@dvsa.gov.uk","name":"shaun.hare"},{"email":"jan.mrozowicz+npm@gmail.com","name":"janmrozowicz"},{"email":"james.wragg@dvsa.gov.uk","name":"wraggj_dvsa"},{"email":"david.aaron@dvsa.gov.uk","name":"david.aaron"},{"email":"thomas.crawley@dvsa.gov.uk","name":"tomcrawleyy"},{"email":"asetterfield.dvsa@icloud.com","name":"setterfielda"},{"email":"anna.dodson@dvsa.gov.uk","name":"annadodson"},{"email":"szyszka.michal@gmail.com","name":"michalszy"},{"email":"david.neill@kainos.com","name":"johnneill"},{"email":"mohammedf@kainos.com","name":"foysalm"},{"email":"rgittins.dvsa@icloud.com","name":"gittinsr"},{"email":"baljinder.hayre@dvsa.gov.uk","name":"baljinderhayre"},{"email":"rhys.lewis@dvsa.gov.uk","name":"rlcorp"},{"email":"howard.rees@dvsa.gov.uk","name":"dhcrees"}],"readme":"# @dvsa/business-events\n\nHelper library for publishing business events.\n\n## Pre-requisites\n\n- Node.js (Please see `.nvmrc` in the root of the repo for a specific version)\n- `npm` (If using [n](https://github.com/tj/n) or [nvm](https://github.com/nvm-sh/nvm), this will be automatically managed)\n- Security\n  - [Git secrets](https://github.com/awslabs/git-secrets)\n  - [ScanRepo](https://github.com/UKHomeOffice/repo-security-scanner)\n    - Unzip `repo-security-scanner_<version>_Darwin_<architecture>.tar.gz` and rename the executable inside the folder\n      to `scanrepo` - Add executable to path (using `echo $PATH` to find your path)\n\n## Getting started\n\n### Run the following command after cloning the project\n\n1. `npm install` (or `npm i`)\n\n## Using this package\n\nExtend the `EventFactory` class as demonstrated in the `TestSystemEventFactory` class. This pattern will allow the encapsulation of all business events for a particular domain e.g.\n\n```typescript\nexport class EnquirySystemEventFactory extends EventFactory {\n  constructor(correlationId: string) {\n    super(correlationId);\n  }\n\n  public feedJobInitiated = (feedType: string) =>\n    super.create('ENQ_SYSTEM_DOMAIN_EVENTS', 'ENQ_UPDATE_NOP_INITIATED', feedType);\n}\n```\n\nWith a domain-specific event factory, generate a business event and call the `BusinessEventPublisher.publish` function.\n\n```typescript\nconst feedJobInitiatedEvent =\n  EnquirySystemEventFactory.fromSqsRecord(sqsRecord).feedJobInitiated('evl');\nBusinessEventPublisher.publish(feedJobInitiatedEvent);\n```\n\n### Recommendations\n\nPublishing business events should not impact the operation of a system. Failures should be logged and monitored, however the system should not respond to any errors in a way that impacts the expected behaviour of the system.\n","readmeFilename":"README.md"}