@smartlyio/oats-runtime 4.4.0 → 4.4.1-alpha.9

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/client.js CHANGED
@@ -95,7 +95,7 @@ function fillInPathParams(params, path) {
95
95
  }
96
96
  function makeMethod(adapter, handler, pathParams) {
97
97
  const params = paramObject(pathParams, handler.path);
98
- const call = server.safe(handler.headers, handler.params, handler.query, handler.body, handler.response, ctx => adapter(Object.assign(Object.assign({}, ctx), { path: fillInPathParams(params, handler.path), servers: handler.servers })));
98
+ const call = server.safe(handler.headers, handler.params, handler.query, handler.body, handler.response, ctx => adapter(Object.assign(Object.assign({}, ctx), { path: fillInPathParams(params, handler.path), servers: handler.servers })), { mode: 'client' });
99
99
  return (ctx) => call({
100
100
  path: handler.path,
101
101
  servers: handler.servers,
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/make.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { NamedTypeDefinition, Type } from './reflection-type';
2
+ import { NamedTypeDefinition, ObjectType, Type } from './reflection-type';
3
3
  export declare class MakeError extends Error {
4
4
  readonly errors: ValidationError[];
5
5
  constructor(errors: ValidationError[]);
@@ -43,6 +43,8 @@ export interface MakeOptions {
43
43
  * (if query parameter is not repeated, it will not be an array on server side).
44
44
  */
45
45
  allowConvertForArrayType?: boolean;
46
+ /** If true convert property names from network to ts format while parsing objects */
47
+ convertFromNetwork?: boolean;
46
48
  }
47
49
  export declare type Maker<Shape, V> = (value: Shape, opts?: MakeOptions) => Make<V>;
48
50
  export declare function registerFormat(format: string, maker: Maker<any, undefined>): void;
@@ -65,7 +67,11 @@ export declare function makeObject<P extends {
65
67
  [key: string]: Maker<any, any> | {
66
68
  optional: Maker<any, any>;
67
69
  };
68
- }>(props: P, additionalProp?: any, comparisorOrder?: string[]): (value: any, opts?: MakeOptions | undefined) => Make<any>;
70
+ }>(props: P, additionalProp?: any, comparisorOrder?: string[], type?: ObjectType): (value: any, opts?: MakeOptions | undefined) => Make<any>;
71
+ /** Get reflection type from a made value.
72
+ * Note that only directly made object values or ValueClasses can be used
73
+ * */
74
+ export declare function getType(value: Record<string, any>): Type | undefined;
69
75
  export declare type Binary = File | Buffer | FormBinary;
70
76
  export declare class FormBinary {
71
77
  readonly binary: Binary;
package/dist/make.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeOneOfWithDiscriminator = exports.extractDiscriminatorValueMap = exports.extractDiscriminatorKeys = exports.mergeMappings = exports.createMakerWith = exports.createMaker = exports.fromReflection = exports.makeNullable = exports.makeBinary = exports.File = exports.FormBinary = exports.makeObject = exports.makeAllOf = exports.makeOneOf = exports.makeArray = exports.makeBoolean = exports.makeOptional = exports.makeEnum = exports.makeVoid = exports.makeAny = exports.makeInteger = exports.makeNumber = exports.makeString = exports.registerFormat = exports.Make = exports.validationErrorPrinter = exports.MakeError = void 0;
3
+ exports.makeOneOfWithDiscriminator = exports.extractDiscriminatorValueMap = exports.extractDiscriminatorKeys = exports.mergeMappings = exports.createMakerWith = exports.createMaker = exports.fromReflection = exports.makeNullable = exports.makeBinary = exports.File = exports.FormBinary = exports.getType = exports.makeObject = exports.makeAllOf = exports.makeOneOf = exports.makeArray = exports.makeBoolean = exports.makeOptional = exports.makeEnum = exports.makeVoid = exports.makeAny = exports.makeInteger = exports.makeNumber = exports.makeString = exports.registerFormat = exports.Make = exports.validationErrorPrinter = exports.MakeError = void 0;
4
4
  const assert_1 = require("./assert");
5
5
  const safe_navigation_1 = require("@smartlyio/safe-navigation");
6
6
  const _ = require("lodash");
@@ -310,8 +310,11 @@ exports.makeAllOf = makeAllOf;
310
310
  function isMagic(field) {
311
311
  return ['__proto__', 'constructor'].indexOf(field) >= 0;
312
312
  }
313
- function makeObject(props, additionalProp, comparisorOrder) {
313
+ function makeObject(props, additionalProp, comparisorOrder, type) {
314
+ const fromNetwork = fromNetworkMap(type);
315
+ const listedInputPropNames = new Set(Object.keys(props).map(prop => { var _a; return (_a = fromNetwork[prop]) !== null && _a !== void 0 ? _a : prop; }));
314
316
  return (value, opts) => {
317
+ var _a;
315
318
  if (typeof value !== 'object' || value == null || Array.isArray(value)) {
316
319
  return getErrorWithValueMsg('expected an object', value);
317
320
  }
@@ -321,26 +324,32 @@ function makeObject(props, additionalProp, comparisorOrder) {
321
324
  if (isMagic(index)) {
322
325
  return error(`Using ${index} as field of an object is not allowed`);
323
326
  }
327
+ const inputPropName = (opts === null || opts === void 0 ? void 0 : opts.convertFromNetwork) ? (_a = fromNetwork === null || fromNetwork === void 0 ? void 0 : fromNetwork[index]) !== null && _a !== void 0 ? _a : index : index;
324
328
  let maker = props[index];
325
329
  if (!maker) {
326
330
  return error(`Prop maker not found for key ${index}. This is likely a bug in oats`);
327
331
  }
328
332
  if (maker.optional) {
329
- if (!(index in value) || value[index] === undefined) {
333
+ if (!(inputPropName in value) || value[inputPropName] === undefined) {
330
334
  continue;
331
335
  }
332
336
  maker = maker.optional;
333
337
  }
334
- const propResult = maker(value[index], opts);
338
+ const propResult = maker(value[inputPropName], opts);
335
339
  if (propResult.isError()) {
336
340
  return propResult.errorPath(index);
337
341
  }
338
342
  result[index] = propResult.success();
339
343
  }
340
344
  for (const index of Object.keys(value)) {
345
+ // do not consider props that got mapped
346
+ if ((opts === null || opts === void 0 ? void 0 : opts.convertFromNetwork) && listedInputPropNames.has(index)) {
347
+ continue;
348
+ }
341
349
  if (isMagic(index)) {
342
350
  return error(`Using ${index} as objects additional field is not allowed.`);
343
351
  }
352
+ // do not allow overriding mapped props
344
353
  if (props[index]) {
345
354
  continue;
346
355
  }
@@ -356,10 +365,29 @@ function makeObject(props, additionalProp, comparisorOrder) {
356
365
  }
357
366
  result[index] = propResult.success();
358
367
  }
368
+ // tag each constructed object with a hidden type property
369
+ Object.defineProperty(result, reflection, { enumerable: false, value: type });
359
370
  return Make.ok(result);
360
371
  };
361
372
  }
362
373
  exports.makeObject = makeObject;
374
+ /** Get reflection type from a made value.
375
+ * Note that only directly made object values or ValueClasses can be used
376
+ * */
377
+ function getType(value) {
378
+ if (!value || typeof value !== 'object') {
379
+ return;
380
+ }
381
+ if (value instanceof value_class_1.ValueClass) {
382
+ // a bit of leap here to trust that all ValueClasses have generated `reflection`
383
+ // @ts-ignore
384
+ return value.constructor.reflection().definition;
385
+ }
386
+ // @ts-ignore
387
+ return value[reflection] || undefined;
388
+ }
389
+ exports.getType = getType;
390
+ const reflection = Symbol();
363
391
  class FormBinary {
364
392
  constructor(binary, options) {
365
393
  this.binary = binary;
@@ -463,6 +491,19 @@ function priority(v) {
463
491
  }
464
492
  return Priority.NonScalar;
465
493
  }
494
+ function fromNetworkMap(type) {
495
+ if (!type) {
496
+ return {};
497
+ }
498
+ const fromNetwork = Object.keys(type.properties).reduce((memo, key) => {
499
+ const mapped = type.properties[key].networkName;
500
+ if (mapped) {
501
+ memo[key] = mapped;
502
+ }
503
+ return memo;
504
+ }, {});
505
+ return fromNetwork;
506
+ }
466
507
  function fromObjectReflection(type) {
467
508
  const comparisonOrder = Object.keys(type.properties).sort((aKey, bKey) => {
468
509
  const a = type.properties[aKey];
@@ -473,7 +514,7 @@ function fromObjectReflection(type) {
473
514
  ? type.additionalProperties === true
474
515
  ? makeAny()
475
516
  : fromReflection(type.additionalProperties)
476
- : undefined, comparisonOrder);
517
+ : undefined, comparisonOrder, type);
477
518
  }
478
519
  function fromUnionReflection(types) {
479
520
  const { discriminator, undiscriminated } = (0, union_discriminator_1.discriminateUnion)(types);
package/dist/make.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"make.js","sourceRoot":"","sources":["../src/make.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"make.js","sourceRoot":"","sources":["../src/make.ts"],"names":[],"mappings":";;;AAAA,qCAAwC;AACxC,gEAA8C;AAC9C,4BAA4B;AAC5B,+CAA2C;AAE3C,+DAA0D;AAC1D,mCAAuC;AAEvC,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,GAAU;IACrC,OAAO,CAAC,KAAU,EAAE,IAAkB,EAAE,EAAE;QACxC,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;SAC1B;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC;AAXD,8BAWC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1D,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,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,kBAAkB,EAAC,CAAC,CAAC,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,KAAK,CAAC,mCAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YACvF,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;QAED,0DAA0D;QAC1D,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAE9E,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC;AACJ,CAAC;AA/DD,gCA+DC;AAED;;KAEK;AACL,SAAgB,OAAO,CAAC,KAA0B;IAChD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACvC,OAAO;KACR;IACD,IAAI,KAAK,YAAY,wBAAU,EAAE;QAC/B,gFAAgF;QAChF,aAAa;QACb,OAAO,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC;KAClD;IACD,aAAa;IACb,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC;AACxC,CAAC;AAXD,0BAWC;AACD,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC;AAS5B,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"}
@@ -65,6 +65,7 @@ export interface NamedType {
65
65
  export interface PropType {
66
66
  required: boolean;
67
67
  value: Type;
68
+ networkName?: string;
68
69
  }
69
70
  export interface Props {
70
71
  [name: string]: PropType;
@@ -1 +1 @@
1
- {"version":3,"file":"reflection-type.js","sourceRoot":"","sources":["../src/reflection-type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reflection-type.js","sourceRoot":"","sources":["../src/reflection-type.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function serialize(value: any): any;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serialize = void 0;
4
+ const make_1 = require("./make");
5
+ function serialize(value) {
6
+ if (Array.isArray(value)) {
7
+ return value.map(v => serialize(v));
8
+ }
9
+ const type = (0, make_1.getType)(value);
10
+ if (!type) {
11
+ return value;
12
+ }
13
+ switch (type.type) {
14
+ case 'object':
15
+ return Object.keys(value).reduce((memo, key) => {
16
+ const prop = type.properties[key];
17
+ const serialized = serialize(value[key]);
18
+ if (prop && prop.networkName) {
19
+ memo[prop.networkName] = serialized;
20
+ }
21
+ else {
22
+ memo[key] = serialized;
23
+ }
24
+ return memo;
25
+ }, {});
26
+ default:
27
+ return value;
28
+ }
29
+ }
30
+ exports.serialize = serialize;
31
+ //# sourceMappingURL=serialize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AAEjC,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,IAAI,GAAG,IAAA,cAAO,EAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,KAAK,CAAC;KACd;IACD,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;gBAClE,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;oBAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;iBACrC;qBAAM;oBACL,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;iBACxB;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,EAAE,EAAE,CAAC,CAAC;QACT;YACE,OAAO,KAAK,CAAC;KAChB;AACH,CAAC;AAvBD,8BAuBC"}
package/dist/server.d.ts CHANGED
@@ -54,7 +54,7 @@ export declare class ResponseValidationError extends Error {
54
54
  errors: ValidationError[];
55
55
  constructor(tag: string, originalResponse: any, errors: ValidationError[]);
56
56
  }
57
- export declare function safe<H extends Headers, P extends Params, Q extends Query, Body extends RequestBody<any>, R extends Response<any, any, any, Record<string, any>>, RC extends RequestContext>(headers: Maker<any, H>, params: Maker<any, P>, query: Maker<any, Q>, body: Maker<any, Body>, response: Maker<any, R>, endpoint: Endpoint<H, P, Q, Body, R, RC>, { validationOptions }?: HandlerOptions): Endpoint<Headers, Params, Query, RequestBody<any>, Response<number, any, any, Record<string, any>>, RequestContext>;
57
+ export declare function safe<H extends Headers, P extends Params, Q extends Query, Body extends RequestBody<any>, R extends Response<any, any, any, Record<string, any>>, RC extends RequestContext>(headers: Maker<any, H>, params: Maker<any, P>, query: Maker<any, Q>, body: Maker<any, Body>, response: Maker<any, R>, endpoint: Endpoint<H, P, Q, Body, R, RC>, { validationOptions, mode }?: HandlerOptions & InternalHandlerOptions): Endpoint<Headers, Params, Query, RequestBody<any>, Response<number, any, any, Record<string, any>>, RequestContext>;
58
58
  export declare type Methods = keyof MethodHandlers;
59
59
  export declare const supportedMethods: Methods[];
60
60
  declare type AnyMaker = Maker<any, any>;
@@ -72,6 +72,14 @@ export interface Handler {
72
72
  export declare type HandlerFactory<Spec> = (adapter: ServerAdapter) => (spec: Spec) => void;
73
73
  export declare function assertMethod(method: string): Methods;
74
74
  export declare type ServerAdapter = (path: string, op: string, method: Methods, handler: SafeEndpoint, servers: string[]) => void;
75
+ declare type Mode = 'client' | 'server';
76
+ export interface InternalHandlerOptions {
77
+ /** whether we are calling this on client side or in server side.
78
+ * This may have effect on eg network <-> ts property mapping.
79
+ * This value is set automatically by oats.
80
+ * */
81
+ mode: Mode;
82
+ }
75
83
  export interface HandlerOptions {
76
84
  /**
77
85
  * Options for request schema validation.
package/dist/server.js CHANGED
@@ -4,6 +4,7 @@ exports.createHandlerFactory = exports.assertMethod = exports.supportedMethods =
4
4
  const assert_1 = require("./assert");
5
5
  const safe_navigation_1 = require("@smartlyio/safe-navigation");
6
6
  const make_1 = require("./make");
7
+ const serialize_1 = require("./serialize");
7
8
  class RequestValidationError extends Error {
8
9
  constructor(tag, errors) {
9
10
  super('invalid request ' + tag + ' ' + errors.map(make_1.validationErrorPrinter).join('\n'));
@@ -46,30 +47,55 @@ function voidify(value) {
46
47
  }
47
48
  return null;
48
49
  }
49
- function cleanHeaders(maker, headers) {
50
- const normalized = voidify(lowercaseObject(headers));
50
+ function cleanHeaders(mode, maker, headers) {
51
+ // note: we now expect that on client side headers are type conforming so do not need to lowercase those
52
+ // this is slightly breaking change is somebody has subverted the type checker
53
+ const normalized = voidify(mode === 'server' ? lowercaseObject(headers) : headers);
51
54
  const acceptsNull = maker(null);
52
55
  if (acceptsNull.isSuccess()) {
53
56
  return acceptsNull.success();
54
57
  }
55
58
  return maker(normalized, {
56
- unknownField: 'drop'
59
+ unknownField: 'drop',
60
+ convertFromNetwork: mode === 'server'
57
61
  }).success(throwRequestValidationError.bind(null, 'headers'));
58
62
  }
59
- function safe(headers, params, query, body, response, endpoint, { validationOptions = {} } = {}) {
63
+ function serializeWhenClient(mode, value) {
64
+ if (mode === 'client') {
65
+ return (0, serialize_1.serialize)(value);
66
+ }
67
+ return value;
68
+ }
69
+ function getOutBody(mode, value) {
70
+ if (!value) {
71
+ return value;
72
+ }
73
+ return { contentType: value.contentType, value: serializeWhenClient(mode, value.value) };
74
+ }
75
+ function safe(headers, params, query, body, response, endpoint, { validationOptions = {}, mode } = { mode: 'client' }) {
60
76
  return async (ctx) => {
77
+ // note: data coming to client adapter needs to be serialized and data coming from the adapter needs conversion from network
78
+ // note: data coming to server adapter needs to be deserialized and data coming from the adapter needs serialization
79
+ // this is all very clear.
80
+ const internalMakeOptions = { convertFromNetwork: mode === 'server' };
61
81
  const result = await endpoint({
62
82
  path: ctx.path,
63
83
  method: ctx.method,
64
84
  servers: ctx.servers,
65
85
  op: ctx.op,
66
- headers: cleanHeaders(headers, ctx.headers),
67
- params: params(voidify(ctx.params), validationOptions.params).success(throwRequestValidationError.bind(null, 'params')),
68
- query: query(ctx.query || {}, validationOptions.query).success(throwRequestValidationError.bind(null, 'query')),
69
- body: body(voidify(ctx.body)).success(throwRequestValidationError.bind(null, 'body')),
86
+ headers: serializeWhenClient(mode, cleanHeaders(mode, headers, ctx.headers)),
87
+ // note: path params come to the adapter in network format always as those are gleaned from the path definition
88
+ params: params(voidify(ctx.params), Object.assign(Object.assign(Object.assign({}, validationOptions.params), internalMakeOptions), { convertFromNetwork: true })).success(throwRequestValidationError.bind(null, 'params')),
89
+ query: serializeWhenClient(mode, query(ctx.query || {}, Object.assign(Object.assign({}, validationOptions.query), internalMakeOptions)).success(throwRequestValidationError.bind(null, 'query'))),
90
+ body: getOutBody(mode, body(voidify(ctx.body), internalMakeOptions).success(throwRequestValidationError.bind(null, 'body'))),
70
91
  requestContext: ctx.requestContext
71
92
  });
72
- return response(result).success(throwResponseValidationError.bind(null, `body ${ctx.path}`, result.value.value));
93
+ const responseValue = response(result, { convertFromNetwork: mode === 'client' }).success(throwResponseValidationError.bind(null, `body ${ctx.path}`, result.value.value));
94
+ if (mode === 'client' || !responseValue) {
95
+ return responseValue;
96
+ }
97
+ // the response must be serialized for transferring from server to client
98
+ return Object.assign(Object.assign({}, responseValue), { headers: (0, serialize_1.serialize)(responseValue.headers), value: Object.assign(Object.assign({}, responseValue.value), { value: (0, serialize_1.serialize)(responseValue.value.value) }) });
73
99
  };
74
100
  }
75
101
  exports.safe = safe;
@@ -110,7 +136,7 @@ function createHandlerFactory(handlers, opts) {
110
136
  const methodHandler = endpoint[method];
111
137
  const endpointWrapper = (0, safe_navigation_1.default)(tree)[path][method].$;
112
138
  (0, assert_1.assert)(endpointWrapper, 'unknown endpoint ' + method.toUpperCase() + ' ' + path);
113
- adapter(path, endpointWrapper.op, assertMethod(method), endpointWrapper.safeHandler(methodHandler, opts), endpointWrapper.servers);
139
+ adapter(path, endpointWrapper.op, assertMethod(method), endpointWrapper.safeHandler(methodHandler, Object.assign(Object.assign({}, opts), { mode: 'server' })), endpointWrapper.servers);
114
140
  });
115
141
  });
116
142
  };
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/jest.config.js ADDED
@@ -0,0 +1,38 @@
1
+ module.exports = {
2
+ moduleFileExtensions: ['js', 'ts', 'tsx'],
3
+ moduleNameMapper: {
4
+ "@smartlyio/oats$": "<rootDir>/packages/oats/index.ts",
5
+ "@smartlyio/oats-runtime$": "<rootDir>/packages/oats-runtime/src/runtime.ts",
6
+ "@smartlyio/oats-axios-adapter$": "<rootDir>/packages/oats-axios-adapter/index.ts",
7
+ "@smartlyio/oats-koa-adapter$": "<rootDir>/packages/oats-koa-adapter/index.ts",
8
+ "@smartlyio/oats-fast-check$": "<rootDir>/packages/oats-fast-check/src/index.ts"
9
+ },
10
+
11
+ testRegex: '.*\\.spec.(tsx?)$',
12
+
13
+ collectCoverageFrom: [
14
+ 'packages/*/src/**/*.{ts,tsxx}',
15
+ '!packages/*/src/**/*.story.*'
16
+ ],
17
+
18
+ coverageThreshold: {
19
+ global: {
20
+ branches: 20,
21
+ statements: 20,
22
+ },
23
+ },
24
+
25
+ modulePathIgnorePatterns: ['<rootDir>/packages/*/dist'],
26
+
27
+ transform: {
28
+ '^.+\\.(ts|js)x?$': 'ts-jest',
29
+ },
30
+
31
+ globals: {
32
+ 'ts-jest': {
33
+ isolatedModules: true,
34
+ diagnostics: true,
35
+ },
36
+ },
37
+ setupFilesAfterEnv: [],
38
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartlyio/oats-runtime",
3
- "version": "4.4.0",
3
+ "version": "4.4.1-alpha.9+b86008f",
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": "743a31718a2487b0cf7157ac1b6bc8872af256c1"
54
+ "gitHead": "b86008f01570ca3d1d733bafbdf450d86fcdae1e"
55
55
  }
package/src/client.ts CHANGED
@@ -184,7 +184,8 @@ function makeMethod(adapter: ClientAdapter, handler: server.Handler, pathParams:
184
184
  handler.body,
185
185
  handler.response,
186
186
  ctx =>
187
- adapter({ ...ctx, path: fillInPathParams(params, handler.path), servers: handler.servers })
187
+ adapter({ ...ctx, path: fillInPathParams(params, handler.path), servers: handler.servers }),
188
+ { mode: 'client' }
188
189
  );
189
190
  return (ctx: ClientArg<any, any, any>) =>
190
191
  call({
package/src/make.ts CHANGED
@@ -122,6 +122,9 @@ export interface MakeOptions {
122
122
  * (if query parameter is not repeated, it will not be an array on server side).
123
123
  */
124
124
  allowConvertForArrayType?: boolean;
125
+
126
+ /** If true convert property names from network to ts format while parsing objects */
127
+ convertFromNetwork?: boolean;
125
128
  }
126
129
 
127
130
  export type Maker<Shape, V> = (value: Shape, opts?: MakeOptions) => Make<V>;
@@ -382,7 +385,10 @@ function isMagic(field: string) {
382
385
 
383
386
  export function makeObject<
384
387
  P extends { [key: string]: Maker<any, any> | { optional: Maker<any, any> } }
385
- >(props: P, additionalProp?: any, comparisorOrder?: string[]) {
388
+ >(props: P, additionalProp?: any, comparisorOrder?: string[], type?: ObjectType) {
389
+ const fromNetwork = fromNetworkMap(type);
390
+ const listedInputPropNames = new Set(Object.keys(props).map(prop => fromNetwork[prop] ?? prop));
391
+
386
392
  return (value: any, opts?: MakeOptions) => {
387
393
  if (typeof value !== 'object' || value == null || Array.isArray(value)) {
388
394
  return getErrorWithValueMsg('expected an object', value);
@@ -393,26 +399,32 @@ export function makeObject<
393
399
  if (isMagic(index)) {
394
400
  return error(`Using ${index} as field of an object is not allowed`);
395
401
  }
402
+ const inputPropName = opts?.convertFromNetwork ? fromNetwork?.[index] ?? index : index;
396
403
  let maker: any = props[index];
397
404
  if (!maker) {
398
405
  return error(`Prop maker not found for key ${index}. This is likely a bug in oats`);
399
406
  }
400
407
  if (maker.optional) {
401
- if (!(index in value) || value[index] === undefined) {
408
+ if (!(inputPropName in value) || value[inputPropName] === undefined) {
402
409
  continue;
403
410
  }
404
411
  maker = maker.optional;
405
412
  }
406
- const propResult: Make<any> = maker(value[index], opts);
413
+ const propResult: Make<any> = maker(value[inputPropName], opts);
407
414
  if (propResult.isError()) {
408
415
  return propResult.errorPath(index);
409
416
  }
410
417
  result[index] = propResult.success();
411
418
  }
412
419
  for (const index of Object.keys(value)) {
420
+ // do not consider props that got mapped
421
+ if (opts?.convertFromNetwork && listedInputPropNames.has(index)) {
422
+ continue;
423
+ }
413
424
  if (isMagic(index)) {
414
425
  return error(`Using ${index} as objects additional field is not allowed.`);
415
426
  }
427
+ // do not allow overriding mapped props
416
428
  if (props[index]) {
417
429
  continue;
418
430
  }
@@ -428,10 +440,31 @@ export function makeObject<
428
440
  }
429
441
  result[index] = propResult.success();
430
442
  }
443
+
444
+ // tag each constructed object with a hidden type property
445
+ Object.defineProperty(result, reflection, { enumerable: false, value: type });
446
+
431
447
  return Make.ok(result);
432
448
  };
433
449
  }
434
450
 
451
+ /** Get reflection type from a made value.
452
+ * Note that only directly made object values or ValueClasses can be used
453
+ * */
454
+ export function getType(value: Record<string, any>): Type | undefined {
455
+ if (!value || typeof value !== 'object') {
456
+ return;
457
+ }
458
+ if (value instanceof ValueClass) {
459
+ // a bit of leap here to trust that all ValueClasses have generated `reflection`
460
+ // @ts-ignore
461
+ return value.constructor.reflection().definition;
462
+ }
463
+ // @ts-ignore
464
+ return value[reflection] || undefined;
465
+ }
466
+ const reflection = Symbol();
467
+
435
468
  interface FormDataArguments {
436
469
  value: any;
437
470
  options: string | undefined | { [key: string]: string };
@@ -542,12 +575,26 @@ function priority(v: ObjectType['properties'][string]) {
542
575
  return Priority.NonScalar;
543
576
  }
544
577
 
578
+ function fromNetworkMap(type?: ObjectType) {
579
+ if (!type) {
580
+ return {};
581
+ }
582
+ const fromNetwork = Object.keys(type.properties).reduce<Record<string, string>>((memo, key) => {
583
+ const mapped = type.properties[key].networkName;
584
+ if (mapped) {
585
+ memo[key] = mapped;
586
+ }
587
+ return memo;
588
+ }, {});
589
+ return fromNetwork;
590
+ }
545
591
  function fromObjectReflection(type: ObjectType): Maker<any, any> {
546
592
  const comparisonOrder = Object.keys(type.properties).sort((aKey, bKey) => {
547
593
  const a = type.properties[aKey]!;
548
594
  const b = type.properties[bKey]!;
549
595
  return priority(a) - priority(b);
550
596
  });
597
+
551
598
  return makeObject(
552
599
  Object.entries(type.properties).reduce(
553
600
  (memo, [key, prop]) => ({
@@ -561,7 +608,8 @@ function fromObjectReflection(type: ObjectType): Maker<any, any> {
561
608
  ? makeAny()
562
609
  : fromReflection(type.additionalProperties)
563
610
  : undefined,
564
- comparisonOrder
611
+ comparisonOrder,
612
+ type
565
613
  );
566
614
  }
567
615
 
@@ -96,6 +96,7 @@ export interface NamedType {
96
96
  export interface PropType {
97
97
  required: boolean;
98
98
  value: Type;
99
+ networkName?: string;
99
100
  }
100
101
 
101
102
  export interface Props {
@@ -0,0 +1,26 @@
1
+ import { getType } from './make';
2
+
3
+ export function serialize(value: any): any {
4
+ if (Array.isArray(value)) {
5
+ return value.map(v => serialize(v));
6
+ }
7
+ const type = getType(value);
8
+ if (!type) {
9
+ return value;
10
+ }
11
+ switch (type.type) {
12
+ case 'object':
13
+ return Object.keys(value).reduce<Record<string, any>>((memo, key) => {
14
+ const prop = type.properties[key];
15
+ const serialized = serialize(value[key]);
16
+ if (prop && prop.networkName) {
17
+ memo[prop.networkName] = serialized;
18
+ } else {
19
+ memo[key] = serialized;
20
+ }
21
+ return memo;
22
+ }, {});
23
+ default:
24
+ return value;
25
+ }
26
+ }
package/src/server.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { assert } from './assert';
2
2
  import safeNavigation from '@smartlyio/safe-navigation';
3
3
  import { Make, MakeOptions, Maker, ValidationError, validationErrorPrinter } from './make';
4
+ import { serialize } from './serialize';
4
5
 
5
6
  export type { RedirectStatus } from './redirect';
6
7
 
@@ -128,17 +129,34 @@ function voidify(value: object | undefined | null) {
128
129
  return null;
129
130
  }
130
131
 
131
- function cleanHeaders<H>(maker: Maker<any, H>, headers: object) {
132
- const normalized = voidify(lowercaseObject(headers));
132
+ function cleanHeaders<H>(mode: Mode, maker: Maker<any, H>, headers: object) {
133
+ // note: we now expect that on client side headers are type conforming so do not need to lowercase those
134
+ // this is slightly breaking change is somebody has subverted the type checker
135
+ const normalized = voidify(mode === 'server' ? lowercaseObject(headers) : headers);
133
136
  const acceptsNull = maker(null);
134
137
  if (acceptsNull.isSuccess()) {
135
138
  return acceptsNull.success();
136
139
  }
137
140
  return maker(normalized, {
138
- unknownField: 'drop'
141
+ unknownField: 'drop',
142
+ convertFromNetwork: mode === 'server'
139
143
  }).success(throwRequestValidationError.bind(null, 'headers'));
140
144
  }
141
145
 
146
+ function serializeWhenClient(mode: Mode, value: any) {
147
+ if (mode === 'client') {
148
+ return serialize(value);
149
+ }
150
+ return value;
151
+ }
152
+
153
+ function getOutBody<Body extends RequestBody<any>>(mode: Mode, value: Body): Body {
154
+ if (!value) {
155
+ return value;
156
+ }
157
+ return { contentType: value.contentType, value: serializeWhenClient(mode, value.value) } as Body;
158
+ }
159
+
142
160
  export function safe<
143
161
  H extends Headers,
144
162
  P extends Params,
@@ -153,7 +171,7 @@ export function safe<
153
171
  body: Maker<any, Body>,
154
172
  response: Maker<any, R>,
155
173
  endpoint: Endpoint<H, P, Q, Body, R, RC>,
156
- { validationOptions = {} }: HandlerOptions = {}
174
+ { validationOptions = {}, mode }: HandlerOptions & InternalHandlerOptions = { mode: 'client' }
157
175
  ): Endpoint<
158
176
  Headers,
159
177
  Params,
@@ -163,24 +181,51 @@ export function safe<
163
181
  RequestContext
164
182
  > {
165
183
  return async ctx => {
184
+ // note: data coming to client adapter needs to be serialized and data coming from the adapter needs conversion from network
185
+ // note: data coming to server adapter needs to be deserialized and data coming from the adapter needs serialization
186
+ // this is all very clear.
187
+ const internalMakeOptions = { convertFromNetwork: mode === 'server' };
166
188
  const result = await endpoint({
167
189
  path: ctx.path,
168
190
  method: ctx.method,
169
191
  servers: ctx.servers,
170
192
  op: ctx.op,
171
- headers: cleanHeaders(headers, ctx.headers),
172
- params: params(voidify(ctx.params), validationOptions.params).success(
173
- throwRequestValidationError.bind(null, 'params')
193
+ headers: serializeWhenClient(mode, cleanHeaders(mode, headers, ctx.headers)),
194
+ // note: path params come to the adapter in network format always as those are gleaned from the path definition
195
+ params: params(voidify(ctx.params), {
196
+ ...validationOptions.params,
197
+ ...internalMakeOptions,
198
+ convertFromNetwork: true
199
+ }).success(throwRequestValidationError.bind(null, 'params')),
200
+ query: serializeWhenClient(
201
+ mode,
202
+ query(ctx.query || {}, { ...validationOptions.query, ...internalMakeOptions }).success(
203
+ throwRequestValidationError.bind(null, 'query')
204
+ )
174
205
  ),
175
- query: query(ctx.query || {}, validationOptions.query).success(
176
- throwRequestValidationError.bind(null, 'query')
206
+ body: getOutBody<Body>(
207
+ mode,
208
+ body(voidify(ctx.body), internalMakeOptions).success(
209
+ throwRequestValidationError.bind(null, 'body')
210
+ )
177
211
  ),
178
- body: body(voidify(ctx.body)).success(throwRequestValidationError.bind(null, 'body')),
179
212
  requestContext: ctx.requestContext as any
180
213
  });
181
- return response(result).success(
214
+ const responseValue = response(result, { convertFromNetwork: mode === 'client' }).success(
182
215
  throwResponseValidationError.bind(null, `body ${ctx.path}`, result.value.value)
183
216
  );
217
+ if (mode === 'client' || !responseValue) {
218
+ return responseValue;
219
+ }
220
+ // the response must be serialized for transferring from server to client
221
+ return {
222
+ ...responseValue,
223
+ headers: serialize(responseValue.headers),
224
+ value: {
225
+ ...responseValue.value,
226
+ value: serialize(responseValue.value.value)
227
+ }
228
+ };
184
229
  };
185
230
  }
186
231
 
@@ -202,7 +247,7 @@ interface CheckingTree {
202
247
  [method: string]: {
203
248
  safeHandler: (
204
249
  e: Endpoint<any, any, any, any, any, any>,
205
- opts?: HandlerOptions
250
+ opts?: HandlerOptions & InternalHandlerOptions
206
251
  ) => SafeEndpoint;
207
252
  op: string;
208
253
  servers: string[];
@@ -228,7 +273,10 @@ function createTree(handlers: Handler[]): CheckingTree {
228
273
  memo[element.path] = {};
229
274
  }
230
275
  memo[element.path][element.method] = {
231
- safeHandler: (e: Endpoint<any, any, any, any, any, any>, opts?: HandlerOptions) =>
276
+ safeHandler: (
277
+ e: Endpoint<any, any, any, any, any, any>,
278
+ opts?: HandlerOptions & InternalHandlerOptions
279
+ ) =>
232
280
  safe(
233
281
  element.headers,
234
282
  element.params,
@@ -260,6 +308,15 @@ export type ServerAdapter = (
260
308
  servers: string[]
261
309
  ) => void;
262
310
 
311
+ type Mode = 'client' | 'server';
312
+ export interface InternalHandlerOptions {
313
+ /** whether we are calling this on client side or in server side.
314
+ * This may have effect on eg network <-> ts property mapping.
315
+ * This value is set automatically by oats.
316
+ * */
317
+ mode: Mode;
318
+ }
319
+
263
320
  export interface HandlerOptions {
264
321
  /**
265
322
  * Options for request schema validation.
@@ -287,7 +344,7 @@ export function createHandlerFactory<Spec>(
287
344
  path,
288
345
  endpointWrapper.op,
289
346
  assertMethod(method),
290
- endpointWrapper.safeHandler(methodHandler, opts),
347
+ endpointWrapper.safeHandler(methodHandler, { ...opts, mode: 'server' }),
291
348
  endpointWrapper.servers
292
349
  );
293
350
  });