Skip to content

Commit 5ad9a97

Browse files
committed
wip
Signed-off-by: Jan Kowalleck <[email protected]>
1 parent 746e0b2 commit 5ad9a97

File tree

15 files changed

+41
-8
lines changed

15 files changed

+41
-8
lines changed

examples/node/typescript/example.mjs/src/example.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ const serializedJson = jsonSerializer.serialize(bom)
5454
console.log(serializedJson)
5555
const jsonValidator = new CDX.Validation.JsonStrictValidator(serializeSpec.version)
5656
try {
57+
/* eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- intended */
5758
const validationErrors = await jsonValidator.validate(serializedJson)
5859
if (validationErrors === null) {
5960
console.info('JSON valid')
@@ -75,6 +76,7 @@ const serializedXML = xmlSerializer.serialize(bom)
7576
console.log(serializedXML)
7677
const xmlValidator = new CDX.Validation.XmlValidator(serializeSpec.version)
7778
try {
79+
/* eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- intended */
7880
const validationErrors = await xmlValidator.validate(serializedXML)
7981
if (validationErrors === null) {
8082
console.info('XML valid')

src/_optPlug.node/__jsonValidators/ajv.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,19 @@ const ajvOptions: AjvOptions = Object.freeze({
3636

3737
/** @internal */
3838
export default (async function (schemaPath: string, schemaMap: Record<string, string> = {}): Promise<Validator> {
39+
/* eslint-disable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-return -- intended */
3940
const [schema, schemas] = await Promise.all([
4041
readFile(schemaPath, 'utf-8').then(c => JSON.parse(c)),
4142
Promise.all(Object.entries(schemaMap).map(
4243
async ([k, v]) => await readFile(v, 'utf-8').then(c => [k, JSON.parse(c)])
4344
)).then(es => Object.fromEntries(es))
4445
])
46+
/* eslint-enable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-return */
4547

48+
/* eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- intended */
4649
const ajv = new Ajv({ ...ajvOptions, schemas })
4750
addFormats(ajv)
51+
/* eslint-disable-next-line @typescript-eslint/no-unsafe-call -- intended */
4852
addFormats2019(ajv, { formats: ['idn-email'] })
4953
// there is just no working implementation for format "iri-reference": see https://github.com/luzlab/ajv-formats-draft2019/issues/22
5054
ajv.addFormat('iri-reference', true)

src/_optPlug.node/errors.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export class OptPlugError extends Error {
2222

2323
constructor (message: string, cause?: any) {
2424
super(message)
25+
/* eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- intended */
2526
this.cause = cause
2627
}
2728
}

src/_optPlug.node/jsonValidator.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,14 @@ export type Validator = (data: string) => null | ValidationError
2424
export type Functionality = (schemaPath: string, schemaMap: Record<string, string>) => Promise<Validator>
2525

2626
export default opWrapper<Functionality>('JsonValidator', [
27+
/* eslint-disable @typescript-eslint/no-unsafe-member-access -- needed */
28+
/* eslint-disable @typescript-eslint/no-require-imports -- needed */
29+
/* eslint-disable @typescript-eslint/no-unsafe-return -- needed */
2730

2831
['( ajv && ajv-formats && ajv-formats-draft2019 )', () => require('./__jsonValidators/ajv').default]
2932
// ... add others here, pull-requests welcome!
3033

34+
/* eslint-enable @typescript-eslint/no-unsafe-return */
35+
/* eslint-enable @typescript-eslint/no-require-imports */
36+
/* eslint-enable @typescript-eslint/no-unsafe-member-access */
3137
]) satisfies Functionality | WillThrow

src/_optPlug.node/xmlStringify.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,14 @@ import opWrapper, { type WillThrow } from './_wrapper'
2424
export type Functionality = (element: SimpleXml.Element, options?: SerializerOptions) => string
2525

2626
export default opWrapper<Functionality>('XmlStringifier', [
27+
/* eslint-disable @typescript-eslint/no-unsafe-member-access -- needed */
28+
/* eslint-disable @typescript-eslint/no-require-imports -- needed */
29+
/* eslint-disable @typescript-eslint/no-unsafe-return -- needed */
2730

2831
['xmlbuilder2', () => require('./__xmlStringifiers/xmlbuilder2').default]
2932
// ... add others here, pull-requests welcome!
3033

34+
/* eslint-enable @typescript-eslint/no-unsafe-return */
35+
/* eslint-enable @typescript-eslint/no-require-imports */
36+
/* eslint-enable @typescript-eslint/no-unsafe-member-access */
3137
]) satisfies Functionality | WillThrow

src/_optPlug.node/xmlValidator.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,14 @@ export type Validator = (data: string) => null | ValidationError
2424
export type Functionality = (schemaPath: string) => Promise<Validator>
2525

2626
export default opWrapper<Functionality>('XmlValidator', [
27+
/* eslint-disable @typescript-eslint/no-unsafe-member-access -- needed */
28+
/* eslint-disable @typescript-eslint/no-require-imports -- needed */
29+
/* eslint-disable @typescript-eslint/no-unsafe-return -- needed */
2730

2831
['libxmljs2', () => require('./__xmlValidators/libxmljs2').default]
2932
// ... add others here, pull-requests welcome!
3033

34+
/* eslint-enable @typescript-eslint/no-unsafe-return */
35+
/* eslint-enable @typescript-eslint/no-require-imports */
36+
/* eslint-enable @typescript-eslint/no-unsafe-member-access */
3137
]) satisfies Functionality | WillThrow

src/factories/fromNodePackageJson.node.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ export class ExternalReferenceFactory {
5454
makeVcs (data: PackageJson): ExternalReference | undefined {
5555
/* see https://docs.npmjs.com/cli/v9/configuring-npm/package-json#repositoryc */
5656
const {repository} = data
57-
let url
58-
let comment: string | undefined
57+
let url = undefined
58+
let comment: string | undefined = undefined
5959
if (typeof repository === 'object') {
6060
url = tryCanonicalizeGitUrl(repository.url)
6161
comment = 'as detected from PackageJson property "repository.url"'
@@ -87,8 +87,8 @@ export class ExternalReferenceFactory {
8787
makeIssueTracker (data: PackageJson): ExternalReference | undefined {
8888
/* see https://docs.npmjs.com/cli/v9/configuring-npm/package-json#bugs */
8989
const {bugs} = data
90-
let url
91-
let comment: string | undefined
90+
let url = undefined
91+
let comment: string | undefined =undefined
9292
if (typeof bugs === 'object') {
9393
url = bugs.url
9494
comment = 'as detected from PackageJson property "bugs.url"'

src/factories/packageUrl.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,10 @@ export class PackageUrlFactory<PurlType extends PackageURL['type'] = PackageURL[
3434
return this.#type
3535
}
3636

37+
/* eslint-disable-next-line @typescript-eslint/no-inferrable-types -- docs */
3738
makeFromComponent (component: Component, sort: boolean = false): PackageURL | undefined {
3839
const qualifiers: PackageURL['qualifiers'] = {}
39-
let subpath: PackageURL['subpath']
40+
let subpath: PackageURL['subpath'] = undefined
4041

4142
// sorting to allow reproducibility: use the last instance for a `extRef.type`, if multiples exist
4243
const extRefs = sort
@@ -51,6 +52,7 @@ export class PackageUrlFactory<PurlType extends PackageURL['type'] = PackageURL[
5152
// According to https://github.com/package-url/purl-spec/blob/master/PURL-TYPES.rst
5253
// there is no formal requirement to a `..._url`.
5354
// Everything is possible: URL-encoded, not encoded, with schema, without schema
55+
/* eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- intended */
5456
switch (extRef.type) {
5557
case ExternalReferenceType.VCS:
5658
[qualifiers[PackageUrlQualifierNames.VcsUrl], subpath] = url.split('#', 2)

src/serialize/bomRefDiscriminator.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export class BomRefDiscriminator {
2424

2525
readonly #prefix: string
2626

27+
/* eslint-disable-next-line @typescript-eslint/no-inferrable-types -- docs */
2728
constructor (bomRefs: Iterable<BomRef>, prefix: string = 'BomRef') {
2829
this.#originalValues = Array.from(bomRefs, r => [r, r.value])
2930
this.#prefix = prefix

src/serialize/index.common.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Copyright (c) OWASP Foundation. All Rights Reserved.
2121

2222
export * from './bomRefDiscriminator'
2323
export * from './errors'
24-
export * as Types from './types'
24+
export type * as Types from './types'
2525

2626
// region base
2727

0 commit comments

Comments
 (0)