@smartlyio/oats-runtime 4.3.1 → 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":"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"}
@@ -14,6 +14,12 @@ declare type DefaultValue<ContentType extends string> = ContentType extends type
14
14
  * But it will pass if type inference is not prevented.
15
15
  */
16
16
  declare type PreventGenericDefaultValueOverride<T> = [T][T extends unknown ? 0 : never];
17
+ /**
18
+ * Use to perform HTTP redirect.
19
+ * @param url an absolute or relative URL string. Will be encoded with `encodeurl` and set as "Location" header (@see https://github.com/pillarjs/encodeurl).
20
+ * @param options optional `status`, `contentType`, `value` that will override the default ones. Default `status` is 302, `contentType` is "text/html".
21
+ * @returns redirect server response.
22
+ */
17
23
  export declare function redirect<Status extends RedirectStatus = typeof DEFAULT_REDIRECT_STATUS, ContentType extends string = typeof TEXT_HTML_CONTENT_TYPE, Value = DefaultValue<ContentType>>(url: string, options?: {
18
24
  status?: Status;
19
25
  contentType?: ContentType;
package/dist/redirect.js CHANGED
@@ -2,13 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.redirect = void 0;
4
4
  const escapeHtml = require("escape-html");
5
+ const encodeUrl = require("encodeurl");
5
6
  const REDIRECT_STATUSES = [300, 301, 302, 303, 305, 307, 308];
6
7
  const DEFAULT_REDIRECT_STATUS = 302;
7
8
  const TEXT_HTML_CONTENT_TYPE = 'text/html';
8
9
  const TEXT_PLAIN_CONTENT_TYPE = 'text/plain';
10
+ /**
11
+ * Use to perform HTTP redirect.
12
+ * @param url an absolute or relative URL string. Will be encoded with `encodeurl` and set as "Location" header (@see https://github.com/pillarjs/encodeurl).
13
+ * @param options optional `status`, `contentType`, `value` that will override the default ones. Default `status` is 302, `contentType` is "text/html".
14
+ * @returns redirect server response.
15
+ */
9
16
  function redirect(url, options = {}) {
10
17
  const { status = DEFAULT_REDIRECT_STATUS } = options;
11
- const encodedUrl = encodeURI(url);
18
+ const encodedUrl = encodeUrl(url);
12
19
  if (!REDIRECT_STATUSES.includes(status)) {
13
20
  throw new Error(`Status "${status}" is not a redirect status.`);
14
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"redirect.js","sourceRoot":"","sources":["../src/redirect.ts"],"names":[],"mappings":";;;AACA,0CAA2C;AAE3C,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AACvE,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,MAAM,sBAAsB,GAAG,WAAW,CAAC;AAC3C,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAsB7C,SAAgB,QAAQ,CAKtB,GAAW,EACX,UAII,EAAE;IAON,MAAM,EAAE,MAAM,GAAG,uBAAiC,EAAE,GAAG,OAAO,CAAC;IAC/D,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACvC,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,6BAA6B,CAAC,CAAC;KACjE;IACD,MAAM,EACJ,WAAW,GAAG,sBAAqC,EACnD,KAAK,GAAG,uBAAuB,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAqB,EACjF,GAAG,OAAO,CAAC;IAEZ,OAAO;QACL,MAAM;QACN,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;QAC7B,OAAO,EAAE;YACP,QAAQ,EAAE,UAAU;SACrB;KACF,CAAC;AACJ,CAAC;AAnCD,4BAmCC;AAED,SAAS,uBAAuB,CAAC,EAC/B,UAAU,EACV,WAAW,EAIZ;IACC,IAAI,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,EAAE;QAChE,oGAAoG;QACpG,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QAC1C,OAAO,2BAA2B,UAAU,KAAK,UAAU,OAAO,CAAC;KACpE;IACD,IAAI,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,EAAE;QACjE,OAAO,kBAAkB,UAAU,GAAG,CAAC;KACxC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,EAAyC;IACjF,OAAO,WAAW,KAAK,IAAI,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"redirect.js","sourceRoot":"","sources":["../src/redirect.ts"],"names":[],"mappings":";;;AACA,0CAA2C;AAC3C,uCAAwC;AAExC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AACvE,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,MAAM,sBAAsB,GAAG,WAAW,CAAC;AAC3C,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAsB7C;;;;;GAKG;AACH,SAAgB,QAAQ,CAKtB,GAAW,EACX,UAII,EAAE;IAON,MAAM,EAAE,MAAM,GAAG,uBAAiC,EAAE,GAAG,OAAO,CAAC;IAC/D,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACvC,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,6BAA6B,CAAC,CAAC;KACjE;IACD,MAAM,EACJ,WAAW,GAAG,sBAAqC,EACnD,KAAK,GAAG,uBAAuB,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAqB,EACjF,GAAG,OAAO,CAAC;IAEZ,OAAO;QACL,MAAM;QACN,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;QAC7B,OAAO,EAAE;YACP,QAAQ,EAAE,UAAU;SACrB;KACF,CAAC;AACJ,CAAC;AAnCD,4BAmCC;AAED,SAAS,uBAAuB,CAAC,EAC/B,UAAU,EACV,WAAW,EAIZ;IACC,IAAI,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,EAAE;QAChE,oGAAoG;QACpG,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QAC1C,OAAO,2BAA2B,UAAU,KAAK,UAAU,OAAO,CAAC;KACpE;IACD,IAAI,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,EAAE;QACjE,OAAO,kBAAkB,UAAU,GAAG,CAAC;KACxC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,EAAyC;IACjF,OAAO,WAAW,KAAK,IAAI,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AACpE,CAAC"}
@@ -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.3.1",
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,
@@ -23,7 +23,9 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@smartlyio/safe-navigation": "^5.0.1",
26
- "@types/escape-html": "1.0.1",
26
+ "@types/encodeurl": "1.0.0",
27
+ "@types/escape-html": "1.0.2",
28
+ "encodeurl": "1.0.2",
27
29
  "escape-html": "1.0.3",
28
30
  "lodash": "^4.17.20"
29
31
  },
@@ -40,7 +42,7 @@
40
42
  "@types/jest": "27.4.1",
41
43
  "@types/lodash": "4.14.181",
42
44
  "@types/node": "16.11.26",
43
- "fast-check": "2.24.0",
45
+ "fast-check": "2.25.0",
44
46
  "jest": "27.5.1",
45
47
  "jsverify": "0.8.4",
46
48
  "prettier": "2.6.2",
@@ -49,5 +51,5 @@
49
51
  "tsconfig-paths": "3.14.1",
50
52
  "typescript": "4.6.3"
51
53
  },
52
- "gitHead": "e608b6e9286423d95792b9fe3a4e7158fa3f7d9b"
54
+ "gitHead": "b86008f01570ca3d1d733bafbdf450d86fcdae1e"
53
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
 
package/src/redirect.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { Response } from './server';
2
2
  import escapeHtml = require('escape-html');
3
+ import encodeUrl = require('encodeurl');
3
4
 
4
5
  const REDIRECT_STATUSES = [300, 301, 302, 303, 305, 307, 308] as const;
5
6
  const DEFAULT_REDIRECT_STATUS = 302;
@@ -26,6 +27,12 @@ type DefaultValue<ContentType extends string> = ContentType extends
26
27
  */
27
28
  type PreventGenericDefaultValueOverride<T> = [T][T extends unknown ? 0 : never];
28
29
 
30
+ /**
31
+ * Use to perform HTTP redirect.
32
+ * @param url an absolute or relative URL string. Will be encoded with `encodeurl` and set as "Location" header (@see https://github.com/pillarjs/encodeurl).
33
+ * @param options optional `status`, `contentType`, `value` that will override the default ones. Default `status` is 302, `contentType` is "text/html".
34
+ * @returns redirect server response.
35
+ */
29
36
  export function redirect<
30
37
  Status extends RedirectStatus = typeof DEFAULT_REDIRECT_STATUS,
31
38
  ContentType extends string = typeof TEXT_HTML_CONTENT_TYPE,
@@ -44,7 +51,7 @@ export function redirect<
44
51
  { Location: string }
45
52
  > {
46
53
  const { status = DEFAULT_REDIRECT_STATUS as Status } = options;
47
- const encodedUrl = encodeURI(url);
54
+ const encodedUrl = encodeUrl(url);
48
55
 
49
56
  if (!REDIRECT_STATUSES.includes(status)) {
50
57
  throw new Error(`Status "${status}" is not a redirect status.`);
@@ -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
  });