create-lt-adventure 0.3.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/migrate.d.ts.map +1 -1
- package/dist/migrate.js +57 -14
- package/dist/migrate.js.map +1 -1
- package/package.json +1 -1
package/dist/migrate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAuB/C,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5C;
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAuB/C,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5C;AAgHD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwIrG"}
|
package/dist/migrate.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mkdir, readdir, readFile, writeFile, stat, copyFile, cp } from "fs/promises";
|
|
2
2
|
import { existsSync, readdirSync, statSync } from "fs";
|
|
3
|
-
import { join } from "path";
|
|
3
|
+
import { join, dirname, relative } from "path";
|
|
4
4
|
import AdmZip from "adm-zip";
|
|
5
5
|
import { extractPack } from "@foundryvtt/foundryvtt-cli";
|
|
6
6
|
import { yellow, cyan } from "kolorist";
|
|
@@ -10,10 +10,10 @@ export function isUrl(input) {
|
|
|
10
10
|
}
|
|
11
11
|
async function readModuleJson(source, p) {
|
|
12
12
|
if (isUrl(source)) {
|
|
13
|
-
p.message(`Fetching module.json from ${cyan(source)}...`);
|
|
14
13
|
if (source.endsWith(".zip")) {
|
|
15
14
|
source = source.replace(".zip", ".json");
|
|
16
15
|
}
|
|
16
|
+
p.message(`Fetching module.json from ${cyan(source)}...`);
|
|
17
17
|
const response = await fetch(source);
|
|
18
18
|
if (!response.ok) {
|
|
19
19
|
throw new Error(`Failed to fetch module.json: ${response.status} ${response.statusText}`);
|
|
@@ -74,27 +74,67 @@ async function isLevelDBFolder(folderPath) {
|
|
|
74
74
|
const levelDBMarkers = ["CURRENT", "LOCK", "MANIFEST-000001", "MANIFEST-000002"];
|
|
75
75
|
return entries.some((e) => levelDBMarkers.some((m) => e === m || e.endsWith(".ldb") || e.endsWith(".log")));
|
|
76
76
|
}
|
|
77
|
+
async function findFiles(dir, baseDir, extensions) {
|
|
78
|
+
const results = [];
|
|
79
|
+
const entries = await readdir(dir, { withFileTypes: true });
|
|
80
|
+
for (const entry of entries) {
|
|
81
|
+
const fullPath = join(dir, entry.name);
|
|
82
|
+
if (entry.isDirectory()) {
|
|
83
|
+
results.push(...await findFiles(fullPath, baseDir, extensions));
|
|
84
|
+
}
|
|
85
|
+
else if (extensions.some((ext) => entry.name.endsWith(ext))) {
|
|
86
|
+
results.push(fullPath);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return results;
|
|
90
|
+
}
|
|
91
|
+
async function copyAssetsToMigration(moduleRoot) {
|
|
92
|
+
const migrationDir = join("src", "migration");
|
|
93
|
+
await mkdir(migrationDir, { recursive: true });
|
|
94
|
+
const cssJsFiles = await findFiles(moduleRoot, moduleRoot, [".css", ".js"]);
|
|
95
|
+
let copiedCount = 0;
|
|
96
|
+
for (const filePath of cssJsFiles) {
|
|
97
|
+
const relativePath = relative(moduleRoot, filePath);
|
|
98
|
+
const destPath = join(migrationDir, relativePath.replace(/^[\\/]/, ""));
|
|
99
|
+
const destDir = dirname(destPath);
|
|
100
|
+
await mkdir(destDir, { recursive: true });
|
|
101
|
+
await copyFile(filePath, destPath);
|
|
102
|
+
copiedCount++;
|
|
103
|
+
}
|
|
104
|
+
return copiedCount;
|
|
105
|
+
}
|
|
77
106
|
export async function migrateFrom(source, modulePath, p) {
|
|
78
107
|
const sourceModuleJson = await readModuleJson(source, p);
|
|
79
|
-
if (!sourceModuleJson.download) {
|
|
80
|
-
throw new Error("No download URL found in module.json. The source module does not have a download property.");
|
|
81
|
-
}
|
|
82
108
|
if (!sourceModuleJson.packs || sourceModuleJson.packs.length === 0) {
|
|
83
109
|
p.message("No packs found in the source module.json.");
|
|
84
110
|
return;
|
|
85
111
|
}
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
112
|
+
const isLocal = !isUrl(source);
|
|
113
|
+
let tempDir = null;
|
|
114
|
+
let moduleRoot;
|
|
115
|
+
if (isLocal) {
|
|
116
|
+
const sourceStat = await stat(source);
|
|
117
|
+
moduleRoot = sourceStat.isDirectory() ? source : dirname(source);
|
|
118
|
+
p.message(`Using local module at ${cyan(moduleRoot)}`);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
if (!sourceModuleJson.download) {
|
|
122
|
+
throw new Error("No download URL found in module.json. The source module does not have a download property.");
|
|
123
|
+
}
|
|
124
|
+
// todo: make this just a function like "safeDisplayString" or something
|
|
125
|
+
const maxWidth = Math.max(24, (process.stdout.columns || 80) - 24);
|
|
126
|
+
const downloadUrl = sourceModuleJson.download.length > maxWidth
|
|
127
|
+
? sourceModuleJson.download.slice(0, maxWidth - 3) + "..."
|
|
128
|
+
: sourceModuleJson.download;
|
|
129
|
+
p.message(`Downloading module from ${cyan(downloadUrl)}`);
|
|
130
|
+
tempDir = join(modulePath, "temp", `${sourceModuleJson.id || `module-${Date.now()}`}`);
|
|
93
131
|
await mkdir(tempDir, { recursive: true });
|
|
94
132
|
const zipBuffer = await downloadZipBuffer(sourceModuleJson.download);
|
|
95
133
|
const zip = new AdmZip(zipBuffer);
|
|
96
134
|
zip.extractAllTo(tempDir, true);
|
|
97
|
-
|
|
135
|
+
moduleRoot = findModuleRoot(tempDir);
|
|
136
|
+
}
|
|
137
|
+
try {
|
|
98
138
|
p.message(`Found ${sourceModuleJson.packs.length} pack(s) in module.json: ${sourceModuleJson.packs.map((p) => p.name).join(", ")}`);
|
|
99
139
|
const targetPacksDir = join(modulePath, "packs");
|
|
100
140
|
const targetDataDir = join(modulePath, "data");
|
|
@@ -168,7 +208,10 @@ export async function migrateFrom(source, modulePath, p) {
|
|
|
168
208
|
p.message("Updated module.json with migrated packs");
|
|
169
209
|
}
|
|
170
210
|
}
|
|
171
|
-
p.message(
|
|
211
|
+
p.message("Extracting CSS and JS assets...");
|
|
212
|
+
const assetCount = await copyAssetsToMigration(moduleRoot);
|
|
213
|
+
p.message(`Copied ${assetCount} asset(s) to src/migration/`);
|
|
214
|
+
p.message(`Migration complete! ${newPacks.length} pack(s) processed.${tempDir ? ` Extracted module kept in ${cyan(tempDir)}.` : ""}`);
|
|
172
215
|
}
|
|
173
216
|
catch (error) {
|
|
174
217
|
p.message(`Migration failed: ${error instanceof Error ? error.message : String(error)}`);
|
package/dist/migrate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"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"}
|