diff --git a/docs/architecture/c4/notifhir/printer/printanalyser/index.md b/docs/architecture/c4/notifhir/printer/printanalyser/index.md index 9000514d..0e3b893b 100644 --- a/docs/architecture/c4/notifhir/printer/printanalyser/index.md +++ b/docs/architecture/c4/notifhir/printer/printanalyser/index.md @@ -9,7 +9,7 @@ last_modified_date: 2025-12-22 owner: Ross Buggins author: Tom D'Roza diagrams: [c4code-printer-analyser] -events-raised: [print-letter-analysed] -events-consumed: [print-letter-safe] +events-raised: [pdf-analysed] +events-consumed: [file-safe] c4type: code --- diff --git a/docs/architecture/c4/notifhir/printer/printscanner/index.md b/docs/architecture/c4/notifhir/printer/printscanner/index.md index 733cf3da..0f6d9945 100644 --- a/docs/architecture/c4/notifhir/printer/printscanner/index.md +++ b/docs/architecture/c4/notifhir/printer/printscanner/index.md @@ -5,11 +5,11 @@ parent: Print Supplier Services nav_order: 1 has_children: false is_not_draft: false -last_modified_date: 2025-12-22 +last_modified_date: 2026-01-06 owner: Ross Buggins author: Tom D'Roza -diagrams: [c4code-printer-scanner] -events-raised: [print-letter-safe] +diagrams: [c4code-file-scanner] +events-raised: [file-safe, file-quarantined] events-consumed: [queue-item-dequeued] c4type: code --- diff --git a/docs/architecture/c4/notifhir/printer/printsender/index.md b/docs/architecture/c4/notifhir/printer/printsender/index.md index cd388e40..74c4b179 100644 --- a/docs/architecture/c4/notifhir/printer/printsender/index.md +++ b/docs/architecture/c4/notifhir/printer/printsender/index.md @@ -10,6 +10,6 @@ owner: Ross Buggins author: Tom D'Roza diagrams: [c4code-printer-sender] events-raised: [external-supplier-api-letter-prepared] -events-consumed: [print-letter-analysed] +events-consumed: [pdf-analysed] c4type: code --- diff --git a/docs/collections/_diagrams/c4code-eventbus-eventbridge.md b/docs/collections/_diagrams/c4code-eventbus-eventbridge.md deleted file mode 100644 index e67d28f1..00000000 --- a/docs/collections/_diagrams/c4code-eventbus-eventbridge.md +++ /dev/null @@ -1,38 +0,0 @@ ---- - -title: c4code-eventbus-eventbridge -description: Event Bridge ---- - - -```mermaid -architecture-beta - - - service ms1(logos:aws-lambda)[Digital Letter Microservice 1] - service ms2(logos:aws-lambda)[Digital Letter Microservice 2] - service msn(logos:aws-lambda)[Digital Letter Microservice n] - - group eb(cloud)[Digital Letter Event Bridge] - service apigw(logos:aws-api-gateway)[Digital Letter Event Bridge] in eb - service eventBridge(logos:aws-eventbridge)[Digital Letter Event Bridge] in eb - - service event1(aws:res-amazon-eventbridge-event)[Event 1] - service event2(aws:res-amazon-eventbridge-event)[Event 2] - service eventn(aws:res-amazon-eventbridge-event)[Event n] - - junction jn1 - junction jn2 - - ms1:B -- T:jn1 - ms2:R -- L:jn1 - msn:T -- B:jn1 - jn1:R --> L:apigw - - apigw:R --> L:eventBridge - eventBridge:R -- L:jn2 - jn2:T --> B:event1 - jn2:R --> L:event2 - jn2:B --> T:eventn - -``` diff --git a/docs/collections/_diagrams/c4code-eventbus-timer.md b/docs/collections/_diagrams/c4code-eventbus-timer.md deleted file mode 100644 index a3cf229b..00000000 --- a/docs/collections/_diagrams/c4code-eventbus-timer.md +++ /dev/null @@ -1,19 +0,0 @@ ---- - -title: c4code-eventbus-timer -description: Event Bus Timer ---- - - -```mermaid -architecture-beta - service eventBridge(logos:aws-eventbridge)[Digital Letter Event Bridge] - group timer(cloud)[Event Bridge Scheduling] - service eventBridgeSchedule(aws:eventbridge-scheduler)[Timer Triggered] in timer - service timerExpired(aws:res-amazon-eventbridge-event)[TimerExpired] - - - eventBridge:R --> L:eventBridgeSchedule - eventBridgeSchedule:R --> L:timerExpired - -``` diff --git a/docs/collections/_diagrams/c4code-file-scanner.md b/docs/collections/_diagrams/c4code-file-scanner.md new file mode 100644 index 00000000..29a3e765 --- /dev/null +++ b/docs/collections/_diagrams/c4code-file-scanner.md @@ -0,0 +1,41 @@ +--- + +title: c4code-file-scanner +--- + + +```mermaid +architecture-beta + group fileScanner(cloud)[FileScanner] + service itemDequeued(aws:res-amazon-eventbridge-event)[ItemDequeued Event] + service scannerQueue(logos:aws-sqs)[Scanner Queue] in fileScanner + service scannerLambda(logos:aws-lambda)[File Scanner] in fileScanner + service moveLambda(logos:aws-lambda)[Move Scanned Files] in fileScanner + service docRefBucket(logos:aws-s3)[DocumentReference] in fileScanner + service unscannedBucket(logos:aws-s3)[UnscannedFiles] in fileScanner + service quarantineBucket(logos:aws-s3)[QuarantinedFiles] in fileScanner + service safeBucket(logos:aws-s3)[SafeFiles] in fileScanner + service guardDuty(aws:arch-amazon-guardduty)[GuardDuty] in fileScanner + service scanComplete(aws:res-amazon-eventbridge-event)[ScanResult Event] + service safeFile(aws:res-amazon-eventbridge-event)[FileSafe Event] + service quarantinedFile(aws:res-amazon-eventbridge-event)[FileQuarantined Event] + junction j1 in fileScanner + junction j2 in fileScanner + junction j3 in fileScanner + + itemDequeued:R --> L:scannerQueue + docRefBucket:B --> T:scannerLambda + scannerQueue:R --> L:scannerLambda + scannerLambda:B --> T:unscannedBucket + unscannedBucket:R --> L:guardDuty + guardDuty:R --> L:scanComplete + scanComplete:R --> L:moveLambda + moveLambda:R -- L:j1 + j1:T -- B:j2 + j1:B -- T:j3 + j2:R --> L:quarantineBucket + j3:R --> L:safeBucket + quarantineBucket:R --> L:quarantinedFile + safeBucket:R --> L:safeFile + +``` diff --git a/docs/collections/_diagrams/c4code-mesh-timer.md b/docs/collections/_diagrams/c4code-mesh-timer.md deleted file mode 100644 index 9f34e483..00000000 --- a/docs/collections/_diagrams/c4code-mesh-timer.md +++ /dev/null @@ -1,59 +0,0 @@ ---- - -title: c4code-mesh-timer - ---- - -```mermaid -architecture-beta - service timerexpired(aws:res-amazon-eventbridge-event)[TimerExpired] - - - group handler(cloud)[External Event Handler] - service sqs(logos:aws-sqs)[Callback Queue] in handler - service saveevent(logos:aws-lambda)[Timer Expired Handler] in handler - - group eventsource(cloud)[Event Sourcing] - service eventlog(logos:aws-dynamodb)[EventLog] in eventsource - service streamhandler(logos:aws-lambda)[Stream Handler] in eventsource - service eventsourcestream(aws:res-amazon-dynamodb-stream)[Changes] in eventsource - service sqsstream(logos:aws-sqs)[Events] in eventsource - service sns(logos:aws-sns)[Event Fan] in eventsource - - group eventraising(cloud)[Event Raising] - service sqschanges(logos:aws-sqs)[Changes Queue] in eventraising - service raise(logos:aws-lambda)[Event Raiser] in eventraising - - junction j1 - junction j2 - - group lasttriggeredprojection(cloud)[Last Triggered Time Projection] - service sqschangeslasttriggered(logos:aws-sqs)[Last Triggered] in lasttriggeredprojection - service lasttriggerlambda(logos:aws-lambda)[Last Triggered] in lasttriggeredprojection - service lasttriggeredprojectionstore(logos:aws-dynamodb)[Last Triggered Store] in lasttriggeredprojection - - - service meshtimerexpired(aws:res-amazon-eventbridge-event)[ScheuleRetrieveMeshFileListTimerExpired] - - timerexpired:R --> L:sqs - - sqs:R --> L:saveevent - - saveevent:R --> L:eventlog - - eventlog:B --> T:eventsourcestream - eventsourcestream:R -->L:streamhandler - streamhandler:R --> L:sqsstream - sqsstream:R --> L:sns - sns:B -- T:j1 - - j1:B -- T:j2 - j2:R --> L:sqschanges - sqschanges:R --> L:raise - raise:R --> L:meshtimerexpired - - - j1:R --> L:sqschangeslasttriggered - sqschangeslasttriggered:R --> L:lasttriggerlambda - lasttriggerlambda:R --> L:lasttriggeredprojectionstore -``` diff --git a/docs/collections/_diagrams/c4code-printer-analyser.md b/docs/collections/_diagrams/c4code-printer-analyser.md index ef468cc0..3980f6cf 100644 --- a/docs/collections/_diagrams/c4code-printer-analyser.md +++ b/docs/collections/_diagrams/c4code-printer-analyser.md @@ -6,17 +6,17 @@ title: c4code-printer-analyser ```mermaid architecture-beta - service letterSafe(aws:res-amazon-eventbridge-event)[PrintLetterSafe Event] + service fileSafe(aws:res-amazon-eventbridge-event)[FileSafe Event] service analyseQueue(logos:aws-sqs)[Analyse Queue] in printAnalyser service analyseLambda(logos:aws-lambda)[PrintAnalyser] in printAnalyser service safeBucket(logos:aws-s3)[SafeLetters] in printAnalyser - service letterAnalysed(aws:res-amazon-eventbridge-event)[PrintLetterAnalysed Event] + service pdfAnalysed(aws:res-amazon-eventbridge-event)[PDFAnalysed Event] group printAnalyser(cloud)[PrintAnalyser] - letterSafe:R --> L:analyseQueue + fileSafe:R --> L:analyseQueue analyseQueue:R --> L:analyseLambda safeBucket:B --> T:analyseLambda - analyseLambda:R --> L:letterAnalysed + analyseLambda:R --> L:pdfAnalysed ``` diff --git a/docs/collections/_diagrams/c4code-printer-scanner.md b/docs/collections/_diagrams/c4code-printer-scanner.md deleted file mode 100644 index 38ed9126..00000000 --- a/docs/collections/_diagrams/c4code-printer-scanner.md +++ /dev/null @@ -1,42 +0,0 @@ ---- - -title: c4code-printer-scanner ---- - - -```mermaid -architecture-beta - group printScanner(cloud)[PrintScanner] - service itemDequeued(aws:res-amazon-eventbridge-event)[ItemDequeued Event] - service scannerQueue(logos:aws-sqs)[Scanner Queue] in printScanner - service scannerLambda(logos:aws-lambda)[PrintScanner] in printScanner - service moveLambda(logos:aws-lambda)[MoveLetters] in printScanner - service docRefBucket(logos:aws-s3)[DocumentReference] in printScanner - service unscannedBucket(logos:aws-s3)[UnscannedLetters] in printScanner - service quarantineBucket(logos:aws-s3)[QuarantinedLetters] in printScanner - service safeBucket(logos:aws-s3)[SafeLetters] in printScanner - service guardDuty(aws:arch-amazon-guardduty)[GuardDuty] in printScanner - service scanComplete(aws:res-amazon-eventbridge-event)[ScanResult Event] - service safeLetter(aws:res-amazon-eventbridge-event)[PrintLetterSafe Event] - service quarantinedLetter(aws:res-amazon-eventbridge-event)[PrintLetterQuarantined Event] - junction j1 in printScanner - junction j2 in printScanner - junction j3 in printScanner - - itemDequeued:R --> L:scannerQueue - docRefBucket:B --> T:scannerLambda - scannerQueue:R --> L:scannerLambda - scannerLambda:B --> T:unscannedBucket - unscannedBucket:R --> L:guardDuty - guardDuty:R --> L:scanComplete - scanComplete:R --> L:moveLambda - moveLambda:R -- L:j1 - j1:T -- B:j2 - j1:B -- T:j3 - j2:R --> L:quarantineBucket - quarantineBucket:R --> L:quarantinedLetter - j3:R --> L:safeBucket - safeBucket:R --> L:safeLetter - - -``` diff --git a/docs/collections/_diagrams/c4code-printer-sender.md b/docs/collections/_diagrams/c4code-printer-sender.md index ac6ecad6..ed2b4d2e 100644 --- a/docs/collections/_diagrams/c4code-printer-sender.md +++ b/docs/collections/_diagrams/c4code-printer-sender.md @@ -7,13 +7,13 @@ title: c4code-printer-sender ```mermaid architecture-beta - service letterAnalysed(aws:res-amazon-eventbridge-event)[PrintLetterAnalysed Event] + service pdfAnalysed(aws:res-amazon-eventbridge-event)[PDFAnalysed Event] service printQueue(logos:aws-sqs)[PrintSender Queue] in printSender service printLambda(logos:aws-lambda)[PrintSender] in printSender service letterPrepared(aws:res-amazon-eventbridge-event)[letterPREPARED Event] group printSender(cloud)[PrintSender] - letterAnalysed:R --> L:printQueue + pdfAnalysed:R --> L:printQueue printQueue:R --> L:printLambda printLambda:R --> L:letterPrepared diff --git a/docs/collections/_diagrams/c4code-printer-sendtoqueue.md b/docs/collections/_diagrams/c4code-queue-adder.md similarity index 63% rename from docs/collections/_diagrams/c4code-printer-sendtoqueue.md rename to docs/collections/_diagrams/c4code-queue-adder.md index 9592fc4c..d5f3f79e 100644 --- a/docs/collections/_diagrams/c4code-printer-sendtoqueue.md +++ b/docs/collections/_diagrams/c4code-queue-adder.md @@ -10,12 +10,12 @@ title: c4code-printer-sendtoqueue service clientConfig(aws:res-aws-systems-manager-parameter-store)[Client Configuration] in queueAdder service createLambda(logos:aws-lambda)[CreateTTL] in queueAdder service queue(logos:aws-sqs)[SQS] in queueAdder - service storedEvent(aws:res-amazon-eventbridge-event)[MESHInboxMessageDownloaded event] - service scheduledEvent(aws:res-amazon-eventbridge-event) [ItemEnqueued event] + service downloadedEvent(aws:res-amazon-eventbridge-event)[MESHInboxMessageDownloaded event] + service enqueuedEvent(aws:res-amazon-eventbridge-event) [ItemEnqueued event] - storedEvent:R --> L:queue + downloadedEvent:R --> L:queue queue:R --> L:createLambda clientConfig:B --> T:createLambda - createLambda:R --> L:db - createLambda:B --> L:scheduledEvent + createLambda:R --> L:enqueuedEvent + createLambda:B --> T:db ``` diff --git a/docs/collections/_diagrams/c4code-printer-removefromqueue.md b/docs/collections/_diagrams/c4code-queue-manager.md similarity index 100% rename from docs/collections/_diagrams/c4code-printer-removefromqueue.md rename to docs/collections/_diagrams/c4code-queue-manager.md diff --git a/docs/collections/_events/external-supplier-api-letter-printed.md b/docs/collections/_events/external-supplier-api-letter-printed.md deleted file mode 100644 index 42bb90e2..00000000 --- a/docs/collections/_events/external-supplier-api-letter-printed.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: external-supplier-api-letter-printed -type: uk.nhs.notify.supplierapi.letter.printed.v1 -nice_name: EXTERNAL SupplierAPIPrintStatusUpdated -service: Shared Event Bus -schema_envelope: https://notify.nhs.uk/cloudevents/schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.supplierapi.letter.printed.v1.schema.json -schema_data: https://notify.nhs.uk/cloudevents/schemas/digital-letters/2025-10-draft/data/digital-letter-base-data.schema.json ---- - -This is an event. diff --git a/docs/collections/_events/file-quarantined.md b/docs/collections/_events/file-quarantined.md new file mode 100644 index 00000000..b3723f92 --- /dev/null +++ b/docs/collections/_events/file-quarantined.md @@ -0,0 +1,10 @@ +--- +title: file-quarantined +type: uk.nhs.notify.digital.letters.print.file.quarantined.v1 +nice_name: FileQuarantined +service: Print Supplier Services +schema_envelope: https://notify.nhs.uk/cloudevents/schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.file.quarantined.v1.schema.json +schema_data: https://notify.nhs.uk/cloudevents/schemas/digital-letters/2025-10-draft/data/digital-letters-print-file-quarantined-data.schema.json +--- + +This event is published when a file has been virus scanned and found to contain potentially harmful content, resulting in it being quarantined. diff --git a/docs/collections/_events/file-safe.md b/docs/collections/_events/file-safe.md new file mode 100644 index 00000000..a02c64e3 --- /dev/null +++ b/docs/collections/_events/file-safe.md @@ -0,0 +1,10 @@ +--- +title: file-safe +type: uk.nhs.notify.digital.letters.print.file.safe.v1 +nice_name: FileSafe +service: Print Supplier Services +schema_envelope: https://notify.nhs.uk/cloudevents/schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.file.safe.v1.schema.json +schema_data: https://notify.nhs.uk/cloudevents/schemas/digital-letters/2025-10-draft/data/digital-letters-print-file-safe-data.schema.json +--- + +This event is published when a file has been virus scanned and found to be free of harmful content, allowing it to be safely sent to print. diff --git a/docs/collections/_events/pdf-analysed.md b/docs/collections/_events/pdf-analysed.md new file mode 100644 index 00000000..f563d89e --- /dev/null +++ b/docs/collections/_events/pdf-analysed.md @@ -0,0 +1,10 @@ +--- +title: pdf-analysed +type: uk.nhs.notify.digital.letters.print.pdf.analysed.v1 +nice_name: PrintLetterAnalysed +service: Print Supplier Services +schema_envelope: https://notify.nhs.uk/cloudevents/schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.pdf.analysed.v1.schema.json +schema_data: https://notify.nhs.uk/cloudevents/schemas/digital-letters/2025-10-draft/data/digital-letters-print-pdf-analysed-data.schema.json +--- + +This event is published when a PDF letter has been analysed in preparation for sending to print. In addition to the standard metadata fields relating to the message request, the event payload also contains a count of the number of pages in the letter and a SHA256 hash of the file. This information can be used by the Print Supplier API to verify the integrity of the letter before it is printed. diff --git a/docs/collections/_events/print-printed.md b/docs/collections/_events/print-printed.md deleted file mode 100644 index e2699896..00000000 --- a/docs/collections/_events/print-printed.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: print-printed -type: uk.nhs.notify.digital.letters.print.printed.v1 -nice_name: LetterPrinted -service: Print Supplier Services -schema_envelope: https://notify.nhs.uk/cloudevents/schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.printed.v1.schema.json -schema_data: https://notify.nhs.uk/cloudevents/schemas/digital-letters/2025-10-draft/data/digital-letter-base-data.schema.json ---- - -This is an event. diff --git a/docs/collections/_events/viewer-digital-letter-read.md b/docs/collections/_events/viewer-digital-letter-read.md deleted file mode 100644 index 64caeaba..00000000 --- a/docs/collections/_events/viewer-digital-letter-read.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: viewer-digital-letter-read -type: uk.nhs.notify.digital.letters.viewer.digital.letter.read.v1 -nice_name: DigitalLetterRead -service: Viewer Services -schema_envelope: https://notify.nhs.uk/cloudevents/schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.viewer.digital.letter.read.v1.schema.json -schema_data: https://notify.nhs.uk/cloudevents/schemas/digital-letters/2025-10-draft/data/digital-letter-base-data.schema.json ---- - -This is an event. diff --git a/src/cloudevents/domains/digital-letters/2025-10-draft/data/digital-letters-print-file-quarantined-data.schema.yaml b/src/cloudevents/domains/digital-letters/2025-10-draft/data/digital-letters-print-file-quarantined-data.schema.yaml new file mode 100644 index 00000000..ff69f70e --- /dev/null +++ b/src/cloudevents/domains/digital-letters/2025-10-draft/data/digital-letters-print-file-quarantined-data.schema.yaml @@ -0,0 +1,16 @@ +$schema: https://json-schema.org/draft/2020-12/schema +title: FileQuarantined Data +description: Data payload of the FileQuarantined event +type: object +additionalProperties: false +properties: + messageReference: + $ref: ../defs/requests.schema.yaml#/properties/messageReference + senderId: + $ref: ../defs/requests.schema.yaml#/properties/senderId + letterUri: + $ref: ../defs/print.schema.yaml#/properties/letterUri +required: + - messageReference + - senderId + - letterUri diff --git a/src/cloudevents/domains/digital-letters/2025-10-draft/data/digital-letters-print-file-safe-data.schema.yaml b/src/cloudevents/domains/digital-letters/2025-10-draft/data/digital-letters-print-file-safe-data.schema.yaml new file mode 100644 index 00000000..23cc9689 --- /dev/null +++ b/src/cloudevents/domains/digital-letters/2025-10-draft/data/digital-letters-print-file-safe-data.schema.yaml @@ -0,0 +1,16 @@ +$schema: https://json-schema.org/draft/2020-12/schema +title: FileSafe Data +description: Data payload of the FileSafe event +type: object +additionalProperties: false +properties: + messageReference: + $ref: ../defs/requests.schema.yaml#/properties/messageReference + senderId: + $ref: ../defs/requests.schema.yaml#/properties/senderId + letterUri: + $ref: ../defs/print.schema.yaml#/properties/letterUri +required: + - messageReference + - senderId + - letterUri diff --git a/src/cloudevents/domains/digital-letters/2025-10-draft/data/digital-letters-print-pdf-analysed-data.schema.yaml b/src/cloudevents/domains/digital-letters/2025-10-draft/data/digital-letters-print-pdf-analysed-data.schema.yaml new file mode 100644 index 00000000..f25dc485 --- /dev/null +++ b/src/cloudevents/domains/digital-letters/2025-10-draft/data/digital-letters-print-pdf-analysed-data.schema.yaml @@ -0,0 +1,25 @@ +$schema: https://json-schema.org/draft/2020-12/schema +title: PDFAnalysed Data +description: Data payload of the PDFAnalysed event +type: object +additionalProperties: false +properties: + messageReference: + $ref: ../defs/requests.schema.yaml#/properties/messageReference + senderId: + $ref: ../defs/requests.schema.yaml#/properties/senderId + letterUri: + $ref: ../defs/print.schema.yaml#/properties/letterUri + pageCount: + $ref: ../defs/print.schema.yaml#/properties/pageCount + sha256Hash: + $ref: ../defs/print.schema.yaml#/properties/sha256Hash + createdAt: + $ref: ../defs/print.schema.yaml#/properties/createdAt +required: + - messageReference + - senderId + - letterUri + - pageCount + - sha256Hash + - createdAt diff --git a/src/cloudevents/domains/digital-letters/2025-10-draft/defs/message-status.schema.yaml b/src/cloudevents/domains/digital-letters/2025-10-draft/defs/message-status.schema.yaml deleted file mode 100644 index ad0de0d6..00000000 --- a/src/cloudevents/domains/digital-letters/2025-10-draft/defs/message-status.schema.yaml +++ /dev/null @@ -1,12 +0,0 @@ -$schema: https://json-schema.org/draft/2020-12/schema -$defs: - messageStatus: - type: string - description: Current status of the message. - enum: - - queued - - processing - - sent - - failed - examples: - - sent diff --git a/src/cloudevents/domains/digital-letters/2025-10-draft/defs/print.schema.yaml b/src/cloudevents/domains/digital-letters/2025-10-draft/defs/print.schema.yaml index c585187b..a718f0eb 100644 --- a/src/cloudevents/domains/digital-letters/2025-10-draft/defs/print.schema.yaml +++ b/src/cloudevents/domains/digital-letters/2025-10-draft/defs/print.schema.yaml @@ -5,16 +5,14 @@ type: object properties: status: type: string - minimum: 1 - description: Number of times that PDM has been polled while waiting for document processing to complete - enum: [ - "ACCEPTED", - "REJECTED", - "PRINTED", - "DISPATCHED", - "FAILED", - "RETURNED" - ] + description: Current status of the letter request + enum: + - "ACCEPTED" + - "REJECTED" + - "PRINTED" + - "DISPATCHED" + - "FAILED" + - "RETURNED" examples: - ACCEPTED - DISPATCHED @@ -24,3 +22,30 @@ properties: description: Identifier of the print supplier handling the print job examples: - "supplier-12345" + pageCount: + type: integer + description: The number of pages in the analysed letter PDF. + examples: + - 1 + - 3 + sha256Hash: + type: string + description: The SHA256 hash of the analysed letter PDF. + pattern: '^[A-Fa-f0-9]{64}$' + examples: + - 3a7bd3e2360a3d80c4d4e8b1e3e5e6e7e8e9e0e1e2e3e4e5e6e7e8e9e0e1e2e3 + abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890 + letterUri: + type: string + format: uri + description: Uri to the S3 storage location of the PDF letter relating to this message request + examples: + - "s3://my-bucket/path/to/my-object" + createdAt: + title: "Created At DateTime" + description: "Timestamp when the letter was created (RFC 3339)." + examples: [ + "2025-10-01T10:15:30.000Z" + ] + type: "string" + pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" diff --git a/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.printed.v1.schema.yaml b/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.file.quarantined.v1.schema.yaml similarity index 64% rename from src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.printed.v1.schema.yaml rename to src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.file.quarantined.v1.schema.yaml index 04e6561e..1d9e8b49 100644 --- a/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.printed.v1.schema.yaml +++ b/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.file.quarantined.v1.schema.yaml @@ -1,24 +1,22 @@ $schema: https://json-schema.org/draft/2020-12/schema -title: PrintStatusUpdated +title: FileQuarantined type: object allOf: - $ref: ../digital-letters-print-profile.schema.yaml properties: type: type: string - const: uk.nhs.notify.digital.letters.print.printed.v1 + const: uk.nhs.notify.digital.letters.print.file.quarantined.v1 description: Concrete versioned event type string for this event (.vN suffix). source: type: string pattern: ^/nhs/england/notify/(production|staging|development|uat)/(primary|secondary|dev-[0-9]+)/data-plane/digitalletters/print description: Event source for digital letters. - dataschema: type: string - const: ../data/digital-letter-base-data.schema.yaml + const: ../data/digital-letters-print-file-quarantined-data.schema.yaml description: Canonical URI of the event's data schema. examples: - - digital-letter-base-data.schema.yaml + - digital-letters-print-file-quarantined-data.schema.yaml data: - $ref: ../data/digital-letter-base-data.schema.yaml - description: Example payload wrapper containing notify-payload. + $ref: ../data/digital-letters-print-file-quarantined-data.schema.yaml diff --git a/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.file.safe.v1.schema.yaml b/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.file.safe.v1.schema.yaml new file mode 100644 index 00000000..86811464 --- /dev/null +++ b/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.file.safe.v1.schema.yaml @@ -0,0 +1,22 @@ +$schema: https://json-schema.org/draft/2020-12/schema +title: FileSafe +type: object +allOf: + - $ref: ../digital-letters-print-profile.schema.yaml +properties: + type: + type: string + const: uk.nhs.notify.digital.letters.print.file.safe.v1 + description: Concrete versioned event type string for this event (.vN suffix). + source: + type: string + pattern: ^/nhs/england/notify/(production|staging|development|uat)/(primary|secondary|dev-[0-9]+)/data-plane/digitalletters/print + description: Event source for digital letters. + dataschema: + type: string + const: ../data/digital-letters-print-file-safe-data.schema.yaml + description: Canonical URI of the event's data schema. + examples: + - digital-letters-print-file-safe-data.schema.yaml + data: + $ref: ../data/digital-letters-print-file-safe-data.schema.yaml diff --git a/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.letter.transitioned.v1.schema.yaml b/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.letter.transitioned.v1.schema.yaml index 5063d407..73780c95 100644 --- a/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.letter.transitioned.v1.schema.yaml +++ b/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.letter.transitioned.v1.schema.yaml @@ -1,5 +1,6 @@ $schema: https://json-schema.org/draft/2020-12/schema title: PrintLetterTransitioned + type: object allOf: - $ref: ../digital-letters-print-profile.schema.yaml diff --git a/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.viewer.digital.letter.read.v1.schema.yaml b/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.pdf.analysed.v1.schema.yaml similarity index 59% rename from src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.viewer.digital.letter.read.v1.schema.yaml rename to src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.pdf.analysed.v1.schema.yaml index 956bf628..54f1829f 100644 --- a/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.viewer.digital.letter.read.v1.schema.yaml +++ b/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.pdf.analysed.v1.schema.yaml @@ -1,23 +1,22 @@ $schema: https://json-schema.org/draft/2020-12/schema -title: DigitalLetterRead +title: PDFAnalysed type: object allOf: - - $ref: ../digital-letters-viewer-profile.schema.yaml + - $ref: ../digital-letters-print-profile.schema.yaml properties: type: type: string - const: uk.nhs.notify.digital.letters.viewer.digital.letter.read.v1 + const: uk.nhs.notify.digital.letters.print.pdf.analysed.v1 description: Concrete versioned event type string for this event (.vN suffix). source: type: string - pattern: ^/nhs/england/notify/(production|staging|development|uat)/(primary|secondary|dev-[0-9]+)/data-plane/digitalletters/viewer + pattern: ^/nhs/england/notify/(production|staging|development|uat)/(primary|secondary|dev-[0-9]+)/data-plane/digitalletters/print description: Event source for digital letters. - dataschema: type: string - const: ../data/digital-letters-digital-letter-read-data.schema.yaml + const: ../data/digital-letters-print-pdf-analysed-data.schema.yaml description: Canonical URI of the event's data schema. examples: - - digital-letters-digital-letter-read-data.schema.yaml + - digital-letters-pdf-analysed-data.schema.yaml data: - $ref: ../data/digital-letters-digital-letter-read-data.schema.yaml + $ref: ../data/digital-letters-print-pdf-analysed-data.schema.yaml diff --git a/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.supplierapi.letter.printed.v1.schema.yaml b/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.supplierapi.letter.printed.v1.schema.yaml deleted file mode 100644 index 5fa859ad..00000000 --- a/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.supplierapi.letter.printed.v1.schema.yaml +++ /dev/null @@ -1,24 +0,0 @@ -$schema: https://json-schema.org/draft/2020-12/schema -title: TEMP EXTERNAL SupplierAPIPrintStatusUpdated -type: object -allOf: - - $ref: ../supplierapi-profile.schema.yaml -properties: - type: - type: string - const: uk.nhs.notify.supplierapi.letter.printed.v1 - description: Concrete versioned event type string for this example event (.vN suffix). - source: - type: string - pattern: ^/nhs/england/notify/(production|staging|development|uat)/(primary|secondary|dev-[0-9]+)/data-plane/supplierapi - description: Event source for digital letters examples. - - dataschema: - type: string - const: ../data/digital-letter-base-data.schema.yaml - description: Canonical URI of the example event's data schema. - examples: - - digital-letter-base-data.schema.yaml - data: - $ref: ../data/digital-letter-base-data.schema.yaml - description: Example payload wrapper containing notify-payload. diff --git a/src/eventcatalog/package-lock.json b/src/eventcatalog/package-lock.json index 0e9d8b2f..3d234dee 100644 --- a/src/eventcatalog/package-lock.json +++ b/src/eventcatalog/package-lock.json @@ -1168,6 +1168,7 @@ "resolved": "https://registry.npmjs.org/@auth/core/-/core-0.37.4.tgz", "integrity": "sha512-HOXJwXWXQRhbBDHlMU0K/6FT1v+wjtzdKhsNg0ZN7/gne6XPsIrjZ4daMcFnbq0Z/vsAbYBinQhhua0d77v7qw==", "license": "ISC", + "peer": true, "dependencies": { "@panva/hkdf": "^1.2.1", "jose": "^5.9.6", @@ -1220,6 +1221,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", @@ -1507,8 +1509,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/@cfworker/json-schema/-/json-schema-4.1.1.tgz", "integrity": "sha512-gAmrUZSGtKc3AiBL71iNWxDsyUC5uMaKKGdvzYsBoTW/xi42JQHl7eKV2OYzCUqvc+D2RCcf7EXY2iCyFIk6og==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@changesets/apply-release-plan": { "version": "7.0.14", @@ -2092,6 +2093,7 @@ "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.12.1.tgz", "integrity": "sha512-Fa6xkSiuGKc8XC8Cn96T+TQHYj4ZZ7RdFmXA3i9xe/3hLHfwPZdM+dqfX0Cp0zQklBKhVD8Yzc8LS45rkqcwpQ==", "license": "MIT", + "peer": true, "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.23.0", @@ -2128,6 +2130,7 @@ "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.3.tgz", "integrity": "sha512-MerMzJzlXogk2fxWFU1nKp36bY5orBG59HnPiz0G9nLRebWa0zXuv2siH6PLIHBvv5TH8CkQRqjBs0MlxCZu+A==", "license": "MIT", + "peer": true, "dependencies": { "@marijn/find-cluster-break": "^1.0.0" } @@ -2137,6 +2140,7 @@ "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.39.8.tgz", "integrity": "sha512-1rASYd9Z/mE3tkbC9wInRlCNyCkSn+nLsiQKZhEDUUJiUfs/5FHDpCUDaQpoTIaNGeDc6/bhaEAyLmeEucEFPw==", "license": "MIT", + "peer": true, "dependencies": { "@codemirror/state": "^6.5.0", "crelt": "^1.0.6", @@ -2228,6 +2232,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" }, @@ -2269,6 +2274,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" } @@ -4640,6 +4646,7 @@ "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=8.0.0" } @@ -8676,6 +8683,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -8736,6 +8744,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -8992,6 +9001,7 @@ "resolved": "https://registry.npmjs.org/astro/-/astro-5.16.6.tgz", "integrity": "sha512-6mF/YrvwwRxLTu+aMEa5pwzKUNl5ZetWbTyZCs9Um0F12HUmxUiF5UHiZPy4rifzU3gtpM3xP2DfdmkNX9eZRg==", "license": "MIT", + "peer": true, "dependencies": { "@astrojs/compiler": "^2.13.0", "@astrojs/internal-helpers": "0.7.5", @@ -10034,6 +10044,7 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", "license": "MIT", + "peer": true, "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", @@ -10253,6 +10264,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -10347,7 +10359,6 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", "license": "MIT", - "peer": true, "engines": { "node": ">=16" }, @@ -10461,6 +10472,7 @@ "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@chevrotain/cst-dts-gen": "11.0.3", "@chevrotain/gast": "11.0.3", @@ -11144,6 +11156,7 @@ "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz", "integrity": "sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10" } @@ -11565,6 +11578,7 @@ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "license": "ISC", + "peer": true, "engines": { "node": ">=12" } @@ -11771,7 +11785,6 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -12943,6 +12956,7 @@ "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.7.1.tgz", "integrity": "sha512-Pkp8m55GjxBLnhBoT6OXdMvfRr4TjMAKLvFM566zlIryq5plbhaTmLAJWTGR0EkRwLjEte1lCOG9MxF1ipJrOg==", "license": "MIT", + "peer": true, "dependencies": { "tabbable": "^6.4.0" } @@ -13173,6 +13187,7 @@ "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.1.0.tgz", "integrity": "sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==", "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=10" } @@ -15099,6 +15114,7 @@ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "license": "MIT", + "peer": true, "bin": { "jiti": "bin/jiti.js" } @@ -15222,6 +15238,7 @@ "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", "license": "MIT", + "peer": true, "engines": { "node": ">= 10.16.0" } @@ -18463,6 +18480,7 @@ "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.12.2.tgz", "integrity": "sha512-n34QPDPEKmaeCG4WDMGy0OT6PSyxKCfy2pJgShP+Qow2KLrvWjclwbc3yXfSIf4BanqWEhQEpngWwNp/XhZt6w==", "license": "MIT", + "peer": true, "dependencies": { "@braintree/sanitize-url": "^7.1.1", "@iconify/utils": "^3.0.1", @@ -20190,7 +20208,6 @@ "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", "license": "MIT", - "peer": true, "bin": { "mustache": "bin/mustache" } @@ -20598,6 +20615,7 @@ "resolved": "https://registry.npmjs.org/openai/-/openai-4.104.0.tgz", "integrity": "sha512-p99EFNsA/yX6UhVO93f5kJsDRLAg+CTA2RBqdHK4RtK8u5IJw32Hyb2dTGKbnnFmnuoBv5r7Z2CURI9sGZpSuA==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@types/node": "^18.11.18", "@types/node-fetch": "^2.6.4", @@ -21300,6 +21318,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -21466,6 +21485,7 @@ "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.3.tgz", "integrity": "sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==", "license": "MIT", + "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" @@ -21773,6 +21793,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -21785,6 +21806,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -23074,6 +23096,7 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz", "integrity": "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==", "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -24292,6 +24315,7 @@ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", "license": "MIT", + "peer": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -24741,6 +24765,7 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -25311,6 +25336,7 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", @@ -25653,6 +25679,7 @@ "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.26.tgz", "integrity": "sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==", "license": "MIT", + "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.26", "@vue/compiler-sfc": "3.5.26", @@ -26273,6 +26300,7 @@ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" }