@halospv3/hce.shared-config 3.4.5 → 3.4.6-develop.2
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 +16 -0
- package/README.md +1 -1
- package/dotnet/.github/workflows/_unit_test.yml +1 -1
- package/mjs/CaseInsensitiveMap.d.mts +15 -0
- package/mjs/CaseInsensitiveMap.d.mts.map +1 -0
- package/mjs/CaseInsensitiveMap.mjs +2 -33
- package/mjs/CaseInsensitiveMap.mjs.map +1 -1
- package/mjs/commitlintConfig.d.mts +15 -0
- package/mjs/commitlintConfig.d.mts.map +1 -0
- package/mjs/commitlintConfig.mjs +2 -13
- package/mjs/commitlintConfig.mjs.map +1 -1
- package/mjs/debug.d.mts +9 -0
- package/mjs/debug.d.mts.map +1 -0
- package/mjs/debug.mjs +2 -9
- package/mjs/debug.mjs.map +1 -1
- package/mjs/dotnet/GithubNugetRegistryInfo.d.mts +42 -0
- package/mjs/dotnet/GithubNugetRegistryInfo.d.mts.map +1 -0
- package/mjs/dotnet/GithubNugetRegistryInfo.mjs +2 -43
- package/mjs/dotnet/GithubNugetRegistryInfo.mjs.map +1 -1
- package/mjs/dotnet/GitlabNugetRegistryInfo.d.mts +65 -0
- package/mjs/dotnet/GitlabNugetRegistryInfo.d.mts.map +1 -0
- package/mjs/dotnet/GitlabNugetRegistryInfo.mjs +2 -99
- package/mjs/dotnet/GitlabNugetRegistryInfo.mjs.map +1 -1
- package/mjs/dotnet/IsNextVersionAlreadyPublished.cli.d.mts +1 -0
- package/mjs/dotnet/IsNextVersionAlreadyPublished.cli.mjs +2 -44
- package/mjs/dotnet/IsNextVersionAlreadyPublished.cli.mjs.map +1 -1
- package/mjs/dotnet/MSBuildProject.d.mts +267 -0
- package/mjs/dotnet/MSBuildProject.d.mts.map +1 -0
- package/mjs/dotnet/MSBuildProject.mjs +3 -490
- package/mjs/dotnet/MSBuildProject.mjs.map +1 -1
- package/mjs/dotnet/MSBuildProjectProperties.d.mts +172 -0
- package/mjs/dotnet/MSBuildProjectProperties.d.mts.map +1 -0
- package/mjs/dotnet/MSBuildProjectProperties.mjs +2 -260
- package/mjs/dotnet/MSBuildProjectProperties.mjs.map +1 -1
- package/mjs/dotnet/NugetProjectProperties.d.mts +381 -0
- package/mjs/dotnet/NugetProjectProperties.d.mts.map +1 -0
- package/mjs/dotnet/NugetProjectProperties.mjs +2 -577
- package/mjs/dotnet/NugetProjectProperties.mjs.map +1 -1
- package/mjs/dotnet/NugetRegistryInfo.d.mts +387 -0
- package/mjs/dotnet/NugetRegistryInfo.d.mts.map +1 -0
- package/mjs/dotnet/NugetRegistryInfo.mjs +4 -752
- package/mjs/dotnet/NugetRegistryInfo.mjs.map +1 -1
- package/mjs/dotnet/helpers.d.mts +66 -0
- package/mjs/dotnet/helpers.d.mts.map +1 -0
- package/mjs/dotnet/helpers.mjs +2 -354
- package/mjs/dotnet/helpers.mjs.map +1 -1
- package/mjs/dotnet/index.d.mts +8 -0
- package/mjs/dotnet/index.mjs +1 -9
- package/mjs/dotnet.d.mts +8 -0
- package/mjs/dotnet.mjs +1 -9
- package/mjs/eslintConfig.d.mts +7 -0
- package/mjs/eslintConfig.d.mts.map +1 -0
- package/mjs/eslintConfig.mjs +2 -64
- package/mjs/eslintConfig.mjs.map +1 -1
- package/mjs/index.d.mts +2 -0
- package/mjs/index.mjs +1 -4
- package/mjs/insertPlugins.d.mts +22 -0
- package/mjs/insertPlugins.d.mts.map +1 -0
- package/mjs/insertPlugins.mjs +2 -73
- package/mjs/insertPlugins.mjs.map +1 -1
- package/mjs/semantic-release__commit-analyzer.d.mts +44 -0
- package/mjs/semantic-release__commit-analyzer.d.mts.map +1 -0
- package/mjs/semantic-release__exec.d.mts +17 -0
- package/mjs/semantic-release__exec.d.mts.map +1 -0
- package/mjs/semantic-release__git.d.mts +83 -0
- package/mjs/semantic-release__git.d.mts.map +1 -0
- package/mjs/semantic-release__github.d.mts +141 -0
- package/mjs/semantic-release__github.d.mts.map +1 -0
- package/mjs/semanticReleaseConfig.d.mts +94 -0
- package/mjs/semanticReleaseConfig.d.mts.map +1 -0
- package/mjs/semanticReleaseConfig.mjs +2 -63
- package/mjs/semanticReleaseConfig.mjs.map +1 -1
- package/mjs/semanticReleaseConfigDotnet.d.mts +96 -0
- package/mjs/semanticReleaseConfigDotnet.d.mts.map +1 -0
- package/mjs/semanticReleaseConfigDotnet.mjs +7 -274
- package/mjs/semanticReleaseConfigDotnet.mjs.map +1 -1
- package/mjs/setupGitPluginSpec.d.mts +18 -0
- package/mjs/setupGitPluginSpec.d.mts.map +1 -0
- package/mjs/setupGitPluginSpec.default.d.mts +13 -0
- package/mjs/setupGitPluginSpec.default.d.mts.map +1 -0
- package/mjs/setupGitPluginSpec.default.mjs +4 -0
- package/mjs/setupGitPluginSpec.default.mjs.map +1 -0
- package/mjs/setupGitPluginSpec.mjs +2 -144
- package/mjs/setupGitPluginSpec.mjs.map +1 -1
- package/mjs/utils/Exact.d.mts +18 -0
- package/mjs/utils/Exact.d.mts.map +1 -0
- package/mjs/utils/Exact.mjs +2 -75
- package/mjs/utils/Exact.mjs.map +1 -1
- package/mjs/utils/GracefulRecursion.d.mts +14 -0
- package/mjs/utils/GracefulRecursion.d.mts.map +1 -0
- package/mjs/utils/env.d.mts +28 -0
- package/mjs/utils/env.d.mts.map +1 -0
- package/mjs/utils/env.mjs +2 -47
- package/mjs/utils/env.mjs.map +1 -1
- package/mjs/utils/execAsync.d.mts +40 -0
- package/mjs/utils/execAsync.d.mts.map +1 -0
- package/mjs/utils/execAsync.mjs +10 -59
- package/mjs/utils/execAsync.mjs.map +1 -1
- package/mjs/utils/isError.d.mts +14 -0
- package/mjs/utils/isError.d.mts.map +1 -0
- package/mjs/utils/isError.mjs +2 -19
- package/mjs/utils/isError.mjs.map +1 -1
- package/mjs/utils/miscTypes.d.mts +16 -0
- package/mjs/utils/miscTypes.d.mts.map +1 -0
- package/mjs/utils/miscTypes.mjs +2 -10
- package/mjs/utils/miscTypes.mjs.map +1 -1
- package/mjs/utils/reflection/FunctionLike.d.mts +17 -0
- package/mjs/utils/reflection/FunctionLike.d.mts.map +1 -0
- package/mjs/utils/reflection/GetterDescriptor.d.mts +11 -0
- package/mjs/utils/reflection/GetterDescriptor.d.mts.map +1 -0
- package/mjs/utils/reflection/InstancePropertyDescriptorMap.d.mts +26 -0
- package/mjs/utils/reflection/InstancePropertyDescriptorMap.d.mts.map +1 -0
- package/mjs/utils/reflection/InstanceTypeOrSelfPropertyDescriptorMap.d.mts +17 -0
- package/mjs/utils/reflection/InstanceTypeOrSelfPropertyDescriptorMap.d.mts.map +1 -0
- package/mjs/utils/reflection/OwnGetterDescriptorMap.d.mts +18 -0
- package/mjs/utils/reflection/OwnGetterDescriptorMap.d.mts.map +1 -0
- package/mjs/utils/reflection/OwnKeyOf.d.mts +15 -0
- package/mjs/utils/reflection/OwnKeyOf.d.mts.map +1 -0
- package/mjs/utils/reflection/OwnPropertyDescriptorMap.d.mts +15 -0
- package/mjs/utils/reflection/OwnPropertyDescriptorMap.d.mts.map +1 -0
- package/mjs/utils/reflection/PropertyDescriptorMap.d.mts +13 -0
- package/mjs/utils/reflection/PropertyDescriptorMap.d.mts.map +1 -0
- package/mjs/utils/reflection/filterForGetters.d.mts +11 -0
- package/mjs/utils/reflection/filterForGetters.d.mts.map +1 -0
- package/mjs/utils/reflection/filterForGetters.mjs +2 -27
- package/mjs/utils/reflection/filterForGetters.mjs.map +1 -1
- package/mjs/utils/reflection/getOwnPropertyDescriptors.d.mts +26 -0
- package/mjs/utils/reflection/getOwnPropertyDescriptors.d.mts.map +1 -0
- package/mjs/utils/reflection/getOwnPropertyDescriptors.mjs +2 -34
- package/mjs/utils/reflection/getOwnPropertyDescriptors.mjs.map +1 -1
- package/mjs/utils/reflection/getOwnPropertyDescriptorsRecursively.d.mts +51 -0
- package/mjs/utils/reflection/getOwnPropertyDescriptorsRecursively.d.mts.map +1 -0
- package/mjs/utils/reflection/getOwnPropertyDescriptorsRecursively.mjs +2 -72
- package/mjs/utils/reflection/getOwnPropertyDescriptorsRecursively.mjs.map +1 -1
- package/mjs/utils/reflection/getPrototypeChainOf.d.mts +19 -0
- package/mjs/utils/reflection/getPrototypeChainOf.d.mts.map +1 -0
- package/mjs/utils/reflection/getPrototypeChainOf.mjs +2 -55
- package/mjs/utils/reflection/getPrototypeChainOf.mjs.map +1 -1
- package/mjs/utils/reflection/getPrototypeOf.d.mts +12 -0
- package/mjs/utils/reflection/getPrototypeOf.d.mts.map +1 -0
- package/mjs/utils/reflection/getPrototypeOf.mjs +2 -10
- package/mjs/utils/reflection/getPrototypeOf.mjs.map +1 -1
- package/mjs/utils/reflection/inheritance.d.mts +173 -0
- package/mjs/utils/reflection/inheritance.d.mts.map +1 -0
- package/mjs/utils/reflection/inheritance.mjs +2 -148
- package/mjs/utils/reflection/inheritance.mjs.map +1 -1
- package/mjs/utils/reflection/isConstructor.d.mts +20 -0
- package/mjs/utils/reflection/isConstructor.d.mts.map +1 -0
- package/mjs/utils/reflection/isConstructor.mjs +2 -63
- package/mjs/utils/reflection/isConstructor.mjs.map +1 -1
- package/mjs/utils/reflection/isGetterDescriptor.d.mts +13 -0
- package/mjs/utils/reflection/isGetterDescriptor.d.mts.map +1 -0
- package/mjs/utils/reflection/isGetterDescriptor.mjs +2 -12
- package/mjs/utils/reflection/isGetterDescriptor.mjs.map +1 -1
- package/mjs/utils/reflection/listOwnGetters.d.mts +29 -0
- package/mjs/utils/reflection/listOwnGetters.d.mts.map +1 -0
- package/mjs/utils/reflection/listOwnGetters.mjs +2 -39
- package/mjs/utils/reflection/listOwnGetters.mjs.map +1 -1
- package/mjs/utils/reflection.d.mts +18 -0
- package/mjs/utils/reflection.mjs +1 -10
- package/package.json +102 -65
- package/src/debug.ts +1 -0
- package/src/dotnet/GithubNugetRegistryInfo.ts +4 -4
- package/src/dotnet/GitlabNugetRegistryInfo.ts +5 -5
- package/src/dotnet/IsNextVersionAlreadyPublished.cli.ts +2 -1
- package/src/dotnet/MSBuildProject.ts +8 -7
- package/src/dotnet/MSBuildProjectProperties.ts +4 -3
- package/src/dotnet/NugetProjectProperties.ts +4 -4
- package/src/dotnet/NugetRegistryInfo.ts +9 -8
- package/src/dotnet/helpers.ts +5 -4
- package/src/dotnet/index.ts +8 -8
- package/src/dotnet.ts +1 -1
- package/src/index.ts +1 -1
- package/src/semanticReleaseConfig.ts +5 -1
- package/src/semanticReleaseConfigDotnet.ts +10 -8
- package/src/setupGitPluginSpec.default.ts +22 -0
- package/src/setupGitPluginSpec.ts +4 -21
- package/src/tsconfig.json +1 -2
- package/src/utils/execAsync.ts +1 -1
- package/src/utils/reflection/InstancePropertyDescriptorMap.d.ts +1 -1
- package/src/utils/reflection/InstanceTypeOrSelfPropertyDescriptorMap.d.ts +2 -2
- package/src/utils/reflection/OwnGetterDescriptorMap.d.ts +2 -2
- package/src/utils/reflection/filterForGetters.ts +5 -5
- package/src/utils/reflection/getOwnPropertyDescriptors.ts +4 -4
- package/src/utils/reflection/getOwnPropertyDescriptorsRecursively.ts +12 -12
- package/src/utils/reflection/getPrototypeChainOf.ts +5 -5
- package/src/utils/reflection/getPrototypeOf.ts +1 -1
- package/src/utils/reflection/inheritance.ts +5 -5
- package/src/utils/reflection/isGetterDescriptor.ts +1 -1
- package/src/utils/reflection/listOwnGetters.ts +6 -6
- package/src/utils/reflection.ts +17 -17
- package/tsconfig.base.json +2 -2
- package/mjs/CaseInsensitiveMap.d.ts +0 -12
- package/mjs/CaseInsensitiveMap.d.ts.map +0 -1
- package/mjs/commitlintConfig.d.ts +0 -12
- package/mjs/commitlintConfig.d.ts.map +0 -1
- package/mjs/debug.d.ts +0 -6
- package/mjs/debug.d.ts.map +0 -1
- package/mjs/dotnet/GithubNugetRegistryInfo.d.ts +0 -38
- package/mjs/dotnet/GithubNugetRegistryInfo.d.ts.map +0 -1
- package/mjs/dotnet/GitlabNugetRegistryInfo.d.ts +0 -61
- package/mjs/dotnet/GitlabNugetRegistryInfo.d.ts.map +0 -1
- package/mjs/dotnet/IsNextVersionAlreadyPublished.cli.d.ts +0 -2
- package/mjs/dotnet/IsNextVersionAlreadyPublished.cli.d.ts.map +0 -1
- package/mjs/dotnet/MSBuildProject.d.ts +0 -264
- package/mjs/dotnet/MSBuildProject.d.ts.map +0 -1
- package/mjs/dotnet/MSBuildProjectProperties.d.ts +0 -170
- package/mjs/dotnet/MSBuildProjectProperties.d.ts.map +0 -1
- package/mjs/dotnet/NugetProjectProperties.d.ts +0 -379
- package/mjs/dotnet/NugetProjectProperties.d.ts.map +0 -1
- package/mjs/dotnet/NugetRegistryInfo.d.ts +0 -384
- package/mjs/dotnet/NugetRegistryInfo.d.ts.map +0 -1
- package/mjs/dotnet/helpers.d.ts +0 -63
- package/mjs/dotnet/helpers.d.ts.map +0 -1
- package/mjs/dotnet/index.d.ts +0 -9
- package/mjs/dotnet/index.d.ts.map +0 -1
- package/mjs/dotnet/index.mjs.map +0 -1
- package/mjs/dotnet.d.ts +0 -2
- package/mjs/dotnet.d.ts.map +0 -1
- package/mjs/dotnet.mjs.map +0 -1
- package/mjs/eslintConfig.d.ts +0 -4
- package/mjs/eslintConfig.d.ts.map +0 -1
- package/mjs/index.d.ts +0 -3
- package/mjs/index.d.ts.map +0 -1
- package/mjs/index.mjs.map +0 -1
- package/mjs/insertPlugins.d.ts +0 -18
- package/mjs/insertPlugins.d.ts.map +0 -1
- package/mjs/semantic-release__commit-analyzer.d.mjs +0 -2
- package/mjs/semantic-release__commit-analyzer.d.mjs.map +0 -1
- package/mjs/semantic-release__exec.d.mjs +0 -2
- package/mjs/semantic-release__exec.d.mjs.map +0 -1
- package/mjs/semantic-release__git.d.mjs +0 -2
- package/mjs/semantic-release__git.d.mjs.map +0 -1
- package/mjs/semantic-release__github.d.mjs +0 -2
- package/mjs/semantic-release__github.d.mjs.map +0 -1
- package/mjs/semanticReleaseConfig.d.ts +0 -97
- package/mjs/semanticReleaseConfig.d.ts.map +0 -1
- package/mjs/semanticReleaseConfigDotnet.d.ts +0 -112
- package/mjs/semanticReleaseConfigDotnet.d.ts.map +0 -1
- package/mjs/setupGitPluginSpec.d.ts +0 -22
- package/mjs/setupGitPluginSpec.d.ts.map +0 -1
- package/mjs/utils/Exact.d.ts +0 -20
- package/mjs/utils/Exact.d.ts.map +0 -1
- package/mjs/utils/GracefulRecursion.d.mjs +0 -2
- package/mjs/utils/GracefulRecursion.d.mjs.map +0 -1
- package/mjs/utils/env.d.ts +0 -24
- package/mjs/utils/env.d.ts.map +0 -1
- package/mjs/utils/execAsync.d.ts +0 -37
- package/mjs/utils/execAsync.d.ts.map +0 -1
- package/mjs/utils/isError.d.ts +0 -11
- package/mjs/utils/isError.d.ts.map +0 -1
- package/mjs/utils/miscTypes.d.ts +0 -12
- package/mjs/utils/miscTypes.d.ts.map +0 -1
- package/mjs/utils/reflection/FunctionLike.d.mjs +0 -2
- package/mjs/utils/reflection/FunctionLike.d.mjs.map +0 -1
- package/mjs/utils/reflection/GetterDescriptor.d.mjs +0 -2
- package/mjs/utils/reflection/GetterDescriptor.d.mjs.map +0 -1
- package/mjs/utils/reflection/InstancePropertyDescriptorMap.d.mjs +0 -2
- package/mjs/utils/reflection/InstancePropertyDescriptorMap.d.mjs.map +0 -1
- package/mjs/utils/reflection/InstanceTypeOrSelfPropertyDescriptorMap.d.mjs +0 -2
- package/mjs/utils/reflection/InstanceTypeOrSelfPropertyDescriptorMap.d.mjs.map +0 -1
- package/mjs/utils/reflection/OwnGetterDescriptorMap.d.mjs +0 -2
- package/mjs/utils/reflection/OwnGetterDescriptorMap.d.mjs.map +0 -1
- package/mjs/utils/reflection/OwnKeyOf.d.mjs +0 -2
- package/mjs/utils/reflection/OwnKeyOf.d.mjs.map +0 -1
- package/mjs/utils/reflection/OwnPropertyDescriptorMap.d.mjs +0 -2
- package/mjs/utils/reflection/OwnPropertyDescriptorMap.d.mjs.map +0 -1
- package/mjs/utils/reflection/PropertyDescriptorMap.d.mjs +0 -2
- package/mjs/utils/reflection/PropertyDescriptorMap.d.mjs.map +0 -1
- package/mjs/utils/reflection/filterForGetters.d.ts +0 -7
- package/mjs/utils/reflection/filterForGetters.d.ts.map +0 -1
- package/mjs/utils/reflection/getOwnPropertyDescriptors.d.ts +0 -22
- package/mjs/utils/reflection/getOwnPropertyDescriptors.d.ts.map +0 -1
- package/mjs/utils/reflection/getOwnPropertyDescriptorsRecursively.d.ts +0 -56
- package/mjs/utils/reflection/getOwnPropertyDescriptorsRecursively.d.ts.map +0 -1
- package/mjs/utils/reflection/getPrototypeChainOf.d.ts +0 -16
- package/mjs/utils/reflection/getPrototypeChainOf.d.ts.map +0 -1
- package/mjs/utils/reflection/getPrototypeOf.d.ts +0 -8
- package/mjs/utils/reflection/getPrototypeOf.d.ts.map +0 -1
- package/mjs/utils/reflection/inheritance.d.ts +0 -180
- package/mjs/utils/reflection/inheritance.d.ts.map +0 -1
- package/mjs/utils/reflection/isConstructor.d.ts +0 -17
- package/mjs/utils/reflection/isConstructor.d.ts.map +0 -1
- package/mjs/utils/reflection/isGetterDescriptor.d.ts +0 -9
- package/mjs/utils/reflection/isGetterDescriptor.d.ts.map +0 -1
- package/mjs/utils/reflection/listOwnGetters.d.ts +0 -26
- package/mjs/utils/reflection/listOwnGetters.d.ts.map +0 -1
- package/mjs/utils/reflection.d.ts +0 -18
- package/mjs/utils/reflection.d.ts.map +0 -1
- package/mjs/utils/reflection.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.mjs","sources":["../../src/dotnet/helpers.ts"],"names":["path","MSBPP"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.mjs","names":["MSBPP"],"sources":["../../src/dotnet/helpers.ts"],"sourcesContent":["import { type, type Type } from 'arktype';\n// eslint-disable-next-line unicorn/import-style\nimport * as path from 'node:path';\nimport { cwd } from 'node:process';\nimport { MSBuildProject } from './MSBuildProject.ts';\nimport { MSBuildProjectProperties as MSBPP } from './MSBuildProjectProperties.ts';\nimport { NugetRegistryInfo } from './NugetRegistryInfo.ts';\nimport type { Default } from 'arktype/internal/attributes.ts';\n\nconst ourDefaultPubDir = path.join('.', 'publish') as `.${'/' | '\\\\'}publish`;\n\n/**\n * Build a prepareCmd string from .NET projects.\\\n * This will include a `dotnet publish` for each project's RID and TFM permutation,\\\n * `dotnet pack` for each project with output paths separated by NuGet Source and PackageId,\\\n * and `dotnet nuget sign` for each nupkg output directory.\n * @todo parse Solution files to publish all projects with default Publish parameters (as evaluated by MSBuild).\n * @param projectsToPublish An array of relative or full file paths of `.csproj`\n * projects -OR- an array of {@link MSBuildProject} objects.\n * The project paths will be passed to `dotnet publish` commands.\n * @param projectsToPackAndPush\n * Relative and/or full file paths of projects to pass to `dotnet pack`. If\n * string[], only the default NuGet Source will be used. If GitHub, GitLab,\n * etc. are also desired, pass {@link NugetRegistryInfo}[]\n * @param dotnetNugetSignOpts A {@link DotnetNugetSignOptions} object. The value\n * of the `--output` argument will be set to {@link ourDefaultPubDir} if `undefined`.\n * @returns A single string of CLI commands joined by ' && '\n */\nexport async function configurePrepareCmd(\n projectsToPublish: string[] | MSBuildProject[],\n projectsToPackAndPush?: string[] | NugetRegistryInfo[],\n dotnetNugetSignOpts?: typeof DotnetNugetSignOptions.inferIn,\n): Promise<string> {\n const evaluatedProjects: MSBuildProject[] = [];\n\n // append evaluated projects\n for (const p of projectsToPublish.filter(p => p instanceof MSBuildProject)) {\n evaluatedProjects.push(p);\n }\n if (projectsToPackAndPush) {\n for (const p of projectsToPackAndPush.filter(p => p instanceof NugetRegistryInfo)) {\n evaluatedProjects.push(p.project);\n }\n }\n\n const dotnetPublishCmd: string = await formatDotnetPublish(projectsToPublish);\n const dotnetPackCmd: string | undefined = await formatDotnetPack(projectsToPackAndPush ?? []);\n const dotnetNugetSignCmd: string | undefined = formatDotnetNugetSign(dotnetNugetSignOpts);\n\n return [\n dotnetPublishCmd,\n dotnetPackCmd,\n dotnetNugetSignCmd,\n // remove no-op commands\n ]\n .filter(v => v !== undefined)\n .join(' && ');\n\n /**\n * Create a string of CLI commands to run `dotnet publish` or the Publish\n * MSBuild target for one or more projects.\n * @async\n * @param projectsToPublish An array of one or more projects, either\n * pre-evaluated (see {@link MSBuildProject.Evaluate}) or as full file paths.\\\n * NOTE: Although `dotnet publish` allows directory or Solution file (.sln,\n * .slnx) paths, this function expects projects' full or relative file\n * paths.\n * @returns A Promise of a string. This string contains one or more `dotnet publish`\n * commands conjoined by \" && \". It may also include one or more\n * `dotnet msbuild ${...} -t:PublishAll -p:Configuration=Release` commands.\n */\n async function formatDotnetPublish(\n projectsToPublish: string[] | MSBuildProject[],\n ): Promise<string> {\n /* Fun Fact: You can define a property and get the evaluated value in the same command!\n ```pwsh\n dotnet msbuild .\\src\\HXE.csproj -property:RuntimeIdentifiers=\"\"\"place;holder\"\"\" -getProperty:RuntimeIdentifiers\n place;holder\n ```\n enclosing with \"\"\" is required in pwsh to prevent the semicolon from breaking the string.\n */\n if (!Array.isArray(projectsToPublish) || projectsToPublish.length === 0) {\n throw new Error(\n `Type of projectsToPublish (${typeof projectsToPublish}) is not allowed. Expected a string[] or MSBuildProject[] where length > 0.`,\n );\n }\n\n // each may have TargetFramework OR TargetFrameworks (plural)\n const evaluatedPublishProjects: MSBuildProject[] = await Promise.all(\n projectsToPublish.map(async (proj): Promise<MSBuildProject> => {\n if (proj instanceof MSBuildProject)\n return proj;\n\n // filter for projects whose full paths match the full path of the given string\n const filteredProjects = evaluatedProjects.filter(p =>\n p.Properties.MSBuildProjectFullPath === MSBPP.GetFullPath(proj),\n );\n\n // if no pre-existing MSBuildProject found,\n // evaluate a new one and push it\n if (filteredProjects.length === 0) {\n const _proj = await MSBuildProject.Evaluate({\n FullName: proj,\n GetProperty: MSBuildProject.MatrixProperties,\n GetItem: [],\n GetTargetResult: [],\n Property: {},\n Targets: ['Restore'],\n });\n evaluatedProjects.push(_proj);\n return _proj;\n }\n\n /**\n * Finds and returns the subjectively \"best\" project in {@link filteredProjects}\n * @returns the subjective \"best\" project in {@link filteredProjects}\n */\n function getBest() {\n let best: MSBuildProject | undefined;\n if (filteredProjects.length > 0 && (best = filteredProjects[0]) instanceof MSBuildProject)\n return best;\n throw new Error('No MSBuildProjects could be found!');\n }\n\n /*\n todo: improve filtering to select \"optimal\" instance.\n Which properties are most-needed?\n For now, we just pray the project has a well-defined publish flow e.g.\n @halospv3/hce.shared-config/dotnet/PublishAll.targets\n */\n return getBest();\n }),\n );\n\n /**\n * Returns an array of one or more `dotnet` arguments.\n * @param proj An {@link MSBuildProject} to be published for one or more\n * runtime-framework combinations.\n * @returns If {@link proj} imports {@link ../../dotnet/PublishAll.targets}...\n * ```\n * [`${proj.Properties.MSBuildProjectFullPath} -t:PublishAll -p:Configuration=Release`]\n * ```\n * Else, an array of `dotnet publish` arguments permutations e.g.\n * ```\n * [\n * 'myProj.csproj --runtime win7-x86 --framework net6.0',\n * 'myProj.csproj --runtime win7-x64 --framework net6.0'\n * ]\n * ```\n * @example\n * const publishCmdArray = [];\n * const permutations = getPublishArgsPermutations(msbuildProject);\n * for (const permutation of permutations) {\n * if (permutation[0] === 'PublishAll') {\n * // 'dotnet msbuild full/path/to/myProj.csproj t:PublishAll'\n * publishCmdArray.push(`dotnet msbuild ${permutation[1]}`)\n * }\n * else {\n * publishCmdArray.push(`dotnet publish ${permutation}`)\n * }\n * }\n * // return array as success-chained CLI commands.\n * return publishCmdArray.join(' && ');\n */\n function getPublishArgsPermutations(proj: MSBuildProject):\n ([`\"${typeof proj.Properties.MSBuildProjectFullPath}\" -t:PublishAll -p:Configuration=Release`])\n | ([`\"${typeof proj.Properties.MSBuildProjectFullPath}\"`])\n | (`\"${typeof proj.Properties.MSBuildProjectFullPath}\" --runtime ${string} --framework ${string}`)[]\n | (`\"${typeof proj.Properties.MSBuildProjectFullPath}\" --runtime ${string}`)[]\n | (`\"${typeof proj.Properties.MSBuildProjectFullPath}\" --framework ${string}`)[] {\n /**\n * If the project imports PublishAll to publish for each TFM-RID\n * permutation, return the appropriate command line.\n */\n if (proj.Targets.includes('PublishAll'))\n return [`\"${proj.Properties.MSBuildProjectFullPath}\" -t:PublishAll -p:Configuration=Release`];\n\n // #region formatFrameworksAndRuntimes\n const tfmRidPermutations: `--runtime ${string} --framework ${string}`[]\n | `--runtime ${string}`[]\n | `--framework ${string}`[]\n = []; // forEach, run dotnet [proj.Properties.MSBuildProjectFullPath,...v]\n const RIDs: string[] = proj.Properties.RuntimeIdentifiers.split(';').filter(v => v !== '');\n const TFMs: string[] = proj.Properties.TargetFrameworks.split(';').filter(v => v !== '');\n\n if (TFMs.length === 0 && RIDs.length === 0)\n return [`\"${proj.Properties.MSBuildProjectFullPath}\"`] as [`\"${string}\"`];\n\n if (RIDs.length > 0) {\n if (TFMs.length > 0) {\n for (const RID of RIDs) {\n for (const TFM of TFMs) {\n (tfmRidPermutations as `--runtime ${string} --framework ${string}`[]).push(\n `--runtime ${RID} --framework ${TFM}`,\n );\n }\n }\n }\n else {\n // assume singular TFM. No need to specify it.\n for (const RID of RIDs) {\n (tfmRidPermutations as `--runtime ${string}`[]).push(\n `--runtime ${RID}`,\n );\n }\n }\n }\n else if (TFMs.length > 0) {\n for (const TFM of TFMs) {\n (tfmRidPermutations as `--framework ${string}`[]).push(`--framework ${TFM}`);\n }\n }\n\n /** prepend each set of args with the project's path */\n return tfmRidPermutations.map(permArgs =>\n `\"${proj.Properties.MSBuildProjectFullPath}\" ${permArgs}`,\n ) as `\"${typeof proj.Properties.MSBuildProjectFullPath}\" --runtime ${string} --framework ${string}`[]\n | `\"${typeof proj.Properties.MSBuildProjectFullPath}\" --runtime ${string}`[]\n | `\"${typeof proj.Properties.MSBuildProjectFullPath}\" --framework ${string}`[];\n // #endregion formatFrameworksAndRuntimes\n }\n\n const publishCmds: (`dotnet publish \"${string}\"` | `dotnet publish \"${string}\" ${string}` | `dotnet msbuild \"${string}\" -t:PublishAll -p:Configuration=Release`)[] = [];\n /** convert {@link evaluatedPublishProjects} to sets of space-separated CLI args. */\n const argsSets = evaluatedPublishProjects.map(\n proj => getPublishArgsPermutations(proj),\n );\n for (const args of argsSets) {\n if (typeof args === 'string')\n throw new Error(`\\`args\\` should not be a string!`);\n for (const permutation of args) {\n if (typeof permutation === 'string' && permutation.length === 1)\n throw new Error('Something has gone terribly wrong. A `dotnet publish` argument set was split to single characters!');\n if (/\".+\" -t:PublishAll -p:Configuration=Release/.test(permutation))\n publishCmds.push(`dotnet msbuild ${permutation as `\"${string}\" -t:PublishAll -p:Configuration=Release`}`);\n else\n publishCmds.push(`dotnet publish ${permutation}`);\n }\n }\n\n // For each argSet, create a new exec command. Then, join all commands with ' && ' so they are executed serially, synchronously.\n // e.g. `dotnet publish project.csproj --runtime win7-x86 --framework net6.0 && dotnet publish project.csproj --runtime win-x64 --framework net8.0\n return publishCmds.join(' && ');\n }\n\n /**\n * @param projectsToPackAndPush a string[] or {@link NugetRegistryInfo}[].\n * If a string[], the string must be the platform-dependent (not file://),\n * full path(s) to one or more projects with the .NET \"Pack\" MSBuild target.\n * See {@link https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-pack}\n * for command line usage.\n * @returns one or more command line strings joined with ' && '.\n * Each command line comprises the `dotnet pack` command, a project file path,\n * and a hardcoded output path (`--output ${cwd()}/publish`)\n */\n async function formatDotnetPack(\n projectsToPackAndPush: string[] | NugetRegistryInfo[],\n ): Promise<string | undefined> {\n if (projectsToPackAndPush.length === 0)\n return undefined;\n return await Promise.all(\n projectsToPackAndPush.map(async (proj) => {\n if (proj instanceof NugetRegistryInfo)\n return proj;\n\n const msbpArr: MSBuildProject[] = await Promise.all(await MSBuildProject.PackableProjectsToMSBuildProjects([proj]));\n if (msbpArr.length === 0 || msbpArr[0] === undefined) {\n throw new Error('This should be impossible!');\n }\n const msbp: MSBuildProject = msbpArr[0];\n\n evaluatedProjects.push(msbp);\n\n return new NugetRegistryInfo({ project: msbp });\n }),\n ).then((nriArray: NugetRegistryInfo[]): string => {\n return nriArray\n .map((nri: NugetRegistryInfo): string =>\n nri.GetPackCommand(NugetRegistryInfo.PackPackagesOptionsType.from({})),\n ).join(' && ');\n });\n }\n}\n\n/**\n * Prepare the CLI command to push NuGet packages. This should added to the `publishCmd` option of `@semantic-release/exec`\n *\n * Ensure your verifyConditionsCmd is set to prevent releases failing due to bad tokens or packages!\n * See {@link NugetRegistryInfo#PackDummyPackage}, {@link NugetRegistryInfo#GetPushDummyCommand}\n * @param registryInfos an array of {@link NugetRegistryInfo} (or derived classes) instances.\n * @param packageOutputPath Default: `${cwd()}/publish`.\\\n * The directory at which dotnet outputs the given projects' packages. Passed to\n * `dotnet pack` via the `--output` argument.\n * @returns a string of `dotnet pack` and `dotnet push` commands, joined by ' && '.\n */\nexport function configureDotnetNugetPush(\n registryInfos: NugetRegistryInfo[],\n // Explicit type required by JSR\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\n packageOutputPath: string = `${cwd()}/publish`,\n): string {\n if (registryInfos.some(registry => registry.source.trim() === ''))\n throw new Error('The URL for one of the provided NuGet registries was empty or whitespace.');\n\n const packCmds = registryInfos.map(\n (nri): string =>\n nri.GetPackCommand(\n { output: packageOutputPath },\n true,\n true,\n ),\n );\n\n const pushCmds = registryInfos.map(nri => nri.GetPushCommand({ root: packageOutputPath }, true, true));\n\n return [...packCmds, ...pushCmds].join(' && ');\n}\n\n/**\n * You should try {@link ../../dotnet/SignAfterPack.targets}!.\n * @param opts A {@link DotnetNugetSignOptions} object to be deconstructed and\n * passed to `dotnet nuget sign` as args.\n * @returns `dotnet nuget sign {...}`\n */\nfunction formatDotnetNugetSign(\n opts: typeof DotnetNugetSignOptions.inferIn | undefined,\n): string | undefined {\n if (opts === undefined)\n return undefined;\n\n const validOpts = DotnetNugetSignOptions.from(opts);\n const args: ['--timestamper', typeof validOpts.timestamper, '-o', string, ...string[]] = [\n '--timestamper', validOpts.timestamper,\n '-o', validOpts.output ?? ourDefaultPubDir,\n ];\n if (validOpts.certificatePassword)\n args.push('---certificate-password', validOpts.certificatePassword);\n if (validOpts.hashAlgorithm)\n args.push('--hash-algorithm', validOpts.hashAlgorithm);\n if (validOpts.overwrite)\n args.push('--overwrite');\n if (validOpts.timestampHashAlgorithm)\n args.push('--timestamp-hash-algorithm', validOpts.timestampHashAlgorithm);\n if (validOpts.verbosity)\n args.push('-v', validOpts.verbosity);\n\n if ('certificatePath' in validOpts)\n args.push('--certificate-path', validOpts.certificatePath);\n else if ('certificateStoreName' in validOpts) {\n SetSubjectNameOrFingerprint();\n args.push('--certificate-store-name', validOpts.certificateStoreName);\n }\n else if ('certificateStoreLocation' in validOpts) {\n SetSubjectNameOrFingerprint();\n args.push('--certificate-store-location', validOpts.certificateStoreLocation);\n }\n else throw new Error('No code signing certificate was specified!');\n\n return `dotnet nuget sign ${args.join(' ')} `;\n\n // eslint-disable-next-line jsdoc/require-jsdoc\n function SetSubjectNameOrFingerprint() {\n if ('certificateSubjectName' in validOpts)\n args.push('--certificate-subject-name', validOpts.certificateSubjectName);\n\n else if ('certificateFingerprint' in validOpts)\n args.push('--certificate-fingerprint', validOpts.certificateFingerprint);\n else throw new Error('If certificateStoreName or certificateStoreLocation is set, either certificateSubjectName or certificateFingerprint must also be set!');\n }\n}\n\nconst DotnetNugetSignOptions: Type<\n {\n timestamper: Default<string, 'https://rfc3161.ai.moda/'>;\n certificatePassword?: string | undefined;\n hashAlgorithm?: string | undefined;\n output?: string | undefined;\n overwrite?: true | undefined;\n timestampHashAlgorithm?: string | undefined;\n verbosity?: 'q' | 'quiet' | 'm' | 'minimal' | 'n' | 'normal' | 'd' | 'detailed' | 'diag' | 'diagnostic';\n } & ({\n certificatePath: string;\n certificateSubjectName: string;\n } | {\n certificatePath: string;\n certificateFingerprint: string;\n } | {\n certificateStoreName: string;\n certificateSubjectName: string;\n } | {\n certificateStoreName: string;\n certificateFingerprint: string;\n } | {\n certificateStoreLocation: string;\n certificateSubjectName: string;\n } | {\n certificateStoreLocation: string;\n certificateFingerprint: string;\n })> = type({\n /**\n * Password for the certificate, if needed. This option can be used to specify\n * the password for the certificate. The command will throw an error message\n * if certificate is password protected but password is not provided as input.\n */\n 'certificatePassword?': 'string',\n /**\n * Hash algorithm to be used to sign the package. Defaults to SHA256.\n */\n 'hashAlgorithm?': 'string | \"SHA256\"',\n /**\n * Directory where the signed package(s) should be saved. By default the\n * original package is overwritten by the signed package.\n */\n 'output?': 'string',\n /**\n * Switch to indicate if the current signature should be overwritten. By\n * default the command will fail if the package already has a signature.\n */\n 'overwrite?': 'true',\n /**\n * URL to an RFC 3161 timestamping server.\n */\n timestamper: 'string = \"https://rfc3161.ai.moda/\"',\n /**\n * Hash algorithm to be used to sign the package. Defaults to SHA256.\n */\n 'timestampHashAlgorithm?': 'string | \"SHA256\"',\n /**\n * Set the verbosity level of the command. Allowed values are q[uiet],\n * m[inimal], n[ormal], d[etailed], and diag[nostic].\n */\n 'verbosity?': '\"q\"|\"quiet\"|\"m\"|\"minimal\"|\"n\"|\"normal\"|\"d\"|\"detailed\"|\"diag\"|\"diagnostic\"',\n}).and(\n type({\n /**\n * File path to the certificate to be used while signing the package.\n */\n certificatePath: 'string',\n }).or(\n type({\n /**\n * Name of the X.509 certificate store to use to search for the\n * certificate. Defaults to \"My\", the X.509 certificate store for personal\n * certificates.\n *\n * This option should be used when specifying the certificate via\n * --certificate-subject-name or --certificate-fingerprint options.\n */\n certificateStoreName: 'string',\n }).or({\n /**\n * Name of the X.509 certificate store use to search for the\n * certificate. Defaults to \"CurrentUser\", the X.509 certificate store\n * used by the current user.\n *\n * This option should be used when specifying the certificate via\n * --certificate-subject-name or --certificate-fingerprint options.\n */\n certificateStoreLocation: 'string',\n }),\n ).and(\n type({\n /**\n * Subject name of the certificate used to search a local certificate\n * store for the certificate. The search is a case-insensitive string\n * comparison using the supplied value, which will find all certificates\n * with the subject name containing that string, regardless of other\n * subject values. The certificate store can be specified by\n * --certificate-store-name and --certificate-store-location options.\n */\n certificateSubjectName: 'string',\n }).or({\n /**\n * SHA-256, SHA-384 or SHA-512 fingerprint of the certificate used to\n * search a local certificate store for the certificate. The certificate\n * store can be specified by --certificate-store-name and\n * --certificate-store-location options.\n */\n certificateFingerprint: 'string',\n }),\n ),\n);\n"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Class_MSBPP, MSBuildProjectProperties } from "./MSBuildProjectProperties.mjs";
|
|
2
|
+
import { Class_NPP, NPPGetterNames, NugetProjectProperties } from "./NugetProjectProperties.mjs";
|
|
3
|
+
import { EvaluationOptions, MSBuildEvaluationOutput, MSBuildProject, _InternalMSBuildEvaluationTypes, catchCsc2012, catchEBUSY } from "./MSBuildProject.mjs";
|
|
4
|
+
import { NRIOpts, NRIOptsBase, NugetRegistryInfo, getGithubOutput, getGithubOutputSync } from "./NugetRegistryInfo.mjs";
|
|
5
|
+
import { DefaultGithubTokenEnvVars, GHNRIOpts, GithubNugetRegistryInfo } from "./GithubNugetRegistryInfo.mjs";
|
|
6
|
+
import { GLNRIOpts, GitlabNugetRegistryInfo } from "./GitlabNugetRegistryInfo.mjs";
|
|
7
|
+
import { configureDotnetNugetPush, configurePrepareCmd } from "./helpers.mjs";
|
|
8
|
+
export { Class_MSBPP, Class_NPP, DefaultGithubTokenEnvVars, EvaluationOptions, GHNRIOpts, GLNRIOpts, GithubNugetRegistryInfo, GitlabNugetRegistryInfo, MSBuildEvaluationOutput, MSBuildProject, MSBuildProjectProperties, NPPGetterNames, NRIOpts, NRIOptsBase, NugetProjectProperties, NugetRegistryInfo, _InternalMSBuildEvaluationTypes, catchCsc2012, catchEBUSY, configureDotnetNugetPush, configurePrepareCmd, getGithubOutput, getGithubOutputSync };
|
package/mjs/dotnet/index.mjs
CHANGED
|
@@ -1,9 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { GLNRIOpts, GitlabNugetRegistryInfo } from './GitlabNugetRegistryInfo.mjs';
|
|
3
|
-
export { configureDotnetNugetPush, configurePrepareCmd } from './helpers.mjs';
|
|
4
|
-
import './IsNextVersionAlreadyPublished.cli.mjs';
|
|
5
|
-
export { EvaluationOptions, MSBuildEvaluationOutput, MSBuildProject, _InternalMSBuildEvaluationTypes, catchCsc2012, catchEBUSY } from './MSBuildProject.mjs';
|
|
6
|
-
export { MSBuildProjectProperties } from './MSBuildProjectProperties.mjs';
|
|
7
|
-
export { NPPGetterNames, NugetProjectProperties } from './NugetProjectProperties.mjs';
|
|
8
|
-
export { NRIOpts, NRIOptsBase, NugetRegistryInfo, getGithubOutput, getGithubOutputSync } from './NugetRegistryInfo.mjs';
|
|
9
|
-
//# sourceMappingURL=index.mjs.map
|
|
1
|
+
import{MSBuildProjectProperties as e}from"./MSBuildProjectProperties.mjs";import{NPPGetterNames as t,NugetProjectProperties as n}from"./NugetProjectProperties.mjs";import{EvaluationOptions as r,MSBuildEvaluationOutput as i,MSBuildProject as a,_InternalMSBuildEvaluationTypes as o,catchCsc2012 as s,catchEBUSY as c}from"./MSBuildProject.mjs";import{NRIOpts as l,NRIOptsBase as u,NugetRegistryInfo as d,getGithubOutput as f,getGithubOutputSync as p}from"./NugetRegistryInfo.mjs";import{configureDotnetNugetPush as m,configurePrepareCmd as h}from"./helpers.mjs";import{DefaultGithubTokenEnvVars as g,GHNRIOpts as _,GithubNugetRegistryInfo as v}from"./GithubNugetRegistryInfo.mjs";import{GLNRIOpts as y,GitlabNugetRegistryInfo as b}from"./GitlabNugetRegistryInfo.mjs";import"./IsNextVersionAlreadyPublished.cli.mjs";export{g as DefaultGithubTokenEnvVars,r as EvaluationOptions,_ as GHNRIOpts,y as GLNRIOpts,v as GithubNugetRegistryInfo,b as GitlabNugetRegistryInfo,i as MSBuildEvaluationOutput,a as MSBuildProject,e as MSBuildProjectProperties,t as NPPGetterNames,l as NRIOpts,u as NRIOptsBase,n as NugetProjectProperties,d as NugetRegistryInfo,o as _InternalMSBuildEvaluationTypes,s as catchCsc2012,c as catchEBUSY,m as configureDotnetNugetPush,h as configurePrepareCmd,f as getGithubOutput,p as getGithubOutputSync};
|
package/mjs/dotnet.d.mts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Class_MSBPP, MSBuildProjectProperties } from "./dotnet/MSBuildProjectProperties.mjs";
|
|
2
|
+
import { Class_NPP, NPPGetterNames, NugetProjectProperties } from "./dotnet/NugetProjectProperties.mjs";
|
|
3
|
+
import { EvaluationOptions, MSBuildEvaluationOutput, MSBuildProject, _InternalMSBuildEvaluationTypes, catchCsc2012, catchEBUSY } from "./dotnet/MSBuildProject.mjs";
|
|
4
|
+
import { NRIOpts, NRIOptsBase, NugetRegistryInfo, getGithubOutput, getGithubOutputSync } from "./dotnet/NugetRegistryInfo.mjs";
|
|
5
|
+
import { DefaultGithubTokenEnvVars, GHNRIOpts, GithubNugetRegistryInfo } from "./dotnet/GithubNugetRegistryInfo.mjs";
|
|
6
|
+
import { GLNRIOpts, GitlabNugetRegistryInfo } from "./dotnet/GitlabNugetRegistryInfo.mjs";
|
|
7
|
+
import { configureDotnetNugetPush, configurePrepareCmd } from "./dotnet/helpers.mjs";
|
|
8
|
+
export { Class_MSBPP, Class_NPP, DefaultGithubTokenEnvVars, EvaluationOptions, GHNRIOpts, GLNRIOpts, GithubNugetRegistryInfo, GitlabNugetRegistryInfo, MSBuildEvaluationOutput, MSBuildProject, MSBuildProjectProperties, NPPGetterNames, NRIOpts, NRIOptsBase, NugetProjectProperties, NugetRegistryInfo, _InternalMSBuildEvaluationTypes, catchCsc2012, catchEBUSY, configureDotnetNugetPush, configurePrepareCmd, getGithubOutput, getGithubOutputSync };
|
package/mjs/dotnet.mjs
CHANGED
|
@@ -1,9 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export { DefaultGithubTokenEnvVars, GHNRIOpts, GithubNugetRegistryInfo } from './dotnet/GithubNugetRegistryInfo.mjs';
|
|
3
|
-
export { EvaluationOptions, MSBuildEvaluationOutput, MSBuildProject, _InternalMSBuildEvaluationTypes, catchCsc2012, catchEBUSY } from './dotnet/MSBuildProject.mjs';
|
|
4
|
-
export { GLNRIOpts, GitlabNugetRegistryInfo } from './dotnet/GitlabNugetRegistryInfo.mjs';
|
|
5
|
-
export { MSBuildProjectProperties } from './dotnet/MSBuildProjectProperties.mjs';
|
|
6
|
-
export { NPPGetterNames, NugetProjectProperties } from './dotnet/NugetProjectProperties.mjs';
|
|
7
|
-
export { NRIOpts, NRIOptsBase, NugetRegistryInfo, getGithubOutput, getGithubOutputSync } from './dotnet/NugetRegistryInfo.mjs';
|
|
8
|
-
export { configureDotnetNugetPush, configurePrepareCmd } from './dotnet/helpers.mjs';
|
|
9
|
-
//# sourceMappingURL=dotnet.mjs.map
|
|
1
|
+
import{MSBuildProjectProperties as e}from"./dotnet/MSBuildProjectProperties.mjs";import{NPPGetterNames as t,NugetProjectProperties as n}from"./dotnet/NugetProjectProperties.mjs";import{EvaluationOptions as r,MSBuildEvaluationOutput as i,MSBuildProject as a,_InternalMSBuildEvaluationTypes as o,catchCsc2012 as s,catchEBUSY as c}from"./dotnet/MSBuildProject.mjs";import{NRIOpts as l,NRIOptsBase as u,NugetRegistryInfo as d,getGithubOutput as f,getGithubOutputSync as p}from"./dotnet/NugetRegistryInfo.mjs";import{configureDotnetNugetPush as m,configurePrepareCmd as h}from"./dotnet/helpers.mjs";import{DefaultGithubTokenEnvVars as g,GHNRIOpts as _,GithubNugetRegistryInfo as v}from"./dotnet/GithubNugetRegistryInfo.mjs";import{GLNRIOpts as y,GitlabNugetRegistryInfo as b}from"./dotnet/GitlabNugetRegistryInfo.mjs";import"./dotnet/index.mjs";export{g as DefaultGithubTokenEnvVars,r as EvaluationOptions,_ as GHNRIOpts,y as GLNRIOpts,v as GithubNugetRegistryInfo,b as GitlabNugetRegistryInfo,i as MSBuildEvaluationOutput,a as MSBuildProject,e as MSBuildProjectProperties,t as NPPGetterNames,l as NRIOpts,u as NRIOptsBase,n as NugetProjectProperties,d as NugetRegistryInfo,o as _InternalMSBuildEvaluationTypes,s as catchCsc2012,c as catchEBUSY,m as configureDotnetNugetPush,h as configurePrepareCmd,f as getGithubOutput,p as getGithubOutputSync};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eslintConfig.d.mts","names":[],"sources":["../src/eslintConfig.ts"],"mappings":";;;cAyDM,MAAA,EAAQ,UAAA,QAAkB,YAAA"}
|
package/mjs/eslintConfig.mjs
CHANGED
|
@@ -1,64 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
4
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
5
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
6
|
-
import eslint from '@eslint/js';
|
|
7
|
-
import { globalIgnores as globalIgnores$1, defineConfig } from 'eslint/config';
|
|
8
|
-
import stylistic from '@stylistic/eslint-plugin';
|
|
9
|
-
import json from '@eslint/json';
|
|
10
|
-
import globals from 'globals/globals.json' with { type: 'json' };
|
|
11
|
-
import tseslint from 'typescript-eslint';
|
|
12
|
-
|
|
13
|
-
// https://eslint.org/docs/latest/use/configure/migration-guide#using-eslintrc-configs-in-flat-config
|
|
14
|
-
// https://www.google.com/search?q=javascript+recurse+through+object+and+remove+undefined+properties
|
|
15
|
-
|
|
16
|
-
const globalIgnores = globalIgnores$1(['_tsout/**/*', '_tsout/*', '_tsout/', 'cjs/**/*', 'cjs/*/*', 'cjs/*', 'mjs/**/*', 'mjs/*', 'mjs/', 'node_modules/**/*', '**/node_modules/**/*', '**/*.tsbuildinfo', '**/bin/**/*', '**/obj/**/*', '.pnp.cjs', '.pnp.loader.mjs', '.yarn/sdks/**']);
|
|
17
|
-
const stylisticWarn = stylistic.configs.customize({
|
|
18
|
-
quoteProps: 'as-needed',
|
|
19
|
-
semi: true,
|
|
20
|
-
indent: 2,
|
|
21
|
-
severity: 'warn'
|
|
22
|
-
});
|
|
23
|
-
stylisticWarn.rules ??= {};
|
|
24
|
-
stylisticWarn.rules['@stylistic/no-extra-parens'] = ['warn', 'all', {
|
|
25
|
-
allowParensAfterCommentPattern: '@type|@satisfies',
|
|
26
|
-
nestedBinaryExpressions: false
|
|
27
|
-
}];
|
|
28
|
-
stylisticWarn.rules['@stylistic/semi'] = ['warn', 'always', {
|
|
29
|
-
omitLastInOneLineBlock: false,
|
|
30
|
-
omitLastInOneLineClassBody: false
|
|
31
|
-
}];
|
|
32
|
-
const config = defineConfig(_objectSpread(_objectSpread({}, json.configs.recommended), {}, {
|
|
33
|
-
name: 'JSON Recommended',
|
|
34
|
-
files: ['**/*.json'],
|
|
35
|
-
ignores: ['**/.vscode/*.json'],
|
|
36
|
-
language: 'json/json'
|
|
37
|
-
}), {
|
|
38
|
-
name: 'JSON - Allow empty keys in package-lock.json',
|
|
39
|
-
files: ['**/package-lock.json'],
|
|
40
|
-
rules: {
|
|
41
|
-
'json/no-empty-keys': 'off'
|
|
42
|
-
}
|
|
43
|
-
}, _objectSpread(_objectSpread({}, json.configs.recommended), {}, {
|
|
44
|
-
name: 'JSONC Recommended',
|
|
45
|
-
files: ['**/*.jsonc', '**/.vscode/*.json'],
|
|
46
|
-
language: 'json/jsonc'
|
|
47
|
-
}), _objectSpread(_objectSpread({}, json.configs.recommended), {}, {
|
|
48
|
-
name: 'JSON5 Recommended',
|
|
49
|
-
files: ['**/*.json5'],
|
|
50
|
-
language: 'json/json5'
|
|
51
|
-
}), {
|
|
52
|
-
name: 'TSJS',
|
|
53
|
-
extends: [eslint.configs.recommended, ...tseslint.configs.strictTypeChecked, ...tseslint.configs.stylisticTypeChecked, stylisticWarn],
|
|
54
|
-
files: ['**/*.ts', '**/*.cts', '**/*.mts', '**/*.js', '**/*.cjs', '**/*.mjs', '**/*.jsx', '**/*.tsx'],
|
|
55
|
-
ignores: globalIgnores.ignores,
|
|
56
|
-
languageOptions: {
|
|
57
|
-
parserOptions: {
|
|
58
|
-
projectService: true
|
|
59
|
-
},
|
|
60
|
-
globals: globals.node
|
|
61
|
-
}
|
|
62
|
-
}, globalIgnores);
|
|
63
|
-
export { config as default };
|
|
64
|
-
//# sourceMappingURL=eslintConfig.mjs.map
|
|
1
|
+
import e from"@eslint/js";import{defineConfig as t,globalIgnores as n}from"eslint/config";import"eslint";import r from"@stylistic/eslint-plugin";import i from"@eslint/json";import a from"globals/globals.json"with{type:"json"};import o from"typescript-eslint";const s=n([`_tsout/**/*`,`_tsout/*`,`_tsout/`,`cjs/**/*`,`cjs/*/*`,`cjs/*`,`mjs/**/*`,`mjs/*`,`mjs/`,`node_modules/**/*`,`**/node_modules/**/*`,`**/*.tsbuildinfo`,`**/bin/**/*`,`**/obj/**/*`,`.pnp.cjs`,`.pnp.loader.mjs`,`.yarn/sdks/**`]),c=r.configs.customize({quoteProps:`as-needed`,semi:!0,indent:2,severity:`warn`});c.rules??={},c.rules[`@stylistic/no-extra-parens`]=[`warn`,`all`,{allowParensAfterCommentPattern:`@type|@satisfies`,nestedBinaryExpressions:!1}],c.rules[`@stylistic/semi`]=[`warn`,`always`,{omitLastInOneLineBlock:!1,omitLastInOneLineClassBody:!1}];const l=t({...i.configs.recommended,name:`JSON Recommended`,files:[`**/*.json`],ignores:[`**/.vscode/*.json`],language:`json/json`},{name:`JSON - Allow empty keys in package-lock.json`,files:[`**/package-lock.json`],rules:{"json/no-empty-keys":`off`}},{...i.configs.recommended,name:`JSONC Recommended`,files:[`**/*.jsonc`,`**/.vscode/*.json`],language:`json/jsonc`},{...i.configs.recommended,name:`JSON5 Recommended`,files:[`**/*.json5`],language:`json/json5`},{name:`TSJS`,extends:[e.configs.recommended,...o.configs.strictTypeChecked,...o.configs.stylisticTypeChecked,c],files:[`**/*.ts`,`**/*.cts`,`**/*.mts`,`**/*.js`,`**/*.cjs`,`**/*.mjs`,`**/*.jsx`,`**/*.tsx`],ignores:s.ignores,languageOptions:{parserOptions:{projectService:!0},globals:a.node}},s);export{l as default};
|
|
2
|
+
//# sourceMappingURL=eslintConfig.mjs.map
|
package/mjs/eslintConfig.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslintConfig.mjs","sources":["../src/eslintConfig.ts"],"
|
|
1
|
+
{"version":3,"file":"eslintConfig.mjs","names":["globalIgnores","setGlobalIgnores"],"sources":["../src/eslintConfig.ts"],"sourcesContent":["import eslint from '@eslint/js';\nimport { defineConfig, globalIgnores as setGlobalIgnores } from 'eslint/config';\nimport { type Linter } from 'eslint';\nimport stylistic, { type RuleOptions } from '@stylistic/eslint-plugin';\nimport json from '@eslint/json';\nimport globals from 'globals/globals.json' with { type: 'json' };\nimport tseslint from 'typescript-eslint';\n\n// https://eslint.org/docs/latest/use/configure/migration-guide#using-eslintrc-configs-in-flat-config\n// https://www.google.com/search?q=javascript+recurse+through+object+and+remove+undefined+properties\n\nconst globalIgnores: ReturnType<typeof setGlobalIgnores> = setGlobalIgnores([\n '_tsout/**/*',\n '_tsout/*',\n '_tsout/',\n 'cjs/**/*',\n 'cjs/*/*',\n 'cjs/*',\n 'mjs/**/*',\n 'mjs/*',\n 'mjs/',\n 'node_modules/**/*',\n '**/node_modules/**/*',\n '**/*.tsbuildinfo',\n '**/bin/**/*',\n '**/obj/**/*',\n '.pnp.cjs',\n '.pnp.loader.mjs',\n '.yarn/sdks/**',\n]);\n\nconst stylisticWarn: Linter.Config = stylistic.configs.customize({\n quoteProps: 'as-needed',\n semi: true,\n indent: 2,\n severity: 'warn',\n});\nstylisticWarn.rules ??= {};\n\nstylisticWarn.rules['@stylistic/no-extra-parens'] = [\n 'warn',\n 'all',\n {\n allowParensAfterCommentPattern: '@type|@satisfies',\n nestedBinaryExpressions: false,\n },\n] satisfies Linter.RuleEntry<RuleOptions['@stylistic/no-extra-parens']>;\n\nstylisticWarn.rules['@stylistic/semi'] = [\n 'warn',\n 'always',\n {\n omitLastInOneLineBlock: false,\n omitLastInOneLineClassBody: false,\n },\n] satisfies Linter.RuleEntry<RuleOptions['@stylistic/semi']>;\n\nconst config: ReturnType<typeof defineConfig> = defineConfig(\n { ...json.configs.recommended, name: 'JSON Recommended', files: ['**/*.json'], ignores: ['**/.vscode/*.json'], language: 'json/json' },\n { name: 'JSON - Allow empty keys in package-lock.json', files: ['**/package-lock.json'], rules: { 'json/no-empty-keys': 'off' } },\n { ...json.configs.recommended, name: 'JSONC Recommended', files: ['**/*.jsonc', '**/.vscode/*.json'], language: 'json/jsonc' },\n { ...json.configs.recommended, name: 'JSON5 Recommended', files: ['**/*.json5'], language: 'json/json5' },\n {\n name: 'TSJS',\n extends: [\n eslint.configs.recommended,\n ...tseslint.configs.strictTypeChecked,\n ...tseslint.configs.stylisticTypeChecked,\n stylisticWarn,\n ],\n files: [\n '**/*.ts',\n '**/*.cts',\n '**/*.mts',\n '**/*.js',\n '**/*.cjs',\n '**/*.mjs',\n '**/*.jsx',\n '**/*.tsx',\n ],\n ignores: globalIgnores.ignores,\n languageOptions: {\n parserOptions: {\n projectService: true,\n },\n globals: globals.node,\n },\n },\n globalIgnores,\n);\nexport default config;\n"],"mappings":"mQAWA,MAAMA,EAAqDC,EAAiB,CAC1E,cACA,WACA,UACA,WACA,UACA,QACA,WACA,QACA,OACA,oBACA,uBACA,mBACA,cACA,cACA,WACA,kBACA,gBACD,CAAC,CAEI,EAA+B,EAAU,QAAQ,UAAU,CAC/D,WAAY,YACZ,KAAM,GACN,OAAQ,EACR,SAAU,OACX,CAAC,CACF,EAAc,QAAU,EAAE,CAE1B,EAAc,MAAM,8BAAgC,CAClD,OACA,MACA,CACE,+BAAgC,mBAChC,wBAAyB,GAC1B,CACF,CAED,EAAc,MAAM,mBAAqB,CACvC,OACA,SACA,CACE,uBAAwB,GACxB,2BAA4B,GAC7B,CACF,CAED,MAAM,EAA0C,EAC9C,CAAE,GAAG,EAAK,QAAQ,YAAa,KAAM,mBAAoB,MAAO,CAAC,YAAY,CAAE,QAAS,CAAC,oBAAoB,CAAE,SAAU,YAAa,CACtI,CAAE,KAAM,+CAAgD,MAAO,CAAC,uBAAuB,CAAE,MAAO,CAAE,qBAAsB,MAAO,CAAE,CACjI,CAAE,GAAG,EAAK,QAAQ,YAAa,KAAM,oBAAqB,MAAO,CAAC,aAAc,oBAAoB,CAAE,SAAU,aAAc,CAC9H,CAAE,GAAG,EAAK,QAAQ,YAAa,KAAM,oBAAqB,MAAO,CAAC,aAAa,CAAE,SAAU,aAAc,CACzG,CACE,KAAM,OACN,QAAS,CACP,EAAO,QAAQ,YACf,GAAG,EAAS,QAAQ,kBACpB,GAAG,EAAS,QAAQ,qBACpB,EACD,CACD,MAAO,CACL,UACA,WACA,WACA,UACA,WACA,WACA,WACA,WACD,CACD,QAASD,EAAc,QACvB,gBAAiB,CACf,cAAe,CACb,eAAgB,GACjB,CACD,QAAS,EAAQ,KAClB,CACF,CACDA,EACD"}
|
package/mjs/index.d.mts
ADDED
package/mjs/index.mjs
CHANGED
|
@@ -1,4 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/** Runs HCE.Shared and returns a semantic-release "shareable configuration" object. */
|
|
4
|
-
//# sourceMappingURL=index.mjs.map
|
|
1
|
+
import{baseConfig as e}from"./semanticReleaseConfig.mjs";export{e as default};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { PluginSpec } from "semantic-release";
|
|
2
|
+
|
|
3
|
+
//#region src/insertPlugins.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* @param plugins {@link SemanticReleaseOptions.plugins}
|
|
6
|
+
* @param afterPluginsIDs The `string` IDs of plugins that the {@link insertPluginIDs} must follow.
|
|
7
|
+
* @param insertPluginIDs The `string` IDs of plugins to insert into a copy of the {@link plugins} array.
|
|
8
|
+
* @param beforePluginsIDs The `string` IDs of plugins that the {@link insertPluginIDs} must precede.
|
|
9
|
+
* @returns
|
|
10
|
+
* A modified copy of {@link plugins} with the given plugins inserted
|
|
11
|
+
* before {@link beforePluginsIDs} and after {@link afterPluginsIDs}.
|
|
12
|
+
*
|
|
13
|
+
* Inserted plugins will be a `[string, {}]` tuple.
|
|
14
|
+
* @throws {ReferenceError} This should never occur. One or more of the
|
|
15
|
+
* {@link afterPluginsIDs} had been found in {@link plugins}, but a `.find` call
|
|
16
|
+
* to get the highest index of the found plugins had returned `undefined`
|
|
17
|
+
* @throws {AggregateError} One or more error occurred when inserting plugins: `insertPlugin was instructed to insert one or more plugins after [${afterPluginsIDs.map(v => '"' + v + '"').join(', ')}] and before [${beforePluginsIDs.map(v => `"${v}"`).join(', ')}], but ${JSON.stringify(pluginIDs[indexOfLastAfter])} comes after ${JSON.stringify(pluginIDs[index])}!`
|
|
18
|
+
*/
|
|
19
|
+
declare function insertPlugin(plugins: Exclude<PluginSpec, string>[], afterPluginsIDs: string[], insertPluginIDs: string[], beforePluginsIDs: string[]): Exclude<PluginSpec, string>[];
|
|
20
|
+
//#endregion
|
|
21
|
+
export { insertPlugin };
|
|
22
|
+
//# sourceMappingURL=insertPlugins.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insertPlugins.d.mts","names":[],"sources":["../src/insertPlugins.ts"],"mappings":";;;;;AA4DA;;;;;;;;;;;;;iBAAgB,YAAA,CACd,OAAA,EAAS,OAAA,CAAQ,UAAA,aACjB,eAAA,YACA,eAAA,YACA,gBAAA,aACC,OAAA,CAAQ,UAAA"}
|
package/mjs/insertPlugins.mjs
CHANGED
|
@@ -1,73 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* @deprecated EXPERIMENTAL
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* [W.I.P. STUB]
|
|
8
|
-
*
|
|
9
|
-
* Given an array of {@link PluginInsertRuleSet}s, insert plugins into a
|
|
10
|
-
* {@link https://developer.mozilla.org/en-US/docs/Web/API/Window/structuredClone structured clone}
|
|
11
|
-
* (i.e. deep-copy) of the {@link plugins} array, sort the plugin entries, and
|
|
12
|
-
* return the modified array copy.
|
|
13
|
-
* @todo implement
|
|
14
|
-
* @param plugins Your {@link SemanticReleaseOptions.plugins} array.
|
|
15
|
-
* @param inserts An array of {@link PluginInsertRuleSet}s.
|
|
16
|
-
*
|
|
17
|
-
* If a plugin is already in the plugins array, inserting is skipped. The
|
|
18
|
-
* existing entry is sorted according to its ruleset.
|
|
19
|
-
*
|
|
20
|
-
* If any rulesets conflict, an error will be thrown.
|
|
21
|
-
* - error: A must precede B; B must precede A.
|
|
22
|
-
* - pass: C must precede D and E; D must precede E and follow B. Add ruleset
|
|
23
|
-
* interface: {Id:string, BeforeIds:string[], AfterIds:string[] }
|
|
24
|
-
* @returns A deep-cloned, modified copy of {@link plugins} with plugins
|
|
25
|
-
* inserted and sorted where needed.
|
|
26
|
-
* @since 3.0.0
|
|
27
|
-
* @deprecated EXPERIMENTAL
|
|
28
|
-
*/
|
|
29
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* @param plugins {@link SemanticReleaseOptions.plugins}
|
|
33
|
-
* @param afterPluginsIDs The `string` IDs of plugins that the {@link insertPluginIDs} must follow.
|
|
34
|
-
* @param insertPluginIDs The `string` IDs of plugins to insert into a copy of the {@link plugins} array.
|
|
35
|
-
* @param beforePluginsIDs The `string` IDs of plugins that the {@link insertPluginIDs} must precede.
|
|
36
|
-
* @returns
|
|
37
|
-
* A modified copy of {@link plugins} with the given plugins inserted
|
|
38
|
-
* before {@link beforePluginsIDs} and after {@link afterPluginsIDs}.
|
|
39
|
-
*
|
|
40
|
-
* Inserted plugins will be a `[string, {}]` tuple.
|
|
41
|
-
* @throws {ReferenceError} This should never occur. One or more of the
|
|
42
|
-
* {@link afterPluginsIDs} had been found in {@link plugins}, but a `.find` call
|
|
43
|
-
* to get the highest index of the found plugins had returned `undefined`
|
|
44
|
-
* @throws {AggregateError} One or more error occurred when inserting plugins: `insertPlugin was instructed to insert one or more plugins after [${afterPluginsIDs.map(v => '"' + v + '"').join(', ')}] and before [${beforePluginsIDs.map(v => `"${v}"`).join(', ')}], but ${JSON.stringify(pluginIDs[indexOfLastAfter])} comes after ${JSON.stringify(pluginIDs[index])}!`
|
|
45
|
-
*/
|
|
46
|
-
function insertPlugin(plugins, afterPluginsIDs, insertPluginIDs, beforePluginsIDs) {
|
|
47
|
-
const pluginIDs = plugins.map(v => typeof v === 'string' ? v : v[0]);
|
|
48
|
-
|
|
49
|
-
// if any beforePluginIDs are ordered before the last afterPlugin, throw. Impossible to sort.
|
|
50
|
-
|
|
51
|
-
const indexOfLastAfter = afterPluginsIDs.filter(v => pluginIDs.includes(v)).map(v => pluginIDs.indexOf(v)).sort().find((_v, i, obj) => i === obj.length - 1);
|
|
52
|
-
if (undefined === indexOfLastAfter) throw new ReferenceError('An attempt to get the last element of an array returned undefined.');
|
|
53
|
-
const indicesOfBefore = beforePluginsIDs.filter(v => pluginIDs.includes(v)).map(v => pluginIDs.indexOf(v)).sort();
|
|
54
|
-
|
|
55
|
-
// This for-of collects *all* sorting errors. The resulting AggregateError
|
|
56
|
-
// notifies the API user of *all* errors in the order rather than just the
|
|
57
|
-
// first error encountered.
|
|
58
|
-
const errors = [];
|
|
59
|
-
for (const index of indicesOfBefore) {
|
|
60
|
-
if (index <= indexOfLastAfter) {
|
|
61
|
-
errors.push(new Error(`insertPlugin was instructed to insert one or more plugins after [${afterPluginsIDs.map(v => '"' + v + '"').join(', ')}] and before [${beforePluginsIDs.map(v => `"${v}"`).join(', ')}], but ${JSON.stringify(pluginIDs[indexOfLastAfter])} comes after ${JSON.stringify(pluginIDs[index])}!`));
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
if (errors.length > 0) throw new AggregateError(errors, 'One or more errors occurred while inserting plugin configs into the Semantic Release config!');
|
|
65
|
-
|
|
66
|
-
// insert plugin(s)
|
|
67
|
-
|
|
68
|
-
const beforeInsert = plugins.slice(0, indexOfLastAfter + 1);
|
|
69
|
-
const afterInsert = plugins.slice(indexOfLastAfter + 1, plugins.length + 1);
|
|
70
|
-
return [...beforeInsert, ...insertPluginIDs.map(id => [id, {}]), ...afterInsert];
|
|
71
|
-
}
|
|
72
|
-
export { insertPlugin };
|
|
73
|
-
//# sourceMappingURL=insertPlugins.mjs.map
|
|
1
|
+
function e(e,t,n,r){let i=e.map(e=>typeof e==`string`?e:e[0]),a=t.filter(e=>i.includes(e)).map(e=>i.indexOf(e)).sort().find((e,t,n)=>t===n.length-1);if(a===void 0)throw ReferenceError(`An attempt to get the last element of an array returned undefined.`);let o=r.filter(e=>i.includes(e)).map(e=>i.indexOf(e)).sort(),s=[];for(let e of o)e<=a&&s.push(Error(`insertPlugin was instructed to insert one or more plugins after [${t.map(e=>`"`+e+`"`).join(`, `)}] and before [${r.map(e=>`"${e}"`).join(`, `)}], but ${JSON.stringify(i[a])} comes after ${JSON.stringify(i[e])}!`));if(s.length>0)throw AggregateError(s,`One or more errors occurred while inserting plugin configs into the Semantic Release config!`);let c=e.slice(0,a+1),l=e.slice(a+1,e.length+1);return[...c,...n.map(e=>[e,{}]),...l]}export{e as insertPlugin};
|
|
2
|
+
//# sourceMappingURL=insertPlugins.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insertPlugins.mjs","sources":["../src/insertPlugins.ts"],"
|
|
1
|
+
{"version":3,"file":"insertPlugins.mjs","names":[],"sources":["../src/insertPlugins.ts"],"sourcesContent":["import type {\n PluginSpec,\n Options as SemanticReleaseOptions,\n} from 'semantic-release';\n\n/**\n * @since 3.0.0\n * @deprecated EXPERIMENTAL\n */\ninterface PluginInsertRuleSet {\n Id: string;\n BeforeIds: string[];\n AfterIds: string[];\n}\n\n/**\n * [W.I.P. STUB]\n *\n * Given an array of {@link PluginInsertRuleSet}s, insert plugins into a\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/Window/structuredClone structured clone}\n * (i.e. deep-copy) of the {@link plugins} array, sort the plugin entries, and\n * return the modified array copy.\n * @todo implement\n * @param plugins Your {@link SemanticReleaseOptions.plugins} array.\n * @param inserts An array of {@link PluginInsertRuleSet}s.\n *\n * If a plugin is already in the plugins array, inserting is skipped. The\n * existing entry is sorted according to its ruleset.\n *\n * If any rulesets conflict, an error will be thrown.\n * - error: A must precede B; B must precede A.\n * - pass: C must precede D and E; D must precede E and follow B. Add ruleset\n * interface: {Id:string, BeforeIds:string[], AfterIds:string[] }\n * @returns A deep-cloned, modified copy of {@link plugins} with plugins\n * inserted and sorted where needed.\n * @since 3.0.0\n * @deprecated EXPERIMENTAL\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ndeclare function insertAndSortPlugins(\n plugins: Exclude<SemanticReleaseOptions['plugins'], undefined>,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n inserts: PluginInsertRuleSet[],\n): PluginSpec[];\n\n/**\n * @param plugins {@link SemanticReleaseOptions.plugins}\n * @param afterPluginsIDs The `string` IDs of plugins that the {@link insertPluginIDs} must follow.\n * @param insertPluginIDs The `string` IDs of plugins to insert into a copy of the {@link plugins} array.\n * @param beforePluginsIDs The `string` IDs of plugins that the {@link insertPluginIDs} must precede.\n * @returns\n * A modified copy of {@link plugins} with the given plugins inserted\n * before {@link beforePluginsIDs} and after {@link afterPluginsIDs}.\n *\n * Inserted plugins will be a `[string, {}]` tuple.\n * @throws {ReferenceError} This should never occur. One or more of the\n * {@link afterPluginsIDs} had been found in {@link plugins}, but a `.find` call\n * to get the highest index of the found plugins had returned `undefined`\n * @throws {AggregateError} One or more error occurred when inserting plugins: `insertPlugin was instructed to insert one or more plugins after [${afterPluginsIDs.map(v => '\"' + v + '\"').join(', ')}] and before [${beforePluginsIDs.map(v => `\"${v}\"`).join(', ')}], but ${JSON.stringify(pluginIDs[indexOfLastAfter])} comes after ${JSON.stringify(pluginIDs[index])}!`\n */\nexport function insertPlugin(\n plugins: Exclude<PluginSpec, string>[],\n afterPluginsIDs: string[],\n insertPluginIDs: string[],\n beforePluginsIDs: string[],\n): Exclude<PluginSpec, string>[] {\n const pluginIDs = plugins.map(v =>\n typeof v === 'string' ? v : v[0],\n );\n\n // if any beforePluginIDs are ordered before the last afterPlugin, throw. Impossible to sort.\n\n const indexOfLastAfter = afterPluginsIDs\n .filter(v => pluginIDs.includes(v))\n .map(v => pluginIDs.indexOf(v))\n .sort()\n .find((_v, i, obj) => i === obj.length - 1);\n if (undefined === indexOfLastAfter)\n throw new ReferenceError(\n 'An attempt to get the last element of an array returned undefined.',\n );\n\n const indicesOfBefore = beforePluginsIDs\n .filter(v => pluginIDs.includes(v))\n .map(v => pluginIDs.indexOf(v))\n .sort();\n\n // This for-of collects *all* sorting errors. The resulting AggregateError\n // notifies the API user of *all* errors in the order rather than just the\n // first error encountered.\n const errors: Error[] = [];\n for (const index of indicesOfBefore) {\n if (index <= indexOfLastAfter) {\n errors.push(\n new Error(\n `insertPlugin was instructed to insert one or more plugins after [${afterPluginsIDs.map(v => '\"' + v + '\"').join(', ')}] and before [${beforePluginsIDs.map(v => `\"${v}\"`).join(', ')}], but ${JSON.stringify(pluginIDs[indexOfLastAfter])} comes after ${JSON.stringify(pluginIDs[index])}!`,\n ),\n );\n }\n }\n if (errors.length > 0)\n throw new AggregateError(errors, 'One or more errors occurred while inserting plugin configs into the Semantic Release config!');\n\n // insert plugin(s)\n\n const beforeInsert = plugins.slice(0, indexOfLastAfter + 1);\n const afterInsert = plugins.slice(indexOfLastAfter + 1, plugins.length + 1);\n\n return [\n ...beforeInsert,\n ...insertPluginIDs.map(id =>\n [id, {}] as [string, unknown],\n ),\n ...afterInsert,\n ];\n}\n"],"mappings":"AA4DA,SAAgB,EACd,EACA,EACA,EACA,EAC+B,CAC/B,IAAM,EAAY,EAAQ,IAAI,GAC5B,OAAO,GAAM,SAAW,EAAI,EAAE,GAC/B,CAIK,EAAmB,EACtB,OAAO,GAAK,EAAU,SAAS,EAAE,CAAC,CAClC,IAAI,GAAK,EAAU,QAAQ,EAAE,CAAC,CAC9B,MAAM,CACN,MAAM,EAAI,EAAG,IAAQ,IAAM,EAAI,OAAS,EAAE,CAC7C,GAAkB,IAAd,IAAA,GACF,MAAU,eACR,qEACD,CAEH,IAAM,EAAkB,EACrB,OAAO,GAAK,EAAU,SAAS,EAAE,CAAC,CAClC,IAAI,GAAK,EAAU,QAAQ,EAAE,CAAC,CAC9B,MAAM,CAKH,EAAkB,EAAE,CAC1B,IAAK,IAAM,KAAS,EACd,GAAS,GACX,EAAO,KACD,MACF,oEAAoE,EAAgB,IAAI,GAAK,IAAM,EAAI,IAAI,CAAC,KAAK,KAAK,CAAC,gBAAgB,EAAiB,IAAI,GAAK,IAAI,EAAE,GAAG,CAAC,KAAK,KAAK,CAAC,SAAS,KAAK,UAAU,EAAU,GAAkB,CAAC,eAAe,KAAK,UAAU,EAAU,GAAO,CAAC,GAC5R,CACF,CAGL,GAAI,EAAO,OAAS,EAClB,MAAU,eAAe,EAAQ,+FAA+F,CAIlI,IAAM,EAAe,EAAQ,MAAM,EAAG,EAAmB,EAAE,CACrD,EAAc,EAAQ,MAAM,EAAmB,EAAG,EAAQ,OAAS,EAAE,CAE3E,MAAO,CACL,GAAG,EACH,GAAG,EAAgB,IAAI,GACrB,CAAC,EAAI,EAAE,CAAC,CACT,CACD,GAAG,EACJ"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
//#region src/semantic-release__commit-analyzer.d.ts
|
|
2
|
+
declare module '@semantic-release/commit-analyzer' {
|
|
3
|
+
interface RuleObject {
|
|
4
|
+
type?: string;
|
|
5
|
+
scope?: string;
|
|
6
|
+
release: string;
|
|
7
|
+
}
|
|
8
|
+
type AnyRecord = Record<keyof unknown, unknown>;
|
|
9
|
+
export interface CommitAnalyzerConfig {
|
|
10
|
+
preset?: string;
|
|
11
|
+
config?: string;
|
|
12
|
+
parserOpts?: AnyRecord;
|
|
13
|
+
/**
|
|
14
|
+
* Can be a string only if the string is a path to a modules whose default export provides {@link RuleObject}[].
|
|
15
|
+
* See https://github.com/semantic-release/commit-analyzer?tab=readme-ov-file#external-package--file
|
|
16
|
+
*/
|
|
17
|
+
releaseRules?: string | RuleObject[];
|
|
18
|
+
presetConfig?: AnyRecord;
|
|
19
|
+
}
|
|
20
|
+
export type Options = CommitAnalyzerConfig;
|
|
21
|
+
/**
|
|
22
|
+
* Determine the type of release to create based on a list of commits.
|
|
23
|
+
* @param pluginConfig The plugin configuration.
|
|
24
|
+
* @param pluginConfig.preset conventional-changelog preset ('angular', 'atom', 'codemirror', 'ember', 'eslint', 'express', 'jquery', 'jscs', 'jshint')
|
|
25
|
+
* @param pluginConfig.config Require-able npm package with a custom conventional-changelog preset
|
|
26
|
+
* @param pluginConfig.releaseRules A `String` to load an external module or an `Array` of rules.
|
|
27
|
+
* @param pluginConfig.parserOpts Additional `conventional-changelog-parser` options that will overwrite ones loaded by `preset` or `config`.
|
|
28
|
+
* @param context The semantic-release context.
|
|
29
|
+
* @param context.commits The commits to analyze.
|
|
30
|
+
* @param context.cwd The current working directory.
|
|
31
|
+
* @returns the type of release to create based on the list of commits or `null` if no release has to be done.
|
|
32
|
+
* @see 'file://./../node_modules/@semantic-release/commit-analyzer/index.js'
|
|
33
|
+
*/
|
|
34
|
+
export function analyzeCommits(pluginConfig: {
|
|
35
|
+
preset: string;
|
|
36
|
+
config: string;
|
|
37
|
+
releaseRules: string | AnyRecord[];
|
|
38
|
+
parserOpts: unknown;
|
|
39
|
+
}, context: {
|
|
40
|
+
commits: object[];
|
|
41
|
+
cwd: string;
|
|
42
|
+
}): Promise<string | null>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=semantic-release__commit-analyzer.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-release__commit-analyzer.d.mts","names":["Record","AnyRecord","RuleObject","CommitAnalyzerConfig","Promise","type","scope","release","preset","config","parserOpts","releaseRules","presetConfig","Options","analyzeCommits","pluginConfig","commits","cwd","context","sideEffect","_0"],"sources":["../src/semantic-release__commit-analyzer.d.ts"],"mappings":";;YAEYE,UAAAA;IACRG,IAAAA;IACAC,KAAAA;IACAC,OAAAA;EAAAA;EAAAA,KAGGN,SAAAA,GAAYD,MAAAA;EAAAA,iBAEAG,oBAAAA;IACfK,MAAAA;IACAC,MAAAA;IACAC,UAAAA,GAAaT,SAAAA;IAVbI;;;;IAeAM,YAAAA,YAAwBT,UAAAA;IACxBU,YAAAA,GAAeX,SAAAA;EAAAA;EAAAA,YAGLY,OAAAA,GAAUV,oBAAAA;EAJpBQ;;;;;;;;;;;;;EAAAA,gBAmBcG,cAAAA,CACdC,YAAAA;IACEP,MAAAA;IACAC,MAAAA;IACAE,YAAAA,WAAuBV,SAAAA;IACvBS,UAAAA;EAAAA,GAEFQ,OAAAA;IACEF,OAAAA;IACAC,GAAAA;EAAAA,IAEDb,OAAAA;AAAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/semantic-release__exec.d.ts
|
|
2
|
+
declare module '@semantic-release/exec' {
|
|
3
|
+
export interface Options {
|
|
4
|
+
verifyConditionsCmd?: string;
|
|
5
|
+
analyzeCommitsCmd?: string;
|
|
6
|
+
verifyReleaseCmd?: string;
|
|
7
|
+
generateNotesCmd?: string;
|
|
8
|
+
prepareCmd?: string;
|
|
9
|
+
addChannelCmd?: string;
|
|
10
|
+
publishCmd?: string;
|
|
11
|
+
successCmd?: string;
|
|
12
|
+
failCmd?: string;
|
|
13
|
+
shell?: string;
|
|
14
|
+
execCwd?: string;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=semantic-release__exec.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-release__exec.d.mts","names":["Options","verifyConditionsCmd","analyzeCommitsCmd","verifyReleaseCmd","generateNotesCmd","prepareCmd","addChannelCmd","publishCmd","successCmd","failCmd","shell","execCwd","sideEffect","_0"],"sources":["../src/semantic-release__exec.d.ts"],"mappings":";;mBACmBA,OAAAA;IACfC,mBAAAA;IACAC,iBAAAA;IACAC,gBAAAA;IACAC,gBAAAA;IACAC,UAAAA;IACAC,aAAAA;IACAC,UAAAA;IACAC,UAAAA;IACAC,OAAAA;IACAC,KAAAA;IACAC,OAAAA;EAAAA;AAAAA"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
//#region src/semantic-release__git.d.ts
|
|
2
|
+
/* eslint-disable jsdoc/tag-lines, jsdoc/require-param, jsdoc/require-returns */
|
|
3
|
+
/**
|
|
4
|
+
* @see {@link ../node_modules/@semantic-release/git/index.js}
|
|
5
|
+
*/
|
|
6
|
+
declare module '@semantic-release/git' {
|
|
7
|
+
import type { GlobalConfig, PrepareContext, VerifyConditionsContext } from 'semantic-release';
|
|
8
|
+
export type MicromatchGlob = string;
|
|
9
|
+
export interface AssetObject {
|
|
10
|
+
path: MicromatchGlob;
|
|
11
|
+
}
|
|
12
|
+
export type AssetEntry = AssetObject | MicromatchGlob;
|
|
13
|
+
export interface Options {
|
|
14
|
+
/**
|
|
15
|
+
* Files to include in the release commit. Set to `false` to disable adding files to the release commit.
|
|
16
|
+
* @default ['CHANGELOG.md','package.json','package-lock.json','npm-shrinkwrap.json']
|
|
17
|
+
* @description
|
|
18
|
+
* Can be an Array or a single entry. Each entry can be either:
|
|
19
|
+
* - a glob
|
|
20
|
+
* - or an Object with a path property containing a glob.
|
|
21
|
+
*
|
|
22
|
+
* Each entry in the assets Array is globbed individually. A glob can be a String ("dist/\*\*\/\*.js" or "dist/mylib.js") or an Array of Strings that will be globbed together (["dist/\*\*", "!\*\*\/\*.css"]).
|
|
23
|
+
*
|
|
24
|
+
* If a directory is configured, all the files under this directory and its children will be included.
|
|
25
|
+
*
|
|
26
|
+
* Note: If a file has a match in assets it will be included even if it also has a match in .gitignore.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* // include all js files in the dist directory, but not in its sub-directories.
|
|
30
|
+
* 'dist/*.js'
|
|
31
|
+
* // include all js files in the dist directory and its sub-directories.
|
|
32
|
+
* 'dist/**\/*.js'
|
|
33
|
+
* // include all files in the dist directory and its sub-directories excluding the css files.
|
|
34
|
+
* [['dist', '!**\/*.css']]
|
|
35
|
+
* // include package.json and all files in the dist directory and its sub-directories excluding the css files.
|
|
36
|
+
* [['dist', '!**\/*.css'], 'package.json']
|
|
37
|
+
* // include all js and css files in the dist directory and its sub-directories excluding the minified version.
|
|
38
|
+
* [['dist/**\/*.{js,css}', '!**\/*.min.*']]
|
|
39
|
+
*/
|
|
40
|
+
assets?: AssetEntry | AssetEntry[] | false;
|
|
41
|
+
/**
|
|
42
|
+
* The message for the release commit.
|
|
43
|
+
* @default `chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}`
|
|
44
|
+
* @description
|
|
45
|
+
* The message for the release commit is generated with Lodash template. The following variables are available:
|
|
46
|
+
* | Parameter | Description |
|
|
47
|
+
* | ----------------- | ----------- |
|
|
48
|
+
* | branch | The branch from which the release is done. |
|
|
49
|
+
* | branch.name | The branch name. |
|
|
50
|
+
* | branch.type | The type of branch. |
|
|
51
|
+
* | branch.channel | The distribution channel on which to publish releases from this branch. |
|
|
52
|
+
* | branch.range | The range of semantic versions to support on this branch. |
|
|
53
|
+
* | branch.prerelease | The pre-release detonation to append to semantic versions released from this branch. |
|
|
54
|
+
* | lastRelease | Object with version, gitTag and gitHead of the last release. |
|
|
55
|
+
* | nextRelease | Object with version, gitTag, gitHead and notes of the release being done. |
|
|
56
|
+
*
|
|
57
|
+
* Note: It is recommended to include `[skip ci]` in the commit message to not trigger a new build. Some CI service support the `[skip ci]` keyword only in the subject of the message.
|
|
58
|
+
*
|
|
59
|
+
* #### `message` examples
|
|
60
|
+
* The `message` `Release <%= nextRelease.version %> - <%= new Date().toLocaleDateString('en-US', {year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric' }) %> [skip ci]\n\n<%= nextRelease.notes %>` will generate the commit message:
|
|
61
|
+
* > Release v1.0.0 - Oct. 21, 2015 1:24 AM [skip ci]
|
|
62
|
+
* >
|
|
63
|
+
* > ## 1.0.0
|
|
64
|
+
* >
|
|
65
|
+
* > ### Features
|
|
66
|
+
* > * Generate 1.21 gigawatts of electricity
|
|
67
|
+
* >
|
|
68
|
+
* > ...
|
|
69
|
+
*
|
|
70
|
+
*/
|
|
71
|
+
message?: string;
|
|
72
|
+
}
|
|
73
|
+
function verifyConditions(pluginConfig: Options, context: VerifyConditionsContext & {
|
|
74
|
+
options: {
|
|
75
|
+
prepare: unknown;
|
|
76
|
+
};
|
|
77
|
+
}): void;
|
|
78
|
+
function prepare(pluginConfig: Options, context: PrepareContext & {
|
|
79
|
+
options: GlobalConfig;
|
|
80
|
+
}): Promise<void>;
|
|
81
|
+
export { prepare, verifyConditions };
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=semantic-release__git.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-release__git.d.mts","names":["MicromatchGlob","AssetObject","AssetEntry","Options","VerifyConditionsContext","PrepareContext","GlobalConfig","Promise","prepare","verifyConditions","path","assets","message","pluginConfig","options","context","sideEffect","_0"],"sources":["../src/semantic-release__git.d.ts"],"mappings":";;;;;;gBAKgBM,YAAAA,EAAcD,cAAAA,EAAgBD,uBAAAA;EAAAA,YAChCJ,cAAAA;EAAAA,iBACKC,WAAAA;IACfS,IAAAA,EAAMV,cAAAA;EAAAA;EAAAA,YAEIE,UAAAA,GAAaD,WAAAA,GAAcD,cAAAA;EAAAA,iBACtBG,OAAAA;IAuENE;;;;;;;;;;;;;;;;;;;;;;;;;;IA5CTM,MAAAA,GAAST,UAAAA,GAAaA,UAAAA;IAmCtBW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAJAD,OAAAA;EAAAA;EAAAA,SAGOH,gBAAAA,CACPI,YAAAA,EAAcV,OAAAA,EACdY,OAAAA,EAASX,uBAAAA;IACPU,OAAAA;MACEN,OAAAA;IAAAA;EAAAA;EAAAA,SAIGA,OAAAA,CACPK,YAAAA,EAAcV,OAAAA,EACdY,OAAAA,EAASV,cAAAA;IACPS,OAAAA,EAASR,YAAAA;EAAAA,IAEVC,OAAAA;EAAAA,SACMC,OAAAA,EAASC,gBAAAA;AAAAA"}
|