ba-memorial-lobby-wallpaper-toolkit 0.7.0 → 0.8.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.
|
@@ -5,4 +5,14 @@ export interface DistributionValidationOptions {
|
|
|
5
5
|
readonly remoteDependencyPattern?: RegExp;
|
|
6
6
|
}
|
|
7
7
|
export declare function validateDistributionFiles(options: DistributionValidationOptions): Promise<void>;
|
|
8
|
+
export interface WallpaperDistributionOptions extends DistributionValidationOptions {
|
|
9
|
+
readonly projectJson?: Record<string, any>;
|
|
10
|
+
readonly runtimeDefaults?: Record<string, any>;
|
|
11
|
+
readonly requiredProjectTags?: readonly string[];
|
|
12
|
+
readonly previewPath?: string;
|
|
13
|
+
readonly requiredText?: Readonly<Record<string, readonly string[]>>;
|
|
14
|
+
readonly forbiddenText?: Readonly<Record<string, readonly string[]>>;
|
|
15
|
+
readonly validatePreview?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare function validateWallpaperDistribution(options: WallpaperDistributionOptions): Promise<void>;
|
|
8
18
|
//# sourceMappingURL=distribution-validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distribution-validation.d.ts","sourceRoot":"","sources":["../src/distribution-validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"distribution-validation.d.ts","sourceRoot":"","sources":["../src/distribution-validation.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAC3C;AAYD,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBrG;AAED,MAAM,WAAW,4BAA6B,SAAQ,6BAA6B;IACjF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IACpE,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IACrE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,wBAAsB,6BAA6B,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBxG"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { readFile, readdir, stat } from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { gifMetadata } from "./media.js";
|
|
4
|
+
import { assertProjectDefaults, validateWallpaperProjectMetadata } from "./project-contract.js";
|
|
3
5
|
async function walk(directory) {
|
|
4
6
|
const files = [];
|
|
5
7
|
for (const entry of await readdir(directory, { withFileTypes: true })) {
|
|
@@ -32,4 +34,34 @@ export async function validateDistributionFiles(options) {
|
|
|
32
34
|
}
|
|
33
35
|
}
|
|
34
36
|
}
|
|
37
|
+
export async function validateWallpaperDistribution(options) {
|
|
38
|
+
await validateDistributionFiles(options);
|
|
39
|
+
const root = path.resolve(options.rootDirectory);
|
|
40
|
+
if (options.projectJson) {
|
|
41
|
+
const metadataIssues = validateWallpaperProjectMetadata(options.projectJson, { requireTags: [...(options.requiredProjectTags ?? [])] });
|
|
42
|
+
if (metadataIssues.length > 0)
|
|
43
|
+
throw new Error(`Invalid distribution project metadata: ${metadataIssues.join(", ")}`);
|
|
44
|
+
if (options.runtimeDefaults && options.projectJson.general?.properties)
|
|
45
|
+
assertProjectDefaults(options.projectJson.general.properties, options.runtimeDefaults);
|
|
46
|
+
}
|
|
47
|
+
if (options.validatePreview ?? true) {
|
|
48
|
+
const previewPath = options.previewPath ?? "preview.gif";
|
|
49
|
+
const preview = await readFile(path.join(root, previewPath));
|
|
50
|
+
const metadata = gifMetadata(preview, previewPath);
|
|
51
|
+
if (metadata.width !== 256 || metadata.height !== 256 || metadata.frames < 2 || preview.length > 500000)
|
|
52
|
+
throw new Error(`Invalid preview GIF: ${JSON.stringify(metadata)}`);
|
|
53
|
+
}
|
|
54
|
+
for (const [relative, markers] of Object.entries(options.requiredText ?? {})) {
|
|
55
|
+
const text = await readFile(path.join(root, relative), "utf8");
|
|
56
|
+
for (const marker of markers)
|
|
57
|
+
if (!text.includes(marker))
|
|
58
|
+
throw new Error(`${relative} is missing required text: ${marker}`);
|
|
59
|
+
}
|
|
60
|
+
for (const [relative, markers] of Object.entries(options.forbiddenText ?? {})) {
|
|
61
|
+
const text = await readFile(path.join(root, relative), "utf8");
|
|
62
|
+
for (const marker of markers)
|
|
63
|
+
if (text.includes(marker))
|
|
64
|
+
throw new Error(`${relative} contains forbidden text: ${marker}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
35
67
|
//# sourceMappingURL=distribution-validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distribution-validation.js","sourceRoot":"","sources":["../src/distribution-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"distribution-validation.js","sourceRoot":"","sources":["../src/distribution-validation.ts"],"names":[],"mappings":"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"}
|