diff --git a/.github/workflows/oapi_spec.yaml b/.github/workflows/oapi_spec.yaml deleted file mode 100644 index 49192b98..00000000 --- a/.github/workflows/oapi_spec.yaml +++ /dev/null @@ -1,36 +0,0 @@ ---- -name: Verify OpenAPI Spec - -on: - workflow_dispatch: - workflow_run: - workflows: - - "Stage" - types: - - completed - repository_dispatch: - types: [ backend-openapi-spec-modified ] - -jobs: - verify_no_generated: - runs-on: ubuntu-latest - name: Verify Backend OpenAPI Spec - environment: integration - steps: - - name: Checkout sources - uses: actions/checkout@v4 - - - name: Install node 18 - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: npm - - - name: Install project dev modules - run: npm ci --include=dev - - - name: Generate OpenAPI types - run: npm run gen:backend - - - name: Verify nothing was changed - run: git diff -s --exit-code diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index 34b584d6..072b699d 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -27,6 +27,13 @@ jobs: uses: actions/setup-node@v4 with: node-version: 20 + registry-url: 'https://npm.pkg.github.com' + env: + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Create .npmrc + run: | + echo "@trustification:registry=https://npm.pkg.github.com" >> .npmrc - name: Install commitlint run: | diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 7a509008..bfc7651b 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -28,6 +28,13 @@ jobs: with: node-version: ${{ matrix.node }} cache: npm + registry-url: 'https://npm.pkg.github.com' + env: + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Create .npmrc + run: | + echo "@trustification:registry=https://npm.pkg.github.com" >> .npmrc - name: Enable Corepack run: corepack enable diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 458309fb..e25662eb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,7 +15,6 @@ on: branches: - 'main' paths: - - "generated/**" - "src/**" - "package-lock.json" - "package.json" @@ -41,6 +40,12 @@ jobs: node-version: 18 cache: npm registry-url: 'https://npm.pkg.github.com' + env: + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Create .npmrc + run: | + echo "@trustification:registry=https://npm.pkg.github.com" >> .npmrc - name: Configure git run: | diff --git a/.github/workflows/stage.yml b/.github/workflows/stage.yml index 0a2f20c6..a36074ab 100644 --- a/.github/workflows/stage.yml +++ b/.github/workflows/stage.yml @@ -16,7 +16,6 @@ on: - main paths: - - "generated/**" - "src/**" - "test/**" - "package-lock.json" @@ -45,6 +44,12 @@ jobs: node-version: 18 cache: npm registry-url: 'https://npm.pkg.github.com' + env: + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Create .npmrc + run: | + echo "@trustification:registry=https://npm.pkg.github.com" >> .npmrc - name: Enable Corepack run: corepack enable diff --git a/.gitignore b/.gitignore index 4b8c9933..8afaeecf 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ integration/**/package-lock.json unit-tests-result.json .gradle build -target \ No newline at end of file +target +.npmrc diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8f20add8..be52e737 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,7 +17,6 @@ * `npm run test` run unit tests,verify coverage, and print coverage info * `npm run tests` run unit tests (no coverage) * `npm run tests:rep` run unit tests and save the test results as _unit-tests-result.json_ (for ci) -* `npm run gen:backend` generate the _Backend_ types from its _OpenAPI_ as _TS_ spec in the _generated/backend_ folder ### Good to know @@ -25,12 +24,7 @@ ### OpenAPI Specifications -We use our [Backend's OpenAPI spec file][1] for generating types used for deserialization of the Backend's -API responses.
-The generated classes files are _TypeScript_ files generated in the [generated/backend](generated/backend). -Which is skipped when calculating coverage thresholds. **Avoid writing code in this folder.**
-When the [Backend's spec file][1] is modified, we need to **manually** run the `npm run gen:backend` script. -We only generate types. +The OpenAPI specification is located in the [`exhort-api-spec`](https://github.com/trustification/exhort-api-spec) where the Java and Javascript libraries are generated. ### Code Walkthrough @@ -53,7 +47,7 @@ We only generate types. This code is meant to be used as an _ESM_ module for both _JavaScript_ and _TypeScript_. So make sure you add type declarations if needed.
-Note the [sources](src) are in _JavaScript_, and the [generated](generated/backend) _Backend_ types are in _TypeScript_. +Note the [sources](src) are in _JavaScript_. Both will be compiled as an _ESM Module_ including declarations (_x.d.ts_) in the ignored _dist_ using the `npm run compile` script and the [tsconfig.json](tsconfig.json) configuration file. Also note the _TypeScript_ files are excluded from both linting and coverage. diff --git a/README.md b/README.md index f4e23056..3f0bdb7a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # Exhort JavaScript API
![latest-no-snapshot][0] ![latest-snapshot][1] +* Looking for the OpenAPI Spec? Try [Exhort API Spec](https://github.com/trustification/exhort-api-spec) * Looking for our Java API? Try [Exhort Java API](https://github.com/trustification/exhort-java-api). * Looking for our Backend implementation? Try [Exhort](https://github.com/trustification/exhort). diff --git a/generated/backend/Analysis200Response.d.ts b/generated/backend/Analysis200Response.d.ts deleted file mode 100644 index d87e280a..00000000 --- a/generated/backend/Analysis200Response.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { AnalysisReport } from '../backend/AnalysisReport'; -export declare class Analysis200Response { - 'jsonReport'?: AnalysisReport; - 'htmlReport'?: any; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} diff --git a/generated/backend/Analysis200Response.js b/generated/backend/Analysis200Response.js deleted file mode 100644 index 48445013..00000000 --- a/generated/backend/Analysis200Response.js +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export class Analysis200Response { - 'jsonReport'; - 'htmlReport'; - static discriminator = undefined; - static attributeTypeMap = [ - { - "name": "jsonReport", - "baseName": "json_report", - "type": "AnalysisReport", - "format": "" - }, - { - "name": "htmlReport", - "baseName": "html_report", - "type": "any", - "format": "" - } - ]; - static getAttributeTypeMap() { - return Analysis200Response.attributeTypeMap; - } - constructor() { - } -} diff --git a/generated/backend/Analysis200Response.ts b/generated/backend/Analysis200Response.ts deleted file mode 100644 index 60f71222..00000000 --- a/generated/backend/Analysis200Response.ts +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { AnalysisReport } from '../backend/AnalysisReport'; - -export class Analysis200Response { - 'jsonReport'?: AnalysisReport; - 'htmlReport'?: any; - - static readonly discriminator: string | undefined = undefined; - - static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ - { - "name": "jsonReport", - "baseName": "json_report", - "type": "AnalysisReport", - "format": "" - }, - { - "name": "htmlReport", - "baseName": "html_report", - "type": "any", - "format": "" - } ]; - - static getAttributeTypeMap() { - return Analysis200Response.attributeTypeMap; - } - - public constructor() { - } -} - diff --git a/generated/backend/AnalysisReport.d.ts b/generated/backend/AnalysisReport.d.ts deleted file mode 100644 index 4b4f5e0a..00000000 --- a/generated/backend/AnalysisReport.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { ProviderReport } from '../backend/ProviderReport'; -import { Scanned } from '../backend/Scanned'; -export declare class AnalysisReport { - 'scanned'?: Scanned; - 'providers'?: { - [key: string]: ProviderReport; - }; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} diff --git a/generated/backend/AnalysisReport.js b/generated/backend/AnalysisReport.js deleted file mode 100644 index 63ef54e8..00000000 --- a/generated/backend/AnalysisReport.js +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export class AnalysisReport { - 'scanned'; - 'providers'; - static discriminator = undefined; - static attributeTypeMap = [ - { - "name": "scanned", - "baseName": "scanned", - "type": "Scanned", - "format": "" - }, - { - "name": "providers", - "baseName": "providers", - "type": "{ [key: string]: ProviderReport; }", - "format": "" - } - ]; - static getAttributeTypeMap() { - return AnalysisReport.attributeTypeMap; - } - constructor() { - } -} diff --git a/generated/backend/AnalysisReport.ts b/generated/backend/AnalysisReport.ts deleted file mode 100644 index d177dadf..00000000 --- a/generated/backend/AnalysisReport.ts +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { ProviderReport } from '../backend/ProviderReport'; -import { Scanned } from '../backend/Scanned'; - -export class AnalysisReport { - 'scanned'?: Scanned; - 'providers'?: { [key: string]: ProviderReport; }; - - static readonly discriminator: string | undefined = undefined; - - static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ - { - "name": "scanned", - "baseName": "scanned", - "type": "Scanned", - "format": "" - }, - { - "name": "providers", - "baseName": "providers", - "type": "{ [key: string]: ProviderReport; }", - "format": "" - } ]; - - static getAttributeTypeMap() { - return AnalysisReport.attributeTypeMap; - } - - public constructor() { - } -} - diff --git a/generated/backend/CvssVector.d.ts b/generated/backend/CvssVector.d.ts deleted file mode 100644 index 7b380ae5..00000000 --- a/generated/backend/CvssVector.d.ts +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export declare class CvssVector { - 'attackVector'?: string; - 'attackComplexity'?: string; - 'privilegesRequired'?: string; - 'userInteraction'?: string; - 'scope'?: string; - 'confidentialityImpact'?: string; - 'integrityImpact'?: string; - 'availabilityImpact'?: string; - 'exploitCodeMaturity'?: string; - 'remediationLevel'?: string; - 'reportConfidence'?: string; - 'cvss'?: string; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} diff --git a/generated/backend/CvssVector.js b/generated/backend/CvssVector.js deleted file mode 100644 index 3135b96b..00000000 --- a/generated/backend/CvssVector.js +++ /dev/null @@ -1,105 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export class CvssVector { - 'attackVector'; - 'attackComplexity'; - 'privilegesRequired'; - 'userInteraction'; - 'scope'; - 'confidentialityImpact'; - 'integrityImpact'; - 'availabilityImpact'; - 'exploitCodeMaturity'; - 'remediationLevel'; - 'reportConfidence'; - 'cvss'; - static discriminator = undefined; - static attributeTypeMap = [ - { - "name": "attackVector", - "baseName": "attackVector", - "type": "string", - "format": "" - }, - { - "name": "attackComplexity", - "baseName": "attackComplexity", - "type": "string", - "format": "" - }, - { - "name": "privilegesRequired", - "baseName": "privilegesRequired", - "type": "string", - "format": "" - }, - { - "name": "userInteraction", - "baseName": "userInteraction", - "type": "string", - "format": "" - }, - { - "name": "scope", - "baseName": "scope", - "type": "string", - "format": "" - }, - { - "name": "confidentialityImpact", - "baseName": "confidentialityImpact", - "type": "string", - "format": "" - }, - { - "name": "integrityImpact", - "baseName": "integrityImpact", - "type": "string", - "format": "" - }, - { - "name": "availabilityImpact", - "baseName": "availabilityImpact", - "type": "string", - "format": "" - }, - { - "name": "exploitCodeMaturity", - "baseName": "exploitCodeMaturity", - "type": "string", - "format": "" - }, - { - "name": "remediationLevel", - "baseName": "remediationLevel", - "type": "string", - "format": "" - }, - { - "name": "reportConfidence", - "baseName": "reportConfidence", - "type": "string", - "format": "" - }, - { - "name": "cvss", - "baseName": "cvss", - "type": "string", - "format": "" - } - ]; - static getAttributeTypeMap() { - return CvssVector.attributeTypeMap; - } - constructor() { - } -} diff --git a/generated/backend/CvssVector.ts b/generated/backend/CvssVector.ts deleted file mode 100644 index 99e60585..00000000 --- a/generated/backend/CvssVector.ts +++ /dev/null @@ -1,111 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -export class CvssVector { - 'attackVector'?: string; - 'attackComplexity'?: string; - 'privilegesRequired'?: string; - 'userInteraction'?: string; - 'scope'?: string; - 'confidentialityImpact'?: string; - 'integrityImpact'?: string; - 'availabilityImpact'?: string; - 'exploitCodeMaturity'?: string; - 'remediationLevel'?: string; - 'reportConfidence'?: string; - 'cvss'?: string; - - static readonly discriminator: string | undefined = undefined; - - static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ - { - "name": "attackVector", - "baseName": "attackVector", - "type": "string", - "format": "" - }, - { - "name": "attackComplexity", - "baseName": "attackComplexity", - "type": "string", - "format": "" - }, - { - "name": "privilegesRequired", - "baseName": "privilegesRequired", - "type": "string", - "format": "" - }, - { - "name": "userInteraction", - "baseName": "userInteraction", - "type": "string", - "format": "" - }, - { - "name": "scope", - "baseName": "scope", - "type": "string", - "format": "" - }, - { - "name": "confidentialityImpact", - "baseName": "confidentialityImpact", - "type": "string", - "format": "" - }, - { - "name": "integrityImpact", - "baseName": "integrityImpact", - "type": "string", - "format": "" - }, - { - "name": "availabilityImpact", - "baseName": "availabilityImpact", - "type": "string", - "format": "" - }, - { - "name": "exploitCodeMaturity", - "baseName": "exploitCodeMaturity", - "type": "string", - "format": "" - }, - { - "name": "remediationLevel", - "baseName": "remediationLevel", - "type": "string", - "format": "" - }, - { - "name": "reportConfidence", - "baseName": "reportConfidence", - "type": "string", - "format": "" - }, - { - "name": "cvss", - "baseName": "cvss", - "type": "string", - "format": "" - } ]; - - static getAttributeTypeMap() { - return CvssVector.attributeTypeMap; - } - - public constructor() { - } -} - diff --git a/generated/backend/DependencyReport.d.ts b/generated/backend/DependencyReport.d.ts deleted file mode 100644 index 54661faf..00000000 --- a/generated/backend/DependencyReport.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { Issue } from '../backend/Issue'; -import { TransitiveDependencyReport } from '../backend/TransitiveDependencyReport'; -export declare class DependencyReport { - /** - * PackageURL used to identify a dependency artifact - */ - 'ref'?: string; - 'issues'?: Array; - 'transitive'?: Array; - /** - * PackageURL used to identify a dependency artifact - */ - 'recommendation'?: string; - 'highestVulnerability'?: Issue; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} diff --git a/generated/backend/DependencyReport.js b/generated/backend/DependencyReport.js deleted file mode 100644 index ca6ab5b5..00000000 --- a/generated/backend/DependencyReport.js +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export class DependencyReport { - /** - * PackageURL used to identify a dependency artifact - */ - 'ref'; - 'issues'; - 'transitive'; - /** - * PackageURL used to identify a dependency artifact - */ - 'recommendation'; - 'highestVulnerability'; - static discriminator = undefined; - static attributeTypeMap = [ - { - "name": "ref", - "baseName": "ref", - "type": "string", - "format": "" - }, - { - "name": "issues", - "baseName": "issues", - "type": "Array", - "format": "" - }, - { - "name": "transitive", - "baseName": "transitive", - "type": "Array", - "format": "" - }, - { - "name": "recommendation", - "baseName": "recommendation", - "type": "string", - "format": "" - }, - { - "name": "highestVulnerability", - "baseName": "highestVulnerability", - "type": "Issue", - "format": "" - } - ]; - static getAttributeTypeMap() { - return DependencyReport.attributeTypeMap; - } - constructor() { - } -} diff --git a/generated/backend/DependencyReport.ts b/generated/backend/DependencyReport.ts deleted file mode 100644 index 51f1e957..00000000 --- a/generated/backend/DependencyReport.ts +++ /dev/null @@ -1,70 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { Issue } from '../backend/Issue'; -import { TransitiveDependencyReport } from '../backend/TransitiveDependencyReport'; - -export class DependencyReport { - /** - * PackageURL used to identify a dependency artifact - */ - 'ref'?: string; - 'issues'?: Array; - 'transitive'?: Array; - /** - * PackageURL used to identify a dependency artifact - */ - 'recommendation'?: string; - 'highestVulnerability'?: Issue; - - static readonly discriminator: string | undefined = undefined; - - static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ - { - "name": "ref", - "baseName": "ref", - "type": "string", - "format": "" - }, - { - "name": "issues", - "baseName": "issues", - "type": "Array", - "format": "" - }, - { - "name": "transitive", - "baseName": "transitive", - "type": "Array", - "format": "" - }, - { - "name": "recommendation", - "baseName": "recommendation", - "type": "string", - "format": "" - }, - { - "name": "highestVulnerability", - "baseName": "highestVulnerability", - "type": "Issue", - "format": "" - } ]; - - static getAttributeTypeMap() { - return DependencyReport.attributeTypeMap; - } - - public constructor() { - } -} - diff --git a/generated/backend/Issue.d.ts b/generated/backend/Issue.d.ts deleted file mode 100644 index f1d899f4..00000000 --- a/generated/backend/Issue.d.ts +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { CvssVector } from '../backend/CvssVector'; -import { Remediation } from '../backend/Remediation'; -import { Severity } from '../backend/Severity'; -export declare class Issue { - 'id'?: string; - 'title'?: string; - 'source'?: string; - 'cvss'?: CvssVector; - 'cvssScore'?: number; - 'severity'?: Severity; - 'cves'?: Array; - 'unique'?: boolean; - 'remediation'?: Remediation; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} diff --git a/generated/backend/Issue.js b/generated/backend/Issue.js deleted file mode 100644 index bd56bcca..00000000 --- a/generated/backend/Issue.js +++ /dev/null @@ -1,84 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export class Issue { - 'id'; - 'title'; - 'source'; - 'cvss'; - 'cvssScore'; - 'severity'; - 'cves'; - 'unique'; - 'remediation'; - static discriminator = undefined; - static attributeTypeMap = [ - { - "name": "id", - "baseName": "id", - "type": "string", - "format": "" - }, - { - "name": "title", - "baseName": "title", - "type": "string", - "format": "" - }, - { - "name": "source", - "baseName": "source", - "type": "string", - "format": "" - }, - { - "name": "cvss", - "baseName": "cvss", - "type": "CvssVector", - "format": "" - }, - { - "name": "cvssScore", - "baseName": "cvssScore", - "type": "number", - "format": "float" - }, - { - "name": "severity", - "baseName": "severity", - "type": "Severity", - "format": "" - }, - { - "name": "cves", - "baseName": "cves", - "type": "Array", - "format": "" - }, - { - "name": "unique", - "baseName": "unique", - "type": "boolean", - "format": "" - }, - { - "name": "remediation", - "baseName": "remediation", - "type": "Remediation", - "format": "" - } - ]; - static getAttributeTypeMap() { - return Issue.attributeTypeMap; - } - constructor() { - } -} diff --git a/generated/backend/Issue.ts b/generated/backend/Issue.ts deleted file mode 100644 index 1a934ec3..00000000 --- a/generated/backend/Issue.ts +++ /dev/null @@ -1,95 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { CvssVector } from '../backend/CvssVector'; -import { Remediation } from '../backend/Remediation'; -import { Severity } from '../backend/Severity'; - -export class Issue { - 'id'?: string; - 'title'?: string; - 'source'?: string; - 'cvss'?: CvssVector; - 'cvssScore'?: number; - 'severity'?: Severity; - 'cves'?: Array; - 'unique'?: boolean; - 'remediation'?: Remediation; - - static readonly discriminator: string | undefined = undefined; - - static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ - { - "name": "id", - "baseName": "id", - "type": "string", - "format": "" - }, - { - "name": "title", - "baseName": "title", - "type": "string", - "format": "" - }, - { - "name": "source", - "baseName": "source", - "type": "string", - "format": "" - }, - { - "name": "cvss", - "baseName": "cvss", - "type": "CvssVector", - "format": "" - }, - { - "name": "cvssScore", - "baseName": "cvssScore", - "type": "number", - "format": "float" - }, - { - "name": "severity", - "baseName": "severity", - "type": "Severity", - "format": "" - }, - { - "name": "cves", - "baseName": "cves", - "type": "Array", - "format": "" - }, - { - "name": "unique", - "baseName": "unique", - "type": "boolean", - "format": "" - }, - { - "name": "remediation", - "baseName": "remediation", - "type": "Remediation", - "format": "" - } ]; - - static getAttributeTypeMap() { - return Issue.attributeTypeMap; - } - - public constructor() { - } -} - - - diff --git a/generated/backend/ProviderReport.d.ts b/generated/backend/ProviderReport.d.ts deleted file mode 100644 index 23ec87b5..00000000 --- a/generated/backend/ProviderReport.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { ProviderStatus } from '../backend/ProviderStatus'; -import { Source } from '../backend/Source'; -export declare class ProviderReport { - 'status'?: ProviderStatus; - 'sources'?: { - [key: string]: Source; - }; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} diff --git a/generated/backend/ProviderReport.js b/generated/backend/ProviderReport.js deleted file mode 100644 index c81c84b5..00000000 --- a/generated/backend/ProviderReport.js +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export class ProviderReport { - 'status'; - 'sources'; - static discriminator = undefined; - static attributeTypeMap = [ - { - "name": "status", - "baseName": "status", - "type": "ProviderStatus", - "format": "" - }, - { - "name": "sources", - "baseName": "sources", - "type": "{ [key: string]: Source; }", - "format": "" - } - ]; - static getAttributeTypeMap() { - return ProviderReport.attributeTypeMap; - } - constructor() { - } -} diff --git a/generated/backend/ProviderReport.ts b/generated/backend/ProviderReport.ts deleted file mode 100644 index 3ee4a84a..00000000 --- a/generated/backend/ProviderReport.ts +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { ProviderStatus } from '../backend/ProviderStatus'; -import { Source } from '../backend/Source'; - -export class ProviderReport { - 'status'?: ProviderStatus; - 'sources'?: { [key: string]: Source; }; - - static readonly discriminator: string | undefined = undefined; - - static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ - { - "name": "status", - "baseName": "status", - "type": "ProviderStatus", - "format": "" - }, - { - "name": "sources", - "baseName": "sources", - "type": "{ [key: string]: Source; }", - "format": "" - } ]; - - static getAttributeTypeMap() { - return ProviderReport.attributeTypeMap; - } - - public constructor() { - } -} - diff --git a/generated/backend/ProviderStatus.d.ts b/generated/backend/ProviderStatus.d.ts deleted file mode 100644 index 886c6a0f..00000000 --- a/generated/backend/ProviderStatus.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export declare class ProviderStatus { - 'ok'?: boolean; - 'name'?: string; - 'code'?: number; - 'message'?: string; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} diff --git a/generated/backend/ProviderStatus.js b/generated/backend/ProviderStatus.js deleted file mode 100644 index 2cdaa704..00000000 --- a/generated/backend/ProviderStatus.js +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export class ProviderStatus { - 'ok'; - 'name'; - 'code'; - 'message'; - static discriminator = undefined; - static attributeTypeMap = [ - { - "name": "ok", - "baseName": "ok", - "type": "boolean", - "format": "" - }, - { - "name": "name", - "baseName": "name", - "type": "string", - "format": "" - }, - { - "name": "code", - "baseName": "code", - "type": "number", - "format": "" - }, - { - "name": "message", - "baseName": "message", - "type": "string", - "format": "" - } - ]; - static getAttributeTypeMap() { - return ProviderStatus.attributeTypeMap; - } - constructor() { - } -} diff --git a/generated/backend/ProviderStatus.ts b/generated/backend/ProviderStatus.ts deleted file mode 100644 index 28aac6e5..00000000 --- a/generated/backend/ProviderStatus.ts +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -export class ProviderStatus { - 'ok'?: boolean; - 'name'?: string; - 'code'?: number; - 'message'?: string; - - static readonly discriminator: string | undefined = undefined; - - static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ - { - "name": "ok", - "baseName": "ok", - "type": "boolean", - "format": "" - }, - { - "name": "name", - "baseName": "name", - "type": "string", - "format": "" - }, - { - "name": "code", - "baseName": "code", - "type": "number", - "format": "" - }, - { - "name": "message", - "baseName": "message", - "type": "string", - "format": "" - } ]; - - static getAttributeTypeMap() { - return ProviderStatus.attributeTypeMap; - } - - public constructor() { - } -} - diff --git a/generated/backend/Remediation.d.ts b/generated/backend/Remediation.d.ts deleted file mode 100644 index ac4ba31f..00000000 --- a/generated/backend/Remediation.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { RemediationTrustedContent } from '../backend/RemediationTrustedContent'; -export declare class Remediation { - 'fixedIn'?: Array; - 'trustedContent'?: RemediationTrustedContent; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} diff --git a/generated/backend/Remediation.js b/generated/backend/Remediation.js deleted file mode 100644 index 26014c57..00000000 --- a/generated/backend/Remediation.js +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export class Remediation { - 'fixedIn'; - 'trustedContent'; - static discriminator = undefined; - static attributeTypeMap = [ - { - "name": "fixedIn", - "baseName": "fixedIn", - "type": "Array", - "format": "" - }, - { - "name": "trustedContent", - "baseName": "trustedContent", - "type": "RemediationTrustedContent", - "format": "" - } - ]; - static getAttributeTypeMap() { - return Remediation.attributeTypeMap; - } - constructor() { - } -} diff --git a/generated/backend/Remediation.ts b/generated/backend/Remediation.ts deleted file mode 100644 index c65295bc..00000000 --- a/generated/backend/Remediation.ts +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { RemediationTrustedContent } from '../backend/RemediationTrustedContent'; - -export class Remediation { - 'fixedIn'?: Array; - 'trustedContent'?: RemediationTrustedContent; - - static readonly discriminator: string | undefined = undefined; - - static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ - { - "name": "fixedIn", - "baseName": "fixedIn", - "type": "Array", - "format": "" - }, - { - "name": "trustedContent", - "baseName": "trustedContent", - "type": "RemediationTrustedContent", - "format": "" - } ]; - - static getAttributeTypeMap() { - return Remediation.attributeTypeMap; - } - - public constructor() { - } -} - diff --git a/generated/backend/RemediationTrustedContent.d.ts b/generated/backend/RemediationTrustedContent.d.ts deleted file mode 100644 index 7b1e2c46..00000000 --- a/generated/backend/RemediationTrustedContent.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export declare class RemediationTrustedContent { - /** - * PackageURL used to identify a dependency artifact - */ - 'ref'?: string; - 'status'?: string; - 'justification'?: string; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} diff --git a/generated/backend/RemediationTrustedContent.js b/generated/backend/RemediationTrustedContent.js deleted file mode 100644 index 9ed80ed0..00000000 --- a/generated/backend/RemediationTrustedContent.js +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export class RemediationTrustedContent { - /** - * PackageURL used to identify a dependency artifact - */ - 'ref'; - 'status'; - 'justification'; - static discriminator = undefined; - static attributeTypeMap = [ - { - "name": "ref", - "baseName": "ref", - "type": "string", - "format": "" - }, - { - "name": "status", - "baseName": "status", - "type": "string", - "format": "" - }, - { - "name": "justification", - "baseName": "justification", - "type": "string", - "format": "" - } - ]; - static getAttributeTypeMap() { - return RemediationTrustedContent.attributeTypeMap; - } - constructor() { - } -} diff --git a/generated/backend/RemediationTrustedContent.ts b/generated/backend/RemediationTrustedContent.ts deleted file mode 100644 index 2c767c27..00000000 --- a/generated/backend/RemediationTrustedContent.ts +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -export class RemediationTrustedContent { - /** - * PackageURL used to identify a dependency artifact - */ - 'ref'?: string; - 'status'?: string; - 'justification'?: string; - - static readonly discriminator: string | undefined = undefined; - - static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ - { - "name": "ref", - "baseName": "ref", - "type": "string", - "format": "" - }, - { - "name": "status", - "baseName": "status", - "type": "string", - "format": "" - }, - { - "name": "justification", - "baseName": "justification", - "type": "string", - "format": "" - } ]; - - static getAttributeTypeMap() { - return RemediationTrustedContent.attributeTypeMap; - } - - public constructor() { - } -} - diff --git a/generated/backend/Scanned.d.ts b/generated/backend/Scanned.d.ts deleted file mode 100644 index 8c5341f4..00000000 --- a/generated/backend/Scanned.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -/** -* Number of dependencies scanned -*/ -export declare class Scanned { - 'total'?: number; - 'direct'?: number; - 'transitive'?: number; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} diff --git a/generated/backend/Scanned.js b/generated/backend/Scanned.js deleted file mode 100644 index 26045b7f..00000000 --- a/generated/backend/Scanned.js +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -/** -* Number of dependencies scanned -*/ -export class Scanned { - 'total'; - 'direct'; - 'transitive'; - static discriminator = undefined; - static attributeTypeMap = [ - { - "name": "total", - "baseName": "total", - "type": "number", - "format": "" - }, - { - "name": "direct", - "baseName": "direct", - "type": "number", - "format": "" - }, - { - "name": "transitive", - "baseName": "transitive", - "type": "number", - "format": "" - } - ]; - static getAttributeTypeMap() { - return Scanned.attributeTypeMap; - } - constructor() { - } -} diff --git a/generated/backend/Scanned.ts b/generated/backend/Scanned.ts deleted file mode 100644 index 12021ef4..00000000 --- a/generated/backend/Scanned.ts +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -/** -* Number of dependencies scanned -*/ -export class Scanned { - 'total'?: number; - 'direct'?: number; - 'transitive'?: number; - - static readonly discriminator: string | undefined = undefined; - - static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ - { - "name": "total", - "baseName": "total", - "type": "number", - "format": "" - }, - { - "name": "direct", - "baseName": "direct", - "type": "number", - "format": "" - }, - { - "name": "transitive", - "baseName": "transitive", - "type": "number", - "format": "" - } ]; - - static getAttributeTypeMap() { - return Scanned.attributeTypeMap; - } - - public constructor() { - } -} - diff --git a/generated/backend/Severity.d.ts b/generated/backend/Severity.d.ts deleted file mode 100644 index 757dbe0b..00000000 --- a/generated/backend/Severity.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export type Severity = "CRITICAL" | "HIGH" | "MEDIUM" | "LOW"; diff --git a/generated/backend/Severity.js b/generated/backend/Severity.js deleted file mode 100644 index 3c35da6b..00000000 --- a/generated/backend/Severity.js +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export {}; diff --git a/generated/backend/Severity.ts b/generated/backend/Severity.ts deleted file mode 100644 index 15c84774..00000000 --- a/generated/backend/Severity.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -export type Severity = "CRITICAL" | "HIGH" | "MEDIUM" | "LOW" ; diff --git a/generated/backend/Source.d.ts b/generated/backend/Source.d.ts deleted file mode 100644 index b2732ce0..00000000 --- a/generated/backend/Source.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { DependencyReport } from '../backend/DependencyReport'; -import { SourceSummary } from '../backend/SourceSummary'; -export declare class Source { - 'summary'?: SourceSummary; - 'dependencies'?: Array; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} diff --git a/generated/backend/Source.js b/generated/backend/Source.js deleted file mode 100644 index 207a0d19..00000000 --- a/generated/backend/Source.js +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export class Source { - 'summary'; - 'dependencies'; - static discriminator = undefined; - static attributeTypeMap = [ - { - "name": "summary", - "baseName": "summary", - "type": "SourceSummary", - "format": "" - }, - { - "name": "dependencies", - "baseName": "dependencies", - "type": "Array", - "format": "" - } - ]; - static getAttributeTypeMap() { - return Source.attributeTypeMap; - } - constructor() { - } -} diff --git a/generated/backend/Source.ts b/generated/backend/Source.ts deleted file mode 100644 index f78fbe69..00000000 --- a/generated/backend/Source.ts +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { DependencyReport } from '../backend/DependencyReport'; -import { SourceSummary } from '../backend/SourceSummary'; - -export class Source { - 'summary'?: SourceSummary; - 'dependencies'?: Array; - - static readonly discriminator: string | undefined = undefined; - - static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ - { - "name": "summary", - "baseName": "summary", - "type": "SourceSummary", - "format": "" - }, - { - "name": "dependencies", - "baseName": "dependencies", - "type": "Array", - "format": "" - } ]; - - static getAttributeTypeMap() { - return Source.attributeTypeMap; - } - - public constructor() { - } -} - diff --git a/generated/backend/SourceSummary.d.ts b/generated/backend/SourceSummary.d.ts deleted file mode 100644 index b1d5709e..00000000 --- a/generated/backend/SourceSummary.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export declare class SourceSummary { - 'direct'?: number; - 'transitive'?: number; - 'total'?: number; - 'dependencies'?: number; - 'critical'?: number; - 'high'?: number; - 'medium'?: number; - 'low'?: number; - 'remediations'?: number; - 'recommendations'?: number; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} diff --git a/generated/backend/SourceSummary.js b/generated/backend/SourceSummary.js deleted file mode 100644 index e1a42496..00000000 --- a/generated/backend/SourceSummary.js +++ /dev/null @@ -1,91 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export class SourceSummary { - 'direct'; - 'transitive'; - 'total'; - 'dependencies'; - 'critical'; - 'high'; - 'medium'; - 'low'; - 'remediations'; - 'recommendations'; - static discriminator = undefined; - static attributeTypeMap = [ - { - "name": "direct", - "baseName": "direct", - "type": "number", - "format": "" - }, - { - "name": "transitive", - "baseName": "transitive", - "type": "number", - "format": "" - }, - { - "name": "total", - "baseName": "total", - "type": "number", - "format": "" - }, - { - "name": "dependencies", - "baseName": "dependencies", - "type": "number", - "format": "" - }, - { - "name": "critical", - "baseName": "critical", - "type": "number", - "format": "" - }, - { - "name": "high", - "baseName": "high", - "type": "number", - "format": "" - }, - { - "name": "medium", - "baseName": "medium", - "type": "number", - "format": "" - }, - { - "name": "low", - "baseName": "low", - "type": "number", - "format": "" - }, - { - "name": "remediations", - "baseName": "remediations", - "type": "number", - "format": "" - }, - { - "name": "recommendations", - "baseName": "recommendations", - "type": "number", - "format": "" - } - ]; - static getAttributeTypeMap() { - return SourceSummary.attributeTypeMap; - } - constructor() { - } -} diff --git a/generated/backend/SourceSummary.ts b/generated/backend/SourceSummary.ts deleted file mode 100644 index ccf5a219..00000000 --- a/generated/backend/SourceSummary.ts +++ /dev/null @@ -1,97 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -export class SourceSummary { - 'direct'?: number; - 'transitive'?: number; - 'total'?: number; - 'dependencies'?: number; - 'critical'?: number; - 'high'?: number; - 'medium'?: number; - 'low'?: number; - 'remediations'?: number; - 'recommendations'?: number; - - static readonly discriminator: string | undefined = undefined; - - static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ - { - "name": "direct", - "baseName": "direct", - "type": "number", - "format": "" - }, - { - "name": "transitive", - "baseName": "transitive", - "type": "number", - "format": "" - }, - { - "name": "total", - "baseName": "total", - "type": "number", - "format": "" - }, - { - "name": "dependencies", - "baseName": "dependencies", - "type": "number", - "format": "" - }, - { - "name": "critical", - "baseName": "critical", - "type": "number", - "format": "" - }, - { - "name": "high", - "baseName": "high", - "type": "number", - "format": "" - }, - { - "name": "medium", - "baseName": "medium", - "type": "number", - "format": "" - }, - { - "name": "low", - "baseName": "low", - "type": "number", - "format": "" - }, - { - "name": "remediations", - "baseName": "remediations", - "type": "number", - "format": "" - }, - { - "name": "recommendations", - "baseName": "recommendations", - "type": "number", - "format": "" - } ]; - - static getAttributeTypeMap() { - return SourceSummary.attributeTypeMap; - } - - public constructor() { - } -} - diff --git a/generated/backend/TransitiveDependencyReport.d.ts b/generated/backend/TransitiveDependencyReport.d.ts deleted file mode 100644 index 495f0ae7..00000000 --- a/generated/backend/TransitiveDependencyReport.d.ts +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { Issue } from '../backend/Issue'; -export declare class TransitiveDependencyReport { - /** - * PackageURL used to identify a dependency artifact - */ - 'ref'?: string; - 'issues'?: Array; - 'highestVulnerability'?: Issue; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} diff --git a/generated/backend/TransitiveDependencyReport.js b/generated/backend/TransitiveDependencyReport.js deleted file mode 100644 index 9746d30e..00000000 --- a/generated/backend/TransitiveDependencyReport.js +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export class TransitiveDependencyReport { - /** - * PackageURL used to identify a dependency artifact - */ - 'ref'; - 'issues'; - 'highestVulnerability'; - static discriminator = undefined; - static attributeTypeMap = [ - { - "name": "ref", - "baseName": "ref", - "type": "string", - "format": "" - }, - { - "name": "issues", - "baseName": "issues", - "type": "Array", - "format": "" - }, - { - "name": "highestVulnerability", - "baseName": "highestVulnerability", - "type": "Issue", - "format": "" - } - ]; - static getAttributeTypeMap() { - return TransitiveDependencyReport.attributeTypeMap; - } - constructor() { - } -} diff --git a/generated/backend/TransitiveDependencyReport.ts b/generated/backend/TransitiveDependencyReport.ts deleted file mode 100644 index ef35f27a..00000000 --- a/generated/backend/TransitiveDependencyReport.ts +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Exhort API - * Vulnerability analysis with Red Hat Trusted Profile Analyzer - * - * OpenAPI spec version: 4.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { Issue } from '../backend/Issue'; - -export class TransitiveDependencyReport { - /** - * PackageURL used to identify a dependency artifact - */ - 'ref'?: string; - 'issues'?: Array; - 'highestVulnerability'?: Issue; - - static readonly discriminator: string | undefined = undefined; - - static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ - { - "name": "ref", - "baseName": "ref", - "type": "string", - "format": "" - }, - { - "name": "issues", - "baseName": "issues", - "type": "Array", - "format": "" - }, - { - "name": "highestVulnerability", - "baseName": "highestVulnerability", - "type": "Issue", - "format": "" - } ]; - - static getAttributeTypeMap() { - return TransitiveDependencyReport.attributeTypeMap; - } - - public constructor() { - } -} - diff --git a/generated/backend/tsconfig.json b/generated/backend/tsconfig.json deleted file mode 100644 index 99aad9db..00000000 --- a/generated/backend/tsconfig.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "compilerOptions": { - "allowJs": true, - "allowSyntheticDefaultImports": true, - "baseUrl": "src", - "declaration": true, - "esModuleInterop": true, - "lib": ["esnext"], - "moduleResolution": "Node", - "noUnusedLocals": false, - "noUnusedParameters": false, - "skipLibCheck": true, - "types": ["node"], - "module": "esnext", - "target": "esnext" - } -} diff --git a/integration/testers/typescript/index.ts b/integration/testers/typescript/index.ts index c9fb8cd4..3e5ac38c 100644 --- a/integration/testers/typescript/index.ts +++ b/integration/testers/typescript/index.ts @@ -2,6 +2,7 @@ import exhort from '@trustification/exhort-javascript-api' import process from 'node:process' +import { AnalysisReport } from '@trustification/exhort-api-spec/model/v4/AnalysisReport' const [,, ...args] = process.argv @@ -9,13 +10,13 @@ if ('stack' === args[0]) { // arg[1] = manifest path; arg[2] = is html boolean let html = args[2] === 'true' let res = await exhort.stackAnalysis(args[1], html) - console.log(html ? res as string : JSON.stringify(res as exhort.AnalysisReport, null, 2)) + console.log(html ? res as string : JSON.stringify(res as AnalysisReport, null, 2)) process.exit(0) } if ('component' === args[0]) { // arg[1] = manifest path let res = await exhort.componentAnalysis(args[1]) - console.log(JSON.stringify(res as exhort.AnalysisReport, null, 2)) + console.log(JSON.stringify(res as AnalysisReport, null, 2)) process.exit(0) } diff --git a/package-lock.json b/package-lock.json index b193f504..ab6b047c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ }, "devDependencies": { "@babel/core": "^7.23.2", - "@openapitools/openapi-generator-cli": "^2.6.0", + "@trustification/exhort-api-spec": "^1.0.9", "@types/node": "^20.17.30", "babel-plugin-rewire": "^1.2.0", "c8": "^8.0.0", @@ -459,17 +459,6 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/runtime": { - "version": "7.22.5", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/template": { "version": "7.22.15", "dev": true, @@ -699,16 +688,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@lukeed/csprng": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", - "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/@mswjs/cookies": { "version": "0.2.2", "dev": true, @@ -747,87 +726,6 @@ "events": "^3.3.0" } }, - "node_modules/@nestjs/axios": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@nestjs/axios/-/axios-3.1.3.tgz", - "integrity": "sha512-RZ/63c1tMxGLqyG3iOCVt7A72oy4x1eM6QEhd4KzCYpaVWW0igq0WSREeRoEZhIxRcZfDfIIkvsOMiM7yfVGZQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@nestjs/common": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0", - "axios": "^1.3.1", - "rxjs": "^6.0.0 || ^7.0.0" - } - }, - "node_modules/@nestjs/common": { - "version": "10.4.15", - "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-10.4.15.tgz", - "integrity": "sha512-vaLg1ZgwhG29BuLDxPA9OAcIlgqzp9/N8iG0wGapyUNTf4IY4O6zAHgN6QalwLhFxq7nOI021vdRojR1oF3bqg==", - "dev": true, - "license": "MIT", - "dependencies": { - "iterare": "1.2.1", - "tslib": "2.8.1", - "uid": "2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nest" - }, - "peerDependencies": { - "class-transformer": "*", - "class-validator": "*", - "reflect-metadata": "^0.1.12 || ^0.2.0", - "rxjs": "^7.1.0" - }, - "peerDependenciesMeta": { - "class-transformer": { - "optional": true - }, - "class-validator": { - "optional": true - } - } - }, - "node_modules/@nestjs/core": { - "version": "10.4.15", - "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-10.4.15.tgz", - "integrity": "sha512-UBejmdiYwaH6fTsz2QFBlC1cJHM+3UDeLZN+CiP9I1fRv2KlBZsmozGLbV5eS1JAVWJB4T5N5yQ0gjN8ZvcS2w==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "@nuxtjs/opencollective": "0.3.2", - "fast-safe-stringify": "2.1.1", - "iterare": "1.2.1", - "path-to-regexp": "3.3.0", - "tslib": "2.8.1", - "uid": "2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nest" - }, - "peerDependencies": { - "@nestjs/common": "^10.0.0", - "@nestjs/microservices": "^10.0.0", - "@nestjs/platform-express": "^10.0.0", - "@nestjs/websockets": "^10.0.0", - "reflect-metadata": "^0.1.12 || ^0.2.0", - "rxjs": "^7.1.0" - }, - "peerDependenciesMeta": { - "@nestjs/microservices": { - "optional": true - }, - "@nestjs/platform-express": { - "optional": true - }, - "@nestjs/websockets": { - "optional": true - } - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "dev": true, @@ -860,25 +758,6 @@ "node": ">= 8" } }, - "node_modules/@nuxtjs/opencollective": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", - "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "consola": "^2.15.0", - "node-fetch": "^2.6.1" - }, - "bin": { - "opencollective": "bin/opencollective.js" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" - } - }, "node_modules/@one-ini/wasm": { "version": "0.1.1", "dev": true, @@ -933,97 +812,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@openapitools/openapi-generator-cli": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.17.0.tgz", - "integrity": "sha512-gOgSEPD08okBn/EvlsNF/eM9vQOnLZRJJeu5KA7bBJdgXmeiu/lVhTMmb+BPanMXqMRtuaRua0UBqWkDw9VaXQ==", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@nestjs/axios": "3.1.3", - "@nestjs/common": "10.4.15", - "@nestjs/core": "10.4.15", - "@nuxtjs/opencollective": "0.3.2", - "axios": "1.7.9", - "chalk": "4.1.2", - "commander": "8.3.0", - "compare-versions": "4.1.4", - "concurrently": "6.5.1", - "console.table": "0.10.0", - "fs-extra": "10.1.0", - "glob": "9.3.5", - "inquirer": "8.2.6", - "lodash": "4.17.21", - "proxy-agent": "6.5.0", - "reflect-metadata": "0.1.13", - "rxjs": "7.8.1", - "tslib": "2.8.1" - }, - "bin": { - "openapi-generator-cli": "main.js" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/openapi_generator" - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/commander": { - "version": "8.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/glob": { - "version": "9.3.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", - "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "minimatch": "^8.0.2", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/minimatch": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", - "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@sinonjs/commons": { "version": "3.0.0", "dev": true, @@ -1063,12 +851,12 @@ "dev": true, "license": "(Unlicense OR Apache-2.0)" }, - "node_modules/@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "node_modules/@trustification/exhort-api-spec": { + "version": "1.0.9", + "resolved": "https://npm.pkg.github.com/download/@trustification/exhort-api-spec/1.0.9/bb1a906b78d22200498202645c07935cfbb437a9", + "integrity": "sha512-Z7itMc+uHxY88YLaSg35WGas+F5ajReiW2UfVWJLxmEu3YmXsA2PYrwlGUPc+AElQrQUdhKa+QPkX82geDOsOw==", "dev": true, - "license": "MIT" + "license": "Apache-2.0" }, "node_modules/@types/cookie": { "version": "0.4.1", @@ -1154,16 +942,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/ajv": { "version": "6.12.6", "dev": true, @@ -1259,26 +1037,6 @@ "node": "*" } }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, - "license": "MIT" - }, "node_modules/available-typed-arrays": { "version": "1.0.5", "dev": true, @@ -1290,18 +1048,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/axios": { - "version": "1.7.9", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", - "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", - "dev": true, - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, "node_modules/babel-plugin-rewire": { "version": "1.2.0", "dev": true, @@ -1331,16 +1077,6 @@ ], "license": "MIT" }, - "node_modules/basic-ftp": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", - "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/binary-extensions": { "version": "2.2.0", "dev": true, @@ -1699,19 +1435,6 @@ "version": "1.1.4", "license": "MIT" }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/commander": { "version": "10.0.1", "dev": true, @@ -1720,120 +1443,11 @@ "node": ">=14" } }, - "node_modules/compare-versions": { - "version": "4.1.4", - "dev": true, - "license": "MIT" - }, "node_modules/concat-map": { "version": "0.0.1", "dev": true, "license": "MIT" }, - "node_modules/concurrently": { - "version": "6.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "date-fns": "^2.16.1", - "lodash": "^4.17.21", - "rxjs": "^6.6.3", - "spawn-command": "^0.0.2-1", - "supports-color": "^8.1.0", - "tree-kill": "^1.2.2", - "yargs": "^16.2.0" - }, - "bin": { - "concurrently": "bin/concurrently.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/concurrently/node_modules/cliui": { - "version": "7.0.4", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/concurrently/node_modules/rxjs": { - "version": "6.6.7", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/concurrently/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/concurrently/node_modules/yargs": { - "version": "16.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/concurrently/node_modules/yargs-parser": { - "version": "20.2.9", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", - "dev": true, - "license": "MIT" - }, - "node_modules/console.table": { - "version": "0.10.0", - "dev": true, - "license": "MIT", - "dependencies": { - "easy-table": "1.1.0" - }, - "engines": { - "node": "> 0.10" - } - }, "node_modules/convert-source-map": { "version": "1.9.0", "dev": true, @@ -1862,31 +1476,6 @@ "node": ">= 8" } }, - "node_modules/data-uri-to-buffer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/date-fns": { - "version": "2.30.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, "node_modules/debug": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", @@ -1929,32 +1518,7 @@ "clone": "^1.0.2" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/degenerator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/diff": { @@ -1993,14 +1557,6 @@ "node": ">= 0.4" } }, - "node_modules/easy-table": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "wcwidth": ">=1.0.1" - } - }, "node_modules/editorconfig": { "version": "1.0.2", "dev": true, @@ -2082,22 +1638,6 @@ "node": ">= 0.4" } }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/escalade": { "version": "3.1.1", "license": "MIT", @@ -2116,28 +1656,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, "node_modules/eslint": { "version": "8.52.0", "dev": true, @@ -2259,8 +1777,8 @@ }, "node_modules/esprima": { "version": "4.0.1", - "devOptional": true, "license": "BSD-2-Clause", + "optional": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -2343,13 +1861,6 @@ "dev": true, "license": "MIT" }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true, - "license": "MIT" - }, "node_modules/fast-toml": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/fast-toml/-/fast-toml-0.5.4.tgz", @@ -2469,27 +1980,6 @@ "dev": true, "license": "ISC" }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, "node_modules/for-each": { "version": "0.3.3", "dev": true, @@ -2510,35 +2000,6 @@ "node": ">=8.0.0" } }, - "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "dev": true, @@ -2629,21 +2090,6 @@ "node": ">= 0.4" } }, - "node_modules/get-uri": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", - "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^6.0.2", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/glob": { "version": "7.2.0", "dev": true, @@ -2701,11 +2147,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, "node_modules/graphemer": { "version": "1.4.0", "dev": true, @@ -2791,34 +2232,6 @@ "dev": true, "license": "MIT" }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/iconv-lite": { "version": "0.4.24", "dev": true, @@ -2934,27 +2347,6 @@ "node": ">=8" } }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/ip-address/node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/is-arguments": { "version": "1.1.1", "dev": true, @@ -3139,16 +2531,6 @@ "node": ">=8" } }, - "node_modules/iterare": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", - "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=6" - } - }, "node_modules/js-levenshtein": { "version": "1.1.6", "dev": true, @@ -3168,13 +2550,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "dev": true, - "license": "MIT" - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "dev": true, @@ -3185,17 +2560,6 @@ "dev": true, "license": "MIT" }, - "node_modules/jsonfile": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/just-extend": { "version": "4.2.1", "dev": true, @@ -3318,29 +2682,6 @@ "node": ">= 0.4" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/mimic-fn": { "version": "2.1.0", "dev": true, @@ -3360,16 +2701,6 @@ "node": "*" } }, - "node_modules/minipass": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", - "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=8" - } - }, "node_modules/mocha": { "version": "10.8.2", "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz", @@ -3583,16 +2914,6 @@ "dev": true, "license": "MIT" }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/nise": { "version": "5.1.4", "dev": true, @@ -3755,40 +3076,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pac-proxy-agent": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", - "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.6", - "pac-resolver": "^7.0.1", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-resolver": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", - "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", - "dev": true, - "license": "MIT", - "dependencies": { - "degenerator": "^5.0.0", - "netmask": "^2.0.2" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/packageurl-js": { "version": "1.0.2", "license": "MIT" @@ -3828,47 +3115,6 @@ "node": ">=8" } }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/path-scurry/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/path-to-regexp": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz", - "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==", - "dev": true, - "license": "MIT" - }, "node_modules/pathval": { "version": "1.1.1", "dev": true, @@ -3901,43 +3147,6 @@ "node": ">= 0.8.0" } }, - "node_modules/proxy-agent": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", - "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.6", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.1.0", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true, - "license": "MIT" - }, "node_modules/punycode": { "version": "2.3.0", "dev": true, @@ -3999,18 +3208,6 @@ "node": ">=8.10.0" } }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "dev": true, - "license": "MIT" - }, "node_modules/require-directory": { "version": "2.1.1", "license": "MIT", @@ -4214,63 +3411,6 @@ "sinon": ">=4.0.0" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", - "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/spawn-command": { - "version": "0.0.2-1", - "dev": true, - "license": "MIT" - }, "node_modules/sprintf-js": { "version": "1.0.3", "license": "BSD-3-Clause", @@ -4388,14 +3528,6 @@ "version": "0.0.3", "license": "MIT" }, - "node_modules/tree-kill": { - "version": "1.2.2", - "dev": true, - "license": "MIT", - "bin": { - "tree-kill": "cli.js" - } - }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", @@ -4445,19 +3577,6 @@ "node": ">=14.17" } }, - "node_modules/uid": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz", - "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@lukeed/csprng": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/undici-types": { "version": "6.19.8", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", @@ -4465,14 +3584,6 @@ "dev": true, "license": "MIT" }, - "node_modules/universalify": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/update-browserslist-db": { "version": "1.0.13", "dev": true, diff --git a/package.json b/package.json index 1c3325d6..1fb750b0 100644 --- a/package.json +++ b/package.json @@ -41,11 +41,7 @@ "tests:rep": "mocha --reporter-option maxDiffSize=0 --reporter json > unit-tests-result.json", "integration-tests": "mocha --grep \"Integration Tests\"", "precompile": "rm -rf dist", - "compile": "tsc -p tsconfig.json", - "pregen:backend": "rm -rf generated", - "gen:backend": "openapi-generator-cli generate -i https://raw.githubusercontent.com/trustification/exhort-api-spec/v1.0.3/api/v4/openapi.yaml -g typescript --global-property models --model-package backend -o generated", - "postgen:backend": "cp test/it/tsconfig.json generated/backend/tsconfig.json ; find generated/backend -type f -exec sed -i \"/^import { HttpFile } from '..\\/http\\/http'/d\" {} + ; npm run compileintegration ", - "compileintegration": "bash -c \"cd generated/backend ; tsc -p tsconfig.json ; cd ../..\"" + "compile": "tsc -p tsconfig.json" }, "dependencies": { "@babel/core": "^7.23.2", @@ -59,7 +55,7 @@ }, "devDependencies": { "@babel/core": "^7.23.2", - "@openapitools/openapi-generator-cli": "^2.6.0", + "@trustification/exhort-api-spec": "^1.0.9", "@types/node": "^20.17.30", "babel-plugin-rewire": "^1.2.0", "c8": "^8.0.0", diff --git a/src/analysis.js b/src/analysis.js index 260e203a..d440b30f 100644 --- a/src/analysis.js +++ b/src/analysis.js @@ -35,7 +35,7 @@ function addProxyAgent(options, opts) { * @param {string} url - the backend url to send the request to * @param {boolean} [html=false] - true will return 'text/html', false will return 'application/json' * @param {{}} [opts={}] - optional various options to pass along the application - * @returns {Promise} + * @returns {Promise} */ async function requestStack(provider, manifest, url, html = false, opts = {}) { opts["source-manifest"] = Buffer.from(fs.readFileSync(manifest).toString()).toString('base64') @@ -93,7 +93,7 @@ async function requestStack(provider, manifest, url, html = false, opts = {}) { * @param {string} manifest - path for the manifest * @param {string} url - the backend url to send the request to * @param {{}} [opts={}] - optional various options to pass along the application - * @returns {Promise} + * @returns {Promise} */ async function requestComponent(provider, manifest, url, opts = {}) { opts["source-manifest"] = Buffer.from(fs.readFileSync(manifest).toString()).toString('base64') diff --git a/src/index.js b/src/index.js index 65e8f87e..5ebdebf7 100644 --- a/src/index.js +++ b/src/index.js @@ -1,25 +1,35 @@ import path from "node:path"; import { EOL } from "os"; import { availableProviders, match } from './provider.js' -import { AnalysisReport } from '../generated/backend/AnalysisReport.js' import analysis from './analysis.js' import fs from 'node:fs' import { getCustom } from "./tools.js"; import.meta.dirname import * as url from 'url'; -export default { AnalysisReport, componentAnalysis, stackAnalysis, validateToken } +export default { componentAnalysis, stackAnalysis, validateToken } export const exhortDevDefaultUrl = 'https://exhort.stage.devshift.net'; +/** @type {string} The default production URL for the Exhort backend. */ export const exhortDefaultUrl = "https://rhda.rhcloud.com"; +/** + * Logs messages to the console if the EXHORT_DEBUG environment variable is set to "true". + * @param {string} alongsideText - The text to prepend to the log message. + * @param {any} valueToBePrinted - The value to log. + * @private + */ function logOptionsAndEnvironmentsVariables(alongsideText,valueToBePrinted) { if (process.env["EXHORT_DEBUG"] === "true") { console.log(`${alongsideText}: ${valueToBePrinted} ${EOL}`) } } +/** + * Reads the version from the package.json file and logs it if debug mode is enabled. + * @private + */ function readAndPrintVersionFromPackageJson() { let dirName // new ESM way in nodeJS ( since node version 22 ) to bring module directory. @@ -41,7 +51,8 @@ function readAndPrintVersionFromPackageJson() { logOptionsAndEnvironmentsVariables("exhort-javascript-api analysis started, version: ", packageJson.version) } -/** This function is used to determine exhort theUrl backend according to the following logic: +/** + * This function is used to determine exhort theUrl backend according to the following logic: * If EXHORT_DEV_MODE = true, then take the value of the EXHORT BACKEND URL of dev/staging environment in such a way: * take it as environment variable if exists, otherwise, take it from opts object if exists, otherwise, use the hardcoded default of DEV environment. * If EXHORT_DEV_MODE = false , then select the production theUrl of EXHORT Backend, which is hardcoded. @@ -72,16 +83,17 @@ function selectExhortBackend(opts = {}) { } /** - * - * @param opts - * @return {string} + * Test function for selecting the Exhort backend URL. + * Primarily used for testing the backend selection logic. + * @param {object} [opts={}] - Optional configuration, similar to `selectExhortBackend`. + * @return {string} The selected exhort backend URL. */ export function testSelectExhortBackend(opts) { return selectExhortBackend(opts) } /** - * @type {string} backend theUrl to send requests to + * @type {string} The URL of the Exhort backend to send requests to. * @private */ let theUrl @@ -100,7 +112,7 @@ let theUrl * @param {string} manifest * @param {false} html * @param {object} [opts={}] - * @returns {Promise} + * @returns {Promise} * @throws {Error} */ @@ -108,9 +120,9 @@ let theUrl * Get stack analysis report for a manifest file. * @overload * @param {string} manifest - path for the manifest - * @param {boolean} [html=false] - true will return a html string, false will return AnalysisReport - * @param {{}} [opts={}] - optional various options to pass along the application - * @returns {Promise} + * @param {boolean} [html=false] - true will return a html string, false will return AnalysisReport object. + * @param {object} [opts={}] - optional various options to pass along the application + * @returns {Promise} * @throws {Error} if manifest inaccessible, no matching provider, failed to get create content, * or backend request failed */ @@ -124,8 +136,8 @@ async function stackAnalysis(manifest, html = false, opts = {}) { /** * Get component analysis report for a manifest content. * @param {string} manifest - path to the manifest - * @param {{}} [opts={}] - optional various options to pass along the application - * @returns {Promise} + * @param {object} [opts={}] - optional various options to pass along the application + * @returns {Promise} * @throws {Error} if no matching provider, failed to get create content, or backend request failed */ async function componentAnalysis(manifest, opts = {}) { @@ -136,6 +148,12 @@ async function componentAnalysis(manifest, opts = {}) { return await analysis.requestComponent(provider, manifest, theUrl, opts) // throws error request sending failed } +/** + * Validates the Exhort token. + * @param {object} [opts={}] - Optional parameters, potentially including token override. + * @returns {Promise} A promise that resolves with the validation result from the backend. + * @throws {Error} if the backend request failed. + */ async function validateToken(opts = {}) { theUrl = selectExhortBackend(opts) return await analysis.validateToken(theUrl, opts) // throws error request sending failed diff --git a/src/providers/golang_gomodules.js b/src/providers/golang_gomodules.js index 74a6fe45..8f34d11e 100644 --- a/src/providers/golang_gomodules.js +++ b/src/providers/golang_gomodules.js @@ -122,7 +122,7 @@ function extractPackageName(line) { function getIgnoredDeps(manifest) { let goMod = fs.readFileSync(manifest).toString().trim() let lines = goMod.split(getLineSeparatorGolang()); - return lines.filter(line => ignoredLine(line)).map(line=> extractPackageName(line)).map(dep => toPurl(dep,/[ ]{1,3}/,undefined)) + return lines.filter(line => ignoredLine(line)).map(line=> extractPackageName(line)).map(dep => toPurl(dep,/[ ]{1,3}/)) } /** @@ -271,7 +271,7 @@ function getSBOM(manifest, opts = {}, includeTransitive) { performManifestVersionsCheck(root, rows, manifest) } - const mainModule = toPurl(root, "@", undefined) + const mainModule = toPurl(root, "@") sbom.addRoot(mainModule) const exhortGoMvsLogicEnabled = getCustom("EXHORT_GO_MVS_LOGIC_ENABLED", "false", opts) if(includeTransitive && exhortGoMvsLogicEnabled === "true") { @@ -284,9 +284,9 @@ function getSBOM(manifest, opts = {}, includeTransitive) { rowsWithoutBlankRows.forEach(row => { if (getParentVertexFromEdge(row) !== currentParent) { currentParent = getParentVertexFromEdge(row) - source = toPurl(currentParent, "@", undefined); + source = toPurl(currentParent, "@"); } - let target = toPurl(getChildVertexFromEdge(row), "@", undefined); + let target = toPurl(getChildVertexFromEdge(row), "@"); sbom.addDependency(source, target) }) @@ -297,7 +297,7 @@ function getSBOM(manifest, opts = {}, includeTransitive) { let directDependencies = rows.filter(row => row.startsWith(root)); directDependencies.forEach(pair => { let dependency = getChildVertexFromEdge(pair) - let depPurl = toPurl(dependency, "@", undefined); + let depPurl = toPurl(dependency, "@"); if(dependencyNotIgnored(ignoredDeps, depPurl)) { sbom.addDependency(mainModule, depPurl) } @@ -314,24 +314,23 @@ function getSBOM(manifest, opts = {}, includeTransitive) { * @param {string }dependency the name of the artifact, can include a namespace(group) or not - namespace/artifactName. * @param {RegExp} delimiter delimiter between name of dependency and version - * @param { object } qualifiers - contains key values related to the go environment * @private * @returns {PackageURL|null} PackageUrl Object ready to be used in SBOM */ -function toPurl(dependency, delimiter, qualifiers) { +function toPurl(dependency, delimiter) { let lastSlashIndex = dependency.lastIndexOf("/"); let pkg if (lastSlashIndex === -1) { let splitParts = dependency.split(delimiter); - pkg = new PackageURL(ecosystem,undefined,splitParts[0],splitParts[1],qualifiers,undefined) + pkg = new PackageURL(ecosystem, undefined, splitParts[0], splitParts[1], undefined, undefined) } else { let namespace = dependency.slice(0,lastSlashIndex) let dependencyAndVersion = dependency.slice(lastSlashIndex+1) let parts = dependencyAndVersion.split(delimiter); if(parts.length === 2 ) { - pkg = new PackageURL(ecosystem,namespace,parts[0],parts[1],qualifiers,undefined); + pkg = new PackageURL(ecosystem, namespace, parts[0], parts[1], undefined, undefined); } else { - pkg = new PackageURL(ecosystem,namespace,parts[0],defaultMainModuleVersion,qualifiers,undefined); + pkg = new PackageURL(ecosystem, namespace, parts[0], defaultMainModuleVersion, undefined, undefined); } } return pkg diff --git a/tsconfig.json b/tsconfig.json index 2eb1d9c5..7f2d0acc 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,5 @@ { - "include": ["src/**/*", "generated/backend/**/*","./package.json"], + "include": ["src/**/*","./package.json"], "exclude": ["node_modules", "dist"], "compilerOptions": { "allowJs": true, @@ -12,7 +12,7 @@ "noUnusedLocals": false, "noUnusedParameters": false, "rootDir": ".", - "rootDirs": ["src", "generated"], + "rootDirs": ["src"], "skipLibCheck": true, "types": ["node"], "module": "esnext",