@halospv3/hce.shared-config 3.4.7 → 3.4.8-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 (72) hide show
  1. package/CHANGELOG.md +19 -4
  2. package/mjs/CaseInsensitiveMap.mjs +27 -1
  3. package/mjs/CaseInsensitiveMap.mjs.map +1 -1
  4. package/mjs/commitlintConfig.mjs +13 -1
  5. package/mjs/commitlintConfig.mjs.map +1 -1
  6. package/mjs/debug.mjs +8 -1
  7. package/mjs/debug.mjs.map +1 -1
  8. package/mjs/dotnet/GithubNugetRegistryInfo.mjs +39 -1
  9. package/mjs/dotnet/GithubNugetRegistryInfo.mjs.map +1 -1
  10. package/mjs/dotnet/GitlabNugetRegistryInfo.mjs +81 -1
  11. package/mjs/dotnet/GitlabNugetRegistryInfo.mjs.map +1 -1
  12. package/mjs/dotnet/IsNextVersionAlreadyPublished.cli.mjs +42 -1
  13. package/mjs/dotnet/IsNextVersionAlreadyPublished.cli.mjs.map +1 -1
  14. package/mjs/dotnet/MSBuildProject.mjs +345 -2
  15. package/mjs/dotnet/MSBuildProject.mjs.map +1 -1
  16. package/mjs/dotnet/MSBuildProjectProperties.mjs +233 -1
  17. package/mjs/dotnet/MSBuildProjectProperties.mjs.map +1 -1
  18. package/mjs/dotnet/NugetProjectProperties.mjs +520 -1
  19. package/mjs/dotnet/NugetProjectProperties.mjs.map +1 -1
  20. package/mjs/dotnet/NugetRegistryInfo.mjs +599 -3
  21. package/mjs/dotnet/NugetRegistryInfo.mjs.map +1 -1
  22. package/mjs/dotnet/helpers.mjs +222 -1
  23. package/mjs/dotnet/helpers.mjs.map +1 -1
  24. package/mjs/dotnet/index.mjs +9 -1
  25. package/mjs/dotnet.mjs +9 -1
  26. package/mjs/eslintConfig.mjs +97 -1
  27. package/mjs/eslintConfig.mjs.map +1 -1
  28. package/mjs/index.mjs +2 -1
  29. package/mjs/insertPlugins.mjs +35 -1
  30. package/mjs/insertPlugins.mjs.map +1 -1
  31. package/mjs/semanticReleaseConfig.mjs +63 -1
  32. package/mjs/semanticReleaseConfig.mjs.map +1 -1
  33. package/mjs/semanticReleaseConfigDotnet.mjs +223 -6
  34. package/mjs/semanticReleaseConfigDotnet.mjs.map +1 -1
  35. package/mjs/setupGitPluginSpec.default.mjs +18 -2
  36. package/mjs/setupGitPluginSpec.default.mjs.map +1 -1
  37. package/mjs/setupGitPluginSpec.mjs +108 -1
  38. package/mjs/setupGitPluginSpec.mjs.map +1 -1
  39. package/mjs/utils/Exact.d.mts +10 -10
  40. package/mjs/utils/Exact.d.mts.map +1 -1
  41. package/mjs/utils/env.mjs +39 -1
  42. package/mjs/utils/env.mjs.map +1 -1
  43. package/mjs/utils/execAsync.mjs +54 -7
  44. package/mjs/utils/execAsync.mjs.map +1 -1
  45. package/mjs/utils/isError.mjs +17 -1
  46. package/mjs/utils/isError.mjs.map +1 -1
  47. package/mjs/utils/miscTypes.mjs +7 -1
  48. package/mjs/utils/miscTypes.mjs.map +1 -1
  49. package/mjs/utils/reflection/filterForGetters.mjs +25 -1
  50. package/mjs/utils/reflection/filterForGetters.mjs.map +1 -1
  51. package/mjs/utils/reflection/getOwnPropertyDescriptors.mjs +27 -1
  52. package/mjs/utils/reflection/getOwnPropertyDescriptors.mjs.map +1 -1
  53. package/mjs/utils/reflection/getOwnPropertyDescriptorsRecursively.mjs +34 -1
  54. package/mjs/utils/reflection/getOwnPropertyDescriptorsRecursively.mjs.map +1 -1
  55. package/mjs/utils/reflection/getPrototypeChainOf.mjs +39 -1
  56. package/mjs/utils/reflection/getPrototypeChainOf.mjs.map +1 -1
  57. package/mjs/utils/reflection/getPrototypeOf.mjs +12 -1
  58. package/mjs/utils/reflection/getPrototypeOf.mjs.map +1 -1
  59. package/mjs/utils/reflection/inheritance.mjs +10 -1
  60. package/mjs/utils/reflection/inheritance.mjs.map +1 -1
  61. package/mjs/utils/reflection/isConstructor.mjs +30 -1
  62. package/mjs/utils/reflection/isConstructor.mjs.map +1 -1
  63. package/mjs/utils/reflection/isGetterDescriptor.mjs +13 -1
  64. package/mjs/utils/reflection/isGetterDescriptor.mjs.map +1 -1
  65. package/mjs/utils/reflection/listOwnGetters.mjs +29 -1
  66. package/mjs/utils/reflection/listOwnGetters.mjs.map +1 -1
  67. package/mjs/utils/reflection.mjs +10 -1
  68. package/package.json +17 -43
  69. package/src/utils/Exact.d.ts +17 -0
  70. package/mjs/utils/Exact.mjs +0 -2
  71. package/mjs/utils/Exact.mjs.map +0 -1
  72. package/src/utils/Exact.ts +0 -49
@@ -1,2 +1,521 @@
1
- import{CaseInsensitiveMap as e}from"../CaseInsensitiveMap.mjs";import{MSBuildProjectProperties as t}from"./MSBuildProjectProperties.mjs";import{tBooleanString as n,tEmptyOrBooleanString as r}from"../utils/miscTypes.mjs";import{getPrototypesChainOf as i}from"../utils/reflection/getPrototypeChainOf.mjs";import{listOwnGetters as a}from"../utils/reflection/listOwnGetters.mjs";import"../utils/reflection.mjs";import{type as o}from"arktype";const s=o(`""|"git"|"tfs"`),c=o(`"symbols.nupkg" | "snupkg"`);var l=class i extends t{_isPackable;_suppressDependenciesWhenPacking;_packageVersion;_packageId;_packageDescription;_authors;_copyright;_packageRequireLicenseAcceptance;_developmentDependency;_packageLicenseExpression;_packageLicenseFile;_packageProjectUrl;_packageIcon;_packageReleaseNotes;_packageReadmeFile;_packageTags;_packageOutputPath;_includeSymbols;_includeSource;_packageType;_isTool;_repositoryUrl;_repositoryType;_repositoryCommit;_symbolPackageFormat;_noPackageAnalysis;_minClientVersion;_includeBuiltOutput;_includeContentInPack;_buildOutputTargetFolder;_contentTargetFolders;_nuspecFile;_nuspecBasePath;_nuspecProperties;_title;_company;_product;constructor(t,a){let o=u.InstanceGetters,l=new e;for(let e of o){let t=i.getAndForget(a,e);t!==void 0&&l.set(e,t)}super(t,a);for(let[e,t]of l.entries())typeof e!=`string`&&l.set(t,String(e));let d=e=>i.getAndForget(l,e),f;this._authors=d(`Authors`),this._buildOutputTargetFolder=d(`BuildOutputTargetFolder`),this._company=d(`Company`),this._contentTargetFolders=d(`ContentTargetFolders`),this._copyright=d(`Copyright`),r.allows(f=d(`DevelopmentDependency`))&&(this._developmentDependency=f),n.allows(f=d(`IncludeBuiltOutput`))&&(this._includeBuiltOutput=f),n.allows(f=d(`IncludeContentInPack`))&&(this._includeContentInPack=f),r.allows(f=d(`IncludeSource`))&&(this._includeSource=f),r.allows(f=d(`IncludeSymbols`))&&(this._includeSymbols=f),n.allows(f=d(`IsPackable`))&&(this._isPackable=f),r.allows(f=d(`IsTool`))&&(this._isTool=f),this._minClientVersion=d(`MinClientVersion`),r.allows(f=d(`NoPackageAnalysis`))&&(this._noPackageAnalysis=f),this._nuspecBasePath=d(`NuspecBasePath`),this._nuspecFile=d(`NuspecFile`),this._nuspecProperties=d(`NuspecProperties`),this._packageDescription=d(`PackageDescription`),this._packageIcon=d(`PackageIcon`),this._packageId=d(`PackageId`),this._packageLicenseExpression=d(`PackageLicenseExpression`),this._packageLicenseFile=d(`PackageLicenseFile`),this._packageOutputPath=d(`PackageOutputPath`),this._packageProjectUrl=d(`PackageProjectUrl`),this._packageReadmeFile=d(`PackageReadmeFile`),this._packageReleaseNotes=d(`PackageReleaseNotes`),n.allows(f=d(`PackageRequireLicenseAcceptance`))&&(this._packageRequireLicenseAcceptance=f),this._packageTags=d(`PackageTags`),this._packageType=d(`PackageType`),this._packageVersion=d(`PackageVersion`),this._product=d(`Product`),this._repositoryCommit=d(`RepositoryCommit`),s.allows(f=d(`RepositoryType`))&&(this._repositoryType=f),this._repositoryUrl=d(`RepositoryUrl`),n.allows(f=d(`SuppressDependenciesWhenPacking`))&&(this._suppressDependenciesWhenPacking=f),c.allows(f=d(`SymbolPackageFormat`))&&(this._symbolPackageFormat=f),this._title=d(`Title`)}get IsPackable(){return this._isPackable??=`true`}get SuppressDependenciesWhenPacking(){return this._suppressDependenciesWhenPacking??=`false`}get PackageVersion(){return this._packageVersion??=this.Version}get PackageId(){return this._packageId??=this.AssemblyName}get PackageDescription(){return this._packageDescription??=this.Description}get Authors(){return this._authors??=this.AssemblyName}get Copyright(){return this._copyright??=``}get PackageRequireLicenseAcceptance(){return this._packageRequireLicenseAcceptance??=`false`}get DevelopmentDependency(){return this._developmentDependency??=``}get PackageLicenseExpression(){return this._packageLicenseExpression??=``}get PackageLicenseFile(){return this._packageLicenseFile??=``}get PackageProjectUrl(){return this._packageProjectUrl??=``}get PackageIcon(){return this._packageIcon??=``}get PackageReleaseNotes(){return this._packageReleaseNotes??=``}get PackageReadmeFile(){return this._packageReadmeFile??=``}get PackageTags(){return this._packageTags??=``}get PackageOutputPath(){return this._packageOutputPath??=this.OutputPath}get IncludeSymbols(){return this._includeSymbols??=``}get IncludeSource(){return this._includeSource??=``}get PackageType(){return this._packageType??=``}get IsTool(){return this._isTool??=``}get RepositoryUrl(){return this._repositoryUrl??=``}get RepositoryType(){return this._repositoryType??=``}get RepositoryCommit(){return this._repositoryCommit??=``}get SymbolPackageFormat(){return this._symbolPackageFormat??=`symbols.nupkg`}get NoPackageAnalysis(){return this._noPackageAnalysis??=``}get MinClientVersion(){return this._minClientVersion??=``}get IncludeBuildOutput(){return this._includeBuiltOutput??=`true`}get IncludeContentInPack(){return this._includeContentInPack??=`true`}get BuildOutputTargetFolder(){return this._buildOutputTargetFolder??=``}get ContentTargetFolders(){return this._contentTargetFolders??=`content;contentFiles`}get NuspecFile(){return this._nuspecFile??=``}get NuspecBasePath(){return this._nuspecBasePath??=``}get NuspecProperties(){return this._nuspecProperties??=``}get Title(){return this._title??=this.PackageId}get Company(){return this._company??=this.Authors}get Product(){return this._product??=this.AssemblyName}},u=class{static _prototypeChain;static get PrototypeChain(){return this._prototypeChain??=i(l,`classes`)}static _instanceGetters;static _instanceGettersRecursive;static _StaticGetters;static _StaticGettersRecursive;static get InstanceGetters(){return this._instanceGetters??=a(l,`Instance`)}static get InstanceGettersRecursive(){return this._instanceGettersRecursive??=this.PrototypeChain.flatMap(e=>a(e,`Instance`))}static get StaticGetters(){return this._StaticGetters??=a(l,`Static`)}static get StaticGettersRecursive(){return this._StaticGettersRecursive??=this.PrototypeChain.flatMap(e=>a(e,`Static`))}};export{u as NPPGetterNames,l as NugetProjectProperties};
1
+ import { CaseInsensitiveMap } from "../CaseInsensitiveMap.mjs";
2
+ import { MSBuildProjectProperties } from "./MSBuildProjectProperties.mjs";
3
+ import { tBooleanString, tEmptyOrBooleanString } from "../utils/miscTypes.mjs";
4
+ import { getPrototypesChainOf } from "../utils/reflection/getPrototypeChainOf.mjs";
5
+ import { listOwnGetters } from "../utils/reflection/listOwnGetters.mjs";
6
+ import "../utils/reflection.mjs";
7
+ import { type } from "arktype";
8
+ //#region src/dotnet/NugetProjectProperties.ts
9
+ const Type_RepositoryType = type("\"\"|\"git\"|\"tfs\"");
10
+ const Type_SymbolPackageFormat = type("\"symbols.nupkg\" | \"snupkg\"");
11
+ /**
12
+ * A readonly record of a .csproj or .fsproj with NuGet configuration properties in
13
+ * addition to those specified by {@link MSBuildProjectProperties}. This record
14
+ * should be considered immutable. A new instance should be constructed from MSBuild's evaluation output.
15
+ * @see https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#pack-target-inputs
16
+ */
17
+ var NugetProjectProperties = class NugetProjectProperties extends MSBuildProjectProperties {
18
+ _isPackable;
19
+ _suppressDependenciesWhenPacking;
20
+ _packageVersion;
21
+ _packageId;
22
+ _packageDescription;
23
+ _authors;
24
+ _copyright;
25
+ _packageRequireLicenseAcceptance;
26
+ _developmentDependency;
27
+ _packageLicenseExpression;
28
+ _packageLicenseFile;
29
+ _packageProjectUrl;
30
+ _packageIcon;
31
+ _packageReleaseNotes;
32
+ _packageReadmeFile;
33
+ _packageTags;
34
+ _packageOutputPath;
35
+ _includeSymbols;
36
+ _includeSource;
37
+ _packageType;
38
+ _isTool;
39
+ _repositoryUrl;
40
+ _repositoryType;
41
+ _repositoryCommit;
42
+ _symbolPackageFormat;
43
+ _noPackageAnalysis;
44
+ _minClientVersion;
45
+ _includeBuiltOutput;
46
+ _includeContentInPack;
47
+ _buildOutputTargetFolder;
48
+ _contentTargetFolders;
49
+ _nuspecFile;
50
+ _nuspecBasePath;
51
+ _nuspecProperties;
52
+ _title;
53
+ _company;
54
+ _product;
55
+ /**
56
+ * Initialize a readonly record of an MSBuild project's properties, including those related to NuGet.
57
+ * @param msbuildProjectFullPath See {@link NugetProjectProperties.MSBuildProjectFullPath}
58
+ * @param properties The dictionary returned by MSBuild's `-getProperty:propname,...` argument
59
+ */
60
+ constructor(msbuildProjectFullPath, properties) {
61
+ /**
62
+ * names of properties to consume in this constructor instead of its super.
63
+ * These are the names of getters, lowercased.
64
+ */
65
+ const keysToMoveOut = NPPGetterNames.InstanceGetters;
66
+ /** Entries to remove from {@link properties} and apply to `this` after calling `super` */
67
+ const consumables = new CaseInsensitiveMap();
68
+ for (const key of keysToMoveOut) {
69
+ const value = NugetProjectProperties.getAndForget(properties, key);
70
+ if (value !== void 0) consumables.set(key, value);
71
+ }
72
+ super(msbuildProjectFullPath, properties);
73
+ /** convert values to strings */
74
+ for (const [value, key] of consumables.entries()) if (typeof value !== "string") consumables.set(key, String(value));
75
+ const _getAndForget = (key) => NugetProjectProperties.getAndForget(consumables, key);
76
+ let data;
77
+ this._authors = _getAndForget("Authors");
78
+ this._buildOutputTargetFolder = _getAndForget("BuildOutputTargetFolder");
79
+ this._company = _getAndForget("Company");
80
+ this._contentTargetFolders = _getAndForget("ContentTargetFolders");
81
+ this._copyright = _getAndForget("Copyright");
82
+ if (tEmptyOrBooleanString.allows(data = _getAndForget("DevelopmentDependency"))) this._developmentDependency = data;
83
+ if (tBooleanString.allows(data = _getAndForget("IncludeBuiltOutput"))) this._includeBuiltOutput = data;
84
+ if (tBooleanString.allows(data = _getAndForget("IncludeContentInPack"))) this._includeContentInPack = data;
85
+ if (tEmptyOrBooleanString.allows(data = _getAndForget("IncludeSource"))) this._includeSource = data;
86
+ if (tEmptyOrBooleanString.allows(data = _getAndForget("IncludeSymbols"))) this._includeSymbols = data;
87
+ if (tBooleanString.allows(data = _getAndForget("IsPackable"))) this._isPackable = data;
88
+ if (tEmptyOrBooleanString.allows(data = _getAndForget("IsTool"))) this._isTool = data;
89
+ this._minClientVersion = _getAndForget("MinClientVersion");
90
+ if (tEmptyOrBooleanString.allows(data = _getAndForget("NoPackageAnalysis"))) this._noPackageAnalysis = data;
91
+ this._nuspecBasePath = _getAndForget("NuspecBasePath");
92
+ this._nuspecFile = _getAndForget("NuspecFile");
93
+ this._nuspecProperties = _getAndForget("NuspecProperties");
94
+ this._packageDescription = _getAndForget("PackageDescription");
95
+ this._packageIcon = _getAndForget("PackageIcon");
96
+ this._packageId = _getAndForget("PackageId");
97
+ this._packageLicenseExpression = _getAndForget("PackageLicenseExpression");
98
+ this._packageLicenseFile = _getAndForget("PackageLicenseFile");
99
+ this._packageOutputPath = _getAndForget("PackageOutputPath");
100
+ this._packageProjectUrl = _getAndForget("PackageProjectUrl");
101
+ this._packageReadmeFile = _getAndForget("PackageReadmeFile");
102
+ this._packageReleaseNotes = _getAndForget("PackageReleaseNotes");
103
+ if (tBooleanString.allows(data = _getAndForget("PackageRequireLicenseAcceptance"))) this._packageRequireLicenseAcceptance = data;
104
+ this._packageTags = _getAndForget("PackageTags");
105
+ this._packageType = _getAndForget("PackageType");
106
+ this._packageVersion = _getAndForget("PackageVersion");
107
+ this._product = _getAndForget("Product");
108
+ this._repositoryCommit = _getAndForget("RepositoryCommit");
109
+ if (Type_RepositoryType.allows(data = _getAndForget("RepositoryType"))) this._repositoryType = data;
110
+ this._repositoryUrl = _getAndForget("RepositoryUrl");
111
+ if (tBooleanString.allows(data = _getAndForget("SuppressDependenciesWhenPacking"))) this._suppressDependenciesWhenPacking = data;
112
+ if (Type_SymbolPackageFormat.allows(data = _getAndForget("SymbolPackageFormat"))) this._symbolPackageFormat = data;
113
+ this._title = _getAndForget("Title");
114
+ }
115
+ /**
116
+ * @returns A string-formatted boolean. If 'false', the project's `Pack`
117
+ * Target (if available) will no-op.
118
+ *
119
+ * Default: `"true"`
120
+ */
121
+ get IsPackable() {
122
+ return this._isPackable ??= "true";
123
+ }
124
+ /**
125
+ * @returns `"true"` or `"false"`. If "true", the package's dependencies are
126
+ * excluded from the generated NuGet package.
127
+ *
128
+ * Default: `"false"`
129
+ */
130
+ get SuppressDependenciesWhenPacking() {
131
+ return this._suppressDependenciesWhenPacking ??= "false";
132
+ }
133
+ /**
134
+ * @returns A semver-compatible version number in the form
135
+ * Major.Minor.Patch[-Suffix], where -Suffix identifies prerelease versions.
136
+ *
137
+ * Default: {@link Version}
138
+ * @example "1.0.0", "1.0.0-beta", "1.0.0-beta-00345"
139
+ */
140
+ get PackageVersion() {
141
+ return this._packageVersion ??= this.Version;
142
+ }
143
+ /**
144
+ * @returns The ID of the resulting NuGet package.
145
+ *
146
+ * Default: {@link AssemblyName}
147
+ */
148
+ get PackageId() {
149
+ return this._packageId ??= this.AssemblyName;
150
+ }
151
+ /**
152
+ * @returns A long description of the package for UI display.
153
+ *
154
+ * Default: {@link Description}
155
+ */
156
+ get PackageDescription() {
157
+ return this._packageDescription ??= this.Description;
158
+ }
159
+ /**
160
+ * @returns A semicolon-separated list of the package's authors, matching the
161
+ * profile names on nuget.org. These are displayed in the NuGet Gallery on
162
+ * nuget.org and are used to cross-reference packages by the same authors.
163
+ *
164
+ * Default: {@link AssemblyName `AssemblyName`}
165
+ */
166
+ get Authors() {
167
+ return this._authors ??= this.AssemblyName;
168
+ }
169
+ /**
170
+ * @returns Copyright details for the package.
171
+ *
172
+ * Default: `''`
173
+ */
174
+ get Copyright() {
175
+ return this._copyright ??= "";
176
+ }
177
+ /**
178
+ * @returns A string-formatted boolean. If `"true"`, the client must prompt the
179
+ * consumer to accept the package license before installing the package.
180
+ *
181
+ * Default: `"false"`
182
+ */
183
+ get PackageRequireLicenseAcceptance() {
184
+ return this._packageRequireLicenseAcceptance ??= "false";
185
+ }
186
+ /**
187
+ * This boolean only affects the package created from the project.
188
+ * @see
189
+ * {@link https://github.com/NuGet/Home/wiki/DevelopmentDependency-support-for-PackageReference DevelopmentDependency support for PackageReference}
190
+ * @returns A string-formatted boolean. If `"true"`, the package is marked as
191
+ * a development-only dependency and is prevented from being included as a
192
+ * dependency in other packages. With PackageReference (NuGet 4.8+), this flag
193
+ * also means that compile-time assets are excluded from compilation.
194
+ *
195
+ * Default: `''` (`false`-y)
196
+ */
197
+ get DevelopmentDependency() {
198
+ return this._developmentDependency ??= "";
199
+ }
200
+ /**
201
+ * @returns The {@link https://spdx.org/licenses/ SPDX license identifier} or
202
+ * expression.
203
+ *
204
+ * Default: `''`
205
+ * @see
206
+ * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#packing-a-license-expression-or-a-license-file Packing a license expression or a license file}
207
+ * @example "Apache-2.0"
208
+ */
209
+ get PackageLicenseExpression() {
210
+ return this._packageLicenseExpression ??= "";
211
+ }
212
+ /**
213
+ * @returns The path to a license file within the package if you're using a
214
+ * custom license or a license that hasn't been assigned an SPDX identifier.
215
+ *
216
+ * Default: `''`
217
+ */
218
+ get PackageLicenseFile() {
219
+ return this._packageLicenseFile ??= "";
220
+ }
221
+ /**
222
+ * @returns The package's project URL.
223
+ *
224
+ * Default: `''`
225
+ */
226
+ get PackageProjectUrl() {
227
+ return this._packageProjectUrl ??= "";
228
+ }
229
+ /**
230
+ * @returns The package icon path, relative to the root of the package.
231
+ *
232
+ * Default: `''`
233
+ * @description You must pack the referenced icon image file. By default, it
234
+ * is not packed.
235
+ * @see
236
+ * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#packing-an-icon-image-file Packing an icon image file},
237
+ * {@link https://learn.microsoft.com/en-us/nuget/reference/nuspec#icon icon metadata}
238
+ */
239
+ get PackageIcon() {
240
+ return this._packageIcon ??= "";
241
+ }
242
+ /**
243
+ * @returns Release notes for the package.
244
+ *
245
+ * Default: `''`
246
+ */
247
+ get PackageReleaseNotes() {
248
+ return this._packageReleaseNotes ??= "";
249
+ }
250
+ /**
251
+ * @returns The path of the package's README file relative to the package's
252
+ * root.
253
+ *
254
+ * Default: `''`
255
+ * @description You must pack the referenced readme file. By default, it is
256
+ * not packed.
257
+ */
258
+ get PackageReadmeFile() {
259
+ return this._packageReadmeFile ??= "";
260
+ }
261
+ /**
262
+ * @returns A semicolon-delimited list of tags that designates the package.
263
+ *
264
+ * Default : `''`
265
+ */
266
+ get PackageTags() {
267
+ return this._packageTags ??= "";
268
+ }
269
+ /**
270
+ * @returns A relative or absolute path determining the where the packed
271
+ * package will be dropped.
272
+ *
273
+ * Default: {@link OutputPath}
274
+ */
275
+ get PackageOutputPath() {
276
+ return this._packageOutputPath ??= this.OutputPath;
277
+ }
278
+ /**
279
+ * @returns A string-formatted boolean indicating whether the package should
280
+ * create an additional symbols package when the project is packed. The
281
+ * symbols package's format is controlled by the `SymbolPackageFormat`
282
+ * property.
283
+ *
284
+ * Default: `''` (false-y)
285
+ * @description When using `MSBuild -t:pack -p:IncludeSymbols=true`, the
286
+ * corresponding .pdb files are copied along with other output files (.dll,
287
+ * .exe, .winmd, .xml, .json, .pri). Note that setting `IncludeSymbols=true`
288
+ * creates a regular package and a symbols package.
289
+ * @see
290
+ * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#includesymbols IncludeSymbols}
291
+ */
292
+ get IncludeSymbols() {
293
+ return this._includeSymbols ??= "";
294
+ }
295
+ /**
296
+ * @returns A string-formatted boolean indicating whether the pack process
297
+ * should create a source package. The source package contains the library's
298
+ * source code as well as PDB files. Source files are put under the
299
+ * `src/ProjectName` directory in the resulting package file.
300
+ *
301
+ * Default: `''` (false-y)
302
+ * @see
303
+ * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#includesource IncludeSource}
304
+ */
305
+ get IncludeSource() {
306
+ return this._includeSource ??= "";
307
+ }
308
+ /**
309
+ * @returns A semicolon-separated list of tags indicating the package's
310
+ * intended use. Custom types are allowed, but cannot be installed via Visual
311
+ * Studio nor nuget.exe. See https://github.com/NuGet/Home/issues/10468.
312
+ *
313
+ * Package types can be version e.g. `PackageType1, 1.0.0.0;PackageType2`
314
+ *
315
+ * Default: `''`
316
+ * @example "Dependency ", "DotnetTool", "MSBuildSdk", "Template"
317
+ * @see {@link https://learn.microsoft.com/en-us/nuget/create-packages/set-package-type?tabs=dotnet Set a NuGet package type}
318
+ */
319
+ get PackageType() {
320
+ return this._packageType ??= "";
321
+ }
322
+ /**
323
+ * @returns A string-formatted boolean specifying whether all output files are
324
+ * copied to the *tools* folder instead of the *lib* folder.
325
+ *
326
+ * Default: `''` (false-y)
327
+ * @see
328
+ * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#istool IsTool}
329
+ */
330
+ get IsTool() {
331
+ return this._isTool ??= "";
332
+ }
333
+ /**
334
+ * @returns The repository URL used to clone or retrieve source code.
335
+ *
336
+ * Default: `''`
337
+ * @example "https://github.com/NuGet/NuGet.Client.git".
338
+ */
339
+ get RepositoryUrl() {
340
+ return this._repositoryUrl ??= "";
341
+ }
342
+ /**
343
+ * @returns The repository type.
344
+ *
345
+ * Default: `''`
346
+ * @example "git", "fts"
347
+ */
348
+ get RepositoryType() {
349
+ return this._repositoryType ??= "";
350
+ }
351
+ /**
352
+ * @returns The (optional) repository commit or changeset to indicate which
353
+ * source the package was built against. {@link RepositoryUrl} must also be
354
+ * specified for this property to be included.
355
+ *
356
+ * Default: `''`
357
+ * @description This is evaluated only during the "Pack" and "Publish"
358
+ * Targets. If using nuget.exe or Visual Studio, NuGet 4.7.0 or later is
359
+ * required.
360
+ * @example "0e4d1b598f350b3dc675018d539114d1328189ef"
361
+ */
362
+ get RepositoryCommit() {
363
+ return this._repositoryCommit ??= "";
364
+ }
365
+ /**
366
+ * @returns A string specifying the format of the symbols package. If
367
+ * "symbols.nupkg", a legacy symbols package is created with a .symbols.nupkg
368
+ * extension containing PDBs, DLLs, and other output files. If "snupkg", a
369
+ * snupkg symbol package is created containing the portable PDBs. The default
370
+ * is "symbols.nupkg".
371
+ *
372
+ * Default: "symbols.nupkg"
373
+ * @example "symbols.nupkg", "snupkg"
374
+ */
375
+ get SymbolPackageFormat() {
376
+ return this._symbolPackageFormat ??= "symbols.nupkg";
377
+ }
378
+ /**
379
+ * @returns A string-formatted boolean specifying that `pack` should not run
380
+ * package analysis after building the package.
381
+ *
382
+ * Default: `''` (false-y)
383
+ */
384
+ get NoPackageAnalysis() {
385
+ return this._noPackageAnalysis ??= "";
386
+ }
387
+ /**
388
+ * @returns A string specifying the minimum version of the NuGet client that
389
+ * can install this package, enforced by nuget.exe and the Visual Studio
390
+ * Package Manager.
391
+ *
392
+ * Default: `''`
393
+ */
394
+ get MinClientVersion() {
395
+ return this._minClientVersion ??= "";
396
+ }
397
+ /**
398
+ * @returns A string-formatted boolean value specifying whether the build
399
+ * output assemblies should be packed into the .nupkg file or not.
400
+ *
401
+ * Default: `"true"`
402
+ */
403
+ get IncludeBuildOutput() {
404
+ return this._includeBuiltOutput ??= "true";
405
+ }
406
+ /**
407
+ * @returns A string-formatted boolean specifying whether any items that have
408
+ * a type of Content are included in the resulting package automatically.
409
+ *
410
+ * Default: `"true"`
411
+ */
412
+ get IncludeContentInPack() {
413
+ return this._includeContentInPack ??= "true";
414
+ }
415
+ /**
416
+ * @returns The output directory of the output assemblies relative to the root
417
+ * of the package. The output assemblies (and other output files) are copied
418
+ * into their respective framework folders.
419
+ *
420
+ * Default: `''`
421
+ * @see
422
+ * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#output-assemblies Output assemblies}
423
+ */
424
+ get BuildOutputTargetFolder() {
425
+ return this._buildOutputTargetFolder ??= "";
426
+ }
427
+ /**
428
+ * @returns A semicolon-separated list of default locations of where all the
429
+ * content files should go if `PackagePath` is not specified for them.
430
+ *
431
+ * Default: `"content;contentFiles"`
432
+ * @see
433
+ * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#including-content-in-a-package Including content in a package}
434
+ */
435
+ get ContentTargetFolders() {
436
+ return this._contentTargetFolders ??= "content;contentFiles";
437
+ }
438
+ /**
439
+ * @returns The relative or absolute path to the `*.nuspec` file being used
440
+ * for packing. If specified, it's used **exclusively** for packaging
441
+ * information, and any information in the projects is not used.
442
+ *
443
+ * Default: `''`
444
+ * @see
445
+ * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#packing-using-a-nuspec-file Packing using a .nuspec}
446
+ */
447
+ get NuspecFile() {
448
+ return this._nuspecFile ??= "";
449
+ }
450
+ /**
451
+ * @returns The base path for the *.nuspec* file.
452
+ *
453
+ * Default: `''`
454
+ * @see
455
+ * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#packing-using-a-nuspec-file Packing using a .nuspec}
456
+ */
457
+ get NuspecBasePath() {
458
+ return this._nuspecBasePath ??= "";
459
+ }
460
+ /**
461
+ * @returns A semicolon-separated list of key=value pairs.
462
+ *
463
+ * Default: `''`
464
+ * @see
465
+ * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#packing-using-a-nuspec-file Packing using a .nuspec}
466
+ */
467
+ get NuspecProperties() {
468
+ return this._nuspecProperties ??= "";
469
+ }
470
+ /**
471
+ * @returns A human-friendly title of the package, typically used in UI displays as
472
+ * on nuget.org and the Package Manager in Visual Studio.
473
+ * Default: {@link PackageId}
474
+ */
475
+ get Title() {
476
+ return this._title ??= this.PackageId;
477
+ }
478
+ /**
479
+ * @returns Company name or information.
480
+ *
481
+ * Default: {@link Authors}
482
+ */
483
+ get Company() {
484
+ return this._company ??= this.Authors;
485
+ }
486
+ /**
487
+ * @returns Product name or information.
488
+ *
489
+ * Default: {@link AssemblyName}
490
+ */
491
+ get Product() {
492
+ return this._product ??= this.AssemblyName;
493
+ }
494
+ };
495
+ var NPPGetterNames = class {
496
+ static _prototypeChain;
497
+ static get PrototypeChain() {
498
+ return this._prototypeChain ??= getPrototypesChainOf(NugetProjectProperties, "classes");
499
+ }
500
+ static _instanceGetters;
501
+ static _instanceGettersRecursive;
502
+ static _StaticGetters;
503
+ static _StaticGettersRecursive;
504
+ static get InstanceGetters() {
505
+ return this._instanceGetters ??= listOwnGetters(NugetProjectProperties, "Instance");
506
+ }
507
+ static get InstanceGettersRecursive() {
508
+ return this._instanceGettersRecursive ??= this.PrototypeChain.flatMap((proto) => listOwnGetters(proto, "Instance"));
509
+ }
510
+ static get StaticGetters() {
511
+ return this._StaticGetters ??= listOwnGetters(NugetProjectProperties, "Static");
512
+ }
513
+ static get StaticGettersRecursive() {
514
+ return this._StaticGettersRecursive ??= this.PrototypeChain.flatMap((proto) => listOwnGetters(proto, "Static"));
515
+ }
516
+ };
517
+ /** @module NugetProjectProperties */
518
+ //#endregion
519
+ export { NPPGetterNames, NugetProjectProperties };
520
+
2
521
  //# sourceMappingURL=NugetProjectProperties.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NugetProjectProperties.mjs","names":[],"sources":["../../src/dotnet/NugetProjectProperties.ts"],"sourcesContent":["import { type } from 'arktype';\nimport { CaseInsensitiveMap } from '../CaseInsensitiveMap.ts';\nimport {\n tBooleanString,\n tEmptyOrBooleanString,\n type BooleanString,\n type EmptyOrBooleanString,\n} from '../utils/miscTypes.ts';\nimport {\n getPrototypesChainOf,\n listOwnGetters,\n type ClassLike,\n type ProtoChainOfClass,\n type WithProto,\n} from '../utils/reflection.ts';\nimport { MSBuildProjectProperties, type Class_MSBPP } from './MSBuildProjectProperties.ts';\n\nconst Type_RepositoryType: type<'' | 'git' | 'tfs'> = type('\"\"|\"git\"|\"tfs\"');\nconst Type_SymbolPackageFormat: type<'symbols.nupkg' | 'snupkg'> = type('\"symbols.nupkg\" | \"snupkg\"');\n\n/**\n * A readonly record of a .csproj or .fsproj with NuGet configuration properties in\n * addition to those specified by {@link MSBuildProjectProperties}. This record\n * should be considered immutable. A new instance should be constructed from MSBuild's evaluation output.\n * @see https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#pack-target-inputs\n */\nexport class NugetProjectProperties extends MSBuildProjectProperties {\n // #region private\n private _isPackable: BooleanString | undefined;\n private _suppressDependenciesWhenPacking: BooleanString | undefined;\n private _packageVersion: string | undefined;\n private _packageId: string | undefined;\n private _packageDescription: string | undefined;\n private _authors: string | undefined;\n private _copyright: string | undefined;\n private _packageRequireLicenseAcceptance: BooleanString | undefined;\n private _developmentDependency: EmptyOrBooleanString | undefined;\n private _packageLicenseExpression: string | undefined;\n private _packageLicenseFile: string | undefined;\n private _packageProjectUrl: string | undefined;\n private _packageIcon: string | undefined;\n private _packageReleaseNotes: string | undefined;\n private _packageReadmeFile: string | undefined;\n private _packageTags: string | undefined;\n private _packageOutputPath: string | undefined;\n private _includeSymbols: EmptyOrBooleanString | undefined;\n private _includeSource: EmptyOrBooleanString | undefined;\n private _packageType: string | undefined;\n private _isTool: EmptyOrBooleanString | undefined;\n private _repositoryUrl: string | undefined;\n private _repositoryType: '' | 'git' | 'tfs' | undefined;\n private _repositoryCommit: string | undefined;\n private _symbolPackageFormat: 'symbols.nupkg' | 'snupkg' | undefined;\n private _noPackageAnalysis: EmptyOrBooleanString | undefined;\n private _minClientVersion: string | undefined;\n private _includeBuiltOutput: BooleanString | undefined;\n private _includeContentInPack: BooleanString | undefined;\n private _buildOutputTargetFolder: string | undefined;\n private _contentTargetFolders: string | undefined;\n private _nuspecFile: string | undefined;\n private _nuspecBasePath: string | undefined;\n private _nuspecProperties: string | undefined;\n private _title: string | undefined;\n private _company: string | undefined;\n private _product: string | undefined;\n // #endregion private\n\n /**\n * Initialize a readonly record of an MSBuild project's properties, including those related to NuGet.\n * @param msbuildProjectFullPath See {@link NugetProjectProperties.MSBuildProjectFullPath}\n * @param properties The dictionary returned by MSBuild's `-getProperty:propname,...` argument\n */\n constructor(\n msbuildProjectFullPath: string,\n properties: CaseInsensitiveMap<string, string>,\n ) {\n /**\n * names of properties to consume in this constructor instead of its super.\n * These are the names of getters, lowercased.\n */\n const keysToMoveOut = NPPGetterNames.InstanceGetters;\n /** Entries to remove from {@link properties} and apply to `this` after calling `super` */\n const consumables = new CaseInsensitiveMap<string, string>();\n // move property by key from `properties` to `consumables`. The types of keys and values in `properties` do not matter here.\n for (const key of keysToMoveOut) {\n const value = NugetProjectProperties.getAndForget(properties, key);\n if (value !== undefined)\n consumables.set(key, value);\n }\n\n // Pass the remainder to super\n super(msbuildProjectFullPath, properties);\n\n /** convert values to strings */\n for (const [value, key] of consumables.entries()) {\n if (typeof value !== 'string')\n consumables.set(key, String(value));\n }\n\n const _getAndForget = (key: string) => NugetProjectProperties.getAndForget(consumables, key);\n let data;\n this._authors = _getAndForget('Authors');\n this._buildOutputTargetFolder = _getAndForget('BuildOutputTargetFolder');\n this._company = _getAndForget('Company');\n this._contentTargetFolders = _getAndForget('ContentTargetFolders');\n this._copyright = _getAndForget('Copyright');\n if (tEmptyOrBooleanString.allows(data = _getAndForget('DevelopmentDependency')))\n this._developmentDependency = data;\n if (tBooleanString.allows(data = _getAndForget('IncludeBuiltOutput')))\n this._includeBuiltOutput = data;\n if (tBooleanString.allows(data = _getAndForget('IncludeContentInPack')))\n this._includeContentInPack = data;\n if (tEmptyOrBooleanString.allows(data = _getAndForget('IncludeSource')))\n this._includeSource = data;\n if (tEmptyOrBooleanString.allows(data = _getAndForget('IncludeSymbols')))\n this._includeSymbols = data;\n if (tBooleanString.allows(data = _getAndForget('IsPackable')))\n this._isPackable = data;\n if (tEmptyOrBooleanString.allows(data = _getAndForget('IsTool')))\n this._isTool = data;\n this._minClientVersion = _getAndForget('MinClientVersion');\n if (tEmptyOrBooleanString.allows(data = _getAndForget('NoPackageAnalysis')))\n this._noPackageAnalysis = data;\n this._nuspecBasePath = _getAndForget('NuspecBasePath');\n this._nuspecFile = _getAndForget('NuspecFile');\n this._nuspecProperties = _getAndForget('NuspecProperties');\n this._packageDescription = _getAndForget('PackageDescription');\n this._packageIcon = _getAndForget('PackageIcon');\n this._packageId = _getAndForget('PackageId');\n this._packageLicenseExpression = _getAndForget('PackageLicenseExpression');\n this._packageLicenseFile = _getAndForget('PackageLicenseFile');\n this._packageOutputPath = _getAndForget('PackageOutputPath');\n this._packageProjectUrl = _getAndForget('PackageProjectUrl');\n this._packageReadmeFile = _getAndForget('PackageReadmeFile');\n this._packageReleaseNotes = _getAndForget('PackageReleaseNotes');\n if (tBooleanString.allows(data = _getAndForget('PackageRequireLicenseAcceptance')))\n this._packageRequireLicenseAcceptance = data;\n this._packageTags = _getAndForget('PackageTags');\n this._packageType = _getAndForget('PackageType');\n this._packageVersion = _getAndForget('PackageVersion');\n this._product = _getAndForget('Product');\n this._repositoryCommit = _getAndForget('RepositoryCommit');\n if (Type_RepositoryType.allows(data = _getAndForget('RepositoryType')))\n this._repositoryType = data;\n this._repositoryUrl = _getAndForget('RepositoryUrl');\n if (tBooleanString.allows(data = _getAndForget('SuppressDependenciesWhenPacking')))\n this._suppressDependenciesWhenPacking = data;\n if (Type_SymbolPackageFormat.allows(data = _getAndForget('SymbolPackageFormat')))\n this._symbolPackageFormat = data;\n this._title = _getAndForget('Title');\n }\n\n /**\n * @returns A string-formatted boolean. If 'false', the project's `Pack`\n * Target (if available) will no-op.\n *\n * Default: `\"true\"`\n */\n get IsPackable(): BooleanString {\n return this._isPackable ??= 'true';\n }\n\n /**\n * @returns `\"true\"` or `\"false\"`. If \"true\", the package's dependencies are\n * excluded from the generated NuGet package.\n *\n * Default: `\"false\"`\n */\n get SuppressDependenciesWhenPacking(): BooleanString {\n return this._suppressDependenciesWhenPacking ??= 'false';\n }\n\n /**\n * @returns A semver-compatible version number in the form\n * Major.Minor.Patch[-Suffix], where -Suffix identifies prerelease versions.\n *\n * Default: {@link Version}\n * @example \"1.0.0\", \"1.0.0-beta\", \"1.0.0-beta-00345\"\n */\n get PackageVersion(): string {\n return this._packageVersion ??= this.Version;\n }\n\n /**\n * @returns The ID of the resulting NuGet package.\n *\n * Default: {@link AssemblyName}\n */\n get PackageId(): string {\n return this._packageId ??= this.AssemblyName;\n }\n\n /**\n * @returns A long description of the package for UI display.\n *\n * Default: {@link Description}\n */\n get PackageDescription(): string {\n return this._packageDescription ??= this.Description;\n }\n\n /**\n * @returns A semicolon-separated list of the package's authors, matching the\n * profile names on nuget.org. These are displayed in the NuGet Gallery on\n * nuget.org and are used to cross-reference packages by the same authors.\n *\n * Default: {@link AssemblyName `AssemblyName`}\n */\n get Authors(): string {\n return this._authors ??= this.AssemblyName;\n }\n\n /**\n * @returns Copyright details for the package.\n *\n * Default: `''`\n */\n get Copyright(): string {\n return this._copyright ??= '';\n }\n\n /**\n * @returns A string-formatted boolean. If `\"true\"`, the client must prompt the\n * consumer to accept the package license before installing the package.\n *\n * Default: `\"false\"`\n */\n get PackageRequireLicenseAcceptance(): BooleanString {\n return this._packageRequireLicenseAcceptance ??= 'false';\n }\n\n /**\n * This boolean only affects the package created from the project.\n * @see\n * {@link https://github.com/NuGet/Home/wiki/DevelopmentDependency-support-for-PackageReference DevelopmentDependency support for PackageReference}\n * @returns A string-formatted boolean. If `\"true\"`, the package is marked as\n * a development-only dependency and is prevented from being included as a\n * dependency in other packages. With PackageReference (NuGet 4.8+), this flag\n * also means that compile-time assets are excluded from compilation.\n *\n * Default: `''` (`false`-y)\n */\n get DevelopmentDependency(): EmptyOrBooleanString {\n return this._developmentDependency ??= '';\n }\n\n /**\n * @returns The {@link https://spdx.org/licenses/ SPDX license identifier} or\n * expression.\n *\n * Default: `''`\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#packing-a-license-expression-or-a-license-file Packing a license expression or a license file}\n * @example \"Apache-2.0\"\n */\n get PackageLicenseExpression(): string {\n return this._packageLicenseExpression ??= '';\n }\n\n /**\n * @returns The path to a license file within the package if you're using a\n * custom license or a license that hasn't been assigned an SPDX identifier.\n *\n * Default: `''`\n */\n get PackageLicenseFile(): string {\n return this._packageLicenseFile ??= '';\n }\n\n /**\n * @returns The package's project URL.\n *\n * Default: `''`\n */\n get PackageProjectUrl(): string {\n return this._packageProjectUrl ??= '';\n }\n\n /**\n * @returns The package icon path, relative to the root of the package.\n *\n * Default: `''`\n * @description You must pack the referenced icon image file. By default, it\n * is not packed.\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#packing-an-icon-image-file Packing an icon image file},\n * {@link https://learn.microsoft.com/en-us/nuget/reference/nuspec#icon icon metadata}\n */\n get PackageIcon(): string {\n return this._packageIcon ??= '';\n }\n\n /**\n * @returns Release notes for the package.\n *\n * Default: `''`\n */\n get PackageReleaseNotes(): string {\n return this._packageReleaseNotes ??= '';\n }\n\n /**\n * @returns The path of the package's README file relative to the package's\n * root.\n *\n * Default: `''`\n * @description You must pack the referenced readme file. By default, it is\n * not packed.\n */\n get PackageReadmeFile(): string {\n return this._packageReadmeFile ??= '';\n }\n\n /**\n * @returns A semicolon-delimited list of tags that designates the package.\n *\n * Default : `''`\n */\n get PackageTags(): string {\n return this._packageTags ??= '';\n }\n\n /**\n * @returns A relative or absolute path determining the where the packed\n * package will be dropped.\n *\n * Default: {@link OutputPath}\n */\n get PackageOutputPath(): string {\n return this._packageOutputPath ??= this.OutputPath;\n }\n\n /**\n * @returns A string-formatted boolean indicating whether the package should\n * create an additional symbols package when the project is packed. The\n * symbols package's format is controlled by the `SymbolPackageFormat`\n * property.\n *\n * Default: `''` (false-y)\n * @description When using `MSBuild -t:pack -p:IncludeSymbols=true`, the\n * corresponding .pdb files are copied along with other output files (.dll,\n * .exe, .winmd, .xml, .json, .pri). Note that setting `IncludeSymbols=true`\n * creates a regular package and a symbols package.\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#includesymbols IncludeSymbols}\n */\n get IncludeSymbols(): EmptyOrBooleanString {\n return this._includeSymbols ??= '';\n }\n\n /**\n * @returns A string-formatted boolean indicating whether the pack process\n * should create a source package. The source package contains the library's\n * source code as well as PDB files. Source files are put under the\n * `src/ProjectName` directory in the resulting package file.\n *\n * Default: `''` (false-y)\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#includesource IncludeSource}\n */\n get IncludeSource(): EmptyOrBooleanString {\n return this._includeSource ??= '';\n }\n\n /**\n * @returns A semicolon-separated list of tags indicating the package's\n * intended use. Custom types are allowed, but cannot be installed via Visual\n * Studio nor nuget.exe. See https://github.com/NuGet/Home/issues/10468.\n *\n * Package types can be version e.g. `PackageType1, 1.0.0.0;PackageType2`\n *\n * Default: `''`\n * @example \"Dependency \", \"DotnetTool\", \"MSBuildSdk\", \"Template\"\n * @see {@link https://learn.microsoft.com/en-us/nuget/create-packages/set-package-type?tabs=dotnet Set a NuGet package type}\n */\n get PackageType(): string {\n return this._packageType ??= '';\n }\n\n /**\n * @returns A string-formatted boolean specifying whether all output files are\n * copied to the *tools* folder instead of the *lib* folder.\n *\n * Default: `''` (false-y)\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#istool IsTool}\n */\n get IsTool(): EmptyOrBooleanString {\n return this._isTool ??= '';\n }\n\n /**\n * @returns The repository URL used to clone or retrieve source code.\n *\n * Default: `''`\n * @example \"https://github.com/NuGet/NuGet.Client.git\".\n */\n get RepositoryUrl(): string {\n return this._repositoryUrl ??= '';\n }\n\n /**\n * @returns The repository type.\n *\n * Default: `''`\n * @example \"git\", \"fts\"\n */\n get RepositoryType(): typeof Type_RepositoryType.inferOut {\n return this._repositoryType ??= '';\n }\n\n /**\n * @returns The (optional) repository commit or changeset to indicate which\n * source the package was built against. {@link RepositoryUrl} must also be\n * specified for this property to be included.\n *\n * Default: `''`\n * @description This is evaluated only during the \"Pack\" and \"Publish\"\n * Targets. If using nuget.exe or Visual Studio, NuGet 4.7.0 or later is\n * required.\n * @example \"0e4d1b598f350b3dc675018d539114d1328189ef\"\n */\n get RepositoryCommit(): string {\n return this._repositoryCommit ??= '';\n }\n\n /**\n * @returns A string specifying the format of the symbols package. If\n * \"symbols.nupkg\", a legacy symbols package is created with a .symbols.nupkg\n * extension containing PDBs, DLLs, and other output files. If \"snupkg\", a\n * snupkg symbol package is created containing the portable PDBs. The default\n * is \"symbols.nupkg\".\n *\n * Default: \"symbols.nupkg\"\n * @example \"symbols.nupkg\", \"snupkg\"\n */\n get SymbolPackageFormat(): typeof Type_SymbolPackageFormat.inferOut {\n return this._symbolPackageFormat ??= 'symbols.nupkg';\n }\n\n /**\n * @returns A string-formatted boolean specifying that `pack` should not run\n * package analysis after building the package.\n *\n * Default: `''` (false-y)\n */\n get NoPackageAnalysis(): EmptyOrBooleanString {\n return this._noPackageAnalysis ??= '';\n }\n\n /**\n * @returns A string specifying the minimum version of the NuGet client that\n * can install this package, enforced by nuget.exe and the Visual Studio\n * Package Manager.\n *\n * Default: `''`\n */\n get MinClientVersion(): string {\n return this._minClientVersion ??= '';\n }\n\n /**\n * @returns A string-formatted boolean value specifying whether the build\n * output assemblies should be packed into the .nupkg file or not.\n *\n * Default: `\"true\"`\n */\n get IncludeBuildOutput(): BooleanString {\n return this._includeBuiltOutput ??= 'true';\n }\n\n /**\n * @returns A string-formatted boolean specifying whether any items that have\n * a type of Content are included in the resulting package automatically.\n *\n * Default: `\"true\"`\n */\n get IncludeContentInPack(): BooleanString {\n return this._includeContentInPack ??= 'true';\n }\n\n /**\n * @returns The output directory of the output assemblies relative to the root\n * of the package. The output assemblies (and other output files) are copied\n * into their respective framework folders.\n *\n * Default: `''`\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#output-assemblies Output assemblies}\n */\n get BuildOutputTargetFolder(): string {\n return this._buildOutputTargetFolder ??= '';\n }\n\n /**\n * @returns A semicolon-separated list of default locations of where all the\n * content files should go if `PackagePath` is not specified for them.\n *\n * Default: `\"content;contentFiles\"`\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#including-content-in-a-package Including content in a package}\n */\n get ContentTargetFolders(): string {\n return this._contentTargetFolders ??= 'content;contentFiles';\n }\n\n /**\n * @returns The relative or absolute path to the `*.nuspec` file being used\n * for packing. If specified, it's used **exclusively** for packaging\n * information, and any information in the projects is not used.\n *\n * Default: `''`\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#packing-using-a-nuspec-file Packing using a .nuspec}\n */\n get NuspecFile(): string {\n return this._nuspecFile ??= '';\n }\n\n /**\n * @returns The base path for the *.nuspec* file.\n *\n * Default: `''`\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#packing-using-a-nuspec-file Packing using a .nuspec}\n */\n get NuspecBasePath(): string {\n return this._nuspecBasePath ??= '';\n }\n\n /**\n * @returns A semicolon-separated list of key=value pairs.\n *\n * Default: `''`\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#packing-using-a-nuspec-file Packing using a .nuspec}\n */\n get NuspecProperties(): string {\n return this._nuspecProperties ??= '';\n }\n\n /**\n * @returns A human-friendly title of the package, typically used in UI displays as\n * on nuget.org and the Package Manager in Visual Studio.\n * Default: {@link PackageId}\n */\n get Title(): string {\n return this._title ??= this.PackageId;\n }\n\n /**\n * @returns Company name or information.\n *\n * Default: {@link Authors}\n */\n get Company(): string {\n return this._company ??= this.Authors;\n }\n\n /**\n * @returns Product name or information.\n *\n * Default: {@link AssemblyName}\n */\n get Product(): string {\n return this._product ??= this.AssemblyName;\n }\n}\n\nexport type Class_NPP = ClassLike<\n typeof NugetProjectProperties\n & WithProto<Class_MSBPP>\n>;\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class NPPGetterNames {\n private static _prototypeChain: ProtoChainOfClass<Class_NPP> | undefined;\n private static get PrototypeChain(): [Class_NPP, Class_MSBPP] {\n return this._prototypeChain ??= getPrototypesChainOf(NugetProjectProperties as Class_NPP, 'classes');\n }\n\n private static _instanceGetters: Exclude<keyof NugetProjectProperties, keyof MSBuildProjectProperties>[] | undefined;\n private static _instanceGettersRecursive: (keyof NugetProjectProperties)[] | undefined;\n private static _StaticGetters: never[] | undefined;\n private static _StaticGettersRecursive: (keyof typeof NugetProjectProperties)[] | undefined;\n\n public static get InstanceGetters(): Exclude<keyof NugetProjectProperties, keyof MSBuildProjectProperties>[] {\n return this._instanceGetters ??= listOwnGetters(NugetProjectProperties as Class_NPP, 'Instance');\n }\n\n public static get InstanceGettersRecursive(): (keyof NugetProjectProperties)[] {\n return this._instanceGettersRecursive ??= this.PrototypeChain.flatMap(\n proto => listOwnGetters<typeof proto, 'Instance'>(proto, 'Instance'),\n );\n }\n\n public static get StaticGetters(): never[] {\n return this._StaticGetters ??= listOwnGetters(NugetProjectProperties as Class_NPP, 'Static');\n };\n\n public static get StaticGettersRecursive(): ('prototype' | 'GetFullPath')[] {\n return this._StaticGettersRecursive ??= this.PrototypeChain.flatMap(\n proto => listOwnGetters(proto, 'Static'),\n );\n }\n}\n\n/** @module NugetProjectProperties */\n"],"mappings":"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"}
1
+ {"version":3,"file":"NugetProjectProperties.mjs","names":[],"sources":["../../src/dotnet/NugetProjectProperties.ts"],"sourcesContent":["import { type } from 'arktype';\nimport { CaseInsensitiveMap } from '../CaseInsensitiveMap.ts';\nimport {\n tBooleanString,\n tEmptyOrBooleanString,\n type BooleanString,\n type EmptyOrBooleanString,\n} from '../utils/miscTypes.ts';\nimport {\n getPrototypesChainOf,\n listOwnGetters,\n type ClassLike,\n type ProtoChainOfClass,\n type WithProto,\n} from '../utils/reflection.ts';\nimport { MSBuildProjectProperties, type Class_MSBPP } from './MSBuildProjectProperties.ts';\n\nconst Type_RepositoryType: type<'' | 'git' | 'tfs'> = type('\"\"|\"git\"|\"tfs\"');\nconst Type_SymbolPackageFormat: type<'symbols.nupkg' | 'snupkg'> = type('\"symbols.nupkg\" | \"snupkg\"');\n\n/**\n * A readonly record of a .csproj or .fsproj with NuGet configuration properties in\n * addition to those specified by {@link MSBuildProjectProperties}. This record\n * should be considered immutable. A new instance should be constructed from MSBuild's evaluation output.\n * @see https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#pack-target-inputs\n */\nexport class NugetProjectProperties extends MSBuildProjectProperties {\n // #region private\n private _isPackable: BooleanString | undefined;\n private _suppressDependenciesWhenPacking: BooleanString | undefined;\n private _packageVersion: string | undefined;\n private _packageId: string | undefined;\n private _packageDescription: string | undefined;\n private _authors: string | undefined;\n private _copyright: string | undefined;\n private _packageRequireLicenseAcceptance: BooleanString | undefined;\n private _developmentDependency: EmptyOrBooleanString | undefined;\n private _packageLicenseExpression: string | undefined;\n private _packageLicenseFile: string | undefined;\n private _packageProjectUrl: string | undefined;\n private _packageIcon: string | undefined;\n private _packageReleaseNotes: string | undefined;\n private _packageReadmeFile: string | undefined;\n private _packageTags: string | undefined;\n private _packageOutputPath: string | undefined;\n private _includeSymbols: EmptyOrBooleanString | undefined;\n private _includeSource: EmptyOrBooleanString | undefined;\n private _packageType: string | undefined;\n private _isTool: EmptyOrBooleanString | undefined;\n private _repositoryUrl: string | undefined;\n private _repositoryType: '' | 'git' | 'tfs' | undefined;\n private _repositoryCommit: string | undefined;\n private _symbolPackageFormat: 'symbols.nupkg' | 'snupkg' | undefined;\n private _noPackageAnalysis: EmptyOrBooleanString | undefined;\n private _minClientVersion: string | undefined;\n private _includeBuiltOutput: BooleanString | undefined;\n private _includeContentInPack: BooleanString | undefined;\n private _buildOutputTargetFolder: string | undefined;\n private _contentTargetFolders: string | undefined;\n private _nuspecFile: string | undefined;\n private _nuspecBasePath: string | undefined;\n private _nuspecProperties: string | undefined;\n private _title: string | undefined;\n private _company: string | undefined;\n private _product: string | undefined;\n // #endregion private\n\n /**\n * Initialize a readonly record of an MSBuild project's properties, including those related to NuGet.\n * @param msbuildProjectFullPath See {@link NugetProjectProperties.MSBuildProjectFullPath}\n * @param properties The dictionary returned by MSBuild's `-getProperty:propname,...` argument\n */\n constructor(\n msbuildProjectFullPath: string,\n properties: CaseInsensitiveMap<string, string>,\n ) {\n /**\n * names of properties to consume in this constructor instead of its super.\n * These are the names of getters, lowercased.\n */\n const keysToMoveOut = NPPGetterNames.InstanceGetters;\n /** Entries to remove from {@link properties} and apply to `this` after calling `super` */\n const consumables = new CaseInsensitiveMap<string, string>();\n // move property by key from `properties` to `consumables`. The types of keys and values in `properties` do not matter here.\n for (const key of keysToMoveOut) {\n const value = NugetProjectProperties.getAndForget(properties, key);\n if (value !== undefined)\n consumables.set(key, value);\n }\n\n // Pass the remainder to super\n super(msbuildProjectFullPath, properties);\n\n /** convert values to strings */\n for (const [value, key] of consumables.entries()) {\n if (typeof value !== 'string')\n consumables.set(key, String(value));\n }\n\n const _getAndForget = (key: string) => NugetProjectProperties.getAndForget(consumables, key);\n let data;\n this._authors = _getAndForget('Authors');\n this._buildOutputTargetFolder = _getAndForget('BuildOutputTargetFolder');\n this._company = _getAndForget('Company');\n this._contentTargetFolders = _getAndForget('ContentTargetFolders');\n this._copyright = _getAndForget('Copyright');\n if (tEmptyOrBooleanString.allows(data = _getAndForget('DevelopmentDependency')))\n this._developmentDependency = data;\n if (tBooleanString.allows(data = _getAndForget('IncludeBuiltOutput')))\n this._includeBuiltOutput = data;\n if (tBooleanString.allows(data = _getAndForget('IncludeContentInPack')))\n this._includeContentInPack = data;\n if (tEmptyOrBooleanString.allows(data = _getAndForget('IncludeSource')))\n this._includeSource = data;\n if (tEmptyOrBooleanString.allows(data = _getAndForget('IncludeSymbols')))\n this._includeSymbols = data;\n if (tBooleanString.allows(data = _getAndForget('IsPackable')))\n this._isPackable = data;\n if (tEmptyOrBooleanString.allows(data = _getAndForget('IsTool')))\n this._isTool = data;\n this._minClientVersion = _getAndForget('MinClientVersion');\n if (tEmptyOrBooleanString.allows(data = _getAndForget('NoPackageAnalysis')))\n this._noPackageAnalysis = data;\n this._nuspecBasePath = _getAndForget('NuspecBasePath');\n this._nuspecFile = _getAndForget('NuspecFile');\n this._nuspecProperties = _getAndForget('NuspecProperties');\n this._packageDescription = _getAndForget('PackageDescription');\n this._packageIcon = _getAndForget('PackageIcon');\n this._packageId = _getAndForget('PackageId');\n this._packageLicenseExpression = _getAndForget('PackageLicenseExpression');\n this._packageLicenseFile = _getAndForget('PackageLicenseFile');\n this._packageOutputPath = _getAndForget('PackageOutputPath');\n this._packageProjectUrl = _getAndForget('PackageProjectUrl');\n this._packageReadmeFile = _getAndForget('PackageReadmeFile');\n this._packageReleaseNotes = _getAndForget('PackageReleaseNotes');\n if (tBooleanString.allows(data = _getAndForget('PackageRequireLicenseAcceptance')))\n this._packageRequireLicenseAcceptance = data;\n this._packageTags = _getAndForget('PackageTags');\n this._packageType = _getAndForget('PackageType');\n this._packageVersion = _getAndForget('PackageVersion');\n this._product = _getAndForget('Product');\n this._repositoryCommit = _getAndForget('RepositoryCommit');\n if (Type_RepositoryType.allows(data = _getAndForget('RepositoryType')))\n this._repositoryType = data;\n this._repositoryUrl = _getAndForget('RepositoryUrl');\n if (tBooleanString.allows(data = _getAndForget('SuppressDependenciesWhenPacking')))\n this._suppressDependenciesWhenPacking = data;\n if (Type_SymbolPackageFormat.allows(data = _getAndForget('SymbolPackageFormat')))\n this._symbolPackageFormat = data;\n this._title = _getAndForget('Title');\n }\n\n /**\n * @returns A string-formatted boolean. If 'false', the project's `Pack`\n * Target (if available) will no-op.\n *\n * Default: `\"true\"`\n */\n get IsPackable(): BooleanString {\n return this._isPackable ??= 'true';\n }\n\n /**\n * @returns `\"true\"` or `\"false\"`. If \"true\", the package's dependencies are\n * excluded from the generated NuGet package.\n *\n * Default: `\"false\"`\n */\n get SuppressDependenciesWhenPacking(): BooleanString {\n return this._suppressDependenciesWhenPacking ??= 'false';\n }\n\n /**\n * @returns A semver-compatible version number in the form\n * Major.Minor.Patch[-Suffix], where -Suffix identifies prerelease versions.\n *\n * Default: {@link Version}\n * @example \"1.0.0\", \"1.0.0-beta\", \"1.0.0-beta-00345\"\n */\n get PackageVersion(): string {\n return this._packageVersion ??= this.Version;\n }\n\n /**\n * @returns The ID of the resulting NuGet package.\n *\n * Default: {@link AssemblyName}\n */\n get PackageId(): string {\n return this._packageId ??= this.AssemblyName;\n }\n\n /**\n * @returns A long description of the package for UI display.\n *\n * Default: {@link Description}\n */\n get PackageDescription(): string {\n return this._packageDescription ??= this.Description;\n }\n\n /**\n * @returns A semicolon-separated list of the package's authors, matching the\n * profile names on nuget.org. These are displayed in the NuGet Gallery on\n * nuget.org and are used to cross-reference packages by the same authors.\n *\n * Default: {@link AssemblyName `AssemblyName`}\n */\n get Authors(): string {\n return this._authors ??= this.AssemblyName;\n }\n\n /**\n * @returns Copyright details for the package.\n *\n * Default: `''`\n */\n get Copyright(): string {\n return this._copyright ??= '';\n }\n\n /**\n * @returns A string-formatted boolean. If `\"true\"`, the client must prompt the\n * consumer to accept the package license before installing the package.\n *\n * Default: `\"false\"`\n */\n get PackageRequireLicenseAcceptance(): BooleanString {\n return this._packageRequireLicenseAcceptance ??= 'false';\n }\n\n /**\n * This boolean only affects the package created from the project.\n * @see\n * {@link https://github.com/NuGet/Home/wiki/DevelopmentDependency-support-for-PackageReference DevelopmentDependency support for PackageReference}\n * @returns A string-formatted boolean. If `\"true\"`, the package is marked as\n * a development-only dependency and is prevented from being included as a\n * dependency in other packages. With PackageReference (NuGet 4.8+), this flag\n * also means that compile-time assets are excluded from compilation.\n *\n * Default: `''` (`false`-y)\n */\n get DevelopmentDependency(): EmptyOrBooleanString {\n return this._developmentDependency ??= '';\n }\n\n /**\n * @returns The {@link https://spdx.org/licenses/ SPDX license identifier} or\n * expression.\n *\n * Default: `''`\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#packing-a-license-expression-or-a-license-file Packing a license expression or a license file}\n * @example \"Apache-2.0\"\n */\n get PackageLicenseExpression(): string {\n return this._packageLicenseExpression ??= '';\n }\n\n /**\n * @returns The path to a license file within the package if you're using a\n * custom license or a license that hasn't been assigned an SPDX identifier.\n *\n * Default: `''`\n */\n get PackageLicenseFile(): string {\n return this._packageLicenseFile ??= '';\n }\n\n /**\n * @returns The package's project URL.\n *\n * Default: `''`\n */\n get PackageProjectUrl(): string {\n return this._packageProjectUrl ??= '';\n }\n\n /**\n * @returns The package icon path, relative to the root of the package.\n *\n * Default: `''`\n * @description You must pack the referenced icon image file. By default, it\n * is not packed.\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#packing-an-icon-image-file Packing an icon image file},\n * {@link https://learn.microsoft.com/en-us/nuget/reference/nuspec#icon icon metadata}\n */\n get PackageIcon(): string {\n return this._packageIcon ??= '';\n }\n\n /**\n * @returns Release notes for the package.\n *\n * Default: `''`\n */\n get PackageReleaseNotes(): string {\n return this._packageReleaseNotes ??= '';\n }\n\n /**\n * @returns The path of the package's README file relative to the package's\n * root.\n *\n * Default: `''`\n * @description You must pack the referenced readme file. By default, it is\n * not packed.\n */\n get PackageReadmeFile(): string {\n return this._packageReadmeFile ??= '';\n }\n\n /**\n * @returns A semicolon-delimited list of tags that designates the package.\n *\n * Default : `''`\n */\n get PackageTags(): string {\n return this._packageTags ??= '';\n }\n\n /**\n * @returns A relative or absolute path determining the where the packed\n * package will be dropped.\n *\n * Default: {@link OutputPath}\n */\n get PackageOutputPath(): string {\n return this._packageOutputPath ??= this.OutputPath;\n }\n\n /**\n * @returns A string-formatted boolean indicating whether the package should\n * create an additional symbols package when the project is packed. The\n * symbols package's format is controlled by the `SymbolPackageFormat`\n * property.\n *\n * Default: `''` (false-y)\n * @description When using `MSBuild -t:pack -p:IncludeSymbols=true`, the\n * corresponding .pdb files are copied along with other output files (.dll,\n * .exe, .winmd, .xml, .json, .pri). Note that setting `IncludeSymbols=true`\n * creates a regular package and a symbols package.\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#includesymbols IncludeSymbols}\n */\n get IncludeSymbols(): EmptyOrBooleanString {\n return this._includeSymbols ??= '';\n }\n\n /**\n * @returns A string-formatted boolean indicating whether the pack process\n * should create a source package. The source package contains the library's\n * source code as well as PDB files. Source files are put under the\n * `src/ProjectName` directory in the resulting package file.\n *\n * Default: `''` (false-y)\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#includesource IncludeSource}\n */\n get IncludeSource(): EmptyOrBooleanString {\n return this._includeSource ??= '';\n }\n\n /**\n * @returns A semicolon-separated list of tags indicating the package's\n * intended use. Custom types are allowed, but cannot be installed via Visual\n * Studio nor nuget.exe. See https://github.com/NuGet/Home/issues/10468.\n *\n * Package types can be version e.g. `PackageType1, 1.0.0.0;PackageType2`\n *\n * Default: `''`\n * @example \"Dependency \", \"DotnetTool\", \"MSBuildSdk\", \"Template\"\n * @see {@link https://learn.microsoft.com/en-us/nuget/create-packages/set-package-type?tabs=dotnet Set a NuGet package type}\n */\n get PackageType(): string {\n return this._packageType ??= '';\n }\n\n /**\n * @returns A string-formatted boolean specifying whether all output files are\n * copied to the *tools* folder instead of the *lib* folder.\n *\n * Default: `''` (false-y)\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#istool IsTool}\n */\n get IsTool(): EmptyOrBooleanString {\n return this._isTool ??= '';\n }\n\n /**\n * @returns The repository URL used to clone or retrieve source code.\n *\n * Default: `''`\n * @example \"https://github.com/NuGet/NuGet.Client.git\".\n */\n get RepositoryUrl(): string {\n return this._repositoryUrl ??= '';\n }\n\n /**\n * @returns The repository type.\n *\n * Default: `''`\n * @example \"git\", \"fts\"\n */\n get RepositoryType(): typeof Type_RepositoryType.inferOut {\n return this._repositoryType ??= '';\n }\n\n /**\n * @returns The (optional) repository commit or changeset to indicate which\n * source the package was built against. {@link RepositoryUrl} must also be\n * specified for this property to be included.\n *\n * Default: `''`\n * @description This is evaluated only during the \"Pack\" and \"Publish\"\n * Targets. If using nuget.exe or Visual Studio, NuGet 4.7.0 or later is\n * required.\n * @example \"0e4d1b598f350b3dc675018d539114d1328189ef\"\n */\n get RepositoryCommit(): string {\n return this._repositoryCommit ??= '';\n }\n\n /**\n * @returns A string specifying the format of the symbols package. If\n * \"symbols.nupkg\", a legacy symbols package is created with a .symbols.nupkg\n * extension containing PDBs, DLLs, and other output files. If \"snupkg\", a\n * snupkg symbol package is created containing the portable PDBs. The default\n * is \"symbols.nupkg\".\n *\n * Default: \"symbols.nupkg\"\n * @example \"symbols.nupkg\", \"snupkg\"\n */\n get SymbolPackageFormat(): typeof Type_SymbolPackageFormat.inferOut {\n return this._symbolPackageFormat ??= 'symbols.nupkg';\n }\n\n /**\n * @returns A string-formatted boolean specifying that `pack` should not run\n * package analysis after building the package.\n *\n * Default: `''` (false-y)\n */\n get NoPackageAnalysis(): EmptyOrBooleanString {\n return this._noPackageAnalysis ??= '';\n }\n\n /**\n * @returns A string specifying the minimum version of the NuGet client that\n * can install this package, enforced by nuget.exe and the Visual Studio\n * Package Manager.\n *\n * Default: `''`\n */\n get MinClientVersion(): string {\n return this._minClientVersion ??= '';\n }\n\n /**\n * @returns A string-formatted boolean value specifying whether the build\n * output assemblies should be packed into the .nupkg file or not.\n *\n * Default: `\"true\"`\n */\n get IncludeBuildOutput(): BooleanString {\n return this._includeBuiltOutput ??= 'true';\n }\n\n /**\n * @returns A string-formatted boolean specifying whether any items that have\n * a type of Content are included in the resulting package automatically.\n *\n * Default: `\"true\"`\n */\n get IncludeContentInPack(): BooleanString {\n return this._includeContentInPack ??= 'true';\n }\n\n /**\n * @returns The output directory of the output assemblies relative to the root\n * of the package. The output assemblies (and other output files) are copied\n * into their respective framework folders.\n *\n * Default: `''`\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#output-assemblies Output assemblies}\n */\n get BuildOutputTargetFolder(): string {\n return this._buildOutputTargetFolder ??= '';\n }\n\n /**\n * @returns A semicolon-separated list of default locations of where all the\n * content files should go if `PackagePath` is not specified for them.\n *\n * Default: `\"content;contentFiles\"`\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#including-content-in-a-package Including content in a package}\n */\n get ContentTargetFolders(): string {\n return this._contentTargetFolders ??= 'content;contentFiles';\n }\n\n /**\n * @returns The relative or absolute path to the `*.nuspec` file being used\n * for packing. If specified, it's used **exclusively** for packaging\n * information, and any information in the projects is not used.\n *\n * Default: `''`\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#packing-using-a-nuspec-file Packing using a .nuspec}\n */\n get NuspecFile(): string {\n return this._nuspecFile ??= '';\n }\n\n /**\n * @returns The base path for the *.nuspec* file.\n *\n * Default: `''`\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#packing-using-a-nuspec-file Packing using a .nuspec}\n */\n get NuspecBasePath(): string {\n return this._nuspecBasePath ??= '';\n }\n\n /**\n * @returns A semicolon-separated list of key=value pairs.\n *\n * Default: `''`\n * @see\n * {@link https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#packing-using-a-nuspec-file Packing using a .nuspec}\n */\n get NuspecProperties(): string {\n return this._nuspecProperties ??= '';\n }\n\n /**\n * @returns A human-friendly title of the package, typically used in UI displays as\n * on nuget.org and the Package Manager in Visual Studio.\n * Default: {@link PackageId}\n */\n get Title(): string {\n return this._title ??= this.PackageId;\n }\n\n /**\n * @returns Company name or information.\n *\n * Default: {@link Authors}\n */\n get Company(): string {\n return this._company ??= this.Authors;\n }\n\n /**\n * @returns Product name or information.\n *\n * Default: {@link AssemblyName}\n */\n get Product(): string {\n return this._product ??= this.AssemblyName;\n }\n}\n\nexport type Class_NPP = ClassLike<\n typeof NugetProjectProperties\n & WithProto<Class_MSBPP>\n>;\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class NPPGetterNames {\n private static _prototypeChain: ProtoChainOfClass<Class_NPP> | undefined;\n private static get PrototypeChain(): [Class_NPP, Class_MSBPP] {\n return this._prototypeChain ??= getPrototypesChainOf(NugetProjectProperties as Class_NPP, 'classes');\n }\n\n private static _instanceGetters: Exclude<keyof NugetProjectProperties, keyof MSBuildProjectProperties>[] | undefined;\n private static _instanceGettersRecursive: (keyof NugetProjectProperties)[] | undefined;\n private static _StaticGetters: never[] | undefined;\n private static _StaticGettersRecursive: (keyof typeof NugetProjectProperties)[] | undefined;\n\n public static get InstanceGetters(): Exclude<keyof NugetProjectProperties, keyof MSBuildProjectProperties>[] {\n return this._instanceGetters ??= listOwnGetters(NugetProjectProperties as Class_NPP, 'Instance');\n }\n\n public static get InstanceGettersRecursive(): (keyof NugetProjectProperties)[] {\n return this._instanceGettersRecursive ??= this.PrototypeChain.flatMap(\n proto => listOwnGetters<typeof proto, 'Instance'>(proto, 'Instance'),\n );\n }\n\n public static get StaticGetters(): never[] {\n return this._StaticGetters ??= listOwnGetters(NugetProjectProperties as Class_NPP, 'Static');\n };\n\n public static get StaticGettersRecursive(): ('prototype' | 'GetFullPath')[] {\n return this._StaticGettersRecursive ??= this.PrototypeChain.flatMap(\n proto => listOwnGetters(proto, 'Static'),\n );\n }\n}\n\n/** @module NugetProjectProperties */\n"],"mappings":"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"}