@typespec/http-server-js 0.58.0-alpha.11-dev.5 → 0.58.0-alpha.11-dev.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"bin.d.mts","sourceRoot":"","sources":["../../../../src/scripts/scaffold/bin.mts"],"names":[],"mappings":";AAmGA,UAAU,kBAAkB;IAC1B;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;CAChB;AA+CD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,kBAAkB,iBA2XzD"}
1
+ {"version":3,"file":"bin.d.mts","sourceRoot":"","sources":["../../../../src/scripts/scaffold/bin.mts"],"names":[],"mappings":";AAoGA,UAAU,kBAAkB;IAC1B;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;CAChB;AA+CD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,kBAAkB,iBA2XzD"}
@@ -20,6 +20,7 @@ import { bifilter, indent } from "../../util/iter.js";
20
20
  import { createOnceQueue } from "../../util/once-queue.js";
21
21
  import { tryGetOpenApi3 } from "../../util/openapi3.js";
22
22
  import { writeModuleFile } from "../../write.js";
23
+ import { mockType } from "./data-mocks.js";
23
24
  function spawn(command, args, options) {
24
25
  return new Promise((resolve, reject) => {
25
26
  const proc = _spawn(command, args, options);
@@ -439,10 +440,7 @@ async function createRouteController(ctx, container, operations, controllersModu
439
440
  return { name: controllerName, module };
440
441
  }
441
442
  function* emitControllerOperationHandlers(ctx, container, httpOperations, module) {
442
- module.imports.push({
443
- binder: ["NotImplementedError"],
444
- from: httpHelperModule,
445
- });
443
+ let importNotImplementedError = false;
446
444
  for (const httpOperation of httpOperations) {
447
445
  // TODO: unify construction of signature with emitOperation in common/interface.ts
448
446
  const op = httpOperation.operation;
@@ -479,10 +477,26 @@ function* emitControllerOperationHandlers(ctx, container, httpOperations, module
479
477
  // prettier-ignore
480
478
  yield `async ${opName}(ctx: HttpContext, ${paramsDeclarationLine}): ${returnType} {`;
481
479
  }
482
- yield " throw new NotImplementedError();";
480
+ const mockReturn = mockType(op.returnType);
481
+ if (mockReturn === undefined) {
482
+ importNotImplementedError = true;
483
+ yield " throw new NotImplementedError();";
484
+ }
485
+ else if (mockReturn === "void") {
486
+ yield " return;";
487
+ }
488
+ else {
489
+ yield ` return ${mockReturn};`;
490
+ }
483
491
  yield "}";
484
492
  yield "";
485
493
  }
494
+ if (importNotImplementedError) {
495
+ module.imports.push({
496
+ binder: ["NotImplementedError"],
497
+ from: httpHelperModule,
498
+ });
499
+ }
486
500
  }
487
501
  function getPackageJsonForStandaloneProject(ownPackageJson, express, relativePathToSpec) {
488
502
  const packageJson = {
@@ -1 +1 @@
1
- {"version":3,"file":"bin.mjs","sourceRoot":"","sources":["../../../../src/scripts/scaffold/bin.mts"],"names":[],"mappings":";AAEA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAsB,MAAM,oBAAoB,CAAC;AAE7F,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,cAAc,EAA8B,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,KAAK,IAAI,MAAM,EAAgB,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,QAAQ,EAAqB,MAAM,cAAc,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,SAAS,KAAK,CAAC,OAAe,EAAE,IAAc,EAAE,OAAqB;IACnE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAE5C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+BAA+B;AAE/B,MAAM,YAAY,GAAG;IACnB,OAAO,EAAE,YAAY;IACrB,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EAAE,gBAAgB;IAC7B,YAAY,EAAE,iBAAiB;IAC/B,gBAAgB,EAAE,uBAAuB;IACzC,eAAe,EAAE,sBAAsB;CAC/B,CAAC;AAEX,SAAS,kBAAkB,CAAC,UAAmB;IAC7C,OAAO;QACL,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,gBAAgB,EAAE,QAAQ;YAC1B,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,SAAS;YACjB,eAAe,EAAE,IAAI;YACrB,gCAAgC,EAAE,IAAI;YACtC,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;SAChB;QACD,OAAO,EAAE,UAAU;YACjB,CAAC,CAAC,CAAC,aAAa,CAAC;YACjB,CAAC,CAAC,CAAC,aAAa,EAAE,6CAA6C,CAAC;KAC1D,CAAC;AACb,CAAC;AAED,MAAM,kBAAkB,GAAG;IACzB,cAAc,EAAE;QACd;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,sCAAsC;YAC/C,aAAa,EAAE,YAAY;YAC3B,sBAAsB,EAAE,WAAW;SACpC;KACF;CACF,CAAC;AAEF,MAAM,iBAAiB,GAAG;IACxB,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE;QACL;YACE,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,OAAO;YACd,cAAc,EAAE,EAAE;YAClB,KAAK,EAAE,YAAY;YACnB,YAAY,EAAE;gBACZ,MAAM,EAAE,QAAQ;aACjB;SACF;KACF;CACF,CAAC;AAaF,MAAM,2BAA2B,GAAuB;IACtD,eAAe,EAAE,KAAK;IACtB,KAAK,EAAE,KAAK;CACb,CAAC;AAEF,SAAS,sBAAsB,CAAC,IAAc;IAC5C,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,OAAO,GAAgC,EAAE,CAAC;IAEhD,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAEzB,IAAI,GAAG,KAAK,iBAAiB,EAAE,CAAC;YAC9B,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;QAClC,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,6CAA6C,GAAG,GAAG,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,EAAE,CAAC;IACX,CAAC;IAED,OAAO,EAAE,GAAG,2BAA2B,EAAE,GAAG,OAAO,EAAE,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,OAAe;IACzC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,OAAO,SAAS,CAAC,CAAC;QAExD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAA2B;IACxD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,YAAY,CAChB,uHAAuH,CACxH,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAE5D,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CACV,6BAA6B,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC,oBAAoB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CACvH,CAAC;IAEF,IAAI,MAAW,CAAC;IAEhB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAEtD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CACX,+FAA+F,CAChG,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,qHAAqH;IACrH,wDAAwD;IAExD,MAAM,wBAAwB,GAC5B,MAAM,CAAC,OAAO,EAAE,CAAC,0BAA0B,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC;IACvE,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC,CAAC;IAEnF,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,OAAO,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAE5F,MAAM,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAC3F,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IAElF,MAAM,cAAc,GAA8B;QAChD,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,0BAA0B,CAAC,EAAE,OAAO;QAClE,QAAQ,EAAE,SAAS;KACpB,CAAC;IAEF,OAAO,CAAC,IAAI,CACV,wCAAwC,cAAc,CAAC,SAAS,gCAAgC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAClJ,CAAC;IAEF,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IAC3F,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAEpD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE;QACnD,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,eAAe;QACvB,IAAI,EAAE,EAAE;KACT,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE;QAChD,OAAO,EAAE,cAAc,CAAC,SAAS;QACjC,WAAW,EAAE,KAAK;QAClB,wBAAwB,EAAE,IAAI;KAC/B,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,cAAc,CAAC,QAAQ,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAEvE,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnF,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,KAAK,MAAM,UAAU,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC;QACtE,QAAQ,GAAG,QAAQ,IAAI,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC;QACvD,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,QAAQ,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IAEpF,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC;IAEpC,MAAM,gBAAgB,GAAG,MAAM,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAEvF,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IAEvD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE5C,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,gBAAgB,EAAE,CAAC;QAChD,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9B,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,QAAQ,CAAC;IAE/E,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;QACvB,MAAM,EAAE,CAAC,QAAQ,GAAG,UAAU,CAAC;QAC/B,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC;YAC5B,CAAC,CAAC,qEAAqE;YACvE,CAAC,CAAC,4BAA4B;KACjC,CAAC,CAAC;IAEH,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC;QAC5B,wBAAwB,UAAU,GAAG;QACrC,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,SAAS,UAAU,CAAC,IAAI,KAAK,CAAC;QACtE,IAAI;QACJ,EAAE;QACF,wCAAwC;KACzC,CAAC,CAAC;IAEH,IAAI,cAAc,CAAC,SAAS,EAAE,CAAC;QAC7B,WAAW,CAAC,OAAO,CAAC,IAAI,CACtB;YACE,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,SAAS;SAChB,EACD;YACE,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,QAAQ;SACf,CACF,CAAC;QAEF,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC5B,MAAM,eAAe,GAAG,YAAY,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YAEhE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;gBACvB,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,CAAC,cAAc,CAAC;aACzB,CAAC,CAAC;YAEH,eAAe,CAAC,OAAO,CAAC,IAAI,CAC1B;gBACE,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE,oBAAoB;aAC3B,EACD;gBACE,MAAM,EAAE,CAAC,iBAAiB,CAAC;gBAC3B,IAAI,EAAE,8BAA8B;aACrC,EACD;gBACE,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,SAAS;aAChB,CACF,CAAC;YAEF,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC;gBAChC,wEAAwE;gBACxE,qEAAqE;gBACrE,GAAG;aACJ,CAAC,CAAC;YAEH,eAAe,CACb,KAAK,EACL,aAAa,EACb,eAAe,EACf,eAAe,EAAU,EACzB,IAAI,EACJ,QAAQ,CACT,CAAC;QACJ,CAAC;QAED,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC;YAC5B,wBAAwB;YACxB,EAAE;YACF,yBAAyB;YACzB,GAAG,CAAC,cAAc,CAAC,QAAQ;gBACzB,CAAC,CAAC;oBACE,EAAE;oBACF,sEAAsE;oBACtE,EAAE;oBACF,qCAAqC;iBACtC;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,EAAE;YACF,oCAAoC;YACpC,EAAE;YACF,0BAA0B;YAC1B,oEAAoE;YACpE,GAAG,CAAC,cAAc,CAAC,QAAQ;gBACzB,CAAC,CAAC;oBACE,gGAAgG;iBACjG;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,KAAK;SACN,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;YACvB,MAAM,EAAE,CAAC,cAAc,CAAC;YACxB,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;QAEH,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC;YAC5B,+CAA+C;YAC/C,EAAE;YACF,6BAA6B;YAC7B,oEAAoE;YACpE,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAEvC,MAAM,KAAK,GAAG,eAAe,EAAU,CAAC;IAExC,MAAM,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE7F,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACvC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9C,IACE,OAAO,CAAC,eAAe,CAAC;gBACxB,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;gBAChC,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EACpC,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBAEnD,MAAM,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;gBAExE,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;gBAE1F,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAElE,MAAM,UAAU,GAAG;oBACjB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;oBACnB,YAAY;oBACZ,WAAW;oBACX,gBAAgB;oBAChB,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACxC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,mBAAmB,KAAK,CAAC,CAAC;iBACvF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEZ,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC;YAC5B,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,MAAM,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC1F,CAAC;IAED,sCAAsC;IACtC,MAAM,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAElG,MAAM,QAAQ,CACZ,kBAAkB,EAClB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAC9E,CAAC;IAEF,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACxF,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC;IAEtF,MAAM,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACzF,MAAM,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAEvF,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IAEvE,IAAI,cAAc,CAAC;IAEnB,IAAI,CAAC;QACH,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACzF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,kBAAkB,GAAG,IAAI,CAAC;IAE9B,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAE3D,kBAAkB,GAAG,iBAAiB,CAAC,cAAc,EAAE,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAEtF,IAAI,kBAAkB,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YAEtD,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACzF,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,8DAA8D;QAC9D,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,kCAAkC,CACpD,cAAc,EACd,cAAc,EACd,kBAAkB,CACnB,CAAC;QAEF,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;QAE9E,MAAM,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,kBAAkB,EAAE,CAAC;QACvB,wDAAwD;QACxD,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAE7C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE;gBAC9B,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa;gBACnD,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;aACpC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CACV,uGAAuG,CACxG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IAExE,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YACnC,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa;YACnD,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;SACpC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAEzF,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;IACrF,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;IACrF,OAAO,CAAC,IAAI,CACV,oBAAoB,aAAa,yDAAyD,CAC3F,CAAC;IACF,OAAO,CAAC,IAAI,CACV,mDAAmD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,aAAa,CAAC,gCAAgC,CAClI,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE5B,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,QAAgB;QACpD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAE1C,MAAM,MAAM,GAAG,MAAM,EAAE;iBACpB,IAAI,CAAC,IAAI,CAAC;iBACV,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;iBAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAEtB,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC,eAAe,QAAQ,+CAA+C,CAAC,CAAC;gBACrF,OAAO,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;gBAEvF,OAAO;YACT,CAAC;iBAAM,IAAI,MAAM,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,2BAA2B,QAAQ,MAAM,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,uBAAuB,QAAQ,MAAM,CAAC,CAAC;YACtD,CAAC;YAED,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,gCAAiC,CAAW,CAAC,OAAO,GAAG,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;AACH,CAAC;AAOD,KAAK,UAAU,sBAAsB,CACnC,GAAc,EACd,WAAwB,EACxB,SAAiB;IAEjB,MAAM,WAAW,GAAsB,EAAE,CAAC;IAE1C,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAA0C,CAAC;IAEhF,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;QAC/C,IAAI,WAAW,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAEjE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;YACxB,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC9D,CAAC;QAED,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,iBAAiB,GAAG,YAAY,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAEjE,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,qBAAqB,EAAE,CAAC;QAC5D,WAAW,CAAC,IAAI,CAAC,MAAM,qBAAqB,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,GAAc,EACd,SAA6B,EAC7B,UAA8B,EAC9B,iBAAyB;IAEzB,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAEnE,MAAM,iBAAiB,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAEpD,MAAM,CAAC,OAAO,CAAC,IAAI,CACjB;QACE,MAAM,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC;QACtC,IAAI,EAAE,6BAA6B,CAAC,GAAG,EAAE,SAAS,CAAC,SAAU,CAAC;KAC/D,EACD;QACE,MAAM,EAAE,CAAC,aAAa,CAAC;QACvB,IAAI,EAAE,YAAY;KACnB,CACF,CAAC;IAEF,MAAM,cAAc,GAAG,iBAAiB,CAAC,UAAU,GAAG,MAAM,CAAC;IAE7D,OAAO,CAAC,IAAI,CAAC,gCAAgC,cAAc,MAAM,CAAC,CAAC;IAEnE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;QACvB,gBAAgB,cAAc,eAAe,iBAAiB,CAAC,UAAU,iBAAiB;QAC1F,GAAG,MAAM,CAAC,+BAA+B,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAC9E,GAAG;KACJ,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;AAC1C,CAAC;AAED,QAAQ,CAAC,CAAC,+BAA+B,CACvC,GAAc,EACd,SAA6B,EAC7B,cAAkC,EAClC,MAAc;IAEd,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QAClB,MAAM,EAAE,CAAC,qBAAqB,CAAC;QAC/B,IAAI,EAAE,gBAAgB;KACvB,CAAC,CAAC;IACH,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QAC3C,kFAAkF;QAClF,MAAM,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC;QAEnC,MAAM,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAEtC,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC;QAEpC,MAAM,aAAa,GAAG,gBAAgB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QAEtD,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEzD,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE;YAC5E,OAAO,EAAE,UAAU,CAAC,UAAU,GAAG,QAAQ;SAC1C,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,WAAW,mBAAmB,GAAG,CAAC;QAErD,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAClC,uFAAuF;YACvF,oGAAoG;YACpG,IAAI,KAAK,CAAC,QAAQ,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,SAAS;YAE/D,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;YAE1C,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;gBAC5E,OAAO,EAAE,UAAU,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU;aAC1D,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,KAAK,mBAAmB,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,eAAe,GAAG,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;YAE1D,eAAe,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;YAElD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,qBAAqB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAE7E,kBAAkB;YAClB,MAAM,SAAS,MAAM,sBAAsB,cAAc,aAAa,eAAe,MAAM,UAAU,IAAI,CAAC;QAC5G,CAAC;aAAM,CAAC;YACN,kBAAkB;YAClB,MAAM,SAAS,MAAM,sBAAsB,qBAAqB,MAAM,UAAU,IAAI,CAAC;QACvF,CAAC;QAED,MAAM,oCAAoC,CAAC;QAC3C,MAAM,GAAG,CAAC;QACV,MAAM,EAAE,CAAC;IACX,CAAC;AACH,CAAC;AAED,SAAS,kCAAkC,CACzC,cAAmB,EACnB,OAAkC,EAClC,kBAA0B;IAE1B,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS;QACvE,OAAO,EAAE,cAAc,CAAC,OAAO,IAAI,OAAO;QAC1C,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oCAAoC;KAC3C,CAAC;IAET,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;QAC3B,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAExD,OAAO,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7C,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,gCAAgC,GAAG,kBAAkB,CAAC;IAE9F,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AAOtD,SAAS,iBAAiB,CACxB,WAAgB,EAChB,OAAkC,EAClC,KAAc,EACd,OAAiC,OAAO,CAAC,IAAI;IAE7C,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,gBAAgB,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,wBAAwB,CAAC,CAAC;IACjE,gBAAgB,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,+BAA+B,CAAC,CAAC;IACxE,gBAAgB,CAAC,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,eAAe,CAAC,CAAC;IACjE,gBAAgB,CAAC,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,cAAc,CAAC,CAAC;IAEhE,gBAAgB,CAAC,CAAC,iBAAiB,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC9D,gBAAgB,CAAC,CAAC,iBAAiB,EAAE,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC;IAEjE,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,gBAAgB,CAAC,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;QACxD,gBAAgB,CAAC,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,EAAE,QAAQ,CAAC,CAAC;QAElE,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,gBAAgB,CAAC,CAAC,cAAc,EAAE,oBAAoB,CAAC,EAAE,QAAQ,CAAC,CAAC;YACnE,gBAAgB,CAAC,CAAC,iBAAiB,EAAE,2BAA2B,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC/E,CAAC;QAED,gBAAgB,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;QACxD,gBAAgB,CAAC,CAAC,iBAAiB,EAAE,eAAe,CAAC,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,OAAO,CAAC;IAEf,SAAS,gBAAgB,CAAC,IAAc,EAAE,KAAa;QACrD,IAAI,OAAO,GAAG,WAAW,CAAC;QAE1B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACrC,CAAC;QAED,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAErD,IAAI,QAAQ,GAAG,EAAE,CAAC;QAElB,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrC,QAAQ,IAAI,KAAK,QAAQ,IAAI,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,QAAQ,IAAI,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,IAAI,CAAC,aAAa,IAAI,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,IAAI,CAAC,0CAA0C,QAAQ,SAAS,KAAK,IAAI,CAAC,CAAC;YAC7E,CAAC;iBAAM,IAAI,KAAK,EAAE,CAAC;gBACjB,IAAI,CAAC,8CAA8C,QAAQ,SAAS,KAAK,IAAI,CAAC,CAAC;YACjF,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YAEvC,OAAO,KAAK,IAAI,CAAC;YAEjB,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YAC7C,IAAI,CAAC,2CAA2C,QAAQ,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,gCAAgC,KAAK,gCAAgC,aAAa,IAAI,CAAC,CAAC;YAC7F,IAAI,CACF,wFAAwF,CACzF,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,QAAQ,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC7D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"bin.mjs","sourceRoot":"","sources":["../../../../src/scripts/scaffold/bin.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Type } from "@typespec/compiler";
2
+ /**
3
+ * Entry point for generating mock data for any TypeSpec type.
4
+ * Delegates to specific mock functions based on the type kind.
5
+ *
6
+ * @param type - The TypeSpec type to mock
7
+ * @returns A JavaScript string representation of the mock data, or undefined if the type cannot be mocked
8
+ */
9
+ export declare function mockType(type: Type): string | undefined;
10
+ //# sourceMappingURL=data-mocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-mocks.d.ts","sourceRoot":"","sources":["../../../../src/scripts/scaffold/data-mocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,IAAI,EAEL,MAAM,oBAAoB,CAAC;AA+G5B;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CA0BvD"}
@@ -0,0 +1,176 @@
1
+ import { isErrorType, isVoidType, } from "@typespec/compiler";
2
+ import { $ } from "@typespec/compiler/experimental/typekit";
3
+ import { parseCase } from "../../util/case.js";
4
+ /**
5
+ * Generates a mock value for a TypeSpec Model.
6
+ * Handles arrays and records as special cases.
7
+ *
8
+ * @param type - The TypeSpec Model to mock
9
+ * @returns A JavaScript string representation of the mock data
10
+ * @throws Error if a property cannot be mocked
11
+ */
12
+ function mockModel(type) {
13
+ if ($.array.is(type)) {
14
+ return mockArray(type);
15
+ }
16
+ if ($.record.is(type)) {
17
+ return mockRecord(type);
18
+ }
19
+ const mock = [];
20
+ const properties = $.model.getProperties(type, { includeExtended: true });
21
+ // If no properties exist, return an empty object
22
+ if (properties.size === 0) {
23
+ return "{}";
24
+ }
25
+ for (const [name, prop] of properties) {
26
+ if (prop.optional) {
27
+ continue;
28
+ }
29
+ const propMock = mockType(prop.type);
30
+ if (!propMock) {
31
+ throw new Error(`Could not mock property ${name} of type ${prop.type.kind}`);
32
+ }
33
+ const propName = parseCase(name).camelCase;
34
+ mock.push([propName, propMock]);
35
+ }
36
+ // If all properties were optional, return an empty object
37
+ if (mock.length === 0) {
38
+ return "{}";
39
+ }
40
+ return `{
41
+ ${mock.map(([name, value]) => `${name}: ${value}`).join(",\n")}
42
+ }`;
43
+ }
44
+ /**
45
+ * Generates a mock array containing a single mocked element.
46
+ *
47
+ * @param type - The TypeSpec array Model to mock
48
+ * @returns A JavaScript string representation of the mock array
49
+ */
50
+ function mockArray(type) {
51
+ const elementType = $.array.getElementType(type);
52
+ const mockedType = mockType(elementType);
53
+ // If we can't mock the element type, return an empty array
54
+ if (mockedType === undefined) {
55
+ return "[]";
56
+ }
57
+ return `[${mockedType}]`;
58
+ }
59
+ /**
60
+ * Generates a mock for a TypeSpec record type with a sample key.
61
+ *
62
+ * @param type - The TypeSpec record Model to mock
63
+ * @returns A JavaScript string representation of the mock record
64
+ */
65
+ function mockRecord(type) {
66
+ const elementType = $.record.getElementType(type);
67
+ const mockedType = mockType(elementType);
68
+ if (mockedType === undefined) {
69
+ return "{}";
70
+ }
71
+ return `{
72
+ mockKey: ${mockedType},
73
+ }`;
74
+ }
75
+ /**
76
+ * Mocks a TypeSpec Model property by mocking its type.
77
+ *
78
+ * @param prop - The TypeSpec model property to mock
79
+ * @returns A JavaScript string representation of the mocked property or undefined if it cannot be mocked
80
+ */
81
+ function mockModelProperty(prop) {
82
+ return mockType(prop.type);
83
+ }
84
+ /**
85
+ * Generates a mock for a TypeSpec literal value.
86
+ *
87
+ * @param type - The TypeSpec literal type to mock
88
+ * @returns A JavaScript string representation of the literal value
89
+ */
90
+ function mockLiteral(type) {
91
+ return JSON.stringify(type.value);
92
+ }
93
+ /**
94
+ * Entry point for generating mock data for any TypeSpec type.
95
+ * Delegates to specific mock functions based on the type kind.
96
+ *
97
+ * @param type - The TypeSpec type to mock
98
+ * @returns A JavaScript string representation of the mock data, or undefined if the type cannot be mocked
99
+ */
100
+ export function mockType(type) {
101
+ if ($.model.is(type)) {
102
+ return mockModel(type);
103
+ }
104
+ if ($.literal.is(type)) {
105
+ return mockLiteral(type);
106
+ }
107
+ if ($.modelProperty.is(type)) {
108
+ return mockModelProperty(type);
109
+ }
110
+ if ($.scalar.is(type)) {
111
+ return mockScalar(type);
112
+ }
113
+ if ($.union.is(type)) {
114
+ return mockUnion(type);
115
+ }
116
+ if (isVoidType(type)) {
117
+ return "void";
118
+ }
119
+ return undefined;
120
+ }
121
+ /**
122
+ * Generates a mock for a TypeSpec union by mocking the first non-error variant.
123
+ *
124
+ * @param union - The TypeSpec union to mock
125
+ * @returns A JavaScript string representation of a mock for one variant, or undefined if no suitable variant is found
126
+ */
127
+ function mockUnion(union) {
128
+ for (const variant of union.variants.values()) {
129
+ if (isErrorType(variant.type)) {
130
+ continue;
131
+ }
132
+ return mockType(variant.type);
133
+ }
134
+ return undefined;
135
+ }
136
+ /**
137
+ * Generates appropriate mock values for TypeSpec scalar types.
138
+ * Handles various scalar types including primitives and specialized types like dates.
139
+ *
140
+ * @param scalar - The TypeSpec scalar to mock
141
+ * @returns A JavaScript string representation of a suitable mock value for the scalar type
142
+ */
143
+ function mockScalar(scalar) {
144
+ if ($.scalar.isBoolean(scalar) || $.scalar.extendsBoolean(scalar)) {
145
+ return JSON.stringify(true);
146
+ }
147
+ if ($.scalar.isNumeric(scalar) || $.scalar.extendsNumeric(scalar)) {
148
+ return JSON.stringify(42);
149
+ }
150
+ if ($.scalar.isUtcDateTime(scalar) || $.scalar.extendsUtcDateTime(scalar)) {
151
+ return "new Date()";
152
+ }
153
+ if ($.scalar.isBytes(scalar) || $.scalar.extendsBytes(scalar)) {
154
+ return "new Uint8Array()";
155
+ }
156
+ if ($.scalar.isDuration(scalar) || $.scalar.extendsDuration(scalar)) {
157
+ return JSON.stringify("P1Y2M3DT4H5M6S");
158
+ }
159
+ if ($.scalar.isOffsetDateTime(scalar) || $.scalar.extendsOffsetDateTime(scalar)) {
160
+ return JSON.stringify("2022-01-01T00:00:00Z");
161
+ }
162
+ if ($.scalar.isPlainDate(scalar) || $.scalar.extendsPlainDate(scalar)) {
163
+ return JSON.stringify("2022-01-01");
164
+ }
165
+ if ($.scalar.isPlainTime(scalar) || $.scalar.extendsPlainTime(scalar)) {
166
+ return JSON.stringify("00:00:00");
167
+ }
168
+ if ($.scalar.isUrl(scalar) || $.scalar.extendsUrl(scalar)) {
169
+ return JSON.stringify("https://example.com");
170
+ }
171
+ if ($.scalar.isString(scalar) || $.scalar.extendsString(scalar)) {
172
+ return JSON.stringify("mock-string");
173
+ }
174
+ return undefined;
175
+ }
176
+ //# sourceMappingURL=data-mocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-mocks.js","sourceRoot":"","sources":["../../../../src/scripts/scaffold/data-mocks.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/http-server-js",
3
- "version": "0.58.0-alpha.11-dev.5",
3
+ "version": "0.58.0-alpha.11-dev.6",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "TypeSpec HTTP server code generator for JavaScript",
6
6
  "homepage": "https://github.com/microsoft/typespec",
@@ -26,6 +26,7 @@ import { bifilter, indent } from "../../util/iter.js";
26
26
  import { createOnceQueue } from "../../util/once-queue.js";
27
27
  import { tryGetOpenApi3 } from "../../util/openapi3.js";
28
28
  import { writeModuleFile } from "../../write.js";
29
+ import { mockType } from "./data-mocks.js";
29
30
 
30
31
  function spawn(command: string, args: string[], options: SpawnOptions): Promise<void> {
31
32
  return new Promise((resolve, reject) => {
@@ -609,10 +610,7 @@ function* emitControllerOperationHandlers(
609
610
  httpOperations: Set<HttpOperation>,
610
611
  module: Module,
611
612
  ): Iterable<string> {
612
- module.imports.push({
613
- binder: ["NotImplementedError"],
614
- from: httpHelperModule,
615
- });
613
+ let importNotImplementedError = false;
616
614
  for (const httpOperation of httpOperations) {
617
615
  // TODO: unify construction of signature with emitOperation in common/interface.ts
618
616
  const op = httpOperation.operation;
@@ -664,10 +662,26 @@ function* emitControllerOperationHandlers(
664
662
  yield `async ${opName}(ctx: HttpContext, ${paramsDeclarationLine}): ${returnType} {`;
665
663
  }
666
664
 
667
- yield " throw new NotImplementedError();";
665
+ const mockReturn = mockType(op.returnType);
666
+
667
+ if (mockReturn === undefined) {
668
+ importNotImplementedError = true;
669
+ yield " throw new NotImplementedError();";
670
+ } else if (mockReturn === "void") {
671
+ yield " return;";
672
+ } else {
673
+ yield ` return ${mockReturn};`;
674
+ }
668
675
  yield "}";
669
676
  yield "";
670
677
  }
678
+
679
+ if (importNotImplementedError) {
680
+ module.imports.push({
681
+ binder: ["NotImplementedError"],
682
+ from: httpHelperModule,
683
+ });
684
+ }
671
685
  }
672
686
 
673
687
  function getPackageJsonForStandaloneProject(
@@ -0,0 +1,221 @@
1
+ import {
2
+ isErrorType,
3
+ isVoidType,
4
+ LiteralType,
5
+ Model,
6
+ ModelProperty,
7
+ Scalar,
8
+ Type,
9
+ Union,
10
+ } from "@typespec/compiler";
11
+ import { $ } from "@typespec/compiler/experimental/typekit";
12
+ import { parseCase } from "../../util/case.js";
13
+
14
+ /**
15
+ * Generates a mock value for a TypeSpec Model.
16
+ * Handles arrays and records as special cases.
17
+ *
18
+ * @param type - The TypeSpec Model to mock
19
+ * @returns A JavaScript string representation of the mock data
20
+ * @throws Error if a property cannot be mocked
21
+ */
22
+ function mockModel(type: Model): string {
23
+ if ($.array.is(type)) {
24
+ return mockArray(type);
25
+ }
26
+
27
+ if ($.record.is(type)) {
28
+ return mockRecord(type);
29
+ }
30
+
31
+ const mock: string[][] = [];
32
+ const properties = $.model.getProperties(type, { includeExtended: true });
33
+
34
+ // If no properties exist, return an empty object
35
+ if (properties.size === 0) {
36
+ return "{}";
37
+ }
38
+
39
+ for (const [name, prop] of properties) {
40
+ if (prop.optional) {
41
+ continue;
42
+ }
43
+
44
+ const propMock = mockType(prop.type);
45
+
46
+ if (!propMock) {
47
+ throw new Error(`Could not mock property ${name} of type ${prop.type.kind}`);
48
+ }
49
+
50
+ const propName = parseCase(name).camelCase;
51
+ mock.push([propName, propMock]);
52
+ }
53
+
54
+ // If all properties were optional, return an empty object
55
+ if (mock.length === 0) {
56
+ return "{}";
57
+ }
58
+
59
+ return `{
60
+ ${mock.map(([name, value]) => `${name}: ${value}`).join(",\n")}
61
+ }`;
62
+ }
63
+
64
+ /**
65
+ * Generates a mock array containing a single mocked element.
66
+ *
67
+ * @param type - The TypeSpec array Model to mock
68
+ * @returns A JavaScript string representation of the mock array
69
+ */
70
+ function mockArray(type: Model): string {
71
+ const elementType = $.array.getElementType(type);
72
+ const mockedType = mockType(elementType);
73
+
74
+ // If we can't mock the element type, return an empty array
75
+ if (mockedType === undefined) {
76
+ return "[]";
77
+ }
78
+
79
+ return `[${mockedType}]`;
80
+ }
81
+
82
+ /**
83
+ * Generates a mock for a TypeSpec record type with a sample key.
84
+ *
85
+ * @param type - The TypeSpec record Model to mock
86
+ * @returns A JavaScript string representation of the mock record
87
+ */
88
+ function mockRecord(type: Model): string {
89
+ const elementType = $.record.getElementType(type);
90
+ const mockedType = mockType(elementType);
91
+
92
+ if (mockedType === undefined) {
93
+ return "{}";
94
+ }
95
+
96
+ return `{
97
+ mockKey: ${mockedType},
98
+ }`;
99
+ }
100
+
101
+ /**
102
+ * Mocks a TypeSpec Model property by mocking its type.
103
+ *
104
+ * @param prop - The TypeSpec model property to mock
105
+ * @returns A JavaScript string representation of the mocked property or undefined if it cannot be mocked
106
+ */
107
+ function mockModelProperty(prop: ModelProperty): string | undefined {
108
+ return mockType(prop.type);
109
+ }
110
+
111
+ /**
112
+ * Generates a mock for a TypeSpec literal value.
113
+ *
114
+ * @param type - The TypeSpec literal type to mock
115
+ * @returns A JavaScript string representation of the literal value
116
+ */
117
+ function mockLiteral(type: LiteralType): string {
118
+ return JSON.stringify(type.value);
119
+ }
120
+
121
+ /**
122
+ * Entry point for generating mock data for any TypeSpec type.
123
+ * Delegates to specific mock functions based on the type kind.
124
+ *
125
+ * @param type - The TypeSpec type to mock
126
+ * @returns A JavaScript string representation of the mock data, or undefined if the type cannot be mocked
127
+ */
128
+ export function mockType(type: Type): string | undefined {
129
+ if ($.model.is(type)) {
130
+ return mockModel(type);
131
+ }
132
+
133
+ if ($.literal.is(type)) {
134
+ return mockLiteral(type);
135
+ }
136
+
137
+ if ($.modelProperty.is(type)) {
138
+ return mockModelProperty(type);
139
+ }
140
+
141
+ if ($.scalar.is(type)) {
142
+ return mockScalar(type);
143
+ }
144
+
145
+ if ($.union.is(type)) {
146
+ return mockUnion(type);
147
+ }
148
+
149
+ if (isVoidType(type)) {
150
+ return "void";
151
+ }
152
+
153
+ return undefined;
154
+ }
155
+
156
+ /**
157
+ * Generates a mock for a TypeSpec union by mocking the first non-error variant.
158
+ *
159
+ * @param union - The TypeSpec union to mock
160
+ * @returns A JavaScript string representation of a mock for one variant, or undefined if no suitable variant is found
161
+ */
162
+ function mockUnion(union: Union): string | undefined {
163
+ for (const variant of union.variants.values()) {
164
+ if (isErrorType(variant.type)) {
165
+ continue;
166
+ }
167
+ return mockType(variant.type);
168
+ }
169
+
170
+ return undefined;
171
+ }
172
+
173
+ /**
174
+ * Generates appropriate mock values for TypeSpec scalar types.
175
+ * Handles various scalar types including primitives and specialized types like dates.
176
+ *
177
+ * @param scalar - The TypeSpec scalar to mock
178
+ * @returns A JavaScript string representation of a suitable mock value for the scalar type
179
+ */
180
+ function mockScalar(scalar: Scalar): string | undefined {
181
+ if ($.scalar.isBoolean(scalar) || $.scalar.extendsBoolean(scalar)) {
182
+ return JSON.stringify(true);
183
+ }
184
+ if ($.scalar.isNumeric(scalar) || $.scalar.extendsNumeric(scalar)) {
185
+ return JSON.stringify(42);
186
+ }
187
+
188
+ if ($.scalar.isUtcDateTime(scalar) || $.scalar.extendsUtcDateTime(scalar)) {
189
+ return "new Date()";
190
+ }
191
+
192
+ if ($.scalar.isBytes(scalar) || $.scalar.extendsBytes(scalar)) {
193
+ return "new Uint8Array()";
194
+ }
195
+
196
+ if ($.scalar.isDuration(scalar) || $.scalar.extendsDuration(scalar)) {
197
+ return JSON.stringify("P1Y2M3DT4H5M6S");
198
+ }
199
+
200
+ if ($.scalar.isOffsetDateTime(scalar) || $.scalar.extendsOffsetDateTime(scalar)) {
201
+ return JSON.stringify("2022-01-01T00:00:00Z");
202
+ }
203
+
204
+ if ($.scalar.isPlainDate(scalar) || $.scalar.extendsPlainDate(scalar)) {
205
+ return JSON.stringify("2022-01-01");
206
+ }
207
+
208
+ if ($.scalar.isPlainTime(scalar) || $.scalar.extendsPlainTime(scalar)) {
209
+ return JSON.stringify("00:00:00");
210
+ }
211
+
212
+ if ($.scalar.isUrl(scalar) || $.scalar.extendsUrl(scalar)) {
213
+ return JSON.stringify("https://example.com");
214
+ }
215
+
216
+ if ($.scalar.isString(scalar) || $.scalar.extendsString(scalar)) {
217
+ return JSON.stringify("mock-string");
218
+ }
219
+
220
+ return undefined;
221
+ }