@mitre/hdf-converters 2.10.2 → 2.10.3

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.
@@ -0,0 +1,204 @@
1
+ export type Checklist = {
2
+ name?: Name;
3
+ value?: boolean | null | Stigdata | string;
4
+ };
5
+ export type Name = {
6
+ localPart: LocalPartEnum;
7
+ namespaceURI?: string;
8
+ prefix?: null | string;
9
+ };
10
+ export declare enum LocalPartEnum {
11
+ Asset = "ASSET",
12
+ AssetType = "ASSET_TYPE",
13
+ AttributeData = "ATTRIBUTE_DATA",
14
+ Checklist = "CHECKLIST",
15
+ Comments = "COMMENTS",
16
+ FindingDetails = "FINDING_DETAILS",
17
+ HostFQDN = "HOST_FQDN",
18
+ HostGUID = "HOST_GUID",
19
+ HostIP = "HOST_IP",
20
+ HostMAC = "HOST_MAC",
21
+ HostName = "HOST_NAME",
22
+ ISTIG = "iSTIG",
23
+ Marking = "MARKING",
24
+ Role = "ROLE",
25
+ SeverityJustification = "SEVERITY_JUSTIFICATION",
26
+ SeverityOverride = "SEVERITY_OVERRIDE",
27
+ SiData = "SI_DATA",
28
+ SidData = "SID_DATA",
29
+ SidName = "SID_NAME",
30
+ Status = "STATUS",
31
+ StigData = "STIG_DATA",
32
+ StigGUID = "STIG_GUID",
33
+ StigInfo = "STIG_INFO",
34
+ Stigs = "STIGS",
35
+ TargetComment = "TARGET_COMMENT",
36
+ TargetKey = "TARGET_KEY",
37
+ TechArea = "TECH_AREA",
38
+ Vuln = "VULN",
39
+ VulnAttribute = "VULN_ATTRIBUTE",
40
+ WebDBInstance = "WEB_DB_INSTANCE",
41
+ WebDBSite = "WEB_DB_SITE",
42
+ WebOrDatabase = "WEB_OR_DATABASE"
43
+ }
44
+ export type Stigdata = {
45
+ attributedata?: null | string;
46
+ vulnattribute?: Vulnattribute;
47
+ comments?: null | string;
48
+ findingdetails?: null | string;
49
+ severityjustification?: null | string;
50
+ severityoverride?: Severityoverride;
51
+ status?: Status;
52
+ stigdata?: StigdatumElement[];
53
+ sidata?: Sidata[];
54
+ assettype?: Assettype;
55
+ hostfqdn?: null | string;
56
+ hostguid?: null | string;
57
+ hostip?: null | string;
58
+ hostmac?: null | string;
59
+ hostname?: null | string;
60
+ marking?: null | string;
61
+ role?: Role;
62
+ stigguid?: null | string;
63
+ targetcomment?: null | string;
64
+ targetkey?: null | string;
65
+ techarea?: Techarea;
66
+ webdbinstance?: null | string;
67
+ webdbsite?: null | string;
68
+ webordatabase?: boolean | null;
69
+ asset?: Asset;
70
+ stigs?: Stigs;
71
+ stiginfo?: Stiginfo;
72
+ vuln?: Vuln[];
73
+ siddata?: null | string;
74
+ sidname?: Sidname;
75
+ istig?: Istig[];
76
+ };
77
+ export type Asset = {
78
+ assettype: Assettype;
79
+ hostfqdn: null | string;
80
+ hostguid?: null | string;
81
+ hostip: null | string;
82
+ hostmac: null | string;
83
+ hostname: null | string;
84
+ marking?: null | string;
85
+ role: Role;
86
+ stigguid?: null | string;
87
+ targetcomment?: null | string;
88
+ targetkey: null | string;
89
+ techarea: Techarea;
90
+ webdbinstance: null | string;
91
+ webdbsite: null | string;
92
+ webordatabase: boolean | null;
93
+ };
94
+ export declare enum Assettype {
95
+ Computing = "Computing",
96
+ NonComputing = "Non-Computing"
97
+ }
98
+ export declare enum Role {
99
+ DomainController = "Domain Controller",
100
+ MemberServer = "Member Server",
101
+ None = "None",
102
+ Workstation = "Workstation"
103
+ }
104
+ export declare enum Techarea {
105
+ Empty = "",
106
+ ApplicationReview = "Application Review",
107
+ BoundarySecurity = "Boundary Security",
108
+ CDSAdminReview = "CDS Admin Review",
109
+ CDSTechnicalReview = "CDS Technical Review",
110
+ DatabaseReview = "Database Review",
111
+ DomainNameSystemDNS = "Domain Name System (DNS)",
112
+ ExchangeServer = "Exchange Server",
113
+ HostBasedSystemSecurityHBSS = "Host Based System Security (HBSS)",
114
+ InternalNetwork = "Internal Network",
115
+ Mobility = "Mobility",
116
+ OtherReview = "Other Review",
117
+ ReleasableNetworksREL = "Releasable Networks (REL)",
118
+ ReleaseableNetworksREL = "Releaseable Networks (REL)",
119
+ TraditionalSecurity = "Traditional Security",
120
+ UnixOS = "UNIX OS",
121
+ VVOIPReview = "VVOIP Review",
122
+ WebReview = "Web Review",
123
+ WindowsOS = "Windows OS"
124
+ }
125
+ export type Istig = {
126
+ stiginfo: Stiginfo;
127
+ vuln: Vuln[];
128
+ };
129
+ export type Stiginfo = {
130
+ sidata: Sidata[];
131
+ };
132
+ export type Sidata = {
133
+ siddata?: null | string;
134
+ sidname: Sidname;
135
+ };
136
+ export declare enum Sidname {
137
+ Classification = "classification",
138
+ Customname = "customname",
139
+ Description = "description",
140
+ Filename = "filename",
141
+ Notice = "notice",
142
+ Releaseinfo = "releaseinfo",
143
+ Source = "source",
144
+ Stigid = "stigid",
145
+ Title = "title",
146
+ UUID = "uuid",
147
+ Version = "version"
148
+ }
149
+ export type Vuln = {
150
+ comments: null | string;
151
+ findingdetails: null | string;
152
+ severityjustification: null | string;
153
+ severityoverride: Severityoverride;
154
+ status: Status;
155
+ stigdata: StigdatumElement[];
156
+ };
157
+ export declare enum Severityoverride {
158
+ Empty = "",
159
+ High = "high",
160
+ Low = "low",
161
+ Medium = "medium"
162
+ }
163
+ export declare enum Status {
164
+ NotAFinding = "NotAFinding",
165
+ NotApplicable = "Not_Applicable",
166
+ NotReviewed = "Not_Reviewed",
167
+ Open = "Open"
168
+ }
169
+ export type StigdatumElement = {
170
+ attributedata: null | string;
171
+ vulnattribute: Vulnattribute;
172
+ };
173
+ export declare enum Vulnattribute {
174
+ CciRef = "CCI_REF",
175
+ CheckContent = "Check_Content",
176
+ CheckContentRef = "Check_Content_Ref",
177
+ Class = "Class",
178
+ Documentable = "Documentable",
179
+ FalseNegatives = "False_Negatives",
180
+ FalsePositives = "False_Positives",
181
+ FixText = "Fix_Text",
182
+ GroupTitle = "Group_Title",
183
+ IAControls = "IA_Controls",
184
+ LegacyID = "LEGACY_ID",
185
+ MitigationControl = "Mitigation_Control",
186
+ Mitigations = "Mitigations",
187
+ PotentialImpact = "Potential_Impact",
188
+ Responsibility = "Responsibility",
189
+ RuleID = "Rule_ID",
190
+ RuleTitle = "Rule_Title",
191
+ RuleVer = "Rule_Ver",
192
+ STIGRef = "STIGRef",
193
+ SecurityOverrideGuidance = "Security_Override_Guidance",
194
+ Severity = "Severity",
195
+ StigUUID = "STIG_UUID",
196
+ TargetKey = "TargetKey",
197
+ ThirdPartyTools = "Third_Party_Tools",
198
+ VulnDiscuss = "Vuln_Discuss",
199
+ VulnNum = "Vuln_Num",
200
+ Weight = "Weight"
201
+ }
202
+ export type Stigs = {
203
+ istig: Istig[];
204
+ };
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Vulnattribute = exports.Status = exports.Severityoverride = exports.Sidname = exports.Techarea = exports.Role = exports.Assettype = exports.LocalPartEnum = void 0;
4
+ var LocalPartEnum;
5
+ (function (LocalPartEnum) {
6
+ LocalPartEnum["Asset"] = "ASSET";
7
+ LocalPartEnum["AssetType"] = "ASSET_TYPE";
8
+ LocalPartEnum["AttributeData"] = "ATTRIBUTE_DATA";
9
+ LocalPartEnum["Checklist"] = "CHECKLIST";
10
+ LocalPartEnum["Comments"] = "COMMENTS";
11
+ LocalPartEnum["FindingDetails"] = "FINDING_DETAILS";
12
+ LocalPartEnum["HostFQDN"] = "HOST_FQDN";
13
+ LocalPartEnum["HostGUID"] = "HOST_GUID";
14
+ LocalPartEnum["HostIP"] = "HOST_IP";
15
+ LocalPartEnum["HostMAC"] = "HOST_MAC";
16
+ LocalPartEnum["HostName"] = "HOST_NAME";
17
+ LocalPartEnum["ISTIG"] = "iSTIG";
18
+ LocalPartEnum["Marking"] = "MARKING";
19
+ LocalPartEnum["Role"] = "ROLE";
20
+ LocalPartEnum["SeverityJustification"] = "SEVERITY_JUSTIFICATION";
21
+ LocalPartEnum["SeverityOverride"] = "SEVERITY_OVERRIDE";
22
+ LocalPartEnum["SiData"] = "SI_DATA";
23
+ LocalPartEnum["SidData"] = "SID_DATA";
24
+ LocalPartEnum["SidName"] = "SID_NAME";
25
+ LocalPartEnum["Status"] = "STATUS";
26
+ LocalPartEnum["StigData"] = "STIG_DATA";
27
+ LocalPartEnum["StigGUID"] = "STIG_GUID";
28
+ LocalPartEnum["StigInfo"] = "STIG_INFO";
29
+ LocalPartEnum["Stigs"] = "STIGS";
30
+ LocalPartEnum["TargetComment"] = "TARGET_COMMENT";
31
+ LocalPartEnum["TargetKey"] = "TARGET_KEY";
32
+ LocalPartEnum["TechArea"] = "TECH_AREA";
33
+ LocalPartEnum["Vuln"] = "VULN";
34
+ LocalPartEnum["VulnAttribute"] = "VULN_ATTRIBUTE";
35
+ LocalPartEnum["WebDBInstance"] = "WEB_DB_INSTANCE";
36
+ LocalPartEnum["WebDBSite"] = "WEB_DB_SITE";
37
+ LocalPartEnum["WebOrDatabase"] = "WEB_OR_DATABASE";
38
+ })(LocalPartEnum = exports.LocalPartEnum || (exports.LocalPartEnum = {}));
39
+ var Assettype;
40
+ (function (Assettype) {
41
+ Assettype["Computing"] = "Computing";
42
+ Assettype["NonComputing"] = "Non-Computing";
43
+ })(Assettype = exports.Assettype || (exports.Assettype = {}));
44
+ var Role;
45
+ (function (Role) {
46
+ Role["DomainController"] = "Domain Controller";
47
+ Role["MemberServer"] = "Member Server";
48
+ Role["None"] = "None";
49
+ Role["Workstation"] = "Workstation";
50
+ })(Role = exports.Role || (exports.Role = {}));
51
+ var Techarea;
52
+ (function (Techarea) {
53
+ Techarea["Empty"] = "";
54
+ Techarea["ApplicationReview"] = "Application Review";
55
+ Techarea["BoundarySecurity"] = "Boundary Security";
56
+ Techarea["CDSAdminReview"] = "CDS Admin Review";
57
+ Techarea["CDSTechnicalReview"] = "CDS Technical Review";
58
+ Techarea["DatabaseReview"] = "Database Review";
59
+ Techarea["DomainNameSystemDNS"] = "Domain Name System (DNS)";
60
+ Techarea["ExchangeServer"] = "Exchange Server";
61
+ Techarea["HostBasedSystemSecurityHBSS"] = "Host Based System Security (HBSS)";
62
+ Techarea["InternalNetwork"] = "Internal Network";
63
+ Techarea["Mobility"] = "Mobility";
64
+ Techarea["OtherReview"] = "Other Review";
65
+ Techarea["ReleasableNetworksREL"] = "Releasable Networks (REL)";
66
+ Techarea["ReleaseableNetworksREL"] = "Releaseable Networks (REL)";
67
+ Techarea["TraditionalSecurity"] = "Traditional Security";
68
+ Techarea["UnixOS"] = "UNIX OS";
69
+ Techarea["VVOIPReview"] = "VVOIP Review";
70
+ Techarea["WebReview"] = "Web Review";
71
+ Techarea["WindowsOS"] = "Windows OS";
72
+ })(Techarea = exports.Techarea || (exports.Techarea = {}));
73
+ var Sidname;
74
+ (function (Sidname) {
75
+ Sidname["Classification"] = "classification";
76
+ Sidname["Customname"] = "customname";
77
+ Sidname["Description"] = "description";
78
+ Sidname["Filename"] = "filename";
79
+ Sidname["Notice"] = "notice";
80
+ Sidname["Releaseinfo"] = "releaseinfo";
81
+ Sidname["Source"] = "source";
82
+ Sidname["Stigid"] = "stigid";
83
+ Sidname["Title"] = "title";
84
+ Sidname["UUID"] = "uuid";
85
+ Sidname["Version"] = "version";
86
+ })(Sidname = exports.Sidname || (exports.Sidname = {}));
87
+ var Severityoverride;
88
+ (function (Severityoverride) {
89
+ Severityoverride["Empty"] = "";
90
+ Severityoverride["High"] = "high";
91
+ Severityoverride["Low"] = "low";
92
+ Severityoverride["Medium"] = "medium";
93
+ })(Severityoverride = exports.Severityoverride || (exports.Severityoverride = {}));
94
+ var Status;
95
+ (function (Status) {
96
+ Status["NotAFinding"] = "NotAFinding";
97
+ Status["NotApplicable"] = "Not_Applicable";
98
+ Status["NotReviewed"] = "Not_Reviewed";
99
+ Status["Open"] = "Open";
100
+ })(Status = exports.Status || (exports.Status = {}));
101
+ var Vulnattribute;
102
+ (function (Vulnattribute) {
103
+ Vulnattribute["CciRef"] = "CCI_REF";
104
+ Vulnattribute["CheckContent"] = "Check_Content";
105
+ Vulnattribute["CheckContentRef"] = "Check_Content_Ref";
106
+ Vulnattribute["Class"] = "Class";
107
+ Vulnattribute["Documentable"] = "Documentable";
108
+ Vulnattribute["FalseNegatives"] = "False_Negatives";
109
+ Vulnattribute["FalsePositives"] = "False_Positives";
110
+ Vulnattribute["FixText"] = "Fix_Text";
111
+ Vulnattribute["GroupTitle"] = "Group_Title";
112
+ Vulnattribute["IAControls"] = "IA_Controls";
113
+ Vulnattribute["LegacyID"] = "LEGACY_ID";
114
+ Vulnattribute["MitigationControl"] = "Mitigation_Control";
115
+ Vulnattribute["Mitigations"] = "Mitigations";
116
+ Vulnattribute["PotentialImpact"] = "Potential_Impact";
117
+ Vulnattribute["Responsibility"] = "Responsibility";
118
+ Vulnattribute["RuleID"] = "Rule_ID";
119
+ Vulnattribute["RuleTitle"] = "Rule_Title";
120
+ Vulnattribute["RuleVer"] = "Rule_Ver";
121
+ Vulnattribute["STIGRef"] = "STIGRef";
122
+ Vulnattribute["SecurityOverrideGuidance"] = "Security_Override_Guidance";
123
+ Vulnattribute["Severity"] = "Severity";
124
+ Vulnattribute["StigUUID"] = "STIG_UUID";
125
+ Vulnattribute["TargetKey"] = "TargetKey";
126
+ Vulnattribute["ThirdPartyTools"] = "Third_Party_Tools";
127
+ Vulnattribute["VulnDiscuss"] = "Vuln_Discuss";
128
+ Vulnattribute["VulnNum"] = "Vuln_Num";
129
+ Vulnattribute["Weight"] = "Weight";
130
+ })(Vulnattribute = exports.Vulnattribute || (exports.Vulnattribute = {}));
131
+ //# sourceMappingURL=checklistJsonix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checklistJsonix.js","sourceRoot":"","sources":["../../../src/ckl-mapper/checklistJsonix.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
+ import { Jsonix } from '@mitre/jsonix';
1
2
  export declare abstract class JsonixConverter<T> {
2
- xmlString: string;
3
- constructor(xmlString: string);
4
- toJsonix(mapping: Record<string, unknown>): T;
3
+ context: Jsonix.Context;
4
+ constructor(mapping: Record<string, unknown>);
5
+ toJsonix(xmlString: string): T;
6
+ fromJsonix(object: T): string;
5
7
  }
@@ -3,13 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.JsonixConverter = void 0;
4
4
  const jsonix_1 = require("@mitre/jsonix");
5
5
  class JsonixConverter {
6
- constructor(xmlString) {
7
- this.xmlString = xmlString;
6
+ constructor(mapping) {
7
+ this.context = new jsonix_1.Jsonix.Context([mapping]);
8
8
  }
9
- toJsonix(mapping) {
10
- const context = new jsonix_1.Jsonix.Context([mapping]);
11
- const unmarshaller = context.createUnmarshaller();
12
- return unmarshaller.unmarshalString(this.xmlString);
9
+ toJsonix(xmlString) {
10
+ const unmarshaller = this.context.createUnmarshaller();
11
+ return unmarshaller.unmarshalString(xmlString);
12
+ }
13
+ fromJsonix(object) {
14
+ const marshaller = this.context.createMarshaller();
15
+ return marshaller.marshalString(object);
13
16
  }
14
17
  }
15
18
  exports.JsonixConverter = JsonixConverter;
@@ -1 +1 @@
1
- {"version":3,"file":"jsonix-converter.js","sourceRoot":"","sources":["../../src/jsonix-converter.ts"],"names":[],"mappings":";;;AAAA,0CAAqC;AAErC,MAAsB,eAAe;IAGnC,YAAY,SAAiB;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,OAAgC;QACvC,MAAM,OAAO,GAAG,IAAI,eAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAClD,OAAO,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAM,CAAC;IAC3D,CAAC;CACF;AAZD,0CAYC"}
1
+ {"version":3,"file":"jsonix-converter.js","sourceRoot":"","sources":["../../src/jsonix-converter.ts"],"names":[],"mappings":";;;AAAA,0CAAqC;AAErC,MAAsB,eAAe;IAGnC,YAAY,OAAgC;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,eAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,QAAQ,CAAC,SAAiB;QACxB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACvD,OAAO,YAAY,CAAC,eAAe,CAAC,SAAS,CAAM,CAAC;IACtD,CAAC;IAED,UAAU,CAAC,MAAS;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACnD,OAAO,UAAU,CAAC,aAAa,CAAC,MAAiC,CAAC,CAAC;IACrE,CAAC;CACF;AAhBD,0CAgBC"}
@@ -1,4 +1,5 @@
1
1
  import { JsonixConverter } from './jsonix-converter';
2
2
  export declare abstract class JsonixIntermediateConverter<T, V> extends JsonixConverter<T> {
3
3
  abstract toIntermediateObject(jsonixObj: T): V;
4
+ abstract fromIntermediateObject(intermediateObj: V): T;
4
5
  }
@@ -1,6 +1,55 @@
1
1
  import { CciNistMappingItem } from './CciNistMappingItem';
2
+ type Reference = {
3
+ '@_creator': string;
4
+ '@_title': string;
5
+ '@_version': string;
6
+ '@_location': string;
7
+ '@_index': string;
8
+ };
9
+ type CciItem = {
10
+ status: string;
11
+ publishdate: string;
12
+ contributor: string;
13
+ definition: string;
14
+ type: string;
15
+ references: {
16
+ reference: Reference[];
17
+ };
18
+ '@_id': string;
19
+ };
20
+ type CciItems = {
21
+ cci_item: CciItem[];
22
+ };
23
+ type Metadata = {
24
+ version: string;
25
+ publishdate: string;
26
+ };
27
+ type CciList = {
28
+ metadata: Metadata;
29
+ cci_items: CciItems;
30
+ };
31
+ type CciNistData = {
32
+ '?xml': {
33
+ '@_version': string;
34
+ '@_encoding': string;
35
+ };
36
+ '?xml-stylesheet': {
37
+ '@_type': string;
38
+ '@_href': string;
39
+ };
40
+ cci_list: CciList;
41
+ };
42
+ export declare class CciNistTwoWayMapper {
43
+ data: CciNistData;
44
+ constructor();
45
+ nistFilter(identifiers: string[], defaultNist: string[], collapse?: boolean): string[];
46
+ cciFilter(identifiers: string[], defaultCci: string[]): string[];
47
+ private findHighestVersionNistControlByCci;
48
+ private findMatchingCciIdsByNistControl;
49
+ }
2
50
  export declare class CciNistMapping {
3
51
  data: CciNistMappingItem[];
4
52
  constructor();
5
53
  nistFilter(identifiers: string[], defaultNist: string[], collapse?: boolean): string[];
6
54
  }
55
+ export {};
@@ -1,8 +1,93 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CciNistMapping = void 0;
6
+ exports.CciNistMapping = exports.CciNistTwoWayMapper = void 0;
7
+ const fast_xml_parser_1 = require("fast-xml-parser");
8
+ const lodash_1 = __importDefault(require("lodash"));
9
+ const CCI_List_1 = require("../utils/CCI_List");
4
10
  const CciNistMappingData_1 = require("./CciNistMappingData");
5
11
  const CciNistMappingItem_1 = require("./CciNistMappingItem");
12
+ class CciNistTwoWayMapper {
13
+ constructor() {
14
+ const alwaysArray = ['cci_item', 'reference'];
15
+ const options = {
16
+ ignoreAttributes: false,
17
+ isArray: (tagName) => {
18
+ if (alwaysArray.includes(tagName)) {
19
+ return true;
20
+ }
21
+ else {
22
+ return false;
23
+ }
24
+ }
25
+ };
26
+ const parser = new fast_xml_parser_1.XMLParser(options);
27
+ this.data = parser.parse(CCI_List_1.CCI_List);
28
+ }
29
+ nistFilter(identifiers, defaultNist, collapse = true) {
30
+ const DEFAULT_NIST_TAGS = defaultNist;
31
+ let matches = [];
32
+ for (const id of identifiers) {
33
+ const nistRef = this.findHighestVersionNistControlByCci(id);
34
+ if (nistRef) {
35
+ matches.push(nistRef);
36
+ }
37
+ }
38
+ if (collapse) {
39
+ matches = lodash_1.default.uniq(matches);
40
+ }
41
+ return matches !== null && matches !== void 0 ? matches : DEFAULT_NIST_TAGS;
42
+ }
43
+ cciFilter(identifiers, defaultCci) {
44
+ const matches = [];
45
+ for (const id of identifiers) {
46
+ matches.push(...this.findMatchingCciIdsByNistControl(id));
47
+ }
48
+ return matches !== null && matches !== void 0 ? matches : defaultCci;
49
+ }
50
+ findHighestVersionNistControlByCci(targetId) {
51
+ let highestVersionControl = null;
52
+ let highestVersion = -1;
53
+ const { cci_item } = this.data.cci_list.cci_items;
54
+ const targetItem = cci_item.find((item) => item['@_id'] === targetId);
55
+ if (targetItem) {
56
+ for (const reference of targetItem.references.reference) {
57
+ const version = parseFloat(reference['@_version']);
58
+ if (version > highestVersion) {
59
+ highestVersion = version;
60
+ highestVersionControl = reference['@_index'];
61
+ }
62
+ }
63
+ }
64
+ return highestVersionControl;
65
+ }
66
+ findMatchingCciIdsByNistControl(pattern) {
67
+ const matchingIds = [];
68
+ const { cci_item } = this.data.cci_list.cci_items;
69
+ for (const item of cci_item) {
70
+ for (const reference of item.references.reference) {
71
+ const regexPattern = new RegExp(`^${pattern}`);
72
+ if (RegExp(regexPattern).exec(reference['@_index']) &&
73
+ item.type === 'technical') {
74
+ matchingIds.push(item['@_id']);
75
+ break;
76
+ }
77
+ if (matchingIds.length === 0) {
78
+ const regexEditedPattern = new RegExp(`${/\w\w-\d\d?\d?/g.exec(pattern)}`);
79
+ if (RegExp(regexEditedPattern).exec(reference['@_index']) &&
80
+ item.type === 'technical') {
81
+ matchingIds.push(item['@_id']);
82
+ break;
83
+ }
84
+ }
85
+ }
86
+ }
87
+ return matchingIds;
88
+ }
89
+ }
90
+ exports.CciNistTwoWayMapper = CciNistTwoWayMapper;
6
91
  class CciNistMapping {
7
92
  constructor() {
8
93
  this.data = [];
@@ -1 +1 @@
1
- {"version":3,"file":"CciNistMapping.js","sourceRoot":"","sources":["../../../src/mappings/CciNistMapping.ts"],"names":[],"mappings":";;;AAAA,6DAA0C;AAC1C,6DAAwD;AAExD,MAAa,cAAc;IAGzB;QACE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QAEf,IAAI,OAAO,yBAAI,KAAK,QAAQ,EAAE;YAC5B,MAAM,CAAC,OAAO,CAAC,yBAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,uCAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,UAAU,CACR,WAAqB,EACrB,WAAqB,EACrB,QAAQ,GAAG,IAAI;QAEf,MAAM,gBAAgB,GAAG,WAAW,CAAC;QACrC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;YAC7D,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;gBACvB,IAAI,QAAQ,EAAE;oBACZ,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;wBACvC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBAC3B;iBACF;qBAAM;oBACL,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC3B;aACF;QACH,CAAC,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO,gBAAgB,CAAC;SACzB;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AArCD,wCAqCC"}
1
+ {"version":3,"file":"CciNistMapping.js","sourceRoot":"","sources":["../../../src/mappings/CciNistMapping.ts"],"names":[],"mappings":"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"}