@ducky7go/ducky-cli 0.0.1 → 0.0.3-dev.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../../../src/commands/nuget/pack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC;;;GAGG;AACH,eAAO,MAAM,gBAAgB,SAuEzB,CAAC"}
1
+ {"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../../../src/commands/nuget/pack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC;;;GAGG;AACH,eAAO,MAAM,gBAAgB,SA8FzB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { Command } from 'commander';
2
- import { resolve, join, basename } from 'path';
2
+ import { resolve, join, basename, relative } from 'path';
3
3
  import { writeFile, mkdir } from 'fs/promises';
4
4
  import { createLogger, LogLevel } from '../../utils/index.js';
5
- import { parseInfoIni, generateNuspec, collectFilesForPackage, validateMod, } from '../../formats/nuget/index.js';
5
+ import { parseInfoIni, generateNuspec, collectFilesForPackage, validateMod, loadDescription, loadReleaseNotes, } from '../../formats/nuget/index.js';
6
6
  import { NuGetCliManager } from '../../formats/nuget/client.js';
7
7
  import { FileSystemError, ValidationError } from '../../utils/errors.js';
8
8
  const logger = createLogger();
@@ -22,7 +22,10 @@ export const nugetPackCommand = new Command('pack')
22
22
  logger.setLevel(LogLevel.DEBUG);
23
23
  }
24
24
  const modPath = resolve(path);
25
- const outputPath = options.output ? resolve(options.output) : modPath;
25
+ // Default output to project root pkg directory
26
+ const projectRoot = process.cwd();
27
+ const defaultOutputPath = join(projectRoot, 'pkg');
28
+ const outputPath = options.output ? resolve(options.output) : defaultOutputPath;
26
29
  logger.header('NuGet Pack');
27
30
  logger.info(`Mod path: ${modPath}`);
28
31
  logger.info(`Output path: ${outputPath}`);
@@ -41,10 +44,29 @@ export const nugetPackCommand = new Command('pack')
41
44
  throw new ValidationError('Mod validation failed');
42
45
  }
43
46
  logger.success('Validation passed');
47
+ // Ensure output directory exists
48
+ await mkdir(outputPath, { recursive: true });
49
+ // Load description (README)
50
+ logger.info('Loading description...');
51
+ const longDescription = await loadDescription(modPath, metadata);
52
+ logger.success(`Loaded description: ${longDescription.length} characters`);
53
+ // Write README.md to pkg directory if description was loaded
54
+ let readmeFilePath = '';
55
+ if (longDescription && longDescription.length > 0) {
56
+ const readmePath = join(outputPath, 'README.md');
57
+ await writeFile(readmePath, longDescription, 'utf-8');
58
+ // Compute relative path from modPath to outputPath
59
+ readmeFilePath = join(relative(modPath, outputPath), 'README.md');
60
+ logger.info('Generated README.md in pkg directory');
61
+ }
62
+ // Load release notes
63
+ logger.info('Loading release notes...');
64
+ const releaseNotes = await loadReleaseNotes(modPath, metadata);
65
+ logger.success(`Loaded release notes: ${releaseNotes.length} characters`);
44
66
  // Generate .nuspec
45
67
  logger.info('Generating .nuspec file...');
46
- const nuspecContent = generateNuspec(metadata);
47
- const nuspecPath = join(modPath, `${metadata.name}.nuspec`);
68
+ const nuspecContent = await generateNuspec(metadata, readmeFilePath, releaseNotes);
69
+ const nuspecPath = join(outputPath, `${metadata.name}.nuspec`);
48
70
  await writeFile(nuspecPath, nuspecContent, 'utf-8');
49
71
  logger.success(`Generated: ${basename(nuspecPath)}`);
50
72
  // Collect files
@@ -55,11 +77,9 @@ export const nugetPackCommand = new Command('pack')
55
77
  recursive: true,
56
78
  });
57
79
  logger.success(`Found ${files.length} files`);
58
- // Ensure output directory exists
59
- await mkdir(outputPath, { recursive: true });
60
80
  // Pack using NuGet CLI
61
81
  const client = new NuGetCliManager();
62
- const nupkgPath = await client.pack(nuspecPath, outputPath);
82
+ const nupkgPath = await client.pack(nuspecPath, outputPath, modPath);
63
83
  logger.blank();
64
84
  logger.success(`Package created: ${nupkgPath}`);
65
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pack.js","sourceRoot":"","sources":["../../../src/commands/nuget/pack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAiB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EACL,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,WAAW,GACZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEzE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;AAE9B;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAChD,WAAW,CAAC,kCAAkC,CAAC;KAC/C,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KAC3C,MAAM,CAAC,qBAAqB,EAAE,kCAAkC,CAAC;KACjE,MAAM,CAAC,eAAe,EAAE,uBAAuB,CAAC;KAChD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAO,EAAE,EAAE;IACtC,IAAI,CAAC;QACH,mBAAmB;QACnB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAEtE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC;QAE1C,iBAAiB;QACjB,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,WAAW,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAEhE,eAAe;QACf,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjC,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACnC,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACtC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YACD,MAAM,IAAI,eAAe,CAAC,uBAAuB,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAEpC,mBAAmB;QACnB,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,IAAI,SAAS,CAAC,CAAC;QAC5D,MAAM,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,cAAc,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAErD,gBAAgB;QAChB,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC;YACzC,OAAO;YACP,UAAU;YACV,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,SAAS,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;QAE9C,iCAAiC;QACjC,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7C,uBAAuB;QACvB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAE5D,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,OAAO,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,eAAe,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YACzE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"pack.js","sourceRoot":"","sources":["../../../src/commands/nuget/pack.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/commands/nuget/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC;;;GAGG;AACH,eAAO,MAAM,gBAAgB,SAgHzB,CAAC"}
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/commands/nuget/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC;;;GAGG;AACH,eAAO,MAAM,gBAAgB,SAqIzB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { Command } from 'commander';
2
- import { resolve } from 'path';
2
+ import { resolve, relative } from 'path';
3
3
  import { fileExists } from '../../utils/fs.js';
4
4
  import { createLogger, resolveConfig, getApiKey, getServerUrl, LogLevel } from '../../utils/index.js';
5
- import { parseInfoIni, validateMod } from '../../formats/nuget/index.js';
5
+ import { parseInfoIni, generateNuspec, validateMod, loadDescription, loadReleaseNotes } from '../../formats/nuget/index.js';
6
6
  import { NuGetCliManager } from '../../formats/nuget/client.js';
7
7
  import { FileSystemError, ValidationError, ConfigError } from '../../utils/errors.js';
8
8
  const logger = createLogger();
@@ -29,7 +29,11 @@ export const nugetPushCommand = new Command('push')
29
29
  if (options.pack) {
30
30
  logger.header('NuGet Push (with Pack)');
31
31
  const modPath = resolve(path);
32
- const outputPath = options.output ? resolve(options.output) : modPath;
32
+ // Default output to project root pkg directory
33
+ const { join } = await import('path');
34
+ const projectRoot = process.cwd();
35
+ const defaultOutputPath = join(projectRoot, 'pkg');
36
+ const outputPath = options.output ? resolve(options.output) : defaultOutputPath;
33
37
  logger.info(`Mod path: ${modPath}`);
34
38
  logger.info(`Output path: ${outputPath}`);
35
39
  // Parse metadata
@@ -47,20 +51,34 @@ export const nugetPushCommand = new Command('push')
47
51
  throw new ValidationError('Mod validation failed');
48
52
  }
49
53
  logger.success('Validation passed');
50
- // Generate .nuspec
51
- logger.info('Generating .nuspec file...');
52
- const { generateNuspec } = await import('../../formats/nuget/nuspec.js');
53
- const nuspecContent = generateNuspec(metadata);
54
- const { writeFile } = await import('fs/promises');
55
- const { join } = await import('path');
56
- const nuspecPath = join(modPath, `${metadata.name}.nuspec`);
57
- await writeFile(nuspecPath, nuspecContent, 'utf-8');
58
- logger.success('Generated .nuspec file');
59
54
  // Pack using NuGet CLI
60
- const { mkdir } = await import('fs/promises');
55
+ const { mkdir, writeFile } = await import('fs/promises');
61
56
  await mkdir(outputPath, { recursive: true });
57
+ // Load description (README)
58
+ logger.info('Loading description...');
59
+ const longDescription = await loadDescription(modPath, metadata);
60
+ logger.success(`Loaded description: ${longDescription.length} characters`);
61
+ // Write README.md to pkg directory if description was loaded
62
+ let readmeFilePath = '';
63
+ if (longDescription && longDescription.length > 0) {
64
+ const readmePath = join(outputPath, 'README.md');
65
+ await writeFile(readmePath, longDescription, 'utf-8');
66
+ // Compute relative path from modPath to outputPath
67
+ readmeFilePath = join(relative(modPath, outputPath), 'README.md');
68
+ logger.info('Generated README.md in pkg directory');
69
+ }
70
+ // Load release notes
71
+ logger.info('Loading release notes...');
72
+ const releaseNotes = await loadReleaseNotes(modPath, metadata);
73
+ logger.success(`Loaded release notes: ${releaseNotes.length} characters`);
74
+ // Generate .nuspec from template
75
+ logger.info('Generating .nuspec file from template...');
76
+ const nuspecPath = join(outputPath, `${metadata.name}.nuspec`);
77
+ const nuspecContent = await generateNuspec(metadata, readmeFilePath, releaseNotes);
78
+ await writeFile(nuspecPath, nuspecContent, 'utf-8');
79
+ logger.success('Generated .nuspec file');
62
80
  const client = new NuGetCliManager();
63
- nupkgPath = await client.pack(nuspecPath, outputPath);
81
+ nupkgPath = await client.pack(nuspecPath, outputPath, modPath);
64
82
  logger.success(`Package created: ${nupkgPath}`);
65
83
  }
66
84
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/commands/nuget/push.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/commands/nuget/push.ts"],"names":[],"mappings":"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"}
@@ -43,9 +43,10 @@ export declare class NuGetCliManager {
43
43
  * T14: Pack a .nuspec file into a .nupkg package
44
44
  * @param nuspecPath - Path to .nuspec file
45
45
  * @param outputPath - Directory for output .nupkg file
46
+ * @param basePath - Base path for resolving file references (default: nuspec directory)
46
47
  * @returns Path to created .nupkg file
47
48
  */
48
- pack(nuspecPath: string, outputPath: string): Promise<string>;
49
+ pack(nuspecPath: string, outputPath: string, basePath?: string): Promise<string>;
49
50
  /**
50
51
  * T15: Push a .nupkg package to a NuGet server
51
52
  * @param nupkgPath - Path to .nupkg file
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/formats/nuget/client.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,UAAU,WAAW;IACnB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAkB;gBAEtB,MAAM,GAAE,WAAgB;IAMpC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAoBnC;;OAEG;YACW,UAAU;IAcxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;YACW,aAAa;IA8C3B;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqC5D;;;;;OAKG;IACG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgCnE;;;;;;OAMG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAyB7E"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/formats/nuget/client.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,UAAU,WAAW;IACnB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAkB;gBAEtB,MAAM,GAAE,WAAgB;IAMpC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAoBnC;;OAEG;YACW,UAAU;IAcxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;YACW,aAAa;IA8C3B;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwC5D;;;;;;OAMG;IACG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqCtF;;;;;;OAMG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAyB7E"}
@@ -105,12 +105,14 @@ export class NuGetCliManager {
105
105
  */
106
106
  async execute(args, cwd) {
107
107
  const exePath = await this.getExePath();
108
- logger.debug(`Executing: ${exePath} ${args.join(' ')}`);
108
+ // On non-Windows platforms, use mono to run nuget.exe
109
+ const command = this.platform === 'win32' ? exePath : 'mono';
110
+ const commandArgs = this.platform === 'win32' ? args : [exePath, ...args];
111
+ logger.debug(`Executing: ${command} ${commandArgs.join(' ')}`);
109
112
  return new Promise((resolve, reject) => {
110
- const child = spawn(exePath, args, {
113
+ const child = spawn(command, commandArgs, {
111
114
  cwd,
112
115
  stdio: ['inherit', 'pipe', 'pipe'],
113
- shell: true,
114
116
  });
115
117
  let stdout = '';
116
118
  let stderr = '';
@@ -137,12 +139,17 @@ export class NuGetCliManager {
137
139
  * T14: Pack a .nuspec file into a .nupkg package
138
140
  * @param nuspecPath - Path to .nuspec file
139
141
  * @param outputPath - Directory for output .nupkg file
142
+ * @param basePath - Base path for resolving file references (default: nuspec directory)
140
143
  * @returns Path to created .nupkg file
141
144
  */
142
- async pack(nuspecPath, outputPath) {
145
+ async pack(nuspecPath, outputPath, basePath) {
143
146
  logger.info(`Creating NuGet package from ${nuspecPath}...`);
144
147
  const outputDir = resolve(outputPath);
145
148
  const args = ['pack', nuspecPath, '-OutputDirectory', outputDir, '-NoDefaultExcludes'];
149
+ // Add -BasePath if specified (resolves file paths relative to this directory)
150
+ if (basePath) {
151
+ args.push('-BasePath', resolve(basePath));
152
+ }
146
153
  try {
147
154
  const stdout = await this.execute(args);
148
155
  // Extract .nupkg path from output
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/formats/nuget/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/formats/nuget/client.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import type { ModMetadata } from './parser.js';
2
2
  /**
3
- * Generate .nuspec XML content from mod metadata
3
+ * Generate .nuspec XML content from mod metadata using template
4
4
  * Based on NuGet Mod Packaging Specification v1.0
5
5
  *
6
6
  * @param metadata - Parsed mod metadata
7
+ * @param readmeFilePath - Relative path from mod dir to README.md (e.g., "../pkg/README.md")
8
+ * @param releaseNotes - Optional release notes content
7
9
  * @returns .nuspec XML content
8
10
  */
9
- export declare function generateNuspec(metadata: ModMetadata): string;
11
+ export declare function generateNuspec(metadata: ModMetadata, readmeFilePath?: string, releaseNotes?: string): Promise<string>;
10
12
  //# sourceMappingURL=nuspec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nuspec.d.ts","sourceRoot":"","sources":["../../../src/formats/nuget/nuspec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,CAoB5D"}
1
+ {"version":3,"file":"nuspec.d.ts","sourceRoot":"","sources":["../../../src/formats/nuget/nuspec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAgC/C;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,WAAW,EACrB,cAAc,CAAC,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAmEjB"}
@@ -1,49 +1,134 @@
1
+ // Inline template following NuGet Mod Packaging Specification v1.0
2
+ const NUSPEC_TEMPLATE = `<?xml version="1.0" encoding="utf-8"?>
3
+ <package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
4
+ <metadata>
5
+ <id>{{NAME}}</id>
6
+ <version>{{VERSION}}</version>
7
+ <title>{{TITLE}}</title>
8
+ <authors>{{AUTHOR}}</authors>
9
+ <description>{{DESCRIPTION}}</description>
10
+ <tags>{{TAGS}}</tags>
11
+ <icon>icon.png</icon>
12
+ {{PROJECT_URL_BLOCK}}
13
+ {{LICENSE_BLOCK}}
14
+ {{COPYRIGHT_BLOCK}}
15
+ {{DEPENDENCIES}}
16
+ {{README_BLOCK}}
17
+ {{RELEASE_NOTES_BLOCK}}
18
+ </metadata>
19
+ <files>
20
+ <!-- Icon to package root (for NuGet gallery display) -->
21
+ <file src="preview.png" target="icon.png" />
22
+ <!-- Icon also in content/ (preserves original mod structure) -->
23
+ <file src="preview.png" target="content/preview.png" />
24
+ <!-- README.md to docs/ (for NuGet gallery display) -->
25
+ {{README_FILE}}
26
+ <!-- ALL other mod files to content/ -->
27
+ <file src="**" target="content/" exclude="preview.png;README.md;*.nupkg;*.nuspec" />
28
+ </files>
29
+ </package>`;
1
30
  /**
2
- * Generate .nuspec XML content from mod metadata
31
+ * Generate .nuspec XML content from mod metadata using template
3
32
  * Based on NuGet Mod Packaging Specification v1.0
4
33
  *
5
34
  * @param metadata - Parsed mod metadata
35
+ * @param readmeFilePath - Relative path from mod dir to README.md (e.g., "../pkg/README.md")
36
+ * @param releaseNotes - Optional release notes content
6
37
  * @returns .nuspec XML content
7
38
  */
8
- export function generateNuspec(metadata) {
9
- const tags = metadata.tags?.join(' ') || '';
39
+ export async function generateNuspec(metadata, readmeFilePath, releaseNotes) {
40
+ let template = NUSPEC_TEMPLATE;
41
+ // Default tags (per spec: duckymod game-mod)
42
+ const defaultTags = 'duckymod game-mod';
43
+ const tags = metadata.tags?.length ? metadata.tags.join(' ') + ' ' + defaultTags : defaultTags;
44
+ // Title: use displayName, fallback to name
45
+ const title = metadata.displayName || metadata.name;
46
+ // Format dependencies
10
47
  const dependencies = formatDependencies(metadata.dependencies);
11
- const icon = metadata.icon ? `<icon>${escapeXml(metadata.icon)}</icon>` : '';
12
- return `<?xml version="1.0" encoding="utf-8"?>
13
- <package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
14
- <metadata>
15
- <id>${escapeXml(metadata.name)}</id>
16
- <version>${escapeXml(metadata.version)}</version>
17
- ${metadata.description ? `<description>${escapeXml(metadata.description)}</description>` : ''}
18
- ${metadata.author ? `<authors>${escapeXml(metadata.author)}</authors>` : ''}
19
- ${metadata.projectUrl ? `<projectUrl>${escapeXml(metadata.projectUrl)}</projectUrl>` : ''}
20
- ${metadata.license ? `<license type="expression">${escapeXml(metadata.license)}</license>` : ''}
21
- ${metadata.copyright ? `<copyright>${escapeXml(metadata.copyright)}</copyright>` : ''}
22
- ${tags ? `<tags>${escapeXml(tags)}</tags>` : ''}
23
- ${icon}
24
- ${dependencies}
25
- </metadata>
26
- </package>`;
48
+ // Handle optional blocks
49
+ let projectUrlBlock = '';
50
+ if (metadata.projectUrl) {
51
+ projectUrlBlock = `<projectUrl>${escapeXml(metadata.projectUrl)}</projectUrl>`;
52
+ }
53
+ let licenseBlock = '';
54
+ if (metadata.license) {
55
+ licenseBlock = `<license type="expression">${escapeXml(metadata.license)}</license>`;
56
+ }
57
+ let copyrightBlock = '';
58
+ if (metadata.copyright) {
59
+ copyrightBlock = `<copyright>${escapeXml(metadata.copyright)}</copyright>`;
60
+ }
61
+ // Description: use metadata.description for short description
62
+ const description = metadata.description || '';
63
+ // README: add <readme> block if readmeFilePath is provided
64
+ let readmeBlock = '';
65
+ let readmeFile = '';
66
+ if (readmeFilePath) {
67
+ readmeBlock = `<readme>docs/README.md</readme>`;
68
+ readmeFile = `<file src="${escapeXml(readmeFilePath)}" target="docs/" />`;
69
+ }
70
+ // Release notes: add <releaseNotes> block if provided
71
+ let releaseNotesBlock = '';
72
+ if (releaseNotes && releaseNotes.length > 0) {
73
+ // Use CDATA for multi-line content
74
+ if (releaseNotes.includes('\n') || releaseNotes.length > 400) {
75
+ releaseNotesBlock = `<releaseNotes><![CDATA[${releaseNotes}]]></releaseNotes>`;
76
+ }
77
+ else {
78
+ releaseNotesBlock = `<releaseNotes>${escapeXml(releaseNotes)}</releaseNotes>`;
79
+ }
80
+ }
81
+ // Replace placeholders
82
+ template = template.replace(/\{\{NAME\}\}/g, escapeXml(metadata.name));
83
+ template = template.replace(/\{\{VERSION\}\}/g, escapeXml(metadata.version));
84
+ template = template.replace(/\{\{TITLE\}\}/g, escapeXml(title));
85
+ template = template.replace(/\{\{AUTHOR\}\}/g, escapeXml(metadata.author || 'Unknown'));
86
+ template = template.replace(/\{\{DESCRIPTION\}\}/g, formatDescription(description));
87
+ template = template.replace(/\{\{TAGS\}\}/g, escapeXml(tags));
88
+ template = template.replace(/\{\{PROJECT_URL_BLOCK\}\}/g, projectUrlBlock);
89
+ template = template.replace(/\{\{LICENSE_BLOCK\}\}/g, licenseBlock);
90
+ template = template.replace(/\{\{COPYRIGHT_BLOCK\}\}/g, copyrightBlock);
91
+ template = template.replace(/\{\{DEPENDENCIES\}\}/g, dependencies);
92
+ template = template.replace(/\{\{README_BLOCK\}\}/g, readmeBlock);
93
+ template = template.replace(/\{\{README_FILE\}\}/g, readmeFile);
94
+ template = template.replace(/\{\{RELEASE_NOTES_BLOCK\}\}/g, releaseNotesBlock);
95
+ return template;
27
96
  }
28
97
  /**
29
98
  * Format dependencies as NuGet dependency groups
99
+ * Always declares .NETStandard2.1 framework support
30
100
  */
31
101
  function formatDependencies(dependencies) {
32
- if (!dependencies || dependencies.length === 0) {
33
- return '<dependencies />';
102
+ // Build mod dependency items
103
+ let depItems = '';
104
+ if (dependencies && dependencies.length > 0) {
105
+ const items = dependencies
106
+ .map((dep) => {
107
+ const [id, version] = dep.split(':');
108
+ if (version) {
109
+ return ` <dependency id="${escapeXml(id)}" version="${escapeXml(version)}" />`;
110
+ }
111
+ return ` <dependency id="${escapeXml(dep)}" />`;
112
+ })
113
+ .join('\n');
114
+ depItems = '\n' + items;
34
115
  }
35
- const dependencyItems = dependencies
36
- .map((dep) => {
37
- const [id, version] = dep.split(':');
38
- if (version) {
39
- return `<dependency id="${escapeXml(id)}" version="${escapeXml(version)}" />`;
40
- }
41
- return `<dependency id="${escapeXml(dep)}" />`;
42
- })
43
- .join('\n ');
116
+ // Always declare .NETStandard2.1 framework support
44
117
  return `<dependencies>
45
- ${dependencyItems}
46
- </dependencies>`;
118
+ <group targetFramework=".NETStandard2.1">${depItems}
119
+ </group>
120
+ </dependencies>`;
121
+ }
122
+ /**
123
+ * Format description for nuspec
124
+ * Uses CDATA for multi-line or long content (e.g., markdown README)
125
+ */
126
+ function formatDescription(description) {
127
+ // Use CDATA for multi-line content or markdown
128
+ if (description.includes('\n') || description.length > 400) {
129
+ return `<![CDATA[${description}]]>`;
130
+ }
131
+ return escapeXml(description);
47
132
  }
48
133
  /**
49
134
  * Escape special XML characters
@@ -1 +1 @@
1
- {"version":3,"file":"nuspec.js","sourceRoot":"","sources":["../../../src/formats/nuget/nuspec.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,QAAqB;IAClD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC5C,MAAM,YAAY,GAAG,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7E,OAAO;;;UAGC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;eACnB,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;MACpC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;MAC3F,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;MACzE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;MACvF,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;MAC7F,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;MACnF,IAAI,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;MAC7C,IAAI;MACJ,YAAY;;WAEP,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,YAAuB;IACjD,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,MAAM,eAAe,GAAG,YAAY;SACjC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,mBAAmB,SAAS,CAAC,EAAE,CAAC,cAAc,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;QAChF,CAAC;QACD,OAAO,mBAAmB,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;IACjD,CAAC,CAAC;SACD,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElB,OAAO;QACD,eAAe;oBACH,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,GAAG;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"nuspec.js","sourceRoot":"","sources":["../../../src/formats/nuget/nuspec.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,11 @@
3
3
  */
4
4
  export interface ModMetadata {
5
5
  name: string;
6
+ displayName?: string;
6
7
  version: string;
7
8
  description?: string;
9
+ readme?: string;
10
+ releaseNotes?: string;
8
11
  author?: string;
9
12
  icon?: string;
10
13
  tags?: string[];
@@ -12,6 +15,7 @@ export interface ModMetadata {
12
15
  projectUrl?: string;
13
16
  license?: string;
14
17
  copyright?: string;
18
+ publishedFileId?: string;
15
19
  }
16
20
  /**
17
21
  * Parse info.ini file from a mod directory
@@ -28,4 +32,28 @@ export declare function parseInfoIni(modPath: string): Promise<ModMetadata>;
28
32
  * @throws {ValidationError} If required fields are missing or invalid
29
33
  */
30
34
  export declare function parseInfoIniContent(content: string): ModMetadata;
35
+ /**
36
+ * Load description with precedence order:
37
+ * 1. readme file (if info.ini readme is a file path that exists)
38
+ * 2. readme content (if info.ini readme is not a file but has content)
39
+ * 3. description/zh.md
40
+ * 4. description/en.md
41
+ * 5. info.ini description field
42
+ *
43
+ * @param modPath - Path to the mod directory
44
+ * @param metadata - Parsed mod metadata
45
+ * @returns Description content
46
+ */
47
+ export declare function loadDescription(modPath: string, metadata: ModMetadata): Promise<string>;
48
+ /**
49
+ * Load release notes with precedence order:
50
+ * 1. releaseNotes file (if info.ini releaseNotes is a file path that exists)
51
+ * 2. releaseNotes content (if info.ini releaseNotes is not a file but has content)
52
+ * 3. releaseNotes.md file in mod directory
53
+ *
54
+ * @param modPath - Path to the mod directory
55
+ * @param metadata - Parsed mod metadata
56
+ * @returns Release notes content
57
+ */
58
+ export declare function loadReleaseNotes(modPath: string, metadata: ModMetadata): Promise<string>;
31
59
  //# sourceMappingURL=parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/formats/nuget/parser.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAkBxE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CA8DhE"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/formats/nuget/parser.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAkBxE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAkEhE;AA4ED;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,CAkCjB;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,CAuBjB"}
@@ -1,5 +1,6 @@
1
- import { readTextFile } from '../../utils/fs.js';
1
+ import { readTextFile, fileExists } from '../../utils/fs.js';
2
2
  import { FileSystemError, ValidationError } from '../../utils/errors.js';
3
+ import { join } from 'path';
3
4
  /**
4
5
  * Parse info.ini file from a mod directory
5
6
  * @param modPath - Path to the mod directory
@@ -63,15 +64,19 @@ export function parseInfoIniContent(content) {
63
64
  }
64
65
  return {
65
66
  name,
67
+ displayName: metadata.displayName?.trim(),
66
68
  version,
67
69
  description: metadata.description?.trim(),
70
+ readme: metadata.readme?.trim(),
71
+ releaseNotes: metadata.releaseNotes?.trim(),
68
72
  author: metadata.author?.trim(),
69
73
  icon: metadata.icon?.trim(),
70
74
  tags: parseList(metadata.tags),
71
75
  dependencies: parseList(metadata.dependencies),
72
- projectUrl: metadata.projectUrl?.trim(),
76
+ projectUrl: metadata.projectUrl?.trim() || metadata.homepage?.trim(),
73
77
  license: metadata.license?.trim(),
74
78
  copyright: metadata.copyright?.trim(),
79
+ publishedFileId: metadata.publishedFileId?.trim(),
75
80
  };
76
81
  }
77
82
  /**
@@ -137,4 +142,75 @@ function isValidSemVer(version) {
137
142
  const semverPattern = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;
138
143
  return semverPattern.test(version);
139
144
  }
145
+ /**
146
+ * Load description with precedence order:
147
+ * 1. readme file (if info.ini readme is a file path that exists)
148
+ * 2. readme content (if info.ini readme is not a file but has content)
149
+ * 3. description/zh.md
150
+ * 4. description/en.md
151
+ * 5. info.ini description field
152
+ *
153
+ * @param modPath - Path to the mod directory
154
+ * @param metadata - Parsed mod metadata
155
+ * @returns Description content
156
+ */
157
+ export async function loadDescription(modPath, metadata) {
158
+ // 1. Try readme file if specified (highest priority)
159
+ if (metadata.readme) {
160
+ const readmePath = join(modPath, metadata.readme);
161
+ if (await fileExists(readmePath)) {
162
+ return await readTextFile(readmePath);
163
+ }
164
+ // 2. If readme is not a file but has content, use it directly
165
+ if (metadata.readme.trim().length > 0) {
166
+ return metadata.readme;
167
+ }
168
+ }
169
+ // 3. Try description/zh.md
170
+ const zhMdPath = join(modPath, 'description', 'zh.md');
171
+ if (await fileExists(zhMdPath)) {
172
+ return await readTextFile(zhMdPath);
173
+ }
174
+ // 4. Try description/en.md
175
+ const enMdPath = join(modPath, 'description', 'en.md');
176
+ if (await fileExists(enMdPath)) {
177
+ return await readTextFile(enMdPath);
178
+ }
179
+ // 5. Use info.ini description field (fallback)
180
+ if (metadata.description) {
181
+ return metadata.description;
182
+ }
183
+ // Final fallback: return empty string
184
+ return '';
185
+ }
186
+ /**
187
+ * Load release notes with precedence order:
188
+ * 1. releaseNotes file (if info.ini releaseNotes is a file path that exists)
189
+ * 2. releaseNotes content (if info.ini releaseNotes is not a file but has content)
190
+ * 3. releaseNotes.md file in mod directory
191
+ *
192
+ * @param modPath - Path to the mod directory
193
+ * @param metadata - Parsed mod metadata
194
+ * @returns Release notes content
195
+ */
196
+ export async function loadReleaseNotes(modPath, metadata) {
197
+ // 1. Try releaseNotes file if specified (highest priority)
198
+ if (metadata.releaseNotes) {
199
+ const releaseNotesPath = join(modPath, metadata.releaseNotes);
200
+ if (await fileExists(releaseNotesPath)) {
201
+ return await readTextFile(releaseNotesPath);
202
+ }
203
+ // 2. If releaseNotes is not a file but has content, use it directly
204
+ if (metadata.releaseNotes.trim().length > 0) {
205
+ return metadata.releaseNotes;
206
+ }
207
+ }
208
+ // 3. Try releaseNotes.md file
209
+ const releaseNotesMdPath = join(modPath, 'releaseNotes.md');
210
+ if (await fileExists(releaseNotesMdPath)) {
211
+ return await readTextFile(releaseNotesMdPath);
212
+ }
213
+ // Final fallback: return empty string
214
+ return '';
215
+ }
140
216
  //# sourceMappingURL=parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/formats/nuget/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/formats/nuget/parser.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ducky7go/ducky-cli",
3
- "version": "0.0.1",
3
+ "version": "0.0.3-dev.6",
4
4
  "description": "CLI tool for packaging and publishing game mods to NuGet",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -19,7 +19,9 @@
19
19
  "scripts": {
20
20
  "build": "tsc",
21
21
  "dev": "tsx src/cli.ts",
22
- "test": "vitest",
22
+ "test": "vitest --run",
23
+ "test:watch": "vitest",
24
+ "test:coverage": "vitest --run --coverage",
23
25
  "lint": "eslint src",
24
26
  "format": "prettier --write src",
25
27
  "prepublishOnly": "npm run build && npm test"
@@ -44,6 +46,7 @@
44
46
  "devDependencies": {
45
47
  "@eslint/js": "^9.39.2",
46
48
  "@types/node": "^25.0.3",
49
+ "@vitest/coverage-v8": "^2.1.9",
47
50
  "eslint": "^9.0.0",
48
51
  "prettier": "^3.0.0",
49
52
  "tsx": "^4.21.0",
@@ -59,7 +62,7 @@
59
62
  "ini": "^4.1.0",
60
63
  "ora": "^8.0.0"
61
64
  },
62
- "publishConfig": {
63
- "access": "public"
64
- }
65
+ "publishConfig": {
66
+ "access": "public"
67
+ }
65
68
  }