@halospv3/hce.shared-config 3.5.3-develop.2 → 3.6.0
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 +29 -0
- package/README.md +33 -10
- package/dotnet/.github/workflows/_unit_test.yml +1 -1
- package/dotnet/.github/workflows/dotnet-release.yml +1 -1
- package/dotnet/.github/workflows/sample-dotnet-build.yml +1 -1
- package/dotnet/CleanupWpfTmp.targets +15 -0
- package/dotnet/HCE.Shared.targets +3 -0
- package/mjs/CaseInsensitiveMap.mjs.map +1 -1
- package/mjs/commitlintConfig.mjs.map +1 -1
- package/mjs/debug.mjs.map +1 -1
- package/mjs/dotnet/GithubNugetRegistryInfo.d.mts +5 -5
- package/mjs/dotnet/GithubNugetRegistryInfo.d.mts.map +1 -1
- package/mjs/dotnet/GithubNugetRegistryInfo.mjs +7 -7
- package/mjs/dotnet/GithubNugetRegistryInfo.mjs.map +1 -1
- package/mjs/dotnet/GitlabNugetRegistryInfo.d.mts +6 -6
- package/mjs/dotnet/GitlabNugetRegistryInfo.d.mts.map +1 -1
- package/mjs/dotnet/GitlabNugetRegistryInfo.mjs +14 -14
- package/mjs/dotnet/GitlabNugetRegistryInfo.mjs.map +1 -1
- package/mjs/dotnet/IsNextVersionAlreadyPublished.cli.mjs +5 -5
- package/mjs/dotnet/IsNextVersionAlreadyPublished.cli.mjs.map +1 -1
- package/mjs/dotnet/MSBuildProject.d.mts +28 -28
- package/mjs/dotnet/MSBuildProject.d.mts.map +1 -1
- package/mjs/dotnet/MSBuildProject.mjs +88 -66
- package/mjs/dotnet/MSBuildProject.mjs.map +1 -1
- package/mjs/dotnet/MSBuildProjectProperties.d.mts.map +1 -1
- package/mjs/dotnet/MSBuildProjectProperties.mjs +1 -1
- package/mjs/dotnet/MSBuildProjectProperties.mjs.map +1 -1
- package/mjs/dotnet/NugetProjectProperties.d.mts +3 -3
- package/mjs/dotnet/NugetProjectProperties.d.mts.map +1 -1
- package/mjs/dotnet/NugetProjectProperties.mjs +7 -9
- package/mjs/dotnet/NugetProjectProperties.mjs.map +1 -1
- package/mjs/dotnet/NugetRegistryInfo.d.mts +40 -40
- package/mjs/dotnet/NugetRegistryInfo.d.mts.map +1 -1
- package/mjs/dotnet/NugetRegistryInfo.mjs +170 -148
- package/mjs/dotnet/NugetRegistryInfo.mjs.map +1 -1
- package/mjs/dotnet/helpers.d.mts.map +1 -1
- package/mjs/dotnet/helpers.mjs +33 -34
- package/mjs/dotnet/helpers.mjs.map +1 -1
- package/mjs/eslintConfig.mjs.map +1 -1
- package/mjs/insertPlugins.mjs +2 -2
- package/mjs/insertPlugins.mjs.map +1 -1
- package/mjs/semantic-release__commit-analyzer.d.mts.map +1 -1
- package/mjs/semantic-release__exec.d.mts.map +1 -1
- package/mjs/semantic-release__git.d.mts.map +1 -1
- package/mjs/semantic-release__github.d.mts +1 -0
- package/mjs/semantic-release__github.d.mts.map +1 -1
- package/mjs/semanticReleaseConfig.d.mts.map +1 -1
- package/mjs/semanticReleaseConfig.mjs.map +1 -1
- package/mjs/semanticReleaseConfigDotnet.d.mts.map +1 -1
- package/mjs/semanticReleaseConfigDotnet.mjs +23 -16
- package/mjs/semanticReleaseConfigDotnet.mjs.map +1 -1
- package/mjs/setupGitPluginSpec.d.mts.map +1 -1
- package/mjs/setupGitPluginSpec.default.mjs.map +1 -1
- package/mjs/setupGitPluginSpec.mjs +19 -19
- package/mjs/setupGitPluginSpec.mjs.map +1 -1
- package/mjs/utils/Exact.d.mts.map +1 -1
- package/mjs/utils/GracefulRecursion.d.mts.map +1 -1
- package/mjs/utils/env.d.mts.map +1 -1
- package/mjs/utils/env.mjs.map +1 -1
- package/mjs/utils/execAsync.d.mts +3 -3
- package/mjs/utils/execAsync.d.mts.map +1 -1
- package/mjs/utils/execAsync.mjs +14 -12
- package/mjs/utils/execAsync.mjs.map +1 -1
- package/mjs/utils/isError.mjs.map +1 -1
- package/mjs/utils/miscTypes.d.mts.map +1 -1
- package/mjs/utils/miscTypes.mjs.map +1 -1
- package/mjs/utils/reflection/FunctionLike.d.mts +1 -0
- package/mjs/utils/reflection/FunctionLike.d.mts.map +1 -1
- package/mjs/utils/reflection/GetterDescriptor.d.mts.map +1 -1
- package/mjs/utils/reflection/InstancePropertyDescriptorMap.d.mts.map +1 -1
- package/mjs/utils/reflection/InstanceTypeOrSelfPropertyDescriptorMap.d.mts +1 -1
- package/mjs/utils/reflection/InstanceTypeOrSelfPropertyDescriptorMap.d.mts.map +1 -1
- package/mjs/utils/reflection/OwnGetterDescriptorMap.d.mts +1 -1
- package/mjs/utils/reflection/OwnGetterDescriptorMap.d.mts.map +1 -1
- package/mjs/utils/reflection/OwnKeyOf.d.mts +1 -1
- package/mjs/utils/reflection/OwnKeyOf.d.mts.map +1 -1
- package/mjs/utils/reflection/OwnPropertyDescriptorMap.d.mts.map +1 -1
- package/mjs/utils/reflection/PropertyDescriptorMap.d.mts +1 -1
- package/mjs/utils/reflection/PropertyDescriptorMap.d.mts.map +1 -1
- package/mjs/utils/reflection/filterForGetters.d.mts.map +1 -1
- package/mjs/utils/reflection/filterForGetters.mjs.map +1 -1
- package/mjs/utils/reflection/getOwnPropertyDescriptors.d.mts.map +1 -1
- package/mjs/utils/reflection/getOwnPropertyDescriptors.mjs.map +1 -1
- package/mjs/utils/reflection/getOwnPropertyDescriptorsRecursively.d.mts.map +1 -1
- package/mjs/utils/reflection/getOwnPropertyDescriptorsRecursively.mjs +3 -3
- package/mjs/utils/reflection/getOwnPropertyDescriptorsRecursively.mjs.map +1 -1
- package/mjs/utils/reflection/getPrototypeChainOf.d.mts +2 -2
- package/mjs/utils/reflection/getPrototypeChainOf.d.mts.map +1 -1
- package/mjs/utils/reflection/getPrototypeChainOf.mjs +1 -2
- package/mjs/utils/reflection/getPrototypeChainOf.mjs.map +1 -1
- package/mjs/utils/reflection/getPrototypeOf.d.mts.map +1 -1
- package/mjs/utils/reflection/getPrototypeOf.mjs.map +1 -1
- package/mjs/utils/reflection/inheritance.d.mts +4 -4
- package/mjs/utils/reflection/inheritance.d.mts.map +1 -1
- package/mjs/utils/reflection/inheritance.mjs.map +1 -1
- package/mjs/utils/reflection/isConstructor.d.mts +3 -3
- package/mjs/utils/reflection/isConstructor.d.mts.map +1 -1
- package/mjs/utils/reflection/isConstructor.mjs +7 -7
- package/mjs/utils/reflection/isConstructor.mjs.map +1 -1
- package/mjs/utils/reflection/isGetterDescriptor.d.mts.map +1 -1
- package/mjs/utils/reflection/isGetterDescriptor.mjs.map +1 -1
- package/mjs/utils/reflection/listOwnGetters.d.mts.map +1 -1
- package/mjs/utils/reflection/listOwnGetters.mjs +4 -2
- package/mjs/utils/reflection/listOwnGetters.mjs.map +1 -1
- package/mjs/utils/reflection.d.mts +1 -1
- package/package.json +25 -24
- package/src/dotnet/GithubNugetRegistryInfo.ts +18 -15
- package/src/dotnet/GitlabNugetRegistryInfo.ts +28 -26
- package/src/dotnet/IsNextVersionAlreadyPublished.cli.ts +6 -6
- package/src/dotnet/MSBuildProject.ts +103 -106
- package/src/dotnet/MSBuildProjectProperties.ts +1 -1
- package/src/dotnet/NugetProjectProperties.ts +13 -18
- package/src/dotnet/NugetRegistryInfo.ts +287 -243
- package/src/dotnet/helpers.ts +58 -58
- package/src/insertPlugins.ts +3 -3
- package/src/semantic-release__github.d.ts +1 -0
- package/src/semanticReleaseConfigDotnet.ts +52 -54
- package/src/setupGitPluginSpec.ts +25 -26
- package/src/utils/env.ts +1 -0
- package/src/utils/execAsync.ts +16 -13
- package/src/utils/reflection/FunctionLike.d.ts +1 -0
- package/src/utils/reflection/InstancePropertyDescriptorMap.d.ts +4 -4
- package/src/utils/reflection/InstanceTypeOrSelfPropertyDescriptorMap.d.ts +6 -6
- package/src/utils/reflection/OwnGetterDescriptorMap.d.ts +2 -2
- package/src/utils/reflection/OwnKeyOf.d.ts +3 -3
- package/src/utils/reflection/OwnPropertyDescriptorMap.d.ts +3 -3
- package/src/utils/reflection/PropertyDescriptorMap.d.ts +3 -3
- package/src/utils/reflection/filterForGetters.ts +10 -10
- package/src/utils/reflection/getOwnPropertyDescriptors.ts +2 -2
- package/src/utils/reflection/getOwnPropertyDescriptorsRecursively.ts +13 -13
- package/src/utils/reflection/getPrototypeChainOf.ts +17 -17
- package/src/utils/reflection/getPrototypeOf.ts +2 -2
- package/src/utils/reflection/inheritance.ts +5 -4
- package/src/utils/reflection/isConstructor.ts +7 -7
- package/src/utils/reflection/listOwnGetters.ts +8 -8
- package/tsconfig.base.json +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,32 @@
|
|
|
1
|
+
## [3.6.0](https://github.com/HaloSPV3/HCE.Shared/compare/v3.5.2...v3.6.0) (2026-06-26)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* **dotnet.CWT:** add target `CleanupWpfTmp` by Brant Burnett ([75e6b5b](https://github.com/HaloSPV3/HCE.Shared/commit/75e6b5b09da20694248ce232396233edafe50f33))
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
* **deps:** update commitlint monorepo to v21 ([a8739ee](https://github.com/HaloSPV3/HCE.Shared/commit/a8739ee6fda0d062550d6bd650decccc3a4dd755))
|
|
10
|
+
* **deps:** update dependency @eslint/json to v2 ([6b6148a](https://github.com/HaloSPV3/HCE.Shared/commit/6b6148adf8163985a3244f4099feebc21e5418af))
|
|
11
|
+
* **deps:** update node.js to v24.18.0 ([bd9ea1f](https://github.com/HaloSPV3/HCE.Shared/commit/bd9ea1fd08e991be4eb0ce7381def6ea20965ad5))
|
|
12
|
+
* **dotnet.NRI:** add back-off and retry limit to `PackDummyPackage` ([b1eed50](https://github.com/HaloSPV3/HCE.Shared/commit/b1eed508f44d50d57dd3cae8052c66662f20e545))
|
|
13
|
+
* **dotnet.SemanticRelease:** resolve `unicorn/prefer-aggregate-error` ([d5b0676](https://github.com/HaloSPV3/HCE.Shared/commit/d5b0676ab5c85692a4044437e30024c6c5e7238e))
|
|
14
|
+
* ensure `ExecException`s have their `cmd` string ([c85ded5](https://github.com/HaloSPV3/HCE.Shared/commit/c85ded5356b54806e6a4e1a72ea6c14f8a6aa3f1))
|
|
15
|
+
* prefer Yarn unplug this package for access to MSBuild props/targets files ([3191fb9](https://github.com/HaloSPV3/HCE.Shared/commit/3191fb9ead6ba5209dee145c4c576150aa2f8091))
|
|
16
|
+
|
|
17
|
+
## [3.6.0-develop.1](https://github.com/HaloSPV3/HCE.Shared/compare/v3.5.3-develop.2...v3.6.0-develop.1) (2026-06-26)
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
* **dotnet.CWT:** add target `CleanupWpfTmp` by Brant Burnett ([75e6b5b](https://github.com/HaloSPV3/HCE.Shared/commit/75e6b5b09da20694248ce232396233edafe50f33))
|
|
22
|
+
|
|
23
|
+
### Bug Fixes
|
|
24
|
+
|
|
25
|
+
* **dotnet.NRI:** add back-off and retry limit to `PackDummyPackage` ([b1eed50](https://github.com/HaloSPV3/HCE.Shared/commit/b1eed508f44d50d57dd3cae8052c66662f20e545))
|
|
26
|
+
* **dotnet.SemanticRelease:** resolve `unicorn/prefer-aggregate-error` ([d5b0676](https://github.com/HaloSPV3/HCE.Shared/commit/d5b0676ab5c85692a4044437e30024c6c5e7238e))
|
|
27
|
+
* ensure `ExecException`s have their `cmd` string ([c85ded5](https://github.com/HaloSPV3/HCE.Shared/commit/c85ded5356b54806e6a4e1a72ea6c14f8a6aa3f1))
|
|
28
|
+
* prefer Yarn unplug this package for access to MSBuild props/targets files ([3191fb9](https://github.com/HaloSPV3/HCE.Shared/commit/3191fb9ead6ba5209dee145c4c576150aa2f8091))
|
|
29
|
+
|
|
1
30
|
## [3.5.3-develop.2](https://github.com/HaloSPV3/HCE.Shared/compare/v3.5.3-develop.1...v3.5.3-develop.2) (2026-06-24)
|
|
2
31
|
|
|
3
32
|
### Bug Fixes
|
package/README.md
CHANGED
|
@@ -209,12 +209,38 @@ npx husky add .husky/commit-msg 'npx --no -- commitlint --edit ${1}'
|
|
|
209
209
|
|
|
210
210
|
```xml
|
|
211
211
|
<Project>
|
|
212
|
+
<!-- Import all targets; See HCE.Shared.targets for their descriptions -->
|
|
212
213
|
<Import Project="$(HCESharedDir)/dotnet/HCE.Shared.targets"/>
|
|
214
|
+
<!-- Or, alternatively, selectively import the .target files e.g.
|
|
215
|
+
<Import Project="$(HCESharedDir)/dotnet/ExecNupkgDeterministicator.targets" />
|
|
216
|
+
<Import Project="$(HCESharedDir)/dotnet/HCE.Shared.CI.props" />
|
|
217
|
+
<Import Project="$(HCESharedDir)/dotnet/ZipPublishDir.targets" />
|
|
218
|
+
<Import Project="$(HCESharedDir)/dotnet/PublishAll.targets" />
|
|
219
|
+
<Import Project="$(HCESharedDir)/dotnet/BuildEachRID.targets" />
|
|
220
|
+
<Import Project="$(HCESharedDir)/dotnet/CleanupWpfTmp.targets" />
|
|
221
|
+
They are independent of each other; You can import some or even just one.
|
|
222
|
+
-->
|
|
213
223
|
|
|
214
224
|
<PropertyGroup>
|
|
215
|
-
<RepoRoot
|
|
216
|
-
<
|
|
217
|
-
|
|
225
|
+
<RepoRoot>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), '.git/index'))</RepoRoot>
|
|
226
|
+
<_HCESharedDirSuffix>node_modules/@halospv3/hce.shared-config/</_HCESharedDirSuffix>
|
|
227
|
+
<HCESharedDir>$(RepoRoot)$(_HCESharedDirSuffix)</HCESharedDir>
|
|
228
|
+
<!-- (OPTIONAL) -->
|
|
229
|
+
<UseArtifactsOutput>true</UseArtifactsOutput>
|
|
230
|
+
</PropertyGroup>
|
|
231
|
+
|
|
232
|
+
<!-- This property group allows for finding HCESharedDir if it's an unplugged (un-virtualized) Yarn Berry/PnP module-->
|
|
233
|
+
<PropertyGroup Label="Yarn-unplugged HCE.Shared" Condition="!Exists($(HCESharedDir))">
|
|
234
|
+
<_yarnUnplugged>$(RepoRoot).yarn/unplugged/</_yarnUnplugged>
|
|
235
|
+
<_yarnUnpluggedChildren>$([System.IO.Directory]::GetDirectories($(RepoRoot).yarn/unplugged/))</_yarnUnpluggedChildren>
|
|
236
|
+
<_yarnUnpluggedHceSharedMatches>$([System.Text.RegularExpressions.Regex]::Matches(
|
|
237
|
+
$(_yarnUnpluggedChildren),'@halospv3-hce.shared-config-[^;]+')
|
|
238
|
+
)</_yarnUnpluggedHceSharedMatches>
|
|
239
|
+
<_yarnUnplugged_lastMatch>$([MSBuild]::Subtract(
|
|
240
|
+
$(_yarnUnpluggedHceSharedMatches.Split(';').Length),
|
|
241
|
+
1
|
|
242
|
+
))</_yarnUnplugged_lastMatch>
|
|
243
|
+
<HCESharedDir>$(_yarnUnplugged)$(_yarnUnpluggedHceSharedMatches.Split(';')[$(_yarnUnplugged_lastMatch)])/$(_HCESharedDirSuffix)</HCESharedDir>
|
|
218
244
|
</PropertyGroup>
|
|
219
245
|
</Project>
|
|
220
246
|
```
|
|
@@ -228,18 +254,13 @@ These may evaluate to the following:
|
|
|
228
254
|
|
|
229
255
|
#### CI/CD-Only Properties
|
|
230
256
|
|
|
231
|
-
|
|
232
|
-
> If you don't import HCE.Shared.targets, you may import HCE.Shared.CI.props or define your own conditional property group.
|
|
257
|
+
**SKIP IF YOU IMPORT `HCE.Shared.props`, `HCE.Shared.targets`, OR `HCE.Shared.CI.props`**
|
|
233
258
|
|
|
234
259
|
If you want properties set only in a CI/CD environment (e.g. a GitHub workflow), add the following
|
|
235
260
|
conditional property group to the props file:
|
|
236
261
|
|
|
237
|
-
```xml
|
|
262
|
+
```xml
|
|
238
263
|
<Project>
|
|
239
|
-
<PropertyGroup>
|
|
240
|
-
...
|
|
241
|
-
</PropertyGroup>
|
|
242
|
-
|
|
243
264
|
<PropertyGroup Condition=" '$(CI)' == 'true' ">
|
|
244
265
|
<Configuration>Release</Configuration>
|
|
245
266
|
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
|
|
@@ -248,6 +269,8 @@ conditional property group to the props file:
|
|
|
248
269
|
</Project>
|
|
249
270
|
```
|
|
250
271
|
|
|
272
|
+
Consider adding `https://www.nuget.org/packages/DotNet.ReproducibleBuilds/`
|
|
273
|
+
|
|
251
274
|
> Any properties added to this conditional property group will only be evaluated when `$(CI)` is
|
|
252
275
|
> defined either as a property or as an environment variable. This is most useful for properties
|
|
253
276
|
> such as `ContinuousIntegrationBuild`.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<Project>
|
|
2
|
+
<!-- Created by Brant Burnett - https://github.com/dotnet/wpf/issues/2930#issuecomment-2562793707
|
|
3
|
+
WPF projects tend to leave dangling "_wpftmp" directories in the "artifacts/bin" directory, clean these up after build -->
|
|
4
|
+
<Target Name="CleanupWpfTmp"
|
|
5
|
+
AfterTargets="Build"
|
|
6
|
+
Condition=" '$(UseWPF)' == 'true' ">
|
|
7
|
+
<ItemGroup>
|
|
8
|
+
<_ArtifactsBinDirectories Include="$([System.IO.Directory]::GetDirectories("$(ArtifactsPath)\bin"))" />
|
|
9
|
+
<_WpfTmpDirectories Include="@(_ArtifactsBinDirectories)"
|
|
10
|
+
Condition="$([System.IO.Path]::GetFilename([System.String]::Copy('%(Identity)')).StartsWith('$(ArtifactsProjectName)_')) And $([System.String]::Copy('%(Identity)').EndsWith('_wpftmp'))" />
|
|
11
|
+
</ItemGroup>
|
|
12
|
+
|
|
13
|
+
<RemoveDir Directories="@(_WpfTmpDirectories)" />
|
|
14
|
+
</Target>
|
|
15
|
+
</Project>
|
|
@@ -11,4 +11,7 @@
|
|
|
11
11
|
The SDK iterates through TargetFrameworks for each TFM. We iterate each TFM's RIDs.
|
|
12
12
|
Intended for ensuring RID-dependent build permutations are successful before attempting PublishAll. -->
|
|
13
13
|
<Import Project="$(MSBuildThisFileDirectory)BuildEachRID.targets" />
|
|
14
|
+
<!-- Created by Brant Burnett -- https://github.com/dotnet/wpf/issues/2930#issuecomment-2562793707
|
|
15
|
+
WPF projects tend to leave dangling "_wpftmp" directories in the "artifacts/bin" directory, clean these up after build -->
|
|
16
|
+
<Import Project="$(MSBuildThisFileDirectory)CleanupWpfTmp.targets" />
|
|
14
17
|
</Project>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseInsensitiveMap.mjs","names":[],"sources":["../src/CaseInsensitiveMap.ts"],"sourcesContent":["/**\n * https://stackoverflow.com/a/50022230/14894786\n * licensed under CC BY-SA 4.0\n * changes: add overrides, remove \"as any\", remove empty lines\n */\nexport class CaseInsensitiveMap<T, U> extends Map<T, U> {\n override delete(key: T): boolean {\n if (typeof key === 'string') {\n key = key.toLowerCase() as T;\n }\n return super.delete(key);\n }\n\n override get(key: T): U | undefined {\n if (typeof key === 'string') {\n key = key.toLowerCase() as T;\n }\n return super.get(key);\n }\n\n override has(key: T): boolean {\n if (typeof key === 'string') {\n key = key.toLowerCase() as T;\n }\n return super.has(key);\n }\n\n override set(key: T, value: U): this {\n if (typeof key === 'string') {\n key = key.toLowerCase() as T;\n }\n return super.set(key, value);\n }\n}\n"],"mappings":";;;;;;AAKA,IAAa,qBAAb,cAA8C,IAAU;CACtD,OAAgB,KAAiB;EAC/B,IAAI,OAAO,QAAQ,UACjB,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"CaseInsensitiveMap.mjs","names":[],"sources":["../src/CaseInsensitiveMap.ts"],"sourcesContent":["/**\n * https://stackoverflow.com/a/50022230/14894786\n * licensed under CC BY-SA 4.0\n * changes: add overrides, remove \"as any\", remove empty lines\n */\nexport class CaseInsensitiveMap<T, U> extends Map<T, U> {\n override delete(key: T): boolean {\n if (typeof key === 'string') {\n key = key.toLowerCase() as T;\n }\n return super.delete(key);\n }\n\n override get(key: T): U | undefined {\n if (typeof key === 'string') {\n key = key.toLowerCase() as T;\n }\n return super.get(key);\n }\n\n override has(key: T): boolean {\n if (typeof key === 'string') {\n key = key.toLowerCase() as T;\n }\n return super.has(key);\n }\n\n override set(key: T, value: U): this {\n if (typeof key === 'string') {\n key = key.toLowerCase() as T;\n }\n return super.set(key, value);\n }\n}\n"],"mappings":";;;;;;AAKA,IAAa,qBAAb,cAA8C,IAAU;CACtD,OAAgB,KAAiB;EAC/B,IAAI,OAAO,QAAQ,UACjB,MAAM,IAAI,YAAY;EAExB,OAAO,MAAM,OAAO,GAAG;CACzB;CAEA,IAAa,KAAuB;EAClC,IAAI,OAAO,QAAQ,UACjB,MAAM,IAAI,YAAY;EAExB,OAAO,MAAM,IAAI,GAAG;CACtB;CAEA,IAAa,KAAiB;EAC5B,IAAI,OAAO,QAAQ,UACjB,MAAM,IAAI,YAAY;EAExB,OAAO,MAAM,IAAI,GAAG;CACtB;CAEA,IAAa,KAAQ,OAAgB;EACnC,IAAI,OAAO,QAAQ,UACjB,MAAM,IAAI,YAAY;EAExB,OAAO,MAAM,IAAI,KAAK,KAAK;CAC7B;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commitlintConfig.mjs","names":[],"sources":["../src/commitlintConfig.ts"],"sourcesContent":["import type { RuleConfigSeverity, UserConfig } from '@commitlint/types';\n\n// explicit type annotations for isolatedDeclarations. Allows for faster processing.\n\nconst disabled = 0 as RuleConfigSeverity.Disabled;\nconst commitlintConfig: UserConfig & {\n extends: UserConfig['extends'] | ['@commitlint/config-conventional'];\n rules: {\n 'body-max-line-length': [typeof disabled];\n 'footer-max-line-length': [typeof disabled];\n 'header-max-length': [typeof disabled];\n };\n} = {\n extends: ['@commitlint/config-conventional'],\n rules: {\n 'body-max-line-length': [disabled],\n 'footer-max-line-length': [disabled],\n 'header-max-length': [disabled],\n },\n};\n\n// only `default` export is loaded via `extends` config key!\nexport default commitlintConfig;\n"],"mappings":";AAIA,MAAM,WAAW;AACjB,MAAM,mBAOF;CACF,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"commitlintConfig.mjs","names":[],"sources":["../src/commitlintConfig.ts"],"sourcesContent":["import type { RuleConfigSeverity, UserConfig } from '@commitlint/types';\n\n// explicit type annotations for isolatedDeclarations. Allows for faster processing.\n\nconst disabled = 0 as RuleConfigSeverity.Disabled;\nconst commitlintConfig: UserConfig & {\n extends: UserConfig['extends'] | ['@commitlint/config-conventional'];\n rules: {\n 'body-max-line-length': [typeof disabled];\n 'footer-max-line-length': [typeof disabled];\n 'header-max-length': [typeof disabled];\n };\n} = {\n extends: ['@commitlint/config-conventional'],\n rules: {\n 'body-max-line-length': [disabled],\n 'footer-max-line-length': [disabled],\n 'header-max-length': [disabled],\n },\n};\n\n// only `default` export is loaded via `extends` config key!\nexport default commitlintConfig;\n"],"mappings":";AAIA,MAAM,WAAW;AACjB,MAAM,mBAOF;CACF,SAAS,CAAC,iCAAiC;CAC3C,OAAO;EACL,wBAAwB,CAAC,QAAQ;EACjC,0BAA0B,CAAC,QAAQ;EACnC,qBAAqB,CAAC,QAAQ;CAChC;AACF"}
|
package/mjs/debug.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.mjs","names":[],"sources":["../src/debug.ts"],"sourcesContent":["// note: @types/debug is incorrect. There is no .log function!\nimport createDebugger, { type Debugger } from 'debug';\nimport * as process from 'node:process';\n\nconst _debug = createDebugger('@halospv3/hce.shared-config') as Debugger & { log: never };\n\nif (process.argv.some(v => v.includes('--debug')) || createDebugger.enabled('@halospv3/hce.shared-config')) {\n createDebugger.enable(_debug.namespace);\n}\n\nexport default _debug;\n"],"mappings":";;;AAIA,MAAM,SAAS,eAAe,
|
|
1
|
+
{"version":3,"file":"debug.mjs","names":[],"sources":["../src/debug.ts"],"sourcesContent":["// note: @types/debug is incorrect. There is no .log function!\nimport createDebugger, { type Debugger } from 'debug';\nimport * as process from 'node:process';\n\nconst _debug = createDebugger('@halospv3/hce.shared-config') as Debugger & { log: never };\n\nif (process.argv.some(v => v.includes('--debug')) || createDebugger.enabled('@halospv3/hce.shared-config')) {\n createDebugger.enable(_debug.namespace);\n}\n\nexport default _debug;\n"],"mappings":";;;AAIA,MAAM,SAAS,eAAe,6BAA6B;AAE3D,IAAI,QAAQ,KAAK,MAAK,MAAK,EAAE,SAAS,SAAS,CAAC,KAAK,eAAe,QAAQ,6BAA6B,GACvG,eAAe,OAAO,OAAO,SAAS"}
|
|
@@ -9,11 +9,6 @@ declare const DefaultGithubTokenEnvVars: readonly ["GH_TOKEN", "GITHUB_TOKEN"];
|
|
|
9
9
|
declare class GithubNugetRegistryInfo extends NugetRegistryInfo {
|
|
10
10
|
static readonly NUGET_PKG_GITHUB_COM = "https://nuget.pkg.github.com";
|
|
11
11
|
/**
|
|
12
|
-
* Creates an instance of GithubNugetRegistryInfo.
|
|
13
|
-
* @param opts The input type of {@link GHNRIOpts.from}
|
|
14
|
-
*/
|
|
15
|
-
constructor(opts: typeof GHNRIOpts.inferIn);
|
|
16
|
-
/**
|
|
17
12
|
* Returns `https://nuget.pkg.github.com/${GITHUB_REPOSITORY_OWNER}/index.json`
|
|
18
13
|
* or (if GITHUB_REPOSITORY_OWNER is not defined in {@link process.env} nor
|
|
19
14
|
* {@link process.cwd() $CWD}/.env) `undefined`.
|
|
@@ -21,6 +16,11 @@ declare class GithubNugetRegistryInfo extends NugetRegistryInfo {
|
|
|
21
16
|
* Otherwise, returns `undefined`
|
|
22
17
|
*/
|
|
23
18
|
static getNugetGitHubUrl(): string | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Creates an instance of GithubNugetRegistryInfo.
|
|
21
|
+
* @param opts The input type of {@link GHNRIOpts.from}
|
|
22
|
+
*/
|
|
23
|
+
constructor(opts: typeof GHNRIOpts.inferIn);
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* The default value of {@link GHNRIOpts.t.source `source`} is dependent on
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GithubNugetRegistryInfo.d.mts","names":[],"sources":["../../src/dotnet/GithubNugetRegistryInfo.ts"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"GithubNugetRegistryInfo.d.mts","names":[],"sources":["../../src/dotnet/GithubNugetRegistryInfo.ts"],"mappings":";;;;;;;cAYa,yBAAA;AAAA,cAKA,uBAAA,SAAgC,iBAAA;EAAA,gBAC3B,oBAAA;EAN4C;;;AAAA;AAK9D;;;EAL8D,OAerD,iBAAA;;;;;EAaP,WAAA,CAAY,IAAA,SAAa,SAAA,CAAU,OAAA;AAAA;;;AAAA;AAYrC;;cAAa,SAAA,EAAW,IAAA;EACtB,OAAA,EAAS,cAAA;IAAA,SACE,KAAA,EAAO,QAAA,CAAS,QAAA,CAAS,uBAAA;IAAA,SACzB,UAAA,EAAY,QAAA,CAAS,sBAAA;IAAA,SACrB,OAAA;IAAA,SACA,aAAA,EAAe,QAAA,CAAS,uBAAA;EAAA;EAEnC,MAAA,EAAQ,OAAA;EACR,YAAA,EAAc,OAAA;AAAA"}
|
|
@@ -6,13 +6,6 @@ const DefaultGithubTokenEnvVars = Object.freeze(["GH_TOKEN", "GITHUB_TOKEN"]);
|
|
|
6
6
|
var GithubNugetRegistryInfo = class extends NugetRegistryInfo {
|
|
7
7
|
static NUGET_PKG_GITHUB_COM = "https://nuget.pkg.github.com";
|
|
8
8
|
/**
|
|
9
|
-
* Creates an instance of GithubNugetRegistryInfo.
|
|
10
|
-
* @param opts The input type of {@link GHNRIOpts.from}
|
|
11
|
-
*/
|
|
12
|
-
constructor(opts) {
|
|
13
|
-
super(GHNRIOpts.from(opts));
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
9
|
* Returns `https://nuget.pkg.github.com/${GITHUB_REPOSITORY_OWNER}/index.json`
|
|
17
10
|
* or (if GITHUB_REPOSITORY_OWNER is not defined in {@link process.env} nor
|
|
18
11
|
* {@link process.cwd() $CWD}/.env) `undefined`.
|
|
@@ -23,6 +16,13 @@ var GithubNugetRegistryInfo = class extends NugetRegistryInfo {
|
|
|
23
16
|
const owner = getEnvVarValue("GITHUB_REPOSITORY_OWNER");
|
|
24
17
|
return owner === void 0 ? void 0 : `${NUGET_PKG_GITHUB_COM}/${owner}/index.json`;
|
|
25
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Creates an instance of GithubNugetRegistryInfo.
|
|
21
|
+
* @param opts The input type of {@link GHNRIOpts.from}
|
|
22
|
+
*/
|
|
23
|
+
constructor(opts) {
|
|
24
|
+
super(GHNRIOpts.from(opts));
|
|
25
|
+
}
|
|
26
26
|
};
|
|
27
27
|
const GHNRI = GithubNugetRegistryInfo;
|
|
28
28
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GithubNugetRegistryInfo.mjs","names":[],"sources":["../../src/dotnet/GithubNugetRegistryInfo.ts"],"sourcesContent":["import type { Type } from 'arktype';\nimport { getEnvVarValue } from '../utils/env.ts';\nimport type { MSBuildProject, MSBuildEvaluationOutput } from './MSBuildProject.ts';\nimport type { NugetProjectProperties } from './NugetProjectProperties.ts';\nimport {\n NugetRegistryInfo,\n NRIOptsBase,\n} from './NugetRegistryInfo.ts';\nimport type { Default } from 'arktype/internal/attributes.ts';\n\nconst NUGET_PKG_GITHUB_COM = 'https://nuget.pkg.github.com';\nexport const DefaultGithubTokenEnvVars: readonly ['GH_TOKEN', 'GITHUB_TOKEN'] = Object.freeze([\n 'GH_TOKEN',\n 'GITHUB_TOKEN',\n]);\n\nexport class GithubNugetRegistryInfo extends NugetRegistryInfo {\n static readonly NUGET_PKG_GITHUB_COM = 'https://nuget.pkg.github.com';\n\n
|
|
1
|
+
{"version":3,"file":"GithubNugetRegistryInfo.mjs","names":["getEnvironmentVariableValue","NRIOptionsBase"],"sources":["../../src/dotnet/GithubNugetRegistryInfo.ts"],"sourcesContent":["import type { Type } from 'arktype';\nimport { getEnvVarValue as getEnvironmentVariableValue } from '../utils/env.ts';\nimport type { MSBuildProject, MSBuildEvaluationOutput } from './MSBuildProject.ts';\nimport type { NugetProjectProperties } from './NugetProjectProperties.ts';\nimport {\n NugetRegistryInfo,\n NRIOptsBase as NRIOptionsBase,\n} from './NugetRegistryInfo.ts';\nimport type { Default } from 'arktype/internal/attributes.ts';\n\nconst NUGET_PKG_GITHUB_COM = 'https://nuget.pkg.github.com';\n// eslint-disable-next-line unicorn/name-replacements\nexport const DefaultGithubTokenEnvVars: readonly ['GH_TOKEN', 'GITHUB_TOKEN'] = Object.freeze([\n 'GH_TOKEN',\n 'GITHUB_TOKEN',\n]);\n\nexport class GithubNugetRegistryInfo extends NugetRegistryInfo {\n static readonly NUGET_PKG_GITHUB_COM = 'https://nuget.pkg.github.com';\n\n /**\n * Returns `https://nuget.pkg.github.com/${GITHUB_REPOSITORY_OWNER}/index.json`\n * or (if GITHUB_REPOSITORY_OWNER is not defined in {@link process.env} nor\n * {@link process.cwd() $CWD}/.env) `undefined`.\n * @returns If GITHUB_REPOSITORY_OWNER is defined, returns the GitHub Package Repository URL endpoint for NuGet pushes (--source).\\\n * Otherwise, returns `undefined`\n */\n static getNugetGitHubUrl(): string | undefined {\n const owner = getEnvironmentVariableValue('GITHUB_REPOSITORY_OWNER');\n return owner === undefined\n ? undefined\n : `${NUGET_PKG_GITHUB_COM}/${owner}/index.json`;\n }\n\n // GithubNugetRegistryInfo.CtorArgs(...) behaves differently than NugetRegistryInfo.CtorArgs(...)\n /**\n * Creates an instance of GithubNugetRegistryInfo.\n * @param opts The input type of {@link GHNRIOpts.from}\n */\n // eslint-disable-next-line unicorn/name-replacements\n constructor(opts: typeof GHNRIOpts.inferIn) {\n super(GHNRIOpts.from(opts));\n }\n}\nconst GHNRI = GithubNugetRegistryInfo;\n\n/**\n * The default value of {@link GHNRIOpts.t.source `source`} is dependent on\n * {@link GHNRI.getNugetGitHubUrl} and will default to an empty string if the\n * environment variable `GITHUB_REPOSITORY_OWNER` is undefined!\n */\n// eslint-disable-next-line unicorn/name-replacements\nexport const GHNRIOpts: Type<{\n project: MSBuildProject | {\n readonly Items: Readonly<Required<MSBuildEvaluationOutput>['Items']>;\n readonly Properties: Readonly<NugetProjectProperties>;\n readonly Targets: readonly string[];\n readonly TargetResults: Required<MSBuildEvaluationOutput>['TargetResults'][];\n };\n source: Default<string, string>;\n tokenEnvVars: Default<readonly string[], readonly ['GH_TOKEN', 'GITHUB_TOKEN']>;\n}> = NRIOptionsBase.merge({\n /** @see {@link GHNRI.getNugetGitHubUrl } */\n source: NRIOptionsBase.get('source')\n .default(() => GHNRI.getNugetGitHubUrl() ?? ''),\n tokenEnvVars: NRIOptionsBase.get('tokenEnvVars')\n .default(\n /* must be a function. A fixed-length array is NOT a primitive type! */\n (): typeof DefaultGithubTokenEnvVars => DefaultGithubTokenEnvVars,\n ),\n});\n"],"mappings":";;;AAUA,MAAM,uBAAuB;AAE7B,MAAa,4BAAmE,OAAO,OAAO,CAC5F,YACA,cACF,CAAC;AAED,IAAa,0BAAb,cAA6C,kBAAkB;CAC7D,OAAgB,uBAAuB;;;;;;;;CASvC,OAAO,oBAAwC;EAC7C,MAAM,QAAQA,eAA4B,yBAAyB;EACnE,OAAO,UAAU,KAAA,IACb,KAAA,IACA,GAAG,qBAAqB,GAAG,MAAM;CACvC;;;;;CAQA,YAAY,MAAgC;EAC1C,MAAM,UAAU,KAAK,IAAI,CAAC;CAC5B;AACF;AACA,MAAM,QAAQ;;;;;;AAQd,MAAa,YASRC,YAAe,MAAM;;CAExB,QAAQA,YAAe,IAAI,QAAQ,CAAC,CACjC,cAAc,MAAM,kBAAkB,KAAK,EAAE;CAChD,cAAcA,YAAe,IAAI,cAAc,CAAC,CAC7C,cAEyC,yBAC1C;AACJ,CAAC"}
|
|
@@ -6,6 +6,7 @@ import { Default } from "arktype/internal/attributes.ts";
|
|
|
6
6
|
|
|
7
7
|
//#region src/dotnet/GitlabNugetRegistryInfo.d.ts
|
|
8
8
|
declare class GitlabNugetRegistryInfo extends NugetRegistryInfo {
|
|
9
|
+
static readonly DefaultGitlabTokenEnvVars: readonly ["GL_TOKEN", "GITLAB_TOKEN", "CI_JOB_TOKEN"];
|
|
9
10
|
/**
|
|
10
11
|
* The GitLab API v4 root URL.
|
|
11
12
|
* @returns The value of the environment variable `CI_API_V4_URL`.
|
|
@@ -25,12 +26,6 @@ declare class GitlabNugetRegistryInfo extends NugetRegistryInfo {
|
|
|
25
26
|
* @returns The value of the environment variable 'CI_PROJECT_NAMESPACE_ID' or `undefined`.
|
|
26
27
|
*/
|
|
27
28
|
static get ownerId(): string | undefined;
|
|
28
|
-
static readonly DefaultGitlabTokenEnvVars: readonly ["GL_TOKEN", "GITLAB_TOKEN", "CI_JOB_TOKEN"];
|
|
29
|
-
/**
|
|
30
|
-
* Creates an instance of GitlabNugetRegistryInfo.
|
|
31
|
-
* @param opts The input type of {@link GLNRIOpts.from}
|
|
32
|
-
*/
|
|
33
|
-
constructor(opts: typeof GLNRIOpts.inferIn);
|
|
34
29
|
/**
|
|
35
30
|
* Get the GitLab Nuget API for your project url as seen in https://docs.gitlab.com/ee/user/packages/nuget_repository/index.html#publish-a-nuget-package-by-using-cicd
|
|
36
31
|
* ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/nuget/index.json
|
|
@@ -46,6 +41,11 @@ declare class GitlabNugetRegistryInfo extends NugetRegistryInfo {
|
|
|
46
41
|
* Else, {@link Error}.
|
|
47
42
|
*/
|
|
48
43
|
static get groupUrl(): string | Error;
|
|
44
|
+
/**
|
|
45
|
+
* Creates an instance of GitlabNugetRegistryInfo.
|
|
46
|
+
* @param opts The input type of {@link GLNRIOpts.from}
|
|
47
|
+
*/
|
|
48
|
+
constructor(opts: typeof GLNRIOpts.inferIn);
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* The Arktype definition for {@link GitlabNugetRegistryInfo}'s constructor parameter. Construct an object of this type by calling {@link GLNRIOpts.from}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitlabNugetRegistryInfo.d.mts","names":[],"sources":["../../src/dotnet/GitlabNugetRegistryInfo.ts"],"mappings":";;;;;;;cAaa,uBAAA,SAAgC,iBAAA
|
|
1
|
+
{"version":3,"file":"GitlabNugetRegistryInfo.d.mts","names":[],"sources":["../../src/dotnet/GitlabNugetRegistryInfo.ts"],"mappings":";;;;;;;cAaa,uBAAA,SAAgC,iBAAA;EAAA,gBAC3B,yBAAA;EADlB;;;;;EAAA,WAYa,aAAA;;;;;;;aAUA,SAAA;;;;;;aASA,OAAA;;;;;AAkCwB;AAarC;;aApCa,UAAA,aAAuB,KAAA;;;;;;;aAYvB,QAAA,aAAqB,KAAA;;;;;EAWhC,WAAA,CAAY,IAAA,SAAa,SAAA,CAAU,OAAA;AAAA;;;;cAaxB,SAAA,EAAW,IAAA;EACtB,OAAA,EAAS,cAAA;IAAA,SACE,KAAA,EAAO,QAAA,CAAS,QAAA,CAAS,uBAAA;IAAA,SACzB,UAAA,EAAY,QAAA,CAAS,sBAAA;IAAA,SACrB,OAAA;IAAA,SACA,aAAA,EAAe,QAAA,CAAS,uBAAA;EAAA;EAEnC,YAAA,EAAc,OAAA;EACd,MAAA,GAAS,EAAA,EAAI,OAAA,UAAiB,KAAA,WAAgB,KAAA,MAAW,GAAA,UAAa,KAAA;AAAA"}
|
|
@@ -3,6 +3,11 @@ import { getEnvVarValue } from "../utils/env.mjs";
|
|
|
3
3
|
import { NRIOpts, NRIOptsBase, NugetRegistryInfo } from "./NugetRegistryInfo.mjs";
|
|
4
4
|
//#region src/dotnet/GitlabNugetRegistryInfo.ts
|
|
5
5
|
var GitlabNugetRegistryInfo = class extends NugetRegistryInfo {
|
|
6
|
+
static DefaultGitlabTokenEnvVars = Object.freeze([
|
|
7
|
+
"GL_TOKEN",
|
|
8
|
+
"GITLAB_TOKEN",
|
|
9
|
+
"CI_JOB_TOKEN"
|
|
10
|
+
]);
|
|
6
11
|
/**
|
|
7
12
|
* The GitLab API v4 root URL.
|
|
8
13
|
* @returns The value of the environment variable `CI_API_V4_URL`.
|
|
@@ -28,20 +33,6 @@ var GitlabNugetRegistryInfo = class extends NugetRegistryInfo {
|
|
|
28
33
|
static get ownerId() {
|
|
29
34
|
return getEnvVarValue("CI_PROJECT_NAMESPACE_ID");
|
|
30
35
|
}
|
|
31
|
-
static DefaultGitlabTokenEnvVars = Object.freeze([
|
|
32
|
-
"GL_TOKEN",
|
|
33
|
-
"GITLAB_TOKEN",
|
|
34
|
-
"CI_JOB_TOKEN"
|
|
35
|
-
]);
|
|
36
|
-
/**
|
|
37
|
-
* Creates an instance of GitlabNugetRegistryInfo.
|
|
38
|
-
* @param opts The input type of {@link GLNRIOpts.from}
|
|
39
|
-
*/
|
|
40
|
-
constructor(opts) {
|
|
41
|
-
const optsOut = GLNRIOpts.from(opts);
|
|
42
|
-
if (isError(optsOut.source)) throw optsOut.source;
|
|
43
|
-
super(optsOut);
|
|
44
|
-
}
|
|
45
36
|
/**
|
|
46
37
|
* Get the GitLab Nuget API for your project url as seen in https://docs.gitlab.com/ee/user/packages/nuget_repository/index.html#publish-a-nuget-package-by-using-cicd
|
|
47
38
|
* ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/nuget/index.json
|
|
@@ -61,6 +52,15 @@ var GitlabNugetRegistryInfo = class extends NugetRegistryInfo {
|
|
|
61
52
|
static get groupUrl() {
|
|
62
53
|
return this.ownerId ? `${this.CI_API_V4_URL}/groups/${this.ownerId}/-/packages/nuget/index.json` : /* @__PURE__ */ new Error("env.CI_PROJECT_NAMESPACE_ID must be defined to use its GitLab API endpoint!");
|
|
63
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Creates an instance of GitlabNugetRegistryInfo.
|
|
57
|
+
* @param opts The input type of {@link GLNRIOpts.from}
|
|
58
|
+
*/
|
|
59
|
+
constructor(opts) {
|
|
60
|
+
const optionsOut = GLNRIOpts.from(opts);
|
|
61
|
+
if (isError(optionsOut.source)) throw optionsOut.source;
|
|
62
|
+
super(optionsOut);
|
|
63
|
+
}
|
|
64
64
|
};
|
|
65
65
|
const GLNRI = GitlabNugetRegistryInfo;
|
|
66
66
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitlabNugetRegistryInfo.mjs","names":[],"sources":["../../src/dotnet/GitlabNugetRegistryInfo.ts"],"sourcesContent":["import { getEnvVarValue } from '../utils/env.ts';\nimport { isError } from '../utils/isError.ts';\nimport {\n NugetRegistryInfo,\n NRIOpts,\n NRIOptsBase,\n} from './NugetRegistryInfo.ts';\nimport type { Out, Type } from 'arktype';\nimport type { Default } from 'arktype/internal/attributes.ts';\nimport type { MSBuildProject, MSBuildEvaluationOutput } from './MSBuildProject.ts';\nimport type { NugetProjectProperties } from './NugetProjectProperties.ts';\n\n// https://docs.gitlab.com/ee/user/packages/nuget_repository/\nexport class GitlabNugetRegistryInfo extends NugetRegistryInfo {\n /**\n * The GitLab API v4 root URL.\n * @returns The value of the environment variable `CI_API_V4_URL`.\n * If that's `undefined`, 'https://gitlab.com/api/v4' is returned, instead.\n */\n static get CI_API_V4_URL(): string {\n return
|
|
1
|
+
{"version":3,"file":"GitlabNugetRegistryInfo.mjs","names":["getEnvironmentVariableValue","NRIOptions","NRIOptionsBase"],"sources":["../../src/dotnet/GitlabNugetRegistryInfo.ts"],"sourcesContent":["import { getEnvVarValue as getEnvironmentVariableValue } from '../utils/env.ts';\nimport { isError } from '../utils/isError.ts';\nimport {\n NugetRegistryInfo,\n NRIOpts as NRIOptions,\n NRIOptsBase as NRIOptionsBase,\n} from './NugetRegistryInfo.ts';\nimport type { Out, Type } from 'arktype';\nimport type { Default } from 'arktype/internal/attributes.ts';\nimport type { MSBuildProject, MSBuildEvaluationOutput } from './MSBuildProject.ts';\nimport type { NugetProjectProperties } from './NugetProjectProperties.ts';\n\n// https://docs.gitlab.com/ee/user/packages/nuget_repository/\nexport class GitlabNugetRegistryInfo extends NugetRegistryInfo {\n static readonly DefaultGitlabTokenEnvVars: readonly ['GL_TOKEN', 'GITLAB_TOKEN', 'CI_JOB_TOKEN'] = Object.freeze([\n 'GL_TOKEN',\n 'GITLAB_TOKEN',\n 'CI_JOB_TOKEN',\n ] as const);\n\n /**\n * The GitLab API v4 root URL.\n * @returns The value of the environment variable `CI_API_V4_URL`.\n * If that's `undefined`, 'https://gitlab.com/api/v4' is returned, instead.\n */\n static get CI_API_V4_URL(): string {\n return getEnvironmentVariableValue('CI_API_V4_URL') ?? 'https://gitlab.com/api/v4';\n }\n\n /**\n * CI_PROJECT_ID - If you want to publish to your GitLab server, this needs to be set to the Id of the project you want to publish to. When running in GitLab CI this is already set to the project the pipeline runs in by GitLab.\n * This method checks the contents of your `.env` file, if present.\n * @returns The value of the environment variable `CI_PROJECT_ID` or `undefined`.\n * @todo add URI encoded project pathname as alternative e.g. 'halospv3%2FHCE.Shared' in 'https://gitlab.com/api/v4/projects/halospv3%2FHCE.Shared'\n */\n static get projectId(): string | undefined {\n return getEnvironmentVariableValue('CI_PROJECT_ID');\n }\n\n /**\n * CI_PROJECT_NAMESPACE_ID\n * This method checks the contents of your `.env` file, if present.\n * @returns The value of the environment variable 'CI_PROJECT_NAMESPACE_ID' or `undefined`.\n */\n static get ownerId(): string | undefined {\n return getEnvironmentVariableValue('CI_PROJECT_NAMESPACE_ID');\n }\n\n /**\n * Get the GitLab Nuget API for your project url as seen in https://docs.gitlab.com/ee/user/packages/nuget_repository/index.html#publish-a-nuget-package-by-using-cicd\n * ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/nuget/index.json\n * @returns If {@link this.projectId} is a string, a string formatted like\n * `${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/nuget/index.json`.\n * Else, {@link Error}.\n */\n static get projectUrl(): string | Error {\n return this.projectId\n ? `${this.CI_API_V4_URL}/projects/${this.projectId}/packages/nuget/index.json`\n : new Error('The project-type URL was specified, but one or more of the required environment variables (CI_API_V4_URL, CI_PROJECT_ID) were undefined.');\n }\n\n /**\n * ${CI_API_V4_URL}/groups/${CI_PROJECT_NAMESPACE_ID}/-/packages/nuget/index.json\n * @returns If {@link ownerId} is a string, then a string formatted like\n * `${CI_API_V4_URL}/groups/${CI_PROJECT_NAMESPACE_ID}/-/packages/nuget/index.json`.\n * Else, {@link Error}.\n */\n static get groupUrl(): string | Error {\n return this.ownerId\n ? `${this.CI_API_V4_URL}/groups/${this.ownerId}/-/packages/nuget/index.json`\n : new Error('env.CI_PROJECT_NAMESPACE_ID must be defined to use its GitLab API endpoint!');\n }\n\n /**\n * Creates an instance of GitlabNugetRegistryInfo.\n * @param opts The input type of {@link GLNRIOpts.from}\n */\n // eslint-disable-next-line unicorn/name-replacements\n constructor(opts: typeof GLNRIOpts.inferIn) {\n const optionsOut = GLNRIOpts.from(opts);\n if (isError(optionsOut.source))\n throw optionsOut.source;\n super(optionsOut as typeof optionsOut & { source: string });\n }\n}\nconst GLNRI = GitlabNugetRegistryInfo;\n\n/**\n * The Arktype definition for {@link GitlabNugetRegistryInfo}'s constructor parameter. Construct an object of this type by calling {@link GLNRIOpts.from}\n */\n// eslint-disable-next-line unicorn/name-replacements\nexport const GLNRIOpts: Type<{\n project: MSBuildProject | {\n readonly Items: Readonly<Required<MSBuildEvaluationOutput>['Items']>;\n readonly Properties: Readonly<NugetProjectProperties>;\n readonly Targets: readonly string[];\n readonly TargetResults: Required<MSBuildEvaluationOutput>['TargetResults'][];\n };\n tokenEnvVars: Default<readonly string[], readonly ['GL_TOKEN', 'GITLAB_TOKEN', 'CI_JOB_TOKEN']>;\n source: (In: Default<string | Error, string | Error>) => Out<string | Error>;\n}> = NRIOptions.merge({\n tokenEnvVars: NRIOptionsBase.get('tokenEnvVars').default(\n () => GLNRI.DefaultGitlabTokenEnvVars,\n ),\n /**\n * The GitLab Nuget API URL to push packages to -OR- a keyword such as \"group\"\n * or \"project\" used to determine URL.\n * @default GLNRI.projectUrl\n * @see {@link GLNRI.projectUrl}, {@link GLNRI.groupUrl}\n */\n // todo: change '\"group\" | \"project\"' to '\"GITLAB:PROJECT\" | \"GITLAB:GROUP\"'\n source: NRIOptionsBase.get('source')\n .or('\"group\" | \"project\" | Error')\n .pipe((source: string | Error): string | Error => {\n switch (source) {\n case 'group': {\n return GLNRI.groupUrl;\n }\n case 'project': {\n return GLNRI.projectUrl;\n }\n default: {\n return source;\n }\n }\n }).default(() => GLNRI.projectUrl),\n});\n"],"mappings":";;;;AAaA,IAAa,0BAAb,cAA6C,kBAAkB;CAC7D,OAAgB,4BAAmF,OAAO,OAAO;EAC/G;EACA;EACA;CACF,CAAU;;;;;;CAOV,WAAW,gBAAwB;EACjC,OAAOA,eAA4B,eAAe,KAAK;CACzD;;;;;;;CAQA,WAAW,YAAgC;EACzC,OAAOA,eAA4B,eAAe;CACpD;;;;;;CAOA,WAAW,UAA8B;EACvC,OAAOA,eAA4B,yBAAyB;CAC9D;;;;;;;;CASA,WAAW,aAA6B;EACtC,OAAO,KAAK,YACR,GAAG,KAAK,cAAc,YAAY,KAAK,UAAU,8CACjD,IAAI,MAAM,0IAA0I;CAC1J;;;;;;;CAQA,WAAW,WAA2B;EACpC,OAAO,KAAK,UACR,GAAG,KAAK,cAAc,UAAU,KAAK,QAAQ,gDAC7C,IAAI,MAAM,6EAA6E;CAC7F;;;;;CAOA,YAAY,MAAgC;EAC1C,MAAM,aAAa,UAAU,KAAK,IAAI;EACtC,IAAI,QAAQ,WAAW,MAAM,GAC3B,MAAM,WAAW;EACnB,MAAM,UAAoD;CAC5D;AACF;AACA,MAAM,QAAQ;;;;AAMd,MAAa,YASRC,QAAW,MAAM;CACpB,cAAcC,YAAe,IAAI,cAAc,CAAC,CAAC,cACzC,MAAM,yBACd;;;;;;;CAQA,QAAQA,YAAe,IAAI,QAAQ,CAAC,CACjC,GAAG,iCAA6B,CAAC,CACjC,MAAM,WAA2C;EAChD,QAAQ,QAAR;GACE,KAAK,SACH,OAAO,MAAM;GAEf,KAAK,WACH,OAAO,MAAM;GAEf,SACE,OAAO;EAEX;CACF,CAAC,CAAC,CAAC,cAAc,MAAM,UAAU;AACrC,CAAC"}
|
|
@@ -13,15 +13,15 @@ import esMain from "es-main";
|
|
|
13
13
|
* - already exists at `source`
|
|
14
14
|
*/
|
|
15
15
|
async function main() {
|
|
16
|
-
const
|
|
16
|
+
const arguments_ = process.argv.slice(2);
|
|
17
17
|
const options = {
|
|
18
18
|
packageId: void 0,
|
|
19
19
|
source: void 0
|
|
20
20
|
};
|
|
21
|
-
for (let
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
if (
|
|
21
|
+
for (let index = 0; index < arguments_.length; index += 2) {
|
|
22
|
+
const argumentName = arguments_[index];
|
|
23
|
+
const argumentValue = arguments_[index + 1];
|
|
24
|
+
if (argumentValue !== void 0 && argumentName?.startsWith("--") === true) options[argumentName.slice(2)] = argumentValue;
|
|
25
25
|
}
|
|
26
26
|
if (typeof options.packageId !== "string") throw new Error("packageId must be a string");
|
|
27
27
|
if (typeof options.source !== "string") throw new Error("source must be a string");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IsNextVersionAlreadyPublished.cli.mjs","names":[],"sources":["../../src/dotnet/IsNextVersionAlreadyPublished.cli.ts"],"sourcesContent":["import * as console from 'node:console';\nimport { NugetRegistryInfo, getGithubOutput } from './NugetRegistryInfo.ts';\nimport esMain from 'es-main';\n\n/**\n * @returns if successful\n * @throws {Error} if...\n * - {@link process.argv} does not include...\n * - `--packageId [string]`\n * - `--source [string]`\n * - Value of `await getGithubOutput())['new-release-version']`...\n * - is not a valid Version\n * - already exists at `source`\n */\nasync function main(): Promise<0> {\n const
|
|
1
|
+
{"version":3,"file":"IsNextVersionAlreadyPublished.cli.mjs","names":[],"sources":["../../src/dotnet/IsNextVersionAlreadyPublished.cli.ts"],"sourcesContent":["import * as console from 'node:console';\nimport { NugetRegistryInfo, getGithubOutput } from './NugetRegistryInfo.ts';\nimport esMain from 'es-main';\n\n/**\n * @returns if successful\n * @throws {Error} if...\n * - {@link process.argv} does not include...\n * - `--packageId [string]`\n * - `--source [string]`\n * - Value of `await getGithubOutput())['new-release-version']`...\n * - is not a valid Version\n * - already exists at `source`\n */\nasync function main(): Promise<0> {\n const arguments_ = process.argv.slice(2);\n // Parse command-line arguments - https://stackoverflow.com/a/76298476/14894786\n const options: {\n packageId: string | undefined;\n source: string | undefined;\n } & Record<string, string | undefined> = { packageId: undefined, source: undefined };\n for (let index = 0; index < arguments_.length; index += 2) {\n const argumentName = arguments_[index];\n const argumentValue = arguments_[index + 1];\n if (argumentValue !== undefined && argumentName?.startsWith('--') === true) {\n options[argumentName.slice(2)] = argumentValue;\n }\n }\n\n if (typeof options.packageId !== 'string')\n throw new Error('packageId must be a string');\n if (typeof options.source !== 'string')\n throw new Error('source must be a string');\n\n const packageId = options.packageId,\n source = options.source,\n versionPattern = new RegExp(/\\d+\\.\\d+\\.\\d+([-+].+)?/);\n const ghOutput = await getGithubOutput() ?? {};\n const matches = versionPattern.exec(ghOutput['new-release-version'] ?? '');\n if (matches === null || matches.length === 0)\n throw new Error(\n 'The variable new-release-version is not present in the GITHUB_OUTPUT env file or its value contains invalid characters.',\n );\n\n const nextVersion = matches[0];\n const isPublished = await NugetRegistryInfo.IsNextVersionAlreadyPublished(\n source,\n packageId,\n nextVersion,\n );\n\n if (typeof isPublished !== 'boolean')\n throw new Error('isPublished is not a boolean');\n if (isPublished)\n throw new Error(`${packageId}@${nextVersion} already exists at ${source}.`);\n console.log(`OK: ${packageId}@${nextVersion} does NOT yet exist at ${source}. Yay.`);\n\n return 0;\n}\n\nif (esMain(import.meta))\n await main();\n"],"mappings":";;;;;;;;;;;;;;AAcA,eAAe,OAAmB;CAChC,MAAM,aAAa,QAAQ,KAAK,MAAM,CAAC;CAEvC,MAAM,UAGmC;EAAE,WAAW,KAAA;EAAW,QAAQ,KAAA;CAAU;CACnF,KAAK,IAAI,QAAQ,GAAG,QAAQ,WAAW,QAAQ,SAAS,GAAG;EACzD,MAAM,eAAe,WAAW;EAChC,MAAM,gBAAgB,WAAW,QAAQ;EACzC,IAAI,kBAAkB,KAAA,KAAa,cAAc,WAAW,IAAI,MAAM,MACpE,QAAQ,aAAa,MAAM,CAAC,KAAK;CAErC;CAEA,IAAI,OAAO,QAAQ,cAAc,UAC/B,MAAM,IAAI,MAAM,4BAA4B;CAC9C,IAAI,OAAO,QAAQ,WAAW,UAC5B,MAAM,IAAI,MAAM,yBAAyB;CAE3C,MAAM,YAAY,QAAQ,WACxB,SAAS,QAAQ,QACjB,iCAAiB,IAAI,OAAO,wBAAwB;CACtD,MAAM,WAAW,MAAM,gBAAgB,KAAK,CAAC;CAC7C,MAAM,UAAU,eAAe,KAAK,SAAS,0BAA0B,EAAE;CACzE,IAAI,YAAY,QAAQ,QAAQ,WAAW,GACzC,MAAM,IAAI,MACR,yHACF;CAEF,MAAM,cAAc,QAAQ;CAC5B,MAAM,cAAc,MAAM,kBAAkB,8BAC1C,QACA,WACA,WACF;CAEA,IAAI,OAAO,gBAAgB,WACzB,MAAM,IAAI,MAAM,8BAA8B;CAChD,IAAI,aACF,MAAM,IAAI,MAAM,GAAG,UAAU,GAAG,YAAY,qBAAqB,OAAO,EAAE;CAC5E,QAAQ,IAAI,OAAO,UAAU,GAAG,YAAY,yBAAyB,OAAO,OAAO;CAEnF,OAAO;AACT;AAEA,IAAI,OAAO,OAAO,IAAI,GACpB,MAAM,KAAK"}
|
|
@@ -62,11 +62,6 @@ declare const msbuildEvaluationOutput: Type<{
|
|
|
62
62
|
}> | undefined;
|
|
63
63
|
}>;
|
|
64
64
|
declare class MSBuildEvaluationOutput {
|
|
65
|
-
/**
|
|
66
|
-
* @param rawMSBuildEvaluation The output of a CLI MSBuild project evaluation.
|
|
67
|
-
* May be the UTF-8 string-encoded JSON or the object decoded from that JSON.
|
|
68
|
-
*/
|
|
69
|
-
constructor(rawMSBuildEvaluation: Parameters<typeof JSON.parse>[0] | Parameters<typeof msbuildEvaluationOutput.from>[0]);
|
|
70
65
|
/**
|
|
71
66
|
* The specified properties and their values as evaluated by MSBuild Core.
|
|
72
67
|
* `-getProperty:{propertyName,...}`
|
|
@@ -84,6 +79,11 @@ declare class MSBuildEvaluationOutput {
|
|
|
84
79
|
* `-getTargetResult:{targetName,...}`
|
|
85
80
|
*/
|
|
86
81
|
TargetResults?: typeof msbuildEvaluationOutput.infer.TargetResults;
|
|
82
|
+
/**
|
|
83
|
+
* @param rawMSBuildEvaluation The output of a CLI MSBuild project evaluation.
|
|
84
|
+
* May be the UTF-8 string-encoded JSON or the object decoded from that JSON.
|
|
85
|
+
*/
|
|
86
|
+
constructor(rawMSBuildEvaluation: Parameters<typeof JSON.parse>[0] | Parameters<typeof msbuildEvaluationOutput.from>[0]);
|
|
87
87
|
}
|
|
88
88
|
declare const EvaluationOptions: Type<{
|
|
89
89
|
FullName: string;
|
|
@@ -116,29 +116,6 @@ declare class MSBuildProject {
|
|
|
116
116
|
*/
|
|
117
117
|
static readonly MatrixProperties: readonly string[];
|
|
118
118
|
/**
|
|
119
|
-
* Creates an instance of MSBuildProject.
|
|
120
|
-
* @param opts The order-independent arguments for this constructor.
|
|
121
|
-
* Properties may be added or moved around in this definition without
|
|
122
|
-
* breaking compatibility.
|
|
123
|
-
* @param opts.fullPath The full path of the MSBuild project's file. This
|
|
124
|
-
* should have a '.csproj', '.fsproj', or '.vbproj' file extension.
|
|
125
|
-
* @param opts.projTargets A list of MSBuild Targets supported by the project.
|
|
126
|
-
* @param opts.evaluation The output of an MSBuild project evaluation. This
|
|
127
|
-
* comprises MSBuild Properties, Items, and Target results.
|
|
128
|
-
*/
|
|
129
|
-
constructor(opts: {
|
|
130
|
-
fullPath: string;
|
|
131
|
-
projTargets: string[];
|
|
132
|
-
evaluation: MSBuildEvaluationOutput;
|
|
133
|
-
});
|
|
134
|
-
readonly Items: Readonly<Required<MSBuildEvaluationOutput>["Items"]>;
|
|
135
|
-
readonly Properties: Readonly<NugetProjectProperties>;
|
|
136
|
-
readonly Targets: readonly string[];
|
|
137
|
-
/**
|
|
138
|
-
* Allows appending subsequent target results.
|
|
139
|
-
*/
|
|
140
|
-
readonly TargetResults: Required<MSBuildEvaluationOutput>["TargetResults"][];
|
|
141
|
-
/**
|
|
142
119
|
* @param projectPath The full path of the project file or its directory. A
|
|
143
120
|
* relative path may be passed, but will resolve relative to the current
|
|
144
121
|
* working directory.
|
|
@@ -180,6 +157,29 @@ declare class MSBuildProject {
|
|
|
180
157
|
*/
|
|
181
158
|
static PackableProjectsToMSBuildProjects(projectsToPackAndPush: string[]): Promise<Promise<MSBuildProject>[]>;
|
|
182
159
|
static fromJSON(json: string): MSBuildProject;
|
|
160
|
+
readonly Items: Readonly<Required<MSBuildEvaluationOutput>["Items"]>;
|
|
161
|
+
readonly Properties: Readonly<NugetProjectProperties>;
|
|
162
|
+
readonly Targets: readonly string[];
|
|
163
|
+
/**
|
|
164
|
+
* Allows appending subsequent target results.
|
|
165
|
+
*/
|
|
166
|
+
readonly TargetResults: Required<MSBuildEvaluationOutput>["TargetResults"][];
|
|
167
|
+
/**
|
|
168
|
+
* Creates an instance of MSBuildProject.
|
|
169
|
+
* @param opts The order-independent arguments for this constructor.
|
|
170
|
+
* Properties may be added or moved around in this definition without
|
|
171
|
+
* breaking compatibility.
|
|
172
|
+
* @param opts.fullPath The full path of the MSBuild project's file. This
|
|
173
|
+
* should have a '.csproj', '.fsproj', or '.vbproj' file extension.
|
|
174
|
+
* @param opts.projTargets A list of MSBuild Targets supported by the project.
|
|
175
|
+
* @param opts.evaluation The output of an MSBuild project evaluation. This
|
|
176
|
+
* comprises MSBuild Properties, Items, and Target results.
|
|
177
|
+
*/
|
|
178
|
+
constructor(opts: {
|
|
179
|
+
fullPath: string;
|
|
180
|
+
projTargets: string[];
|
|
181
|
+
evaluation: MSBuildEvaluationOutput;
|
|
182
|
+
});
|
|
183
183
|
}
|
|
184
184
|
/**
|
|
185
185
|
* ArkType type definitions for internal usage, but may be re-used elsewhere
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MSBuildProject.d.mts","names":[],"sources":["../../src/dotnet/MSBuildProject.ts"],"mappings":";;;;cA2EM,uBAAA,EAAyB,IAAA;EAC7B,UAAA,GAAa,MAAA;EACb,KAAA,GAAQ,MAAA;IAAA;IAEN,QAAA;IACA,QAAA;IACA,OAAA;IACA,QAAA;IACA,SAAA;IACA,WAAA;IACA,SAAA;IACA,YAAA;IACA,YAAA;IACA,WAAA;IACA,YAAA;IACA,uBAAA;IACA,wBAAA;IACA,mBAAA;IACA,wBAAA;IACA,OAAA;IACA,yBAAA;IACA,qBAAA;IACA,kBAAA;IACA,wBAAA;IACA,sBAAA;IACA,iBAAA;EAAA;EAEF,aAAA,GAAgB,MAAA;IACd,MAAA;IACA,KAAA;MAAA;MAEE,QAAA;MACA,QAAA;MACA,OAAA;MACA,QAAA;MACA,SAAA;MACA,WAAA;MACA,SAAA;MACA,YAAA;MACA,YAAA;MACA,WAAA;MACA,YAAA;MACA,uBAAA;MACA,wBAAA;MACA,mBAAA;MACA,wBAAA;MACA,OAAA;MACA,yBAAA;MACA,qBAAA;MACA,kBAAA;MACA,wBAAA;MACA,sBAAA;MACA,iBAAA;IAAA;EAAA;IAGF,MAAA;IACA,KAAA;EAAA;AAAA;AAAA,cAQS,uBAAA;;;;;EAKX,
|
|
1
|
+
{"version":3,"file":"MSBuildProject.d.mts","names":[],"sources":["../../src/dotnet/MSBuildProject.ts"],"mappings":"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"}
|