@halospv3/hce.shared-config 3.5.3-develop.2 → 3.6.0-develop.1

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.
Files changed (136) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +33 -10
  3. package/dotnet/.github/workflows/_unit_test.yml +1 -1
  4. package/dotnet/.github/workflows/dotnet-release.yml +1 -1
  5. package/dotnet/.github/workflows/sample-dotnet-build.yml +1 -1
  6. package/dotnet/CleanupWpfTmp.targets +15 -0
  7. package/dotnet/HCE.Shared.targets +3 -0
  8. package/mjs/CaseInsensitiveMap.mjs.map +1 -1
  9. package/mjs/commitlintConfig.mjs.map +1 -1
  10. package/mjs/debug.mjs.map +1 -1
  11. package/mjs/dotnet/GithubNugetRegistryInfo.d.mts +5 -5
  12. package/mjs/dotnet/GithubNugetRegistryInfo.d.mts.map +1 -1
  13. package/mjs/dotnet/GithubNugetRegistryInfo.mjs +7 -7
  14. package/mjs/dotnet/GithubNugetRegistryInfo.mjs.map +1 -1
  15. package/mjs/dotnet/GitlabNugetRegistryInfo.d.mts +6 -6
  16. package/mjs/dotnet/GitlabNugetRegistryInfo.d.mts.map +1 -1
  17. package/mjs/dotnet/GitlabNugetRegistryInfo.mjs +14 -14
  18. package/mjs/dotnet/GitlabNugetRegistryInfo.mjs.map +1 -1
  19. package/mjs/dotnet/IsNextVersionAlreadyPublished.cli.mjs +5 -5
  20. package/mjs/dotnet/IsNextVersionAlreadyPublished.cli.mjs.map +1 -1
  21. package/mjs/dotnet/MSBuildProject.d.mts +28 -28
  22. package/mjs/dotnet/MSBuildProject.d.mts.map +1 -1
  23. package/mjs/dotnet/MSBuildProject.mjs +88 -66
  24. package/mjs/dotnet/MSBuildProject.mjs.map +1 -1
  25. package/mjs/dotnet/MSBuildProjectProperties.d.mts.map +1 -1
  26. package/mjs/dotnet/MSBuildProjectProperties.mjs +1 -1
  27. package/mjs/dotnet/MSBuildProjectProperties.mjs.map +1 -1
  28. package/mjs/dotnet/NugetProjectProperties.d.mts +3 -3
  29. package/mjs/dotnet/NugetProjectProperties.d.mts.map +1 -1
  30. package/mjs/dotnet/NugetProjectProperties.mjs +7 -9
  31. package/mjs/dotnet/NugetProjectProperties.mjs.map +1 -1
  32. package/mjs/dotnet/NugetRegistryInfo.d.mts +40 -40
  33. package/mjs/dotnet/NugetRegistryInfo.d.mts.map +1 -1
  34. package/mjs/dotnet/NugetRegistryInfo.mjs +170 -148
  35. package/mjs/dotnet/NugetRegistryInfo.mjs.map +1 -1
  36. package/mjs/dotnet/helpers.d.mts.map +1 -1
  37. package/mjs/dotnet/helpers.mjs +33 -34
  38. package/mjs/dotnet/helpers.mjs.map +1 -1
  39. package/mjs/eslintConfig.mjs.map +1 -1
  40. package/mjs/insertPlugins.mjs +2 -2
  41. package/mjs/insertPlugins.mjs.map +1 -1
  42. package/mjs/semantic-release__commit-analyzer.d.mts.map +1 -1
  43. package/mjs/semantic-release__exec.d.mts.map +1 -1
  44. package/mjs/semantic-release__git.d.mts.map +1 -1
  45. package/mjs/semantic-release__github.d.mts +1 -0
  46. package/mjs/semantic-release__github.d.mts.map +1 -1
  47. package/mjs/semanticReleaseConfig.d.mts.map +1 -1
  48. package/mjs/semanticReleaseConfig.mjs.map +1 -1
  49. package/mjs/semanticReleaseConfigDotnet.d.mts.map +1 -1
  50. package/mjs/semanticReleaseConfigDotnet.mjs +23 -16
  51. package/mjs/semanticReleaseConfigDotnet.mjs.map +1 -1
  52. package/mjs/setupGitPluginSpec.d.mts.map +1 -1
  53. package/mjs/setupGitPluginSpec.default.mjs.map +1 -1
  54. package/mjs/setupGitPluginSpec.mjs +19 -19
  55. package/mjs/setupGitPluginSpec.mjs.map +1 -1
  56. package/mjs/utils/Exact.d.mts.map +1 -1
  57. package/mjs/utils/GracefulRecursion.d.mts.map +1 -1
  58. package/mjs/utils/env.d.mts.map +1 -1
  59. package/mjs/utils/env.mjs.map +1 -1
  60. package/mjs/utils/execAsync.d.mts +3 -3
  61. package/mjs/utils/execAsync.d.mts.map +1 -1
  62. package/mjs/utils/execAsync.mjs +14 -12
  63. package/mjs/utils/execAsync.mjs.map +1 -1
  64. package/mjs/utils/isError.mjs.map +1 -1
  65. package/mjs/utils/miscTypes.d.mts.map +1 -1
  66. package/mjs/utils/miscTypes.mjs.map +1 -1
  67. package/mjs/utils/reflection/FunctionLike.d.mts +1 -0
  68. package/mjs/utils/reflection/FunctionLike.d.mts.map +1 -1
  69. package/mjs/utils/reflection/GetterDescriptor.d.mts.map +1 -1
  70. package/mjs/utils/reflection/InstancePropertyDescriptorMap.d.mts.map +1 -1
  71. package/mjs/utils/reflection/InstanceTypeOrSelfPropertyDescriptorMap.d.mts +1 -1
  72. package/mjs/utils/reflection/InstanceTypeOrSelfPropertyDescriptorMap.d.mts.map +1 -1
  73. package/mjs/utils/reflection/OwnGetterDescriptorMap.d.mts +1 -1
  74. package/mjs/utils/reflection/OwnGetterDescriptorMap.d.mts.map +1 -1
  75. package/mjs/utils/reflection/OwnKeyOf.d.mts +1 -1
  76. package/mjs/utils/reflection/OwnKeyOf.d.mts.map +1 -1
  77. package/mjs/utils/reflection/OwnPropertyDescriptorMap.d.mts.map +1 -1
  78. package/mjs/utils/reflection/PropertyDescriptorMap.d.mts +1 -1
  79. package/mjs/utils/reflection/PropertyDescriptorMap.d.mts.map +1 -1
  80. package/mjs/utils/reflection/filterForGetters.d.mts.map +1 -1
  81. package/mjs/utils/reflection/filterForGetters.mjs.map +1 -1
  82. package/mjs/utils/reflection/getOwnPropertyDescriptors.d.mts.map +1 -1
  83. package/mjs/utils/reflection/getOwnPropertyDescriptors.mjs.map +1 -1
  84. package/mjs/utils/reflection/getOwnPropertyDescriptorsRecursively.d.mts.map +1 -1
  85. package/mjs/utils/reflection/getOwnPropertyDescriptorsRecursively.mjs +3 -3
  86. package/mjs/utils/reflection/getOwnPropertyDescriptorsRecursively.mjs.map +1 -1
  87. package/mjs/utils/reflection/getPrototypeChainOf.d.mts +2 -2
  88. package/mjs/utils/reflection/getPrototypeChainOf.d.mts.map +1 -1
  89. package/mjs/utils/reflection/getPrototypeChainOf.mjs +1 -2
  90. package/mjs/utils/reflection/getPrototypeChainOf.mjs.map +1 -1
  91. package/mjs/utils/reflection/getPrototypeOf.d.mts.map +1 -1
  92. package/mjs/utils/reflection/getPrototypeOf.mjs.map +1 -1
  93. package/mjs/utils/reflection/inheritance.d.mts +4 -4
  94. package/mjs/utils/reflection/inheritance.d.mts.map +1 -1
  95. package/mjs/utils/reflection/inheritance.mjs.map +1 -1
  96. package/mjs/utils/reflection/isConstructor.d.mts +3 -3
  97. package/mjs/utils/reflection/isConstructor.d.mts.map +1 -1
  98. package/mjs/utils/reflection/isConstructor.mjs +7 -7
  99. package/mjs/utils/reflection/isConstructor.mjs.map +1 -1
  100. package/mjs/utils/reflection/isGetterDescriptor.d.mts.map +1 -1
  101. package/mjs/utils/reflection/isGetterDescriptor.mjs.map +1 -1
  102. package/mjs/utils/reflection/listOwnGetters.d.mts.map +1 -1
  103. package/mjs/utils/reflection/listOwnGetters.mjs +4 -2
  104. package/mjs/utils/reflection/listOwnGetters.mjs.map +1 -1
  105. package/mjs/utils/reflection.d.mts +1 -1
  106. package/package.json +24 -23
  107. package/src/dotnet/GithubNugetRegistryInfo.ts +18 -15
  108. package/src/dotnet/GitlabNugetRegistryInfo.ts +28 -26
  109. package/src/dotnet/IsNextVersionAlreadyPublished.cli.ts +6 -6
  110. package/src/dotnet/MSBuildProject.ts +103 -106
  111. package/src/dotnet/MSBuildProjectProperties.ts +1 -1
  112. package/src/dotnet/NugetProjectProperties.ts +13 -18
  113. package/src/dotnet/NugetRegistryInfo.ts +287 -243
  114. package/src/dotnet/helpers.ts +58 -58
  115. package/src/insertPlugins.ts +3 -3
  116. package/src/semantic-release__github.d.ts +1 -0
  117. package/src/semanticReleaseConfigDotnet.ts +52 -54
  118. package/src/setupGitPluginSpec.ts +25 -26
  119. package/src/utils/env.ts +1 -0
  120. package/src/utils/execAsync.ts +16 -13
  121. package/src/utils/reflection/FunctionLike.d.ts +1 -0
  122. package/src/utils/reflection/InstancePropertyDescriptorMap.d.ts +4 -4
  123. package/src/utils/reflection/InstanceTypeOrSelfPropertyDescriptorMap.d.ts +6 -6
  124. package/src/utils/reflection/OwnGetterDescriptorMap.d.ts +2 -2
  125. package/src/utils/reflection/OwnKeyOf.d.ts +3 -3
  126. package/src/utils/reflection/OwnPropertyDescriptorMap.d.ts +3 -3
  127. package/src/utils/reflection/PropertyDescriptorMap.d.ts +3 -3
  128. package/src/utils/reflection/filterForGetters.ts +10 -10
  129. package/src/utils/reflection/getOwnPropertyDescriptors.ts +2 -2
  130. package/src/utils/reflection/getOwnPropertyDescriptorsRecursively.ts +13 -13
  131. package/src/utils/reflection/getPrototypeChainOf.ts +17 -17
  132. package/src/utils/reflection/getPrototypeOf.ts +2 -2
  133. package/src/utils/reflection/inheritance.ts +5 -4
  134. package/src/utils/reflection/isConstructor.ts +7 -7
  135. package/src/utils/reflection/listOwnGetters.ts +8 -8
  136. package/tsconfig.base.json +2 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ ## [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)
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
+ * **dotnet.NRI:** add back-off and retry limit to `PackDummyPackage` ([b1eed50](https://github.com/HaloSPV3/HCE.Shared/commit/b1eed508f44d50d57dd3cae8052c66662f20e545))
10
+ * **dotnet.SemanticRelease:** resolve `unicorn/prefer-aggregate-error` ([d5b0676](https://github.com/HaloSPV3/HCE.Shared/commit/d5b0676ab5c85692a4044437e30024c6c5e7238e))
11
+ * ensure `ExecException`s have their `cmd` string ([c85ded5](https://github.com/HaloSPV3/HCE.Shared/commit/c85ded5356b54806e6a4e1a72ea6c14f8a6aa3f1))
12
+ * prefer Yarn unplug this package for access to MSBuild props/targets files ([3191fb9](https://github.com/HaloSPV3/HCE.Shared/commit/3191fb9ead6ba5209dee145c4c576150aa2f8091))
13
+
1
14
  ## [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
15
 
3
16
  ### 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 Condition="'$(RepoRoot)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), '.git/index'))</RepoRoot>
216
- <HCESharedDir Condition="'$(HCESharedDir)' == ''">$(RepoRoot)node_modules/@halospv3/hce.shared-config/</HCESharedDir>
217
- <!--<GitVersion_Path Condition="'$(GitVersion_Path)' == ''">Path/To/Your/GitVersion.yml</GitVersion_Path>-->
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
- > Note: Already included when importing HCE.Shared.targets
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, diff
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`.
@@ -14,7 +14,7 @@ jobs:
14
14
 
15
15
  runs-on: ${{ matrix.os }}
16
16
  steps:
17
- - uses: actions/checkout@v6
17
+ - uses: actions/checkout@v7
18
18
  with:
19
19
  fetch-depth: 0
20
20
  - uses: actions/setup-node@v6
@@ -27,7 +27,7 @@ jobs:
27
27
  ################
28
28
  # SETUP
29
29
  ################
30
- - uses: actions/checkout@v6
30
+ - uses: actions/checkout@v7
31
31
  with:
32
32
  fetch-depth: 0 # Required by GitVersion, Semantic Release
33
33
  submodules: 'recursive' # submodule fetch depth unknown
@@ -9,7 +9,7 @@ jobs:
9
9
  build:
10
10
  runs-on: ubuntu-latest
11
11
  steps:
12
- - uses: actions/checkout@v6
12
+ - uses: actions/checkout@v7
13
13
  with:
14
14
  submodules: 'recursive'
15
15
  fetch-depth: 0
@@ -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(&quot;$(ArtifactsPath)\bin&quot;))" />
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,aAAa;EAEzB,OAAO,MAAM,OAAO,IAAI;;CAG1B,IAAa,KAAuB;EAClC,IAAI,OAAO,QAAQ,UACjB,MAAM,IAAI,aAAa;EAEzB,OAAO,MAAM,IAAI,IAAI;;CAGvB,IAAa,KAAiB;EAC5B,IAAI,OAAO,QAAQ,UACjB,MAAM,IAAI,aAAa;EAEzB,OAAO,MAAM,IAAI,IAAI;;CAGvB,IAAa,KAAQ,OAAgB;EACnC,IAAI,OAAO,QAAQ,UACjB,MAAM,IAAI,aAAa;EAEzB,OAAO,MAAM,IAAI,KAAK,MAAM"}
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,kCAAkC;CAC5C,OAAO;EACL,wBAAwB,CAAC,SAAS;EAClC,0BAA0B,CAAC,SAAS;EACpC,qBAAqB,CAAC,SAAS;EAChC;CACF"}
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,8BAA8B;AAE5D,IAAI,QAAQ,KAAK,MAAK,MAAK,EAAE,SAAS,UAAU,CAAC,IAAI,eAAe,QAAQ,8BAA8B,EACxG,eAAe,OAAO,OAAO,UAAU"}
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":";;;;;;;cAWa,yBAAA;AAAA,cAKA,uBAAA,SAAgC,iBAAA;EAAA,gBAC3B,oBAAA;EAN4C;;;;EAa5D,WAAA,CAAY,IAAA,SAAa,SAAA,CAAU,OAAA;EARxB;;;;;;;EAAA,OAmBJ,iBAAA,CAAA;AAAA;;;;AAcT;;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"}
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 // 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 constructor(opts: typeof GHNRIOpts.inferIn) {\n super(GHNRIOpts.from(opts));\n }\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 = getEnvVarValue('GITHUB_REPOSITORY_OWNER');\n return owner === undefined\n ? undefined\n : `${NUGET_PKG_GITHUB_COM}/${owner}/index.json`;\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 */\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}> = NRIOptsBase.merge({\n /** @see {@link GHNRI.getNugetGitHubUrl } */\n source: NRIOptsBase.get('source')\n .default(() => GHNRI.getNugetGitHubUrl() ?? ''),\n tokenEnvVars: NRIOptsBase.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;AAC7B,MAAa,4BAAmE,OAAO,OAAO,CAC5F,YACA,eACD,CAAC;AAEF,IAAa,0BAAb,cAA6C,kBAAkB;CAC7D,OAAgB,uBAAuB;;;;;CAOvC,YAAY,MAAgC;EAC1C,MAAM,UAAU,KAAK,KAAK,CAAC;;;;;;;;;CAU7B,OAAO,oBAAwC;EAC7C,MAAM,QAAQ,eAAe,0BAA0B;EACvD,OAAO,UAAU,KAAA,IACb,KAAA,IACA,GAAG,qBAAqB,GAAG,MAAM;;;AAGzC,MAAM,QAAQ;;;;;;AAOd,MAAa,YASR,YAAY,MAAM;;CAErB,QAAQ,YAAY,IAAI,SAAS,CAC9B,cAAc,MAAM,mBAAmB,IAAI,GAAG;CACjD,cAAc,YAAY,IAAI,eAAe,CAC1C,cAEyC,0BACzC;CACJ,CAAC"}
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;;AAA7C;;;;aAMa,aAAA,CAAA;;;;;;;aAUA,SAAA,CAAA;;;;;;aASA,OAAA,CAAA;EAAA,gBAIK,yBAAA;;;;;EAUhB,WAAA,CAAY,IAAA,SAAa,SAAA,CAAU,OAAA;EAqCrC;;;;;;;EAAA,WAvBa,UAAA,CAAA,YAAuB,KAAA;;;;;;;aAYvB,QAAA,CAAA,YAAqB,KAAA;AAAA;;;;cAWrB,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"}
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 getEnvVarValue('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 getEnvVarValue('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 getEnvVarValue('CI_PROJECT_NAMESPACE_ID');\n }\n\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 * Creates an instance of GitlabNugetRegistryInfo.\n * @param opts The input type of {@link GLNRIOpts.from}\n */\n constructor(opts: typeof GLNRIOpts.inferIn) {\n const optsOut = GLNRIOpts.from(opts);\n if (isError(optsOut.source))\n throw optsOut.source;\n super(optsOut as typeof optsOut & { source: string });\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}\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 */\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}> = NRIOpts.merge({\n tokenEnvVars: NRIOptsBase.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: NRIOptsBase.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;;;;;;CAM7D,WAAW,gBAAwB;EACjC,OAAO,eAAe,gBAAgB,IAAI;;;;;;;;CAS5C,WAAW,YAAgC;EACzC,OAAO,eAAe,gBAAgB;;;;;;;CAQxC,WAAW,UAA8B;EACvC,OAAO,eAAe,0BAA0B;;CAGlD,OAAgB,4BAAmF,OAAO,OAAO;EAC/G;EACA;EACA;EACD,CAAU;;;;;CAMX,YAAY,MAAgC;EAC1C,MAAM,UAAU,UAAU,KAAK,KAAK;EACpC,IAAI,QAAQ,QAAQ,OAAO,EACzB,MAAM,QAAQ;EAChB,MAAM,QAA+C;;;;;;;;;CAUvD,WAAW,aAA6B;EACtC,OAAO,KAAK,YACR,GAAG,KAAK,cAAc,YAAY,KAAK,UAAU,8CACjD,IAAI,MAAM,2IAA2I;;;;;;;;CAS3J,WAAW,WAA2B;EACpC,OAAO,KAAK,UACR,GAAG,KAAK,cAAc,UAAU,KAAK,QAAQ,gDAC7C,IAAI,MAAM,8EAA8E;;;AAGhG,MAAM,QAAQ;;;;AAKd,MAAa,YASR,QAAQ,MAAM;CACjB,cAAc,YAAY,IAAI,eAAe,CAAC,cACtC,MAAM,0BACb;;;;;;;CAQD,QAAQ,YAAY,IAAI,SAAS,CAC9B,GAAG,kCAA8B,CACjC,MAAM,WAA2C;EAChD,QAAQ,QAAR;GACE,KAAK,SACH,OAAO,MAAM;GAEf,KAAK,WACH,OAAO,MAAM;GAEf,SACE,OAAO;;GAGX,CAAC,cAAc,MAAM,WAAW;CACrC,CAAC"}
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 args = process.argv.slice(2);
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 i = 0; i < args.length; i += 2) {
22
- const argName = args[i];
23
- const argValue = args[i + 1];
24
- if (argValue !== void 0 && argName?.startsWith("--") === true) options[argName.slice(2)] = argValue;
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 args = 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 i = 0; i < args.length; i += 2) {\n const argName = args[i];\n const argValue = args[i + 1];\n if (argValue !== undefined && argName?.startsWith('--') === true) {\n options[argName.slice(2)] = argValue;\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,OAAO,QAAQ,KAAK,MAAM,EAAE;CAElC,MAAM,UAGmC;EAAE,WAAW,KAAA;EAAW,QAAQ,KAAA;EAAW;CACpF,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK,GAAG;EACvC,MAAM,UAAU,KAAK;EACrB,MAAM,WAAW,KAAK,IAAI;EAC1B,IAAI,aAAa,KAAA,KAAa,SAAS,WAAW,KAAK,KAAK,MAC1D,QAAQ,QAAQ,MAAM,EAAE,IAAI;;CAIhC,IAAI,OAAO,QAAQ,cAAc,UAC/B,MAAM,IAAI,MAAM,6BAA6B;CAC/C,IAAI,OAAO,QAAQ,WAAW,UAC5B,MAAM,IAAI,MAAM,0BAA0B;CAE5C,MAAM,YAAY,QAAQ,WACxB,SAAS,QAAQ,QACjB,iCAAiB,IAAI,OAAO,yBAAyB;CACvD,MAAM,WAAW,MAAM,iBAAiB,IAAI,EAAE;CAC9C,MAAM,UAAU,eAAe,KAAK,SAAS,0BAA0B,GAAG;CAC1E,IAAI,YAAY,QAAQ,QAAQ,WAAW,GACzC,MAAM,IAAI,MACR,0HACD;CAEH,MAAM,cAAc,QAAQ;CAC5B,MAAM,cAAc,MAAM,kBAAkB,8BAC1C,QACA,WACA,YACD;CAED,IAAI,OAAO,gBAAgB,WACzB,MAAM,IAAI,MAAM,+BAA+B;CACjD,IAAI,aACF,MAAM,IAAI,MAAM,GAAG,UAAU,GAAG,YAAY,qBAAqB,OAAO,GAAG;CAC7E,QAAQ,IAAI,OAAO,UAAU,GAAG,YAAY,yBAAyB,OAAO,QAAQ;CAEpF,OAAO;;AAGT,IAAI,OAAO,OAAO,KAAK,EACrB,MAAM,MAAM"}
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":"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"}
1
+ {"version":3,"file":"MSBuildProject.d.mts","names":[],"sources":["../../src/dotnet/MSBuildProject.ts"],"mappings":"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"}