@link-assistant/hive-mind 2.0.16 → 2.0.17
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/CHANGELOG.md +6 -0
- package/package.json +1 -1
- package/src/lenv-reader.lib.mjs +0 -25
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
package/src/lenv-reader.lib.mjs
CHANGED
|
@@ -39,10 +39,6 @@ const LinoParser = linoModule.Parser || linoModule.default?.Parser;
|
|
|
39
39
|
|
|
40
40
|
const fs = await import('fs');
|
|
41
41
|
|
|
42
|
-
function isCliOptionToken(value) {
|
|
43
|
-
return /^--[a-zA-Z0-9][a-zA-Z0-9=_.-]*$/.test(value) || /^-[a-zA-Z]$/.test(value);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
42
|
function collectStringValues(value, result = []) {
|
|
47
43
|
if (value && typeof value === 'object' && Array.isArray(value.values)) {
|
|
48
44
|
if (value.id !== null && value.id !== undefined) {
|
|
@@ -57,25 +53,6 @@ function collectStringValues(value, result = []) {
|
|
|
57
53
|
return result;
|
|
58
54
|
}
|
|
59
55
|
|
|
60
|
-
function validateNoBareSameLineOptions(content) {
|
|
61
|
-
let currentVar = 'configuration';
|
|
62
|
-
|
|
63
|
-
for (const line of content.split(/\r?\n/)) {
|
|
64
|
-
const trimmed = line.trim();
|
|
65
|
-
if (!trimmed || trimmed === '(' || trimmed === ')') continue;
|
|
66
|
-
|
|
67
|
-
const topLevelMatch = !/^\s/.test(line) ? trimmed.match(/^([A-Za-z_][A-Za-z0-9_]*):(?:\s*(.*))?$/) : null;
|
|
68
|
-
const valueText = topLevelMatch ? (topLevelMatch[2] || '').trim() : trimmed;
|
|
69
|
-
if (topLevelMatch) currentVar = topLevelMatch[1];
|
|
70
|
-
if (!valueText || valueText === '(' || valueText === ')' || valueText.startsWith('(')) continue;
|
|
71
|
-
|
|
72
|
-
const parts = valueText.split(/\s+/).filter(Boolean);
|
|
73
|
-
if (parts.length > 1 && isCliOptionToken(parts[0])) {
|
|
74
|
-
throw new Error(`Invalid LINO format in "${currentVar}": Multiple values on the same line are not supported.\n` + `Found: "${parts.join(' ')}"\n` + `Each value must be on its own line with proper indentation, or grouped explicitly as a parenthesized link.`);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
56
|
/**
|
|
80
57
|
* LenvReader - Reads and parses .lenv files using LINO notation
|
|
81
58
|
*/
|
|
@@ -97,8 +74,6 @@ export class LenvReader {
|
|
|
97
74
|
const result = {};
|
|
98
75
|
|
|
99
76
|
try {
|
|
100
|
-
validateNoBareSameLineOptions(content);
|
|
101
|
-
|
|
102
77
|
// Parse the entire content as LINO
|
|
103
78
|
const parsed = this.parser.parse(content);
|
|
104
79
|
|