@blackwell-systems/gcf 2.2.0 → 2.2.1
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 +5 -5
- package/dist/cjs/index.cjs +75 -42
- package/dist/decode_generic.js +20 -10
- package/dist/decode_generic.js.map +1 -1
- package/dist/generic.d.ts +9 -1
- package/dist/generic.d.ts.map +1 -1
- package/dist/generic.js +72 -33
- package/dist/generic.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/decode_generic.ts +19 -9
- package/src/generic.ts +78 -33
- package/src/index.ts +1 -1
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
TypeScript implementation of [GCF](https://gcformat.com/) — the most token-efficient wire format for LLMs. A drop-in alternative to JSON and TOON for any structured data.
|
|
10
10
|
|
|
11
|
-
**100% comprehension on every frontier model tested.
|
|
11
|
+
**100% comprehension on every frontier model tested. 29% fewer tokens than TOON, 56% fewer than JSON across 16 datasets. 91.2% on structurally complex code graphs (vs TOON 68.2%, JSON 53.4%). 2,400+ LLM evaluations. Zero training.**
|
|
12
12
|
|
|
13
13
|
Docs: [gcformat.com](https://gcformat.com/) · [Playground](https://gcformat.com/playground.html) · [GCF vs TOON](https://gcformat.com/guide/vs-toon.html)
|
|
14
14
|
|
|
@@ -192,16 +192,16 @@ Works on objects, arrays, and primitives. Arrays of uniform objects get tabular
|
|
|
192
192
|
|
|
193
193
|
## Benchmarks
|
|
194
194
|
|
|
195
|
-
|
|
195
|
+
2,400+ LLM evaluations across 10 models, 3 providers, and 51 independent test runs.
|
|
196
196
|
|
|
197
197
|
| | GCF | TOON | JSON |
|
|
198
198
|
|---|---|---|---|
|
|
199
|
-
| **Comprehension** (23 runs, 10 models) | **
|
|
199
|
+
| **Comprehension** (23 runs, 10 models) | **91.2%** | 68.2% | 53.4% |
|
|
200
200
|
| **Generation** (28 runs, 9 models) | **5/5** | 1.0/5 | 5.0/5 |
|
|
201
201
|
| **Input tokens** (500 symbols) | **11,090** | 16,378 | 53,341 |
|
|
202
202
|
| **Output tokens** (100 symbols) | **5,976** | 8,937 | 16,121 |
|
|
203
203
|
|
|
204
|
-
GCF wins
|
|
204
|
+
GCF wins 15/16 datasets on the expanded [token efficiency benchmark](https://github.com/blackwell-systems/toon/tree/gcf-comparison). Full results: [gcformat.com/guide/benchmarks](https://gcformat.com/guide/benchmarks.html)
|
|
205
205
|
|
|
206
206
|
## Implementations
|
|
207
207
|
|
|
@@ -222,7 +222,7 @@ GCF wins 13/15 datasets on the expanded [token efficiency benchmark](https://git
|
|
|
222
222
|
|
|
223
223
|
**Zero runtime dependencies. Permanently.** All six implementations depend only on their language's standard library. No transitive dependencies. No supply chain risk. This is a permanent commitment: GCF will never take on external runtime dependencies. MIT licensed. All implementations support both generic profile (`encodeGeneric`) and graph profile (`encode`). CLI included in all 6 languages.
|
|
224
224
|
|
|
225
|
-
**Specification:** [SPEC v3.
|
|
225
|
+
**Specification:** [SPEC v3.2 Stable](https://github.com/blackwell-systems/gcf/blob/main/SPEC.md) with 173 conformance fixtures, 43,000,000,000+ lossless round-trips verified across 5 formats and 6 languages. All implementations at v2.2.0+ (Go v1.3.0). Cross-language 6x6 matrix verified.
|
|
226
226
|
|
|
227
227
|
## License
|
|
228
228
|
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -790,30 +790,30 @@ function verifyDelta(baseSymbols, baseEdges, removedSymbols, addedSymbols, remov
|
|
|
790
790
|
function indent(depth) {
|
|
791
791
|
return " ".repeat(depth);
|
|
792
792
|
}
|
|
793
|
-
function encodeGeneric(data) {
|
|
793
|
+
function encodeGeneric(data, opts) {
|
|
794
794
|
let out = "GCF profile=generic\n";
|
|
795
|
-
out += encodeRootValue(data);
|
|
795
|
+
out += encodeRootValue(data, opts);
|
|
796
796
|
return out;
|
|
797
797
|
}
|
|
798
|
-
function encodeRootValue(v) {
|
|
798
|
+
function encodeRootValue(v, opts) {
|
|
799
799
|
if (v === null || v === void 0) return "=-\n";
|
|
800
|
-
if (Array.isArray(v)) return encodeRootArray(v);
|
|
801
|
-
if (typeof v === "object") return encodeObject(v, 0);
|
|
800
|
+
if (Array.isArray(v)) return encodeRootArray(v, opts);
|
|
801
|
+
if (typeof v === "object") return encodeObject(v, 0, opts);
|
|
802
802
|
return `=${formatScalar(v, 0)}
|
|
803
803
|
`;
|
|
804
804
|
}
|
|
805
|
-
function encodeObject(obj, depth) {
|
|
805
|
+
function encodeObject(obj, depth, opts) {
|
|
806
806
|
const prefix = indent(depth);
|
|
807
807
|
let out = "";
|
|
808
808
|
for (const key of Object.keys(obj)) {
|
|
809
809
|
const value = obj[key];
|
|
810
810
|
const fk = formatKey(key);
|
|
811
811
|
if (Array.isArray(value)) {
|
|
812
|
-
out += encodeNamedArray(fk, value, depth);
|
|
812
|
+
out += encodeNamedArray(fk, value, depth, opts);
|
|
813
813
|
} else if (typeof value === "object" && value !== null) {
|
|
814
814
|
out += `${prefix}## ${fk}
|
|
815
815
|
`;
|
|
816
|
-
out += encodeObject(value, depth + 1);
|
|
816
|
+
out += encodeObject(value, depth + 1, opts);
|
|
817
817
|
} else {
|
|
818
818
|
out += `${prefix}${fk}=${formatScalar(value, 0)}
|
|
819
819
|
`;
|
|
@@ -821,7 +821,7 @@ function encodeObject(obj, depth) {
|
|
|
821
821
|
}
|
|
822
822
|
return out;
|
|
823
823
|
}
|
|
824
|
-
function encodeRootArray(arr) {
|
|
824
|
+
function encodeRootArray(arr, opts) {
|
|
825
825
|
if (arr.length === 0) return "## [0]\n";
|
|
826
826
|
if (allPrimitives(arr)) {
|
|
827
827
|
const vals = arr.map((v) => formatScalar(v, 44));
|
|
@@ -829,10 +829,10 @@ function encodeRootArray(arr) {
|
|
|
829
829
|
`;
|
|
830
830
|
}
|
|
831
831
|
const fields = tabularFields(arr);
|
|
832
|
-
if (fields) return encodeTabular("## ", arr, fields, 0);
|
|
833
|
-
return encodeExpanded("## ", arr, 0);
|
|
832
|
+
if (fields) return encodeTabular("## ", arr, fields, 0, opts);
|
|
833
|
+
return encodeExpanded("## ", arr, 0, opts);
|
|
834
834
|
}
|
|
835
|
-
function encodeNamedArray(name, arr, depth) {
|
|
835
|
+
function encodeNamedArray(name, arr, depth, opts) {
|
|
836
836
|
const prefix = indent(depth);
|
|
837
837
|
if (arr.length === 0) return `${prefix}## ${name} [0]
|
|
838
838
|
`;
|
|
@@ -842,8 +842,8 @@ function encodeNamedArray(name, arr, depth) {
|
|
|
842
842
|
`;
|
|
843
843
|
}
|
|
844
844
|
const fields = tabularFields(arr);
|
|
845
|
-
if (fields) return encodeTabular(`${prefix}## ${name} `, arr, fields, depth);
|
|
846
|
-
return encodeExpanded(`${prefix}## ${name} `, arr, depth);
|
|
845
|
+
if (fields) return encodeTabular(`${prefix}## ${name} `, arr, fields, depth, opts);
|
|
846
|
+
return encodeExpanded(`${prefix}## ${name} `, arr, depth, opts);
|
|
847
847
|
}
|
|
848
848
|
function tabularFields(arr) {
|
|
849
849
|
if (arr.length === 0) return null;
|
|
@@ -919,6 +919,7 @@ function sharedArraySchema(arr, fieldName) {
|
|
|
919
919
|
return canonicalFields;
|
|
920
920
|
}
|
|
921
921
|
function analyzeFlattenable(arr, fieldName, parentPath) {
|
|
922
|
+
if (fieldName.includes(">")) return null;
|
|
922
923
|
let canonicalShape = null;
|
|
923
924
|
for (const item of arr) {
|
|
924
925
|
const obj = item;
|
|
@@ -1001,17 +1002,26 @@ function resolveKeyChain(item, keys) {
|
|
|
1001
1002
|
}
|
|
1002
1003
|
return { value: current, exists: true };
|
|
1003
1004
|
}
|
|
1004
|
-
function encodeTabular(headerPrefix, arr, fields, depth) {
|
|
1005
|
+
function encodeTabular(headerPrefix, arr, fields, depth, opts) {
|
|
1005
1006
|
const prefix = indent(depth);
|
|
1006
1007
|
const flattenMap = /* @__PURE__ */ new Map();
|
|
1008
|
+
if (!opts?.noFlatten) {
|
|
1009
|
+
for (const f of fields) {
|
|
1010
|
+
const leaves = analyzeFlattenable(arr, f, "");
|
|
1011
|
+
if (leaves && leaves.length > 0) {
|
|
1012
|
+
flattenMap.set(f, leaves);
|
|
1013
|
+
}
|
|
1014
|
+
}
|
|
1015
|
+
}
|
|
1016
|
+
const gtFields = /* @__PURE__ */ new Set();
|
|
1007
1017
|
for (const f of fields) {
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
flattenMap.set(f, leaves);
|
|
1018
|
+
if (!flattenMap.has(f) && f.includes(">")) {
|
|
1019
|
+
gtFields.add(f);
|
|
1011
1020
|
}
|
|
1012
1021
|
}
|
|
1013
1022
|
const columns = [];
|
|
1014
1023
|
for (const f of fields) {
|
|
1024
|
+
if (gtFields.has(f)) continue;
|
|
1015
1025
|
const leaves = flattenMap.get(f);
|
|
1016
1026
|
if (leaves) {
|
|
1017
1027
|
for (const leaf of leaves) {
|
|
@@ -1021,6 +1031,9 @@ function encodeTabular(headerPrefix, arr, fields, depth) {
|
|
|
1021
1031
|
columns.push({ headerName: formatKey(f), colType: "original", field: f, keys: [] });
|
|
1022
1032
|
}
|
|
1023
1033
|
}
|
|
1034
|
+
if (columns.length === 0) {
|
|
1035
|
+
return encodeExpanded(headerPrefix, arr, depth, opts);
|
|
1036
|
+
}
|
|
1024
1037
|
const inlineSchemas = /* @__PURE__ */ new Map();
|
|
1025
1038
|
const sharedArrSchemas = /* @__PURE__ */ new Map();
|
|
1026
1039
|
for (const f of fields) {
|
|
@@ -1088,6 +1101,13 @@ function encodeTabular(headerPrefix, arr, fields, depth) {
|
|
|
1088
1101
|
cells.push(formatScalar(v, 124));
|
|
1089
1102
|
}
|
|
1090
1103
|
}
|
|
1104
|
+
for (const f of fields) {
|
|
1105
|
+
if (!gtFields.has(f)) continue;
|
|
1106
|
+
const obj2 = arr[i];
|
|
1107
|
+
if (!(f in obj2)) continue;
|
|
1108
|
+
rowHasAttachment = true;
|
|
1109
|
+
attachments.push({ name: f, value: obj2[f], inline: false });
|
|
1110
|
+
}
|
|
1091
1111
|
const row = cells.join("|");
|
|
1092
1112
|
if (rowHasAttachment) {
|
|
1093
1113
|
out += `${prefix}@${i} ${row}
|
|
@@ -1109,20 +1129,28 @@ function encodeTabular(headerPrefix, arr, fields, depth) {
|
|
|
1109
1129
|
} else if (Array.isArray(att.value)) {
|
|
1110
1130
|
const sas = sharedArrSchemas.get(att.name);
|
|
1111
1131
|
if (sas && i > 0) {
|
|
1112
|
-
out += encodeAttachmentArrayShared(prefix, fk, att.value, depth + 2, sas);
|
|
1132
|
+
out += encodeAttachmentArrayShared(prefix, fk, att.value, depth + 2, sas, opts);
|
|
1113
1133
|
} else {
|
|
1114
|
-
out += encodeAttachmentArray(prefix, fk, att.value, depth + 2);
|
|
1134
|
+
out += encodeAttachmentArray(prefix, fk, att.value, depth + 2, opts);
|
|
1115
1135
|
}
|
|
1116
|
-
} else {
|
|
1136
|
+
} else if (typeof att.value === "object" && att.value !== null) {
|
|
1117
1137
|
out += `${prefix}.${fk} {}
|
|
1118
1138
|
`;
|
|
1119
|
-
out += encodeObject(att.value, depth + 2);
|
|
1139
|
+
out += encodeObject(att.value, depth + 2, opts);
|
|
1140
|
+
} else {
|
|
1141
|
+
if (att.value === null || att.value === void 0) {
|
|
1142
|
+
out += `${prefix}.${fk} =-
|
|
1143
|
+
`;
|
|
1144
|
+
} else {
|
|
1145
|
+
out += `${prefix}.${fk} =${formatScalar(att.value, 0)}
|
|
1146
|
+
`;
|
|
1147
|
+
}
|
|
1120
1148
|
}
|
|
1121
1149
|
}
|
|
1122
1150
|
}
|
|
1123
1151
|
return out;
|
|
1124
1152
|
}
|
|
1125
|
-
function encodeAttachmentArray(attPrefix, fk, arr, depth) {
|
|
1153
|
+
function encodeAttachmentArray(attPrefix, fk, arr, depth, opts) {
|
|
1126
1154
|
if (arr.length === 0) return `${attPrefix}.${fk} [0]
|
|
1127
1155
|
`;
|
|
1128
1156
|
if (allPrimitives(arr)) {
|
|
@@ -1131,10 +1159,10 @@ function encodeAttachmentArray(attPrefix, fk, arr, depth) {
|
|
|
1131
1159
|
`;
|
|
1132
1160
|
}
|
|
1133
1161
|
const fields = tabularFields(arr);
|
|
1134
|
-
if (fields) return encodeTabular(`${attPrefix}.${fk} `, arr, fields, depth);
|
|
1135
|
-
return encodeExpanded(`${attPrefix}.${fk} `, arr, depth);
|
|
1162
|
+
if (fields) return encodeTabular(`${attPrefix}.${fk} `, arr, fields, depth, opts);
|
|
1163
|
+
return encodeExpanded(`${attPrefix}.${fk} `, arr, depth, opts);
|
|
1136
1164
|
}
|
|
1137
|
-
function encodeAttachmentArrayShared(attPrefix, fk, arr, depth, sharedFields) {
|
|
1165
|
+
function encodeAttachmentArrayShared(attPrefix, fk, arr, depth, sharedFields, opts) {
|
|
1138
1166
|
if (arr.length === 0) return `${attPrefix}.${fk} [0]
|
|
1139
1167
|
`;
|
|
1140
1168
|
if (allPrimitives(arr)) {
|
|
@@ -1159,20 +1187,20 @@ function encodeAttachmentArrayShared(attPrefix, fk, arr, depth, sharedFields) {
|
|
|
1159
1187
|
}
|
|
1160
1188
|
return out;
|
|
1161
1189
|
}
|
|
1162
|
-
return encodeAttachmentArray(attPrefix, fk, arr, depth);
|
|
1190
|
+
return encodeAttachmentArray(attPrefix, fk, arr, depth, opts);
|
|
1163
1191
|
}
|
|
1164
|
-
function encodeExpanded(headerPrefix, arr, depth) {
|
|
1192
|
+
function encodeExpanded(headerPrefix, arr, depth, opts) {
|
|
1165
1193
|
const prefix = indent(depth);
|
|
1166
1194
|
let out = `${headerPrefix}[${arr.length}]
|
|
1167
1195
|
`;
|
|
1168
1196
|
for (let i = 0; i < arr.length; i++) {
|
|
1169
1197
|
const item = arr[i];
|
|
1170
1198
|
if (Array.isArray(item)) {
|
|
1171
|
-
out += encodeExpandedArrayItem(prefix, i, item, depth);
|
|
1199
|
+
out += encodeExpandedArrayItem(prefix, i, item, depth, opts);
|
|
1172
1200
|
} else if (typeof item === "object" && item !== null) {
|
|
1173
1201
|
out += `${prefix}@${i} {}
|
|
1174
1202
|
`;
|
|
1175
|
-
out += encodeObject(item, depth + 1);
|
|
1203
|
+
out += encodeObject(item, depth + 1, opts);
|
|
1176
1204
|
} else {
|
|
1177
1205
|
out += `${prefix}@${i} =${formatScalar(item, 0)}
|
|
1178
1206
|
`;
|
|
@@ -1180,7 +1208,7 @@ function encodeExpanded(headerPrefix, arr, depth) {
|
|
|
1180
1208
|
}
|
|
1181
1209
|
return out;
|
|
1182
1210
|
}
|
|
1183
|
-
function encodeExpandedArrayItem(prefix, idx, arr, depth) {
|
|
1211
|
+
function encodeExpandedArrayItem(prefix, idx, arr, depth, opts) {
|
|
1184
1212
|
if (arr.length === 0) return `${prefix}@${idx} [0]
|
|
1185
1213
|
`;
|
|
1186
1214
|
if (allPrimitives(arr)) {
|
|
@@ -1189,8 +1217,8 @@ function encodeExpandedArrayItem(prefix, idx, arr, depth) {
|
|
|
1189
1217
|
`;
|
|
1190
1218
|
}
|
|
1191
1219
|
const fields = tabularFields(arr);
|
|
1192
|
-
if (fields) return encodeTabular(`${prefix}@${idx} `, arr, fields, depth + 1);
|
|
1193
|
-
return encodeExpanded(`${prefix}@${idx} `, arr, depth + 1);
|
|
1220
|
+
if (fields) return encodeTabular(`${prefix}@${idx} `, arr, fields, depth + 1, opts);
|
|
1221
|
+
return encodeExpanded(`${prefix}@${idx} `, arr, depth + 1, opts);
|
|
1194
1222
|
}
|
|
1195
1223
|
function allPrimitives(arr) {
|
|
1196
1224
|
return arr.every((v) => typeof v !== "object" || v === null);
|
|
@@ -1465,7 +1493,10 @@ function parseTabularBody(lines, start, depth, fields, expectedCount) {
|
|
|
1465
1493
|
const pathColumnMap = /* @__PURE__ */ new Map();
|
|
1466
1494
|
for (const f of fields) {
|
|
1467
1495
|
if (f.includes(">")) {
|
|
1468
|
-
|
|
1496
|
+
const parts = f.split(">");
|
|
1497
|
+
if (parts.every((p) => p.length > 0)) {
|
|
1498
|
+
pathColumnMap.set(f, parts);
|
|
1499
|
+
}
|
|
1469
1500
|
}
|
|
1470
1501
|
}
|
|
1471
1502
|
const inlineSchemas = /* @__PURE__ */ new Map();
|
|
@@ -1546,9 +1577,9 @@ function parseTabularBody(lines, start, depth, fields, expectedCount) {
|
|
|
1546
1577
|
i++;
|
|
1547
1578
|
const allAttFields = [...traditionalAttFields, ...inlineAttFields];
|
|
1548
1579
|
const attachmentValues = /* @__PURE__ */ new Map();
|
|
1549
|
-
if (rowHasID
|
|
1580
|
+
if (rowHasID) {
|
|
1550
1581
|
let inlineIdx = 0;
|
|
1551
|
-
while (i < lines.length
|
|
1582
|
+
while (i < lines.length) {
|
|
1552
1583
|
const aLine = lines[i];
|
|
1553
1584
|
let aContent = null;
|
|
1554
1585
|
if (depth === 0 || aLine.startsWith(ind)) {
|
|
@@ -1647,12 +1678,8 @@ function parseTabularBody(lines, start, depth, fields, expectedCount) {
|
|
|
1647
1678
|
continue;
|
|
1648
1679
|
}
|
|
1649
1680
|
}
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
if (i < lines.length && lines[i].startsWith(attIndent)) {
|
|
1653
|
-
const peek = lines[i].slice(attIndent.length);
|
|
1654
|
-
if (peek.startsWith(".")) throw new Error(`orphan_attachment: ${peek}`);
|
|
1655
|
-
}
|
|
1681
|
+
for (const [k, v] of attachmentValues) {
|
|
1682
|
+
if (!(k in row)) row[k] = v;
|
|
1656
1683
|
}
|
|
1657
1684
|
if (pathColumnMap.size > 0) {
|
|
1658
1685
|
const nested = unflattenPaths(pathColumnMap, flatValues, flatAbsent);
|
|
@@ -1735,6 +1762,12 @@ function parseAttachment(lines, lineIdx, rest, depth, sharedSchemas) {
|
|
|
1735
1762
|
const [arr, consumed] = parseArrayFromHeader(lines, lineIdx, depth, afterName);
|
|
1736
1763
|
return [name, arr, consumed, null];
|
|
1737
1764
|
}
|
|
1765
|
+
if (afterName.startsWith("=")) {
|
|
1766
|
+
const valStr = afterName.slice(1);
|
|
1767
|
+
const parsed = parseScalar(valStr, true);
|
|
1768
|
+
if (parsed === MISSING) return [name, null, 1, null];
|
|
1769
|
+
return [name, parsed, 1, null];
|
|
1770
|
+
}
|
|
1738
1771
|
throw new Error(`invalid attachment form: ${afterName}`);
|
|
1739
1772
|
}
|
|
1740
1773
|
function parseExpandedBody(lines, start, depth) {
|
package/dist/decode_generic.js
CHANGED
|
@@ -325,7 +325,12 @@ function parseTabularBody(lines, start, depth, fields, expectedCount) {
|
|
|
325
325
|
const pathColumnMap = new Map();
|
|
326
326
|
for (const f of fields) {
|
|
327
327
|
if (f.includes('>')) {
|
|
328
|
-
|
|
328
|
+
const parts = f.split('>');
|
|
329
|
+
// Only treat as a path column if all segments are non-empty.
|
|
330
|
+
// A literal key like ">" would split into ["", ""].
|
|
331
|
+
if (parts.every(p => p.length > 0)) {
|
|
332
|
+
pathColumnMap.set(f, parts);
|
|
333
|
+
}
|
|
329
334
|
}
|
|
330
335
|
}
|
|
331
336
|
// Track inline schemas and shared array schemas.
|
|
@@ -421,9 +426,9 @@ function parseTabularBody(lines, start, depth, fields, expectedCount) {
|
|
|
421
426
|
// Parse attachments in line order.
|
|
422
427
|
const allAttFields = [...traditionalAttFields, ...inlineAttFields];
|
|
423
428
|
const attachmentValues = new Map();
|
|
424
|
-
if (rowHasID
|
|
429
|
+
if (rowHasID) {
|
|
425
430
|
let inlineIdx = 0;
|
|
426
|
-
while (i < lines.length
|
|
431
|
+
while (i < lines.length) {
|
|
427
432
|
const aLine = lines[i];
|
|
428
433
|
let aContent = null;
|
|
429
434
|
if (depth === 0 || aLine.startsWith(ind)) {
|
|
@@ -543,13 +548,10 @@ function parseTabularBody(lines, start, depth, fields, expectedCount) {
|
|
|
543
548
|
continue;
|
|
544
549
|
}
|
|
545
550
|
}
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
if (
|
|
549
|
-
|
|
550
|
-
if (peek.startsWith('.'))
|
|
551
|
-
throw new Error(`orphan_attachment: ${peek}`);
|
|
552
|
-
}
|
|
551
|
+
// Also add any orphan attachment values (fields excluded from column list, e.g. ">" fields).
|
|
552
|
+
for (const [k, v] of attachmentValues) {
|
|
553
|
+
if (!(k in row))
|
|
554
|
+
row[k] = v;
|
|
553
555
|
}
|
|
554
556
|
// Unflatten path columns into nested objects.
|
|
555
557
|
if (pathColumnMap.size > 0) {
|
|
@@ -648,6 +650,14 @@ function parseAttachment(lines, lineIdx, rest, depth, sharedSchemas) {
|
|
|
648
650
|
const [arr, consumed] = parseArrayFromHeader(lines, lineIdx, depth, afterName);
|
|
649
651
|
return [name, arr, consumed, null];
|
|
650
652
|
}
|
|
653
|
+
// Scalar: =value (field names containing ">" excluded from tabular columns).
|
|
654
|
+
if (afterName.startsWith('=')) {
|
|
655
|
+
const valStr = afterName.slice(1);
|
|
656
|
+
const parsed = parseScalar(valStr, true);
|
|
657
|
+
if (parsed === MISSING)
|
|
658
|
+
return [name, null, 1, null];
|
|
659
|
+
return [name, parsed, 1, null];
|
|
660
|
+
}
|
|
651
661
|
throw new Error(`invalid attachment form: ${afterName}`);
|
|
652
662
|
}
|
|
653
663
|
function parseExpandedBody(lines, start, depth) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode_generic.js","sourceRoot":"","sources":["../src/decode_generic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,WAAW,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,cAAc,EAC1D,OAAO,EAAE,UAAU,GAC/B,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IACxB,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAE3D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAEtG,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE3C,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE;YAC1B,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC3B,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC,CAAC;YACH,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;aACvB,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;IAE1E,eAAe;IACf,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE;YAAE,SAAS;QACvB,aAAa;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YAClF,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,MAAM;QAC1B,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QACvC,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAAC,WAAW,GAAG,OAAO,CAAC;YAAC,SAAS;QAAC,CAAC;QACpE,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,oBAAoB,EAAE,CAAC;QACjF,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,+BAA+B;IAC/B,IAAI,WAAW,IAAI,oBAAoB,GAAG,CAAC,EAAE,CAAC;QAC5C,qBAAqB,CAAC,WAAW,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEzC,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAE1C,eAAe;IACf,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACnG,OAAO,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,cAAc;IACd,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,OAAO,GAAG,CAAC;IACb,CAAC;IAED,eAAe;IACf,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,eAAe,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,EAAE,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,KAAe,EAAE,KAAa,EAAE,KAAa,EAAE,GAAwB;IAC9F,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC,GAAG,KAAK,CAAC;IAEd,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,MAAM;QAC9C,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,CAAC;QAED,iBAAiB;QACjB,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAClD,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACpB,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,oBAAoB,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7E,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;gBAChB,CAAC,IAAI,QAAQ,CAAC;gBACd,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACrC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACpB,CAAC,EAAE,CAAC;YACJ,MAAM,MAAM,GAAwB,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC9D,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;YACnB,CAAC,IAAI,QAAQ,CAAC;YACd,SAAS;QACX,CAAC;QAED,sEAAsE;QACtE,sEAAsE;QACtE,8CAA8C;QAC9C,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YACzD,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACpB,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACzD,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAED,mEAAmE;QACnE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;oBAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;oBACvC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;wBAC5C,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;wBAC9D,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;wBACpB,MAAM,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;wBAC1D,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;wBAChB,CAAC,EAAE,CAAC;wBACJ,SAAS;oBACX,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,CAAC,EAAE,CAAC;IACN,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAS;IAClC,IAAI,CAAC,CAAC,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC,CAAC;IACzB,0BAA0B;IAC1B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAAC,CAAC,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YACrC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,sFAAsF;IACtF,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IACzB,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,GAAG,KAAK;QAAE,OAAO,CAAC,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAS;IACnC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACb,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;QAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,QAAQ,CAAC,GAAwB,EAAE,GAAW;IACrD,IAAI,GAAG,IAAI,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAe,EAAE,UAAkB,EAAE,KAAa,EAAE,WAAmB;IACnG,MAAM,EAAE,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,QAAQ,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC5C,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,IAAI,QAAQ,KAAK,GAAG;QAAE,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEnD,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAClF,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,UAAU;IACV,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,YAAY,KAAK,GAAG,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,SAAS,CAAC,CAAC;YAC3F,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjB,CAAC;QACD,MAAM,IAAI,GAAG,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACjD,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAClH,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,WAAW;IACX,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,QAAQ,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACvF,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAClH,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,YAAY;IACZ,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1E,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,SAAS,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACpH,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAS;IACjC,IAAI,OAAO,GAAG,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,OAAO,EAAE,CAAC;YAAC,OAAO,GAAG,KAAK,CAAC;YAAC,SAAS;QAAC,CAAC;QAC3C,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,EAAE,CAAC;YAAC,OAAO,GAAG,IAAI,CAAC;YAAC,SAAS;QAAC,CAAC;QAC3D,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAAC,OAAO,GAAG,CAAC,OAAO,CAAC;YAAC,SAAS;QAAC,CAAC;QACnD,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,cAAc,CACrB,WAAkC,EAClC,UAA4B,EAC5B,UAAuB;IAEvB,6BAA6B;IAC7B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC3C,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;QAC7C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACjC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,MAAM,GAAwB,EAAE,CAAC;IAEvC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QACpC,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACnC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9B,OAAO,GAAG,KAAK,IAAI,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,IAAI,SAAS;YAAE,SAAS;QACxB,IAAI,OAAO,EAAE,CAAC;YAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAAC,SAAS;QAAC,CAAC;QAE9C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,SAAS;YACxC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAEzE,IAAI,OAAO,GAAG,MAAM,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;oBAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBACnD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACzC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAe,EAAE,KAAa,EAAE,KAAa,EAAE,MAAgB,EAAE,aAAqB;IAC9G,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,IAAI,CAAC,GAAG,KAAK,CAAC;IAEd,8CAA8C;IAC9C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAoB,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAoB,CAAC;IAClD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAoB,CAAC;IAEvD,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1F,IAAI,OAAO,KAAK,IAAI;YAAE,MAAM;QAC5B,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,MAAM;QAElE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,qDAAqD;YACzF,MAAM;QACR,CAAC;QAED,qCAAqC;QACrC,IAAI,OAAO,GAAG,OAAO,CAAC;QACtB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gBACX,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBAChC,QAAQ,GAAG,IAAI,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,MAAM,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAExH,gFAAgF;QAChF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAe,CAAC;QAC1C,MAAM,oBAAoB,GAAa,EAAE,CAAC;QAC1C,MAAM,eAAe,GAAa,EAAE,CAAC;QACrC,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QAExC,+CAA+C;QAC/C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAe,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAExB,qDAAqD;YACrD,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC1C,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;oBACvB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBACpC,CAAC;gBACD,SAAS;YACX,CAAC;YAED,iDAAiD;YACjD,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,GAAG,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;gBACtC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAClC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/B,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC1C,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAC,SAAS;YAAC,CAAC;YACnE,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC1B,kDAAkD;gBAClD,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjC,CAAC;qBAAM,CAAC;oBACN,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,CAAC;gBACD,SAAS;YACX,CAAC;YACD,sFAAsF;YACtF,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBAClE,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBAClD,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAClC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/B,SAAS;YACX,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;QACD,CAAC,EAAE,CAAC;QAEJ,mCAAmC;QACnC,MAAM,YAAY,GAAG,CAAC,GAAG,oBAAoB,EAAE,GAAG,eAAe,CAAC,CAAC;QACnE,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAe,CAAC;QAEhD,IAAI,QAAQ,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,IAAI,SAAS,GAAG,CAAC,CAAC;YAElB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,gBAAgB,CAAC,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;gBACvE,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,QAAQ,GAAkB,IAAI,CAAC;gBACnC,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzC,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBACzD,CAAC;qBAAM,CAAC;oBACN,MAAM;gBACR,CAAC;gBACD,IAAI,QAAQ,KAAK,IAAI;oBAAE,MAAM;gBAE7B,mEAAmE;gBACnE,+DAA+D;gBAC/D,IAAI,UAAU,GAAG,QAAQ,CAAC;gBAC1B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChE,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB;gBACtD,CAAC;gBACD,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACjC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;oBAEvD,oEAAoE;oBACpE,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACvC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC7F,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;wBACnC,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;wBACpD,IAAI,UAAU,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM;4BAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,aAAa,GAAG,CAAC,MAAM,SAAS,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;wBAC5I,MAAM,GAAG,GAAwB,EAAE,CAAC;wBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACpC,MAAM,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;4BAC3C,IAAI,CAAC,KAAK,OAAO;gCAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACrC,CAAC;wBACD,IAAI,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;4BAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;wBACvF,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;wBACnC,CAAC,EAAE,CAAC;wBACJ,SAAS;oBACX,CAAC;oBAED,0BAA0B;oBAC1B,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,kBAAkB,CAAC,CAAC;oBAC3G,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;oBACjF,4CAA4C;oBAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;wBACtC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;oBAC7C,CAAC;oBACD,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBAChC,CAAC,IAAI,QAAQ,CAAC;oBACd,SAAS;gBACX,CAAC;gBAED,0CAA0C;gBAC1C,IAAI,WAAW,GAAG,KAAK,CAAC;gBACxB,IAAI,eAAe,GAAG,EAAE,CAAC;gBACzB,OAAO,SAAS,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC;oBACzC,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;oBAC5C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;wBACrC,eAAe,GAAG,SAAS,CAAC;wBAC5B,WAAW,GAAG,IAAI,CAAC;wBACnB,MAAM;oBACR,CAAC;oBACD,SAAS,EAAE,CAAC;gBACd,CAAC;gBACD,IAAI,CAAC,WAAW;oBAAE,MAAM;gBAExB,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,eAAe,CAAE,CAAC;gBAChD,MAAM,UAAU,GAAG,qBAAqB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACxD,IAAI,UAAU,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM;oBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,eAAe,aAAa,GAAG,CAAC,MAAM,SAAS,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;gBACpJ,MAAM,GAAG,GAAwB,EAAE,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpC,MAAM,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oBAC3C,IAAI,CAAC,KAAK,OAAO;wBAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACrC,CAAC;gBACD,gBAAgB,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;gBAC3C,SAAS,EAAE,CAAC;gBACZ,CAAC,EAAE,CAAC;YACN,CAAC;YAED,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;gBAC7B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;YAC5E,CAAC;YAED,0EAA0E;YAC1E,uEAAuE;YACvE,6BAA6B;YAC7B,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBACrB,IAAI,WAAW,GAAkB,IAAI,CAAC;gBACtC,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5C,WAAW,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClE,CAAC;gBACD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;oBACzB,IAAI,OAAO,GAAG,WAAW,CAAC;oBAC1B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC1D,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC7B,CAAC;oBACD,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAClC,MAAM,CAAC,QAAQ,CAAC,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;wBACjD,IAAI,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACnC,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;wBACvD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,MAAM,GAAG,GAAwB,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,SAAS;YACnC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAC,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAAC,SAAS;YAAC,CAAC;YAChE,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAC,GAAG,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAAC,SAAS;YAAC,CAAC;QAC9E,CAAC;QAED,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YACrE,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACb,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,IAAI,aAAa,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,aAAa;YAAE,MAAM;IAChE,CAAC;IACD,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAAC,CAAC,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YACxC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACpB,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACrD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QACD,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACpB,CAAC;AAED,uIAAuI;AACvI,SAAS,eAAe,CAAC,KAAe,EAAE,OAAe,EAAE,IAAY,EAAE,KAAa,EAAE,aAAoC;IAC1H,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;IAE3C,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,YAAY,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QAErD,mCAAmC;QACnC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,YAAY,GAAoB,IAAI,CAAC;YACzC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC;oBAAC,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACpF,CAAC;YACD,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YAC/E,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC7C,CAAC;QAED,+DAA+D;QAC/D,MAAM,mBAAmB,GAAG,SAAS,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QAC9D,IAAI,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,mBAAmB,KAAK,GAAG,EAAE,CAAC;YACxE,mDAAmD;YACnD,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YAC/E,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,iDAAiD;QACjD,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;YAClD,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;YACf,IAAI,QAAQ,KAAK,GAAG;gBAAE,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACrD,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAE5C,gEAAgE;YAChE,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,SAAS,GAAG,IAAI,CAAC;YACrB,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC3B,IAAI,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;gBACjC,IAAI,KAAK,GAAG,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC1F,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAS,GAAG,KAAK,CAAC;YACjE,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;gBAChF,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK;oBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAClH,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAe,EAAE,KAAa,EAAE,KAAa;IACtE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAU,EAAE,CAAC;IACxB,IAAI,CAAC,GAAG,KAAK,CAAC;IAEd,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1F,IAAI,OAAO,KAAK,IAAI;YAAE,MAAM;QAC5B,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,MAAM;QAClE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,MAAM;QAEpC,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,EAAE,GAAG,CAAC;YAAE,MAAM;QAElB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,MAAM,UAAU,KAAK,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAErC,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YAChD,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAwB,EAAE,CAAC;YACvC,CAAC,EAAE,CAAC;YACJ,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC9D,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC,IAAI,QAAQ,CAAC;YACd,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,oBAAoB,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC1E,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC,IAAI,QAAQ,CAAC;YACd,SAAS;QACX,CAAC;QACD,MAAM;IACR,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,IAAI,CAAC,KAAK,GAAG;QAAE,OAAO,CAAC,CAAC;IACxB,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACtE,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1B,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACxE,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,qBAAqB,CAAC,WAAmB,EAAE,aAAqB,EAAE,YAAsB;IAC/F,iDAAiD;IACjD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM;QAAC,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,SAAS,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,CAAC,MAAM,sBAAsB,aAAa,oBAAoB,CAAC,CAAC;IAC1H,CAAC;IAED,2CAA2C;IAC3C,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,IAAI,UAAU;gBAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChD,UAAU,GAAG,IAAI,CAAC;YAClB,YAAY,GAAG,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,UAAU,EAAE,CAAC;gBAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAAC,UAAU,GAAG,KAAK,CAAC;YAAC,CAAC;YACxE,SAAS;QACX,CAAC;QACD,IAAI,UAAU,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACvE,YAAY,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IACD,IAAI,UAAU;QAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9F,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,IAAI,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,aAAa,QAAQ,uBAAuB,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"decode_generic.js","sourceRoot":"","sources":["../src/decode_generic.ts"],"names":[],"mappings":"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"}
|
package/dist/generic.d.ts
CHANGED
|
@@ -1,2 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
/** Options for controlling generic encoding behavior. */
|
|
2
|
+
export interface GenericOptions {
|
|
3
|
+
/** When true, disables promotion of fixed-shape nested objects to path
|
|
4
|
+
* columns (e.g. "customer>name"). Nested objects use attachment syntax
|
|
5
|
+
* instead. Set when targeting open-weight models that show lower
|
|
6
|
+
* comprehension on flattened encoding. */
|
|
7
|
+
noFlatten?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function encodeGeneric(data: unknown, opts?: GenericOptions): string;
|
|
2
10
|
//# sourceMappingURL=generic.d.ts.map
|
package/dist/generic.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../src/generic.ts"],"names":[],"mappings":"AASA,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../src/generic.ts"],"names":[],"mappings":"AASA,yDAAyD;AACzD,MAAM,WAAW,cAAc;IAC7B;;;+CAG2C;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,MAAM,CAI1E"}
|
package/dist/generic.js
CHANGED
|
@@ -5,32 +5,32 @@ import { formatScalar, formatKey } from './scalar.js';
|
|
|
5
5
|
function indent(depth) {
|
|
6
6
|
return ' '.repeat(depth);
|
|
7
7
|
}
|
|
8
|
-
export function encodeGeneric(data) {
|
|
8
|
+
export function encodeGeneric(data, opts) {
|
|
9
9
|
let out = 'GCF profile=generic\n';
|
|
10
|
-
out += encodeRootValue(data);
|
|
10
|
+
out += encodeRootValue(data, opts);
|
|
11
11
|
return out;
|
|
12
12
|
}
|
|
13
|
-
function encodeRootValue(v) {
|
|
13
|
+
function encodeRootValue(v, opts) {
|
|
14
14
|
if (v === null || v === undefined)
|
|
15
15
|
return '=-\n';
|
|
16
16
|
if (Array.isArray(v))
|
|
17
|
-
return encodeRootArray(v);
|
|
17
|
+
return encodeRootArray(v, opts);
|
|
18
18
|
if (typeof v === 'object')
|
|
19
|
-
return encodeObject(v, 0);
|
|
19
|
+
return encodeObject(v, 0, opts);
|
|
20
20
|
return `=${formatScalar(v, 0)}\n`;
|
|
21
21
|
}
|
|
22
|
-
function encodeObject(obj, depth) {
|
|
22
|
+
function encodeObject(obj, depth, opts) {
|
|
23
23
|
const prefix = indent(depth);
|
|
24
24
|
let out = '';
|
|
25
25
|
for (const key of Object.keys(obj)) {
|
|
26
26
|
const value = obj[key];
|
|
27
27
|
const fk = formatKey(key);
|
|
28
28
|
if (Array.isArray(value)) {
|
|
29
|
-
out += encodeNamedArray(fk, value, depth);
|
|
29
|
+
out += encodeNamedArray(fk, value, depth, opts);
|
|
30
30
|
}
|
|
31
31
|
else if (typeof value === 'object' && value !== null) {
|
|
32
32
|
out += `${prefix}## ${fk}\n`;
|
|
33
|
-
out += encodeObject(value, depth + 1);
|
|
33
|
+
out += encodeObject(value, depth + 1, opts);
|
|
34
34
|
}
|
|
35
35
|
else {
|
|
36
36
|
out += `${prefix}${fk}=${formatScalar(value, 0)}\n`;
|
|
@@ -38,7 +38,7 @@ function encodeObject(obj, depth) {
|
|
|
38
38
|
}
|
|
39
39
|
return out;
|
|
40
40
|
}
|
|
41
|
-
function encodeRootArray(arr) {
|
|
41
|
+
function encodeRootArray(arr, opts) {
|
|
42
42
|
if (arr.length === 0)
|
|
43
43
|
return '## [0]\n';
|
|
44
44
|
if (allPrimitives(arr)) {
|
|
@@ -47,10 +47,10 @@ function encodeRootArray(arr) {
|
|
|
47
47
|
}
|
|
48
48
|
const fields = tabularFields(arr);
|
|
49
49
|
if (fields)
|
|
50
|
-
return encodeTabular('## ', arr, fields, 0);
|
|
51
|
-
return encodeExpanded('## ', arr, 0);
|
|
50
|
+
return encodeTabular('## ', arr, fields, 0, opts);
|
|
51
|
+
return encodeExpanded('## ', arr, 0, opts);
|
|
52
52
|
}
|
|
53
|
-
function encodeNamedArray(name, arr, depth) {
|
|
53
|
+
function encodeNamedArray(name, arr, depth, opts) {
|
|
54
54
|
const prefix = indent(depth);
|
|
55
55
|
if (arr.length === 0)
|
|
56
56
|
return `${prefix}## ${name} [0]\n`;
|
|
@@ -60,8 +60,8 @@ function encodeNamedArray(name, arr, depth) {
|
|
|
60
60
|
}
|
|
61
61
|
const fields = tabularFields(arr);
|
|
62
62
|
if (fields)
|
|
63
|
-
return encodeTabular(`${prefix}## ${name} `, arr, fields, depth);
|
|
64
|
-
return encodeExpanded(`${prefix}## ${name} `, arr, depth);
|
|
63
|
+
return encodeTabular(`${prefix}## ${name} `, arr, fields, depth, opts);
|
|
64
|
+
return encodeExpanded(`${prefix}## ${name} `, arr, depth, opts);
|
|
65
65
|
}
|
|
66
66
|
function tabularFields(arr) {
|
|
67
67
|
if (arr.length === 0)
|
|
@@ -163,6 +163,9 @@ function sharedArraySchema(arr, fieldName) {
|
|
|
163
163
|
return canonicalFields;
|
|
164
164
|
}
|
|
165
165
|
function analyzeFlattenable(arr, fieldName, parentPath) {
|
|
166
|
+
// Field names containing ">" cannot be flattened (would create ambiguous paths).
|
|
167
|
+
if (fieldName.includes('>'))
|
|
168
|
+
return null;
|
|
166
169
|
let canonicalShape = null;
|
|
167
170
|
for (const item of arr) {
|
|
168
171
|
const obj = item;
|
|
@@ -270,18 +273,31 @@ function resolveKeyChain(item, keys) {
|
|
|
270
273
|
return { value: current, exists: true };
|
|
271
274
|
}
|
|
272
275
|
// ── End flattening helpers ───────────────────────────────────────────────
|
|
273
|
-
function encodeTabular(headerPrefix, arr, fields, depth) {
|
|
276
|
+
function encodeTabular(headerPrefix, arr, fields, depth, opts) {
|
|
274
277
|
const prefix = indent(depth);
|
|
275
278
|
// Phase 0: Analyze fields for flattening.
|
|
276
279
|
const flattenMap = new Map();
|
|
280
|
+
if (!opts?.noFlatten) {
|
|
281
|
+
for (const f of fields) {
|
|
282
|
+
const leaves = analyzeFlattenable(arr, f, '');
|
|
283
|
+
if (leaves && leaves.length > 0) {
|
|
284
|
+
flattenMap.set(f, leaves);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
// Fields whose names contain ">" must not appear as tabular columns
|
|
289
|
+
// because the decoder would interpret them as flattened path columns.
|
|
290
|
+
// Track them for per-row attachment emission (spec rule 7.4.6.1.4).
|
|
291
|
+
const gtFields = new Set();
|
|
277
292
|
for (const f of fields) {
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
flattenMap.set(f, leaves);
|
|
293
|
+
if (!flattenMap.has(f) && f.includes('>')) {
|
|
294
|
+
gtFields.add(f);
|
|
281
295
|
}
|
|
282
296
|
}
|
|
283
297
|
const columns = [];
|
|
284
298
|
for (const f of fields) {
|
|
299
|
+
if (gtFields.has(f))
|
|
300
|
+
continue;
|
|
285
301
|
const leaves = flattenMap.get(f);
|
|
286
302
|
if (leaves) {
|
|
287
303
|
for (const leaf of leaves) {
|
|
@@ -292,6 +308,10 @@ function encodeTabular(headerPrefix, arr, fields, depth) {
|
|
|
292
308
|
columns.push({ headerName: formatKey(f), colType: 'original', field: f, keys: [] });
|
|
293
309
|
}
|
|
294
310
|
}
|
|
311
|
+
// If all fields were excluded (all contain ">"), fall back to expanded.
|
|
312
|
+
if (columns.length === 0) {
|
|
313
|
+
return encodeExpanded(headerPrefix, arr, depth, opts);
|
|
314
|
+
}
|
|
295
315
|
// Pre-compute inline schemas and shared array schemas (skip flattened fields).
|
|
296
316
|
const inlineSchemas = new Map();
|
|
297
317
|
const sharedArrSchemas = new Map();
|
|
@@ -372,6 +392,16 @@ function encodeTabular(headerPrefix, arr, fields, depth) {
|
|
|
372
392
|
cells.push(formatScalar(v, 0x7c));
|
|
373
393
|
}
|
|
374
394
|
}
|
|
395
|
+
// Emit fields with ">" in their names as per-row attachments.
|
|
396
|
+
for (const f of fields) {
|
|
397
|
+
if (!gtFields.has(f))
|
|
398
|
+
continue;
|
|
399
|
+
const obj = arr[i];
|
|
400
|
+
if (!(f in obj))
|
|
401
|
+
continue;
|
|
402
|
+
rowHasAttachment = true;
|
|
403
|
+
attachments.push({ name: f, value: obj[f], inline: false });
|
|
404
|
+
}
|
|
375
405
|
const row = cells.join('|');
|
|
376
406
|
if (rowHasAttachment) {
|
|
377
407
|
out += `${prefix}@${i} ${row}\n`;
|
|
@@ -395,21 +425,30 @@ function encodeTabular(headerPrefix, arr, fields, depth) {
|
|
|
395
425
|
// Shared array schema: omit {fields} on subsequent rows.
|
|
396
426
|
const sas = sharedArrSchemas.get(att.name);
|
|
397
427
|
if (sas && i > 0) {
|
|
398
|
-
out += encodeAttachmentArrayShared(prefix, fk, att.value, depth + 2, sas);
|
|
428
|
+
out += encodeAttachmentArrayShared(prefix, fk, att.value, depth + 2, sas, opts);
|
|
399
429
|
}
|
|
400
430
|
else {
|
|
401
|
-
out += encodeAttachmentArray(prefix, fk, att.value, depth + 2);
|
|
431
|
+
out += encodeAttachmentArray(prefix, fk, att.value, depth + 2, opts);
|
|
402
432
|
}
|
|
403
433
|
}
|
|
404
|
-
else {
|
|
434
|
+
else if (typeof att.value === 'object' && att.value !== null) {
|
|
405
435
|
out += `${prefix}.${fk} {}\n`;
|
|
406
|
-
out += encodeObject(att.value, depth + 2);
|
|
436
|
+
out += encodeObject(att.value, depth + 2, opts);
|
|
437
|
+
}
|
|
438
|
+
else {
|
|
439
|
+
// Scalar attachment (e.g. field names containing ">").
|
|
440
|
+
if (att.value === null || att.value === undefined) {
|
|
441
|
+
out += `${prefix}.${fk} =-\n`;
|
|
442
|
+
}
|
|
443
|
+
else {
|
|
444
|
+
out += `${prefix}.${fk} =${formatScalar(att.value, 0)}\n`;
|
|
445
|
+
}
|
|
407
446
|
}
|
|
408
447
|
}
|
|
409
448
|
}
|
|
410
449
|
return out;
|
|
411
450
|
}
|
|
412
|
-
function encodeAttachmentArray(attPrefix, fk, arr, depth) {
|
|
451
|
+
function encodeAttachmentArray(attPrefix, fk, arr, depth, opts) {
|
|
413
452
|
if (arr.length === 0)
|
|
414
453
|
return `${attPrefix}.${fk} [0]\n`;
|
|
415
454
|
if (allPrimitives(arr)) {
|
|
@@ -418,10 +457,10 @@ function encodeAttachmentArray(attPrefix, fk, arr, depth) {
|
|
|
418
457
|
}
|
|
419
458
|
const fields = tabularFields(arr);
|
|
420
459
|
if (fields)
|
|
421
|
-
return encodeTabular(`${attPrefix}.${fk} `, arr, fields, depth);
|
|
422
|
-
return encodeExpanded(`${attPrefix}.${fk} `, arr, depth);
|
|
460
|
+
return encodeTabular(`${attPrefix}.${fk} `, arr, fields, depth, opts);
|
|
461
|
+
return encodeExpanded(`${attPrefix}.${fk} `, arr, depth, opts);
|
|
423
462
|
}
|
|
424
|
-
function encodeAttachmentArrayShared(attPrefix, fk, arr, depth, sharedFields) {
|
|
463
|
+
function encodeAttachmentArrayShared(attPrefix, fk, arr, depth, sharedFields, opts) {
|
|
425
464
|
if (arr.length === 0)
|
|
426
465
|
return `${attPrefix}.${fk} [0]\n`;
|
|
427
466
|
if (allPrimitives(arr)) {
|
|
@@ -448,19 +487,19 @@ function encodeAttachmentArrayShared(attPrefix, fk, arr, depth, sharedFields) {
|
|
|
448
487
|
return out;
|
|
449
488
|
}
|
|
450
489
|
// Fields don't match: fall back to full encoding.
|
|
451
|
-
return encodeAttachmentArray(attPrefix, fk, arr, depth);
|
|
490
|
+
return encodeAttachmentArray(attPrefix, fk, arr, depth, opts);
|
|
452
491
|
}
|
|
453
|
-
function encodeExpanded(headerPrefix, arr, depth) {
|
|
492
|
+
function encodeExpanded(headerPrefix, arr, depth, opts) {
|
|
454
493
|
const prefix = indent(depth);
|
|
455
494
|
let out = `${headerPrefix}[${arr.length}]\n`;
|
|
456
495
|
for (let i = 0; i < arr.length; i++) {
|
|
457
496
|
const item = arr[i];
|
|
458
497
|
if (Array.isArray(item)) {
|
|
459
|
-
out += encodeExpandedArrayItem(prefix, i, item, depth);
|
|
498
|
+
out += encodeExpandedArrayItem(prefix, i, item, depth, opts);
|
|
460
499
|
}
|
|
461
500
|
else if (typeof item === 'object' && item !== null) {
|
|
462
501
|
out += `${prefix}@${i} {}\n`;
|
|
463
|
-
out += encodeObject(item, depth + 1);
|
|
502
|
+
out += encodeObject(item, depth + 1, opts);
|
|
464
503
|
}
|
|
465
504
|
else {
|
|
466
505
|
out += `${prefix}@${i} =${formatScalar(item, 0)}\n`;
|
|
@@ -468,7 +507,7 @@ function encodeExpanded(headerPrefix, arr, depth) {
|
|
|
468
507
|
}
|
|
469
508
|
return out;
|
|
470
509
|
}
|
|
471
|
-
function encodeExpandedArrayItem(prefix, idx, arr, depth) {
|
|
510
|
+
function encodeExpandedArrayItem(prefix, idx, arr, depth, opts) {
|
|
472
511
|
if (arr.length === 0)
|
|
473
512
|
return `${prefix}@${idx} [0]\n`;
|
|
474
513
|
if (allPrimitives(arr)) {
|
|
@@ -477,8 +516,8 @@ function encodeExpandedArrayItem(prefix, idx, arr, depth) {
|
|
|
477
516
|
}
|
|
478
517
|
const fields = tabularFields(arr);
|
|
479
518
|
if (fields)
|
|
480
|
-
return encodeTabular(`${prefix}@${idx} `, arr, fields, depth + 1);
|
|
481
|
-
return encodeExpanded(`${prefix}@${idx} `, arr, depth + 1);
|
|
519
|
+
return encodeTabular(`${prefix}@${idx} `, arr, fields, depth + 1, opts);
|
|
520
|
+
return encodeExpanded(`${prefix}@${idx} `, arr, depth + 1, opts);
|
|
482
521
|
}
|
|
483
522
|
function allPrimitives(arr) {
|
|
484
523
|
return arr.every(v => typeof v !== 'object' || v === null);
|
package/dist/generic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../src/generic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../src/generic.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export { encode } from './encode.js';
|
|
|
4
4
|
export { decode } from './decode.js';
|
|
5
5
|
export { Session, encodeWithSession } from './session.js';
|
|
6
6
|
export { encodeDelta, verifyDelta } from './delta.js';
|
|
7
|
-
export { encodeGeneric } from './generic.js';
|
|
7
|
+
export { encodeGeneric, type GenericOptions } from './generic.js';
|
|
8
8
|
export { decodeGeneric } from './decode_generic.js';
|
|
9
9
|
export { formatScalar, formatKey, parseScalar, needsQuote, quoteString } from './scalar.js';
|
|
10
10
|
export { StreamEncoder, type StreamWriter, type StreamOptions } from './stream.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtD,sIAAsI;AACtI,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtD,sIAAsI;AACtI,OAAO,EAAE,aAAa,EAAuB,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAyC,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blackwell-systems/gcf",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.1",
|
|
4
4
|
"description": "The AI-native wire format for structured data. 50-92% fewer tokens than JSON. 100% comprehension on every frontier model. Zero dependencies.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
package/src/decode_generic.ts
CHANGED
|
@@ -316,7 +316,12 @@ function parseTabularBody(lines: string[], start: number, depth: number, fields:
|
|
|
316
316
|
const pathColumnMap = new Map<string, string[]>();
|
|
317
317
|
for (const f of fields) {
|
|
318
318
|
if (f.includes('>')) {
|
|
319
|
-
|
|
319
|
+
const parts = f.split('>');
|
|
320
|
+
// Only treat as a path column if all segments are non-empty.
|
|
321
|
+
// A literal key like ">" would split into ["", ""].
|
|
322
|
+
if (parts.every(p => p.length > 0)) {
|
|
323
|
+
pathColumnMap.set(f, parts);
|
|
324
|
+
}
|
|
320
325
|
}
|
|
321
326
|
}
|
|
322
327
|
|
|
@@ -416,10 +421,10 @@ function parseTabularBody(lines: string[], start: number, depth: number, fields:
|
|
|
416
421
|
const allAttFields = [...traditionalAttFields, ...inlineAttFields];
|
|
417
422
|
const attachmentValues = new Map<string, any>();
|
|
418
423
|
|
|
419
|
-
if (rowHasID
|
|
424
|
+
if (rowHasID) {
|
|
420
425
|
let inlineIdx = 0;
|
|
421
426
|
|
|
422
|
-
while (i < lines.length
|
|
427
|
+
while (i < lines.length) {
|
|
423
428
|
const aLine = lines[i];
|
|
424
429
|
let aContent: string | null = null;
|
|
425
430
|
if (depth === 0 || aLine.startsWith(ind)) {
|
|
@@ -531,12 +536,9 @@ function parseTabularBody(lines: string[], start: number, depth: number, fields:
|
|
|
531
536
|
if (attachmentValues.has(f)) { row[f] = attachmentValues.get(f); continue; }
|
|
532
537
|
}
|
|
533
538
|
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
if (
|
|
537
|
-
const peek = lines[i].slice(attIndent.length);
|
|
538
|
-
if (peek.startsWith('.')) throw new Error(`orphan_attachment: ${peek}`);
|
|
539
|
-
}
|
|
539
|
+
// Also add any orphan attachment values (fields excluded from column list, e.g. ">" fields).
|
|
540
|
+
for (const [k, v] of attachmentValues) {
|
|
541
|
+
if (!(k in row)) row[k] = v;
|
|
540
542
|
}
|
|
541
543
|
|
|
542
544
|
// Unflatten path columns into nested objects.
|
|
@@ -633,6 +635,14 @@ function parseAttachment(lines: string[], lineIdx: number, rest: string, depth:
|
|
|
633
635
|
return [name, arr, consumed, null];
|
|
634
636
|
}
|
|
635
637
|
|
|
638
|
+
// Scalar: =value (field names containing ">" excluded from tabular columns).
|
|
639
|
+
if (afterName.startsWith('=')) {
|
|
640
|
+
const valStr = afterName.slice(1);
|
|
641
|
+
const parsed = parseScalar(valStr, true);
|
|
642
|
+
if (parsed === MISSING) return [name, null, 1, null];
|
|
643
|
+
return [name, parsed, 1, null];
|
|
644
|
+
}
|
|
645
|
+
|
|
636
646
|
throw new Error(`invalid attachment form: ${afterName}`);
|
|
637
647
|
}
|
|
638
648
|
|
package/src/generic.ts
CHANGED
|
@@ -7,30 +7,39 @@ function indent(depth: number): string {
|
|
|
7
7
|
return ' '.repeat(depth);
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
/** Options for controlling generic encoding behavior. */
|
|
11
|
+
export interface GenericOptions {
|
|
12
|
+
/** When true, disables promotion of fixed-shape nested objects to path
|
|
13
|
+
* columns (e.g. "customer>name"). Nested objects use attachment syntax
|
|
14
|
+
* instead. Set when targeting open-weight models that show lower
|
|
15
|
+
* comprehension on flattened encoding. */
|
|
16
|
+
noFlatten?: boolean;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function encodeGeneric(data: unknown, opts?: GenericOptions): string {
|
|
11
20
|
let out = 'GCF profile=generic\n';
|
|
12
|
-
out += encodeRootValue(data);
|
|
21
|
+
out += encodeRootValue(data, opts);
|
|
13
22
|
return out;
|
|
14
23
|
}
|
|
15
24
|
|
|
16
|
-
function encodeRootValue(v: unknown): string {
|
|
25
|
+
function encodeRootValue(v: unknown, opts?: GenericOptions): string {
|
|
17
26
|
if (v === null || v === undefined) return '=-\n';
|
|
18
|
-
if (Array.isArray(v)) return encodeRootArray(v);
|
|
19
|
-
if (typeof v === 'object') return encodeObject(v as Record<string, unknown>, 0);
|
|
27
|
+
if (Array.isArray(v)) return encodeRootArray(v, opts);
|
|
28
|
+
if (typeof v === 'object') return encodeObject(v as Record<string, unknown>, 0, opts);
|
|
20
29
|
return `=${formatScalar(v, 0)}\n`;
|
|
21
30
|
}
|
|
22
31
|
|
|
23
|
-
function encodeObject(obj: Record<string, unknown>, depth: number): string {
|
|
32
|
+
function encodeObject(obj: Record<string, unknown>, depth: number, opts?: GenericOptions): string {
|
|
24
33
|
const prefix = indent(depth);
|
|
25
34
|
let out = '';
|
|
26
35
|
for (const key of Object.keys(obj)) {
|
|
27
36
|
const value = obj[key];
|
|
28
37
|
const fk = formatKey(key);
|
|
29
38
|
if (Array.isArray(value)) {
|
|
30
|
-
out += encodeNamedArray(fk, value, depth);
|
|
39
|
+
out += encodeNamedArray(fk, value, depth, opts);
|
|
31
40
|
} else if (typeof value === 'object' && value !== null) {
|
|
32
41
|
out += `${prefix}## ${fk}\n`;
|
|
33
|
-
out += encodeObject(value as Record<string, unknown>, depth + 1);
|
|
42
|
+
out += encodeObject(value as Record<string, unknown>, depth + 1, opts);
|
|
34
43
|
} else {
|
|
35
44
|
out += `${prefix}${fk}=${formatScalar(value, 0)}\n`;
|
|
36
45
|
}
|
|
@@ -38,18 +47,18 @@ function encodeObject(obj: Record<string, unknown>, depth: number): string {
|
|
|
38
47
|
return out;
|
|
39
48
|
}
|
|
40
49
|
|
|
41
|
-
function encodeRootArray(arr: unknown[]): string {
|
|
50
|
+
function encodeRootArray(arr: unknown[], opts?: GenericOptions): string {
|
|
42
51
|
if (arr.length === 0) return '## [0]\n';
|
|
43
52
|
if (allPrimitives(arr)) {
|
|
44
53
|
const vals = arr.map(v => formatScalar(v, 0x2c));
|
|
45
54
|
return `## [${arr.length}]: ${vals.join(',')}\n`;
|
|
46
55
|
}
|
|
47
56
|
const fields = tabularFields(arr);
|
|
48
|
-
if (fields) return encodeTabular('## ', arr, fields, 0);
|
|
49
|
-
return encodeExpanded('## ', arr, 0);
|
|
57
|
+
if (fields) return encodeTabular('## ', arr, fields, 0, opts);
|
|
58
|
+
return encodeExpanded('## ', arr, 0, opts);
|
|
50
59
|
}
|
|
51
60
|
|
|
52
|
-
function encodeNamedArray(name: string, arr: unknown[], depth: number): string {
|
|
61
|
+
function encodeNamedArray(name: string, arr: unknown[], depth: number, opts?: GenericOptions): string {
|
|
53
62
|
const prefix = indent(depth);
|
|
54
63
|
if (arr.length === 0) return `${prefix}## ${name} [0]\n`;
|
|
55
64
|
if (allPrimitives(arr)) {
|
|
@@ -57,8 +66,8 @@ function encodeNamedArray(name: string, arr: unknown[], depth: number): string {
|
|
|
57
66
|
return `${prefix}${name}[${arr.length}]: ${vals.join(',')}\n`;
|
|
58
67
|
}
|
|
59
68
|
const fields = tabularFields(arr);
|
|
60
|
-
if (fields) return encodeTabular(`${prefix}## ${name} `, arr, fields, depth);
|
|
61
|
-
return encodeExpanded(`${prefix}## ${name} `, arr, depth);
|
|
69
|
+
if (fields) return encodeTabular(`${prefix}## ${name} `, arr, fields, depth, opts);
|
|
70
|
+
return encodeExpanded(`${prefix}## ${name} `, arr, depth, opts);
|
|
62
71
|
}
|
|
63
72
|
|
|
64
73
|
function tabularFields(arr: unknown[]): string[] | null {
|
|
@@ -149,6 +158,8 @@ interface FlatLeaf {
|
|
|
149
158
|
}
|
|
150
159
|
|
|
151
160
|
function analyzeFlattenable(arr: unknown[], fieldName: string, parentPath: string): FlatLeaf[] | null {
|
|
161
|
+
// Field names containing ">" cannot be flattened (would create ambiguous paths).
|
|
162
|
+
if (fieldName.includes('>')) return null;
|
|
152
163
|
let canonicalShape: Record<string, 'scalar' | 'nested'> | null = null;
|
|
153
164
|
|
|
154
165
|
for (const item of arr) {
|
|
@@ -244,15 +255,27 @@ function resolveKeyChain(item: unknown, keys: string[]): { value: unknown; exist
|
|
|
244
255
|
|
|
245
256
|
// ── End flattening helpers ───────────────────────────────────────────────
|
|
246
257
|
|
|
247
|
-
function encodeTabular(headerPrefix: string, arr: unknown[], fields: string[], depth: number): string {
|
|
258
|
+
function encodeTabular(headerPrefix: string, arr: unknown[], fields: string[], depth: number, opts?: GenericOptions): string {
|
|
248
259
|
const prefix = indent(depth);
|
|
249
260
|
|
|
250
261
|
// Phase 0: Analyze fields for flattening.
|
|
251
262
|
const flattenMap = new Map<string, FlatLeaf[]>();
|
|
263
|
+
if (!opts?.noFlatten) {
|
|
264
|
+
for (const f of fields) {
|
|
265
|
+
const leaves = analyzeFlattenable(arr, f, '');
|
|
266
|
+
if (leaves && leaves.length > 0) {
|
|
267
|
+
flattenMap.set(f, leaves);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// Fields whose names contain ">" must not appear as tabular columns
|
|
273
|
+
// because the decoder would interpret them as flattened path columns.
|
|
274
|
+
// Track them for per-row attachment emission (spec rule 7.4.6.1.4).
|
|
275
|
+
const gtFields = new Set<string>();
|
|
252
276
|
for (const f of fields) {
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
flattenMap.set(f, leaves);
|
|
277
|
+
if (!flattenMap.has(f) && f.includes('>')) {
|
|
278
|
+
gtFields.add(f);
|
|
256
279
|
}
|
|
257
280
|
}
|
|
258
281
|
|
|
@@ -261,6 +284,7 @@ function encodeTabular(headerPrefix: string, arr: unknown[], fields: string[], d
|
|
|
261
284
|
interface FlatColumn { headerName: string; colType: ColType; field: string; keys: string[]; }
|
|
262
285
|
const columns: FlatColumn[] = [];
|
|
263
286
|
for (const f of fields) {
|
|
287
|
+
if (gtFields.has(f)) continue;
|
|
264
288
|
const leaves = flattenMap.get(f);
|
|
265
289
|
if (leaves) {
|
|
266
290
|
for (const leaf of leaves) {
|
|
@@ -271,6 +295,11 @@ function encodeTabular(headerPrefix: string, arr: unknown[], fields: string[], d
|
|
|
271
295
|
}
|
|
272
296
|
}
|
|
273
297
|
|
|
298
|
+
// If all fields were excluded (all contain ">"), fall back to expanded.
|
|
299
|
+
if (columns.length === 0) {
|
|
300
|
+
return encodeExpanded(headerPrefix, arr, depth, opts);
|
|
301
|
+
}
|
|
302
|
+
|
|
274
303
|
// Pre-compute inline schemas and shared array schemas (skip flattened fields).
|
|
275
304
|
const inlineSchemas = new Map<string, string[]>();
|
|
276
305
|
const sharedArrSchemas = new Map<string, string[]>();
|
|
@@ -340,6 +369,15 @@ function encodeTabular(headerPrefix: string, arr: unknown[], fields: string[], d
|
|
|
340
369
|
}
|
|
341
370
|
}
|
|
342
371
|
|
|
372
|
+
// Emit fields with ">" in their names as per-row attachments.
|
|
373
|
+
for (const f of fields) {
|
|
374
|
+
if (!gtFields.has(f)) continue;
|
|
375
|
+
const obj = arr[i] as Record<string, unknown>;
|
|
376
|
+
if (!(f in obj)) continue;
|
|
377
|
+
rowHasAttachment = true;
|
|
378
|
+
attachments.push({ name: f, value: obj[f], inline: false });
|
|
379
|
+
}
|
|
380
|
+
|
|
343
381
|
const row = cells.join('|');
|
|
344
382
|
if (rowHasAttachment) {
|
|
345
383
|
out += `${prefix}@${i} ${row}\n`;
|
|
@@ -361,31 +399,38 @@ function encodeTabular(headerPrefix: string, arr: unknown[], fields: string[], d
|
|
|
361
399
|
// Shared array schema: omit {fields} on subsequent rows.
|
|
362
400
|
const sas = sharedArrSchemas.get(att.name);
|
|
363
401
|
if (sas && i > 0) {
|
|
364
|
-
out += encodeAttachmentArrayShared(prefix, fk, att.value as unknown[], depth + 2, sas);
|
|
402
|
+
out += encodeAttachmentArrayShared(prefix, fk, att.value as unknown[], depth + 2, sas, opts);
|
|
365
403
|
} else {
|
|
366
|
-
out += encodeAttachmentArray(prefix, fk, att.value as unknown[], depth + 2);
|
|
404
|
+
out += encodeAttachmentArray(prefix, fk, att.value as unknown[], depth + 2, opts);
|
|
367
405
|
}
|
|
368
|
-
} else {
|
|
406
|
+
} else if (typeof att.value === 'object' && att.value !== null) {
|
|
369
407
|
out += `${prefix}.${fk} {}\n`;
|
|
370
|
-
out += encodeObject(att.value as Record<string, unknown>, depth + 2);
|
|
408
|
+
out += encodeObject(att.value as Record<string, unknown>, depth + 2, opts);
|
|
409
|
+
} else {
|
|
410
|
+
// Scalar attachment (e.g. field names containing ">").
|
|
411
|
+
if (att.value === null || att.value === undefined) {
|
|
412
|
+
out += `${prefix}.${fk} =-\n`;
|
|
413
|
+
} else {
|
|
414
|
+
out += `${prefix}.${fk} =${formatScalar(att.value, 0)}\n`;
|
|
415
|
+
}
|
|
371
416
|
}
|
|
372
417
|
}
|
|
373
418
|
}
|
|
374
419
|
return out;
|
|
375
420
|
}
|
|
376
421
|
|
|
377
|
-
function encodeAttachmentArray(attPrefix: string, fk: string, arr: unknown[], depth: number): string {
|
|
422
|
+
function encodeAttachmentArray(attPrefix: string, fk: string, arr: unknown[], depth: number, opts?: GenericOptions): string {
|
|
378
423
|
if (arr.length === 0) return `${attPrefix}.${fk} [0]\n`;
|
|
379
424
|
if (allPrimitives(arr)) {
|
|
380
425
|
const vals = arr.map(v => formatScalar(v, 0x2c));
|
|
381
426
|
return `${attPrefix}.${fk} [${arr.length}]: ${vals.join(',')}\n`;
|
|
382
427
|
}
|
|
383
428
|
const fields = tabularFields(arr);
|
|
384
|
-
if (fields) return encodeTabular(`${attPrefix}.${fk} `, arr, fields, depth);
|
|
385
|
-
return encodeExpanded(`${attPrefix}.${fk} `, arr, depth);
|
|
429
|
+
if (fields) return encodeTabular(`${attPrefix}.${fk} `, arr, fields, depth, opts);
|
|
430
|
+
return encodeExpanded(`${attPrefix}.${fk} `, arr, depth, opts);
|
|
386
431
|
}
|
|
387
432
|
|
|
388
|
-
function encodeAttachmentArrayShared(attPrefix: string, fk: string, arr: unknown[], depth: number, sharedFields: string[]): string {
|
|
433
|
+
function encodeAttachmentArrayShared(attPrefix: string, fk: string, arr: unknown[], depth: number, sharedFields: string[], opts?: GenericOptions): string {
|
|
389
434
|
if (arr.length === 0) return `${attPrefix}.${fk} [0]\n`;
|
|
390
435
|
if (allPrimitives(arr)) {
|
|
391
436
|
const vals = arr.map(v => formatScalar(v, 0x2c));
|
|
@@ -409,19 +454,19 @@ function encodeAttachmentArrayShared(attPrefix: string, fk: string, arr: unknown
|
|
|
409
454
|
return out;
|
|
410
455
|
}
|
|
411
456
|
// Fields don't match: fall back to full encoding.
|
|
412
|
-
return encodeAttachmentArray(attPrefix, fk, arr, depth);
|
|
457
|
+
return encodeAttachmentArray(attPrefix, fk, arr, depth, opts);
|
|
413
458
|
}
|
|
414
459
|
|
|
415
|
-
function encodeExpanded(headerPrefix: string, arr: unknown[], depth: number): string {
|
|
460
|
+
function encodeExpanded(headerPrefix: string, arr: unknown[], depth: number, opts?: GenericOptions): string {
|
|
416
461
|
const prefix = indent(depth);
|
|
417
462
|
let out = `${headerPrefix}[${arr.length}]\n`;
|
|
418
463
|
for (let i = 0; i < arr.length; i++) {
|
|
419
464
|
const item = arr[i];
|
|
420
465
|
if (Array.isArray(item)) {
|
|
421
|
-
out += encodeExpandedArrayItem(prefix, i, item, depth);
|
|
466
|
+
out += encodeExpandedArrayItem(prefix, i, item, depth, opts);
|
|
422
467
|
} else if (typeof item === 'object' && item !== null) {
|
|
423
468
|
out += `${prefix}@${i} {}\n`;
|
|
424
|
-
out += encodeObject(item as Record<string, unknown>, depth + 1);
|
|
469
|
+
out += encodeObject(item as Record<string, unknown>, depth + 1, opts);
|
|
425
470
|
} else {
|
|
426
471
|
out += `${prefix}@${i} =${formatScalar(item, 0)}\n`;
|
|
427
472
|
}
|
|
@@ -429,15 +474,15 @@ function encodeExpanded(headerPrefix: string, arr: unknown[], depth: number): st
|
|
|
429
474
|
return out;
|
|
430
475
|
}
|
|
431
476
|
|
|
432
|
-
function encodeExpandedArrayItem(prefix: string, idx: number, arr: unknown[], depth: number): string {
|
|
477
|
+
function encodeExpandedArrayItem(prefix: string, idx: number, arr: unknown[], depth: number, opts?: GenericOptions): string {
|
|
433
478
|
if (arr.length === 0) return `${prefix}@${idx} [0]\n`;
|
|
434
479
|
if (allPrimitives(arr)) {
|
|
435
480
|
const vals = arr.map(v => formatScalar(v, 0x2c));
|
|
436
481
|
return `${prefix}@${idx} [${arr.length}]: ${vals.join(',')}\n`;
|
|
437
482
|
}
|
|
438
483
|
const fields = tabularFields(arr);
|
|
439
|
-
if (fields) return encodeTabular(`${prefix}@${idx} `, arr, fields, depth + 1);
|
|
440
|
-
return encodeExpanded(`${prefix}@${idx} `, arr, depth + 1);
|
|
484
|
+
if (fields) return encodeTabular(`${prefix}@${idx} `, arr, fields, depth + 1, opts);
|
|
485
|
+
return encodeExpanded(`${prefix}@${idx} `, arr, depth + 1, opts);
|
|
441
486
|
}
|
|
442
487
|
|
|
443
488
|
function allPrimitives(arr: unknown[]): boolean {
|
package/src/index.ts
CHANGED
|
@@ -5,7 +5,7 @@ export { decode } from './decode.js';
|
|
|
5
5
|
export { Session, encodeWithSession } from './session.js';
|
|
6
6
|
export { encodeDelta, verifyDelta } from './delta.js';
|
|
7
7
|
// packRoot is Node-only (uses crypto.createHash). Import directly: import { packRoot } from '@blackwell-systems/gcf/dist/packroot.js'
|
|
8
|
-
export { encodeGeneric } from './generic.js';
|
|
8
|
+
export { encodeGeneric, type GenericOptions } from './generic.js';
|
|
9
9
|
export { decodeGeneric } from './decode_generic.js';
|
|
10
10
|
export { formatScalar, formatKey, parseScalar, needsQuote, quoteString } from './scalar.js';
|
|
11
11
|
export { StreamEncoder, type StreamWriter, type StreamOptions } from './stream.js';
|