@halospv3/hce.shared-config 3.0.0-develop.17 → 3.0.0-develop.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/mjs/dotnet/IsNextVersionAlreadyPublished.cli.mjs +36 -21
- package/mjs/dotnet/IsNextVersionAlreadyPublished.cli.mjs.map +1 -1
- package/package.json +4 -2
- package/src/dotnet/IsNextVersionAlreadyPublished.cli.ts +53 -36
- package/tsconfig.base.json +54 -0
- package/tsconfig.json +22 -0
- package/tsconfig.mjs.json +8 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
## [3.0.0-develop.18](https://github.com/HaloSPV3/HCE.Shared/compare/v3.0.0-develop.17...v3.0.0-develop.18) (2025-08-05)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* **dotnet.INVAP:** execute INVAP cli only if it's the main module ([5006ab1](https://github.com/HaloSPV3/HCE.Shared/commit/5006ab1d6ff46554f5fd17d076465fcc1e2018e6)), closes [#455](https://github.com/HaloSPV3/HCE.Shared/issues/455)
|
|
6
|
+
|
|
1
7
|
## [3.0.0-develop.17](https://github.com/HaloSPV3/HCE.Shared/compare/v3.0.0-develop.16...v3.0.0-develop.17) (2025-07-31)
|
|
2
8
|
|
|
3
9
|
### Bug Fixes
|
|
@@ -1,26 +1,41 @@
|
|
|
1
1
|
import { getGithubOutput, NugetRegistryInfo } from './NugetRegistryInfo.mjs';
|
|
2
|
-
|
|
2
|
+
import esMain from 'es-main';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
/**
|
|
5
|
+
* @returns if successful
|
|
6
|
+
* @throws if...
|
|
7
|
+
* - {@link process.argv} does not include...
|
|
8
|
+
* - `--packageId [string]`
|
|
9
|
+
* - `--source [string]`
|
|
10
|
+
* - Value of `await getGithubOutput())['new-release-version']`...
|
|
11
|
+
* - is not a valid Version
|
|
12
|
+
* - already exists at `source`
|
|
13
|
+
*/
|
|
14
|
+
async function main() {
|
|
15
|
+
const args = process.argv.slice(2);
|
|
16
|
+
// Parse command-line arguments - https://stackoverflow.com/a/76298476/14894786
|
|
17
|
+
const options = {};
|
|
18
|
+
for (let i = 0; i < args.length; i += 2) {
|
|
19
|
+
const argName = args[i];
|
|
20
|
+
const argValue = args[i + 1];
|
|
21
|
+
if (argValue !== undefined && argName?.startsWith('--') === true && options[argName.slice(2)] !== undefined) {
|
|
22
|
+
options[argName] = argValue;
|
|
23
|
+
}
|
|
11
24
|
}
|
|
25
|
+
if (typeof options.packageId !== 'string') throw new Error('packageId must be a string');
|
|
26
|
+
if (typeof options.source !== 'string') throw new Error('source must be a string');
|
|
27
|
+
const packageId = options.packageId,
|
|
28
|
+
source = options.source,
|
|
29
|
+
versionPattern = new RegExp(/\d+\.\d+\.\d+([-+].+)?/);
|
|
30
|
+
const ghOutput = (await getGithubOutput()) ?? {};
|
|
31
|
+
const matches = versionPattern.exec(ghOutput['new-release-version'] ?? '');
|
|
32
|
+
if (matches === null || matches.length === 0) throw new Error('The variable new-release-version is not present in the GITHUB_OUTPUT env file or its value contains invalid characters.');
|
|
33
|
+
const nextVersion = matches[0];
|
|
34
|
+
const isPublished = await NugetRegistryInfo.IsNextVersionAlreadyPublished(source, packageId, nextVersion);
|
|
35
|
+
if (typeof isPublished !== 'boolean') throw new Error('isPublished is not a boolean');
|
|
36
|
+
if (isPublished) throw new Error(`${packageId}@${nextVersion} already exists at ${source}.`);
|
|
37
|
+
console.log(`OK: ${packageId}@${nextVersion} does NOT yet exist at ${source}. Yay.`);
|
|
38
|
+
return 0;
|
|
12
39
|
}
|
|
13
|
-
if (
|
|
14
|
-
if (typeof options.source !== 'string') throw new Error('source must be a string');
|
|
15
|
-
const packageId = options.packageId,
|
|
16
|
-
source = options.source,
|
|
17
|
-
versionPattern = new RegExp(/\d+\.\d+\.\d+([-+].+)?/);
|
|
18
|
-
const ghOutput = (await getGithubOutput()) ?? {};
|
|
19
|
-
const matches = versionPattern.exec(ghOutput['new-release-version'] ?? '');
|
|
20
|
-
if (matches === null || matches.length === 0) throw new Error('The variable new-release-version is not present in the GITHUB_OUTPUT env file or its value contains invalid characters.');
|
|
21
|
-
const nextVersion = matches[0];
|
|
22
|
-
const isPublished = await NugetRegistryInfo.IsNextVersionAlreadyPublished(source, packageId, nextVersion);
|
|
23
|
-
if (typeof isPublished !== 'boolean') throw new Error('isPublished is not a boolean');
|
|
24
|
-
if (isPublished) throw new Error(`${packageId}@${nextVersion} already exists at ${source}.`);
|
|
25
|
-
console.log(`OK: ${packageId}@${nextVersion} does NOT yet exist at ${source}. Yay.`);
|
|
40
|
+
if (esMain(import.meta)) await main();
|
|
26
41
|
//# sourceMappingURL=IsNextVersionAlreadyPublished.cli.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IsNextVersionAlreadyPublished.cli.mjs","sources":["../../src/dotnet/IsNextVersionAlreadyPublished.cli.ts"],"sourcesContent":null,"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IsNextVersionAlreadyPublished.cli.mjs","sources":["../../src/dotnet/IsNextVersionAlreadyPublished.cli.ts"],"sourcesContent":null,"names":[],"mappings":";;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI,GAAG;AACtB,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC;AACA,EAAE,MAAM,OAAO,GAAG,EAAE;AACpB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC3C,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;AAC3B,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAChC,IAAI,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;AACjH,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,QAAQ;AACjC;AACA;AACA,EAAE,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;AAC1F,EAAE,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;AACpF,EAAE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS;AACrC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM;AAC3B,IAAI,cAAc,GAAG,IAAI,MAAM,CAAC,wBAAwB,CAAC;AACzD,EAAE,MAAM,QAAQ,GAAG,CAAC,MAAM,eAAe,EAAE,KAAK,EAAE;AAClD,EAAE,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;AAC5E,EAAE,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,yHAAyH,CAAC;AAC1L,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;AAChC,EAAE,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,6BAA6B,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC;AAC3G,EAAE,IAAI,OAAO,WAAW,KAAK,SAAS,EAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AACvF,EAAE,IAAI,WAAW,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9F,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACtF,EAAE,OAAO,CAAC;AACV;AACA,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,EAAE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@halospv3/hce.shared-config",
|
|
3
|
-
"version": "3.0.0-develop.
|
|
3
|
+
"version": "3.0.0-develop.18",
|
|
4
4
|
"description": "Automate commit message quality, changelogs, and CI/CD releases. Exports a semantic-release shareable configuration deserialized from this package's '.releaserc.yml'. Shared resources for .NET projects are also distributed with this package.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"halo",
|
|
@@ -26,7 +26,8 @@
|
|
|
26
26
|
"dotnet/*",
|
|
27
27
|
"dotnet/.github/**/*",
|
|
28
28
|
"mjs/**/*",
|
|
29
|
-
"src/**/*"
|
|
29
|
+
"src/**/*",
|
|
30
|
+
"tsconfig*.json"
|
|
30
31
|
],
|
|
31
32
|
"main": "./mjs/index.mjs",
|
|
32
33
|
"infra": "polyrepo",
|
|
@@ -75,6 +76,7 @@
|
|
|
75
76
|
"chardet": "^2.1.0",
|
|
76
77
|
"conventional-changelog-conventionalcommits": "^9.1.0",
|
|
77
78
|
"debug": "^4.4.1",
|
|
79
|
+
"es-main": "^1.3.0",
|
|
78
80
|
"eslint-plugin-jsonc": "^2.20.1",
|
|
79
81
|
"globals": "^16.3.0",
|
|
80
82
|
"husky": "^9.1.7",
|
|
@@ -1,44 +1,61 @@
|
|
|
1
1
|
import { NugetRegistryInfo, getGithubOutput } from './NugetRegistryInfo.js';
|
|
2
|
+
import esMain from 'es-main';
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
4
|
+
/**
|
|
5
|
+
* @returns if successful
|
|
6
|
+
* @throws if...
|
|
7
|
+
* - {@link process.argv} does not include...
|
|
8
|
+
* - `--packageId [string]`
|
|
9
|
+
* - `--source [string]`
|
|
10
|
+
* - Value of `await getGithubOutput())['new-release-version']`...
|
|
11
|
+
* - is not a valid Version
|
|
12
|
+
* - already exists at `source`
|
|
13
|
+
*/
|
|
14
|
+
async function main(): Promise<0> {
|
|
15
|
+
const args = process.argv.slice(2);
|
|
16
|
+
// Parse command-line arguments - https://stackoverflow.com/a/76298476/14894786
|
|
17
|
+
const options: {
|
|
18
|
+
packageId?: string;
|
|
19
|
+
source?: string;
|
|
20
|
+
} & Record<string, string> = {};
|
|
21
|
+
for (let i = 0; i < args.length; i += 2) {
|
|
22
|
+
const argName = args[i];
|
|
23
|
+
const argValue = args[i + 1];
|
|
24
|
+
if (argValue !== undefined && argName?.startsWith('--') === true && options[argName.slice(2)] !== undefined) {
|
|
25
|
+
options[argName] = argValue;
|
|
26
|
+
}
|
|
15
27
|
}
|
|
16
|
-
}
|
|
17
28
|
|
|
18
|
-
if (typeof options.packageId !== 'string')
|
|
19
|
-
|
|
20
|
-
if (typeof options.source !== 'string')
|
|
21
|
-
|
|
29
|
+
if (typeof options.packageId !== 'string')
|
|
30
|
+
throw new Error('packageId must be a string');
|
|
31
|
+
if (typeof options.source !== 'string')
|
|
32
|
+
throw new Error('source must be a string');
|
|
33
|
+
|
|
34
|
+
const packageId = options.packageId,
|
|
35
|
+
source = options.source,
|
|
36
|
+
versionPattern = new RegExp(/\d+\.\d+\.\d+([-+].+)?/);
|
|
37
|
+
const ghOutput = await getGithubOutput() ?? {};
|
|
38
|
+
const matches = versionPattern.exec(ghOutput['new-release-version'] ?? '');
|
|
39
|
+
if (matches === null || matches.length === 0)
|
|
40
|
+
throw new Error(
|
|
41
|
+
'The variable new-release-version is not present in the GITHUB_OUTPUT env file or its value contains invalid characters.',
|
|
42
|
+
);
|
|
22
43
|
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (matches === null || matches.length === 0)
|
|
29
|
-
throw new Error(
|
|
30
|
-
'The variable new-release-version is not present in the GITHUB_OUTPUT env file or its value contains invalid characters.',
|
|
44
|
+
const nextVersion = matches[0];
|
|
45
|
+
const isPublished = await NugetRegistryInfo.IsNextVersionAlreadyPublished(
|
|
46
|
+
source,
|
|
47
|
+
packageId,
|
|
48
|
+
nextVersion,
|
|
31
49
|
);
|
|
32
50
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
nextVersion
|
|
38
|
-
|
|
51
|
+
if (typeof isPublished !== 'boolean')
|
|
52
|
+
throw new Error('isPublished is not a boolean');
|
|
53
|
+
if (isPublished)
|
|
54
|
+
throw new Error(`${packageId}@${nextVersion} already exists at ${source}.`);
|
|
55
|
+
console.log(`OK: ${packageId}@${nextVersion} does NOT yet exist at ${source}. Yay.`);
|
|
56
|
+
|
|
57
|
+
return 0;
|
|
58
|
+
}
|
|
39
59
|
|
|
40
|
-
if (
|
|
41
|
-
|
|
42
|
-
if (isPublished)
|
|
43
|
-
throw new Error(`${packageId}@${nextVersion} already exists at ${source}.`);
|
|
44
|
-
console.log(`OK: ${packageId}@${nextVersion} does NOT yet exist at ${source}. Yay.`);
|
|
60
|
+
if (esMain(import.meta))
|
|
61
|
+
await main();
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json.schemastore.org/tsconfig#",
|
|
3
|
+
"//": {
|
|
4
|
+
"Typescript Node.js Target Mapping": "https://github.com/microsoft/TypeScript/wiki/Node-Target-Mapping",
|
|
5
|
+
"Node.js ECMAScript Mapping": "https://node.green/",
|
|
6
|
+
"vscode-versions": "https://github.com/ewanharris/vscode-versions",
|
|
7
|
+
"Recommended TSConfig Bases": "https://github.com/tsconfig/bases?tab=readme-ov-file#table-of-tsconfigs",
|
|
8
|
+
"Available/Latest GitHub Runner Images": "https://github.com/actions/runner-images/tree/main?tab=readme-ov-file#available-images",
|
|
9
|
+
"Node.js versions in GitHub Runner Images": {
|
|
10
|
+
"Ubuntu 2404 - Node.js version(s)": {
|
|
11
|
+
"installed": "https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md#language-and-runtime",
|
|
12
|
+
"cached": "https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md#nodejs"
|
|
13
|
+
},
|
|
14
|
+
"macOS 14": {
|
|
15
|
+
"installed": "https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md#language-and-runtime",
|
|
16
|
+
"cached": "https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md#nodejs"
|
|
17
|
+
},
|
|
18
|
+
"Windows Server 2022": {
|
|
19
|
+
"!note!": "[Windows 19 and 22] Node.js version 16 will be removed from Windows images on 2025-05-05. See https://github.com/actions/runner-images/issues/11710",
|
|
20
|
+
"installed": "https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md#language-and-runtime",
|
|
21
|
+
"cached": "https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md#nodejs"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"compileOnSave": true,
|
|
26
|
+
"extends": "./node_modules/@tsconfig/node20/tsconfig.json",
|
|
27
|
+
"compilerOptions": {
|
|
28
|
+
"composite": true,
|
|
29
|
+
"declarationMap": true,
|
|
30
|
+
"emitDeclarationOnly": true,
|
|
31
|
+
"forceConsistentCasingInFileNames": true,
|
|
32
|
+
"isolatedDeclarations": true,
|
|
33
|
+
"isolatedModules": true,
|
|
34
|
+
"module": "Node18",
|
|
35
|
+
"noEmitOnError": true,
|
|
36
|
+
"noErrorTruncation": true,
|
|
37
|
+
"noFallthroughCasesInSwitch": true,
|
|
38
|
+
"noImplicitOverride": true,
|
|
39
|
+
"noImplicitReturns": true,
|
|
40
|
+
"noPropertyAccessFromIndexSignature": true,
|
|
41
|
+
"noUncheckedIndexedAccess": true,
|
|
42
|
+
"noUnusedLocals": true,
|
|
43
|
+
"noUnusedParameters": true,
|
|
44
|
+
"resolveJsonModule": true,
|
|
45
|
+
"skipLibCheck": true,
|
|
46
|
+
"sourceMap": true,
|
|
47
|
+
"verbatimModuleSyntax": true
|
|
48
|
+
},
|
|
49
|
+
"exclude": [
|
|
50
|
+
"**/node_modules/**",
|
|
51
|
+
"**/tsconfig.json",
|
|
52
|
+
"**/tsconfig.*.json"
|
|
53
|
+
]
|
|
54
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "./tsconfig.base.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"allowImportingTsExtensions": true,
|
|
5
|
+
"outDir": "_tsout",
|
|
6
|
+
"target": "es2020",
|
|
7
|
+
"erasableSyntaxOnly": true
|
|
8
|
+
},
|
|
9
|
+
"include": [
|
|
10
|
+
"./*.cts",
|
|
11
|
+
"./*.mts",
|
|
12
|
+
"./*.ts"
|
|
13
|
+
],
|
|
14
|
+
"references": [
|
|
15
|
+
{
|
|
16
|
+
"path": "./tests/tsconfig.json"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"path": "./src/tsconfig.json"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
}
|