@smartlyio/oats-runtime 4.4.1-alpha.13 → 4.4.1-alpha.19
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/make.js +36 -2
- package/dist/make.js.map +1 -1
- package/dist/runtime.d.ts +6 -0
- package/dist/runtime.js +19 -1
- package/dist/runtime.js.map +1 -1
- package/dist/serialize.js +29 -16
- package/dist/serialize.js.map +1 -1
- package/dist/type-tag.d.ts +1 -1
- package/dist/type-tag.js +2 -2
- package/dist/type-tag.js.map +1 -1
- package/package.json +2 -2
- package/src/make.ts +40 -2
- package/src/runtime.ts +21 -0
- package/src/serialize.ts +29 -17
- package/src/type-tag.ts +2 -2
package/dist/make.js
CHANGED
|
@@ -319,6 +319,9 @@ function getInputPropName(args) {
|
|
|
319
319
|
if (!((_a = args.opts) === null || _a === void 0 ? void 0 : _a.convertFromNetwork)) {
|
|
320
320
|
return args.index;
|
|
321
321
|
}
|
|
322
|
+
// we need to look at the types already used for making the value to detect cases
|
|
323
|
+
// where the property has already been mapped and we should use the ts side
|
|
324
|
+
// property name
|
|
322
325
|
const types = (_b = (0, type_tag_1.getType)(args.value)) !== null && _b !== void 0 ? _b : [];
|
|
323
326
|
const networkProp = (_d = (_c = args.fromNetwork) === null || _c === void 0 ? void 0 : _c[args.index]) !== null && _d !== void 0 ? _d : args.index;
|
|
324
327
|
for (const type of types) {
|
|
@@ -384,12 +387,20 @@ function makeObject(props, additionalProp, comparisorOrder, type) {
|
|
|
384
387
|
}
|
|
385
388
|
return error('unexpected property').errorPath(index);
|
|
386
389
|
}
|
|
390
|
+
// If the input value A has been made already with network prop name mapping
|
|
391
|
+
// this runs the property value through the current additionalProps maker to validate it
|
|
392
|
+
// nb. the property key *has* already been mapped when making A and we just use it here
|
|
393
|
+
// this works unless we start mapping additionalProp property names.
|
|
387
394
|
const propResult = additionalProp(value[index], opts);
|
|
388
395
|
if (propResult.isError()) {
|
|
389
396
|
return propResult.errorPath(index);
|
|
390
397
|
}
|
|
391
398
|
result[index] = propResult.success();
|
|
392
399
|
}
|
|
400
|
+
const oldType = (0, type_tag_1.getType)(value);
|
|
401
|
+
if (oldType) {
|
|
402
|
+
(0, type_tag_1.withType)(result, oldType);
|
|
403
|
+
}
|
|
393
404
|
return Make.ok((0, type_tag_1.withType)(result, type ? [type] : []));
|
|
394
405
|
};
|
|
395
406
|
}
|
|
@@ -522,7 +533,23 @@ function fromObjectReflection(type) {
|
|
|
522
533
|
: fromReflection(type.additionalProperties)
|
|
523
534
|
: undefined, comparisonOrder, type);
|
|
524
535
|
}
|
|
536
|
+
function networkMapFromDiscriminatedType(prop, type) {
|
|
537
|
+
switch (type.type) {
|
|
538
|
+
case 'object':
|
|
539
|
+
return type.properties[prop].networkName;
|
|
540
|
+
case 'named':
|
|
541
|
+
return networkMapFromDiscriminatedType(prop, type.reference().definition);
|
|
542
|
+
case 'intersection':
|
|
543
|
+
// note that within a single discriminator set the key must the be the same
|
|
544
|
+
// and thus the network key must be the same and we can consider only the first option
|
|
545
|
+
return networkMapFromDiscriminatedType(prop, type.options[0]);
|
|
546
|
+
case 'union':
|
|
547
|
+
return networkMapFromDiscriminatedType(prop, type.options[0]);
|
|
548
|
+
}
|
|
549
|
+
return;
|
|
550
|
+
}
|
|
525
551
|
function fromUnionReflection(types) {
|
|
552
|
+
var _a;
|
|
526
553
|
const { discriminator, undiscriminated } = (0, union_discriminator_1.discriminateUnion)(types);
|
|
527
554
|
const untaggedMaker = undiscriminated.length > 0
|
|
528
555
|
? [makeOneOf(...undiscriminated.map(type => fromReflection(type)))]
|
|
@@ -535,9 +562,16 @@ function fromUnionReflection(types) {
|
|
|
535
562
|
// note that we need to check the undiscriminated values also as those *might* match also
|
|
536
563
|
discriminatedMakers.set(key, makeOneOf(...[...untaggedMaker, fromReflection(t)]));
|
|
537
564
|
}
|
|
565
|
+
const networkDiscriminatorKey = (_a = networkMapFromDiscriminatedType(discriminator.key, [...discriminator.map.values()][0])) !== null && _a !== void 0 ? _a : discriminator.key;
|
|
538
566
|
return (value, opts) => {
|
|
539
|
-
|
|
540
|
-
|
|
567
|
+
const key = getInputPropName({
|
|
568
|
+
value,
|
|
569
|
+
index: discriminator.key,
|
|
570
|
+
fromNetwork: { [discriminator.key]: networkDiscriminatorKey },
|
|
571
|
+
opts
|
|
572
|
+
});
|
|
573
|
+
if (value && typeof value === 'object' && !Array.isArray(value) && key in value) {
|
|
574
|
+
const discriminatedType = discriminatedMakers.get(value[key]);
|
|
541
575
|
if (discriminatedType) {
|
|
542
576
|
return discriminatedType(value, opts);
|
|
543
577
|
}
|
package/dist/make.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make.js","sourceRoot":"","sources":["../src/make.ts"],"names":[],"mappings":";;;AAAA,qCAAwC;AACxC,gEAA8C;AAC9C,4BAA4B;AAC5B,mCAAuC;AACvC,+CAA2C;AAE3C,+DAA0D;AAC1D,yCAA2D;AAE3D,MAAa,SAAU,SAAQ,KAAK;IAClC,YAAqB,MAAyB;QAC5C,KAAK,CACH,yCAAyC,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1F,CAAC;QAHiB,WAAM,GAAN,MAAM,CAAmB;IAI9C,CAAC;CACF;AAND,8BAMC;AAcD,SAAS,MAAM,CAAC,CAAS;IACvB,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;QACd,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAClB;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC;AAED,SAAgB,sBAAsB,CAAC,KAAsB,EAAE,WAAW,GAAG,CAAC;IAC5E,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;QACnC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;KACxE;IACD,MAAM,SAAS,GAAa,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACrD,sBAAsB,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,CAC3C,CAAC;IACF,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GACtF,KAAK,CAAC,KAAK,CAAC,YACd,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9B,CAAC;AAVD,wDAUC;AAED,MAAa,IAAI;IAYf,YAAoB,KAAe,EAAE,MAAyB;QAC5D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAdD,MAAM,CAAC,EAAE,CAAI,KAAQ;QACnB,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,KAAK,CAAI,MAAyB;QACvC,OAAO,IAAI,IAAI,CAAI,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAUD,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,SAAS;QACP,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,OAAwB;QAC9B,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YACpB,OAAO,IAAI,CAAC,KAAU,CAAC;SACxB;QACD,IAAI,OAAO,EAAE;YACX,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB;QACD,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,YAAoB;QACxB,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,IAAI,CACb,IAAI,EACJ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACxB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;YAC3B,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;IAED,GAAG,CAAI,EAAmB;QACxB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAChC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YACpB,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;SACpC;QACD,OAAO,IAAA,aAAI,EAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;CACF;AA1DD,oBA0DC;AAyBD,SAAS,oBAAoB,CAAI,GAAW,EAAE,KAAQ;IACpD,MAAM,WAAW,GACf,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjG,OAAO,KAAK,CAAC,GAAG,GAAG,eAAe,WAAW,aAAa,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,KAAK,CAAI,KAAa;IAC7B,OAAO,IAAI,CAAC,KAAK,CAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAgB,cAAc,CAAC,MAAc,EAAE,KAA4B;IACzE,IAAA,eAAM,EAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,MAAM,wBAAwB,CAAC,CAAC;IACnE,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AAC1B,CAAC;AAHD,wCAGC;AAED,MAAM,OAAO,GAA0C,EAAE,CAAC;AAE1D,SAAS,YAAY,CAAC,MAA0B;IAC9C,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;KACjC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;KACjC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,OAA2B;IAC/C,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,OAAO,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;KAChC;IACD,IAAI;QACF,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACpB,OAAO,KAAK,CAAC,GAAG,KAAK,4BAA4B,OAAO,GAAG,CAAC,CAAC;aAC9D;YACD,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC,CAAC;KACH;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,YAAY,WAAW,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,2CAA2C,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;SAC1E;QACD,MAAM,CAAC,CAAC;KACT;AACH,CAAC;AAED,SAAgB,UAAU,CACxB,MAAe,EACf,OAAgB,EAChB,SAAkB,EAClB,SAAkB;IAElB,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAExC,OAAO,CAAC,KAAU,EAAE,EAAE;QACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,oBAAoB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;SACzD;QACD,IAAI,SAAS,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE;YACjD,OAAO,oBAAoB,CACzB,8CAA8C,GAAG,SAAS,EAC1D,KAAK,CACN,CAAC;SACH;QACD,IAAI,SAAS,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE;YACjD,OAAO,oBAAoB,CACzB,gDAAgD,GAAG,SAAS,EAC5D,KAAK,CACN,CAAC;SACH;QACD,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;YACvB,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;YACvB,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC;AAnCD,gCAmCC;AAED,SAAgB,UAAU,CAAC,GAAY,EAAE,GAAY;IACnD,OAAO,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC;AAFD,gCAEC;AACD,SAAgB,WAAW,CAAC,GAAY,EAAE,GAAY;IACpD,OAAO,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAFD,kCAEC;AACD,SAAS,kBAAkB,CACzB,SAAkB,EAClB,GAAY,EACZ,GAAY;IAEZ,OAAO,CAAC,CAAC,EAAE,EAAE,mBAAmB,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;QACjD,IAAI,KAAa,CAAC;QAClB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;YACzB,KAAK,GAAG,CAAC,CAAC;SACX;aAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,mBAAmB,EAAE;YACvD,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC3B,OAAO,oBAAoB,CAAC,mBAAmB,EAAE,CAAQ,CAAC,CAAC;aAC5D;SACF;aAAM;YACL,OAAO,oBAAoB,CAAC,mBAAmB,EAAE,CAAW,CAAC,CAAC;SAC/D;QACD,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACzC,OAAO,oBAAoB,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;SACvD;QACD,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG,EAAE;YAC9B,OAAO,oBAAoB,CAAC,iCAAiC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;SAC7E;QACD,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG,EAAE;YAC9B,OAAO,oBAAoB,CAAC,iCAAiC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;SAC7E;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAU;IAC1B,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,SAAgB,OAAO;IACrB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAFD,0BAEC;AAED,SAAS,SAAS,CAAC,KAAU;IAC3B,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,OAAO,oBAAoB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;KACzD;IACD,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,SAAgB,QAAQ;IACtB,OAAO,SAAS,CAAC;AACnB,CAAC;AAFD,4BAEC;AAED,SAAgB,QAAQ,CAAI,GAAG,IAAS;IACtC,MAAM,GAAG,GAAG,8BAA8B,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,CAAC,KAAQ,EAAE,EAAE;QAClB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAC3B,OAAO,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SACzC;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC;AARD,4BAQC;AAED,SAAgB,YAAY,CAAC,KAAU;IACrC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAFD,oCAEC;AAED,SAAgB,WAAW;IACzB,OAAO,CAAC,CAAU,EAAE,EAAE,mBAAmB,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;QAC1D,IAAI,KAAc,CAAC;QACnB,IAAI,OAAO,CAAC,KAAK,SAAS,EAAE;YAC1B,KAAK,GAAG,CAAC,CAAC;SACX;aAAM,IAAI,mBAAmB,IAAI,CAAC,KAAK,MAAM,EAAE;YAC9C,KAAK,GAAG,IAAI,CAAC;SACd;aAAM,IAAI,mBAAmB,IAAI,CAAC,KAAK,OAAO,EAAE;YAC/C,KAAK,GAAG,KAAK,CAAC;SACf;aAAM;YACL,OAAO,oBAAoB,CAAC,oBAAoB,EAAE,CAAY,CAAC,CAAC;SACjE;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC;AAdD,kCAcC;AAED,SAAgB,SAAS,CACvB,KAAU,EACV,OAAgB,EAChB,OAAgB;IAEhB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QACjB,IAAI,KAAgB,CAAC;QACrB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACpB,KAAK,GAAG,CAAC,CAAC;SACX;aAAM,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,wBAAwB,EAAE;YACzC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;SACb;aAAM;YACL,OAAO,oBAAoB,CAAC,mBAAmB,EAAE,CAAc,CAAC,CAAC;SAClE;QACD,IAAI,OAAO,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO,EAAE;YAC7C,OAAO,oBAAoB,CAAC,uCAAuC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;SACtF;QACD,IAAI,OAAO,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO,EAAE;YAC7C,OAAO,oBAAoB,CAAC,uCAAuC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;SACtF;QACD,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACjD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,MAAM,GAAc,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE;gBACpB,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,CAAc,CAAC;aACzD;YACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;SAC/B;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC;AACJ,CAAC;AA/BD,8BA+BC;AAED,SAAgB,SAAS,CAAC,GAAG,OAAc;IACzC,OAAO,CAAC,KAAU,EAAE,IAAkB,EAAE,EAAE;QACxC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;SAClD;QACD,IAAI,OAAO,CAAC;QACZ,IAAI,gBAAgB,CAAC;QACrB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACnC,IAAI,MAAM,CAAC,SAAS,EAAE,EAAE;gBACtB,IAAI,KAAK,YAAY,wBAAU,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,KAAK,EAAE;oBAC7D,IAAI,gBAAgB,EAAE;wBACpB,OAAO,KAAK,CAAC,kCAAkC,CAAC,CAAC;qBAClD;oBACD,gBAAgB,GAAG,MAAM,CAAC;iBAC3B;qBAAM,IAAI,OAAO,EAAE;oBAClB,OAAO,KAAK,CAAC,wBAAwB,CAAC,CAAC;iBACxC;qBAAM;oBACL,OAAO,GAAG,MAAM,CAAC;iBAClB;aACF;iBAAM;gBACL,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;aAC9B;SACF;QACD,IAAI,gBAAgB,IAAI,OAAO,EAAE;YAC/B,OAAO,gBAAgB,IAAI,OAAO,CAAC;SACpC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAC7F,4BAA4B,CAC7B,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAhCD,8BAgCC;AAED,SAAgB,SAAS,CAAC,GAAG,GAAsB;IACjD,OAAO,CAAC,KAAU,EAAE,IAAkB,EAAE,EAAE;;QACxC,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,MAAM,MAAM,GAAc,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE;gBACpB,OAAO,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;aACpC;YACD,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAA,IAAA,qBAAU,EAAC,KAAK,CAAC,mCAAI,EAAE,CAAC,CAAC,CAAC;SAC1C;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,IAAA,mBAAQ,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC;AACJ,CAAC;AAbD,8BAaC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,gBAAgB,CAAC,IAKzB;;IACC,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,kBAAkB,CAAA,EAAE;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;IACD,MAAM,KAAK,GAAG,MAAA,IAAA,kBAAO,EAAC,IAAI,CAAC,KAAK,CAAC,mCAAI,EAAE,CAAC;IACxC,MAAM,WAAW,GAAG,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAG,IAAI,CAAC,KAAK,CAAC,mCAAI,IAAI,CAAC,KAAK,CAAC;IACjE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC1B,yCAAyC;YACzC,SAAS;SACV;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,MAAM,EAAE;YACV,0FAA0F;YAC1F,yCAAyC;YACzC,IAAA,eAAM,EACJ,WAAW,IAAI,MAAM,CAAC,WAAW,EACjC,kHAAkH,WAAW,QAAQ,MAAM,CAAC,WAAW,GAAG,CAC3J,CAAC;YACF,OAAO,IAAI,CAAC,KAAK,CAAC;SACnB;KACF;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAgB,UAAU,CAExB,KAAQ,EAAE,cAAoB,EAAE,eAA0B,EAAE,IAAiB;IAC7E,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,WAAC,OAAA,MAAA,WAAW,CAAC,IAAI,CAAC,mCAAI,IAAI,CAAA,EAAA,CAAC,CAAC,CAAC;IAEhG,OAAO,CAAC,KAAU,EAAE,IAAkB,EAAE,EAAE;QACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtE,OAAO,oBAAoB,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;SAC1D;QACD,eAAe,KAAf,eAAe,GAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC;QACvC,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE;YACnC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;gBAClB,OAAO,KAAK,CAAC,SAAS,KAAK,uCAAuC,CAAC,CAAC;aACrE;YACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5E,IAAI,KAAK,GAAQ,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,KAAK,CAAC,gCAAgC,KAAK,gCAAgC,CAAC,CAAC;aACrF;YACD,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE;oBACnE,SAAS;iBACV;gBACD,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC;aACxB;YACD,MAAM,UAAU,GAAc,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC;YAChE,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE;gBACxB,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aACpC;YACD,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;SACtC;QACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACtC,wCAAwC;YACxC,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,kBAAkB,KAAI,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAC/D,SAAS;aACV;YACD,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;gBAClB,OAAO,KAAK,CAAC,SAAS,KAAK,8CAA8C,CAAC,CAAC;aAC5E;YACD,uCAAuC;YACvC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;gBAChB,SAAS;aACV;YACD,IAAI,CAAC,cAAc,EAAE;gBACnB,IAAI,IAAA,yBAAI,EAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK,MAAM,EAAE;oBACxC,SAAS;iBACV;gBACD,OAAO,KAAK,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aACtD;YACD,MAAM,UAAU,GAAc,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;YACjE,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE;gBACxB,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aACpC;YACD,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;SACtC;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,IAAA,mBAAQ,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;AACJ,CAAC;AA3DD,gCA2DC;AASD,MAAa,UAAU;IACrB,YAAqB,MAAc,EAAW,OAAsC;QAA/D,WAAM,GAAN,MAAM,CAAQ;QAAW,YAAO,GAAP,OAAO,CAA+B;IAAG,CAAC;CACzF;AAFD,gCAEC;AAED,IAAK,SAAY;AAAjB,WAAK,SAAS;AAAE,CAAC,EAAZ,SAAS,KAAT,SAAS,QAAG;AAEjB,MAAa,IAAI;IAIf,YAAqB,IAAY,EAAW,IAAY,EAAW,IAAa;QAA3D,SAAI,GAAJ,IAAI,CAAQ;QAAW,SAAI,GAAJ,IAAI,CAAQ;QAAW,SAAI,GAAJ,IAAI,CAAS;IAAG,CAAC;CACrF;AALD,oBAKC;AAED,SAAS,WAAW,CAAC,KAAU;IAC7B,IAAI,KAAK,YAAY,IAAI,EAAE;QACzB,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;KACvB;IACD,IAAI,KAAK,YAAY,MAAM,EAAE;QAC3B,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;KACvB;IACD,IAAI,KAAK,YAAY,UAAU,EAAE;QAC/B,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;KACvB;IACD,OAAO,oBAAoB,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,SAAgB,UAAU;IACxB,6CAA6C;IAC7C,0FAA0F;IAC1F,kGAAkG;IAClG,kGAAkG;IAClG,OAAO,WAAW,CAAC;AACrB,CAAC;AAND,gCAMC;AAED,SAAgB,YAAY,CAAC,KAAU;IACrC,OAAO,CAAC,KAAU,EAAE,IAAkB,EAAE,EAAE;QACxC,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;SACvB;QACD,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC;AAPD,oCAOC;AAED,SAAS,QAAQ,CAAC,IAAU;IAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;QACzB,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,CAAC;KAC9C;IACD,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,WAAW,CAAC,IAAU;;IAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;QACxB,OAAO,CAAC,CAAC;KACV;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;QACzB,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,CAAC;KACjD;IACD,IACE,IAAI,CAAC,IAAI,KAAK,QAAQ;QACtB,IAAI,CAAC,IAAI,KAAK,SAAS;QACvB,IAAI,CAAC,IAAI,KAAK,QAAQ;QACtB,IAAI,CAAC,IAAI,KAAK,SAAS,EACvB;QACA,OAAO,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,KAAI,IAAI,CAAC;KAClC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,IAAK,QAOJ;AAPD,WAAK,QAAQ;IACX,qCAAO,CAAA;IACP,uCAAQ,CAAA;IACR,6CAAW,CAAA;IACX,+CAAY,CAAA;IACZ,2CAAM,CAAA;IACN,iDAAS,CAAA;AACX,CAAC,EAPI,QAAQ,KAAR,QAAQ,QAOZ;AAED,SAAS,QAAQ,CAAC,CAAmC;IACnD,gEAAgE;IAChE,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;QACrB,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,uCAAuC;YACvC,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,OAAO,QAAQ,CAAC,GAAG,CAAC;aACrB;YACD,yCAAyC;YACzC,OAAO,QAAQ,CAAC,IAAI,CAAC;SACtB;QACD,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC7B,0EAA0E;YAC1E,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE;gBACnB,OAAO,QAAQ,CAAC,OAAO,CAAC;aACzB;SACF;QACD,IAAI,CAAC,CAAC,QAAQ,EAAE;YACd,OAAO,QAAQ,CAAC,QAAQ,CAAC;SAC1B;QACD,OAAO,QAAQ,CAAC,MAAM,CAAC;KACxB;IACD,OAAO,QAAQ,CAAC,SAAS,CAAC;AAC5B,CAAC;AAED,SAAS,cAAc,CAAC,IAAiB;IACvC,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,CAAC;KACX;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC5F,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;QAChD,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;SACpB;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,WAAW,CAAC;AACrB,CAAC;AACD,SAAS,oBAAoB,CAAC,IAAgB;IAC5C,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QACvE,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CACf,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CACpC,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iCAClB,IAAI,KACP,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAC5F,EACF,EAAE,CACH,EACD,IAAI,CAAC,oBAAoB;QACvB,CAAC,CAAC,IAAI,CAAC,oBAAoB,KAAK,IAAI;YAClC,CAAC,CAAC,OAAO,EAAE;YACX,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,CAAC;QAC7C,CAAC,CAAC,SAAS,EACb,eAAe,EACf,IAAI,CACL,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,IAAA,uCAAiB,EAAC,KAAK,CAAC,CAAC;IACpE,MAAM,aAAa,GACjB,eAAe,CAAC,MAAM,GAAG,CAAC;QACxB,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,EAAE,CAAC;IAET,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO,SAAS,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC9D;IACD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,GAAG,EAAE;QACxC,yFAAyF;QACzF,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACnF;IACD,OAAO,CAAC,KAAU,EAAE,IAAkB,EAAE,EAAE;QACxC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,GAAG,IAAI,KAAK,EAAE;YAC7F,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5E,IAAI,iBAAiB,EAAE;gBACrB,OAAO,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;aACvC;SACF;QACD,wFAAwF;QACxF,qDAAqD;QACrD,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE;YACpB,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SACtC;QACD,OAAO,KAAK,CAAC,uCAAuC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAAC,IAAU;IACvC,IAAK,IAAY,CAAC,IAAI,EAAE;QACtB,OAAO,QAAQ,CAAC,GAAI,IAAY,CAAC,IAAI,CAAC,CAAC;KACxC;IACD,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,SAAS;YACZ,OAAO,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/E,KAAK,SAAS;YACZ,OAAO,WAAW,EAAE,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7E,KAAK,QAAQ;YACX,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACpC,KAAK,MAAM;YACT,OAAO,QAAQ,EAAE,CAAC;QACpB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,KAAK,OAAO;YACV,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,KAAK,cAAc;YACjB,OAAO,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpE,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC;QAChC,KAAK,SAAS;YACZ,OAAO,OAAO,EAAE,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,UAAU,EAAE,CAAC;KACvB;AACH,CAAC;AAhCD,wCAgCC;AAED,SAAgB,WAAW,CAAc,GAAc;IACrD,IAAI,MAA0B,CAAC;IAC/B,OAAO,CAAC,KAAY,EAAE,IAAkB,EAAE,EAAE;QAC1C,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,GAAG,GAAG,EAAE,CAAC;SAChB;QACD,OAAO,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC;AARD,kCAQC;AAED,SAAgB,eAAe,CAC7B,WAAuD;IAEvD,OAAO,CAAC,KAAY,EAAE,IAAkB,EAAE,EAAE;QAC1C,IAAI,KAAK,YAAY,WAAW,EAAE;YAChC,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;SACvB;QACD,IAAI;YACF,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;SAC9C;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,YAAY,SAAS,EAAE;gBAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;aAC7B;YACD,MAAM,CAAC,CAAC;SACT;IACH,CAAC,CAAC;AACJ,CAAC;AAhBD,0CAgBC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,GAAG,QAAuD;IAGtF,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QACvC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAsB,EAAE,GAAW,EAAE,EAAE;YACzD,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,SAAS,GAAG,sBAAsB,CAAC,CAAC;aACrD;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAZD,sCAYC;AAED,SAAgB,wBAAwB,CACtC,kBAA0B,EAC1B,aAAmB;IAEnB,MAAM,UAAU,GACd,aAAa,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC;IAExF,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE;QAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC;QAChG,IAAI,CAAC,IAAA,gBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAA,aAAI,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YACzC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;SAC/E;QACD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;KAChB;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE;QAChC,MAAM,IAAI,KAAK,CACb,4DAA4D,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAC1F,CAAC;KACH;IACD,MAAM,cAAc,GAAG,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC;IACvE,MAAM,WAAW,GACf,cAAc,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC;IAE3F,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE;QAChC,OAAO,wBAAwB,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;KACrE;IACD,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE;QACjC,MAAM,IAAI,KAAK,CACb,wDAAwD,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CACtF,CAAC;KACH;IACD,OAAO,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC;AAChC,CAAC;AAjCD,4DAiCC;AAED,kBAAkB;AAClB,SAAgB,4BAA4B,CAC1C,kBAA0B,EAC1B,UAAoC;IAEpC,MAAM,IAAI,GAAG,wBAAwB,CAAC,kBAAkB,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IACjF,OAAO,IAAI,CAAC,MAAM,CAChB,CAAC,IAAwC,EAAE,CAAS,EAAE,EAAE,CAAC,iCAAM,IAAI,KAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,IAAG,EAC7F,EAAE,CACH,CAAC;AACJ,CAAC;AATD,oEASC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,0BAA0B,CACxC,kBAA0B,EAC1B,OAA2C,EAC3C,aAA8B;IAE9B,MAAM,WAAW,GAAG,aAAa,CAC/B,OAAO,EACP,GAAG,CAAC,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAA8B,EAAE,EAAE,CAC9D,4BAA4B,CAAC,kBAAkB,EAAE,IAAI,CAAC,CACvD,CACF,CAAC;IACF,OAAO,CAAC,KAAU,EAAE,IAAkB,EAAE,EAAE;QACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,KAAK,CAAC,0DAA0D,CAAC,CAAC;SAC1E;QACD,IAAI,kBAAkB,CAAC;QACvB,IACE,CAAC,CAAC,kBAAkB,IAAI,KAAK,CAAC;YAC9B,OAAO,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC,KAAK,QAAQ,EACpE;YACA,OAAO,KAAK,CACV,kCAAkC,kBAAkB,qCAAqC,kBAAkB,WAAW,CACvH,CAAC;SACH;QACD,MAAM,KAAK,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,KAAK,CACV,oBAAoB,IAAI,CAAC,SAAS,CAChC,kBAAkB,CACnB,cAAc,kBAAkB,kCAAkC,CACpE,CAAC;SACH;QACD,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC;AAlCD,gEAkCC"}
|
|
1
|
+
{"version":3,"file":"make.js","sourceRoot":"","sources":["../src/make.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -4,13 +4,19 @@ import * as make from './make';
|
|
|
4
4
|
import { fromReflection } from './make';
|
|
5
5
|
import * as valueClass from './value-class';
|
|
6
6
|
import * as reflection from './reflection-type';
|
|
7
|
+
import { ValueClass } from './value-class';
|
|
7
8
|
export { redirect } from './redirect';
|
|
8
9
|
export { make, fromReflection, server, client, valueClass, reflection };
|
|
9
10
|
export declare const noContentContentType: "oatsNoContent";
|
|
11
|
+
export { serialize } from './serialize';
|
|
12
|
+
export { getType, withType } from './type-tag';
|
|
10
13
|
declare type Scalar = number | string | boolean;
|
|
11
14
|
declare const typeWitnessKey: unique symbol;
|
|
12
15
|
declare const tagKey: unique symbol;
|
|
13
16
|
declare type ScalarWithoutBrand<V> = V extends ShapedClass<infer S> ? ScalarWithoutBrand<S> : V;
|
|
17
|
+
export declare function instanceAssign(to: ValueClass, value: Record<string, unknown>, opts: make.MakeOptions | {
|
|
18
|
+
unSafeSet: boolean;
|
|
19
|
+
} | undefined, builder: make.Maker<any, any>): valueClass.ValueClass;
|
|
14
20
|
export declare type ShapeOf<A> = A extends Scalar ? ScalarWithoutBrand<A> : A extends ShapedClass<infer S> ? S : unknown extends A ? unknown : A extends Array<infer Item> ? Array<ShapeOf<Item>> : A extends ReadonlyArray<infer Item> ? ReadonlyArray<ShapeOf<Item>> : {
|
|
15
21
|
[K in keyof A]: ShapeOf<A[K]>;
|
|
16
22
|
};
|
package/dist/runtime.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.pmap = exports.getAll = exports.map = exports.set = exports.text = exports.json = exports.noContent = exports.setHeaders = exports.noContentContentType = exports.reflection = exports.valueClass = exports.client = exports.server = exports.fromReflection = exports.make = exports.redirect = void 0;
|
|
3
|
+
exports.pmap = exports.getAll = exports.map = exports.set = exports.text = exports.json = exports.noContent = exports.setHeaders = exports.instanceAssign = exports.withType = exports.getType = exports.serialize = exports.noContentContentType = exports.reflection = exports.valueClass = exports.client = exports.server = exports.fromReflection = exports.make = exports.redirect = void 0;
|
|
4
4
|
const server = require("./server");
|
|
5
5
|
exports.server = server;
|
|
6
6
|
const client = require("./client");
|
|
@@ -13,11 +13,29 @@ const valueClass = require("./value-class");
|
|
|
13
13
|
exports.valueClass = valueClass;
|
|
14
14
|
const reflection = require("./reflection-type");
|
|
15
15
|
exports.reflection = reflection;
|
|
16
|
+
const typeTag = require("./type-tag");
|
|
16
17
|
var redirect_1 = require("./redirect");
|
|
17
18
|
Object.defineProperty(exports, "redirect", { enumerable: true, get: function () { return redirect_1.redirect; } });
|
|
18
19
|
exports.noContentContentType = 'oatsNoContent';
|
|
20
|
+
var serialize_1 = require("./serialize");
|
|
21
|
+
Object.defineProperty(exports, "serialize", { enumerable: true, get: function () { return serialize_1.serialize; } });
|
|
22
|
+
var type_tag_1 = require("./type-tag");
|
|
23
|
+
Object.defineProperty(exports, "getType", { enumerable: true, get: function () { return type_tag_1.getType; } });
|
|
24
|
+
Object.defineProperty(exports, "withType", { enumerable: true, get: function () { return type_tag_1.withType; } });
|
|
19
25
|
const typeWitnessKey = Symbol();
|
|
20
26
|
const tagKey = Symbol();
|
|
27
|
+
// helper to set necessary metadata for valueclass instances
|
|
28
|
+
function instanceAssign(to, value, opts, builder) {
|
|
29
|
+
Object.assign(to, opts && 'unSafeSet' in opts ? value : builder(value, opts).success());
|
|
30
|
+
// when we create an instance of a ValueClass we need to propagate the type information from 'value' to the newly
|
|
31
|
+
// constructed instance
|
|
32
|
+
const existingType = typeTag.getType(value);
|
|
33
|
+
if (existingType) {
|
|
34
|
+
return typeTag.withType(to, existingType);
|
|
35
|
+
}
|
|
36
|
+
return to;
|
|
37
|
+
}
|
|
38
|
+
exports.instanceAssign = instanceAssign;
|
|
21
39
|
class ShapedClass {
|
|
22
40
|
}
|
|
23
41
|
class BrandedClass {
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/serialize.js
CHANGED
|
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.serialize = void 0;
|
|
4
4
|
const type_tag_1 = require("./type-tag");
|
|
5
5
|
function serialize(value) {
|
|
6
|
+
if (!value || typeof value !== 'object') {
|
|
7
|
+
return value;
|
|
8
|
+
}
|
|
6
9
|
if (Array.isArray(value)) {
|
|
7
10
|
return value.map(v => serialize(v));
|
|
8
11
|
}
|
|
@@ -10,23 +13,33 @@ function serialize(value) {
|
|
|
10
13
|
if (!types) {
|
|
11
14
|
return value;
|
|
12
15
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
default:
|
|
27
|
-
return value;
|
|
16
|
+
let hasAdditionalProps = false;
|
|
17
|
+
// get mapping from all types ts property names to network names
|
|
18
|
+
const jointMap = types
|
|
19
|
+
.flatMap(type => (type.type === 'object' ? [type] : []))
|
|
20
|
+
.reduce((memo, type) => {
|
|
21
|
+
if (type.additionalProperties !== false) {
|
|
22
|
+
hasAdditionalProps = true;
|
|
23
|
+
}
|
|
24
|
+
for (const key in type.properties) {
|
|
25
|
+
const mapped = type.properties[key].networkName;
|
|
26
|
+
if (mapped != null) {
|
|
27
|
+
memo.set(key, mapped);
|
|
28
|
+
}
|
|
28
29
|
}
|
|
29
|
-
|
|
30
|
+
return memo;
|
|
31
|
+
}, new Map());
|
|
32
|
+
// in case there are no network mapping done we can return immediately to avoid wasting a loop
|
|
33
|
+
if (jointMap.size === 0 && !hasAdditionalProps) {
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
// map value using jointMap
|
|
37
|
+
return Object.entries(value).reduce((memo, [key, prop]) => {
|
|
38
|
+
var _a;
|
|
39
|
+
const to = (_a = jointMap.get(key)) !== null && _a !== void 0 ? _a : key;
|
|
40
|
+
memo[to] = serialize(prop);
|
|
41
|
+
return memo;
|
|
42
|
+
}, {});
|
|
30
43
|
}
|
|
31
44
|
exports.serialize = serialize;
|
|
32
45
|
//# sourceMappingURL=serialize.js.map
|
package/dist/serialize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AAErC,SAAgB,SAAS,CAAC,KAAU;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;KACrC;IACD,MAAM,KAAK,GAAG,IAAA,kBAAO,EAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,KAAK,CAAC;KACd;IACD,
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AAErC,SAAgB,SAAS,CAAC,KAAU;IAClC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACvC,OAAO,KAAK,CAAC;KACd;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;KACrC;IACD,MAAM,KAAK,GAAG,IAAA,kBAAO,EAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,KAAK,CAAC;KACd;IACD,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,gEAAgE;IAChE,MAAM,QAAQ,GAAG,KAAK;SACnB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACvD,MAAM,CAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QAC1C,IAAI,IAAI,CAAC,oBAAoB,KAAK,KAAK,EAAE;YACvC,kBAAkB,GAAG,IAAI,CAAC;SAC3B;QACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;YAChD,IAAI,MAAM,IAAI,IAAI,EAAE;gBAClB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;aACvB;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAChB,8FAA8F;IAC9F,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE;QAC9C,OAAO,KAAK,CAAC;KACd;IACD,2BAA2B;IAC3B,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAsB,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;;QAC7E,MAAM,EAAE,GAAG,MAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,GAAG,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AArCD,8BAqCC"}
|
package/dist/type-tag.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Type } from './reflection-type';
|
|
2
2
|
export declare function withType<A>(to: A, type: Type[]): A;
|
|
3
3
|
export declare function getTypeSet(value: Record<string, any>): Set<Type> | undefined;
|
|
4
|
-
/** Get reflection type from a made value.
|
|
4
|
+
/** Get reflection type from a made value for serialization.
|
|
5
5
|
* Note that only directly made object values or ValueClasses can be used
|
|
6
6
|
* */
|
|
7
7
|
export declare function getType(value: Record<string, any>): Type[] | undefined;
|
package/dist/type-tag.js
CHANGED
|
@@ -50,7 +50,7 @@ function getTypeSet(value) {
|
|
|
50
50
|
return;
|
|
51
51
|
}
|
|
52
52
|
exports.getTypeSet = getTypeSet;
|
|
53
|
-
/** Get reflection type from a made value.
|
|
53
|
+
/** Get reflection type from a made value for serialization.
|
|
54
54
|
* Note that only directly made object values or ValueClasses can be used
|
|
55
55
|
* */
|
|
56
56
|
function getType(value) {
|
|
@@ -60,5 +60,5 @@ function getType(value) {
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
exports.getType = getType;
|
|
63
|
-
const reflection = Symbol();
|
|
63
|
+
const reflection = Symbol('reflection');
|
|
64
64
|
//# sourceMappingURL=type-tag.js.map
|
package/dist/type-tag.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-tag.js","sourceRoot":"","sources":["../src/type-tag.ts"],"names":[],"mappings":";;;AACA,+CAA2C;AAE3C,SAAgB,QAAQ,CAAI,EAAK,EAAE,IAAY;IAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,OAAO,EAAE,CAAC;KACX;IACD,0EAA0E;IAC1E,oEAAoE;IACpE,0EAA0E;IAC1E,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IAChC,IAAI,QAAQ,EAAE;QACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC;KACX;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,0DAA0D;IAC1D,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,UAAU,EAAE;QACpC,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,OAAO;KACf,CAAC,CAAC;IACH,OAAO,EAAE,CAAC;AACZ,CAAC;AApBD,4BAoBC;AAED,SAAgB,UAAU,CAAC,KAA0B;IACnD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACvC,OAAO;KACR;IAED,gFAAgF;IAChF,0DAA0D;IAC1D,aAAa;IACb,MAAM,CAAC,GAAc,KAAK,CAAC,UAAU,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE;QACnB,OAAO,CAAC,CAAC;KACV;IACD,IAAI,KAAK,YAAY,wBAAU,EAAE;QAC/B,gFAAgF;QAChF,aAAa;QACb,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACvE,0DAA0D;QAC1D,yEAAyE;QACzE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE;YACvC,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;KAClB;IACD,OAAO;AACT,CAAC;AAzBD,gCAyBC;AAED;;KAEK;AACL,SAAgB,OAAO,CAAC,KAA0B;IAChD,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KACf;AACH,CAAC;AALD,0BAKC;AAED,MAAM,UAAU,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"type-tag.js","sourceRoot":"","sources":["../src/type-tag.ts"],"names":[],"mappings":";;;AACA,+CAA2C;AAE3C,SAAgB,QAAQ,CAAI,EAAK,EAAE,IAAY;IAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,OAAO,EAAE,CAAC;KACX;IACD,0EAA0E;IAC1E,oEAAoE;IACpE,0EAA0E;IAC1E,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IAChC,IAAI,QAAQ,EAAE;QACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC;KACX;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,0DAA0D;IAC1D,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,UAAU,EAAE;QACpC,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,OAAO;KACf,CAAC,CAAC;IACH,OAAO,EAAE,CAAC;AACZ,CAAC;AApBD,4BAoBC;AAED,SAAgB,UAAU,CAAC,KAA0B;IACnD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACvC,OAAO;KACR;IAED,gFAAgF;IAChF,0DAA0D;IAC1D,aAAa;IACb,MAAM,CAAC,GAAc,KAAK,CAAC,UAAU,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE;QACnB,OAAO,CAAC,CAAC;KACV;IACD,IAAI,KAAK,YAAY,wBAAU,EAAE;QAC/B,gFAAgF;QAChF,aAAa;QACb,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACvE,0DAA0D;QAC1D,yEAAyE;QACzE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE;YACvC,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;KAClB;IACD,OAAO;AACT,CAAC;AAzBD,gCAyBC;AAED;;KAEK;AACL,SAAgB,OAAO,CAAC,KAA0B;IAChD,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KACf;AACH,CAAC;AALD,0BAKC;AAED,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smartlyio/oats-runtime",
|
|
3
|
-
"version": "4.4.1-alpha.
|
|
3
|
+
"version": "4.4.1-alpha.19+c328682",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Runtime for Oats a Openapi3 based generator for typescript aware servers and clients",
|
|
6
6
|
"private": false,
|
|
@@ -51,5 +51,5 @@
|
|
|
51
51
|
"tsconfig-paths": "3.14.1",
|
|
52
52
|
"typescript": "4.6.3"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "c32868284a39f3b02ff3ace0633eb31ed882e3c5"
|
|
55
55
|
}
|
package/src/make.ts
CHANGED
|
@@ -395,6 +395,9 @@ function getInputPropName(args: {
|
|
|
395
395
|
if (!args.opts?.convertFromNetwork) {
|
|
396
396
|
return args.index;
|
|
397
397
|
}
|
|
398
|
+
// we need to look at the types already used for making the value to detect cases
|
|
399
|
+
// where the property has already been mapped and we should use the ts side
|
|
400
|
+
// property name
|
|
398
401
|
const types = getType(args.value) ?? [];
|
|
399
402
|
const networkProp = args.fromNetwork?.[args.index] ?? args.index;
|
|
400
403
|
for (const type of types) {
|
|
@@ -467,12 +470,20 @@ export function makeObject<
|
|
|
467
470
|
}
|
|
468
471
|
return error('unexpected property').errorPath(index);
|
|
469
472
|
}
|
|
473
|
+
// If the input value A has been made already with network prop name mapping
|
|
474
|
+
// this runs the property value through the current additionalProps maker to validate it
|
|
475
|
+
// nb. the property key *has* already been mapped when making A and we just use it here
|
|
476
|
+
// this works unless we start mapping additionalProp property names.
|
|
470
477
|
const propResult: Make<any> = additionalProp(value[index], opts);
|
|
471
478
|
if (propResult.isError()) {
|
|
472
479
|
return propResult.errorPath(index);
|
|
473
480
|
}
|
|
474
481
|
result[index] = propResult.success();
|
|
475
482
|
}
|
|
483
|
+
const oldType = getType(value);
|
|
484
|
+
if (oldType) {
|
|
485
|
+
withType(result, oldType);
|
|
486
|
+
}
|
|
476
487
|
return Make.ok(withType(result, type ? [type] : []));
|
|
477
488
|
};
|
|
478
489
|
}
|
|
@@ -625,6 +636,22 @@ function fromObjectReflection(type: ObjectType): Maker<any, any> {
|
|
|
625
636
|
);
|
|
626
637
|
}
|
|
627
638
|
|
|
639
|
+
function networkMapFromDiscriminatedType(prop: string, type: Type): string | undefined {
|
|
640
|
+
switch (type.type) {
|
|
641
|
+
case 'object':
|
|
642
|
+
return type.properties[prop].networkName;
|
|
643
|
+
case 'named':
|
|
644
|
+
return networkMapFromDiscriminatedType(prop, type.reference().definition);
|
|
645
|
+
case 'intersection':
|
|
646
|
+
// note that within a single discriminator set the key must the be the same
|
|
647
|
+
// and thus the network key must be the same and we can consider only the first option
|
|
648
|
+
return networkMapFromDiscriminatedType(prop, type.options[0]);
|
|
649
|
+
case 'union':
|
|
650
|
+
return networkMapFromDiscriminatedType(prop, type.options[0]);
|
|
651
|
+
}
|
|
652
|
+
return;
|
|
653
|
+
}
|
|
654
|
+
|
|
628
655
|
function fromUnionReflection(types: Type[]): Maker<any, any> {
|
|
629
656
|
const { discriminator, undiscriminated } = discriminateUnion(types);
|
|
630
657
|
const untaggedMaker =
|
|
@@ -640,9 +667,20 @@ function fromUnionReflection(types: Type[]): Maker<any, any> {
|
|
|
640
667
|
// note that we need to check the undiscriminated values also as those *might* match also
|
|
641
668
|
discriminatedMakers.set(key, makeOneOf(...[...untaggedMaker, fromReflection(t)]));
|
|
642
669
|
}
|
|
670
|
+
// we choose the first entry from discriminators as all the options *must* have the same property name and
|
|
671
|
+
// thus the same network property name.
|
|
672
|
+
const networkDiscriminatorKey =
|
|
673
|
+
networkMapFromDiscriminatedType(discriminator.key, [...discriminator.map.values()][0]) ??
|
|
674
|
+
discriminator.key;
|
|
643
675
|
return (value: any, opts?: MakeOptions) => {
|
|
644
|
-
|
|
645
|
-
|
|
676
|
+
const key = getInputPropName({
|
|
677
|
+
value,
|
|
678
|
+
index: discriminator.key,
|
|
679
|
+
fromNetwork: { [discriminator.key]: networkDiscriminatorKey },
|
|
680
|
+
opts
|
|
681
|
+
});
|
|
682
|
+
if (value && typeof value === 'object' && !Array.isArray(value) && key in value) {
|
|
683
|
+
const discriminatedType = discriminatedMakers.get(value[key]);
|
|
646
684
|
if (discriminatedType) {
|
|
647
685
|
return discriminatedType(value, opts);
|
|
648
686
|
}
|
package/src/runtime.ts
CHANGED
|
@@ -4,12 +4,16 @@ import * as make from './make';
|
|
|
4
4
|
import { fromReflection } from './make';
|
|
5
5
|
import * as valueClass from './value-class';
|
|
6
6
|
import * as reflection from './reflection-type';
|
|
7
|
+
import * as typeTag from './type-tag';
|
|
8
|
+
import { ValueClass } from './value-class';
|
|
7
9
|
|
|
8
10
|
export { redirect } from './redirect';
|
|
9
11
|
|
|
10
12
|
export { make, fromReflection, server, client, valueClass, reflection };
|
|
11
13
|
|
|
12
14
|
export const noContentContentType = 'oatsNoContent' as const;
|
|
15
|
+
export { serialize } from './serialize';
|
|
16
|
+
export { getType, withType } from './type-tag';
|
|
13
17
|
|
|
14
18
|
type Scalar = number | string | boolean;
|
|
15
19
|
|
|
@@ -18,6 +22,23 @@ const tagKey = Symbol();
|
|
|
18
22
|
|
|
19
23
|
type ScalarWithoutBrand<V> = V extends ShapedClass<infer S> ? ScalarWithoutBrand<S> : V;
|
|
20
24
|
|
|
25
|
+
// helper to set necessary metadata for valueclass instances
|
|
26
|
+
export function instanceAssign(
|
|
27
|
+
to: ValueClass,
|
|
28
|
+
value: Record<string, unknown>,
|
|
29
|
+
opts: make.MakeOptions | { unSafeSet: boolean } | undefined,
|
|
30
|
+
builder: make.Maker<any, any>
|
|
31
|
+
) {
|
|
32
|
+
Object.assign(to, opts && 'unSafeSet' in opts ? value : builder(value, opts).success());
|
|
33
|
+
// when we create an instance of a ValueClass we need to propagate the type information from 'value' to the newly
|
|
34
|
+
// constructed instance
|
|
35
|
+
const existingType = typeTag.getType(value);
|
|
36
|
+
if (existingType) {
|
|
37
|
+
return typeTag.withType(to, existingType);
|
|
38
|
+
}
|
|
39
|
+
return to;
|
|
40
|
+
}
|
|
41
|
+
|
|
21
42
|
export type ShapeOf<A> = A extends Scalar
|
|
22
43
|
? ScalarWithoutBrand<A>
|
|
23
44
|
: A extends ShapedClass<infer S>
|
package/src/serialize.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { getType } from './type-tag';
|
|
2
2
|
|
|
3
3
|
export function serialize(value: any): any {
|
|
4
|
+
if (!value || typeof value !== 'object') {
|
|
5
|
+
return value;
|
|
6
|
+
}
|
|
4
7
|
if (Array.isArray(value)) {
|
|
5
8
|
return value.map(v => serialize(v));
|
|
6
9
|
}
|
|
@@ -8,21 +11,30 @@ export function serialize(value: any): any {
|
|
|
8
11
|
if (!types) {
|
|
9
12
|
return value;
|
|
10
13
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
14
|
+
let hasAdditionalProps = false;
|
|
15
|
+
// get mapping from all types ts property names to network names
|
|
16
|
+
const jointMap = types
|
|
17
|
+
.flatMap(type => (type.type === 'object' ? [type] : []))
|
|
18
|
+
.reduce<Map<string, string>>((memo, type) => {
|
|
19
|
+
if (type.additionalProperties !== false) {
|
|
20
|
+
hasAdditionalProps = true;
|
|
21
|
+
}
|
|
22
|
+
for (const key in type.properties) {
|
|
23
|
+
const mapped = type.properties[key].networkName;
|
|
24
|
+
if (mapped != null) {
|
|
25
|
+
memo.set(key, mapped);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return memo;
|
|
29
|
+
}, new Map());
|
|
30
|
+
// in case there are no network mapping done we can return immediately to avoid wasting a loop
|
|
31
|
+
if (jointMap.size === 0 && !hasAdditionalProps) {
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
// map value using jointMap
|
|
35
|
+
return Object.entries(value).reduce<Record<string, any>>((memo, [key, prop]) => {
|
|
36
|
+
const to = jointMap.get(key) ?? key;
|
|
37
|
+
memo[to] = serialize(prop);
|
|
38
|
+
return memo;
|
|
39
|
+
}, {});
|
|
28
40
|
}
|
package/src/type-tag.ts
CHANGED
|
@@ -50,7 +50,7 @@ export function getTypeSet(value: Record<string, any>): Set<Type> | undefined {
|
|
|
50
50
|
return;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
/** Get reflection type from a made value.
|
|
53
|
+
/** Get reflection type from a made value for serialization.
|
|
54
54
|
* Note that only directly made object values or ValueClasses can be used
|
|
55
55
|
* */
|
|
56
56
|
export function getType(value: Record<string, any>): Type[] | undefined {
|
|
@@ -60,4 +60,4 @@ export function getType(value: Record<string, any>): Type[] | undefined {
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
const reflection = Symbol();
|
|
63
|
+
const reflection = Symbol('reflection');
|