@optique/core 1.0.0-dev.1495 → 1.0.0-dev.1500
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/constructs.cjs +183 -35
- package/dist/constructs.js +183 -35
- package/dist/context.cjs +1 -39
- package/dist/context.d.cts +1 -35
- package/dist/context.d.ts +1 -35
- package/dist/context.js +1 -37
- package/dist/dependency.cjs +42 -0
- package/dist/dependency.js +42 -0
- package/dist/facade.cjs +68 -268
- package/dist/facade.js +68 -268
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/modifiers.cjs +139 -21
- package/dist/modifiers.d.cts +41 -0
- package/dist/modifiers.d.ts +41 -0
- package/dist/modifiers.js +139 -21
- package/dist/parser.cjs +6 -2
- package/dist/parser.d.cts +28 -1
- package/dist/parser.d.ts +28 -1
- package/dist/parser.js +6 -2
- package/dist/primitives.cjs +44 -2
- package/dist/primitives.js +44 -2
- package/dist/suggestion.cjs +3 -0
- package/dist/suggestion.js +3 -0
- package/dist/valueparser.cjs +82 -1
- package/dist/valueparser.d.cts +125 -1
- package/dist/valueparser.d.ts +125 -1
- package/dist/valueparser.js +82 -1
- package/package.json +1 -1
package/dist/constructs.cjs
CHANGED
|
@@ -1225,6 +1225,8 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
|
|
|
1225
1225
|
}
|
|
1226
1226
|
const resolvedState = resolveDeferredParseStates(preCompletedState);
|
|
1227
1227
|
const result = {};
|
|
1228
|
+
const deferredKeys = /* @__PURE__ */ new Map();
|
|
1229
|
+
let hasDeferred = false;
|
|
1228
1230
|
const getCompletionFieldState = createFieldStateGetter(state);
|
|
1229
1231
|
for (const field of parserKeys) {
|
|
1230
1232
|
const fieldKey = field;
|
|
@@ -1232,8 +1234,12 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
|
|
|
1232
1234
|
const fieldParser = parsers[field];
|
|
1233
1235
|
if (require_dependency.isDependencySourceState(fieldResolvedState) && preCompletedKeys.has(fieldKey)) {
|
|
1234
1236
|
const depResult = fieldResolvedState.result;
|
|
1235
|
-
if (depResult.success)
|
|
1236
|
-
|
|
1237
|
+
if (depResult.success) {
|
|
1238
|
+
result[fieldKey] = depResult.value;
|
|
1239
|
+
if (depResult.deferred) if (depResult.deferredKeys) deferredKeys.set(fieldKey, depResult.deferredKeys);
|
|
1240
|
+
else if (depResult.value == null || typeof depResult.value !== "object") deferredKeys.set(fieldKey, null);
|
|
1241
|
+
else hasDeferred = true;
|
|
1242
|
+
} else return {
|
|
1237
1243
|
success: false,
|
|
1238
1244
|
error: depResult.error
|
|
1239
1245
|
};
|
|
@@ -1241,15 +1247,24 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
|
|
|
1241
1247
|
}
|
|
1242
1248
|
const completionState = fieldResolvedState === void 0 ? getCompletionFieldState(field, fieldParser) : fieldResolvedState;
|
|
1243
1249
|
const valueResult = fieldParser.complete(completionState);
|
|
1244
|
-
if (valueResult.success)
|
|
1245
|
-
|
|
1250
|
+
if (valueResult.success) {
|
|
1251
|
+
result[fieldKey] = valueResult.value;
|
|
1252
|
+
if (valueResult.deferred) if (valueResult.deferredKeys) deferredKeys.set(fieldKey, valueResult.deferredKeys);
|
|
1253
|
+
else if (valueResult.value == null || typeof valueResult.value !== "object") deferredKeys.set(fieldKey, null);
|
|
1254
|
+
else hasDeferred = true;
|
|
1255
|
+
} else return {
|
|
1246
1256
|
success: false,
|
|
1247
1257
|
error: valueResult.error
|
|
1248
1258
|
};
|
|
1249
1259
|
}
|
|
1260
|
+
const isDeferred = deferredKeys.size > 0 || hasDeferred;
|
|
1250
1261
|
return {
|
|
1251
1262
|
success: true,
|
|
1252
|
-
value: result
|
|
1263
|
+
value: result,
|
|
1264
|
+
...isDeferred ? {
|
|
1265
|
+
deferred: true,
|
|
1266
|
+
...deferredKeys.size > 0 ? { deferredKeys } : {}
|
|
1267
|
+
} : {}
|
|
1253
1268
|
};
|
|
1254
1269
|
}, async () => {
|
|
1255
1270
|
const preCompletedState = {};
|
|
@@ -1286,6 +1301,8 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
|
|
|
1286
1301
|
}
|
|
1287
1302
|
const resolvedState = await resolveDeferredParseStatesAsync(preCompletedState);
|
|
1288
1303
|
const result = {};
|
|
1304
|
+
const deferredKeys = /* @__PURE__ */ new Map();
|
|
1305
|
+
let hasDeferred = false;
|
|
1289
1306
|
const getCompletionFieldState = createFieldStateGetter(state);
|
|
1290
1307
|
for (const field of parserKeys) {
|
|
1291
1308
|
const fieldKey = field;
|
|
@@ -1293,8 +1310,12 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
|
|
|
1293
1310
|
const fieldParser = parsers[field];
|
|
1294
1311
|
if (require_dependency.isDependencySourceState(fieldResolvedState) && preCompletedKeys.has(fieldKey)) {
|
|
1295
1312
|
const depResult = fieldResolvedState.result;
|
|
1296
|
-
if (depResult.success)
|
|
1297
|
-
|
|
1313
|
+
if (depResult.success) {
|
|
1314
|
+
result[fieldKey] = depResult.value;
|
|
1315
|
+
if (depResult.deferred) if (depResult.deferredKeys) deferredKeys.set(fieldKey, depResult.deferredKeys);
|
|
1316
|
+
else if (depResult.value == null || typeof depResult.value !== "object") deferredKeys.set(fieldKey, null);
|
|
1317
|
+
else hasDeferred = true;
|
|
1318
|
+
} else return {
|
|
1298
1319
|
success: false,
|
|
1299
1320
|
error: depResult.error
|
|
1300
1321
|
};
|
|
@@ -1302,15 +1323,24 @@ function object(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
|
|
|
1302
1323
|
}
|
|
1303
1324
|
const completionState = fieldResolvedState === void 0 ? getCompletionFieldState(field, fieldParser) : fieldResolvedState;
|
|
1304
1325
|
const valueResult = await fieldParser.complete(completionState);
|
|
1305
|
-
if (valueResult.success)
|
|
1306
|
-
|
|
1326
|
+
if (valueResult.success) {
|
|
1327
|
+
result[fieldKey] = valueResult.value;
|
|
1328
|
+
if (valueResult.deferred) if (valueResult.deferredKeys) deferredKeys.set(fieldKey, valueResult.deferredKeys);
|
|
1329
|
+
else if (valueResult.value == null || typeof valueResult.value !== "object") deferredKeys.set(fieldKey, null);
|
|
1330
|
+
else hasDeferred = true;
|
|
1331
|
+
} else return {
|
|
1307
1332
|
success: false,
|
|
1308
1333
|
error: valueResult.error
|
|
1309
1334
|
};
|
|
1310
1335
|
}
|
|
1336
|
+
const isDeferred = deferredKeys.size > 0 || hasDeferred;
|
|
1311
1337
|
return {
|
|
1312
1338
|
success: true,
|
|
1313
|
-
value: result
|
|
1339
|
+
value: result,
|
|
1340
|
+
...isDeferred ? {
|
|
1341
|
+
deferred: true,
|
|
1342
|
+
...deferredKeys.size > 0 ? { deferredKeys } : {}
|
|
1343
|
+
} : {}
|
|
1314
1344
|
};
|
|
1315
1345
|
});
|
|
1316
1346
|
},
|
|
@@ -1550,6 +1580,8 @@ function tuple(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
|
|
|
1550
1580
|
const resolvedState = resolveDeferredParseStates(preCompletedState);
|
|
1551
1581
|
const resolvedArray = resolvedState;
|
|
1552
1582
|
const result = [];
|
|
1583
|
+
const deferredKeys = /* @__PURE__ */ new Map();
|
|
1584
|
+
let hasDeferred = false;
|
|
1553
1585
|
for (let i = 0; i < syncParsers.length; i++) {
|
|
1554
1586
|
const elementResolvedState = resolvedArray[i];
|
|
1555
1587
|
const elementParser = syncParsers[i];
|
|
@@ -1559,23 +1591,36 @@ function tuple(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
|
|
|
1559
1591
|
const wasPreCompletedCase3 = originalElementState === void 0 && require_dependency.isWrappedDependencySource(elementParser);
|
|
1560
1592
|
if (require_dependency.isDependencySourceState(elementResolvedState) && (wasPreCompletedCase1 || wasPreCompletedCase2 || wasPreCompletedCase3)) {
|
|
1561
1593
|
const depResult = elementResolvedState.result;
|
|
1562
|
-
if (depResult.success)
|
|
1563
|
-
|
|
1594
|
+
if (depResult.success) {
|
|
1595
|
+
result[i] = depResult.value;
|
|
1596
|
+
if (depResult.deferred) if (depResult.deferredKeys) deferredKeys.set(i, depResult.deferredKeys);
|
|
1597
|
+
else if (depResult.value == null || typeof depResult.value !== "object") deferredKeys.set(i, null);
|
|
1598
|
+
else hasDeferred = true;
|
|
1599
|
+
} else return {
|
|
1564
1600
|
success: false,
|
|
1565
1601
|
error: depResult.error
|
|
1566
1602
|
};
|
|
1567
1603
|
continue;
|
|
1568
1604
|
}
|
|
1569
1605
|
const valueResult = elementParser.complete(elementResolvedState);
|
|
1570
|
-
if (valueResult.success)
|
|
1571
|
-
|
|
1606
|
+
if (valueResult.success) {
|
|
1607
|
+
result[i] = valueResult.value;
|
|
1608
|
+
if (valueResult.deferred) if (valueResult.deferredKeys) deferredKeys.set(i, valueResult.deferredKeys);
|
|
1609
|
+
else if (valueResult.value == null || typeof valueResult.value !== "object") deferredKeys.set(i, null);
|
|
1610
|
+
else hasDeferred = true;
|
|
1611
|
+
} else return {
|
|
1572
1612
|
success: false,
|
|
1573
1613
|
error: valueResult.error
|
|
1574
1614
|
};
|
|
1575
1615
|
}
|
|
1616
|
+
const isDeferred = deferredKeys.size > 0 || hasDeferred;
|
|
1576
1617
|
return {
|
|
1577
1618
|
success: true,
|
|
1578
|
-
value: result
|
|
1619
|
+
value: result,
|
|
1620
|
+
...isDeferred ? {
|
|
1621
|
+
deferred: true,
|
|
1622
|
+
...deferredKeys.size > 0 ? { deferredKeys } : {}
|
|
1623
|
+
} : {}
|
|
1579
1624
|
};
|
|
1580
1625
|
}, async () => {
|
|
1581
1626
|
const stateArray = state;
|
|
@@ -1598,6 +1643,8 @@ function tuple(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
|
|
|
1598
1643
|
const resolvedState = await resolveDeferredParseStatesAsync(preCompletedState);
|
|
1599
1644
|
const resolvedArray = resolvedState;
|
|
1600
1645
|
const result = [];
|
|
1646
|
+
const deferredKeys = /* @__PURE__ */ new Map();
|
|
1647
|
+
let hasDeferred = false;
|
|
1601
1648
|
for (let i = 0; i < parsers.length; i++) {
|
|
1602
1649
|
const elementResolvedState = resolvedArray[i];
|
|
1603
1650
|
const elementParser = parsers[i];
|
|
@@ -1607,23 +1654,36 @@ function tuple(labelOrParsers, maybeParsersOrOptions, maybeOptions) {
|
|
|
1607
1654
|
const wasPreCompletedCase3 = originalElementState === void 0 && require_dependency.isWrappedDependencySource(elementParser);
|
|
1608
1655
|
if (require_dependency.isDependencySourceState(elementResolvedState) && (wasPreCompletedCase1 || wasPreCompletedCase2 || wasPreCompletedCase3)) {
|
|
1609
1656
|
const depResult = elementResolvedState.result;
|
|
1610
|
-
if (depResult.success)
|
|
1611
|
-
|
|
1657
|
+
if (depResult.success) {
|
|
1658
|
+
result[i] = depResult.value;
|
|
1659
|
+
if (depResult.deferred) if (depResult.deferredKeys) deferredKeys.set(i, depResult.deferredKeys);
|
|
1660
|
+
else if (depResult.value == null || typeof depResult.value !== "object") deferredKeys.set(i, null);
|
|
1661
|
+
else hasDeferred = true;
|
|
1662
|
+
} else return {
|
|
1612
1663
|
success: false,
|
|
1613
1664
|
error: depResult.error
|
|
1614
1665
|
};
|
|
1615
1666
|
continue;
|
|
1616
1667
|
}
|
|
1617
1668
|
const valueResult = await elementParser.complete(elementResolvedState);
|
|
1618
|
-
if (valueResult.success)
|
|
1619
|
-
|
|
1669
|
+
if (valueResult.success) {
|
|
1670
|
+
result[i] = valueResult.value;
|
|
1671
|
+
if (valueResult.deferred) if (valueResult.deferredKeys) deferredKeys.set(i, valueResult.deferredKeys);
|
|
1672
|
+
else if (valueResult.value == null || typeof valueResult.value !== "object") deferredKeys.set(i, null);
|
|
1673
|
+
else hasDeferred = true;
|
|
1674
|
+
} else return {
|
|
1620
1675
|
success: false,
|
|
1621
1676
|
error: valueResult.error
|
|
1622
1677
|
};
|
|
1623
1678
|
}
|
|
1679
|
+
const isDeferred = deferredKeys.size > 0 || hasDeferred;
|
|
1624
1680
|
return {
|
|
1625
1681
|
success: true,
|
|
1626
|
-
value: result
|
|
1682
|
+
value: result,
|
|
1683
|
+
...isDeferred ? {
|
|
1684
|
+
deferred: true,
|
|
1685
|
+
...deferredKeys.size > 0 ? { deferredKeys } : {}
|
|
1686
|
+
} : {}
|
|
1627
1687
|
};
|
|
1628
1688
|
});
|
|
1629
1689
|
},
|
|
@@ -1842,16 +1902,28 @@ function merge(...args) {
|
|
|
1842
1902
|
preCompleteAndRegisterDependencies(state, childFieldPairs, registry);
|
|
1843
1903
|
const resolvedState = resolveDeferredParseStates(state, registry);
|
|
1844
1904
|
const object$1 = {};
|
|
1905
|
+
const deferredKeys = /* @__PURE__ */ new Map();
|
|
1906
|
+
let hasDeferred = false;
|
|
1845
1907
|
for (let i = 0; i < syncParsers.length; i++) {
|
|
1846
1908
|
const parser = syncParsers[i];
|
|
1847
1909
|
const parserState = extractCompleteState(parser, resolvedState, i);
|
|
1848
1910
|
const result = parser.complete(parserState);
|
|
1849
1911
|
if (!result.success) return result;
|
|
1850
|
-
for (const field in result.value)
|
|
1912
|
+
for (const field in result.value) {
|
|
1913
|
+
object$1[field] = result.value[field];
|
|
1914
|
+
if (deferredKeys.has(field) && !(result.deferred && result.deferredKeys?.has(field))) deferredKeys.delete(field);
|
|
1915
|
+
}
|
|
1916
|
+
if (result.deferred && result.deferredKeys) for (const [key, value] of result.deferredKeys) deferredKeys.set(key, value);
|
|
1917
|
+
else if (result.deferred) hasDeferred = true;
|
|
1851
1918
|
}
|
|
1919
|
+
const isDeferred = deferredKeys.size > 0 || hasDeferred;
|
|
1852
1920
|
return {
|
|
1853
1921
|
success: true,
|
|
1854
|
-
value: object$1
|
|
1922
|
+
value: object$1,
|
|
1923
|
+
...isDeferred ? {
|
|
1924
|
+
deferred: true,
|
|
1925
|
+
...deferredKeys.size > 0 ? { deferredKeys } : {}
|
|
1926
|
+
} : {}
|
|
1855
1927
|
};
|
|
1856
1928
|
}
|
|
1857
1929
|
return (async () => {
|
|
@@ -1860,16 +1932,28 @@ function merge(...args) {
|
|
|
1860
1932
|
await preCompleteAndRegisterDependenciesAsync(state, childFieldPairs, registry);
|
|
1861
1933
|
const resolvedState = await resolveDeferredParseStatesAsync(state, registry);
|
|
1862
1934
|
const object$1 = {};
|
|
1935
|
+
const deferredKeys = /* @__PURE__ */ new Map();
|
|
1936
|
+
let hasDeferred = false;
|
|
1863
1937
|
for (let i = 0; i < parsers.length; i++) {
|
|
1864
1938
|
const parser = parsers[i];
|
|
1865
1939
|
const parserState = extractCompleteState(parser, resolvedState, i);
|
|
1866
1940
|
const result = await parser.complete(parserState);
|
|
1867
1941
|
if (!result.success) return result;
|
|
1868
|
-
for (const field in result.value)
|
|
1942
|
+
for (const field in result.value) {
|
|
1943
|
+
object$1[field] = result.value[field];
|
|
1944
|
+
if (deferredKeys.has(field) && !(result.deferred && result.deferredKeys?.has(field))) deferredKeys.delete(field);
|
|
1945
|
+
}
|
|
1946
|
+
if (result.deferred && result.deferredKeys) for (const [key, value] of result.deferredKeys) deferredKeys.set(key, value);
|
|
1947
|
+
else if (result.deferred) hasDeferred = true;
|
|
1869
1948
|
}
|
|
1949
|
+
const isDeferred = deferredKeys.size > 0 || hasDeferred;
|
|
1870
1950
|
return {
|
|
1871
1951
|
success: true,
|
|
1872
|
-
value: object$1
|
|
1952
|
+
value: object$1,
|
|
1953
|
+
...isDeferred ? {
|
|
1954
|
+
deferred: true,
|
|
1955
|
+
...deferredKeys.size > 0 ? { deferredKeys } : {}
|
|
1956
|
+
} : {}
|
|
1873
1957
|
};
|
|
1874
1958
|
})();
|
|
1875
1959
|
},
|
|
@@ -2249,17 +2333,37 @@ function concat(...parsers) {
|
|
|
2249
2333
|
for (let i = 0; i < stateArray.length; i++) combinedState[i] = stateArray[i];
|
|
2250
2334
|
const resolvedCombinedState = resolveDeferredParseStates(combinedState);
|
|
2251
2335
|
const results = [];
|
|
2336
|
+
const deferredKeys = /* @__PURE__ */ new Map();
|
|
2337
|
+
let hasDeferred = false;
|
|
2252
2338
|
for (let i = 0; i < syncParsers.length; i++) {
|
|
2253
2339
|
const parser = syncParsers[i];
|
|
2254
2340
|
const parserState = resolvedCombinedState[i];
|
|
2255
2341
|
const result = parser.complete(parserState);
|
|
2256
2342
|
if (!result.success) return result;
|
|
2257
|
-
|
|
2258
|
-
|
|
2343
|
+
const baseIndex = results.length;
|
|
2344
|
+
if (Array.isArray(result.value)) {
|
|
2345
|
+
results.push(...result.value);
|
|
2346
|
+
if (result.deferred && result.deferredKeys) for (const [key, value] of result.deferredKeys) {
|
|
2347
|
+
const numKey = typeof key === "string" ? Number(key) : key;
|
|
2348
|
+
if (typeof numKey === "number" && Number.isInteger(numKey)) deferredKeys.set(baseIndex + numKey, value);
|
|
2349
|
+
else deferredKeys.set(key, value);
|
|
2350
|
+
}
|
|
2351
|
+
else if (result.deferred) hasDeferred = true;
|
|
2352
|
+
} else {
|
|
2353
|
+
results.push(result.value);
|
|
2354
|
+
if (result.deferred) if (result.deferredKeys) deferredKeys.set(baseIndex, result.deferredKeys);
|
|
2355
|
+
else if (result.value == null || typeof result.value !== "object") deferredKeys.set(baseIndex, null);
|
|
2356
|
+
else hasDeferred = true;
|
|
2357
|
+
}
|
|
2259
2358
|
}
|
|
2359
|
+
const isDeferred = deferredKeys.size > 0 || hasDeferred;
|
|
2260
2360
|
return {
|
|
2261
2361
|
success: true,
|
|
2262
|
-
value: results
|
|
2362
|
+
value: results,
|
|
2363
|
+
...isDeferred ? {
|
|
2364
|
+
deferred: true,
|
|
2365
|
+
...deferredKeys.size > 0 ? { deferredKeys } : {}
|
|
2366
|
+
} : {}
|
|
2263
2367
|
};
|
|
2264
2368
|
};
|
|
2265
2369
|
const completeAsync = async (state) => {
|
|
@@ -2268,17 +2372,37 @@ function concat(...parsers) {
|
|
|
2268
2372
|
for (let i = 0; i < stateArray.length; i++) combinedState[i] = stateArray[i];
|
|
2269
2373
|
const resolvedCombinedState = await resolveDeferredParseStatesAsync(combinedState);
|
|
2270
2374
|
const results = [];
|
|
2375
|
+
const deferredKeys = /* @__PURE__ */ new Map();
|
|
2376
|
+
let hasDeferred = false;
|
|
2271
2377
|
for (let i = 0; i < parsers.length; i++) {
|
|
2272
2378
|
const parser = parsers[i];
|
|
2273
2379
|
const parserState = resolvedCombinedState[i];
|
|
2274
2380
|
const result = await parser.complete(parserState);
|
|
2275
2381
|
if (!result.success) return result;
|
|
2276
|
-
|
|
2277
|
-
|
|
2382
|
+
const baseIndex = results.length;
|
|
2383
|
+
if (Array.isArray(result.value)) {
|
|
2384
|
+
results.push(...result.value);
|
|
2385
|
+
if (result.deferred && result.deferredKeys) for (const [key, value] of result.deferredKeys) {
|
|
2386
|
+
const numKey = typeof key === "string" ? Number(key) : key;
|
|
2387
|
+
if (typeof numKey === "number" && Number.isInteger(numKey)) deferredKeys.set(baseIndex + numKey, value);
|
|
2388
|
+
else deferredKeys.set(key, value);
|
|
2389
|
+
}
|
|
2390
|
+
else if (result.deferred) hasDeferred = true;
|
|
2391
|
+
} else {
|
|
2392
|
+
results.push(result.value);
|
|
2393
|
+
if (result.deferred) if (result.deferredKeys) deferredKeys.set(baseIndex, result.deferredKeys);
|
|
2394
|
+
else if (result.value == null || typeof result.value !== "object") deferredKeys.set(baseIndex, null);
|
|
2395
|
+
else hasDeferred = true;
|
|
2396
|
+
}
|
|
2278
2397
|
}
|
|
2398
|
+
const isDeferred = deferredKeys.size > 0 || hasDeferred;
|
|
2279
2399
|
return {
|
|
2280
2400
|
success: true,
|
|
2281
|
-
value: results
|
|
2401
|
+
value: results,
|
|
2402
|
+
...isDeferred ? {
|
|
2403
|
+
deferred: true,
|
|
2404
|
+
...deferredKeys.size > 0 ? { deferredKeys } : {}
|
|
2405
|
+
} : {}
|
|
2282
2406
|
};
|
|
2283
2407
|
};
|
|
2284
2408
|
return {
|
|
@@ -2357,7 +2481,7 @@ function concat(...parsers) {
|
|
|
2357
2481
|
};
|
|
2358
2482
|
}
|
|
2359
2483
|
function group(label, parser, options = {}) {
|
|
2360
|
-
|
|
2484
|
+
const groupParser = {
|
|
2361
2485
|
$mode: parser.$mode,
|
|
2362
2486
|
$valueType: parser.$valueType,
|
|
2363
2487
|
$stateType: parser.$stateType,
|
|
@@ -2410,6 +2534,14 @@ function group(label, parser, options = {}) {
|
|
|
2410
2534
|
};
|
|
2411
2535
|
}
|
|
2412
2536
|
};
|
|
2537
|
+
if ("placeholder" in parser) Object.defineProperty(groupParser, "placeholder", {
|
|
2538
|
+
get() {
|
|
2539
|
+
return parser.placeholder;
|
|
2540
|
+
},
|
|
2541
|
+
configurable: true,
|
|
2542
|
+
enumerable: false
|
|
2543
|
+
});
|
|
2544
|
+
return groupParser;
|
|
2413
2545
|
}
|
|
2414
2546
|
/**
|
|
2415
2547
|
* Creates a conditional parser that selects different branch parsers based on
|
|
@@ -2699,7 +2831,11 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
2699
2831
|
if (!defaultResult.success) return defaultResult;
|
|
2700
2832
|
return {
|
|
2701
2833
|
success: true,
|
|
2702
|
-
value: [void 0, defaultResult.value]
|
|
2834
|
+
value: [void 0, defaultResult.value],
|
|
2835
|
+
...defaultResult.deferred ? {
|
|
2836
|
+
deferred: true,
|
|
2837
|
+
...defaultResult.deferredKeys ? { deferredKeys: new Map([[1, defaultResult.deferredKeys]]) } : defaultResult.value == null || typeof defaultResult.value !== "object" ? { deferredKeys: new Map([[1, null]]) } : {}
|
|
2838
|
+
} : {}
|
|
2703
2839
|
};
|
|
2704
2840
|
}
|
|
2705
2841
|
return {
|
|
@@ -2730,7 +2866,11 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
2730
2866
|
else discriminatorValue = state.selectedBranch.key;
|
|
2731
2867
|
return {
|
|
2732
2868
|
success: true,
|
|
2733
|
-
value: [discriminatorValue, branchResult.value]
|
|
2869
|
+
value: [discriminatorValue, branchResult.value],
|
|
2870
|
+
...branchResult.deferred ? {
|
|
2871
|
+
deferred: true,
|
|
2872
|
+
...branchResult.deferredKeys ? { deferredKeys: new Map([[1, branchResult.deferredKeys]]) } : branchResult.value == null || typeof branchResult.value !== "object" ? { deferredKeys: new Map([[1, null]]) } : {}
|
|
2873
|
+
} : {}
|
|
2734
2874
|
};
|
|
2735
2875
|
};
|
|
2736
2876
|
const completeAsync = async (state) => {
|
|
@@ -2741,7 +2881,11 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
2741
2881
|
if (!defaultResult.success) return defaultResult;
|
|
2742
2882
|
return {
|
|
2743
2883
|
success: true,
|
|
2744
|
-
value: [void 0, defaultResult.value]
|
|
2884
|
+
value: [void 0, defaultResult.value],
|
|
2885
|
+
...defaultResult.deferred ? {
|
|
2886
|
+
deferred: true,
|
|
2887
|
+
...defaultResult.deferredKeys ? { deferredKeys: new Map([[1, defaultResult.deferredKeys]]) } : defaultResult.value == null || typeof defaultResult.value !== "object" ? { deferredKeys: new Map([[1, null]]) } : {}
|
|
2888
|
+
} : {}
|
|
2745
2889
|
};
|
|
2746
2890
|
}
|
|
2747
2891
|
return {
|
|
@@ -2772,7 +2916,11 @@ function conditional(discriminator, branches, defaultBranch, options) {
|
|
|
2772
2916
|
else discriminatorValue = state.selectedBranch.key;
|
|
2773
2917
|
return {
|
|
2774
2918
|
success: true,
|
|
2775
|
-
value: [discriminatorValue, branchResult.value]
|
|
2919
|
+
value: [discriminatorValue, branchResult.value],
|
|
2920
|
+
...branchResult.deferred ? {
|
|
2921
|
+
deferred: true,
|
|
2922
|
+
...branchResult.deferredKeys ? { deferredKeys: new Map([[1, branchResult.deferredKeys]]) } : branchResult.value == null || typeof branchResult.value !== "object" ? { deferredKeys: new Map([[1, null]]) } : {}
|
|
2923
|
+
} : {}
|
|
2776
2924
|
};
|
|
2777
2925
|
};
|
|
2778
2926
|
function* suggestSync(context, prefix) {
|