@openmixer/plugin-qualify 0.7.0 → 0.9.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 (46) hide show
  1. package/README.md +55 -3
  2. package/bin/plugin-qualify.mjs +59 -24
  3. package/dist/clap-loader.d.ts +25 -1
  4. package/dist/clap-loader.js +88 -7
  5. package/dist/clap-loader.js.map +1 -1
  6. package/dist/clap-qualify.d.ts +3 -2
  7. package/dist/clap-qualify.js +15 -15
  8. package/dist/clap-qualify.js.map +1 -1
  9. package/dist/hosting-suitability.js +1 -1
  10. package/dist/hosting-suitability.js.map +1 -1
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.js +1 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/lv2-loader.d.ts +5 -0
  15. package/dist/lv2-loader.js +30 -2
  16. package/dist/lv2-loader.js.map +1 -1
  17. package/dist/measurement/cli.d.ts +13 -0
  18. package/dist/measurement/cli.js +68 -2
  19. package/dist/measurement/cli.js.map +1 -1
  20. package/dist/pins-file.d.ts +76 -0
  21. package/dist/pins-file.js +165 -0
  22. package/dist/pins-file.js.map +1 -0
  23. package/dist/qualify-cli.d.ts +2 -0
  24. package/dist/qualify-cli.js +7 -1
  25. package/dist/qualify-cli.js.map +1 -1
  26. package/dist/qualify-declarations.d.ts +9 -1
  27. package/dist/qualify-declarations.js +9 -1
  28. package/dist/qualify-declarations.js.map +1 -1
  29. package/dist/qualify-options.js +6 -1
  30. package/dist/qualify-options.js.map +1 -1
  31. package/dist/tool-paths.d.ts +35 -1
  32. package/dist/tool-paths.js +50 -6
  33. package/dist/tool-paths.js.map +1 -1
  34. package/package.json +1 -1
  35. package/src/clap-loader.ts +99 -7
  36. package/src/clap-qualify.ts +14 -21
  37. package/src/hosting-suitability.ts +1 -1
  38. package/src/index.ts +1 -0
  39. package/src/lv2-loader.ts +28 -2
  40. package/src/measurement/cli.ts +77 -2
  41. package/src/pins-file.ts +200 -0
  42. package/src/qualify-cli.ts +8 -1
  43. package/src/qualify-declarations.ts +10 -1
  44. package/src/qualify-options.ts +7 -1
  45. package/src/tool-paths.ts +68 -5
  46. package/tools/lv2-measure.mjs +29 -9
@@ -0,0 +1,165 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ // Copyright (C) 2026 Pau Aliagas <linuxnow@gmail.com>
3
+ /**
4
+ * The pins file `plugin-qualify --pins <file>` writes and plugin-hostd loads (`pin_file` in its settings, or its
5
+ * pin store's import): one line per qualified plugin, the SAME line as hostd's `pin_set` verb, with the
6
+ * qualification verdict as a last word.
7
+ *
8
+ * pin_set <uri> <path>=<sha256>[,<path>=<sha256>...] <scheme>:<sha256> [verdict=<word>]
9
+ *
10
+ * The digests and the layout are the prober's, raw (`IntegrityMeasurement`); nothing here computes a hash. A plugin
11
+ * whose run took no whole pin has no line: a pins file never holds a partial pin. The grammar is plugin-hostd's
12
+ * (`include/plugin-hostd/protocol.h`, PHD_PIN_*); `parsePinLine` reads a line back with the daemon's rules, so a
13
+ * writer that drifts from them is a red test and not a refused add.
14
+ */
15
+ import { resolve } from "node:path";
16
+ /** The verb the line starts with in a pins file, hostd's `PHD_VERB_PIN_SET`. */
17
+ export const PIN_VERB = "pin_set";
18
+ /** The key of the verdict word, hostd's `PHD_PIN_VERDICT_KEY`. */
19
+ export const PIN_VERDICT_KEY = "verdict=";
20
+ /** The verdict words hostd knows (`PHD_PIN_VERDICTS`). */
21
+ export const PIN_VERDICTS = ["in-process", "isolated", "refused"];
22
+ /**
23
+ * What a rating says about where the plugin may run, in hostd's words. `suitable` is qualified for a worker that other
24
+ * plugins share. `conditional` loads and is isolated. `unsuitable` is measured to fail and is `refused`. `unknown` is no
25
+ * opinion: no verdict word, and hostd treats the plugin as not qualified.
26
+ */
27
+ export function pinVerdictOf(rating) {
28
+ switch (rating) {
29
+ case "suitable":
30
+ return "in-process";
31
+ case "conditional":
32
+ return "isolated";
33
+ case "unsuitable":
34
+ return "refused";
35
+ case "unknown":
36
+ return undefined;
37
+ }
38
+ }
39
+ /** The line of one pin, or `undefined` when the integrity block is not a whole pin. A uri with whitespace in it would be read back as more words: it is refused, by name. */
40
+ export function pinLine(entry) {
41
+ const spaced = [entry.uri, ...(entry.integrity.files ?? []).map((f) => f.path)].find((w) => /\s/.test(w));
42
+ if (spaced !== undefined) {
43
+ throw new Error(`${entry.uri}: ${JSON.stringify(spaced)} has whitespace in it and cannot be a word of a pin line`);
44
+ }
45
+ const { files, layout } = entry.integrity;
46
+ if (files === undefined || files.length === 0 || layout === undefined)
47
+ return undefined;
48
+ const list = files.map((f) => `${f.path}=${f.sha256}`).join(",");
49
+ const verdict = entry.verdict === undefined ? "" : ` ${PIN_VERDICT_KEY}${entry.verdict}`;
50
+ return `${PIN_VERB} ${entry.uri} ${list} ${layout.scheme}:${layout.sha256}${verdict}`;
51
+ }
52
+ /** hostd's uri of a CLAP plugin the prober loaded: its file as it was handed, made absolute, and its id. */
53
+ export function clapPinUri(binaryPath, pluginUri) {
54
+ const id = pluginUri.startsWith("urn:clap:") ? pluginUri.slice("urn:clap:".length) : pluginUri;
55
+ return `clap:${resolve(binaryPath)}#${id}`;
56
+ }
57
+ /**
58
+ * The file: a comment that says where it came from, then one line per plugin, sorted by uri. A uri given twice keeps
59
+ * the entry whose verdict is the worse one (`refused` over `isolated` over `in-process`, no word over all), so a
60
+ * plugin found twice is never pinned more kindly than its worst measurement.
61
+ */
62
+ export function pinsFile(entries) {
63
+ const byUri = new Map();
64
+ const verdictOf = new Map();
65
+ const skipped = [];
66
+ const refused = [];
67
+ const rank = (v) => (v === undefined ? 4 : { "in-process": 1, isolated: 2, refused: 3 }[v]);
68
+ for (const entry of entries) {
69
+ let line;
70
+ try {
71
+ line = pinLine(entry);
72
+ }
73
+ catch (e) {
74
+ refused.push({ uri: entry.uri, problem: e.message });
75
+ continue;
76
+ }
77
+ if (line === undefined) {
78
+ skipped.push(entry.uri);
79
+ continue;
80
+ }
81
+ if (byUri.has(entry.uri) && rank(verdictOf.get(entry.uri)) >= rank(entry.verdict))
82
+ continue;
83
+ byUri.set(entry.uri, line);
84
+ verdictOf.set(entry.uri, entry.verdict);
85
+ }
86
+ const uris = [...byUri.keys()].sort();
87
+ const text = [
88
+ "# written by plugin-qualify --pins; plugin-hostd reads it with pin_file",
89
+ ...uris.map((u) => byUri.get(u)),
90
+ "",
91
+ ].join("\n");
92
+ return { text, written: uris, skipped: skipped.filter((u) => !byUri.has(u)), refused };
93
+ }
94
+ /**
95
+ * The entries of a CLAP pass for one host: each document of that host's profile with its pin and the verdict its
96
+ * rating says. The documents of other profiles are ignored; a pins file is for one host.
97
+ */
98
+ export function clapPinEntries(documents, host) {
99
+ return documents
100
+ .filter((d) => d.console === host)
101
+ .map((d) => {
102
+ const verdict = pinVerdictOf(d.verdict.rating);
103
+ return {
104
+ uri: clapPinUri(d.plugin.binary.path, d.plugin.uri),
105
+ integrity: d.measured.integrity,
106
+ ...(verdict === undefined ? {} : { verdict }),
107
+ };
108
+ });
109
+ }
110
+ /**
111
+ * The entries of an LV2 run: each measured plugin with a pin and the verdict row of that host. A plugin with no verdict
112
+ * row for the host is pinned without a verdict word.
113
+ */
114
+ export function measuredPinEntries(plugins, verdicts, host) {
115
+ return plugins.flatMap((p) => {
116
+ if (p.integrity === undefined)
117
+ return [];
118
+ const row = verdicts.find((v) => v.uri === p.uri && v.host === host);
119
+ const verdict = row === undefined || !row.measured ? undefined : pinVerdictOf(row.rating);
120
+ return [{ uri: p.uri, integrity: p.integrity, ...(verdict === undefined ? {} : { verdict }) }];
121
+ });
122
+ }
123
+ const HEX = /^[0-9a-f]{64}$/;
124
+ /**
125
+ * hostd's grammar for a pin line, the verb optional; `undefined` for a blank or comment line, and a thrown Error for a
126
+ * line the daemon would refuse (a path holding a separator, a path that climbs out of the bundle, a digest that is not
127
+ * 64 lowercase hex digits, a layout without a scheme, a verdict outside the vocabulary, a path named twice).
128
+ */
129
+ export function parsePinLine(line) {
130
+ const words = line.trim().split(/\s+/).filter((w) => w !== "");
131
+ if (words.length === 0 || words[0].startsWith("#"))
132
+ return undefined;
133
+ if (words[0] === PIN_VERB)
134
+ words.shift();
135
+ if (words.length !== 3 && words.length !== 4)
136
+ throw new Error(`a pin line has 3 or 4 words, not ${words.length}`);
137
+ const [uri, list, layout, verdictWord] = words;
138
+ const files = list.split(",").map((item) => {
139
+ const eq = item.lastIndexOf("=");
140
+ if (eq < 0)
141
+ throw new Error(`${item}: no =`);
142
+ const path = item.slice(0, eq);
143
+ const sha256 = item.slice(eq + 1);
144
+ if (path === "" || path.startsWith("/") || path.split("/").some((part) => part === "" || part === "..")) {
145
+ throw new Error(`${path}: not a path inside the bundle`);
146
+ }
147
+ if (!HEX.test(sha256))
148
+ throw new Error(`${path}: not a sha256`);
149
+ return { path, sha256 };
150
+ });
151
+ if (new Set(files.map((f) => f.path)).size !== files.length)
152
+ throw new Error("a path is named twice");
153
+ const colon = layout.lastIndexOf(":");
154
+ if (colon <= 0 || !HEX.test(layout.slice(colon + 1)))
155
+ throw new Error(`${layout}: not a layout pin`);
156
+ let verdict;
157
+ if (verdictWord !== undefined) {
158
+ const word = verdictWord.startsWith(PIN_VERDICT_KEY) ? verdictWord.slice(PIN_VERDICT_KEY.length) : "";
159
+ if (!PIN_VERDICTS.includes(word))
160
+ throw new Error(`${verdictWord}: not a verdict`);
161
+ verdict = word;
162
+ }
163
+ return { uri, files, layout: { scheme: layout.slice(0, colon), sha256: layout.slice(colon + 1) }, ...(verdict === undefined ? {} : { verdict }) };
164
+ }
165
+ //# sourceMappingURL=pins-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pins-file.js","sourceRoot":"","sources":["../src/pins-file.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ export interface QualifyArgs {
10
10
  readonly rates: readonly number[];
11
11
  readonly quanta: readonly number[];
12
12
  readonly out?: string;
13
+ /** `--pins`: where the pins file is written. */
14
+ readonly pins?: string;
13
15
  readonly format: OutputFormat;
14
16
  readonly isolate: boolean;
15
17
  readonly hostSweep: boolean;
@@ -67,6 +67,9 @@ export function parseQualifyArgs(argv) {
67
67
  return { ok: false, error: `--format must be one of ${OUTPUT_FORMATS.join(", ")}` };
68
68
  }
69
69
  const out = seen.get("--out");
70
+ const pins = seen.get("--pins");
71
+ if (pins !== undefined && pins.startsWith("--"))
72
+ return { ok: false, error: "--pins needs a file name" };
70
73
  const hostProfiles = [...new Set(profileSpecs.length > 0 ? profileSpecs : [defaultOf("--host-profile")])];
71
74
  return {
72
75
  ok: true,
@@ -76,6 +79,7 @@ export function parseQualifyArgs(argv) {
76
79
  rates,
77
80
  quanta,
78
81
  ...(out === undefined ? {} : { out }),
82
+ ...(pins === undefined ? {} : { pins }),
79
83
  format: format,
80
84
  isolate: seen.has("--isolate"),
81
85
  hostSweep: !seen.has("--no-host-sweep"),
@@ -94,7 +98,9 @@ export function helpText() {
94
98
  "plugin-qualify — qualify audio plugins for real-time hosting",
95
99
  "",
96
100
  " plugin-qualify <uri|bundle-path>... exactly the named plugins; a .lv2 bundle = every plugin in it",
97
- " plugin-qualify --all every plugin lilv finds (LV2_PATH honoured)",
101
+ " plugin-qualify --all every CLAP plugin on CLAP_PATH, then ~/.clap, then /usr/lib/clap;",
102
+ " refuses (exit 2) when LV2 bundles are on the LV2 path (LV2_PATH),",
103
+ " which this entry point cannot measure",
98
104
  "",
99
105
  ...rows,
100
106
  "",
@@ -1 +1 @@
1
- {"version":3,"file":"qualify-cli.js","sourceRoot":"","sources":["../src/qualify-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qualify-cli.js","sourceRoot":"","sources":["../src/qualify-cli.ts"],"names":[],"mappings":"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"}
@@ -53,12 +53,20 @@ export declare const SOAK_CALIBRATION_S = 30;
53
53
  */
54
54
  export declare const CLAP_SCAN_TOOL_ENV = "OMX_CLAP_SCAN";
55
55
  export declare const CLAP_SCAN_TOOL_DEFAULT = "omx-clap-scan";
56
+ /**
57
+ * The standard CLAP search path `--all` walks, in this order: every directory `CLAP_PATH` names
58
+ * (colon-separated), then `~/.clap`, then `/usr/lib/clap`. The system directory is the same on
59
+ * every distribution and architecture; it is never the library directory (`/usr/lib64`).
60
+ */
61
+ export declare const CLAP_PATH_ENV = "CLAP_PATH";
62
+ export declare const CLAP_USER_DIR = ".clap";
63
+ export declare const CLAP_SYSTEM_DIR = "/usr/lib/clap";
56
64
  /** Seconds one run of the CLAP scanner may take over everything it was pointed at. */
57
65
  export declare const CLAP_SCAN_TIMEOUT_S = 300;
58
66
  /**
59
67
  * The CLAP prober (`native/clap-qualify.c`), the LV2 measurer (`native/lv2-measure.c`) and the
60
68
  * interposer both run under (`native/rt-interpose.c`): each located by one environment variable, else
61
- * the first of `NATIVE_TOOL_DIRS` that holds it, else the package's own build in `native/build/`.
69
+ * the package's own build in `native/build/`, else the first of `NATIVE_TOOL_DIRS` that holds it.
62
70
  */
63
71
  export declare const CLAP_QUALIFY_TOOL_ENV = "OMX_CLAP_QUALIFY";
64
72
  export declare const LV2_MEASURE_TOOL_ENV = "OMX_LV2_MEASURE";
@@ -55,12 +55,20 @@ export const SOAK_CALIBRATION_S = 30;
55
55
  */
56
56
  export const CLAP_SCAN_TOOL_ENV = "OMX_CLAP_SCAN";
57
57
  export const CLAP_SCAN_TOOL_DEFAULT = "omx-clap-scan";
58
+ /**
59
+ * The standard CLAP search path `--all` walks, in this order: every directory `CLAP_PATH` names
60
+ * (colon-separated), then `~/.clap`, then `/usr/lib/clap`. The system directory is the same on
61
+ * every distribution and architecture; it is never the library directory (`/usr/lib64`).
62
+ */
63
+ export const CLAP_PATH_ENV = "CLAP_PATH";
64
+ export const CLAP_USER_DIR = ".clap";
65
+ export const CLAP_SYSTEM_DIR = "/usr/lib/clap";
58
66
  /** Seconds one run of the CLAP scanner may take over everything it was pointed at. */
59
67
  export const CLAP_SCAN_TIMEOUT_S = 300;
60
68
  /**
61
69
  * The CLAP prober (`native/clap-qualify.c`), the LV2 measurer (`native/lv2-measure.c`) and the
62
70
  * interposer both run under (`native/rt-interpose.c`): each located by one environment variable, else
63
- * the first of `NATIVE_TOOL_DIRS` that holds it, else the package's own build in `native/build/`.
71
+ * the package's own build in `native/build/`, else the first of `NATIVE_TOOL_DIRS` that holds it.
64
72
  */
65
73
  export const CLAP_QUALIFY_TOOL_ENV = "OMX_CLAP_QUALIFY";
66
74
  export const LV2_MEASURE_TOOL_ENV = "OMX_LV2_MEASURE";
@@ -1 +1 @@
1
- {"version":3,"file":"qualify-declarations.js","sourceRoot":"","sources":["../src/qualify-declarations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qualify-declarations.js","sourceRoot":"","sources":["../src/qualify-declarations.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ export const EXIT_CODE = {
18
18
  couldNotMeasure: 2,
19
19
  };
20
20
  export const QUALIFY_OPTIONS = [
21
- { flag: "--all", describe: "every plugin lilv finds (LV2_PATH honoured)" },
21
+ { flag: "--all", describe: "every CLAP plugin on the CLAP search path; refuses when LV2 bundles are on the LV2 path" },
22
22
  { flag: "--rates", value: "list", describe: "sample rates to measure at, comma-separated", default: QUALIFY_RATES.join(",") },
23
23
  { flag: "--quanta", value: "list", describe: "quanta (frames) to rate cost at, comma-separated", default: QUALIFY_QUANTA.join(",") },
24
24
  { flag: "--out", value: "dir", describe: "write one interchange JSON document per run into this directory" },
@@ -31,6 +31,11 @@ export const QUALIFY_OPTIONS = [
31
31
  describe: `judge against this host (${HOST_PROFILES.map((p) => p.id).join(", ")}, or a profile JSON file); repeat or comma-separate for one verdict per profile`,
32
32
  default: OPENMIXER_CONSOLE_PROFILE.id,
33
33
  },
34
+ {
35
+ flag: "--pins",
36
+ value: "file",
37
+ describe: "write one pin per qualified plugin to this file, with its verdict, for plugin-hostd's pin_file (the verdict is the first host profile's)",
38
+ },
34
39
  { flag: "--help", describe: "this text" },
35
40
  ];
36
41
  //# sourceMappingURL=qualify-options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"qualify-options.js","sourceRoot":"","sources":["../src/qualify-options.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sDAAsD;AACtD;;;GAGG;AACH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,uFAAuF;AACvF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAU,CAAC;AAGxD,+CAA+C;AAC/C,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,2CAA2C;IAC3C,YAAY,EAAE,CAAC;IACf,+DAA+D;IAC/D,gBAAgB,EAAE,CAAC;IACnB,sFAAsF;IACtF,eAAe,EAAE,CAAC;CACV,CAAC;AAYX,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,6CAA6C,EAAE;IAC1E,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,6CAA6C,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IAC7H,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,kDAAkD,EAAE,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IACpI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,iEAAiE,EAAE;IAC5G,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,sEAAsE,EAAE,OAAO,EAAE,MAAM,EAAE;IACxJ,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,sEAAsE,EAAE;IACvG,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,0DAA0D,EAAE;IACjG;QACE,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,4BAA4B,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iFAAiF;QAChK,OAAO,EAAE,yBAAyB,CAAC,EAAE;KACtC;IACD,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE;CAC1C,CAAC"}
1
+ {"version":3,"file":"qualify-options.js","sourceRoot":"","sources":["../src/qualify-options.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sDAAsD;AACtD;;;GAGG;AACH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,uFAAuF;AACvF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAU,CAAC;AAGxD,+CAA+C;AAC/C,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,2CAA2C;IAC3C,YAAY,EAAE,CAAC;IACf,+DAA+D;IAC/D,gBAAgB,EAAE,CAAC;IACnB,sFAAsF;IACtF,eAAe,EAAE,CAAC;CACV,CAAC;AAYX,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,yFAAyF,EAAE;IACtH,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,6CAA6C,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IAC7H,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,kDAAkD,EAAE,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IACpI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,iEAAiE,EAAE;IAC5G,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,sEAAsE,EAAE,OAAO,EAAE,MAAM,EAAE;IACxJ,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,sEAAsE,EAAE;IACvG,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,0DAA0D,EAAE;IACjG;QACE,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,4BAA4B,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iFAAiF;QAChK,OAAO,EAAE,yBAAyB,CAAC,EAAE;KACtC;IACD;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,MAAM;QACb,QAAQ,EACN,0IAA0I;KAC7I;IACD,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE;CAC1C,CAAC"}
@@ -12,7 +12,13 @@ export declare function clapQualifyToolPath(): string;
12
12
  export declare function rtInterposePath(): string;
13
13
  /** The package's own build of the LV2 measurer (`make -C native`). */
14
14
  export declare function lv2MeasureNativePath(): string;
15
- /** Where a native tool is looked for when no setting names it, in order: the installed directories, then the own build. */
15
+ /**
16
+ * Where the native tools are looked for when no setting names them, in order: the package's own build,
17
+ * then the installed directories. An installed package has no `native/build/`, so its own build first
18
+ * changes nothing there, and in a checkout `make -C native` is never shadowed by an older install.
19
+ */
20
+ export declare function nativeToolDirs(): string[];
21
+ /** Where one native tool is looked for when no setting names it, in `nativeToolDirs` order. */
16
22
  export declare function nativeToolCandidates(name: string): string[];
17
23
  /**
18
24
  * One of `NATIVE_TOOLS`: its setting when set (and only that), else the first candidate that exists.
@@ -23,3 +29,31 @@ export declare function locateNativeTool(name: string, env: Readonly<Record<stri
23
29
  readonly looked: readonly string[];
24
30
  readonly setting: string;
25
31
  };
32
+ /** One tool of a set `locateNativeTools` located, as `locateNativeTool` reports it. */
33
+ export interface LocatedNativeTool {
34
+ readonly name: string;
35
+ readonly path?: string;
36
+ readonly looked: readonly string[];
37
+ readonly setting: string;
38
+ }
39
+ /**
40
+ * Tools that run together and share an ABI (a prober or the measurer, and the interposer through
41
+ * `rt-interpose.h`): each set one is its setting; the rest come from ONE directory, the first of
42
+ * `nativeToolDirs` holding any of them. When that directory lacks some of them, `halfPopulated`
43
+ * names it and what it lacks, and the run is refused: pairing a tool from one place with its
44
+ * interposer from another would let a version skew corrupt the verdict without an error.
45
+ */
46
+ export declare function locateNativeTools(names: readonly string[], env: Readonly<Record<string, string | undefined>>, exists: (path: string) => boolean): {
47
+ readonly tools: readonly LocatedNativeTool[];
48
+ readonly halfPopulated?: {
49
+ readonly dir: string;
50
+ readonly holds: readonly string[];
51
+ readonly lacks: readonly string[];
52
+ };
53
+ };
54
+ /** The refusal for a half-populated directory: what it holds, what it lacks, and the settings that would decide. */
55
+ export declare function halfPopulatedRefusal(half: {
56
+ readonly dir: string;
57
+ readonly holds: readonly string[];
58
+ readonly lacks: readonly string[];
59
+ }): string;
@@ -36,21 +36,65 @@ export function rtInterposePath() {
36
36
  export function lv2MeasureNativePath() {
37
37
  return join(nativeBuildDir(), LV2_MEASURE_TOOL_NAME);
38
38
  }
39
- /** Where a native tool is looked for when no setting names it, in order: the installed directories, then the own build. */
39
+ /**
40
+ * Where the native tools are looked for when no setting names them, in order: the package's own build,
41
+ * then the installed directories. An installed package has no `native/build/`, so its own build first
42
+ * changes nothing there, and in a checkout `make -C native` is never shadowed by an older install.
43
+ */
44
+ export function nativeToolDirs() {
45
+ return [nativeBuildDir(), ...NATIVE_TOOL_DIRS];
46
+ }
47
+ /** Where one native tool is looked for when no setting names it, in `nativeToolDirs` order. */
40
48
  export function nativeToolCandidates(name) {
41
- return [...NATIVE_TOOL_DIRS, nativeBuildDir()].map((dir) => join(dir, name));
49
+ return nativeToolDirs().map((dir) => join(dir, name));
50
+ }
51
+ function settingOf(name) {
52
+ const setting = NATIVE_TOOLS.find((t) => t.name === name)?.env;
53
+ if (setting === undefined)
54
+ throw new Error(`${name} is not one of NATIVE_TOOLS`);
55
+ return setting;
42
56
  }
57
+ const isSet = (v) => v !== undefined && v !== "";
43
58
  /**
44
59
  * One of `NATIVE_TOOLS`: its setting when set (and only that), else the first candidate that exists.
45
60
  * `path` is absent when none does; `looked` is every place tried, for the refusal to name.
46
61
  */
47
62
  export function locateNativeTool(name, env, exists) {
48
- const setting = NATIVE_TOOLS.find((t) => t.name === name)?.env;
49
- if (setting === undefined)
50
- throw new Error(`${name} is not one of NATIVE_TOOLS`);
63
+ const setting = settingOf(name);
51
64
  const v = env[setting];
52
- const looked = v === undefined || v === "" ? nativeToolCandidates(name) : [v];
65
+ const looked = isSet(v) ? [v] : nativeToolCandidates(name);
53
66
  const path = looked.find((p) => exists(p));
54
67
  return { ...(path === undefined ? {} : { path }), looked, setting };
55
68
  }
69
+ /**
70
+ * Tools that run together and share an ABI (a prober or the measurer, and the interposer through
71
+ * `rt-interpose.h`): each set one is its setting; the rest come from ONE directory, the first of
72
+ * `nativeToolDirs` holding any of them. When that directory lacks some of them, `halfPopulated`
73
+ * names it and what it lacks, and the run is refused: pairing a tool from one place with its
74
+ * interposer from another would let a version skew corrupt the verdict without an error.
75
+ */
76
+ export function locateNativeTools(names, env, exists) {
77
+ const unset = names.filter((name) => !isSet(env[settingOf(name)]));
78
+ const dir = nativeToolDirs().find((d) => unset.some((name) => exists(join(d, name))));
79
+ const tools = names.map((name) => {
80
+ const setting = settingOf(name);
81
+ const v = env[setting];
82
+ if (isSet(v))
83
+ return { name, setting, looked: [v], ...(exists(v) ? { path: v } : {}) };
84
+ const path = dir === undefined ? undefined : join(dir, name);
85
+ return { name, setting, looked: nativeToolCandidates(name), ...(path !== undefined && exists(path) ? { path } : {}) };
86
+ });
87
+ if (dir === undefined)
88
+ return { tools };
89
+ const lacks = unset.filter((name) => !exists(join(dir, name)));
90
+ if (lacks.length === 0)
91
+ return { tools };
92
+ return { tools, halfPopulated: { dir, holds: unset.filter((name) => !lacks.includes(name)), lacks } };
93
+ }
94
+ /** The refusal for a half-populated directory: what it holds, what it lacks, and the settings that would decide. */
95
+ export function halfPopulatedRefusal(half) {
96
+ const settings = [...half.holds, ...half.lacks].map(settingOf).join(" and ");
97
+ return (`${half.dir} holds ${half.holds.join(", ")} but not ${half.lacks.join(", ")}: they share one ABI and are ` +
98
+ `taken from one place, so install or build them together, or set ${settings}`);
99
+ }
56
100
  //# sourceMappingURL=tool-paths.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-paths.js","sourceRoot":"","sources":["../src/tool-paths.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sDAAsD;AACtD;;;;GAIG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAEnC;;;;GAIG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,aAAa,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,kBAAkB;IAChC,OAAO,aAAa,CAAC,IAAI,GAAG,CAAC,0BAA0B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,sEAAsE;AACtE,SAAS,cAAc;IACrB,OAAO,aAAa,CAAC,IAAI,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,sBAAsB,CAAC,CAAC;AACxD,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,iBAAiB,CAAC,CAAC;AACnD,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,qBAAqB,CAAC,CAAC;AACvD,CAAC;AAED,2HAA2H;AAC3H,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,CAAC,GAAG,gBAAgB,EAAE,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,GAAiD,EACjD,MAAiC;IAEjC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,GAAG,CAAC;IAC/D,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,6BAA6B,CAAC,CAAC;IACjF,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,MAAM,MAAM,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,OAAO,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"tool-paths.js","sourceRoot":"","sources":["../src/tool-paths.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openmixer/plugin-qualify",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "description": "Qualify audio plugins for real-time hosting: scan, offline latency and cost measurement, a mod-host hosting sweep, and a fail-closed rating.",
5
5
  "type": "module",
6
6
  "license": "GPL-3.0-or-later",