Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @Bugs5382
95 changes: 95 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: 🐛 Bug Report
description: Report a defect — wrong output, crash, exception, regression, etc.
title: "[bug]: "
labels:
- bug
- triage
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to file a bug report. The more specific your repro, the faster it gets fixed. 🙏
- type: input
id: package
attributes:
label: Which package?
description: Either `node-hl7-client`, `node-hl7-server`, or both.
placeholder: "node-hl7-server"
validations:
required: true
- type: input
id: package-version
attributes:
label: Package version
placeholder: "3.3.0"
validations:
required: true
- type: input
id: node-version
attributes:
label: Node.js version
description: Output of `node --version`.
placeholder: "v22.10.0"
validations:
required: true
- type: dropdown
id: deployment
attributes:
label: Deployment environment
options:
- Local development
- Docker
- Kubernetes
- VM / bare metal
- Other
validations:
required: true
- type: textarea
id: what-happened
attributes:
label: What happened?
description: A clear description of the bug. What did you expect, and what did you observe?
placeholder: |
I called `res.sendResponse("AA")` and the client received an `AE` instead.
validations:
required: true
- type: textarea
id: repro
attributes:
label: Minimal reproduction
description: |
The smallest TypeScript / JavaScript snippet that reproduces the issue.
Include the HL7 message you sent (redact any PHI), the code that handles it, and the unexpected output.
render: ts
placeholder: |
import { Server } from "node-hl7-server";

const server = new Server({ bindAddress: "0.0.0.0" });
server.createInbound({ port: 3000 }, async (req, res) => {
await res.sendResponse("AA");
});
validations:
required: true
- type: textarea
id: hl7-message
attributes:
label: HL7 message (sanitized)
description: |
The exact MLLP frame or HL7 string involved. **Do not include real PHI.**
Replace MRNs, names, DOBs with placeholders like `MRN12345`, `DOE^JANE`, `19800101`.
render: text
placeholder: |
MSH|^~\&|EPIC|HOSP|RECV|RFAC|20240101000000||ADT^A01|MSG00001|P|2.5
EVN|A01|20240101000000
PID|1||MRN12345^^^HOSP^MR||DOE^JANE^A||19800101|F
- type: textarea
id: error
attributes:
label: Error / stack trace
description: Exact text of any error or stack trace.
render: shell
- type: textarea
id: extra
attributes:
label: Anything else?
description: Logs, screenshots, related issues, hypothesis about root cause.
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: 📚 Documentation
url: https://github.com/Bugs5382/node-hl7#readme
about: Per-package READMEs and pages/ deep-dives cover most "how do I..." questions.
- name: 🩺 HL7 Specification
url: https://hl7-definition.caristix.com/v2/
about: Canonical reference for segment fields, allowed values, and version differences. Useful before opening a "wrong field" bug.
- name: 💬 Discussions
url: https://github.com/Bugs5382/node-hl7/discussions
about: General questions, deployment war stories, or design ideas that aren't actionable bug reports.
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/documentation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: 📚 Documentation Improvement
description: Something in the README, pages/, or typedoc is wrong, missing, or unclear.
title: "[docs]: "
labels:
- documentation
- triage
body:
- type: dropdown
id: where
attributes:
label: Where in the docs?
options:
- Root README.md
- node-hl7-client README
- node-hl7-server README
- pages/client/...
- pages/server/...
- typedoc API reference
- Other
validations:
required: true
- type: input
id: path
attributes:
label: Specific page / section
description: File path or section heading, e.g. `pages/server/tls/index.md` → "Mutual TLS".
- type: textarea
id: issue
attributes:
label: What's wrong or missing?
description: Describe the problem. Quote the offending text if helpful.
validations:
required: true
- type: textarea
id: suggestion
attributes:
label: Proposed fix or addition
description: How would you reword it / what would you add? PRs welcome.
59 changes: 59 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: ✨ Feature Request
description: Suggest a new capability, builder, parser improvement, or API addition.
title: "[feat]: "
labels:
- enhancement
- triage
body:
- type: markdown
attributes:
value: |
Thanks for proposing an improvement! For larger changes, the more design context you can share up-front, the smoother the review.
- type: input
id: package
attributes:
label: Which package?
description: `node-hl7-client`, `node-hl7-server`, both, or "monorepo tooling".
placeholder: "node-hl7-server"
validations:
required: true
- type: textarea
id: problem
attributes:
label: What problem does this solve?
description: Describe the use case. What can you not do today? What's the workaround you're stuck on?
validations:
required: true
- type: textarea
id: proposal
attributes:
label: Proposed API / change
description: |
Sketch the API you'd want — class, method signature, options, etc. Pseudocode is fine.
render: ts
placeholder: |
// Add a `getMessageType()` helper on InboundRequest:
const type = req.getMessageType(); // "ADT^A01" | "ORU^R01" | ...
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives considered
description: Other approaches you considered and why this one is better.
- type: dropdown
id: breaking
attributes:
label: Would this be a breaking change?
options:
- "No — purely additive"
- "Maybe — depends on implementation"
- "Yes — would change existing API"
- "Not sure"
validations:
required: true
- type: textarea
id: extra
attributes:
label: Anything else?
description: Links to HL7 spec sections, related issues, prior art, or sample messages.
78 changes: 78 additions & 0 deletions .github/ISSUE_TEMPLATE/troubleshooting.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: 🛠️ Troubleshooting Help
description: Something isn't working but you're not sure if it's a bug or a config issue. Ask for help getting unstuck.
title: "[help]: "
labels:
- question
- triage
body:
- type: markdown
attributes:
value: |
Use this for "I can't figure out why X is happening" questions. If you've already isolated a clear defect, please file a 🐛 Bug Report instead.
- type: input
id: package
attributes:
label: Which package?
placeholder: "node-hl7-server"
validations:
required: true
- type: input
id: package-version
attributes:
label: Package version
placeholder: "3.3.0"
validations:
required: true
- type: input
id: node-version
attributes:
label: Node.js version
placeholder: "v22.10.0"
validations:
required: true
- type: textarea
id: goal
attributes:
label: What are you trying to do?
description: Describe the end goal — connecting to Epic over mTLS, parsing a batch from Cerner, sending an ORU result, etc.
validations:
required: true
- type: textarea
id: tried
attributes:
label: What have you tried?
description: Steps you've already taken — code, config, docs you've read.
validations:
required: true
- type: textarea
id: observed
attributes:
label: What's actually happening?
description: Errors, missing ACKs, unexpected fields, timeouts, etc. Include logs verbatim if you can.
render: shell
validations:
required: true
- type: textarea
id: code
attributes:
label: Relevant code
description: The handler / connection setup / TLS config that's giving you trouble.
render: ts
- type: textarea
id: hl7-message
attributes:
label: HL7 message (sanitized)
description: |
Sample message involved, with all PHI redacted (use placeholders like `MRN12345`, `DOE^JANE`, `19800101`).
render: text
- type: dropdown
id: tls
attributes:
label: TLS configuration
options:
- Plain TCP / no TLS
- Server-auth TLS only
- Mutual TLS (mTLS)
- Not sure
validations:
required: true
57 changes: 57 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# MIT License
#
# Copyright (c) 2026 Shane
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
version: 2
updates:
- package-ecosystem: npm
directories:
- /
- /packages/node-hl7-client
- /packages/node-hl7-server
schedule:
interval: weekly
open-pull-requests-limit: 10
versioning-strategy: increase
labels:
- dependencies
groups:
production-dependencies:
dependency-type: production
update-types:
- patch
- minor
- major
development-dependencies:
dependency-type: development
update-types:
- patch
- minor
- major

- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
labels:
- dependencies
groups:
github-actions:
patterns:
- "*"
Loading
Loading