@dusted/anqst 1.5.0 → 1.5.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/dist/src/app.js +31 -9
- package/dist/src/base93.js +0 -72
- package/dist/src/boundary-codec-analysis.js +468 -0
- package/dist/src/boundary-codec-leaves.js +602 -0
- package/dist/src/boundary-codec-model.js +77 -0
- package/dist/src/boundary-codec-plan.js +522 -0
- package/dist/src/boundary-codec-render.js +1738 -0
- package/dist/src/boundary-codecs.js +174 -0
- package/dist/src/emit.js +580 -90
- package/dist/src/program.js +1 -1
- package/package.json +2 -2
- package/dist/src/codecgenerators/basecodecemitters/bigint-qint64/decoder.js +0 -35
- package/dist/src/codecgenerators/basecodecemitters/bigint-qint64/encoder.js +0 -36
- package/dist/src/codecgenerators/basecodecemitters/bigint-quint64/decoder.js +0 -26
- package/dist/src/codecgenerators/basecodecemitters/bigint-quint64/encoder.js +0 -38
- package/dist/src/codecgenerators/basecodecemitters/binary-blob/decoder.js +0 -28
- package/dist/src/codecgenerators/basecodecemitters/binary-blob/encoder.js +0 -34
- package/dist/src/codecgenerators/basecodecemitters/binary-buffer/decoder.js +0 -29
- package/dist/src/codecgenerators/basecodecemitters/binary-buffer/encoder.js +0 -36
- package/dist/src/codecgenerators/basecodecemitters/binary-float32Array/decoder.js +0 -46
- package/dist/src/codecgenerators/basecodecemitters/binary-float32Array/encoder.js +0 -49
- package/dist/src/codecgenerators/basecodecemitters/binary-float64Array/decoder.js +0 -46
- package/dist/src/codecgenerators/basecodecemitters/binary-float64Array/encoder.js +0 -47
- package/dist/src/codecgenerators/basecodecemitters/binary-int16Array/decoder.js +0 -46
- package/dist/src/codecgenerators/basecodecemitters/binary-int16Array/encoder.js +0 -49
- package/dist/src/codecgenerators/basecodecemitters/binary-int32Array/decoder.js +0 -50
- package/dist/src/codecgenerators/basecodecemitters/binary-int32Array/encoder.js +0 -52
- package/dist/src/codecgenerators/basecodecemitters/binary-int8Array/decoder.js +0 -38
- package/dist/src/codecgenerators/basecodecemitters/binary-int8Array/encoder.js +0 -44
- package/dist/src/codecgenerators/basecodecemitters/binary-typedArray/decoder.js +0 -33
- package/dist/src/codecgenerators/basecodecemitters/binary-typedArray/encoder.js +0 -34
- package/dist/src/codecgenerators/basecodecemitters/binary-uint16Array/decoder.js +0 -46
- package/dist/src/codecgenerators/basecodecemitters/binary-uint16Array/encoder.js +0 -49
- package/dist/src/codecgenerators/basecodecemitters/binary-uint32Array/decoder.js +0 -46
- package/dist/src/codecgenerators/basecodecemitters/binary-uint32Array/encoder.js +0 -49
- package/dist/src/codecgenerators/basecodecemitters/binary-uint8Array/decoder.js +0 -28
- package/dist/src/codecgenerators/basecodecemitters/binary-uint8Array/encoder.js +0 -34
- package/dist/src/codecgenerators/basecodecemitters/boolean/decoder.js +0 -34
- package/dist/src/codecgenerators/basecodecemitters/boolean/encoder.js +0 -40
- package/dist/src/codecgenerators/basecodecemitters/dynamic-json/decoder.js +0 -43
- package/dist/src/codecgenerators/basecodecemitters/dynamic-json/encoder.js +0 -45
- package/dist/src/codecgenerators/basecodecemitters/dynamic-object/decoder.js +0 -44
- package/dist/src/codecgenerators/basecodecemitters/dynamic-object/encoder.js +0 -46
- package/dist/src/codecgenerators/basecodecemitters/integer-int16/decoder.js +0 -32
- package/dist/src/codecgenerators/basecodecemitters/integer-int16/encoder.js +0 -43
- package/dist/src/codecgenerators/basecodecemitters/integer-int32/decoder.js +0 -26
- package/dist/src/codecgenerators/basecodecemitters/integer-int32/encoder.js +0 -37
- package/dist/src/codecgenerators/basecodecemitters/integer-int8/decoder.js +0 -26
- package/dist/src/codecgenerators/basecodecemitters/integer-int8/encoder.js +0 -37
- package/dist/src/codecgenerators/basecodecemitters/integer-qint16/decoder.js +0 -36
- package/dist/src/codecgenerators/basecodecemitters/integer-qint16/encoder.js +0 -36
- package/dist/src/codecgenerators/basecodecemitters/integer-qint32/decoder.js +0 -25
- package/dist/src/codecgenerators/basecodecemitters/integer-qint32/encoder.js +0 -36
- package/dist/src/codecgenerators/basecodecemitters/integer-qint8/decoder.js +0 -36
- package/dist/src/codecgenerators/basecodecemitters/integer-qint8/encoder.js +0 -36
- package/dist/src/codecgenerators/basecodecemitters/integer-quint16/decoder.js +0 -26
- package/dist/src/codecgenerators/basecodecemitters/integer-quint16/encoder.js +0 -38
- package/dist/src/codecgenerators/basecodecemitters/integer-quint32/decoder.js +0 -27
- package/dist/src/codecgenerators/basecodecemitters/integer-quint32/encoder.js +0 -39
- package/dist/src/codecgenerators/basecodecemitters/integer-quint8/decoder.js +0 -26
- package/dist/src/codecgenerators/basecodecemitters/integer-quint8/encoder.js +0 -38
- package/dist/src/codecgenerators/basecodecemitters/integer-uint16/decoder.js +0 -30
- package/dist/src/codecgenerators/basecodecemitters/integer-uint16/encoder.js +0 -42
- package/dist/src/codecgenerators/basecodecemitters/integer-uint32/decoder.js +0 -31
- package/dist/src/codecgenerators/basecodecemitters/integer-uint32/encoder.js +0 -43
- package/dist/src/codecgenerators/basecodecemitters/integer-uint8/decoder.js +0 -30
- package/dist/src/codecgenerators/basecodecemitters/integer-uint8/encoder.js +0 -40
- package/dist/src/codecgenerators/basecodecemitters/number/decoder.js +0 -26
- package/dist/src/codecgenerators/basecodecemitters/number/encoder.js +0 -38
- package/dist/src/codecgenerators/basecodecemitters/shared/comments.js +0 -13
- package/dist/src/codecgenerators/basecodecemitters/shared/contracts.js +0 -2
- package/dist/src/codecgenerators/basecodecemitters/shared/fixedwidth.js +0 -53
- package/dist/src/codecgenerators/basecodecemitters/shared/index.js +0 -21
- package/dist/src/codecgenerators/basecodecemitters/shared/positionalBase93.js +0 -48
- package/dist/src/codecgenerators/basecodecemitters/shared/rawbytes.js +0 -30
- package/dist/src/codecgenerators/basecodecemitters/string/decoder.js +0 -43
- package/dist/src/codecgenerators/basecodecemitters/string/encoder.js +0 -43
- package/dist/src/codecgenerators/basecodecemitters/stringArray/decoder.js +0 -80
- package/dist/src/codecgenerators/basecodecemitters/stringArray/encoder.js +0 -57
- package/dist/src/structured-top-level-codecs.js +0 -1305
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Base codec emitter: AnQst.Type.stringArray — TypeScript/C++ decoder (standalone wire → string[] / QStringList).
|
|
4
|
-
*
|
|
5
|
-
* Standalone: if the payload is a string, it must decode to count 0 (empty array). If it is an array, the first
|
|
6
|
-
* element is the positional base93 count; the next count elements are the string values.
|
|
7
|
-
*
|
|
8
|
-
* Composite decoding is performed by the structured top-level codec: it reads the array length from blob
|
|
9
|
-
* metadata, then consumes that many consecutive strings from the flat collection (String_stringArray_Codec.md §5).
|
|
10
|
-
*/
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.decoderEmitter = exports.descriptor = void 0;
|
|
13
|
-
exports.descriptor = {
|
|
14
|
-
codecId: "stringArray",
|
|
15
|
-
specPath: "RefinedSpecs/Codecs/String_stringArray_Codec.md",
|
|
16
|
-
tsType: "string[]",
|
|
17
|
-
cppType: "QStringList",
|
|
18
|
-
wireCategory: "string-array",
|
|
19
|
-
strategySummary: "Standalone: decode first item as positional base93 count, then read that many native strings; string-only payload implies count 0. Composite: length from byte blob; strings from shared collection (structured layer)."
|
|
20
|
-
};
|
|
21
|
-
const TS_FN = "decodeStringArrayStandalone";
|
|
22
|
-
const CPP_FN = "decodeStringArrayStandalone";
|
|
23
|
-
exports.decoderEmitter = {
|
|
24
|
-
descriptor: exports.descriptor,
|
|
25
|
-
emitTsDecoder() {
|
|
26
|
-
return `function ${TS_FN}(payload) {
|
|
27
|
-
if (typeof payload === "string") {
|
|
28
|
-
var n0 = decodeBase93Count(payload);
|
|
29
|
-
if (n0 !== 0) {
|
|
30
|
-
throw new Error("stringArray standalone: string payload must encode count 0");
|
|
31
|
-
}
|
|
32
|
-
return [];
|
|
33
|
-
}
|
|
34
|
-
if (!Array.isArray(payload)) {
|
|
35
|
-
throw new Error("stringArray standalone: expected JSON string or array");
|
|
36
|
-
}
|
|
37
|
-
if (payload.length < 2) {
|
|
38
|
-
throw new Error("stringArray standalone: array payload too short");
|
|
39
|
-
}
|
|
40
|
-
var n = decodeBase93Count(String(payload[0]));
|
|
41
|
-
if (payload.length !== n + 1) {
|
|
42
|
-
throw new Error("stringArray standalone: count does not match array tail");
|
|
43
|
-
}
|
|
44
|
-
var out = new Array(n);
|
|
45
|
-
for (var i = 0; i < n; i++) {
|
|
46
|
-
var el = payload[i + 1];
|
|
47
|
-
out[i] = el == null ? "" : String(el);
|
|
48
|
-
}
|
|
49
|
-
return out;
|
|
50
|
-
}`;
|
|
51
|
-
},
|
|
52
|
-
emitCppDecoder() {
|
|
53
|
-
return `inline QStringList ${CPP_FN}(const QJsonValue& payload) {
|
|
54
|
-
if (payload.isString()) {
|
|
55
|
-
const std::uint32_t n = decodeBase93Count(payload.toString().toStdString());
|
|
56
|
-
if (n != 0u) {
|
|
57
|
-
throw std::runtime_error("stringArray standalone: string payload must encode count 0");
|
|
58
|
-
}
|
|
59
|
-
return QStringList();
|
|
60
|
-
}
|
|
61
|
-
if (!payload.isArray()) {
|
|
62
|
-
throw std::runtime_error("stringArray standalone: expected JSON string or array");
|
|
63
|
-
}
|
|
64
|
-
const QJsonArray arr = payload.toArray();
|
|
65
|
-
if (arr.size() < 2) {
|
|
66
|
-
throw std::runtime_error("stringArray standalone: array payload too short");
|
|
67
|
-
}
|
|
68
|
-
const std::uint32_t n = decodeBase93Count(arr.at(0).toString().toStdString());
|
|
69
|
-
if (arr.size() != static_cast<int>(n) + 1) {
|
|
70
|
-
throw std::runtime_error("stringArray standalone: count does not match array tail");
|
|
71
|
-
}
|
|
72
|
-
QStringList out;
|
|
73
|
-
out.reserve(static_cast<int>(n));
|
|
74
|
-
for (std::uint32_t i = 0; i < n; ++i) {
|
|
75
|
-
out.append(arr.at(static_cast<int>(i + 1)).toString());
|
|
76
|
-
}
|
|
77
|
-
return out;
|
|
78
|
-
}`;
|
|
79
|
-
}
|
|
80
|
-
};
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Base codec emitter: AnQst.Type.stringArray — TypeScript/C++ encoder (string[] / QStringList → standalone wire).
|
|
4
|
-
*
|
|
5
|
-
* Standalone: positional base93 element count as the first emission item, then native JSON string elements.
|
|
6
|
-
* Empty array: the count alone is emitted as a single string (best-case emission).
|
|
7
|
-
* Non-empty: a flat JSON array [count, ...elements] (length N+1 ≥ 2).
|
|
8
|
-
*
|
|
9
|
-
* Composite (structured top-level codec): string elements merge into the shared flat string collection; the
|
|
10
|
-
* element count is stored as fixed-width unsigned metadata (e.g. uint32) inside the byte blob, not as a
|
|
11
|
-
* separate base93 count string. See Structured_TopLevelCodec_Strategy.md §3.2 and String_stringArray_Codec.md §5.
|
|
12
|
-
*/
|
|
13
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.encoderEmitter = exports.descriptor = void 0;
|
|
15
|
-
exports.descriptor = {
|
|
16
|
-
codecId: "stringArray",
|
|
17
|
-
specPath: "RefinedSpecs/Codecs/String_stringArray_Codec.md",
|
|
18
|
-
tsType: "string[]",
|
|
19
|
-
cppType: "QStringList",
|
|
20
|
-
wireCategory: "string-array",
|
|
21
|
-
strategySummary: "Standalone: prepend positional base93 count string, then emit each element as a native JSON string; empty → single count string. Composite: count in byte blob as fixed-width uint; elements in shared string collection (orchestrated by structured layer)."
|
|
22
|
-
};
|
|
23
|
-
const TS_FN = "encodeStringArrayStandalone";
|
|
24
|
-
const CPP_FN = "encodeStringArrayStandalone";
|
|
25
|
-
exports.encoderEmitter = {
|
|
26
|
-
descriptor: exports.descriptor,
|
|
27
|
-
emitTsEncoder() {
|
|
28
|
-
return `function ${TS_FN}(value) {
|
|
29
|
-
var n = value.length;
|
|
30
|
-
var countStr = encodeBase93Count(n);
|
|
31
|
-
if (n === 0) {
|
|
32
|
-
return countStr;
|
|
33
|
-
}
|
|
34
|
-
var out = new Array(n + 1);
|
|
35
|
-
out[0] = countStr;
|
|
36
|
-
for (var i = 0; i < n; i++) {
|
|
37
|
-
out[i + 1] = value[i];
|
|
38
|
-
}
|
|
39
|
-
return out;
|
|
40
|
-
}`;
|
|
41
|
-
},
|
|
42
|
-
emitCppEncoder() {
|
|
43
|
-
return `inline QJsonValue ${CPP_FN}(const QStringList& value) {
|
|
44
|
-
const std::uint32_t n = static_cast<std::uint32_t>(value.size());
|
|
45
|
-
const QString countStr = QString::fromStdString(encodeBase93Count(n));
|
|
46
|
-
if (n == 0u) {
|
|
47
|
-
return QJsonValue(countStr);
|
|
48
|
-
}
|
|
49
|
-
QJsonArray arr;
|
|
50
|
-
arr.append(countStr);
|
|
51
|
-
for (const QString& s : value) {
|
|
52
|
-
arr.append(QJsonValue(s));
|
|
53
|
-
}
|
|
54
|
-
return QJsonValue(arr);
|
|
55
|
-
}`;
|
|
56
|
-
}
|
|
57
|
-
};
|