@aperturesyndicate/synx-format 3.6.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.
- package/LICENSE +21 -0
- package/README.md +144 -0
- package/SPECIFICATION.md +6 -0
- package/bin/synx.js +146 -0
- package/dist/browser.d.ts +17 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +72 -0
- package/dist/browser.js.map +1 -0
- package/dist/calc.d.ts +16 -0
- package/dist/calc.d.ts.map +1 -0
- package/dist/calc.js +140 -0
- package/dist/calc.js.map +1 -0
- package/dist/demo-browser.html +153 -0
- package/dist/engine.d.ts +9 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +970 -0
- package/dist/engine.js.map +1 -0
- package/dist/index.d.ts +193 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +810 -0
- package/dist/index.js.map +1 -0
- package/dist/parser.d.ts +12 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +442 -0
- package/dist/parser.js.map +1 -0
- package/dist/synx.browser.js +29 -0
- package/dist/synx.browser.js.map +7 -0
- package/dist/synx.browser.mjs +28 -0
- package/dist/synx.browser.mjs.map +7 -0
- package/dist/types.d.ts +85 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +22 -0
- package/dist/types.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/parser.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SYNX Parser — @aperturesyndicate/synx
|
|
3
|
+
*
|
|
4
|
+
* Converts raw .synx text into a structured object tree
|
|
5
|
+
* with hidden metadata (__synx) for the Engine to resolve.
|
|
6
|
+
*
|
|
7
|
+
* Performance-optimized: charCode-based parsing, fast path
|
|
8
|
+
* for simple key-value lines, no regex on hot paths.
|
|
9
|
+
*/
|
|
10
|
+
import type { SynxParseResult } from './types';
|
|
11
|
+
export declare function parseData(text: string): SynxParseResult;
|
|
12
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAKV,eAAe,EAKhB,MAAM,SAAS,CAAC;AAoJjB,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAuQvD"}
|
package/dist/parser.js
ADDED
|
@@ -0,0 +1,442 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SYNX Parser — @aperturesyndicate/synx
|
|
4
|
+
*
|
|
5
|
+
* Converts raw .synx text into a structured object tree
|
|
6
|
+
* with hidden metadata (__synx) for the Engine to resolve.
|
|
7
|
+
*
|
|
8
|
+
* Performance-optimized: charCode-based parsing, fast path
|
|
9
|
+
* for simple key-value lines, no regex on hot paths.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.parseData = parseData;
|
|
13
|
+
// ─── Helpers ──────────────────────────────────────────────
|
|
14
|
+
/** Cast a raw string value to a JS primitive */
|
|
15
|
+
function castType(val) {
|
|
16
|
+
if (val === 'true')
|
|
17
|
+
return true;
|
|
18
|
+
if (val === 'false')
|
|
19
|
+
return false;
|
|
20
|
+
if (val === 'null')
|
|
21
|
+
return null;
|
|
22
|
+
const len = val.length;
|
|
23
|
+
if (len === 0)
|
|
24
|
+
return val;
|
|
25
|
+
const c0 = val.charCodeAt(0);
|
|
26
|
+
// Explicit cast: (int)007, (string)90210, (float)3.0, (bool)true, (random), (random:bool)
|
|
27
|
+
if (c0 === 40 && len > 2) { // '('
|
|
28
|
+
const closeIdx = val.indexOf(')');
|
|
29
|
+
if (closeIdx > 1) {
|
|
30
|
+
const hint = val.substring(1, closeIdx);
|
|
31
|
+
const raw = val.substring(closeIdx + 1);
|
|
32
|
+
switch (hint) {
|
|
33
|
+
case 'int': {
|
|
34
|
+
const n = parseInt(raw, 10);
|
|
35
|
+
return isNaN(n) ? 0 : n;
|
|
36
|
+
}
|
|
37
|
+
case 'float': {
|
|
38
|
+
const n = parseFloat(raw);
|
|
39
|
+
return isNaN(n) ? 0 : n;
|
|
40
|
+
}
|
|
41
|
+
case 'bool': return raw.trim() === 'true';
|
|
42
|
+
case 'string': return raw;
|
|
43
|
+
case 'random': return Math.floor(Math.random() * 2147483647);
|
|
44
|
+
case 'random:int': return Math.floor(Math.random() * 2147483647);
|
|
45
|
+
case 'random:float': return Math.random();
|
|
46
|
+
case 'random:bool': return Math.random() < 0.5;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Auto number detection via charCode (no regex)
|
|
51
|
+
let firstDigit = 0;
|
|
52
|
+
let fc = c0;
|
|
53
|
+
if (fc === 45) { // '-'
|
|
54
|
+
if (len === 1)
|
|
55
|
+
return val;
|
|
56
|
+
firstDigit = 1;
|
|
57
|
+
fc = val.charCodeAt(1);
|
|
58
|
+
}
|
|
59
|
+
if (fc >= 48 && fc <= 57) { // '0'-'9'
|
|
60
|
+
let allNumeric = true;
|
|
61
|
+
let dotPos = -1;
|
|
62
|
+
for (let i = firstDigit + 1; i < len; i++) {
|
|
63
|
+
const ch = val.charCodeAt(i);
|
|
64
|
+
if (ch === 46) { // '.'
|
|
65
|
+
if (dotPos !== -1) {
|
|
66
|
+
allNumeric = false;
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
dotPos = i;
|
|
70
|
+
}
|
|
71
|
+
else if (ch < 48 || ch > 57) {
|
|
72
|
+
allNumeric = false;
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (allNumeric) {
|
|
77
|
+
if (dotPos === -1)
|
|
78
|
+
return parseInt(val, 10);
|
|
79
|
+
if (dotPos > firstDigit && dotPos < len - 1)
|
|
80
|
+
return parseFloat(val);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return val;
|
|
84
|
+
}
|
|
85
|
+
/** Strip inline comment from a value string */
|
|
86
|
+
function stripInlineComment(val) {
|
|
87
|
+
// Fast path: no space means no inline comment possible
|
|
88
|
+
if (val.indexOf(' ') === -1)
|
|
89
|
+
return val;
|
|
90
|
+
let result = val;
|
|
91
|
+
const slashIdx = result.indexOf(' //');
|
|
92
|
+
if (slashIdx !== -1)
|
|
93
|
+
result = result.substring(0, slashIdx);
|
|
94
|
+
const hashIdx = result.indexOf(' #');
|
|
95
|
+
if (hashIdx !== -1)
|
|
96
|
+
result = result.substring(0, hashIdx);
|
|
97
|
+
return result.trimEnd();
|
|
98
|
+
}
|
|
99
|
+
/** Parse constraint string like "min:3, max:30, required, type:int" */
|
|
100
|
+
function parseConstraints(raw) {
|
|
101
|
+
const constraints = {};
|
|
102
|
+
let start = 0;
|
|
103
|
+
while (start < raw.length) {
|
|
104
|
+
let end = raw.indexOf(',', start);
|
|
105
|
+
if (end === -1)
|
|
106
|
+
end = raw.length;
|
|
107
|
+
const part = raw.substring(start, end).trim();
|
|
108
|
+
start = end + 1;
|
|
109
|
+
if (!part)
|
|
110
|
+
continue;
|
|
111
|
+
if (part === 'required') {
|
|
112
|
+
constraints.required = true;
|
|
113
|
+
}
|
|
114
|
+
else if (part === 'readonly') {
|
|
115
|
+
constraints.readonly = true;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
const colonIdx = part.indexOf(':');
|
|
119
|
+
if (colonIdx !== -1) {
|
|
120
|
+
const key = part.substring(0, colonIdx).trim();
|
|
121
|
+
const value = part.substring(colonIdx + 1).trim();
|
|
122
|
+
switch (key) {
|
|
123
|
+
case 'min':
|
|
124
|
+
constraints.min = Number(value);
|
|
125
|
+
break;
|
|
126
|
+
case 'max':
|
|
127
|
+
constraints.max = Number(value);
|
|
128
|
+
break;
|
|
129
|
+
case 'type':
|
|
130
|
+
constraints.type = value;
|
|
131
|
+
break;
|
|
132
|
+
case 'pattern':
|
|
133
|
+
constraints.pattern = value;
|
|
134
|
+
break;
|
|
135
|
+
case 'enum':
|
|
136
|
+
constraints.enum = value.split('|');
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return constraints;
|
|
143
|
+
}
|
|
144
|
+
/** Attach hidden __synx metadata to an object */
|
|
145
|
+
function saveMeta(obj, key, markers, args, constraints, mode, typeHint) {
|
|
146
|
+
if (mode !== 'active')
|
|
147
|
+
return;
|
|
148
|
+
if (markers.length === 0 && !constraints && !typeHint)
|
|
149
|
+
return;
|
|
150
|
+
let metaMap;
|
|
151
|
+
if (obj.__synx) {
|
|
152
|
+
metaMap = obj.__synx;
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
metaMap = {};
|
|
156
|
+
Object.defineProperty(obj, '__synx', {
|
|
157
|
+
value: metaMap,
|
|
158
|
+
enumerable: false,
|
|
159
|
+
writable: true,
|
|
160
|
+
configurable: true,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
const meta = { markers };
|
|
164
|
+
if (args.length > 0)
|
|
165
|
+
meta.args = args;
|
|
166
|
+
if (constraints)
|
|
167
|
+
meta.constraints = constraints;
|
|
168
|
+
if (typeHint)
|
|
169
|
+
meta.typeHint = typeHint;
|
|
170
|
+
metaMap[key] = meta;
|
|
171
|
+
}
|
|
172
|
+
// ─── Fallback regex for complex lines (type hints, constraints, markers) ──
|
|
173
|
+
const LINE_REGEX = /^([^\s\[:\-#/(][^\s\[:(]*)(?:\(([\w:]+)\))?(?:\[([^\]]*)\])?(?::([^\s]+))?\s*(.*)$/;
|
|
174
|
+
// ─── Parser ───────────────────────────────────────────────
|
|
175
|
+
function parseData(text) {
|
|
176
|
+
const lines = text.split('\n');
|
|
177
|
+
const root = {};
|
|
178
|
+
const stack = [
|
|
179
|
+
{ indent: -1, obj: root },
|
|
180
|
+
];
|
|
181
|
+
let mode = 'static';
|
|
182
|
+
let locked = false;
|
|
183
|
+
const includes = [];
|
|
184
|
+
let currentBlock = null;
|
|
185
|
+
let currentList = null;
|
|
186
|
+
let inBlockComment = false;
|
|
187
|
+
for (let i = 0; i < lines.length; i++) {
|
|
188
|
+
const rawLine = lines[i];
|
|
189
|
+
const rawLen = rawLine.length;
|
|
190
|
+
// ── Manual indent computation (no regex) ──
|
|
191
|
+
let indent = 0;
|
|
192
|
+
while (indent < rawLen) {
|
|
193
|
+
const ch = rawLine.charCodeAt(indent);
|
|
194
|
+
if (ch !== 32 && ch !== 9 && ch !== 13)
|
|
195
|
+
break; // space, tab, \r
|
|
196
|
+
indent++;
|
|
197
|
+
}
|
|
198
|
+
// ── Empty line ──
|
|
199
|
+
if (indent === rawLen)
|
|
200
|
+
continue;
|
|
201
|
+
const fc = rawLine.charCodeAt(indent); // first non-whitespace char
|
|
202
|
+
// ── Block comment toggle: ### ──
|
|
203
|
+
if (fc === 35) {
|
|
204
|
+
const rest = rawLine.substring(indent).trimEnd();
|
|
205
|
+
if (rest === '###') {
|
|
206
|
+
inBlockComment = !inBlockComment;
|
|
207
|
+
continue;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
if (inBlockComment)
|
|
211
|
+
continue;
|
|
212
|
+
// ── Comments: # or // ──
|
|
213
|
+
if (fc === 35) { // #
|
|
214
|
+
// Legacy: #!mode:active / #!mode:static
|
|
215
|
+
if (rawLen - indent > 7 && rawLine.charCodeAt(indent + 1) === 33) { // !
|
|
216
|
+
if (rawLine.substring(indent, indent + 7) === '#!mode:') {
|
|
217
|
+
const declared = rawLine.substring(indent + 7, rawLen).trim();
|
|
218
|
+
mode = declared === 'active' ? 'active' : 'static';
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
continue;
|
|
222
|
+
}
|
|
223
|
+
if (fc === 47 && indent + 1 < rawLen && rawLine.charCodeAt(indent + 1) === 47)
|
|
224
|
+
continue; // //
|
|
225
|
+
// ── Compute trimmed string (manual trim, no regex) ──
|
|
226
|
+
let trimEndPos = rawLen;
|
|
227
|
+
while (trimEndPos > indent) {
|
|
228
|
+
const ch = rawLine.charCodeAt(trimEndPos - 1);
|
|
229
|
+
if (ch !== 32 && ch !== 9 && ch !== 13 && ch !== 10)
|
|
230
|
+
break;
|
|
231
|
+
trimEndPos--;
|
|
232
|
+
}
|
|
233
|
+
const trimmed = rawLine.substring(indent, trimEndPos);
|
|
234
|
+
const trimmedLen = trimmed.length;
|
|
235
|
+
// ── Mode declaration: !active / !lock / !include ──
|
|
236
|
+
if (fc === 33) {
|
|
237
|
+
if (trimmed === '!active') {
|
|
238
|
+
mode = 'active';
|
|
239
|
+
continue;
|
|
240
|
+
}
|
|
241
|
+
if (trimmed === '!lock') {
|
|
242
|
+
locked = true;
|
|
243
|
+
continue;
|
|
244
|
+
}
|
|
245
|
+
if (trimmed.startsWith('!include ')) {
|
|
246
|
+
const parts = trimmed.substring(9).trim().split(/\s+/);
|
|
247
|
+
const inclPath = parts[0];
|
|
248
|
+
const alias = parts[1] || inclPath.replace(/^.*[\/\\]/, '').replace(/\.synx$/i, '');
|
|
249
|
+
includes.push({ path: inclPath, alias });
|
|
250
|
+
continue;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
// ── Continue multiline block ──
|
|
254
|
+
if (currentBlock && indent > currentBlock.indent) {
|
|
255
|
+
const line = trimmed;
|
|
256
|
+
currentBlock.obj[currentBlock.key] +=
|
|
257
|
+
(currentBlock.obj[currentBlock.key] ? '\n' : '') + line;
|
|
258
|
+
continue;
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
currentBlock = null;
|
|
262
|
+
}
|
|
263
|
+
// ── List items: '- ' ──
|
|
264
|
+
if (fc === 45 && trimmedLen > 1 && trimmed.charCodeAt(1) === 32) {
|
|
265
|
+
if (currentList && indent > currentList.indent) {
|
|
266
|
+
const val = stripInlineComment(trimmed.substring(2).trim());
|
|
267
|
+
// Check if this list item has sub-keys (peek next line)
|
|
268
|
+
let nextNonEmpty = i + 1;
|
|
269
|
+
while (nextNonEmpty < lines.length) {
|
|
270
|
+
const nl = lines[nextNonEmpty];
|
|
271
|
+
let ni = 0;
|
|
272
|
+
while (ni < nl.length && (nl.charCodeAt(ni) === 32 || nl.charCodeAt(ni) === 9 || nl.charCodeAt(ni) === 13))
|
|
273
|
+
ni++;
|
|
274
|
+
if (ni < nl.length)
|
|
275
|
+
break;
|
|
276
|
+
nextNonEmpty++;
|
|
277
|
+
}
|
|
278
|
+
if (nextNonEmpty < lines.length) {
|
|
279
|
+
const nextLine = lines[nextNonEmpty];
|
|
280
|
+
let nextIndent = 0;
|
|
281
|
+
while (nextIndent < nextLine.length && (nextLine.charCodeAt(nextIndent) === 32 || nextLine.charCodeAt(nextIndent) === 9 || nextLine.charCodeAt(nextIndent) === 13))
|
|
282
|
+
nextIndent++;
|
|
283
|
+
const nfc = nextLine.charCodeAt(nextIndent);
|
|
284
|
+
if (nextIndent > indent && nextIndent < nextLine.length &&
|
|
285
|
+
nfc !== 45 && nfc !== 35 &&
|
|
286
|
+
!(nfc === 47 && nextIndent + 1 < nextLine.length && nextLine.charCodeAt(nextIndent + 1) === 47)) {
|
|
287
|
+
const itemObj = {};
|
|
288
|
+
const itemMatch = val.match(LINE_REGEX);
|
|
289
|
+
if (itemMatch) {
|
|
290
|
+
const [, iKey, iTypeHint, , , iVal] = itemMatch;
|
|
291
|
+
let iValue = iVal || '';
|
|
292
|
+
if (iTypeHint)
|
|
293
|
+
iValue = `(${iTypeHint})${iValue}`;
|
|
294
|
+
itemObj[iKey] = iValue ? castType(stripInlineComment(iValue)) : {};
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
itemObj['_value'] = castType(val);
|
|
298
|
+
}
|
|
299
|
+
currentList.arr.push(itemObj);
|
|
300
|
+
stack.push({ indent, obj: itemObj });
|
|
301
|
+
continue;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
currentList.arr.push(castType(val));
|
|
305
|
+
continue;
|
|
306
|
+
}
|
|
307
|
+
// Not in list context — skip (LINE_REGEX wouldn't match '- ' anyway)
|
|
308
|
+
continue;
|
|
309
|
+
}
|
|
310
|
+
// Close list if needed (non-list-item line at <= list indent)
|
|
311
|
+
if (currentList && indent <= currentList.indent) {
|
|
312
|
+
currentList = null;
|
|
313
|
+
}
|
|
314
|
+
// ── Validate first char can start a key ──
|
|
315
|
+
// LINE_REGEX first char: [^\s\[:\-#/(] — we already filtered #, //, -
|
|
316
|
+
if (fc === 91 || fc === 40 || fc === 58 || fc === 47)
|
|
317
|
+
continue; // [ ( : /
|
|
318
|
+
// ── Parse key line ──
|
|
319
|
+
// FAST PATH: scan key for special chars ( [ :
|
|
320
|
+
// If none found, skip LINE_REGEX entirely
|
|
321
|
+
let key;
|
|
322
|
+
let typeHint;
|
|
323
|
+
let constraintStr;
|
|
324
|
+
let markerChain;
|
|
325
|
+
let rawValue;
|
|
326
|
+
let hasSpecial = false;
|
|
327
|
+
let spaceIdx = -1;
|
|
328
|
+
for (let j = 0; j < trimmedLen; j++) {
|
|
329
|
+
const ch = trimmed.charCodeAt(j);
|
|
330
|
+
if (ch === 32 || ch === 9) { // space or tab
|
|
331
|
+
spaceIdx = j;
|
|
332
|
+
break;
|
|
333
|
+
}
|
|
334
|
+
if (ch === 40 || ch === 91 || ch === 58) { // ( [ :
|
|
335
|
+
hasSpecial = true;
|
|
336
|
+
break;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
if (!hasSpecial) {
|
|
340
|
+
// ── Fast path: simple key-value or section header ──
|
|
341
|
+
if (spaceIdx === -1) {
|
|
342
|
+
key = trimmed;
|
|
343
|
+
rawValue = '';
|
|
344
|
+
}
|
|
345
|
+
else {
|
|
346
|
+
key = trimmed.substring(0, spaceIdx);
|
|
347
|
+
// Skip whitespace between key and value
|
|
348
|
+
let valStart = spaceIdx;
|
|
349
|
+
while (valStart < trimmedLen && (trimmed.charCodeAt(valStart) === 32 || trimmed.charCodeAt(valStart) === 9))
|
|
350
|
+
valStart++;
|
|
351
|
+
rawValue = valStart < trimmedLen ? stripInlineComment(trimmed.substring(valStart)) : '';
|
|
352
|
+
}
|
|
353
|
+
typeHint = undefined;
|
|
354
|
+
constraintStr = undefined;
|
|
355
|
+
markerChain = undefined;
|
|
356
|
+
}
|
|
357
|
+
else {
|
|
358
|
+
// ── Slow path: regex for lines with ( [ : ──
|
|
359
|
+
const match = trimmed.match(LINE_REGEX);
|
|
360
|
+
if (!match)
|
|
361
|
+
continue;
|
|
362
|
+
[, key, typeHint, constraintStr, markerChain, rawValue] = match;
|
|
363
|
+
rawValue = rawValue ? stripInlineComment(rawValue.trim()) : '';
|
|
364
|
+
}
|
|
365
|
+
// Apply explicit type cast
|
|
366
|
+
if (typeHint)
|
|
367
|
+
rawValue = `(${typeHint})${rawValue}`;
|
|
368
|
+
// Parse markers chain
|
|
369
|
+
let markers = [];
|
|
370
|
+
let markerArgs = [];
|
|
371
|
+
if (markerChain) {
|
|
372
|
+
markers = markerChain.split(':');
|
|
373
|
+
}
|
|
374
|
+
// For :random — the rawValue may contain weight percentages
|
|
375
|
+
if (markers.length > 0 && markers.includes('random') && rawValue) {
|
|
376
|
+
const nums = rawValue.split(/\s+/).filter(s => /^\d+(\.\d+)?$/.test(s));
|
|
377
|
+
if (nums.length > 0) {
|
|
378
|
+
markerArgs = nums;
|
|
379
|
+
rawValue = '';
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
const constraints = constraintStr ? parseConstraints(constraintStr) : undefined;
|
|
383
|
+
// ── Pop stack to correct parent ──
|
|
384
|
+
while (stack.length > 1 && stack[stack.length - 1].indent >= indent) {
|
|
385
|
+
stack.pop();
|
|
386
|
+
}
|
|
387
|
+
const parent = stack[stack.length - 1].obj;
|
|
388
|
+
// ── Reject prototype-polluting keys ──
|
|
389
|
+
if (key === '__proto__' || key === 'constructor' || key === 'prototype')
|
|
390
|
+
continue;
|
|
391
|
+
// ── Determine what this line creates ──
|
|
392
|
+
if (rawValue === '|') {
|
|
393
|
+
// Multiline block
|
|
394
|
+
parent[key] = '';
|
|
395
|
+
currentBlock = { indent, obj: parent, key };
|
|
396
|
+
saveMeta(parent, key, markers, markerArgs, constraints, mode, typeHint);
|
|
397
|
+
}
|
|
398
|
+
else if (!rawValue && markers.length > 0 &&
|
|
399
|
+
(markers.includes('random') || markers.includes('unique') ||
|
|
400
|
+
markers.includes('geo') || markers.includes('join'))) {
|
|
401
|
+
// List with markers (items follow with -)
|
|
402
|
+
parent[key] = [];
|
|
403
|
+
currentList = { indent, arr: parent[key] };
|
|
404
|
+
saveMeta(parent, key, markers, markerArgs, constraints, mode, typeHint);
|
|
405
|
+
}
|
|
406
|
+
else if (!rawValue) {
|
|
407
|
+
// No value → nested object (group) OR plain list
|
|
408
|
+
parent[key] = {};
|
|
409
|
+
stack.push({ indent, obj: parent[key] });
|
|
410
|
+
// Peek ahead: if next meaningful line starts with -, it's a list
|
|
411
|
+
let peekIdx = i + 1;
|
|
412
|
+
while (peekIdx < lines.length) {
|
|
413
|
+
const pl = lines[peekIdx];
|
|
414
|
+
let pi = 0;
|
|
415
|
+
while (pi < pl.length && (pl.charCodeAt(pi) === 32 || pl.charCodeAt(pi) === 9 || pl.charCodeAt(pi) === 13))
|
|
416
|
+
pi++;
|
|
417
|
+
if (pi < pl.length)
|
|
418
|
+
break;
|
|
419
|
+
peekIdx++;
|
|
420
|
+
}
|
|
421
|
+
if (peekIdx < lines.length) {
|
|
422
|
+
const pl = lines[peekIdx];
|
|
423
|
+
let pi = 0;
|
|
424
|
+
while (pi < pl.length && (pl.charCodeAt(pi) === 32 || pl.charCodeAt(pi) === 9 || pl.charCodeAt(pi) === 13))
|
|
425
|
+
pi++;
|
|
426
|
+
if (pi + 1 < pl.length && pl.charCodeAt(pi) === 45 && pl.charCodeAt(pi + 1) === 32) {
|
|
427
|
+
parent[key] = [];
|
|
428
|
+
stack[stack.length - 1] = { indent, obj: parent[key] };
|
|
429
|
+
currentList = { indent, arr: parent[key] };
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
saveMeta(parent, key, markers, markerArgs, constraints, mode, typeHint);
|
|
433
|
+
}
|
|
434
|
+
else {
|
|
435
|
+
// Simple key-value
|
|
436
|
+
parent[key] = castType(rawValue);
|
|
437
|
+
saveMeta(parent, key, markers, markerArgs, constraints, mode, typeHint);
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
return { root, mode, locked, includes: includes.length > 0 ? includes : undefined };
|
|
441
|
+
}
|
|
442
|
+
//# sourceMappingURL=parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";var SynxModule=(()=>{var K=Object.defineProperty;var yt=Object.getOwnPropertyDescriptor;var gt=Object.getOwnPropertyNames;var ht=Object.prototype.hasOwnProperty;var nt=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,s)=>(typeof require<"u"?require:e)[s]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var xt=(t,e)=>{for(var s in e)K(t,s,{get:e[s],enumerable:!0})},mt=(t,e,s,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of gt(e))!ht.call(t,a)&&a!==s&&K(t,a,{get:()=>e[a],enumerable:!(r=yt(e,a))||r.enumerable});return t};var St=t=>mt(K({},"__esModule",{value:!0}),t);var Lt={};xt(Lt,{Synx:()=>H,SynxError:()=>z,default:()=>Vt});function F(t){if(t==="true")return!0;if(t==="false")return!1;if(t==="null")return null;let e=t.length;if(e===0)return t;let s=t.charCodeAt(0);if(s===40&&e>2){let u=t.indexOf(")");if(u>1){let l=t.substring(1,u),n=t.substring(u+1);switch(l){case"int":{let p=parseInt(n,10);return isNaN(p)?0:p}case"float":{let p=parseFloat(n);return isNaN(p)?0:p}case"bool":return n.trim()==="true";case"string":return n;case"random":return Math.floor(Math.random()*2147483647);case"random:int":return Math.floor(Math.random()*2147483647);case"random:float":return Math.random();case"random:bool":return Math.random()<.5}}}let r=0,a=s;if(a===45){if(e===1)return t;r=1,a=t.charCodeAt(1)}if(a>=48&&a<=57){let u=!0,l=-1;for(let n=r+1;n<e;n++){let p=t.charCodeAt(n);if(p===46){if(l!==-1){u=!1;break}l=n}else if(p<48||p>57){u=!1;break}}if(u){if(l===-1)return parseInt(t,10);if(l>r&&l<e-1)return parseFloat(t)}}return t}function X(t){if(t.indexOf(" ")===-1)return t;let e=t,s=e.indexOf(" //");s!==-1&&(e=e.substring(0,s));let r=e.indexOf(" #");return r!==-1&&(e=e.substring(0,r)),e.trimEnd()}function Ot(t){let e={},s=0;for(;s<t.length;){let r=t.indexOf(",",s);r===-1&&(r=t.length);let a=t.substring(s,r).trim();if(s=r+1,!!a)if(a==="required")e.required=!0;else if(a==="readonly")e.readonly=!0;else{let u=a.indexOf(":");if(u!==-1){let l=a.substring(0,u).trim(),n=a.substring(u+1).trim();switch(l){case"min":e.min=Number(n);break;case"max":e.max=Number(n);break;case"type":e.type=n;break;case"pattern":e.pattern=n;break;case"enum":e.enum=n.split("|");break}}}}return e}function U(t,e,s,r,a,u,l){if(u!=="active"||s.length===0&&!a&&!l)return;let n;t.__synx?n=t.__synx:(n={},Object.defineProperty(t,"__synx",{value:n,enumerable:!1,writable:!0,configurable:!0}));let p={markers:s};r.length>0&&(p.args=r),a&&(p.constraints=a),l&&(p.typeHint=l),n[e]=p}var rt=/^([^\s\[:\-#/(][^\s\[:(]*)(?:\(([\w:]+)\))?(?:\[([^\]]*)\])?(?::([^\s]+))?\s*(.*)$/;function R(t){let e=t.split(`
|
|
2
|
+
`),s={},r=[{indent:-1,obj:s}],a="static",u=!1,l=[],n=null,p=null,o=!1;for(let O=0;O<e.length;O++){let c=e[O],f=c.length,i=0;for(;i<f;){let y=c.charCodeAt(i);if(y!==32&&y!==9&&y!==13)break;i++}if(i===f)continue;let d=c.charCodeAt(i);if(d===35&&c.substring(i).trimEnd()==="###"){o=!o;continue}if(o)continue;if(d===35){f-i>7&&c.charCodeAt(i+1)===33&&c.substring(i,i+7)==="#!mode:"&&(a=c.substring(i+7,f).trim()==="active"?"active":"static");continue}if(d===47&&i+1<f&&c.charCodeAt(i+1)===47)continue;let g=f;for(;g>i;){let y=c.charCodeAt(g-1);if(y!==32&&y!==9&&y!==13&&y!==10)break;g--}let h=c.substring(i,g),A=h.length;if(d===33){if(h==="!active"){a="active";continue}if(h==="!lock"){u=!0;continue}if(h.startsWith("!include ")){let y=h.substring(9).trim().split(/\s+/),m=y[0],x=y[1]||m.replace(/^.*[\/\\]/,"").replace(/\.synx$/i,"");l.push({path:m,alias:x});continue}}if(n&&i>n.indent){let y=h;n.obj[n.key]+=(n.obj[n.key]?`
|
|
3
|
+
`:"")+y;continue}else n=null;if(d===45&&A>1&&h.charCodeAt(1)===32){if(p&&i>p.indent){let y=X(h.substring(2).trim()),m=O+1;for(;m<e.length;){let x=e[m],$=0;for(;$<x.length&&(x.charCodeAt($)===32||x.charCodeAt($)===9||x.charCodeAt($)===13);)$++;if($<x.length)break;m++}if(m<e.length){let x=e[m],$=0;for(;$<x.length&&(x.charCodeAt($)===32||x.charCodeAt($)===9||x.charCodeAt($)===13);)$++;let Y=x.charCodeAt($);if($>i&&$<x.length&&Y!==45&&Y!==35&&!(Y===47&&$+1<x.length&&x.charCodeAt($+1)===47)){let V={},tt=y.match(rt);if(tt){let[,dt,et,,,pt]=tt,L=pt||"";et&&(L=`(${et})${L}`),V[dt]=L?F(X(L)):{}}else V._value=F(y);p.arr.push(V),r.push({indent:i,obj:V});continue}}p.arr.push(F(y));continue}continue}if(p&&i<=p.indent&&(p=null),d===91||d===40||d===58||d===47)continue;let S,N,I,P,w,j=!1,T=-1;for(let y=0;y<A;y++){let m=h.charCodeAt(y);if(m===32||m===9){T=y;break}if(m===40||m===91||m===58){j=!0;break}}if(j){let y=h.match(rt);if(!y)continue;[,S,N,I,P,w]=y,w=w?X(w.trim()):""}else{if(T===-1)S=h,w="";else{S=h.substring(0,T);let y=T;for(;y<A&&(h.charCodeAt(y)===32||h.charCodeAt(y)===9);)y++;w=y<A?X(h.substring(y)):""}N=void 0,I=void 0,P=void 0}N&&(w=`(${N})${w}`);let E=[],v=[];if(P&&(E=P.split(":")),E.length>0&&E.includes("random")&&w){let y=w.split(/\s+/).filter(m=>/^\d+(\.\d+)?$/.test(m));y.length>0&&(v=y,w="")}let D=I?Ot(I):void 0;for(;r.length>1&&r[r.length-1].indent>=i;)r.pop();let C=r[r.length-1].obj;if(!(S==="__proto__"||S==="constructor"||S==="prototype"))if(w==="|")C[S]="",n={indent:i,obj:C,key:S},U(C,S,E,v,D,a,N);else if(!w&&E.length>0&&(E.includes("random")||E.includes("unique")||E.includes("geo")||E.includes("join")))C[S]=[],p={indent:i,arr:C[S]},U(C,S,E,v,D,a,N);else if(w)C[S]=F(w),U(C,S,E,v,D,a,N);else{C[S]={},r.push({indent:i,obj:C[S]});let y=O+1;for(;y<e.length;){let m=e[y],x=0;for(;x<m.length&&(m.charCodeAt(x)===32||m.charCodeAt(x)===9||m.charCodeAt(x)===13);)x++;if(x<m.length)break;y++}if(y<e.length){let m=e[y],x=0;for(;x<m.length&&(m.charCodeAt(x)===32||m.charCodeAt(x)===9||m.charCodeAt(x)===13);)x++;x+1<m.length&&m.charCodeAt(x)===45&&m.charCodeAt(x+1)===32&&(C[S]=[],r[r.length-1]={indent:i,obj:C[S]},p={indent:i,arr:C[S]})}U(C,S,E,v,D,a,N)}}return{root:s,mode:a,locked:u,includes:l.length>0?l:void 0}}function At(t){let e=[],s=0;for(;s<t.length;){let r=t[s];if(r===" "||r===" "){s++;continue}if(r>="0"&&r<="9"||r==="."&&s+1<t.length&&t[s+1]>="0"&&t[s+1]<="9"||r==="-"&&(e.length===0||e[e.length-1].type==="op"||e[e.length-1].type==="paren"&&e[e.length-1].value==="(")){let a="";for(r==="-"&&(a+="-",s++);s<t.length&&(t[s]>="0"&&t[s]<="9"||t[s]===".");)a+=t[s],s++;e.push({type:"number",value:parseFloat(a)});continue}if("+-*/%".includes(r)){e.push({type:"op",value:r}),s++;continue}if(r==="("||r===")"){e.push({type:"paren",value:r}),s++;continue}throw new Error(`SYNX :calc \u2014 unexpected character: '${r}' in expression "${t}"`)}return e}var B=class{constructor(e){this.tokens=e,this.pos=0}parse(){let e=this.expr();if(this.pos<this.tokens.length)throw new Error(`SYNX :calc \u2014 unexpected token at position ${this.pos}`);return e}expr(){let e=this.term();for(;this.pos<this.tokens.length&&this.tokens[this.pos].type==="op"&&(this.tokens[this.pos].value==="+"||this.tokens[this.pos].value==="-");){let s=this.tokens[this.pos].value;this.pos++;let r=this.term();e=s==="+"?e+r:e-r}return e}term(){let e=this.factor();for(;this.pos<this.tokens.length&&this.tokens[this.pos].type==="op"&&"*/%".includes(this.tokens[this.pos].value);){let s=this.tokens[this.pos].value;this.pos++;let r=this.factor();if(s==="*")e=e*r;else if(s==="/"){if(r===0)throw new Error("SYNX :calc \u2014 division by zero");e=e/r}else{if(r===0)throw new Error("SYNX :calc \u2014 division by zero");e=e%r}}return e}factor(){let e=this.tokens[this.pos];if(!e)throw new Error("SYNX :calc \u2014 unexpected end of expression");if(e.type==="number")return this.pos++,e.value;if(e.type==="paren"&&e.value==="("){this.pos++;let s=this.expr();if(!this.tokens[this.pos]||this.tokens[this.pos].type!=="paren"||this.tokens[this.pos].value!==")")throw new Error("SYNX :calc \u2014 missing closing parenthesis");return this.pos++,s}throw new Error(`SYNX :calc \u2014 unexpected token: ${JSON.stringify(e)}`)}};function G(t){let e=At(t.trim());return e.length===0?0:new B(e).parse()}var b,k;try{b=nt("fs"),k=nt("path")}catch{}var st=4096,it=10*1024*1024,J=16,$t=512;function q(t,e){if(!k)throw new Error("path module not available");if(k.isAbsolute(e))throw new Error(`absolute path not allowed: ${e}`);let s=k.resolve(t,e),r=k.resolve(t);if(!s.startsWith(r+k.sep)&&s!==r)throw new Error(`path escapes base directory: ${e}`);return s}function Z(t){if(!b)return;let e=b.statSync(t);if(e.size>it)throw new Error(`file too large (${e.size} bytes, max ${it})`)}var Q=class{constructor(e){this._value=e}toString(){return"[SECRET]"}toJSON(){return"[SECRET]"}reveal(){return this._value}[Symbol.toPrimitive](e){return e==="number"?NaN:"[SECRET]"}},W=new Map;function _(t,e={},s,r,a=0,u=""){if(!s){s=t,bt(t);for(let n of Object.keys(t))n.startsWith("_")&&delete t[n];!r&&e._includes&&(r=kt(e._includes,e))}if(a>=$t){for(let n of Object.keys(t))n!=="__synx"&&(t[n]="NESTING_ERR: maximum object nesting depth exceeded");return t}let l=t.__synx;for(let n of Object.keys(t)){if(n==="__synx")continue;let p=t[n];if(p&&typeof p=="object"&&!Array.isArray(p)&&_(p,e,s,r,a+1,u?`${u}.${n}`:n),Array.isArray(p))for(let c of p)c&&typeof c=="object"&&!Array.isArray(c)&&_(c,e,s,r,a+1,u?`${u}.${n}`:n);if(!l||!l[n])continue;let{markers:o,args:O}=l[n];if(o.includes("spam")){let c=o.indexOf("spam"),f=parseInt(o[c+1]??"0",10),i=Math.max(1,parseInt(o[c+2]??"1",10)||1);if(!Number.isFinite(f)||f<=0){t[n]="SPAM_ERR: invalid limit, use :spam:MAX[:WINDOW_SEC]";continue}let d=String(t[n]??n),g=`${n}::${d}`;if(!Dt(g,f,i)){t[n]=`SPAM_ERR: '${d}' exceeded ${f} calls per ${i}s`;continue}let h=M(s,d)??M(t,d);h!==void 0&&(t[n]=h)}if(o.includes("include")&&typeof t[n]=="string"){if(!b||!k){t[n]="INCLUDE_ERR: :include is not supported in browser";continue}let c=e.maxIncludeDepth??J,f=e._includeDepth??0;if(f>=c){t[n]=`INCLUDE_ERR: max include depth (${c}) exceeded`;continue}let i=String(t[n]),d=e.basePath||(typeof process<"u"?process.cwd():".");try{let g=q(d,i);Z(g);let h=b.readFileSync(g,"utf-8"),{root:A,mode:S}=R(h);S==="active"&&_(A,{...e,basePath:k.dirname(g),_includeDepth:f+1},s),t[n]=A}catch(g){t[n]=`INCLUDE_ERR: ${g.message}`}continue}if(o.includes("env")){let c=String(p),i=(e.env||(typeof process<"u"?process.env:{}))[c],d=o.indexOf("default"),g=l[n]?.typeHint==="string";if(i!==void 0&&i!=="")t[n]=g||isNaN(Number(i))?i:Number(i);else if(d!==-1&&o.length>d+1){let h=o.slice(d+1).join(":");t[n]=g||isNaN(Number(h))?h:Number(h)}else t[n]=null}if(o.includes("random")&&Array.isArray(t[n])){let c=t[n];if(c.length===0){t[n]=null;continue}if(O&&O.length>0){let f=O.map(Number);t[n]=vt(c,f)}else t[n]=c[Math.floor(Math.random()*c.length)]}if(o.includes("ref")&&typeof t[n]=="string"){let c=t[n],f=M(s,c)??M(t,c);if(f!==void 0){if(t[n]=f,o.includes("calc")){let i=o.indexOf("calc"),d=o[i+1]??"";if(d&&typeof f=="number"){let g=d.charAt(0);if("+-*/%".includes(g)){let h=`${f} ${d}`;try{t[n]=G(h)}catch{t[n]=f}}}}}else t[n]=null}if(o.includes("i18n")&&t[n]&&typeof t[n]=="object"&&!Array.isArray(t[n])){let c=t[n],f=e.lang||"en",i=c[f]??c.en??Object.values(c)[0]??null;t[n]=i}if(o.includes("calc")&&typeof t[n]=="string"){let c=t[n];if(c.length>st){t[n]=`CALC_ERR: expression too long (${c.length} chars, max ${st})`;continue}let f=new Map;for(let i of Object.keys(s))typeof s[i]=="number"&&f.set(i,String(s[i]));for(let i of Object.keys(t))i!==n&&typeof t[i]=="number"&&f.set(i,String(t[i]));f.size>0&&(c=Tt(c,f));try{t[n]=G(c)}catch(i){t[n]=`CALC_ERR: ${i.message}`}}if(o.includes("alias")&&typeof t[n]=="string"){let c=t[n],f=u?`${u}.${n}`:n;if(c===n||c===f)t[n]=`ALIAS_ERR: self-referential alias: ${f} \u2192 ${c}`;else{let i=M(s,c),d=c.lastIndexOf("."),g=d>=0?c.slice(0,d):"",h=d>=0?c.slice(d+1):c,A=g?M(s,g):s;((A!=null&&typeof A=="object"?A.__synx:void 0)?.[h]?.markers?.includes("alias")??!1)&&typeof i=="string"&&i===n?t[n]=`ALIAS_ERR: circular alias detected: ${n} \u2192 ${c}`:t[n]=i??null}}if(o.includes("secret")&&(t[n]=new Q(String(t[n]))),o.includes("unique")&&Array.isArray(t[n])){let c=new Set;t[n]=t[n].filter(f=>{let i=String(f);return c.has(i)?!1:(c.add(i),!0)})}if(o.includes("geo")&&Array.isArray(t[n])){let c=e.region||"US",f=t[n],i=f.find(d=>String(d).startsWith(c+" "));if(i)t[n]=i.substring(c.length+1).trim();else{let d=f[0];typeof d=="string"&&d.includes(" ")?t[n]=d.substring(d.indexOf(" ")+1).trim():t[n]=d??null}}if(o.includes("split")&&typeof t[n]=="string"){let c=o.indexOf("split"),f=c+1<o.length?o[c+1]:",",i=ot(f);t[n]=t[n].split(i).map(d=>d.trim()).filter(d=>d!=="").map(d=>ct(d))}if(o.includes("join")&&Array.isArray(t[n])){let c=o.indexOf("join"),f=c+1<o.length?o[c+1]:",",i=ot(f);t[n]=t[n].map(d=>String(d)).join(i)}if(o.includes("default")&&!o.includes("env")&&(t[n]===null||t[n]===void 0||t[n]==="")){let c=o.indexOf("default");if(c!==-1&&o.length>c+1){let f=o.slice(c+1).join(":"),i=l[n]?.typeHint==="string";t[n]=i||isNaN(Number(f))?f:Number(f)}}if(o.includes("clamp")){let c=o.indexOf("clamp"),f=parseFloat(o[c+1]??""),i=parseFloat(o[c+2]??"");!isNaN(f)&&!isNaN(i)&&(f>i?t[n]=`CONSTRAINT_ERR: clamp min (${f}) > max (${i})`:typeof t[n]=="number"&&(t[n]=Math.min(i,Math.max(f,t[n]))))}if(o.includes("round")){let c=o.indexOf("round"),f=parseInt(o[c+1]??"0",10)||0;if(typeof t[n]=="number"){let i=Math.pow(10,f);t[n]=Math.round(t[n]*i)/i}}if(o.includes("map")&&Array.isArray(t[n])){let c=o.indexOf("map"),f=o[c+1]??"",i=String(f?M(s,f)??M(t,f)??"":""),g=t[n].find(h=>{let A=String(h),S=A.indexOf(" ");return S!==-1&&A.substring(0,S).trim()===i});t[n]=g?ct(g.substring(g.indexOf(" ")+1).trim()):null}if(o.includes("format")){let c=o.indexOf("format"),f=o[c+1]??"%s";t[n]=Mt(f,t[n])}if(o.includes("fallback")){let c=o.indexOf("fallback"),f=o[c+1]??"",i=t[n],d=i==null||i==="";if(!d&&typeof i=="string"&&b&&k&&e.basePath)try{let g=q(e.basePath,i);d=!b.existsSync(g)}catch{d=!0}d&&f&&(t[n]=f)}if(o.includes("once")){let c=o.indexOf("once"),f=o[c+1]??"uuid",i=k&&e.basePath?k.resolve(e.basePath,".synx.lock"):".synx.lock",d=Et(i,n);if(d!==null)t[n]=d;else{let g;f==="uuid"?g=at():f==="timestamp"?g=String(Date.now()):f==="random"?g=String(Math.floor(Math.random()*2147483647)):g=at(),Nt(i,n,g),t[n]=g}}if(o.includes("version")&&typeof t[n]=="string"){let c=o.indexOf("version"),f=o[c+1]??">=",i=o[c+2]??"0";t[n]=Rt(t[n],f,i)}if(o.includes("watch")&&typeof t[n]=="string")if(!b||!k)t[n]="WATCH_ERR: not supported in browser";else{let c=e.maxIncludeDepth??J;if((e._includeDepth??0)>=c)t[n]=`WATCH_ERR: max include depth (${c}) exceeded`;else{let i=t[n],d=e.basePath||(typeof process<"u"?process.cwd():"."),g=o.indexOf("watch"),h=o[g+1];try{let A=q(d,i);Z(A);let S=b.readFileSync(A,"utf-8"),N=k.extname(A).slice(1);h?t[n]=_t(S,h,N):t[n]=S.trim()}catch(A){t[n]=`WATCH_ERR: ${A.message}`}}}if(o.includes("prompt")){let c=o.indexOf("prompt"),f=o[c+1]??n,i=t[n],d=ut(i,0);t[n]=`${f} (SYNX):
|
|
4
|
+
\`\`\`synx
|
|
5
|
+
${d}\`\`\``}l&&l[n]?.constraints&&Ct(t,n,l[n].constraints)}for(let n of Object.keys(t))n!=="__synx"&&typeof t[n]=="string"&&t[n].includes("{")&&(t[n]=wt(t[n],s,t,r));return t}function bt(t){let e=t.__synx;if(e)for(let s of Object.keys(t)){if(s==="__synx")continue;let r=e[s];if(!r||!r.markers.includes("inherit"))continue;let a=r.markers.indexOf("inherit"),u=r.markers[a+1];if(!u)continue;let l=t[u];if(!l||typeof l!="object"||Array.isArray(l))continue;let n=t[s];if(!n||typeof n!="object"||Array.isArray(n))continue;let p={...l,...n},o=l.__synx,O=n.__synx;if(o||O){let c={...o||{},...O||{}};Object.defineProperty(p,"__synx",{value:c,enumerable:!1,writable:!0,configurable:!0})}t[s]=p}}function wt(t,e,s,r){return t.replace(/\{(\w+(?:\.\w+)*)(?::(\w+(?:[./\\][\w./\\]*)?))?\}/g,(a,u,l)=>{if(l){if(l==="include"){if(!r||r.size===0)return a;if(r.size>1)return"INCLUDE_ERR: multiple !include \u2014 specify alias";let p=r.values().next().value,o=M(p,u);return o!=null?String(o):a}if(r){let p=r.get(l);if(p){let o=M(p,u);return o!=null?String(o):a}}return a}let n=M(e,u)??M(s,u);return n!=null?String(n):a})}function kt(t,e){let s=new Map;if(!b||!k)return s;let r=e.basePath||(typeof process<"u"?process.cwd():"."),a=e.maxIncludeDepth??J,u=e._includeDepth??0;if(u>=a)return s;for(let l of t)try{let n=q(r,l.path);Z(n);let p=b.readFileSync(n,"utf-8"),{root:o,mode:O}=R(p);O==="active"&&_(o,{...e,basePath:k.dirname(n),_includeDepth:u+1},void 0,s),s.set(l.alias,o)}catch{}return s}function Ct(t,e,s){let r=t[e];if(s.required&&(r==null||r==="")){t[e]=`CONSTRAINT_ERR: '${e}' is required`;return}if(r==null)return;if(s.type&&!(()=>{switch(s.type){case"int":return typeof r=="number"&&Number.isInteger(r);case"float":return typeof r=="number";case"bool":return typeof r=="boolean";case"string":return typeof r=="string";default:return!0}})()){t[e]=`CONSTRAINT_ERR: '${e}' expected type '${s.type}'`;return}if(s.enum){let u=String(r);if(!s.enum.includes(u)){t[e]=`CONSTRAINT_ERR: '${e}' must be one of [${s.enum.join("|")}]`;return}}let a=typeof r=="number"?r:typeof r=="string"&&(s.min!==void 0||s.max!==void 0)?r.length:null;if(a!==null){if(s.min!==void 0&&a<s.min){t[e]=`CONSTRAINT_ERR: '${e}' value ${a} is below min ${s.min}`;return}if(s.max!==void 0&&a>s.max){t[e]=`CONSTRAINT_ERR: '${e}' value ${a} exceeds max ${s.max}`;return}}if(s.pattern&&typeof r=="string"){if(s.pattern.length>128)return;try{if(!new RegExp(s.pattern).test(r)){t[e]=`CONSTRAINT_ERR: '${e}' does not match pattern /${s.pattern}/`;return}}catch{}}}function Mt(t,e){let s=typeof e=="number"?e:parseFloat(String(e));if(isNaN(s))return String(e);let r=t.match(/^%\.(\d+)f$/);if(r)return s.toFixed(parseInt(r[1],10));let a=t.match(/^%0(\d+)d$/);if(a)return String(Math.round(s)).padStart(parseInt(a[1],10),"0");let u=t.match(/^%(\d+)d$/);return u?String(Math.round(s)).padStart(parseInt(u[1],10)):t==="%e"?s.toExponential():String(e)}function Et(t,e){if(!b)return null;try{let s=b.readFileSync(t,"utf-8");for(let r of s.split(/\r?\n/))if(r.startsWith(e+" "))return r.substring(e.length+1)}catch{}return null}function Nt(t,e,s){if(!b)return;let r=[];try{r=b.readFileSync(t,"utf-8").split(/\r?\n/)}catch{}let a=`${e} ${s}`,u=r.findIndex(l=>l.startsWith(e+" "));u!==-1?r[u]=a:r.push(a);try{b.writeFileSync(t,r.filter(Boolean).join(`
|
|
6
|
+
`)+`
|
|
7
|
+
`,"utf-8")}catch{}}function at(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{let e=Math.random()*16|0;return(t==="x"?e:e&3|8).toString(16)})}function Rt(t,e,s){let r=p=>p.split(".").map(o=>parseInt(o,10)||0),a=r(t),u=r(s),l=Math.max(a.length,u.length),n=0;for(let p=0;p<l;p++){let o=a[p]??0,O=u[p]??0;if(o!==O){n=o>O?1:-1;break}}switch(e){case">=":return n>=0;case"<=":return n<=0;case">":return n>0;case"<":return n<0;case"==":case"=":return n===0;case"!=":return n!==0;default:return!1}}function _t(t,e,s){if(s==="json")try{let r=JSON.parse(t);return e.split(".").reduce((a,u)=>a?.[u],r)??null}catch{return null}try{let{root:r}=R(t);return M(r,e)??null}catch{return null}}function ut(t,e){let s=" ".repeat(e);if(t==null)return`${s}null
|
|
8
|
+
`;if(typeof t=="boolean"||typeof t=="number")return`${s}${t}
|
|
9
|
+
`;if(typeof t=="string")return`${s}${t}
|
|
10
|
+
`;if(Array.isArray(t)){let r="";for(let a of t)r+=`${s} - ${String(a)}
|
|
11
|
+
`;return r}if(typeof t=="object"){let r="";for(let[a,u]of Object.entries(t))if(a!=="__synx")if(u&&typeof u=="object"&&!Array.isArray(u))r+=`${s}${a}
|
|
12
|
+
`,r+=ut(u,e+2);else if(Array.isArray(u)){r+=`${s}${a}
|
|
13
|
+
`;for(let l of u)r+=`${s} - ${String(l)}
|
|
14
|
+
`}else r+=`${s}${a} ${u??"null"}
|
|
15
|
+
`;return r}return`${s}${String(t)}
|
|
16
|
+
`}function ct(t){return t==="true"?!0:t==="false"?!1:t==="null"?null:/^-?\d+$/.test(t)?parseInt(t,10):/^-?\d+\.\d+$/.test(t)?parseFloat(t):t}var It={space:" ",pipe:"|",dash:"-",dot:".",semi:";",tab:" ",slash:"/"};function ot(t){return It[t]||t}function vt(t,e){let s=[...e];if(s.length<t.length){let l=s.reduce((p,o)=>p+o,0),n=l<100?(100-l)/(t.length-s.length):l/s.length;for(;s.length<t.length;)s.push(n)}let r=s.reduce((l,n)=>l+n,0);if(r<=0)return t[Math.floor(Math.random()*t.length)];let a=Math.random(),u=0;for(let l=0;l<t.length;l++)if(u+=s[l]/r,a<=u)return t[l];return t[t.length-1]}function lt(t){return t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122||t===95}function Pt(t,e,s){let r=e.length,a=t.length,u="",l=0;for(;l<=a-r;){if(t.slice(l,l+r)===e){let n=l===0||!lt(t.charCodeAt(l-1)),p=l+r>=a||!lt(t.charCodeAt(l+r));if(n&&p){u+=s,l+=r;continue}}u+=t[l++]}for(;l<a;)u+=t[l++];return u}function Tt(t,e){let s=[...e.entries()].sort((a,u)=>u[0].length-a[0].length),r=t;for(let[a,u]of s)r=Pt(r,a,u);return r}function Dt(t,e,s){let r=Date.now(),a=s*1e3,u=W.get(t)??[],l=u.filter(n=>r-n<=a);return l.length>=e?(W.set(t,l),!1):(l.length===0&&u.length>0&&W.delete(t),l.push(r),W.set(t,l),!0)}function M(t,e){if(Object.prototype.hasOwnProperty.call(t,e))return t[e];let s=e.split("."),r=t;for(let a of s){if(r==null||typeof r!="object"||!Object.prototype.hasOwnProperty.call(r,a))return;r=r[a]}return r}var z=class extends Error{constructor(e){super(e),this.name="SynxError";let s=e.indexOf(":");this.code=s!==-1?e.slice(0,s):"SYNX_ERR"}};var H=class{static parse(e,s={}){let{root:r,mode:a}=R(e);return a==="active"&&_(r,s),r}static stringify(e,s=!1){let r="";return s&&(r+=`!active
|
|
17
|
+
`),r+=ft(e,0),r}};function ft(t,e){let s="",r=" ".repeat(e);for(let[a,u]of Object.entries(t))if(Array.isArray(u)){s+=`${r}${a}
|
|
18
|
+
`;for(let l of u)if(l&&typeof l=="object"&&!Array.isArray(l)){let n=Object.entries(l);if(n.length>0){let[p,o]=n[0];s+=`${r} - ${p} ${o}
|
|
19
|
+
`;for(let O=1;O<n.length;O++)s+=`${r} ${n[O][0]} ${n[O][1]}
|
|
20
|
+
`}}else s+=`${r} - ${l}
|
|
21
|
+
`}else if(u&&typeof u=="object")s+=`${r}${a}
|
|
22
|
+
`,s+=ft(u,e+2);else if(typeof u=="string"&&u.includes(`
|
|
23
|
+
`)){s+=`${r}${a} |
|
|
24
|
+
`;for(let l of u.split(`
|
|
25
|
+
`))s+=`${r} ${l}
|
|
26
|
+
`}else s+=`${r}${a} ${u}
|
|
27
|
+
`;return s}var Vt=H;return St(Lt);})();
|
|
28
|
+
if(typeof window!=="undefined")window.Synx=SynxModule.default;
|
|
29
|
+
//# sourceMappingURL=synx.browser.js.map
|