From 88db080c4e823c3b9216f18dc432b26dd9070db1 Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Thu, 9 Jun 2022 00:25:00 +0200 Subject: [PATCH] have libs as bundled packages Signed-off-by: Jan Kowalleck --- .eslintrc.js | 3 ++ .github/workflows/nodejs.yml | 2 + .mocharc.js | 1 - .npmignore | 2 + package-lock.json | 23 +++++++++++ package.json | 4 ++ .../universal-node-xml/index.d.ts | 0 .../universal-node-xml/index.js | 0 packages/universal-node-xml/package.json | 39 +++++++++++++++++++ .../stringifiers/helpers.js | 0 .../stringifiers/xmlbuilder2.js | 0 .../stringifiers/xmlbuilder2.spec.js | 0 src/serialize/xmlSerializer.node.ts | 2 +- 13 files changed, 74 insertions(+), 2 deletions(-) rename {libs => packages}/universal-node-xml/index.d.ts (100%) rename {libs => packages}/universal-node-xml/index.js (100%) create mode 100644 packages/universal-node-xml/package.json rename {libs => packages}/universal-node-xml/stringifiers/helpers.js (100%) rename {libs => packages}/universal-node-xml/stringifiers/xmlbuilder2.js (100%) rename {libs => packages}/universal-node-xml/stringifiers/xmlbuilder2.spec.js (100%) diff --git a/.eslintrc.js b/.eslintrc.js index acd9dce5d..4999d42b2 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -29,6 +29,9 @@ module.exports = { parserOptions: { project: './tsconfig.json' }, + ignorePatterns: [ + 'packages' + ], env: { node: true, browser: true diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index daf3f4ebe..b5341d6d9 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -106,3 +106,5 @@ jobs: run: npm run test:node # test-web: # TODO via https://github.com/CycloneDX/cyclonedx-javascript-library/issues/51 + +# TODO test for packages - maybe just `npm ci && npm test` in a matrix? diff --git a/.mocharc.js b/.mocharc.js index 5f780ee72..ad97e4701 100644 --- a/.mocharc.js +++ b/.mocharc.js @@ -26,7 +26,6 @@ Copyright (c) OWASP Foundation. All Rights Reserved. module.exports = { spec: [ 'tests', - 'libs' ], recursive: true, parallel: false, // if true, then some IDEs cannot run it diff --git a/.npmignore b/.npmignore index 9d8250cb1..072f9941c 100644 --- a/.npmignore +++ b/.npmignore @@ -170,5 +170,7 @@ dist /examples/ +/packages/ + /reports/ /CI_reports/ diff --git a/package-lock.json b/package-lock.json index 242adfcd2..c686309f1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,8 +7,12 @@ "": { "name": "@cyclonedx/cyclonedx-library", "version": "1.0.0-beta.1", + "bundleDependencies": [ + "@cyclonedx/cyclonedx-library-universal-node-xml" + ], "license": "Apache-2.0", "dependencies": { + "@cyclonedx/cyclonedx-library-universal-node-xml": "file:packages/universal-node-xml", "packageurl-js": "^0.0.6" }, "devDependencies": { @@ -135,6 +139,10 @@ "node": ">=4" } }, + "node_modules/@cyclonedx/cyclonedx-library-universal-node-xml": { + "resolved": "packages/universal-node-xml", + "link": true + }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", @@ -5516,6 +5524,15 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "packages/universal-node-xml": { + "license": "Apache-2.0", + "devDependencies": { + "xmlbuilder2": "^3.0.2" + }, + "optionalDependencies": { + "xmlbuilder2": "^3.0.2" + } } }, "dependencies": { @@ -5603,6 +5620,12 @@ } } }, + "@cyclonedx/cyclonedx-library-universal-node-xml": { + "version": "file:packages/universal-node-xml", + "requires": { + "xmlbuilder2": "^3.0.2" + } + }, "@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", diff --git a/package.json b/package.json index c9232cc60..99d63eed6 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,11 @@ "engines": { "node": ">=14.0.0" }, + "bundleDependencies": [ + "@cyclonedx/cyclonedx-library-universal-node-xml" + ], "dependencies": { + "@cyclonedx/cyclonedx-library-universal-node-xml": "file:packages/universal-node-xml", "packageurl-js": "^0.0.6" }, "optionalDependencies": { diff --git a/libs/universal-node-xml/index.d.ts b/packages/universal-node-xml/index.d.ts similarity index 100% rename from libs/universal-node-xml/index.d.ts rename to packages/universal-node-xml/index.d.ts diff --git a/libs/universal-node-xml/index.js b/packages/universal-node-xml/index.js similarity index 100% rename from libs/universal-node-xml/index.js rename to packages/universal-node-xml/index.js diff --git a/packages/universal-node-xml/package.json b/packages/universal-node-xml/package.json new file mode 100644 index 000000000..39a09fdb0 --- /dev/null +++ b/packages/universal-node-xml/package.json @@ -0,0 +1,39 @@ +{ + "name": "@cyclonedx/cyclonedx-library-universal-node-xml", + "description": "Universal XML lib", + "private": true, + "repository": { + "type": "git", + "url": "https://github.com/CycloneDX/cyclonedx-javascript-library" + }, + "bugs": { + "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues" + }, + "license": "Apache-2.0", + "author": { + "name": "Jan Kowalleck", + "email": "jan.kowalleck@gmail.com" + }, + "contributors": [ + { + "name": "Jan Kowalleck", + "email": "jan.kowalleck@gmail.com" + } + ], + "type": "commonjs", + "optionalDependencies": { + "xmlbuilder2": "^3.0.2" + }, + "devDependencies": { + "xmlbuilder2": "^3.0.2" + }, + "types": "./index.d.ts", + "main": "./index.js", + "exports": "./index.js", + "files": [ + "index.*", + "stringifiers/*.js", + "!stringifiers/*.spec.js", + "!stringifiers/*.test.js" + ] +} diff --git a/libs/universal-node-xml/stringifiers/helpers.js b/packages/universal-node-xml/stringifiers/helpers.js similarity index 100% rename from libs/universal-node-xml/stringifiers/helpers.js rename to packages/universal-node-xml/stringifiers/helpers.js diff --git a/libs/universal-node-xml/stringifiers/xmlbuilder2.js b/packages/universal-node-xml/stringifiers/xmlbuilder2.js similarity index 100% rename from libs/universal-node-xml/stringifiers/xmlbuilder2.js rename to packages/universal-node-xml/stringifiers/xmlbuilder2.js diff --git a/libs/universal-node-xml/stringifiers/xmlbuilder2.spec.js b/packages/universal-node-xml/stringifiers/xmlbuilder2.spec.js similarity index 100% rename from libs/universal-node-xml/stringifiers/xmlbuilder2.spec.js rename to packages/universal-node-xml/stringifiers/xmlbuilder2.spec.js diff --git a/src/serialize/xmlSerializer.node.ts b/src/serialize/xmlSerializer.node.ts index f17687d8e..4a94cecbd 100644 --- a/src/serialize/xmlSerializer.node.ts +++ b/src/serialize/xmlSerializer.node.ts @@ -20,7 +20,7 @@ Copyright (c) OWASP Foundation. All Rights Reserved. import { SerializerOptions } from './types' import { XmlBaseSerializer } from './xmlBaseSerializer' import { SimpleXml } from './xml/types' -import { stringifyFallback } from '../../libs/universal-node-xml' +import { stringifyFallback } from '@cyclonedx/cyclonedx-library-universal-node-xml' /** * XML serializer for node.