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.
- package/README.md +15 -14
- package/build/cli.d.ts +3 -0
- package/build/cli.d.ts.map +1 -0
- package/build/cli.js +257 -0
- package/build/cli.js.map +1 -0
- package/build/config/api.d.ts +27 -0
- package/build/config/api.d.ts.map +1 -0
- package/{src → build}/config/api.js +2 -14
- package/build/config/api.js.map +1 -0
- package/build/config/constants.d.ts +17 -0
- package/build/config/constants.d.ts.map +1 -0
- package/{src → build}/config/constants.js +10 -10
- package/build/config/constants.js.map +1 -0
- package/build/config/defaults.d.ts +16 -0
- package/build/config/defaults.d.ts.map +1 -0
- package/build/config/defaults.js +60 -0
- package/build/config/defaults.js.map +1 -0
- package/build/config/files.d.ts +11 -0
- package/build/config/files.d.ts.map +1 -0
- package/{src → build}/config/files.js +1 -4
- package/build/config/files.js.map +1 -0
- package/build/config/index.d.ts +7 -0
- package/build/config/index.d.ts.map +1 -0
- package/{src → build}/config/index.js +1 -0
- package/build/config/index.js.map +1 -0
- package/build/config/options.d.ts +8 -0
- package/build/config/options.d.ts.map +1 -0
- package/{src → build}/config/options.js +7 -6
- package/build/config/options.js.map +1 -0
- package/build/config/strings.d.ts +35 -0
- package/build/config/strings.d.ts.map +1 -0
- package/{src → build}/config/strings.js +14 -19
- package/build/config/strings.js.map +1 -0
- package/build/directory_scanning.d.ts +26 -0
- package/build/directory_scanning.d.ts.map +1 -0
- package/{src → build}/directory_scanning.js +23 -36
- package/build/directory_scanning.js.map +1 -0
- package/build/generate_gitignore.d.ts +9 -0
- package/build/generate_gitignore.d.ts.map +1 -0
- package/{src → build}/generate_gitignore.js +23 -37
- package/build/generate_gitignore.js.map +1 -0
- package/build/generate_json.d.ts +11 -0
- package/build/generate_json.d.ts.map +1 -0
- package/{src → build}/generate_json.js +40 -39
- package/build/generate_json.js.map +1 -0
- package/build/generate_license.d.ts +11 -0
- package/build/generate_license.d.ts.map +1 -0
- package/build/generate_license.js +54 -0
- package/build/generate_license.js.map +1 -0
- package/build/generate_lockfile.d.ts +14 -0
- package/build/generate_lockfile.d.ts.map +1 -0
- package/{src → build}/generate_lockfile.js +19 -69
- package/build/generate_lockfile.js.map +1 -0
- package/build/generate_readme.d.ts +9 -0
- package/build/generate_readme.d.ts.map +1 -0
- package/{src → build}/generate_readme.js +50 -76
- package/build/generate_readme.js.map +1 -0
- package/build/github_interactions.d.ts +14 -0
- package/build/github_interactions.d.ts.map +1 -0
- package/{src → build}/github_interactions.js +16 -20
- package/build/github_interactions.js.map +1 -0
- package/build/logger.d.ts +96 -0
- package/build/logger.d.ts.map +1 -0
- package/{src → build}/logger.js +47 -55
- package/build/logger.js.map +1 -0
- package/build/modpack-lock.d.ts +25 -0
- package/build/modpack-lock.d.ts.map +1 -0
- package/{src → build}/modpack-lock.js +12 -38
- package/build/modpack-lock.js.map +1 -0
- package/build/modrinth_interactions.d.ts +31 -0
- package/build/modrinth_interactions.d.ts.map +1 -0
- package/{src → build}/modrinth_interactions.js +69 -59
- package/build/modrinth_interactions.js.map +1 -0
- package/build/types/Jsonfile.d.ts +15 -0
- package/build/types/Jsonfile.d.ts.map +1 -0
- package/build/types/Jsonfile.js +2 -0
- package/build/types/Jsonfile.js.map +1 -0
- package/build/types/Lockfile.d.ts +39 -0
- package/build/types/Lockfile.d.ts.map +1 -0
- package/build/types/Lockfile.js +2 -0
- package/build/types/Lockfile.js.map +1 -0
- package/build/types/ModpackInfo.d.ts +28 -0
- package/build/types/ModpackInfo.d.ts.map +1 -0
- package/build/types/ModpackInfo.js +2 -0
- package/build/types/ModpackInfo.js.map +1 -0
- package/build/types/OptionalFileOptions.d.ts +8 -0
- package/build/types/OptionalFileOptions.d.ts.map +1 -0
- package/build/types/OptionalFileOptions.js +2 -0
- package/build/types/OptionalFileOptions.js.map +1 -0
- package/build/types/contentFiles.d.ts +24 -0
- package/build/types/contentFiles.d.ts.map +1 -0
- package/build/types/contentFiles.js +2 -0
- package/build/types/contentFiles.js.map +1 -0
- package/build/types/githubResponses.d.ts +17 -0
- package/build/types/githubResponses.d.ts.map +1 -0
- package/build/types/githubResponses.js +2 -0
- package/build/types/githubResponses.js.map +1 -0
- package/build/types/index.d.ts +9 -0
- package/build/types/index.d.ts.map +1 -0
- package/build/types/index.js +2 -0
- package/build/types/index.js.map +1 -0
- package/build/types/modrinthResponses.d.ts +135 -0
- package/build/types/modrinthResponses.d.ts.map +1 -0
- package/build/types/modrinthResponses.js +2 -0
- package/build/types/modrinthResponses.js.map +1 -0
- package/build/types/options.d.ts +70 -0
- package/build/types/options.d.ts.map +1 -0
- package/build/types/options.js +2 -0
- package/build/types/options.js.map +1 -0
- package/build/user_prompts.d.ts +16 -0
- package/build/user_prompts.d.ts.map +1 -0
- package/build/user_prompts.js +132 -0
- package/build/user_prompts.js.map +1 -0
- package/package.json +19 -9
- package/src/cli.js +0 -310
- package/src/config/defaults.js +0 -66
- package/src/config/types.js +0 -76
- package/src/generate_license.js +0 -54
- 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
|
|
36
|
-
* @param
|
|
37
|
-
* @param
|
|
38
|
-
* @param
|
|
39
|
-
* @returns
|
|
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
|
-
|
|
37
|
+
missingFields.push(field);
|
|
48
38
|
}
|
|
49
39
|
}
|
|
50
|
-
|
|
51
|
-
|
|
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
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
-
|
|
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
|
-
}
|
|
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
|
|
76
|
-
* @param
|
|
77
|
-
* @returns
|
|
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
|
-
}
|
|
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
|
-
}
|
|
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
|
|
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
|
-
|
|
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"}
|