@realsee/hdr-toolbox 1.0.0 → 1.0.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/README.md +9 -9
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +14 -2
- package/dist/cli.js.map +1 -1
- package/dist/xmp.d.ts.map +1 -1
- package/dist/xmp.js +42 -15
- package/dist/xmp.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -26,18 +26,18 @@ node dist/cli.js --help
|
|
|
26
26
|
|
|
27
27
|
```json
|
|
28
28
|
{
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"gamma":
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
29
|
+
"max_content_boost": 813.30419921875,
|
|
30
|
+
"min_content_boost": 1,
|
|
31
|
+
"gamma": 1,
|
|
32
|
+
"offset_sdr": 0,
|
|
33
|
+
"offset_hdr": 0,
|
|
34
|
+
"hdr_capacity_min": 1,
|
|
35
|
+
"hdr_capacity_max": 1000,
|
|
36
|
+
"use_base_color_space": true
|
|
37
37
|
}
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
写入 XMP 时,`
|
|
40
|
+
写入 JSON 时使用下划线(snake_case)key,数值和布尔值都写成原生 JSON 类型。读取时同时兼容下划线和驼峰(camelCase,如 `maxContentBoost`)两种写法,方便兼容旧文件;数值也接受字符串形式(如 `"1"`、`"1.0"`),会按数字解析。写入 XMP 时,`max_content_boost`、`min_content_boost`、`hdr_capacity_min` 和 `hdr_capacity_max` 会自动转换为标准要求的 `log2` 值。分解时,`.json` 输出线性值(下划线 key),`.xmp` 输出标准 XMP。
|
|
41
41
|
|
|
42
42
|
## CLI
|
|
43
43
|
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,aAAa,IAAI,OAAO,CAoEvC"}
|
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from "commander";
|
|
3
|
+
import { realpathSync } from "node:fs";
|
|
3
4
|
import { pathToFileURL } from "node:url";
|
|
4
5
|
import { cubeToEquirectUltraHdr, equirectUltraHdrToCube } from "./panorama.js";
|
|
5
6
|
import { composeUltraHdr, extractUltraHdr } from "./ultrahdr.js";
|
|
@@ -8,7 +9,7 @@ export function createProgram() {
|
|
|
8
9
|
program
|
|
9
10
|
.name("hdr-toolbox")
|
|
10
11
|
.description("Compose, extract, and convert Android Ultra HDR JPEG images")
|
|
11
|
-
.version("1.0.
|
|
12
|
+
.version("1.0.1");
|
|
12
13
|
program
|
|
13
14
|
.command("compose")
|
|
14
15
|
.description("Compose an SDR JPEG, gain map JPEG, and JSON/XMP config into Ultra HDR")
|
|
@@ -67,7 +68,18 @@ export function createProgram() {
|
|
|
67
68
|
});
|
|
68
69
|
return program;
|
|
69
70
|
}
|
|
70
|
-
|
|
71
|
+
function isMainModule() {
|
|
72
|
+
const entryPoint = process.argv[1];
|
|
73
|
+
if (!entryPoint)
|
|
74
|
+
return false;
|
|
75
|
+
try {
|
|
76
|
+
return import.meta.url === pathToFileURL(realpathSync(entryPoint)).href;
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (isMainModule()) {
|
|
71
83
|
createProgram()
|
|
72
84
|
.parseAsync()
|
|
73
85
|
.catch((error) => {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEjE,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,aAAa,CAAC;SACnB,WAAW,CAAC,6DAA6D,CAAC;SAC1E,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,wEAAwE,CAAC;SACrF,cAAc,CAAC,cAAc,EAAE,kBAAkB,CAAC;SAClD,cAAc,CAAC,kBAAkB,EAAE,eAAe,CAAC;SACnD,cAAc,CAAC,qBAAqB,EAAE,iCAAiC,CAAC;SACxE,cAAc,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,OAAyE,EAAE,EAAE;QAC1F,MAAM,eAAe,CAAC;YACpB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,mEAAmE,CAAC;SAChF,cAAc,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;SAC5D,cAAc,CAAC,cAAc,EAAE,iBAAiB,CAAC;SACjD,cAAc,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;SAC1D,cAAc,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;SACtE,MAAM,CAAC,KAAK,EAAE,OAAwE,EAAE,EAAE;QACzF,MAAM,eAAe,CAAC;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,6EAA6E,CAAC;SAC1F,cAAc,CAAC,wBAAwB,EAAE,iDAAiD,CAAC;SAC3F,MAAM,CAAC,qBAAqB,EAAE,2BAA2B,EAAE,GAAG,CAAC;SAC/D,cAAc,CAAC,qBAAqB,EAAE,uCAAuC,CAAC;SAC9E,MAAM,CAAC,KAAK,EAAE,OAA6D,EAAE,EAAE;QAC9E,MAAM,sBAAsB,CAAC;YAC3B,cAAc,EAAE,OAAO,CAAC,QAAQ;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,4EAA4E,CAAC;SACzF,cAAc,CAAC,oBAAoB,EAAE,sCAAsC,CAAC;SAC5E,cAAc,CAAC,yBAAyB,EAAE,kBAAkB,CAAC;SAC7D,MAAM,CAAC,qBAAqB,EAAE,kCAAkC,EAAE,GAAG,CAAC;SACtE,MAAM,CAAC,KAAK,EAAE,OAA6D,EAAE,EAAE;QAC9E,MAAM,sBAAsB,CAAC;YAC3B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,eAAe,EAAE,OAAO,CAAC,SAAS;YAClC,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEjE,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,aAAa,CAAC;SACnB,WAAW,CAAC,6DAA6D,CAAC;SAC1E,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,wEAAwE,CAAC;SACrF,cAAc,CAAC,cAAc,EAAE,kBAAkB,CAAC;SAClD,cAAc,CAAC,kBAAkB,EAAE,eAAe,CAAC;SACnD,cAAc,CAAC,qBAAqB,EAAE,iCAAiC,CAAC;SACxE,cAAc,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,OAAyE,EAAE,EAAE;QAC1F,MAAM,eAAe,CAAC;YACpB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,mEAAmE,CAAC;SAChF,cAAc,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;SAC5D,cAAc,CAAC,cAAc,EAAE,iBAAiB,CAAC;SACjD,cAAc,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;SAC1D,cAAc,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;SACtE,MAAM,CAAC,KAAK,EAAE,OAAwE,EAAE,EAAE;QACzF,MAAM,eAAe,CAAC;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,6EAA6E,CAAC;SAC1F,cAAc,CAAC,wBAAwB,EAAE,iDAAiD,CAAC;SAC3F,MAAM,CAAC,qBAAqB,EAAE,2BAA2B,EAAE,GAAG,CAAC;SAC/D,cAAc,CAAC,qBAAqB,EAAE,uCAAuC,CAAC;SAC9E,MAAM,CAAC,KAAK,EAAE,OAA6D,EAAE,EAAE;QAC9E,MAAM,sBAAsB,CAAC;YAC3B,cAAc,EAAE,OAAO,CAAC,QAAQ;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,4EAA4E,CAAC;SACzF,cAAc,CAAC,oBAAoB,EAAE,sCAAsC,CAAC;SAC5E,cAAc,CAAC,yBAAyB,EAAE,kBAAkB,CAAC;SAC7D,MAAM,CAAC,qBAAqB,EAAE,kCAAkC,EAAE,GAAG,CAAC;SACtE,MAAM,CAAC,KAAK,EAAE,OAA6D,EAAE,EAAE;QAC9E,MAAM,sBAAsB,CAAC;YAC3B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,eAAe,EAAE,OAAO,CAAC,SAAS;YAClC,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9B,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,IAAI,YAAY,EAAE,EAAE,CAAC;IACnB,aAAa,EAAE;SACZ,UAAU,EAAE;SACZ,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACxB,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/xmp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xmp.d.ts","sourceRoot":"","sources":["../src/xmp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,YAAY,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"xmp.d.ts","sourceRoot":"","sources":["../src/xmp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,YAAY,mCAAmC,CAAC;AAyD7D,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAsCpE;AAiCD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAqB1D;AAMD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,aAAa,GAAG,MAAM,CAKnE;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAI9D;AAUD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAM5E;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3F"}
|
package/dist/xmp.js
CHANGED
|
@@ -12,6 +12,26 @@ const defaults = {
|
|
|
12
12
|
hdrCapacityMax: 1,
|
|
13
13
|
useBaseColorSpace: true,
|
|
14
14
|
};
|
|
15
|
+
const snakeCaseKeys = {
|
|
16
|
+
maxContentBoost: "max_content_boost",
|
|
17
|
+
minContentBoost: "min_content_boost",
|
|
18
|
+
gamma: "gamma",
|
|
19
|
+
offsetSdr: "offset_sdr",
|
|
20
|
+
offsetHdr: "offset_hdr",
|
|
21
|
+
hdrCapacityMin: "hdr_capacity_min",
|
|
22
|
+
hdrCapacityMax: "hdr_capacity_max",
|
|
23
|
+
useBaseColorSpace: "use_base_color_space",
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Reads a gain map config field by its snake_case JSON key, falling back to
|
|
27
|
+
* the legacy camelCase key for backward compatibility with older config files.
|
|
28
|
+
* Config input only ever comes from `JSON.parse` or from an in-memory
|
|
29
|
+
* `GainMapConfig`, so `in` cannot match an inherited property.
|
|
30
|
+
*/
|
|
31
|
+
function jsonField(input, key) {
|
|
32
|
+
const snakeCaseKey = snakeCaseKeys[key];
|
|
33
|
+
return snakeCaseKey in input ? input[snakeCaseKey] : input[key];
|
|
34
|
+
}
|
|
15
35
|
function finiteNumber(value, name, fallback) {
|
|
16
36
|
if (value === undefined && fallback !== undefined)
|
|
17
37
|
return fallback;
|
|
@@ -34,29 +54,29 @@ export function normalizeGainMapConfig(value) {
|
|
|
34
54
|
throw new Error("Gain map config must be an object.");
|
|
35
55
|
const input = value;
|
|
36
56
|
const config = {
|
|
37
|
-
maxContentBoost: finiteNumber(input
|
|
38
|
-
minContentBoost: finiteNumber(input
|
|
39
|
-
gamma: finiteNumber(input
|
|
40
|
-
offsetSdr: finiteNumber(input
|
|
41
|
-
offsetHdr: finiteNumber(input
|
|
42
|
-
hdrCapacityMin: finiteNumber(input
|
|
43
|
-
hdrCapacityMax: finiteNumber(input
|
|
44
|
-
useBaseColorSpace: booleanValue(input
|
|
57
|
+
maxContentBoost: finiteNumber(jsonField(input, "maxContentBoost"), "max_content_boost"),
|
|
58
|
+
minContentBoost: finiteNumber(jsonField(input, "minContentBoost"), "min_content_boost", defaults.minContentBoost),
|
|
59
|
+
gamma: finiteNumber(jsonField(input, "gamma"), "gamma", defaults.gamma),
|
|
60
|
+
offsetSdr: finiteNumber(jsonField(input, "offsetSdr"), "offset_sdr", defaults.offsetSdr),
|
|
61
|
+
offsetHdr: finiteNumber(jsonField(input, "offsetHdr"), "offset_hdr", defaults.offsetHdr),
|
|
62
|
+
hdrCapacityMin: finiteNumber(jsonField(input, "hdrCapacityMin"), "hdr_capacity_min", defaults.hdrCapacityMin),
|
|
63
|
+
hdrCapacityMax: finiteNumber(jsonField(input, "hdrCapacityMax"), "hdr_capacity_max"),
|
|
64
|
+
useBaseColorSpace: booleanValue(jsonField(input, "useBaseColorSpace"), defaults.useBaseColorSpace),
|
|
45
65
|
};
|
|
46
66
|
if (config.maxContentBoost < 1)
|
|
47
|
-
throw new Error("
|
|
67
|
+
throw new Error("max_content_boost must be >= 1.");
|
|
48
68
|
if (config.minContentBoost <= 0 || config.minContentBoost > 1)
|
|
49
|
-
throw new Error("
|
|
69
|
+
throw new Error("min_content_boost must be > 0 and <= 1.");
|
|
50
70
|
if (config.minContentBoost > config.maxContentBoost)
|
|
51
|
-
throw new Error("
|
|
71
|
+
throw new Error("min_content_boost must be <= max_content_boost.");
|
|
52
72
|
if (config.gamma <= 0)
|
|
53
73
|
throw new Error("gamma must be > 0.");
|
|
54
74
|
if (config.offsetSdr < 0 || config.offsetHdr < 0)
|
|
55
|
-
throw new Error("
|
|
75
|
+
throw new Error("offset_sdr and offset_hdr must be >= 0.");
|
|
56
76
|
if (config.hdrCapacityMin < 1)
|
|
57
|
-
throw new Error("
|
|
77
|
+
throw new Error("hdr_capacity_min must be >= 1.");
|
|
58
78
|
if (config.hdrCapacityMax <= config.hdrCapacityMin)
|
|
59
|
-
throw new Error("
|
|
79
|
+
throw new Error("hdr_capacity_max must be greater than hdr_capacity_min.");
|
|
60
80
|
return config;
|
|
61
81
|
}
|
|
62
82
|
function propertyValues(xml, name) {
|
|
@@ -123,6 +143,13 @@ export function createPrimaryXmp(gainMapLength) {
|
|
|
123
143
|
throw new Error("Gain map JPEG length must be a positive integer.");
|
|
124
144
|
return `<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="@realsee/hdr-toolbox"><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:Description rdf:about="" xmlns:Container="http://ns.google.com/photos/1.0/container/" xmlns:Item="http://ns.google.com/photos/1.0/container/item/" xmlns:hdrgm="${hdrGainMapNamespace}" hdrgm:Version="1.0"><Container:Directory><rdf:Seq><rdf:li rdf:parseType="Resource"><Container:Item Item:Semantic="Primary" Item:Mime="image/jpeg"/></rdf:li><rdf:li rdf:parseType="Resource"><Container:Item Item:Semantic="GainMap" Item:Mime="image/jpeg" Item:Length="${gainMapLength}"/></rdf:li></rdf:Seq></Container:Directory></rdf:Description></rdf:RDF></x:xmpmeta>`;
|
|
125
145
|
}
|
|
146
|
+
function toSnakeCaseJson(config) {
|
|
147
|
+
const result = {};
|
|
148
|
+
for (const key of Object.keys(snakeCaseKeys)) {
|
|
149
|
+
result[snakeCaseKeys[key]] = config[key];
|
|
150
|
+
}
|
|
151
|
+
return result;
|
|
152
|
+
}
|
|
126
153
|
export async function readGainMapConfig(path) {
|
|
127
154
|
const text = await readFile(path, "utf8");
|
|
128
155
|
const trimmed = text.trim();
|
|
@@ -133,7 +160,7 @@ export async function readGainMapConfig(path) {
|
|
|
133
160
|
export async function writeGainMapConfig(path, config) {
|
|
134
161
|
const contents = extname(path).toLowerCase() === ".xmp"
|
|
135
162
|
? `${createGainMapXmp(config)}\n`
|
|
136
|
-
: `${JSON.stringify(normalizeGainMapConfig(config), null, 2)}\n`;
|
|
163
|
+
: `${JSON.stringify(toSnakeCaseJson(normalizeGainMapConfig(config)), null, 2)}\n`;
|
|
137
164
|
await mkdir(dirname(path), { recursive: true });
|
|
138
165
|
await writeFile(path, contents, "utf8");
|
|
139
166
|
}
|
package/dist/xmp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xmp.js","sourceRoot":"","sources":["../src/xmp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG7C,MAAM,CAAC,MAAM,YAAY,GAAG,gCAAgC,CAAC;AAC7D,MAAM,mBAAmB,GAAG,uCAAuC,CAAC;AAEpE,MAAM,QAAQ,GAAkB;IAC9B,eAAe,EAAE,CAAC;IAClB,eAAe,EAAE,CAAC;IAClB,KAAK,EAAE,CAAC;IACR,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,QAAQ;IACnB,cAAc,EAAE,CAAC;IACjB,cAAc,EAAE,CAAC;IACjB,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAEF,SAAS,YAAY,CAAC,KAAc,EAAE,IAAY,EAAE,QAAiB;IACnE,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACnE,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,6BAA6B,CAAC,CAAC;IAC5F,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,QAAiB;IACrD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACzC,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,KAAK,CAAC,CAAC;IAClD,OAAO,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAC7C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,KAAgC,CAAC;IAC/C,MAAM,MAAM,GAAkB;QAC5B,eAAe,EAAE,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"xmp.js","sourceRoot":"","sources":["../src/xmp.ts"],"names":[],"mappings":"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"}
|