@forklaunch/core 0.17.0 → 0.17.2

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.
@@ -1471,56 +1471,94 @@ var ForklaunchExpressLikeRouter = class _ForklaunchExpressLikeRouter {
1471
1471
  * @param controllerHandler
1472
1472
  * @returns
1473
1473
  */
1474
- #localParamRequest(handlers, controllerHandler, version) {
1474
+ #localParamRequest(middlewares, controllerHandler, contractDetails, requestSchema, responseSchemas, version) {
1475
1475
  return async (route, request) => {
1476
1476
  let statusCode;
1477
1477
  let responseMessage;
1478
1478
  const responseHeaders = {};
1479
+ const resEventHandlers = {};
1479
1480
  const req = {
1480
1481
  params: request?.params ?? {},
1481
1482
  query: request?.query ?? {},
1482
1483
  headers: request?.headers ?? {},
1483
1484
  body: discriminateBody(this.schemaValidator, request?.body)?.schema ?? {},
1484
1485
  path: route,
1485
- version
1486
+ originalPath: route,
1487
+ method: "GET",
1488
+ version,
1489
+ // Properties needed by middlewares
1490
+ schemaValidator: this.schemaValidator,
1491
+ contractDetails,
1492
+ requestSchema,
1493
+ openTelemetryCollector: this.openTelemetryCollector,
1494
+ _globalOptions: () => this.routerOptions,
1495
+ context: {
1496
+ correlationId: "local-fetch-" + Date.now(),
1497
+ span: void 0
1498
+ },
1499
+ _rawBody: void 0,
1500
+ _parsedVersions: void 0
1486
1501
  };
1487
1502
  const res = {
1503
+ statusCode: 200,
1488
1504
  status: (code) => {
1489
1505
  statusCode = code;
1506
+ res.statusCode = code;
1490
1507
  return res;
1491
1508
  },
1492
1509
  send: (message) => {
1493
1510
  responseMessage = message;
1511
+ resEventHandlers["finish"]?.forEach((handler) => handler());
1494
1512
  },
1495
1513
  json: (body) => {
1496
1514
  responseMessage = body;
1515
+ resEventHandlers["finish"]?.forEach((handler) => handler());
1497
1516
  },
1498
1517
  jsonp: (body) => {
1499
1518
  responseMessage = body;
1519
+ resEventHandlers["finish"]?.forEach((handler) => handler());
1500
1520
  },
1501
1521
  setHeader: (key, value) => {
1502
1522
  responseHeaders[key] = value;
1523
+ return res;
1524
+ },
1525
+ getHeader: (key) => responseHeaders[key],
1526
+ type: (contentType) => {
1527
+ responseHeaders["content-type"] = contentType;
1528
+ return res;
1503
1529
  },
1504
1530
  sseEmitter: (generator) => {
1505
1531
  responseMessage = generator();
1506
1532
  },
1533
+ on: (event, handler) => {
1534
+ if (!resEventHandlers[event]) {
1535
+ resEventHandlers[event] = [];
1536
+ }
1537
+ resEventHandlers[event].push(handler);
1538
+ return res;
1539
+ },
1540
+ responseSchemas,
1507
1541
  version
1508
1542
  };
1509
- let cursor = handlers.shift();
1510
- if (cursor) {
1511
- for (const fn of handlers) {
1512
- await cursor(req, res, (err) => {
1543
+ const executeMiddlewares = request?.executeMiddlewares ?? false;
1544
+ if (executeMiddlewares && middlewares.length > 0) {
1545
+ const allHandlers = [...middlewares];
1546
+ let cursor = allHandlers.shift();
1547
+ if (cursor) {
1548
+ for (const fn of allHandlers) {
1549
+ await cursor(req, res, (err) => {
1550
+ if (err) {
1551
+ throw err;
1552
+ }
1553
+ cursor = fn;
1554
+ });
1555
+ }
1556
+ await cursor(req, res, async (err) => {
1513
1557
  if (err) {
1514
1558
  throw err;
1515
1559
  }
1516
- cursor = fn;
1517
1560
  });
1518
1561
  }
1519
- await cursor(req, res, async (err) => {
1520
- if (err) {
1521
- throw err;
1522
- }
1523
- });
1524
1562
  }
1525
1563
  const cHandler = controllerHandler;
1526
1564
  await cHandler(req, res, (err) => {
@@ -1576,12 +1614,18 @@ var ForklaunchExpressLikeRouter = class _ForklaunchExpressLikeRouter {
1576
1614
  this.#localParamRequest(
1577
1615
  middlewares,
1578
1616
  controllerHandler,
1617
+ contractDetails,
1618
+ requestSchema,
1619
+ responseSchemas,
1579
1620
  version
1580
1621
  )
1581
1622
  ])
1582
1623
  ) : this.#localParamRequest(
1583
1624
  middlewares,
1584
- controllerHandler
1625
+ controllerHandler,
1626
+ contractDetails,
1627
+ requestSchema,
1628
+ responseSchemas
1585
1629
  )
1586
1630
  };
1587
1631
  const contractDetailsName = contractDetails.name;
@@ -1592,12 +1636,18 @@ var ForklaunchExpressLikeRouter = class _ForklaunchExpressLikeRouter {
1592
1636
  (req) => this.#localParamRequest(
1593
1637
  middlewares,
1594
1638
  controllerHandler,
1639
+ contractDetails,
1640
+ requestSchema,
1641
+ responseSchemas,
1595
1642
  version
1596
1643
  )(`${this.basePath}${path}`, req)
1597
1644
  ])
1598
1645
  ) : (req) => this.#localParamRequest(
1599
1646
  middlewares,
1600
- controllerHandler
1647
+ controllerHandler,
1648
+ contractDetails,
1649
+ requestSchema,
1650
+ responseSchemas
1601
1651
  )(`${this.basePath}${path}`, req);
1602
1652
  }
1603
1653
  return this;
@@ -3168,8 +3218,8 @@ var httpStatusCodes_default = HTTPStatuses;
3168
3218
 
3169
3219
  // src/http/mcpGenerator/mcpGenerator.ts
3170
3220
  import { isNever as isNever3, isRecord as isRecord3, safeStringify as safeStringify4 } from "@forklaunch/common";
3171
- import { FastMCP } from "@forklaunch/fastmcp-fork";
3172
3221
  import { string, ZodSchemaValidator } from "@forklaunch/validator/zod";
3222
+ import { FastMCP } from "fastmcp";
3173
3223
 
3174
3224
  // src/http/router/unpackRouters.ts
3175
3225
  function unpackRouters(routers, recursiveBasePath = []) {