modpack-lock 0.6.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.md +15 -14
  2. package/build/cli.d.ts +3 -0
  3. package/build/cli.d.ts.map +1 -0
  4. package/build/cli.js +257 -0
  5. package/build/cli.js.map +1 -0
  6. package/build/config/api.d.ts +27 -0
  7. package/build/config/api.d.ts.map +1 -0
  8. package/{src → build}/config/api.js +2 -14
  9. package/build/config/api.js.map +1 -0
  10. package/build/config/constants.d.ts +17 -0
  11. package/build/config/constants.d.ts.map +1 -0
  12. package/{src → build}/config/constants.js +10 -10
  13. package/build/config/constants.js.map +1 -0
  14. package/build/config/defaults.d.ts +16 -0
  15. package/build/config/defaults.d.ts.map +1 -0
  16. package/build/config/defaults.js +60 -0
  17. package/build/config/defaults.js.map +1 -0
  18. package/build/config/files.d.ts +11 -0
  19. package/build/config/files.d.ts.map +1 -0
  20. package/{src → build}/config/files.js +1 -4
  21. package/build/config/files.js.map +1 -0
  22. package/build/config/index.d.ts +7 -0
  23. package/build/config/index.d.ts.map +1 -0
  24. package/{src → build}/config/index.js +1 -0
  25. package/build/config/index.js.map +1 -0
  26. package/build/config/options.d.ts +8 -0
  27. package/build/config/options.d.ts.map +1 -0
  28. package/{src → build}/config/options.js +7 -6
  29. package/build/config/options.js.map +1 -0
  30. package/build/config/strings.d.ts +35 -0
  31. package/build/config/strings.d.ts.map +1 -0
  32. package/{src → build}/config/strings.js +14 -19
  33. package/build/config/strings.js.map +1 -0
  34. package/build/directory_scanning.d.ts +26 -0
  35. package/build/directory_scanning.d.ts.map +1 -0
  36. package/{src → build}/directory_scanning.js +23 -36
  37. package/build/directory_scanning.js.map +1 -0
  38. package/build/generate_gitignore.d.ts +9 -0
  39. package/build/generate_gitignore.d.ts.map +1 -0
  40. package/{src → build}/generate_gitignore.js +23 -37
  41. package/build/generate_gitignore.js.map +1 -0
  42. package/build/generate_json.d.ts +11 -0
  43. package/build/generate_json.d.ts.map +1 -0
  44. package/{src → build}/generate_json.js +40 -39
  45. package/build/generate_json.js.map +1 -0
  46. package/build/generate_license.d.ts +11 -0
  47. package/build/generate_license.d.ts.map +1 -0
  48. package/build/generate_license.js +54 -0
  49. package/build/generate_license.js.map +1 -0
  50. package/build/generate_lockfile.d.ts +14 -0
  51. package/build/generate_lockfile.d.ts.map +1 -0
  52. package/{src → build}/generate_lockfile.js +19 -69
  53. package/build/generate_lockfile.js.map +1 -0
  54. package/build/generate_readme.d.ts +9 -0
  55. package/build/generate_readme.d.ts.map +1 -0
  56. package/{src → build}/generate_readme.js +50 -76
  57. package/build/generate_readme.js.map +1 -0
  58. package/build/github_interactions.d.ts +14 -0
  59. package/build/github_interactions.d.ts.map +1 -0
  60. package/{src → build}/github_interactions.js +16 -20
  61. package/build/github_interactions.js.map +1 -0
  62. package/build/logger.d.ts +96 -0
  63. package/build/logger.d.ts.map +1 -0
  64. package/{src → build}/logger.js +47 -55
  65. package/build/logger.js.map +1 -0
  66. package/build/modpack-lock.d.ts +25 -0
  67. package/build/modpack-lock.d.ts.map +1 -0
  68. package/{src → build}/modpack-lock.js +12 -38
  69. package/build/modpack-lock.js.map +1 -0
  70. package/build/modrinth_interactions.d.ts +31 -0
  71. package/build/modrinth_interactions.d.ts.map +1 -0
  72. package/{src → build}/modrinth_interactions.js +69 -59
  73. package/build/modrinth_interactions.js.map +1 -0
  74. package/build/types/Jsonfile.d.ts +15 -0
  75. package/build/types/Jsonfile.d.ts.map +1 -0
  76. package/build/types/Jsonfile.js +2 -0
  77. package/build/types/Jsonfile.js.map +1 -0
  78. package/build/types/Lockfile.d.ts +39 -0
  79. package/build/types/Lockfile.d.ts.map +1 -0
  80. package/build/types/Lockfile.js +2 -0
  81. package/build/types/Lockfile.js.map +1 -0
  82. package/build/types/ModpackInfo.d.ts +28 -0
  83. package/build/types/ModpackInfo.d.ts.map +1 -0
  84. package/build/types/ModpackInfo.js +2 -0
  85. package/build/types/ModpackInfo.js.map +1 -0
  86. package/build/types/OptionalFileOptions.d.ts +8 -0
  87. package/build/types/OptionalFileOptions.d.ts.map +1 -0
  88. package/build/types/OptionalFileOptions.js +2 -0
  89. package/build/types/OptionalFileOptions.js.map +1 -0
  90. package/build/types/contentFiles.d.ts +24 -0
  91. package/build/types/contentFiles.d.ts.map +1 -0
  92. package/build/types/contentFiles.js +2 -0
  93. package/build/types/contentFiles.js.map +1 -0
  94. package/build/types/githubResponses.d.ts +17 -0
  95. package/build/types/githubResponses.d.ts.map +1 -0
  96. package/build/types/githubResponses.js +2 -0
  97. package/build/types/githubResponses.js.map +1 -0
  98. package/build/types/index.d.ts +9 -0
  99. package/build/types/index.d.ts.map +1 -0
  100. package/build/types/index.js +2 -0
  101. package/build/types/index.js.map +1 -0
  102. package/build/types/modrinthResponses.d.ts +135 -0
  103. package/build/types/modrinthResponses.d.ts.map +1 -0
  104. package/build/types/modrinthResponses.js +2 -0
  105. package/build/types/modrinthResponses.js.map +1 -0
  106. package/build/types/options.d.ts +70 -0
  107. package/build/types/options.d.ts.map +1 -0
  108. package/build/types/options.js +2 -0
  109. package/build/types/options.js.map +1 -0
  110. package/build/user_prompts.d.ts +16 -0
  111. package/build/user_prompts.d.ts.map +1 -0
  112. package/build/user_prompts.js +132 -0
  113. package/build/user_prompts.js.map +1 -0
  114. package/package.json +19 -9
  115. package/src/cli.js +0 -310
  116. package/src/config/defaults.js +0 -66
  117. package/src/config/types.js +0 -76
  118. package/src/generate_license.js +0 -54
  119. package/src/modpack_info.js +0 -200
@@ -1,16 +1,8 @@
1
1
  import fs from "fs/promises";
2
2
  import path from "path";
3
- import {getProjects} from "./modrinth_interactions.js";
3
+ import { getProjects } from "./modrinth_interactions.js";
4
4
  import * as config from "./config/index.js";
5
- import {logm} from "./logger.js";
6
-
7
- /**
8
- * @typedef {import('./config/types.js').ModpackInfo} ModpackInfo
9
- * @typedef {import('./config/types.js').Options} Options
10
- * @typedef {import('./config/types.js').InitOptions} InitOptions
11
- * @typedef {import('./config/types.js').Lockfile} Lockfile
12
- */
13
-
5
+ import { logm } from "./logger.js";
14
6
  /**
15
7
  * Create a JSON object from the modpack information and dependencies
16
8
  */
@@ -20,7 +12,6 @@ function createModpackJson(modpackInfo, dependencies) {
20
12
  dependencies: dependencies,
21
13
  };
22
14
  }
23
-
24
15
  /**
25
16
  * Write modpack.json to disk
26
17
  */
@@ -29,41 +20,52 @@ async function writeJson(jsonObject, outputPath) {
29
20
  await fs.writeFile(path.join(outputPath, config.MODPACK_JSON_NAME), content, "utf-8");
30
21
  logm.generated(config.MODPACK_JSON_NAME, path.join(outputPath, config.MODPACK_JSON_NAME));
31
22
  }
32
-
33
23
  /**
34
24
  * Generate a modpack.json file
35
- * @param {ModpackInfo} modpackInfo - The modpack information
36
- * @param {Lockfile} lockfile - The lockfile
37
- * @param {string} workingDir - The path to write the JSON object to
38
- * @param {Options | InitOptions} options - The options object
39
- * @returns {Promise<Lockfile>} The JSON file's object
25
+ * @param modpackInfo - The modpack information
26
+ * @param lockfile - The lockfile
27
+ * @param workingDir - The path to write the JSON object to
28
+ * @param options - The options object
29
+ * @returns The JSON file's object
40
30
  */
41
31
  export default async function generateJson(modpackInfo, lockfile, workingDir, options = {}) {
42
32
  logm.quietFromOptions(options);
43
-
44
33
  // Validate modpack info
34
+ const missingFields = [];
45
35
  for (const field of config.MODPACK_INFO_REQUIRED_FIELDS) {
46
36
  if (!modpackInfo[field]) {
47
- throw new Error(`Modpack info is missing required field: ${field}`);
37
+ missingFields.push(field);
48
38
  }
49
39
  }
50
-
51
- const projectIds = {};
52
- const packDependencies = {};
53
- for (const category of config.DEPENDENCY_CATEGORIES) {
54
- projectIds[category] = new Set();
55
- packDependencies[category] = [];
40
+ if (missingFields.length > 0) {
41
+ throw new Error(`Modpack info is missing required fields: ${missingFields.join(", ")}`);
56
42
  }
57
-
43
+ //TODO: consider changing these to partial records and only initializing the categories that are present in the lockfile
44
+ const projectIds = {
45
+ mods: new Set(),
46
+ resourcepacks: new Set(),
47
+ datapacks: new Set(),
48
+ shaderpacks: new Set(),
49
+ };
50
+ const packDependencies = {
51
+ mods: [],
52
+ resourcepacks: [],
53
+ datapacks: [],
54
+ shaderpacks: [],
55
+ };
58
56
  // Collect project IDs from lockfile
59
57
  if (lockfile)
60
58
  if (lockfile.dependencies) {
61
- for (const [category, entries] of Object.entries(lockfile.dependencies)) {
62
- for (const entry of entries) {
63
- if (entry.version && entry.version.project_id) {
64
- projectIds[category].add(entry.version.project_id);
65
- } else {
66
- packDependencies[category].push(entry.path);
59
+ for (const category of config.DEPENDENCY_CATEGORIES) {
60
+ if (lockfile.dependencies[category]) {
61
+ // TODO: consider initializing the categories with an empty array/set here
62
+ for (const entry of lockfile.dependencies[category]) {
63
+ if (entry.version && entry.version.project_id) {
64
+ projectIds[category].add(entry.version.project_id);
65
+ }
66
+ else {
67
+ packDependencies[category].push(entry.path);
68
+ }
67
69
  }
68
70
  }
69
71
  }
@@ -73,14 +75,14 @@ export default async function generateJson(modpackInfo, lockfile, workingDir, op
73
75
  allProjectIds.add(projectId);
74
76
  }
75
77
  }
76
-
77
78
  // Fetch projects from Modrinth
78
79
  const projects = await getProjects(Array.from(allProjectIds));
79
80
  const projectsMap = {};
80
81
  for (const project of projects) {
81
- projectsMap[project.id] = project.slug;
82
+ if (project.id || project.slug) {
83
+ projectsMap[project.id] = project.slug || project.id;
84
+ }
82
85
  }
83
-
84
86
  // Add projects to dependencies by category
85
87
  for (const category of config.DEPENDENCY_CATEGORIES) {
86
88
  for (const projectId of projectIds[category]) {
@@ -91,16 +93,15 @@ export default async function generateJson(modpackInfo, lockfile, workingDir, op
91
93
  }
92
94
  }
93
95
  }
94
-
95
96
  // Create modpack JSON object
96
97
  const jsonObject = createModpackJson(modpackInfo, packDependencies);
97
-
98
98
  // Write modpack JSON object to disk
99
99
  if (options.dryRun) {
100
100
  logm.debug(config.dryRunText(config.MODPACK_JSON_NAME, path.join(workingDir, config.MODPACK_JSON_NAME)));
101
- } else {
101
+ }
102
+ else {
102
103
  await writeJson(jsonObject, workingDir);
103
104
  }
104
-
105
105
  return jsonObject;
106
106
  }
107
+ //# sourceMappingURL=generate_json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate_json.js","sourceRoot":"","sources":["../src/generate_json.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Jsonfile, Options, InitOptions } from "./types/index.js";
2
+ /**
3
+ * Generate a license file
4
+ * @param modpackInfo - The modpack information
5
+ * @param workingDir - The path to write the license to
6
+ * @param options - The options object
7
+ * @param licenseTextOverride - Text to override the license's default content
8
+ * @returns The license text or null if the license text could not be generated
9
+ */
10
+ export default function generateLicense(modpackInfo: Jsonfile, workingDir: string, options?: Options | InitOptions, licenseTextOverride?: string): Promise<string | null>;
11
+ //# sourceMappingURL=generate_license.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate_license.d.ts","sourceRoot":"","sources":["../src/generate_license.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAOrE;;;;;;;GAOG;AACH,wBAA8B,eAAe,CACzC,WAAW,EAAE,QAAQ,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,OAAO,GAAG,WAAgB,EACnC,mBAAmB,CAAC,EAAE,MAAM,GAC7B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuCxB"}
@@ -0,0 +1,54 @@
1
+ import fs from "fs/promises";
2
+ import path from "path";
3
+ import { getLicenseText } from "./github_interactions.js";
4
+ import * as config from "./config/index.js";
5
+ import { logm } from "./logger.js";
6
+ async function writeLicense(licenseText, outputPath) {
7
+ await fs.writeFile(path.join(outputPath, config.MODPACK_LICENSE_NAME), licenseText, "utf-8");
8
+ logm.generated(config.MODPACK_LICENSE_NAME, path.join(outputPath, config.MODPACK_LICENSE_NAME));
9
+ }
10
+ /**
11
+ * Generate a license file
12
+ * @param modpackInfo - The modpack information
13
+ * @param workingDir - The path to write the license to
14
+ * @param options - The options object
15
+ * @param licenseTextOverride - Text to override the license's default content
16
+ * @returns The license text or null if the license text could not be generated
17
+ */
18
+ export default async function generateLicense(modpackInfo, workingDir, options = {}, licenseTextOverride) {
19
+ logm.quietFromOptions(options);
20
+ try {
21
+ const spdxId = modpackInfo.license;
22
+ if (!spdxId) {
23
+ throw new Error("License ID is required to generate a license file");
24
+ }
25
+ let licenseText = licenseTextOverride || (await getLicenseText(spdxId));
26
+ if (!licenseText) {
27
+ throw new Error(`License text could not be generated for: ${spdxId}`);
28
+ }
29
+ licenseText = licenseText.replace("[year]", String(new Date().getFullYear()));
30
+ licenseText = licenseText.replace("{{year}}", String(new Date().getFullYear()));
31
+ if (modpackInfo.author) {
32
+ licenseText = licenseText.replace("[fullname]", modpackInfo.author);
33
+ licenseText = licenseText.replace("{{fullname}}", modpackInfo.author);
34
+ licenseText = licenseText.replace("[organization]", modpackInfo.author);
35
+ licenseText = licenseText.replace("{{organization}}", modpackInfo.author);
36
+ }
37
+ if (modpackInfo.name) {
38
+ licenseText = licenseText.replace("[project]", modpackInfo.name);
39
+ licenseText = licenseText.replace("{{project}}", modpackInfo.name);
40
+ }
41
+ if (options.dryRun) {
42
+ logm.debug(config.dryRunText(config.MODPACK_LICENSE_NAME, path.join(workingDir, config.MODPACK_LICENSE_NAME)));
43
+ }
44
+ else {
45
+ await writeLicense(licenseText, workingDir);
46
+ }
47
+ return licenseText;
48
+ }
49
+ catch {
50
+ logm.warn(`Unable to generate license for: ${modpackInfo.license}`);
51
+ return null;
52
+ }
53
+ }
54
+ //# sourceMappingURL=generate_license.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate_license.js","sourceRoot":"","sources":["../src/generate_license.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { Lockfile, Options, InitOptions } from "./types/index.js";
2
+ /**
3
+ * Generate the lockfile
4
+ * @param workingDir - The working directory
5
+ * @param options - The options object
6
+ * @returns The lockfile object
7
+ */
8
+ export declare function generateLockfile(workingDir: string, options?: Options | InitOptions): Promise<Lockfile>;
9
+ /**
10
+ * Print a summary of the lockfile contents
11
+ * @param lockfile - The lockfile object
12
+ */
13
+ export declare function printLockfileSummary(lockfile: Lockfile): void;
14
+ //# sourceMappingURL=generate_lockfile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate_lockfile.d.ts","sourceRoot":"","sources":["../src/generate_lockfile.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAER,QAAQ,EACR,OAAO,EACP,WAAW,EAId,MAAM,kBAAkB,CAAC;AA6D1B;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,GAAG,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAqEjH;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CA2B7D"}
@@ -1,16 +1,9 @@
1
1
  import fs from "fs/promises";
2
2
  import path from "path";
3
- import {getVersionsFromHashes} from "./modrinth_interactions.js";
4
- import {getScanDirectories, scanDirectory} from "./directory_scanning.js";
3
+ import { getVersionsFromHashes } from "./modrinth_interactions.js";
4
+ import { getScanDirectories, scanDirectory } from "./directory_scanning.js";
5
5
  import * as config from "./config/index.js";
6
- import {logm, styleText} from "./logger.js";
7
-
8
- /**
9
- * @typedef {import('./config/types.js').Options} Options
10
- * @typedef {import('./config/types.js').InitOptions} InitOptions
11
- * @typedef {import('./config/types.js').Lockfile} Lockfile
12
- */
13
-
6
+ import { logm, styleText } from "./logger.js";
14
7
  /**
15
8
  * Create empty lockfile structure
16
9
  */
@@ -23,44 +16,33 @@ function createEmptyLockfile() {
23
16
  dependencies: {},
24
17
  };
25
18
  }
26
-
27
19
  /**
28
20
  * Create lockfile structure from file info and version data
29
21
  */
30
22
  function createLockfile(fileEntries, versionData) {
31
23
  const lockfile = createEmptyLockfile();
32
-
33
24
  logm.newline();
34
25
  // Organize by category
35
26
  for (const fileInfo of fileEntries) {
36
27
  const version = versionData[fileInfo.hash];
37
-
38
28
  lockfile.dependencies[fileInfo.category] ||= [];
39
-
40
29
  const entry = {
41
30
  path: fileInfo.path,
42
31
  version: version || null,
43
32
  };
44
-
45
33
  if (!version) {
46
34
  logm.warn(`File ${fileInfo.path} not found on Modrinth`);
47
35
  }
48
-
49
- lockfile.dependencies[fileInfo.category].push(entry);
36
+ lockfile.dependencies[fileInfo.category]?.push(entry);
50
37
  }
51
-
52
38
  logm.header("Generating Lockfile");
53
-
54
39
  // Calculate counts for each category
55
40
  for (const [category, entries] of Object.entries(lockfile.dependencies)) {
56
41
  lockfile.counts[category] = entries.length;
57
42
  }
58
-
59
43
  lockfile.total = fileEntries.length;
60
-
61
44
  return lockfile;
62
45
  }
63
-
64
46
  /**
65
47
  * Write lockfile to disk
66
48
  */
@@ -69,39 +51,30 @@ async function writeLockfile(lockfile, outputPath) {
69
51
  await fs.writeFile(outputPath, content, "utf-8");
70
52
  logm.generated(config.MODPACK_LOCKFILE_NAME, outputPath);
71
53
  }
72
-
73
54
  /**
74
55
  * Generate the lockfile
75
- * @param {string} workingDir - The working directory
76
- * @param {Options} options - The options object
77
- * @returns {Lockfile} The lockfile object
56
+ * @param workingDir - The working directory
57
+ * @param options - The options object
58
+ * @returns The lockfile object
78
59
  */
79
60
  export async function generateLockfile(workingDir, options = {}) {
80
61
  logm.quietFromOptions(options);
81
-
82
62
  logm.header("Scanning Directories");
83
-
84
63
  // Scan all directories
85
64
  const allFileEntries = [];
86
65
  for (const dirInfo of getScanDirectories(workingDir)) {
87
66
  logm.info(styleText(["cyan"], `${dirInfo.name}/`));
88
67
  const fileEntries = await scanDirectory(dirInfo, workingDir);
89
- logm.info(
90
- styleText(["dim"], ` └─ Found`),
91
- styleText(["yellow"], `${fileEntries.length}`),
92
- styleText(["dim"], `file${fileEntries.length !== 1 ? "s" : ""}`),
93
- );
68
+ logm.info(styleText(["dim"], ` └─ Found`), styleText(["yellow"], `${fileEntries.length}`), styleText(["dim"], `file${fileEntries.length !== 1 ? "s" : ""}`));
94
69
  allFileEntries.push(...fileEntries);
95
70
  }
96
-
97
71
  // Sort file entries
98
72
  allFileEntries.sort((a, b) => {
99
73
  if (a.category !== b.category) {
100
- return a.category.localeCompare(b.category, "en", {sensitivity: "base"});
74
+ return a.category.localeCompare(b.category, "en", { sensitivity: "base" });
101
75
  }
102
- return a.path.localeCompare(b.path, "en", {numeric: true, sensitivity: "base"});
76
+ return a.path.localeCompare(b.path, "en", { numeric: true, sensitivity: "base" });
103
77
  });
104
-
105
78
  if (allFileEntries.length === 0) {
106
79
  logm.header("GENERATING LOCKFILE");
107
80
  logm.warn("No files found. Creating empty lockfile.");
@@ -109,70 +82,47 @@ export async function generateLockfile(workingDir, options = {}) {
109
82
  const outputPath = path.join(workingDir, config.MODPACK_LOCKFILE_NAME);
110
83
  if (options.dryRun) {
111
84
  logm.debug(config.dryRunText(config.MODPACK_LOCKFILE_NAME, outputPath));
112
- } else {
85
+ }
86
+ else {
113
87
  await writeLockfile(emptyLockfile, outputPath);
114
88
  }
115
89
  return emptyLockfile;
116
90
  }
117
-
118
91
  logm.info(styleText(["dim"], "Total:"), allFileEntries.length);
119
92
  logm.header("Querying Modrinth API");
120
-
121
93
  // Extract all hashes
122
94
  const hashes = allFileEntries.map((info) => info.hash);
123
-
124
95
  // Query Modrinth API
125
96
  const versionData = await getVersionsFromHashes(hashes);
126
-
127
97
  logm.info(styleText(["dim"], "Found version information for:"));
128
- logm.info(
129
- styleText(["dim"], " └─"),
130
- styleText(["green"], `${Object.keys(versionData).length}`),
131
- styleText(["dim"], "out of"),
132
- styleText(["yellow"], `${hashes.length}`),
133
- styleText(["dim"], "files"),
134
- );
135
-
98
+ logm.info(styleText(["dim"], " └─"), styleText(["green"], `${Object.keys(versionData).length}`), styleText(["dim"], "out of"), styleText(["yellow"], `${hashes.length}`), styleText(["dim"], "files"));
136
99
  // Create lockfile
137
100
  const lockfile = createLockfile(allFileEntries, versionData);
138
-
139
101
  // Write lockfile
140
102
  const outputPath = path.join(workingDir, config.MODPACK_LOCKFILE_NAME);
141
103
  if (options.dryRun) {
142
104
  logm.debug(config.dryRunText(config.MODPACK_LOCKFILE_NAME, outputPath));
143
- } else {
105
+ }
106
+ else {
144
107
  await writeLockfile(lockfile, outputPath);
145
108
  }
146
-
147
109
  return lockfile;
148
110
  }
149
-
150
111
  /**
151
112
  * Print a summary of the lockfile contents
152
- * @param {Lockfile} lockfile - The lockfile object
113
+ * @param lockfile - The lockfile object
153
114
  */
154
115
  export function printLockfileSummary(lockfile) {
155
116
  logm.header("Lockfile Summary");
156
-
157
117
  if (lockfile.total === 0) {
158
118
  logm.info(styleText(["dim"], "No files found. Empty lockfile created."));
159
119
  return;
160
120
  }
161
-
162
121
  for (const [category, entries] of Object.entries(lockfile.dependencies)) {
163
122
  const withVersion = entries.filter((e) => e.version !== null).length;
164
123
  const withoutVersion = entries.length - withVersion;
165
- logm.info(
166
- styleText(["bold"], `${category}:`),
167
- entries.length,
168
- styleText(["dim"], `file${entries.length !== 1 ? "s" : ""}`),
169
- );
170
- logm.info(
171
- styleText(["dim"], " └─"),
172
- styleText(["green"], String(withVersion)),
173
- styleText(["dim"], "found,"),
174
- styleText(["yellow"], String(withoutVersion)),
175
- styleText(["dim"], "unknown"),
176
- );
124
+ logm.info(styleText(["bold"], `${category}:`), entries.length, styleText(["dim"], `file${entries.length !== 1 ? "s" : ""}`));
125
+ logm.info(styleText(["dim"], " └─"), styleText(["green"], String(withVersion)), styleText(["dim"], "found,"), styleText(["yellow"], String(withoutVersion)), styleText(["dim"], "unknown"));
177
126
  }
178
127
  }
128
+ //# sourceMappingURL=generate_lockfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate_lockfile.js","sourceRoot":"","sources":["../src/generate_lockfile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { Options, InitOptions, Lockfile } from "./types/index.js";
2
+ /**
3
+ * Generate README.md files for each category
4
+ * @param lockfile - The lockfile object
5
+ * @param workingDir - The working directory
6
+ * @param options - The options object
7
+ */
8
+ export declare function generateReadmeFiles(lockfile: Lockfile, workingDir: string, options?: Options | InitOptions): Promise<void>;
9
+ //# sourceMappingURL=generate_readme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate_readme.d.ts","sourceRoot":"","sources":["../src/generate_readme.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACR,OAAO,EACP,WAAW,EACX,QAAQ,EAMX,MAAM,kBAAkB,CAAC;AAuJ1B;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACrC,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,OAAO,GAAG,WAAgB,GACpC,OAAO,CAAC,IAAI,CAAC,CAuEf"}