From dd3d5fbf00a4876e4f75c76b111eaa50e51dabd8 Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Fri, 7 Feb 2025 16:11:13 +0100 Subject: [PATCH 1/4] feat: prefix native module imports with `node:` Signed-off-by: Jan Kowalleck --- tests/_data/normalize.js | 4 ++-- tests/_data/serialize.js | 4 ++-- tests/_data/spdx.js | 4 ++-- tests/_data/specLoader.js | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/_data/normalize.js b/tests/_data/normalize.js index 884092e74..84415123a 100644 --- a/tests/_data/normalize.js +++ b/tests/_data/normalize.js @@ -17,8 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const fs = require('fs') -const path = require('path') +const fs = require('node:fs') +const path = require('node:path') /* eslint-disable jsdoc/valid-types */ diff --git a/tests/_data/serialize.js b/tests/_data/serialize.js index e91a75a64..a59af6be7 100644 --- a/tests/_data/serialize.js +++ b/tests/_data/serialize.js @@ -17,8 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const fs = require('fs') -const path = require('path') +const fs = require('node:fs') +const path = require('node:path') /* eslint-disable jsdoc/valid-types */ diff --git a/tests/_data/spdx.js b/tests/_data/spdx.js index 528792518..3df4ef597 100644 --- a/tests/_data/spdx.js +++ b/tests/_data/spdx.js @@ -17,8 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const fs = require('fs') -const assert = require('assert') +const fs = require('node:fs') +const assert = require('node:assert') const { _Resources: { FILES: { SPDX: { JSON_SCHEMA: SPDX_JSON_SCHEMA } } } } = require('../../') diff --git a/tests/_data/specLoader.js b/tests/_data/specLoader.js index d2d72a7b0..bc870f4d5 100644 --- a/tests/_data/specLoader.js +++ b/tests/_data/specLoader.js @@ -17,8 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const fs = require('fs') -const path = require('path') +const fs = require('nodeLfs') +const path = require('node:path') const resPath = path.resolve(__dirname, '..', '..', 'res', 'schema') From d1fd01e03d43ea22ec5f921cd47ff549a53ca6dc Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Fri, 14 Feb 2025 12:41:38 +0100 Subject: [PATCH 2/4] wip Signed-off-by: Jan Kowalleck --- src/_optPlug.node/__jsonValidators/ajv.ts | 3 +- .../__xmlValidators/libxmljs2.ts | 5 +- src/models/externalReference.ts | 1 + src/resources.node.ts | 2 +- src/types/cwe.ts | 3 +- tests/_data/models.js | 114 +++++++++--------- tests/_data/spdx.js | 2 +- tests/_data/specLoader.js | 6 +- tests/_data/specLoader.spec.js | 5 +- tests/_helpers/stringFunctions.spec.js | 3 +- tests/functional/Enums.ComponentScope.spec.js | 8 +- tests/functional/Enums.ComponentType.spec.js | 8 +- .../Enums.ExternalReferenceType.spec.js | 8 +- .../functional/Enums.HashAlogorithms.spec.js | 8 +- .../Enums.LicenseAcknowledgement.spec.js | 8 +- tests/functional/Enums.LifecyclePhase.spec.js | 8 +- .../Enums.Vulnerability.AffectStatus.spec.js | 8 +- ...ulnerability.AnalysisJustification.spec.js | 8 +- ...ums.Vulnerability.AnalysisResponse.spec.js | 8 +- .../Enums.Vulnerability.AnalysisState.spec.js | 8 +- .../Enums.Vulnerability.RatingMethod.spec.js | 8 +- .../Enums.Vulnerability.Severity.spec.js | 8 +- tests/functional/Resources.node.spec.js | 5 +- tests/functional/SPDX.spec.js | 6 +- tests/functional/Spec.SpecVersionDict.spec.js | 3 +- .../Validation.JsonValidator.node.spec.js | 9 +- .../Validation.XmlValidator.node.spec.js | 9 +- tests/functional/helpers.sortable.spec.js | 5 +- ....node.jsonValidator.implementation.spec.js | 5 +- .../OpPlug.node.jsonValidator.spec.js | 5 +- ...g.node.xmlStringify.implementation.spec.js | 5 +- .../OpPlug.node.xmlStringify.spec.js | 5 +- ...g.node.xmlValidator.implementation.spec.js | 11 +- .../OpPlug.node.xmlValidator.spec.js | 5 +- .../packageManifestExports.node.spec.js | 6 +- ...omNodePackageJson.ComponentBuilder.test.js | 3 +- ...s.FromNodePackageJson.ToolBuilders.test.js | 3 +- ...ckageJson.ExternalReferenceFactory.test.js | 3 +- ...mNodePackageJson.PackageUrlFactory.test.js | 4 +- .../Factories.LicenseFactory.test.js | 3 +- .../Factories.PackageUrlFactory.test.js | 4 +- .../Serialize.JsonNormalize.test.js | 8 +- .../Serialize.JsonSerialize.test.js | 8 +- .../Serialize.XmlNormalize.test.js | 8 +- .../Serialize.XmlSerialize.test.js | 9 +- .../Validation.JsonStrictValidator.test.js | 3 +- .../Validation.JsonValidator.test.js | 3 +- .../Validation.XmlValidator.test.js | 3 +- ...omNodePackageJson.ComponentBuilder.spec.js | 3 +- ...rs.FromNodePackageJson.ToolBuilder.spec.js | 3 +- ...s.FromNodePackageJson.PackageUrlFactory.js | 3 +- .../unit/Factories.PackageUrlFactory.spec.js | 4 +- tests/unit/Models.Bom.spec.js | 3 +- tests/unit/Models.Component.spec.js | 4 +- ...Models.Vulnerability.Vulnerability.spec.js | 3 +- tests/unit/Models.bomLink.spec.js | 4 +- tests/unit/SPDX.spec.js | 3 +- .../Serialize.BomRefDiscriminator.spec.js | 4 +- tests/unit/Serialize.JsonSerializer.spec.js | 3 +- tests/unit/Serialize.XML._xsd.spec.js | 3 +- .../unit/Serialize.XmlBaseSerializer.spec.js | 3 +- tests/unit/Serialize.XmlSerializer.spec.js | 3 +- tests/unit/Types.cpe.spec.js | 3 +- tests/unit/Utils.BomUtility.spec.js | 3 +- tools/code-style/eslint.config.mjs | 43 ++++++- tools/code-style/package.json | 3 + tools/schema-downloader/package.json | 5 +- webpack.config.js | 3 +- 68 files changed, 278 insertions(+), 209 deletions(-) diff --git a/src/_optPlug.node/__jsonValidators/ajv.ts b/src/_optPlug.node/__jsonValidators/ajv.ts index 0216cd1c3..e2fa46463 100644 --- a/src/_optPlug.node/__jsonValidators/ajv.ts +++ b/src/_optPlug.node/__jsonValidators/ajv.ts @@ -17,11 +17,12 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ +import { readFile } from 'node:fs/promises' + import Ajv, { type Options as AjvOptions } from 'ajv' import addFormats from 'ajv-formats' /* @ts-expect-error TS7016 */ import addFormats2019 from 'ajv-formats-draft2019' -import { readFile } from 'fs/promises' import type { ValidationError } from '../../validation/types' import type { Functionality, Validator } from '../jsonValidator' diff --git a/src/_optPlug.node/__xmlValidators/libxmljs2.ts b/src/_optPlug.node/__xmlValidators/libxmljs2.ts index a72989722..63cadad19 100644 --- a/src/_optPlug.node/__xmlValidators/libxmljs2.ts +++ b/src/_optPlug.node/__xmlValidators/libxmljs2.ts @@ -17,9 +17,10 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -import { readFile } from 'fs/promises' +import { readFile } from 'node:fs/promises' +import { pathToFileURL } from 'node:url' + import { type ParserOptions, parseXml } from 'libxmljs2' -import { pathToFileURL } from 'url' import type { ValidationError } from '../../validation/types' import type { Functionality, Validator } from '../xmlValidator' diff --git a/src/models/externalReference.ts b/src/models/externalReference.ts index 7fdd442fd..a538b3a25 100644 --- a/src/models/externalReference.ts +++ b/src/models/externalReference.ts @@ -23,6 +23,7 @@ import type { ExternalReferenceType } from '../enums/externalReferenceType' import type { BomLink } from './bomLink' import { HashDictionary } from './hash' + export interface OptionalExternalReferenceProperties { hashes?: ExternalReference['hashes'] comment?: ExternalReference['comment'] diff --git a/src/resources.node.ts b/src/resources.node.ts index 0b98b6e5a..551720973 100644 --- a/src/resources.node.ts +++ b/src/resources.node.ts @@ -17,7 +17,7 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -import { resolve } from 'path' +import { resolve } from 'node:path' import { Version } from './spec/enums' diff --git a/src/types/cwe.ts b/src/types/cwe.ts index c5596681c..ad7136b7b 100644 --- a/src/types/cwe.ts +++ b/src/types/cwe.ts @@ -18,8 +18,7 @@ Copyright (c) OWASP Foundation. All Rights Reserved. */ import { SortableNumbers } from '../_helpers/sortable' -import type { PositiveInteger } from './integer' -import { isPositiveInteger } from './integer' +import { isPositiveInteger, type PositiveInteger} from './integer' /** * Integer representation of a Common Weaknesses Enumerations (CWE). diff --git a/tests/_data/models.js b/tests/_data/models.js index 50fce1888..06a1c47fa 100644 --- a/tests/_data/models.js +++ b/tests/_data/models.js @@ -24,6 +24,63 @@ const { Enums, Models, Types } = require('../../') /** * @returns {Models.Bom} */ +module.exports.createAllTools = function () { + const bomSerialNumberRaw = '8fd9e244-73b6-4cd3-ab3a-a0fefdee5c9e' + const bom = new Models.Bom({ + version: 7, + serialNumber: `urn:uuid:${bomSerialNumberRaw}`, + }) + bom.metadata.tools.components.add( + new Models.Component( + Enums.ComponentType.Application, + 'Component tool name', { + group: 'Component tool group', + version: '0.8.15', + hashes: new Models.HashDictionary([ + [Enums.HashAlgorithm.MD5, '974e5cc07da6e4536bffd935fd4ddc61'], + [Enums.HashAlgorithm['SHA-1'], '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed'] + ]) + })) + bom.metadata.tools.services.add( + new Models.Service('sbom-generator-service', { + group: 'Service tool group', + version: '1', + externalReferences: new Models.ExternalReferenceRepository([ + new Models.ExternalReference( + 'https://example.com/sbom-generator-service/', + Enums.ExternalReferenceType.Website, + { comment: 'the service that made this' } + ) + ]) + }) + ) + bom.metadata.tools.tools.add( + new Models.Tool({ + vendor: 'Tool tool vendor', + name: 'Tool tool name', + version: '0.8.15', + hashes: new Models.HashDictionary([ + [Enums.HashAlgorithm.MD5, 'f32a26e2a3a8aa338cd77b6e1263c535'], + [Enums.HashAlgorithm['SHA-1'], '829c3804401b0727f70f73d4415e162400cbe57b'] + ]) + }) + ) + bom.metadata.tools.tools.add( + new Models.Tool({ + vendor: 'Tool tool vendor', + name: 'Tool other tool', + version: '', // empty string, not undefined + externalReferences: new Models.ExternalReferenceRepository([ + new Models.ExternalReference( + 'https://cyclonedx.org/tool-center/', + Enums.ExternalReferenceType.Website, + { comment: 'the tools that made this' } + ) + ]) + }) + ) + return bom +} module.exports.createComplexStructure = function () { const bomSerialNumberRaw = 'ac35b126-ef3a-11ed-a05b-0242ac120003' const bom = new Models.Bom({ @@ -613,60 +670,3 @@ module.exports.createComplexStructure = function () { /** * @returns {Models.Bom} */ -module.exports.createAllTools = function () { - const bomSerialNumberRaw = '8fd9e244-73b6-4cd3-ab3a-a0fefdee5c9e' - const bom = new Models.Bom({ - version: 7, - serialNumber: `urn:uuid:${bomSerialNumberRaw}`, - }) - bom.metadata.tools.components.add( - new Models.Component( - Enums.ComponentType.Application, - 'Component tool name', { - group: 'Component tool group', - version: '0.8.15', - hashes: new Models.HashDictionary([ - [Enums.HashAlgorithm.MD5, '974e5cc07da6e4536bffd935fd4ddc61'], - [Enums.HashAlgorithm['SHA-1'], '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed'] - ]) - })) - bom.metadata.tools.services.add( - new Models.Service('sbom-generator-service', { - group: 'Service tool group', - version: '1', - externalReferences: new Models.ExternalReferenceRepository([ - new Models.ExternalReference( - 'https://example.com/sbom-generator-service/', - Enums.ExternalReferenceType.Website, - { comment: 'the service that made this' } - ) - ]) - }) - ) - bom.metadata.tools.tools.add( - new Models.Tool({ - vendor: 'Tool tool vendor', - name: 'Tool tool name', - version: '0.8.15', - hashes: new Models.HashDictionary([ - [Enums.HashAlgorithm.MD5, 'f32a26e2a3a8aa338cd77b6e1263c535'], - [Enums.HashAlgorithm['SHA-1'], '829c3804401b0727f70f73d4415e162400cbe57b'] - ]) - }) - ) - bom.metadata.tools.tools.add( - new Models.Tool({ - vendor: 'Tool tool vendor', - name: 'Tool other tool', - version: '', // empty string, not undefined - externalReferences: new Models.ExternalReferenceRepository([ - new Models.ExternalReference( - 'https://cyclonedx.org/tool-center/', - Enums.ExternalReferenceType.Website, - { comment: 'the tools that made this' } - ) - ]) - }) - ) - return bom -} diff --git a/tests/_data/spdx.js b/tests/_data/spdx.js index 3df4ef597..f2345a76e 100644 --- a/tests/_data/spdx.js +++ b/tests/_data/spdx.js @@ -17,8 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const fs = require('node:fs') const assert = require('node:assert') +const fs = require('node:fs') const { _Resources: { FILES: { SPDX: { JSON_SCHEMA: SPDX_JSON_SCHEMA } } } } = require('../../') diff --git a/tests/_data/specLoader.js b/tests/_data/specLoader.js index bc870f4d5..6b594a05a 100644 --- a/tests/_data/specLoader.js +++ b/tests/_data/specLoader.js @@ -17,7 +17,7 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const fs = require('nodeLfs') +const fs = require('node:fs') const path = require('node:path') const resPath = path.resolve(__dirname, '..', '..', 'res', 'schema') @@ -72,7 +72,7 @@ function getSpecEnum (resourceFile, ...path) { } module.exports = { - loadSpec, getSpecElement, - getSpecEnum + getSpecEnum, + loadSpec } diff --git a/tests/_data/specLoader.spec.js b/tests/_data/specLoader.spec.js index ee19c6523..c63107f15 100644 --- a/tests/_data/specLoader.spec.js +++ b/tests/_data/specLoader.spec.js @@ -17,10 +17,11 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') -const { loadSpec, getSpecElement, getSpecEnum } = require('./specLoader') +const { getSpecElement, getSpecEnum, loadSpec } = require('./specLoader') suite('test helpers: specLoader', () => { diff --git a/tests/_helpers/stringFunctions.spec.js b/tests/_helpers/stringFunctions.spec.js index d53988434..bd604aa1d 100644 --- a/tests/_helpers/stringFunctions.spec.js +++ b/tests/_helpers/stringFunctions.spec.js @@ -17,7 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const stringFunctions = require('./stringFunctions') diff --git a/tests/functional/Enums.ComponentScope.spec.js b/tests/functional/Enums.ComponentScope.spec.js index 24a6a901d..f272ffaa6 100644 --- a/tests/functional/Enums.ComponentScope.spec.js +++ b/tests/functional/Enums.ComponentScope.spec.js @@ -17,17 +17,17 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { suite, test } = require('mocha') +const assert = require('node:assert') -const { getSpecEnum } = require('../_data/specLoader') -const { upperCamelCase } = require('../_helpers/stringFunctions') +const { suite, test } = require('mocha') const { Enums: { ComponentScope }, Spec: { Version }, _Resources: { FILES: { CDX: { JSON_SCHEMA: CDX_JSON_SCHEMA } } } } = require('../../') +const { getSpecEnum } = require('../_data/specLoader') +const { upperCamelCase } = require('../_helpers/stringFunctions') suite('functional: ComponentScope enum', () => { const specVersions = new Set([ diff --git a/tests/functional/Enums.ComponentType.spec.js b/tests/functional/Enums.ComponentType.spec.js index ebeb2eb72..af2fa43c4 100644 --- a/tests/functional/Enums.ComponentType.spec.js +++ b/tests/functional/Enums.ComponentType.spec.js @@ -17,17 +17,17 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { suite, test } = require('mocha') +const assert = require('node:assert') -const { getSpecEnum } = require('../_data/specLoader') -const { upperCamelCase } = require('../_helpers/stringFunctions') +const { suite, test } = require('mocha') const { Enums: { ComponentType }, Spec: { Version, SpecVersionDict }, _Resources: { FILES: { CDX: { JSON_SCHEMA: CDX_JSON_SCHEMA } } } } = require('../../') +const { getSpecEnum } = require('../_data/specLoader') +const { upperCamelCase } = require('../_helpers/stringFunctions') suite('functional: ComponentType enum', () => { const specVersions = new Set([ diff --git a/tests/functional/Enums.ExternalReferenceType.spec.js b/tests/functional/Enums.ExternalReferenceType.spec.js index 6470b6987..74b1c46bb 100644 --- a/tests/functional/Enums.ExternalReferenceType.spec.js +++ b/tests/functional/Enums.ExternalReferenceType.spec.js @@ -17,17 +17,17 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { suite, test } = require('mocha') +const assert = require('node:assert') -const { getSpecEnum } = require('../_data/specLoader') -const { upperCamelCase } = require('../_helpers/stringFunctions') +const { suite, test } = require('mocha') const { Enums: { ExternalReferenceType }, Spec: { Version, SpecVersionDict }, _Resources: { FILES: { CDX: { JSON_SCHEMA: CDX_JSON_SCHEMA } } } } = require('../../') +const { getSpecEnum } = require('../_data/specLoader') +const { upperCamelCase } = require('../_helpers/stringFunctions') suite('functional: ExternalReferenceType enum', () => { const specVersions = new Set([ diff --git a/tests/functional/Enums.HashAlogorithms.spec.js b/tests/functional/Enums.HashAlogorithms.spec.js index 4c478c171..eeefdc596 100644 --- a/tests/functional/Enums.HashAlogorithms.spec.js +++ b/tests/functional/Enums.HashAlogorithms.spec.js @@ -17,17 +17,17 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { suite, test } = require('mocha') +const assert = require('node:assert') -const { getSpecEnum } = require('../_data/specLoader') -const { capitaliseFirstLetter } = require('../_helpers/stringFunctions') +const { suite, test } = require('mocha') const { Enums: { HashAlgorithm }, Spec: { Version, SpecVersionDict }, _Resources: { FILES: { CDX: { JSON_SCHEMA: CDX_JSON_SCHEMA } } } } = require('../../') +const { getSpecEnum } = require('../_data/specLoader') +const { capitaliseFirstLetter } = require('../_helpers/stringFunctions') suite('functional: HashAlgorithm enum', () => { const specVersions = new Set([ diff --git a/tests/functional/Enums.LicenseAcknowledgement.spec.js b/tests/functional/Enums.LicenseAcknowledgement.spec.js index 631a358b3..5da3b55a4 100644 --- a/tests/functional/Enums.LicenseAcknowledgement.spec.js +++ b/tests/functional/Enums.LicenseAcknowledgement.spec.js @@ -17,17 +17,17 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { suite, test } = require('mocha') +const assert = require('node:assert') -const { getSpecEnum } = require('../_data/specLoader') -const { upperCamelCase } = require('../_helpers/stringFunctions') +const { suite, test } = require('mocha') const { Enums: { LicenseAcknowledgement }, Spec: { Version }, _Resources: { FILES: { CDX: { JSON_SCHEMA: CDX_JSON_SCHEMA } } } } = require('../../') +const { getSpecEnum } = require('../_data/specLoader') +const { upperCamelCase } = require('../_helpers/stringFunctions') suite('functional: LicenseAcknowledgement enum', () => { const specVersions = new Set([ diff --git a/tests/functional/Enums.LifecyclePhase.spec.js b/tests/functional/Enums.LifecyclePhase.spec.js index d0a55548b..014c3b77e 100644 --- a/tests/functional/Enums.LifecyclePhase.spec.js +++ b/tests/functional/Enums.LifecyclePhase.spec.js @@ -17,17 +17,17 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { suite, test } = require('mocha') +const assert = require('node:assert') -const { getSpecEnum } = require('../_data/specLoader') -const { upperCamelCase } = require('../_helpers/stringFunctions') +const { suite, test } = require('mocha') const { Enums: { LifecyclePhase }, Spec: { Version }, _Resources: { FILES: { CDX: { JSON_SCHEMA: CDX_JSON_SCHEMA } } } } = require('../../') +const { getSpecEnum } = require('../_data/specLoader') +const { upperCamelCase } = require('../_helpers/stringFunctions') suite('functional: LifecyclePhase enum', () => { const specVersions = new Set([ diff --git a/tests/functional/Enums.Vulnerability.AffectStatus.spec.js b/tests/functional/Enums.Vulnerability.AffectStatus.spec.js index 388ec6cc9..94495143e 100644 --- a/tests/functional/Enums.Vulnerability.AffectStatus.spec.js +++ b/tests/functional/Enums.Vulnerability.AffectStatus.spec.js @@ -17,17 +17,17 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { suite, test } = require('mocha') +const assert = require('node:assert') -const { getSpecEnum } = require('../_data/specLoader') -const { upperCamelCase } = require('../_helpers/stringFunctions') +const { suite, test } = require('mocha') const { Enums: { Vulnerability: { AffectStatus } }, Spec: { Version }, _Resources: { FILES: { CDX: { JSON_SCHEMA: CDX_JSON_SCHEMA } } } } = require('../../') +const { getSpecEnum } = require('../_data/specLoader') +const { upperCamelCase } = require('../_helpers/stringFunctions') suite('functional: Vulnerability.AffectStatus enum', () => { const specVersions = new Set([ diff --git a/tests/functional/Enums.Vulnerability.AnalysisJustification.spec.js b/tests/functional/Enums.Vulnerability.AnalysisJustification.spec.js index c7bf3a38e..82104680a 100644 --- a/tests/functional/Enums.Vulnerability.AnalysisJustification.spec.js +++ b/tests/functional/Enums.Vulnerability.AnalysisJustification.spec.js @@ -17,17 +17,17 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { suite, test } = require('mocha') +const assert = require('node:assert') -const { getSpecEnum } = require('../_data/specLoader') -const { upperCamelCase } = require('../_helpers/stringFunctions') +const { suite, test } = require('mocha') const { Enums: { Vulnerability: { AnalysisJustification } }, Spec: { Version }, _Resources: { FILES: { CDX: { JSON_SCHEMA: CDX_JSON_SCHEMA } } } } = require('../../') +const { getSpecEnum } = require('../_data/specLoader') +const { upperCamelCase } = require('../_helpers/stringFunctions') suite('functional: Vulnerability.AnalysisJustification enum', () => { const specVersions = new Set([ diff --git a/tests/functional/Enums.Vulnerability.AnalysisResponse.spec.js b/tests/functional/Enums.Vulnerability.AnalysisResponse.spec.js index 9bc3aeeff..20acaafed 100644 --- a/tests/functional/Enums.Vulnerability.AnalysisResponse.spec.js +++ b/tests/functional/Enums.Vulnerability.AnalysisResponse.spec.js @@ -17,17 +17,17 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { suite, test } = require('mocha') +const assert = require('node:assert') -const { getSpecEnum } = require('../_data/specLoader') -const { upperCamelCase } = require('../_helpers/stringFunctions') +const { suite, test } = require('mocha') const { Enums: { Vulnerability: { AnalysisResponse } }, Spec: { Version }, _Resources: { FILES: { CDX: { JSON_SCHEMA: CDX_JSON_SCHEMA } } } } = require('../../') +const { getSpecEnum } = require('../_data/specLoader') +const { upperCamelCase } = require('../_helpers/stringFunctions') suite('functional: Vulnerability.AnalysisResponse enum', () => { const specVersions = new Set([ diff --git a/tests/functional/Enums.Vulnerability.AnalysisState.spec.js b/tests/functional/Enums.Vulnerability.AnalysisState.spec.js index 0c31b8346..90f3855f8 100644 --- a/tests/functional/Enums.Vulnerability.AnalysisState.spec.js +++ b/tests/functional/Enums.Vulnerability.AnalysisState.spec.js @@ -17,17 +17,17 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { suite, test } = require('mocha') +const assert = require('node:assert') -const { getSpecEnum } = require('../_data/specLoader') -const { upperCamelCase } = require('../_helpers/stringFunctions') +const { suite, test } = require('mocha') const { Enums: { Vulnerability: { AnalysisState } }, Spec: { Version }, _Resources: { FILES: { CDX: { JSON_SCHEMA: CDX_JSON_SCHEMA } } } } = require('../../') +const { getSpecEnum } = require('../_data/specLoader') +const { upperCamelCase } = require('../_helpers/stringFunctions') suite('functional: Vulnerability.AnalysisState enum', () => { const specVersions = new Set([ diff --git a/tests/functional/Enums.Vulnerability.RatingMethod.spec.js b/tests/functional/Enums.Vulnerability.RatingMethod.spec.js index 40a93579a..ad9e6f96a 100644 --- a/tests/functional/Enums.Vulnerability.RatingMethod.spec.js +++ b/tests/functional/Enums.Vulnerability.RatingMethod.spec.js @@ -17,17 +17,17 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { suite, test } = require('mocha') +const assert = require('node:assert') -const { getSpecEnum } = require('../_data/specLoader') -const { upperCamelCase } = require('../_helpers/stringFunctions') +const { suite, test } = require('mocha') const { Enums: { Vulnerability: { RatingMethod } }, Spec: { Version, SpecVersionDict }, _Resources: { FILES: { CDX: { JSON_SCHEMA: CDX_JSON_SCHEMA } } } } = require('../../') +const { getSpecEnum } = require('../_data/specLoader') +const { upperCamelCase } = require('../_helpers/stringFunctions') suite('functional: Vulnerability.RatingMethod enum', () => { const specVersions = new Set([ diff --git a/tests/functional/Enums.Vulnerability.Severity.spec.js b/tests/functional/Enums.Vulnerability.Severity.spec.js index 200ec4160..83a4fd0d5 100644 --- a/tests/functional/Enums.Vulnerability.Severity.spec.js +++ b/tests/functional/Enums.Vulnerability.Severity.spec.js @@ -17,17 +17,17 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { suite, test } = require('mocha') +const assert = require('node:assert') -const { getSpecEnum } = require('../_data/specLoader') -const { upperCamelCase } = require('../_helpers/stringFunctions') +const { suite, test } = require('mocha') const { Enums: { Vulnerability: { Severity } }, Spec: { Version }, _Resources: { FILES: { CDX: { JSON_SCHEMA: CDX_JSON_SCHEMA } } } } = require('../../') +const { getSpecEnum } = require('../_data/specLoader') +const { upperCamelCase } = require('../_helpers/stringFunctions') suite('functional: Vulnerability.Severity enum', () => { const specVersions = new Set([ diff --git a/tests/functional/Resources.node.spec.js b/tests/functional/Resources.node.spec.js index 7c3b33c8c..c66b3798a 100644 --- a/tests/functional/Resources.node.spec.js +++ b/tests/functional/Resources.node.spec.js @@ -17,8 +17,9 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const fs = require('fs') -const assert = require('assert') +const assert = require('node:assert') +const fs = require('node:fs') + const { suite, test } = require('mocha') const { diff --git a/tests/functional/SPDX.spec.js b/tests/functional/SPDX.spec.js index 8ca0746b1..8dda420cd 100644 --- a/tests/functional/SPDX.spec.js +++ b/tests/functional/SPDX.spec.js @@ -17,12 +17,12 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { suite, test } = require('mocha') +const assert = require('node:assert') -const { spdxSpecEnum } = require('../_data/spdx') +const { suite, test } = require('mocha') const { SPDX } = require('../../') +const { spdxSpecEnum } = require('../_data/spdx') suite('functional: SPDX.isSupportedSpdxId()', () => { /** @type {string[]} knownSpdxIds */ diff --git a/tests/functional/Spec.SpecVersionDict.spec.js b/tests/functional/Spec.SpecVersionDict.spec.js index 6c5a98ebf..026459d37 100644 --- a/tests/functional/Spec.SpecVersionDict.spec.js +++ b/tests/functional/Spec.SpecVersionDict.spec.js @@ -17,7 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { diff --git a/tests/functional/Validation.JsonValidator.node.spec.js b/tests/functional/Validation.JsonValidator.node.spec.js index a98c4284a..7634ce358 100644 --- a/tests/functional/Validation.JsonValidator.node.spec.js +++ b/tests/functional/Validation.JsonValidator.node.spec.js @@ -17,11 +17,12 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const fs = require('fs') -const path = require('path') -const assert = require('assert') -const { suite, test, before } = require('mocha') +const assert = require('node:assert') +const fs = require('node:fs') +const path = require('node:path') + const { globSync } = require('fast-glob') +const { before, suite, test } = require('mocha') const { Validation: { JsonValidator, JsonStrictValidator }, diff --git a/tests/functional/Validation.XmlValidator.node.spec.js b/tests/functional/Validation.XmlValidator.node.spec.js index 7f80e12a1..f9fce4ef5 100644 --- a/tests/functional/Validation.XmlValidator.node.spec.js +++ b/tests/functional/Validation.XmlValidator.node.spec.js @@ -17,11 +17,12 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const fs = require('fs') -const path = require('path') -const assert = require('assert') -const { suite, test, before } = require('mocha') +const assert = require('node:assert') +const fs = require('node:fs') +const path = require('node:path') + const { globSync } = require('fast-glob') +const { before, suite, test } = require('mocha') const { Validation: { XmlValidator }, diff --git a/tests/functional/helpers.sortable.spec.js b/tests/functional/helpers.sortable.spec.js index 61ca0f600..eb1f0aaf6 100644 --- a/tests/functional/helpers.sortable.spec.js +++ b/tests/functional/helpers.sortable.spec.js @@ -17,10 +17,11 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') -const { SortableStringables, SortableNumbers, SortableComparables } = require('../../dist.node/_helpers/sortable') +const { SortableComparables, SortableNumbers, SortableStringables } = require('../../dist.node/_helpers/sortable') suite('functional: helpers.sortable', () => { suite('SortableStringables', () => { diff --git a/tests/functional/internals/OpPlug.node.jsonValidator.implementation.spec.js b/tests/functional/internals/OpPlug.node.jsonValidator.implementation.spec.js index 548f541d4..73c92c8f8 100644 --- a/tests/functional/internals/OpPlug.node.jsonValidator.implementation.spec.js +++ b/tests/functional/internals/OpPlug.node.jsonValidator.implementation.spec.js @@ -17,8 +17,9 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { suite, test, before } = require('mocha') +const assert = require('node:assert') + +const { before, suite, test } = require('mocha') const { _Resources: Resources, diff --git a/tests/functional/internals/OpPlug.node.jsonValidator.spec.js b/tests/functional/internals/OpPlug.node.jsonValidator.spec.js index 8ac597de4..9b615d653 100644 --- a/tests/functional/internals/OpPlug.node.jsonValidator.spec.js +++ b/tests/functional/internals/OpPlug.node.jsonValidator.spec.js @@ -17,15 +17,16 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { _Resources: Resources, Spec: { Version } } = require('../../../') -const { default: makeValidator } = require('../../../dist.node/_optPlug.node/jsonValidator') const { OptPlugError } = require('../../../dist.node/_optPlug.node/errors') +const { default: makeValidator } = require('../../../dist.node/_optPlug.node/jsonValidator') suite('functional: internals: OpPlug.node.jsonValidator auto', () => { if (makeValidator.fails) { diff --git a/tests/functional/internals/OpPlug.node.xmlStringify.implementation.spec.js b/tests/functional/internals/OpPlug.node.xmlStringify.implementation.spec.js index 2218c1a1d..4eb261ddb 100644 --- a/tests/functional/internals/OpPlug.node.xmlStringify.implementation.spec.js +++ b/tests/functional/internals/OpPlug.node.xmlStringify.implementation.spec.js @@ -17,8 +17,9 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { suite, test, before } = require('mocha') +const assert = require('node:assert') + +const { before, suite, test } = require('mocha') suite('functional: internals: OpPlug.node.xmlStringify implementation', () => { for (const impl of ['xmlbuilder2']) { diff --git a/tests/functional/internals/OpPlug.node.xmlStringify.spec.js b/tests/functional/internals/OpPlug.node.xmlStringify.spec.js index c8aa7c40b..87477c32f 100644 --- a/tests/functional/internals/OpPlug.node.xmlStringify.spec.js +++ b/tests/functional/internals/OpPlug.node.xmlStringify.spec.js @@ -17,11 +17,12 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') -const { default: xmlStringify } = require('../../../dist.node/_optPlug.node/xmlStringify') const { OptPlugError } = require('../../../dist.node/_optPlug.node/errors') +const { default: xmlStringify } = require('../../../dist.node/_optPlug.node/xmlStringify') suite('functional: internals: OpPlug.node.xmlStringify auto', () => { if (xmlStringify.fails) { diff --git a/tests/functional/internals/OpPlug.node.xmlValidator.implementation.spec.js b/tests/functional/internals/OpPlug.node.xmlValidator.implementation.spec.js index ba6a08206..42bc30e4b 100644 --- a/tests/functional/internals/OpPlug.node.xmlValidator.implementation.spec.js +++ b/tests/functional/internals/OpPlug.node.xmlValidator.implementation.spec.js @@ -17,16 +17,17 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { suite, test, before } = require('mocha') +const assert = require('node:assert') +const { realpathSync } = require('node:fs') +const { join } = require('node:path') +const { pathToFileURL } = require('node:url') + +const { before, suite, test } = require('mocha') const { _Resources: Resources, Spec: { Version } } = require('../../../') -const { pathToFileURL } = require('url') -const { realpathSync } = require('fs') -const { join } = require('path') suite('functional: internals: OpPlug.node.xmlValidator implementation', () => { for (const impl of ['libxmljs2']) { diff --git a/tests/functional/internals/OpPlug.node.xmlValidator.spec.js b/tests/functional/internals/OpPlug.node.xmlValidator.spec.js index a23dcfc1e..dd03e056d 100644 --- a/tests/functional/internals/OpPlug.node.xmlValidator.spec.js +++ b/tests/functional/internals/OpPlug.node.xmlValidator.spec.js @@ -17,15 +17,16 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { _Resources: Resources, Spec: { Version } } = require('../../../') -const { default: makeValidator } = require('../../../dist.node/_optPlug.node/xmlValidator') const { OptPlugError } = require('../../../dist.node/_optPlug.node/errors') +const { default: makeValidator } = require('../../../dist.node/_optPlug.node/xmlValidator') suite('functional: internals: OpPlug.node.xmlValidator auto', () => { if (makeValidator.fails) { diff --git a/tests/functional/packageManifestExports.node.spec.js b/tests/functional/packageManifestExports.node.spec.js index 95d5ea234..34deefcd5 100644 --- a/tests/functional/packageManifestExports.node.spec.js +++ b/tests/functional/packageManifestExports.node.spec.js @@ -17,9 +17,9 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { join, dirname } = require('path') -const { readFileSync } = require('fs') +const assert = require('node:assert') +const { readFileSync } = require('node:fs') +const { dirname, join } = require('node:path') const { suite, test } = require('mocha') diff --git a/tests/integration/Builders.FromNodePackageJson.ComponentBuilder.test.js b/tests/integration/Builders.FromNodePackageJson.ComponentBuilder.test.js index 5c25bf713..d63f09ac1 100644 --- a/tests/integration/Builders.FromNodePackageJson.ComponentBuilder.test.js +++ b/tests/integration/Builders.FromNodePackageJson.ComponentBuilder.test.js @@ -17,7 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { diff --git a/tests/integration/Builders.FromNodePackageJson.ToolBuilders.test.js b/tests/integration/Builders.FromNodePackageJson.ToolBuilders.test.js index 66ab6c154..0db754405 100644 --- a/tests/integration/Builders.FromNodePackageJson.ToolBuilders.test.js +++ b/tests/integration/Builders.FromNodePackageJson.ToolBuilders.test.js @@ -17,7 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { diff --git a/tests/integration/Factories.FromNodePackageJson.ExternalReferenceFactory.test.js b/tests/integration/Factories.FromNodePackageJson.ExternalReferenceFactory.test.js index 0f7271fc1..6c16daa73 100644 --- a/tests/integration/Factories.FromNodePackageJson.ExternalReferenceFactory.test.js +++ b/tests/integration/Factories.FromNodePackageJson.ExternalReferenceFactory.test.js @@ -17,7 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { diff --git a/tests/integration/Factories.FromNodePackageJson.PackageUrlFactory.test.js b/tests/integration/Factories.FromNodePackageJson.PackageUrlFactory.test.js index dddc549b7..f97c715df 100644 --- a/tests/integration/Factories.FromNodePackageJson.PackageUrlFactory.test.js +++ b/tests/integration/Factories.FromNodePackageJson.PackageUrlFactory.test.js @@ -17,9 +17,9 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { suite, test } = require('mocha') +const assert = require('node:assert') +const { suite, test } = require('mocha') const { PackageURL } = require('packageurl-js') const { diff --git a/tests/integration/Factories.LicenseFactory.test.js b/tests/integration/Factories.LicenseFactory.test.js index 1ab5856ad..ebfd52f74 100644 --- a/tests/integration/Factories.LicenseFactory.test.js +++ b/tests/integration/Factories.LicenseFactory.test.js @@ -17,7 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { diff --git a/tests/integration/Factories.PackageUrlFactory.test.js b/tests/integration/Factories.PackageUrlFactory.test.js index 60c4d8409..4aba9d5d3 100644 --- a/tests/integration/Factories.PackageUrlFactory.test.js +++ b/tests/integration/Factories.PackageUrlFactory.test.js @@ -17,9 +17,9 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { suite, test } = require('mocha') +const assert = require('node:assert') +const { suite, test } = require('mocha') const { PackageURL } = require('packageurl-js') const { diff --git a/tests/integration/Serialize.JsonNormalize.test.js b/tests/integration/Serialize.JsonNormalize.test.js index 092e68a72..cf3e5d54d 100644 --- a/tests/integration/Serialize.JsonNormalize.test.js +++ b/tests/integration/Serialize.JsonNormalize.test.js @@ -17,11 +17,9 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { describe, beforeEach, afterEach, it } = require('mocha') +const assert = require('node:assert') -const { createComplexStructure } = require('../_data/models') -const { loadNormalizeResult, writeNormalizeResult } = require('../_data/normalize') +const { afterEach, beforeEach, describe, it } = require('mocha') const { Serialize: { @@ -29,6 +27,8 @@ const { }, Spec } = require('../../') +const { createComplexStructure } = require('../_data/models') +const { loadNormalizeResult, writeNormalizeResult } = require('../_data/normalize') describe('integration.Serialize.JsonNormalize', function () { this.timeout(60000); diff --git a/tests/integration/Serialize.JsonSerialize.test.js b/tests/integration/Serialize.JsonSerialize.test.js index 3a4b4f4a6..978e4462f 100644 --- a/tests/integration/Serialize.JsonSerialize.test.js +++ b/tests/integration/Serialize.JsonSerialize.test.js @@ -17,11 +17,9 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { describe, beforeEach, afterEach, it } = require('mocha') +const assert = require('node:assert') -const { createComplexStructure, createAllTools } = require('../_data/models') -const { loadSerializeResult, writeSerializeResult } = require('../_data/serialize') +const { afterEach, beforeEach, describe, it } = require('mocha') const { Models, Enums, @@ -35,6 +33,8 @@ const { JsonStrictValidator } } = require('../../') +const { createAllTools, createComplexStructure } = require('../_data/models') +const { loadSerializeResult, writeSerializeResult } = require('../_data/serialize') describe('integration.Serialize.JsonSerialize', function () { this.timeout(60000); diff --git a/tests/integration/Serialize.XmlNormalize.test.js b/tests/integration/Serialize.XmlNormalize.test.js index 8a9ebe805..150a77ce4 100644 --- a/tests/integration/Serialize.XmlNormalize.test.js +++ b/tests/integration/Serialize.XmlNormalize.test.js @@ -17,11 +17,9 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { describe, beforeEach, afterEach, it } = require('mocha') +const assert = require('node:assert') -const { createComplexStructure } = require('../_data/models') -const { loadNormalizeResult, writeNormalizeResult } = require('../_data/normalize') +const { afterEach, beforeEach, describe, it } = require('mocha') const { Models, Enums, @@ -30,6 +28,8 @@ const { }, Spec } = require('../../') +const { createComplexStructure } = require('../_data/models') +const { loadNormalizeResult, writeNormalizeResult } = require('../_data/normalize') describe('integration.Serialize.XmlNormalize', function () { this.timeout(60000); diff --git a/tests/integration/Serialize.XmlSerialize.test.js b/tests/integration/Serialize.XmlSerialize.test.js index db6cf2a14..b74c36342 100644 --- a/tests/integration/Serialize.XmlSerialize.test.js +++ b/tests/integration/Serialize.XmlSerialize.test.js @@ -17,11 +17,9 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { describe, beforeEach, afterEach, it } = require('mocha') +const assert = require('node:assert') -const { createComplexStructure, createAllTools } = require('../_data/models') -const { loadSerializeResult, writeSerializeResult } = require('../_data/serialize') +const { afterEach, beforeEach, describe, it } = require('mocha') const { Models, Enums, @@ -32,8 +30,9 @@ const { Spec, Validation } = require('../../') - const { default: xmlStringify } = require('../../dist.node/_optPlug.node/xmlStringify') +const { createAllTools, createComplexStructure } = require('../_data/models') +const { loadSerializeResult, writeSerializeResult } = require('../_data/serialize') describe('integration.Serialize.XmlSerialize', function () { const expectMissingDepError = xmlStringify.fails ?? false diff --git a/tests/integration/Validation.JsonStrictValidator.test.js b/tests/integration/Validation.JsonStrictValidator.test.js index 84cc4e2ee..7ba583d00 100644 --- a/tests/integration/Validation.JsonStrictValidator.test.js +++ b/tests/integration/Validation.JsonStrictValidator.test.js @@ -17,7 +17,7 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') const { describe, it } = require('mocha') @@ -28,7 +28,6 @@ const { JsonStrictValidator } } = require('../../') - const { default: jsonValidator } = require('../../dist.node/_optPlug.node/jsonValidator') describe('integration.Validation.JsonStrictValidator', () => { diff --git a/tests/integration/Validation.JsonValidator.test.js b/tests/integration/Validation.JsonValidator.test.js index 331e63f2e..c451cb77b 100644 --- a/tests/integration/Validation.JsonValidator.test.js +++ b/tests/integration/Validation.JsonValidator.test.js @@ -17,7 +17,7 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') const { describe, it } = require('mocha') @@ -28,7 +28,6 @@ const { JsonValidator } } = require('../../') - const { default: jsonValidator } = require('../../dist.node/_optPlug.node/jsonValidator') describe('integration.Validation.JsonValidator', () => { diff --git a/tests/integration/Validation.XmlValidator.test.js b/tests/integration/Validation.XmlValidator.test.js index b9bdc49bf..64ed90ef1 100644 --- a/tests/integration/Validation.XmlValidator.test.js +++ b/tests/integration/Validation.XmlValidator.test.js @@ -17,7 +17,7 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') const { describe, it } = require('mocha') @@ -28,7 +28,6 @@ const { XmlValidator } } = require('../../') - const { default: xmlValidator } = require('../../dist.node/_optPlug.node/xmlValidator') describe('integration.Validation.XmlValidator', () => { diff --git a/tests/unit/Builders.FromNodePackageJson.ComponentBuilder.spec.js b/tests/unit/Builders.FromNodePackageJson.ComponentBuilder.spec.js index 6e6d4ca6b..3cb820a09 100644 --- a/tests/unit/Builders.FromNodePackageJson.ComponentBuilder.spec.js +++ b/tests/unit/Builders.FromNodePackageJson.ComponentBuilder.spec.js @@ -17,7 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { diff --git a/tests/unit/Builders.FromNodePackageJson.ToolBuilder.spec.js b/tests/unit/Builders.FromNodePackageJson.ToolBuilder.spec.js index 1f4836d63..25c20fd81 100644 --- a/tests/unit/Builders.FromNodePackageJson.ToolBuilder.spec.js +++ b/tests/unit/Builders.FromNodePackageJson.ToolBuilder.spec.js @@ -17,7 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { diff --git a/tests/unit/Factories.FromNodePackageJson.PackageUrlFactory.js b/tests/unit/Factories.FromNodePackageJson.PackageUrlFactory.js index 5327dab21..411959584 100644 --- a/tests/unit/Factories.FromNodePackageJson.PackageUrlFactory.js +++ b/tests/unit/Factories.FromNodePackageJson.PackageUrlFactory.js @@ -17,7 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { diff --git a/tests/unit/Factories.PackageUrlFactory.spec.js b/tests/unit/Factories.PackageUrlFactory.spec.js index 3ad430ae5..a72763ca5 100644 --- a/tests/unit/Factories.PackageUrlFactory.spec.js +++ b/tests/unit/Factories.PackageUrlFactory.spec.js @@ -17,13 +17,13 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { Factories: { PackageUrlFactory } } = require('../../') - const { randomString } = require('../_helpers/stringFunctions') suite('unit: Factories.PackageUrlFactory', () => { diff --git a/tests/unit/Models.Bom.spec.js b/tests/unit/Models.Bom.spec.js index c6960274f..6e1c51fd8 100644 --- a/tests/unit/Models.Bom.spec.js +++ b/tests/unit/Models.Bom.spec.js @@ -17,7 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { diff --git a/tests/unit/Models.Component.spec.js b/tests/unit/Models.Component.spec.js index 17ab7c0ae..7c7fa1e8f 100644 --- a/tests/unit/Models.Component.spec.js +++ b/tests/unit/Models.Component.spec.js @@ -17,9 +17,9 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') -const { suite, test } = require('mocha') +const assert = require('node:assert') +const { suite, test } = require('mocha') const { PackageURL } = require('packageurl-js') const { diff --git a/tests/unit/Models.Vulnerability.Vulnerability.spec.js b/tests/unit/Models.Vulnerability.Vulnerability.spec.js index 07f1267bf..106bcfa39 100644 --- a/tests/unit/Models.Vulnerability.Vulnerability.spec.js +++ b/tests/unit/Models.Vulnerability.Vulnerability.spec.js @@ -17,7 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { diff --git a/tests/unit/Models.bomLink.spec.js b/tests/unit/Models.bomLink.spec.js index a1e388b85..34bb9ba10 100644 --- a/tests/unit/Models.bomLink.spec.js +++ b/tests/unit/Models.bomLink.spec.js @@ -17,13 +17,15 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { Models: { BomLinkDocument, BomLinkElement } } = require('../../') + suite('unit: Models.BomLinkDocument', () => { suite('isValid()', () => { test('pass', () => { diff --git a/tests/unit/SPDX.spec.js b/tests/unit/SPDX.spec.js index e7f4d9631..0d5e1aa5b 100644 --- a/tests/unit/SPDX.spec.js +++ b/tests/unit/SPDX.spec.js @@ -17,7 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { diff --git a/tests/unit/Serialize.BomRefDiscriminator.spec.js b/tests/unit/Serialize.BomRefDiscriminator.spec.js index 4f36feb03..581a5eb33 100644 --- a/tests/unit/Serialize.BomRefDiscriminator.spec.js +++ b/tests/unit/Serialize.BomRefDiscriminator.spec.js @@ -17,14 +17,14 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { Models: { BomRef }, Serialize: { BomRefDiscriminator } } = require('../../') - const { randomString } = require('../_helpers/stringFunctions') suite('unit: Serialize.BomRefDiscriminator', () => { diff --git a/tests/unit/Serialize.JsonSerializer.spec.js b/tests/unit/Serialize.JsonSerializer.spec.js index b247f8744..eb3c5e263 100644 --- a/tests/unit/Serialize.JsonSerializer.spec.js +++ b/tests/unit/Serialize.JsonSerializer.spec.js @@ -17,7 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { diff --git a/tests/unit/Serialize.XML._xsd.spec.js b/tests/unit/Serialize.XML._xsd.spec.js index 54b4c0af8..8ef2a51e8 100644 --- a/tests/unit/Serialize.XML._xsd.spec.js +++ b/tests/unit/Serialize.XML._xsd.spec.js @@ -17,7 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { diff --git a/tests/unit/Serialize.XmlBaseSerializer.spec.js b/tests/unit/Serialize.XmlBaseSerializer.spec.js index 41d7730f9..c94edb57d 100644 --- a/tests/unit/Serialize.XmlBaseSerializer.spec.js +++ b/tests/unit/Serialize.XmlBaseSerializer.spec.js @@ -17,7 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { diff --git a/tests/unit/Serialize.XmlSerializer.spec.js b/tests/unit/Serialize.XmlSerializer.spec.js index 4fdcc1c33..376a3e290 100644 --- a/tests/unit/Serialize.XmlSerializer.spec.js +++ b/tests/unit/Serialize.XmlSerializer.spec.js @@ -17,7 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { diff --git a/tests/unit/Types.cpe.spec.js b/tests/unit/Types.cpe.spec.js index 76006a55a..18d88e4d2 100644 --- a/tests/unit/Types.cpe.spec.js +++ b/tests/unit/Types.cpe.spec.js @@ -17,7 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { diff --git a/tests/unit/Utils.BomUtility.spec.js b/tests/unit/Utils.BomUtility.spec.js index 7a7bca7fb..9173fb3e2 100644 --- a/tests/unit/Utils.BomUtility.spec.js +++ b/tests/unit/Utils.BomUtility.spec.js @@ -17,7 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const assert = require('assert') +const assert = require('node:assert') + const { suite, test } = require('mocha') const { diff --git a/tools/code-style/eslint.config.mjs b/tools/code-style/eslint.config.mjs index cfe4eaace..e17e5e29b 100644 --- a/tools/code-style/eslint.config.mjs +++ b/tools/code-style/eslint.config.mjs @@ -23,8 +23,10 @@ import { fileURLToPath } from 'node:url' import plugin_js from '@eslint/js' import config_love from 'eslint-config-love' import plugin_editorconfig from 'eslint-plugin-editorconfig' -import plugin_header from 'eslint-plugin-license-header' +import plugin_import from 'eslint-plugin-import' import plugin_jsdoc from 'eslint-plugin-jsdoc' +import plugin_header from 'eslint-plugin-license-header' +import plugin_n from 'eslint-plugin-n' import plugin_simpleImportSort from 'eslint-plugin-simple-import-sort' import plugin_tsdoc from 'eslint-plugin-tsdoc' import globals from 'globals' @@ -45,20 +47,53 @@ export default [ { name: 'general', plugins: { + 'import': plugin_import, 'simple-import-sort': plugin_simpleImportSort, 'license-header': plugin_header, 'editorconfig': plugin_editorconfig, + 'n': plugin_n, }, rules: { ...plugin_editorconfig.configs.all.rules, - 'import/order': 'off', + 'editorconfig/indent': 'off', + 'n/prefer-node-protocol': 'error', 'sort-imports': 'off', + 'import/order': [ + // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/order.md + 'error', { + 'groups': [ + 'builtin', + 'external', + /* and then all the rest */ + ], + 'newlines-between': 'always', + }], 'simple-import-sort/imports': 'error', 'simple-import-sort/exports': 'error', + 'import/first': 'error', + 'import/newline-after-import': 'error', + 'import/no-duplicates': 'error', 'license-header/header': ['error', licenseHeaderFile], - 'editorconfig/indent': 'off', }, }, + { + files: ['**/*.{js,cjs}'], + rules: { + 'simple-import-sort/imports': 'off', + 'import/order': [ + // https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/order.md + 'error', { + 'groups': [ + 'builtin', + 'external', + /* and then all the rest */ + ], + 'alphabetize': { order: "asc" }, + 'named': true, + 'newlines-between': 'always', + }], + } + }, { files: ['**/*.{js,mjs,cjs}'], rules: plugin_js.configs.recommended.rules, @@ -134,7 +169,7 @@ export default [ }, }, { - files:[ + files: [ '**/eslint.config.{js,mjs,cjs}', '**/webpack.config.js', '**/.mocharc.js' diff --git a/tools/code-style/package.json b/tools/code-style/package.json index 74be42f41..e2a626377 100644 --- a/tools/code-style/package.json +++ b/tools/code-style/package.json @@ -21,5 +21,8 @@ "eslint-plugin-tsdoc": "0.4.0", "globals": "^15.7.0", "typescript-eslint": "8.19.1" + }, + "scripts": { + "cs-fix": "npm exec -- eslint --fix ." } } diff --git a/tools/schema-downloader/package.json b/tools/schema-downloader/package.json index 60c8e84d4..1e838d61b 100644 --- a/tools/schema-downloader/package.json +++ b/tools/schema-downloader/package.json @@ -5,9 +5,10 @@ "type": "module", "main": "download.js", "scripts": { - "download": "node download.js" + "download": "node download.js", + "cs-fix": "npm --prefix ../code-style exec -- eslint --fix ." }, "engines": { - "node": ">=18" + "node": ">=20.18" } } diff --git a/webpack.config.js b/webpack.config.js index 8fd5b2ce8..9b246776d 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -17,7 +17,8 @@ SPDX-License-Identifier: Apache-2.0 Copyright (c) OWASP Foundation. All Rights Reserved. */ -const path = require('path') +const path = require('node:path') + const deepmerge = require('deepmerge') const nodeExternals = require('webpack-node-externals') From 468d515790e5e986cbbdb46284957e913085ea3c Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Fri, 14 Feb 2025 12:45:42 +0100 Subject: [PATCH 3/4] wip Signed-off-by: Jan Kowalleck --- src/types/cwe.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/types/cwe.ts b/src/types/cwe.ts index ad7136b7b..c5596681c 100644 --- a/src/types/cwe.ts +++ b/src/types/cwe.ts @@ -18,7 +18,8 @@ Copyright (c) OWASP Foundation. All Rights Reserved. */ import { SortableNumbers } from '../_helpers/sortable' -import { isPositiveInteger, type PositiveInteger} from './integer' +import type { PositiveInteger } from './integer' +import { isPositiveInteger } from './integer' /** * Integer representation of a Common Weaknesses Enumerations (CWE). From 861271d7a9562ec49160168e6590bc114246ed05 Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Fri, 14 Feb 2025 12:49:46 +0100 Subject: [PATCH 4/4] wip Signed-off-by: Jan Kowalleck --- tests/_data/models.js | 122 ++++++++++++++++++++++-------------------- 1 file changed, 64 insertions(+), 58 deletions(-) diff --git a/tests/_data/models.js b/tests/_data/models.js index 06a1c47fa..bde30996c 100644 --- a/tests/_data/models.js +++ b/tests/_data/models.js @@ -24,64 +24,7 @@ const { Enums, Models, Types } = require('../../') /** * @returns {Models.Bom} */ -module.exports.createAllTools = function () { - const bomSerialNumberRaw = '8fd9e244-73b6-4cd3-ab3a-a0fefdee5c9e' - const bom = new Models.Bom({ - version: 7, - serialNumber: `urn:uuid:${bomSerialNumberRaw}`, - }) - bom.metadata.tools.components.add( - new Models.Component( - Enums.ComponentType.Application, - 'Component tool name', { - group: 'Component tool group', - version: '0.8.15', - hashes: new Models.HashDictionary([ - [Enums.HashAlgorithm.MD5, '974e5cc07da6e4536bffd935fd4ddc61'], - [Enums.HashAlgorithm['SHA-1'], '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed'] - ]) - })) - bom.metadata.tools.services.add( - new Models.Service('sbom-generator-service', { - group: 'Service tool group', - version: '1', - externalReferences: new Models.ExternalReferenceRepository([ - new Models.ExternalReference( - 'https://example.com/sbom-generator-service/', - Enums.ExternalReferenceType.Website, - { comment: 'the service that made this' } - ) - ]) - }) - ) - bom.metadata.tools.tools.add( - new Models.Tool({ - vendor: 'Tool tool vendor', - name: 'Tool tool name', - version: '0.8.15', - hashes: new Models.HashDictionary([ - [Enums.HashAlgorithm.MD5, 'f32a26e2a3a8aa338cd77b6e1263c535'], - [Enums.HashAlgorithm['SHA-1'], '829c3804401b0727f70f73d4415e162400cbe57b'] - ]) - }) - ) - bom.metadata.tools.tools.add( - new Models.Tool({ - vendor: 'Tool tool vendor', - name: 'Tool other tool', - version: '', // empty string, not undefined - externalReferences: new Models.ExternalReferenceRepository([ - new Models.ExternalReference( - 'https://cyclonedx.org/tool-center/', - Enums.ExternalReferenceType.Website, - { comment: 'the tools that made this' } - ) - ]) - }) - ) - return bom -} -module.exports.createComplexStructure = function () { +function createComplexStructure () { const bomSerialNumberRaw = 'ac35b126-ef3a-11ed-a05b-0242ac120003' const bom = new Models.Bom({ version: 7, @@ -670,3 +613,66 @@ module.exports.createComplexStructure = function () { /** * @returns {Models.Bom} */ +function createAllTools () { + const bomSerialNumberRaw = '8fd9e244-73b6-4cd3-ab3a-a0fefdee5c9e' + const bom = new Models.Bom({ + version: 7, + serialNumber: `urn:uuid:${bomSerialNumberRaw}`, + }) + bom.metadata.tools.components.add( + new Models.Component( + Enums.ComponentType.Application, + 'Component tool name', { + group: 'Component tool group', + version: '0.8.15', + hashes: new Models.HashDictionary([ + [Enums.HashAlgorithm.MD5, '974e5cc07da6e4536bffd935fd4ddc61'], + [Enums.HashAlgorithm['SHA-1'], '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed'] + ]) + })) + bom.metadata.tools.services.add( + new Models.Service('sbom-generator-service', { + group: 'Service tool group', + version: '1', + externalReferences: new Models.ExternalReferenceRepository([ + new Models.ExternalReference( + 'https://example.com/sbom-generator-service/', + Enums.ExternalReferenceType.Website, + { comment: 'the service that made this' } + ) + ]) + }) + ) + bom.metadata.tools.tools.add( + new Models.Tool({ + vendor: 'Tool tool vendor', + name: 'Tool tool name', + version: '0.8.15', + hashes: new Models.HashDictionary([ + [Enums.HashAlgorithm.MD5, 'f32a26e2a3a8aa338cd77b6e1263c535'], + [Enums.HashAlgorithm['SHA-1'], '829c3804401b0727f70f73d4415e162400cbe57b'] + ]) + }) + ) + bom.metadata.tools.tools.add( + new Models.Tool({ + vendor: 'Tool tool vendor', + name: 'Tool other tool', + version: '', // empty string, not undefined + externalReferences: new Models.ExternalReferenceRepository([ + new Models.ExternalReference( + 'https://cyclonedx.org/tool-center/', + Enums.ExternalReferenceType.Website, + { comment: 'the tools that made this' } + ) + ]) + }) + ) + return bom +} + + +module.exports = { + createAllTools, + createComplexStructure +}