@rethinkhealth/hl7v2-lint-message-version 0.2.26 → 0.2.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +8 -8
- package/dist/index.js.map +1 -1
- package/package.json +9 -8
package/dist/index.js
CHANGED
|
@@ -9,20 +9,20 @@ function getMessageInfo(tree) {
|
|
|
9
9
|
};
|
|
10
10
|
}
|
|
11
11
|
function getVersion(tree) {
|
|
12
|
-
const
|
|
13
|
-
return
|
|
12
|
+
const result = value(tree, "MSH-12");
|
|
13
|
+
return result?.value || void 0;
|
|
14
14
|
}
|
|
15
15
|
function getMessageCode(tree) {
|
|
16
|
-
const
|
|
17
|
-
return
|
|
16
|
+
const result = value(tree, "MSH-9.1");
|
|
17
|
+
return result?.value || void 0;
|
|
18
18
|
}
|
|
19
19
|
function getTriggerEvent(tree) {
|
|
20
|
-
const
|
|
21
|
-
return
|
|
20
|
+
const result = value(tree, "MSH-9.2");
|
|
21
|
+
return result?.value || void 0;
|
|
22
22
|
}
|
|
23
23
|
function getMessageStructure(tree) {
|
|
24
|
-
const
|
|
25
|
-
return
|
|
24
|
+
const result = value(tree, "MSH-9.3");
|
|
25
|
+
return result?.value || void 0;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
// src/index.ts
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../hl7v2-util-message-info/src/extract.ts","../src/index.ts"],"sourcesContent":["import type { Root } from \"@rethinkhealth/hl7v2-ast\";\nimport { value } from \"@rethinkhealth/hl7v2-util-query\";\nimport type { MessageInfo } from \"./types\";\n\n/**\n * Extract complete message metadata from MSH segment\n *\n * @param tree - The HL7v2 AST root node\n * @returns MessageInfo object with version, message code, trigger event, and structure\n *\n * @example\n * ```typescript\n * const info = getMessageInfo(tree);\n * console.log(info.version); // \"2.5\"\n * console.log(info.messageCode); // \"ADT\"\n * console.log(info.triggerEvent); // \"A01\"\n * console.log(info.messageStructure); // \"ADT_A01\"\n * ```\n */\nexport function getMessageInfo(tree: Root): MessageInfo {\n return {\n version: getVersion(tree),\n messageCode: getMessageCode(tree),\n triggerEvent: getTriggerEvent(tree),\n messageStructure: getMessageStructure(tree),\n };\n}\n\n/**\n * Extract message version from MSH-12 field\n *\n * @param tree - The HL7v2 AST root node\n * @returns Version string or undefined if not present\n *\n * @example\n * ```typescript\n * const version = getVersion(tree); // \"2.5\"\n * ```\n */\nexport function getVersion(tree: Root): string | undefined {\n const
|
|
1
|
+
{"version":3,"sources":["../../hl7v2-util-message-info/src/extract.ts","../src/index.ts"],"sourcesContent":["import type { Root } from \"@rethinkhealth/hl7v2-ast\";\nimport { value } from \"@rethinkhealth/hl7v2-util-query\";\nimport type { MessageInfo } from \"./types\";\n\n/**\n * Extract complete message metadata from MSH segment\n *\n * @param tree - The HL7v2 AST root node\n * @returns MessageInfo object with version, message code, trigger event, and structure\n *\n * @example\n * ```typescript\n * const info = getMessageInfo(tree);\n * console.log(info.version); // \"2.5\"\n * console.log(info.messageCode); // \"ADT\"\n * console.log(info.triggerEvent); // \"A01\"\n * console.log(info.messageStructure); // \"ADT_A01\"\n * ```\n */\nexport function getMessageInfo(tree: Root): MessageInfo {\n return {\n version: getVersion(tree),\n messageCode: getMessageCode(tree),\n triggerEvent: getTriggerEvent(tree),\n messageStructure: getMessageStructure(tree),\n };\n}\n\n/**\n * Extract message version from MSH-12 field\n *\n * @param tree - The HL7v2 AST root node\n * @returns Version string or undefined if not present\n *\n * @example\n * ```typescript\n * const version = getVersion(tree); // \"2.5\"\n * ```\n */\nexport function getVersion(tree: Root): string | undefined {\n const result = value(tree, \"MSH-12\");\n return result?.value || undefined;\n}\n\n/**\n * Extract message code from MSH-9.1 field\n *\n * @param tree - The HL7v2 AST root node\n * @returns Message code or undefined if not present\n *\n * @example\n * ```typescript\n * const messageCode = getMessageCode(tree); // \"ADT\"\n * ```\n */\nexport function getMessageCode(tree: Root): string | undefined {\n const result = value(tree, \"MSH-9.1\");\n return result?.value || undefined;\n}\n\n/**\n * Extract trigger event from MSH-9.2 field\n *\n * @param tree - The HL7v2 AST root node\n * @returns Trigger event or undefined if not present\n *\n * @example\n * ```typescript\n * const triggerEvent = getTriggerEvent(tree); // \"A01\"\n * ```\n */\nexport function getTriggerEvent(tree: Root): string | undefined {\n const result = value(tree, \"MSH-9.2\");\n return result?.value || undefined;\n}\n\n/**\n * Extract message structure from MSH-9.3 field\n *\n * @param tree - The HL7v2 AST root node\n * @returns Message structure or undefined if not present\n *\n * @example\n * ```typescript\n * const messageStructure = getMessageStructure(tree); // \"ADT_A01\"\n * ```\n */\nexport function getMessageStructure(tree: Root): string | undefined {\n const result = value(tree, \"MSH-9.3\");\n return result?.value || undefined;\n}\n","import type { Nodes, Root, RootData } from \"@rethinkhealth/hl7v2-ast\";\nimport type { MessageInfo } from \"@rethinkhealth/hl7v2-util-message-info\";\nimport { getMessageInfo } from \"@rethinkhealth/hl7v2-util-message-info\";\nimport { parse, satisfies } from \"@rethinkhealth/hl7v2-util-semver\";\nimport { lintRule } from \"unified-lint-rule\";\n\nexport type MessageVersionLintOptions = {\n expression: string;\n};\n\nconst defaultOptions = {\n expression: \"<3.0.0 >=2.3\",\n} as const;\n\nconst hl7v2LintMessageVersion = lintRule<Nodes, MessageVersionLintOptions>(\n {\n origin: \"hl7v2-lint:message-version\",\n url: \"https://github.com/rethinkhealth/hl7v2/tree/main/packages/hl7v2-lint-message-version#readme\",\n },\n (tree, file, opts) => {\n const options = { ...defaultOptions, ...opts };\n\n // 1. Validate tree is a Root node.\n if (tree.type !== \"root\") {\n file.fail(\n `The root node is expected to be a Root node. Received ${tree.type} instead`\n );\n return;\n }\n\n const rootTree = tree as Root;\n\n // 2. Extract message info from annotated data or parse from MSH segment.\n const annotatedMessageInfo = (\n rootTree.data as RootData & { messageInfo?: MessageInfo }\n )?.messageInfo;\n const messageInfo = annotatedMessageInfo ?? getMessageInfo(rootTree);\n\n // 3. Ensure version is present.\n if (!messageInfo?.version) {\n file.fail(\"Required MSH-12 segment value is missing\");\n return;\n }\n\n // 4. Validate version string is a syntactically valid version.\n try {\n parse(messageInfo.version);\n } catch {\n file.fail(\n `MSH-12 segment value is invalid. Received '${messageInfo.version}' instead`\n );\n return;\n }\n\n // 5. Ensure version satisfies allowed expression.\n const isValid = satisfies(messageInfo.version, options.expression);\n\n if (!isValid) {\n file.fail(\n `MSH-12 segment value is not supported. Received '${messageInfo.version}' instead`\n );\n }\n }\n);\n\nexport default hl7v2LintMessageVersion;\n"],"mappings":";AACA,SAAS,aAAa;AAkBf,SAAS,eAAe,MAAyB;AACtD,SAAO;IACL,SAAS,WAAW,IAAI;IACxB,aAAa,eAAe,IAAI;IAChC,cAAc,gBAAgB,IAAI;IAClC,kBAAkB,oBAAoB,IAAI;EAC5C;AACF;AAaO,SAAS,WAAW,MAAgC;AACzD,QAAM,SAAS,MAAM,MAAM,QAAQ;AACnC,SAAO,QAAQ,SAAS;AAC1B;AAaO,SAAS,eAAe,MAAgC;AAC7D,QAAM,SAAS,MAAM,MAAM,SAAS;AACpC,SAAO,QAAQ,SAAS;AAC1B;AAaO,SAAS,gBAAgB,MAAgC;AAC9D,QAAM,SAAS,MAAM,MAAM,SAAS;AACpC,SAAO,QAAQ,SAAS;AAC1B;AAaO,SAAS,oBAAoB,MAAgC;AAClE,QAAM,SAAS,MAAM,MAAM,SAAS;AACpC,SAAO,QAAQ,SAAS;AAC1B;;;ACvFA,SAAS,OAAO,iBAAiB;AACjC,SAAS,gBAAgB;AAMzB,IAAM,iBAAiB;AAAA,EACrB,YAAY;AACd;AAEA,IAAM,0BAA0B;AAAA,EAC9B;AAAA,IACE,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,CAAC,MAAM,MAAM,SAAS;AACpB,UAAM,UAAU,EAAE,GAAG,gBAAgB,GAAG,KAAK;AAG7C,QAAI,KAAK,SAAS,QAAQ;AACxB,WAAK;AAAA,QACH,yDAAyD,KAAK,IAAI;AAAA,MACpE;AACA;AAAA,IACF;AAEA,UAAM,WAAW;AAGjB,UAAM,uBACJ,SAAS,MACR;AACH,UAAM,cAAc,wBAAwB,eAAe,QAAQ;AAGnE,QAAI,CAAC,aAAa,SAAS;AACzB,WAAK,KAAK,0CAA0C;AACpD;AAAA,IACF;AAGA,QAAI;AACF,YAAM,YAAY,OAAO;AAAA,IAC3B,QAAQ;AACN,WAAK;AAAA,QACH,8CAA8C,YAAY,OAAO;AAAA,MACnE;AACA;AAAA,IACF;AAGA,UAAM,UAAU,UAAU,YAAY,SAAS,QAAQ,UAAU;AAEjE,QAAI,CAAC,SAAS;AACZ,WAAK;AAAA,QACH,oDAAoD,YAAY,OAAO;AAAA,MACzE;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,gBAAQ;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rethinkhealth/hl7v2-lint-message-version",
|
|
3
3
|
"description": "hl7v2-lint rule to warn when message version is not supported",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.28",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Melek Somai",
|
|
@@ -17,11 +17,11 @@
|
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"unified-lint-rule": "3.0.1",
|
|
20
|
-
"@rethinkhealth/hl7v2-util-query": "0.2.
|
|
21
|
-
"@rethinkhealth/hl7v2-util-semver": "0.2.
|
|
20
|
+
"@rethinkhealth/hl7v2-util-query": "0.2.28",
|
|
21
|
+
"@rethinkhealth/hl7v2-util-semver": "0.2.28"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@types/node": "24.
|
|
24
|
+
"@types/node": "24.10.0",
|
|
25
25
|
"@types/unist": "^3.0.3",
|
|
26
26
|
"@vitest/coverage-v8": "^4.0.5",
|
|
27
27
|
"tsup": "8.5.0",
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
"unified": "^11.0.5",
|
|
30
30
|
"vfile": "^6.0.3",
|
|
31
31
|
"vitest": "^4.0.6",
|
|
32
|
-
"@rethinkhealth/hl7v2-
|
|
32
|
+
"@rethinkhealth/hl7v2-builder": "0.2.28",
|
|
33
|
+
"@rethinkhealth/hl7v2-ast": "0.2.28",
|
|
33
34
|
"@rethinkhealth/testing": "0.0.2",
|
|
34
|
-
"@rethinkhealth/hl7v2-util-message-info": "0.2.
|
|
35
|
-
"@rethinkhealth/tsconfig": "0.0.1"
|
|
36
|
-
"@rethinkhealth/hl7v2-builder": "0.2.26"
|
|
35
|
+
"@rethinkhealth/hl7v2-util-message-info": "0.2.28",
|
|
36
|
+
"@rethinkhealth/tsconfig": "0.0.1"
|
|
37
37
|
},
|
|
38
38
|
"repository": "rethinkhealth/hl7v2.git",
|
|
39
39
|
"homepage": "https://www.rethinkhealth.io/hl7v2/docs",
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"typescript",
|
|
50
50
|
"version"
|
|
51
51
|
],
|
|
52
|
+
"packageManager": "pnpm@10.14.0",
|
|
52
53
|
"publishConfig": {
|
|
53
54
|
"access": "public"
|
|
54
55
|
},
|