Skip to content

Commit ea8f1f3

Browse files
authored
feat: Moved non‑standard implementations to Contrib area (#1343)
- fixes #1344 ## Added * New entry point for `/Contrib` and known submodules See `package.json::exports` for details. ## Changed * Moved non‑standard implementations to Contrib area ## Deprecated * Certain exports have been deprecated; downstream imports should be updated to the new locations Note: the symbols themselves remain supported. See documentation and the "Refactored" section below for details. ## Refactored * The following symbols were moved. The symbols are still import-able through their old location. * **OLD** -> **NEW** * `Builders.FromNodePackageJson` -> `Contrib.FromNodePackageJson.Builders` * `Factories.FromNodePackageJson` -> `Contrib.FromNodePackageJson.Factories` * `Factories.LicenseFactory` -> `Contrib.License.Factories.LicenseFactory` * `Factories.PackageUrlFactory` -> `Contrib.PackageUrl.Factories.PackageUrlFactory` * `Types.assertNodePackageJson` -> `Contrib.FromNodePackageJson.Types.assertNodePackageJson` * `Types.isNodePackageJson` -> `Contrib.FromNodePackageJson.Types.isNodePackageJson` * `Types.NodePackageJson` -> `Contrib.FromNodePackageJson.Types.NodePackageJson` * `Utils.LicenseUtility` -> `Contrib.License.Utils` * `Utils.NpmjsUtility` -> `Contrib.FromNodePackageJson.Utils` ---- :warning: tests for contribs were not moved yet, to show that all functionality still works. the tests will be moved in a later step ----- - [x] wrote docs - [x] moved functionality - [x] mark old imports ad deprecated - [x] write changelog --------- Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
1 parent 8c36d6c commit ea8f1f3

File tree

42 files changed

+509
-60
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+509
-60
lines changed

HISTORY.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,37 @@ All notable changes to this project will be documented in this file.
66

77
<!-- add unreleased items here -->
88

9+
* Added
10+
* New entry points for `/Contrib` and known submodules (via [#1343])
11+
See `package.json::exports` for details.
12+
* Changes
13+
* Moved non‑standard implementations to Contrib area ([#1344] via [#1343])
14+
* Deprecated
15+
* Certain exports have been deprecated; downstream imports should be updated to the new locations ([#1344] via [#1343])
16+
Note: the symbols themselves remain supported. See documentation and the "Refactored" section below for details.
17+
* Refactor
18+
* The following symbols were moved. ([#1344] via [#1343])
19+
The symbols are still import-able through their old location.
20+
* **OLD** -> **NEW**
21+
* `Builders.FromNodePackageJson` -> `Contrib.FromNodePackageJson.Builders`
22+
* `Factories.FromNodePackageJson` -> `Contrib.FromNodePackageJson.Factories`
23+
* `Factories.LicenseFactory` -> `Contrib.License.Factories.LicenseFactory`
24+
* `Factories.PackageUrlFactory` -> `Contrib.PackageUrl.Factories.PackageUrlFactory`
25+
* `Types.assertNodePackageJson` -> `Contrib.FromNodePackageJson.Types.assertNodePackageJson`
26+
* `Types.isNodePackageJson` -> `Contrib.FromNodePackageJson.Types.isNodePackageJson`
27+
* `Types.NodePackageJson` -> `Contrib.FromNodePackageJson.Types.NodePackageJson`
28+
* `Utils.BomUtility` -> `Contrib.Bom.Utils`
29+
* `Utils.LicenseUtility` -> `Contrib.License.Utils`
30+
* `Utils.NpmjsUtility` -> `Contrib.FromNodePackageJson.Utils`
931
* Style
1032
* Applied latest code style (via [#1341])
1133
* Build
1234
* Use _webpack_ `v5.103.0` now, was `v5.102.1` (via [#1340])
1335

1436
[#1340]: https://github.com/CycloneDX/cyclonedx-javascript-library/pull/1340
1537
[#1341]: https://github.com/CycloneDX/cyclonedx-javascript-library/pull/1341
38+
[#1343]: https://github.com/CycloneDX/cyclonedx-javascript-library/pull/1343
39+
[#1344]: https://github.com/CycloneDX/cyclonedx-javascript-library/issues/1344
1640

1741
## 9.2.0 -- 2025-10-22
1842

examples/node/javascript/example.cjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ Copyright (c) OWASP Foundation. All Rights Reserved.
2222
const CDX = require('@cyclonedx/cyclonedx-library')
2323
// full Library is available as `CDX`, now
2424

25-
const lFac = new CDX.Factories.LicenseFactory()
26-
const purlFac = new CDX.Factories.PackageUrlFactory('generic')
25+
const lFac = new CDX.Contrib.License.Factories.LicenseFactory()
26+
const purlFac = new CDX.Contrib.PackageUrl.Factories.PackageUrlFactory('generic')
2727

2828
const bom = new CDX.Models.Bom()
2929
bom.metadata.component = new CDX.Models.Component(

examples/node/javascript/example.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ Copyright (c) OWASP Foundation. All Rights Reserved.
2222
import * as CDX from '@cyclonedx/cyclonedx-library'
2323
// full Library is available as `CDX`, now
2424

25-
const lFac = new CDX.Factories.LicenseFactory()
26-
const purlFac = new CDX.Factories.PackageUrlFactory('generic')
25+
const lFac = new CDX.Contrib.License.Factories.LicenseFactory()
26+
const purlFac = new CDX.Contrib.PackageUrl.Factories.PackageUrlFactory('generic')
2727

2828
const bom = new CDX.Models.Bom()
2929
bom.metadata.component = new CDX.Models.Component(

examples/node/javascript/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"node": ">=20.18.0"
77
},
88
"dependencies": {
9-
"@cyclonedx/cyclonedx-library": "file:../../..",
9+
"@cyclonedx/cyclonedx-library": "../../..",
1010
"xmlbuilder2": "^3.0.2||^4.0.0"
1111
},
1212
"optionalDependencies": {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ Copyright (c) OWASP Foundation. All Rights Reserved.
2222
import * as CDX from '@cyclonedx/cyclonedx-library'
2323
// full Library is available as `CDX`, now
2424

25-
const lFac = new CDX.Factories.LicenseFactory()
26-
const purlFac = new CDX.Factories.PackageUrlFactory('generic')
25+
const lFac = new CDX.Contrib.License.Factories.LicenseFactory()
26+
const purlFac = new CDX.Contrib.PackageUrl.Factories.PackageUrlFactory('generic')
2727

2828
const bom = new CDX.Models.Bom()
2929
bom.metadata.component = new CDX.Models.Component(

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ Copyright (c) OWASP Foundation. All Rights Reserved.
2222
import * as CDX from '@cyclonedx/cyclonedx-library'
2323
// full Library is available as `CDX`, now
2424

25-
const lFac = new CDX.Factories.LicenseFactory()
26-
const purlFac = new CDX.Factories.PackageUrlFactory('generic')
25+
const lFac = new CDX.Contrib.License.Factories.LicenseFactory()
26+
const purlFac = new CDX.Contrib.PackageUrl.Factories.PackageUrlFactory('generic')
2727

2828
const bom = new CDX.Models.Bom()
2929
bom.metadata.component = new CDX.Models.Component(

examples/web/parcel/src/app.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ Copyright (c) OWASP Foundation. All Rights Reserved.
2222
const CDX = require('@cyclonedx/cyclonedx-library')
2323
// full Library is available as `CDX`, now
2424

25-
const lFac = new CDX.Factories.LicenseFactory()
26-
const purlFac = new CDX.Factories.PackageUrlFactory('generic')
25+
const lFac = new CDX.Contrib.License.Factories.LicenseFactory()
26+
const purlFac = new CDX.Contrib.PackageUrl.Factories.PackageUrlFactory('generic')
2727

2828
const bom = new CDX.Models.Bom()
2929
bom.metadata.component = new CDX.Models.Component(

examples/web/webpack/src/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ Copyright (c) OWASP Foundation. All Rights Reserved.
2222
const CDX = require('@cyclonedx/cyclonedx-library')
2323
// full Library is available as `CDX`, now
2424

25-
const lFac = new CDX.Factories.LicenseFactory()
26-
const purlFac = new CDX.Factories.PackageUrlFactory('generic')
25+
const lFac = new CDX.Contrib.License.Factories.LicenseFactory()
26+
const purlFac = new CDX.Contrib.PackageUrl.Factories.PackageUrlFactory('generic')
2727

2828
const bom = new CDX.Models.Bom()
2929
bom.metadata.component = new CDX.Models.Component(

package.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,26 @@
182182
"./Validation": {
183183
"types": "./dist.d/validation/index.node.d.ts",
184184
"default": "./dist.node/validation/index.node.js"
185+
},
186+
"./Contrib": {
187+
"types": "./dist.d/contrib/index.node.d.ts",
188+
"default": "./dist.node/contrib/index.node.js"
189+
},
190+
"./Contrib/Bom": {
191+
"types": "./dist.d/contrib/bom/index.d.ts",
192+
"default": "./dist.node/contrib/bom/index.js"
193+
},
194+
"./Contrib/FromNodePackageJson": {
195+
"types": "./dist.d/contrib/fromNodePackageJson/index.node.d.ts",
196+
"default": "./dist.node/contrib/fromNodePackageJson/index.node.js"
197+
},
198+
"./Contrib/License": {
199+
"types": "./dist.d/contrib/license/index.node.d.ts",
200+
"default": "./dist.node/contrib/license/index.node.js"
201+
},
202+
"./Contrib/PackageUrl": {
203+
"types": "./dist.d/contrib/packageUrl/index.d.ts",
204+
"default": "./dist.node/contrib/packageUrl/index.js"
185205
}
186206
},
187207
"directories": {

src/builders/index.node.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,18 @@ SPDX-License-Identifier: Apache-2.0
1717
Copyright (c) OWASP Foundation. All Rights Reserved.
1818
*/
1919

20-
export * as FromNodePackageJson from './fromNodePackageJson.node'
20+
import * as _FromNodePackageJson from '../contrib/fromNodePackageJson/builders'
21+
22+
23+
// region deprecated re-exports
24+
25+
/**
26+
* Deprecated — Alias of {@link Contrib.FromNodePackageJson.Builders}.
27+
*
28+
* @deprecated This re-export location is deprecated.
29+
* Import `Contrib.FromNodePackageJson.Builders` instead.
30+
* The exported symbol itself is NOT deprecated - only this import path.
31+
*/
32+
export const FromNodePackageJson = _FromNodePackageJson
33+
34+
// endregion deprecated re-exports

0 commit comments

Comments
 (0)