@mohantn/gate-keeper 2.2.3 → 2.2.5

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/cli-entry.js CHANGED
@@ -51,11 +51,15 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  return result;
52
52
  };
53
53
  })();
54
+ var __importDefault = (this && this.__importDefault) || function (mod) {
55
+ return (mod && mod.__esModule) ? mod : { "default": mod };
56
+ };
54
57
  Object.defineProperty(exports, "__esModule", { value: true });
55
58
  const child_process = __importStar(require("child_process"));
56
59
  const path = __importStar(require("path"));
57
60
  const http = __importStar(require("http"));
58
61
  const fs = __importStar(require("fs"));
62
+ const open_1 = __importDefault(require("open"));
59
63
  const GK_DIR = path.join(process.env.HOME ?? '/tmp', '.gate-keeper');
60
64
  const PID_FILE = path.join(GK_DIR, 'daemon.pid');
61
65
  const DAEMON_PORT = 5378;
@@ -270,8 +274,7 @@ async function main() {
270
274
  const url = `http://localhost:${DAEMON_PORT}/viz`;
271
275
  if (isDaemonAlive()) {
272
276
  console.log(`[gate-keeper] Opening dashboard: ${url}`);
273
- const open = require('open');
274
- open(url);
277
+ (0, open_1.default)(url);
275
278
  }
276
279
  else {
277
280
  console.log(`[gate-keeper] Daemon is not running. Start it first:\n gate-keeper daemon`);
@@ -1 +1 @@
1
- {"version":3,"file":"cli-entry.js","sourceRoot":"","sources":["../src/cli-entry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-entry.js","sourceRoot":"","sources":["../src/cli-entry.ts"],"names":[],"mappings":";;AAEA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,6DAA+C;AAC/C,2CAA6B;AAC7B,2CAA6B;AAC7B,uCAAyB;AACzB,gDAAwB;AAExB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,EAAE,cAAc,CAAC,CAAC;AACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AACjD,MAAM,WAAW,GAAG,IAAI,CAAC;AACzB,MAAM,QAAQ,GAAG,IAAI,CAAC;AAEtB,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBZ,CAAC;AAEF,SAAS,aAAa;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACnE,IAAI,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE;YAC9E,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI;SAC1C,CAAC,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACpF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;QACrB,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,OAAO,wBAAwB,GAAG,GAAG,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,oBAAoB,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,MAAM,CAAC;IAErD,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;YACtE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,EAAE;gBACrE,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;aAChC,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;YACjC,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,EAAE;gBAC3E,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;aAChC,CAAC,CAAC;YACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM;QACR,CAAC;QAED,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YAC3D,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE;gBAC7D,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;aAChC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM;QACR,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YACnD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;YAEvC,QAAQ,KAAK,EAAE,CAAC;gBACN,KAAK,eAAe,CAAC,CAAA,CAAC;oBAC5B,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;oBAClD,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;oBAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACzC,MAAM,SAAS,GAAG,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;oBAEzC,IAAI,YAAY,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;wBAC9C,oBAAoB;wBACpB,IAAI,CAAC;4BACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;gCAC1B,MAAM,EAAE,eAAe;gCACvB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;6BAClG,CAAC,CAAC;4BACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gCAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;oCACvB,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB;oCAC7D,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;iCAC3G,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gCACpB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gCACxB,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCAC7E,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gCAChB,GAAG,CAAC,GAAG,EAAE,CAAC;4BACZ,CAAC,CAAC,CAAC;wBACL,CAAC;wBAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;wBAE9B,yBAAyB;wBACzB,IAAI,CAAC;4BACH,MAAM,WAAW,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;4BACjD,MAAM,SAAS,GAAG,MAAM,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gCAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,WAAW,mBAAmB,WAAW,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;oCAC5F,IAAI,CAAC,GAAG,EAAE,CAAC;oCACX,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oCACtC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;wCAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oCAAC,CAAC;oCAAC,MAAM,CAAC;wCAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oCAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCACpF,CAAC,CAAC,CAAC;gCACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gCACxB,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC/E,CAAC,CAAC,CAAC;4BACH,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC/D,MAAM,KAAK,GAAG,SAAS,CAAC,KAA6D,CAAC;gCACtF,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;gCACpC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;gCAClC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oCACtB,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;oCACpC,kEAAkE;oCAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oCACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oCACvC,IAAI,QAAQ;wCAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gCACtC,CAAC;gCACD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;gCAC9C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oCACtB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gCAClE,CAAC;gCACD,MAAM,WAAW,GAAG,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;qCAC3C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;qCAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;qCACX,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;gCAC1F,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;gCAC7F,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,eAAe,KAAK,CAAC,MAAM,WAAW,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC;gCAC/F,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAC5D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;oCAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAClF,OAAO,CAAC,GAAG,CAAC,kBAAkB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;4BAC5E,CAAC;iCAAM,CAAC;gCACN,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,mDAAmD,CAAC,CAAC;4BAC3F,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,4BAA4B,CAAC,CAAC;wBACpE,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,iBAAiB,QAAQ,gDAAgD,CAAC,CAAC;oBACzF,CAAC;oBACD,MAAM;gBACR,CAAC;gBAAQ,KAAK,UAAU,CAAC,CAAC,CAAC;oBACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACvC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;oBAC7C,IAAI,QAAQ,EAAE,CAAC;wBACb,OAAO,CAAC,GAAG,CAAC,oBAAoB,QAAQ,8CAA8C,CAAC,CAAC;wBACxF,OAAO,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC;oBACzF,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,kFAAkF,CAAC,CAAC;oBAClG,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;oBACtE,MAAM;gBACR,CAAC;gBAEO,KAAK,WAAW,CAAC,CAAC,CAAC;oBACzB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;oBAC9C,OAAO,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC;oBACvF,OAAO,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAC;oBACnG,MAAM;gBACR,CAAC;gBACD;oBACE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;oBACnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;oBAC9D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACzB,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;oBACrE,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;oBAC5D,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;oBAC7D,MAAM;YACV,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,GAAG,GAAG,oBAAoB,WAAW,MAAM,CAAC;YAClD,IAAI,aAAa,EAAE,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,oCAAoC,GAAG,EAAE,CAAC,CAAC;gBACvD,IAAA,cAAI,EAAC,GAAG,CAAC,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;gBAC1F,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAEtC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;gBACpE,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC1B,MAAM,EAAE,eAAe;gBACvB,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,QAAQ;oBACd,SAAS;oBACT,WAAW,EAAE,KAAK;oBAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB;aACF,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CACtB;wBACE,QAAQ,EAAE,WAAW;wBACrB,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,gBAAgB;wBACtB,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE;4BACP,cAAc,EAAE,kBAAkB;4BAClC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;yBAC1C;qBACF,EACD,CAAC,GAAG,EAAE,EAAE;wBACN,IAAI,CAAC,GAAG,EAAE,CAAC;wBACX,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;wBACtC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClC,CAAC,CACF,CAAC;oBACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBACxB,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7E,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAChB,GAAG,CAAC,GAAG,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,kCAAkC,QAAQ,KAAK,QAAQ,GAAG,CAAC,CAAC;YAC1E,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,yEAAyE,QAAQ,EAAE,CAAC,CAAC;gBACjG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,aAAa,EAAE,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,yCAAyC,GAAG,GAAG,CAAC,CAAC;gBAC7D,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,MAAM,CAAC,CAAC;gBAEhE,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;wBACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,WAAW,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;4BACzE,IAAI,CAAC,GAAG,EAAE,CAAC;4BACX,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;4BACtC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;wBAClC,CAAC,CAAC,CAAC;wBACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;wBACxB,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/E,CAAC,CAAC,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,aAAa,IAAI,GAAG,KAAK,CAAC,CAAC;oBACnE,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC;oBACjD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/D,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,GAAG,CAAC,iDAAiD,WAAW,EAAE,CAAC,CAAC;gBAC9E,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YACrD,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI,CAAC;QACV;YACE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,MAAM;IACV,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mohantn/gate-keeper",
3
- "version": "2.2.3",
3
+ "version": "2.2.5",
4
4
  "description": "Real-time code quality gates & dependency graph for AI-assisted development. MCP server for Claude Code, GitHub Copilot, and any MCP-compatible agent.",
5
5
  "keywords": [
6
6
  "mcp",
@@ -36,7 +36,7 @@
36
36
  "scripts/",
37
37
  "README.md",
38
38
  "LICENSE",
39
- ".github/instructions/"
39
+ ".github/instructions/gate-keeper.instructions.md"
40
40
  ],
41
41
  "engines": {
42
42
  "node": ">=18"
@@ -62,14 +62,15 @@
62
62
  "postinstall": "node -e \"try{require('./scripts/postinstall.js')}catch(e){}\""
63
63
  },
64
64
  "dependencies": {
65
+ "@mohantn/gate-keeper": "^2.2.4",
66
+ "@typescript-eslint/parser": "^8.59.4",
65
67
  "better-sqlite3": "^12.10.0",
68
+ "eslint": "^9.39.4",
69
+ "eslint-plugin-sonarjs": "^4.0.3",
66
70
  "express": "^4.18.2",
67
71
  "open": "^9.1.0",
68
72
  "typescript": "^5.3.3",
69
- "ws": "^8.16.0",
70
- "eslint": "^9.39.4",
71
- "eslint-plugin-sonarjs": "^4.0.3",
72
- "@typescript-eslint/parser": "^8.59.4"
73
+ "ws": "^8.16.0"
73
74
  },
74
75
  "devDependencies": {
75
76
  "@testing-library/jest-dom": "^6.1.5",
@@ -1,416 +0,0 @@
1
- # .NET Core 8 API & Integration Instructions
2
-
3
- **Scope**: DI, Controllers, Auth, Validation | **Version**: 2.0 | **Tags**: `api`, `authentication`, `dependency-injection`
4
-
5
- **Related Files**: See [dotnet-development.instructions.md](./dotnet-development.instructions.md) for core patterns, [dotnet-testing.instructions.md](./dotnet-testing.instructions.md) for testing
6
-
7
- ## Dependency Injection & Configuration
8
-
9
- ### DI Registration in Startup.ConfigureServices
10
- Register services with appropriate lifetimes: **Transient** (new instance each time), **Scoped** (per request), **Singleton** (application lifetime).
11
-
12
- ```csharp
13
- public class Startup {
14
- public void ConfigureServices(IServiceCollection services) {
15
- // Configuration & Options Pattern
16
- services.AddOptions().Configure<Settings>(options => Configuration.Bind(options));
17
-
18
- // DbContext (scoped per request)
19
- services.AddDbContext<StoreMediaDbContext>();
20
- services.AddServiceBundle(Configuration);
21
-
22
- // Repositories & Unit of Work (scoped)
23
- services.AddScoped<IMediaElementRepository, MediaElementRepository>();
24
- services.AddScoped<IUnitOfWork, UnitOfWork>();
25
-
26
- // Query Handlers & Commands (scoped)
27
- services.AddScoped<GetPresetElementsHandler>();
28
-
29
- // Mappers (scoped or transient)
30
- services.AddScoped<ProductMapper>();
31
-
32
- // Services (scoped per business logic)
33
- services.AddScoped<IProductService, ProductService>();
34
-
35
- // HTTP & Middleware
36
- services.AddHttpContextAccessor();
37
- services.AddMemoryCache();
38
- services.AddMediatR(typeof(Program));
39
-
40
- // Controllers with JSON options
41
- services.AddControllers()
42
- .AddJsonOptions(opts => {
43
- opts.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
44
- opts.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles;
45
- });
46
- }
47
- }
48
- ```
49
-
50
- ### Settings Class & IOptions Pattern
51
- ```csharp
52
- // Configuration/Settings.cs
53
- public class Settings {
54
- public DatabaseSettings Database { get; set; }
55
- public PubSubSettings PubSub { get; set; }
56
- public string BaseUri { get; set; }
57
- }
58
-
59
- // In appsettings.json
60
- {
61
- "Settings": {
62
- "Database": { "ConnectionString": "..." },
63
- "BaseUri": "https://api.example.com"
64
- }
65
- }
66
-
67
- // Usage in Service
68
- public class ProductService {
69
- private readonly Settings _settings;
70
-
71
- public ProductService(IOptions<Settings> options) {
72
- _settings = options.Value;
73
- }
74
- }
75
- ```
76
-
77
- ## Validation
78
-
79
- ### FluentValidation Pattern
80
- ```csharp
81
- public class CreateProductCommandValidator : AbstractValidator<CreateProductCommand> {
82
- private readonly StoreMediaDbContext _dbContext;
83
-
84
- public CreateProductCommandValidator(StoreMediaDbContext dbContext) {
85
- _dbContext = dbContext;
86
-
87
- RuleFor(x => x.Name)
88
- .NotEmpty().WithMessage("Name is required")
89
- .MaximumLength(255).WithMessage("Name must not exceed 255 characters");
90
-
91
- RuleFor(x => x.Price)
92
- .GreaterThan(0).WithMessage("Price must be greater than zero");
93
-
94
- // Async rule: check database uniqueness
95
- RuleFor(x => x.Name)
96
- .MustAsync(async (name, ct) => {
97
- var exists = await _dbContext.Products.AnyAsync(p => p.Name == name, ct);
98
- return !exists;
99
- })
100
- .WithMessage("Product name already exists");
101
- }
102
- }
103
-
104
- // Register in DI
105
- services.AddScoped<IValidator<CreateProductCommand>, CreateProductCommandValidator>();
106
- ```
107
-
108
- ## API Controllers
109
-
110
- ### Controller Pattern with MediatR
111
- ```csharp
112
- [ApiController]
113
- [Route("v2/products")]
114
- public class ProductController : ControllerBase {
115
- private readonly IMediator _mediator;
116
-
117
- public ProductController(IMediator mediator) {
118
- _mediator = mediator;
119
- }
120
-
121
- /// <summary>
122
- /// Creates a new product.
123
- /// </summary>
124
- [HttpPost]
125
- [ScopedPermissions(Permissions.ProductAdmin)]
126
- [ProducesResponseType(typeof(ProductDto), 201)]
127
- [ProducesResponseType(typeof(ProblemDetails), 400)]
128
- public async Task<IActionResult> CreateProductAsync([FromBody] CreateProductCommand command) {
129
- if (!ModelState.IsValid) return BadRequest(ModelState);
130
-
131
- var result = await _mediator.Send(command, HttpContext.RequestAborted);
132
- return CreatedAtAction(nameof(GetProductAsync), new { id = result.Id }, result);
133
- }
134
-
135
- /// <summary>
136
- /// Gets a product by ID.
137
- /// </summary>
138
- [HttpGet("{id}")]
139
- [ScopedPermissions(Permissions.ProductView)]
140
- [ProducesResponseType(typeof(ProductDto), 200)]
141
- [ProducesResponseType(typeof(ProblemDetails), 404)]
142
- public async Task<ActionResult<ProductDto>> GetProductAsync(string id) {
143
- var query = new GetProductQuery { Id = id };
144
- return Ok(await _mediator.Send(query, HttpContext.RequestAborted));
145
- }
146
- }
147
- ```
148
-
149
- ### Global Error Handling (ProblemDetails)
150
- ```csharp
151
- // Startup.ConfigureServices
152
- services.AddProblemDetails(options => {
153
- options.IncludeExceptionDetails = (_, _) => _environment.IsDevelopment();
154
- options.Map<NotFoundException>(e => new ProblemDetails {
155
- Title = "Resource Not Found",
156
- Status = StatusCodes.Status404NotFound,
157
- Detail = e.Message
158
- });
159
- options.Map<ValidationException>(e => new ProblemDetails {
160
- Title = "Validation Error",
161
- Status = StatusCodes.Status400BadRequest,
162
- Detail = string.Join("; ", e.Errors.Select(x => x.ErrorMessage))
163
- });
164
- });
165
-
166
- // Startup.Configure
167
- app.UseProblemDetails();
168
- ```
169
-
170
- ## Logging & Error Handling
171
-
172
- ### Structured Logging with Serilog
173
- ```csharp
174
- // Program.cs
175
- public static IWebHostBuilder CreateHostBuilder(string[] args) {
176
- return new WebHostBuilder()
177
- .UseSerilog((context, loggerConfig) => {
178
- loggerConfig
179
- .MinimumLevel.Information()
180
- .WriteTo.Console()
181
- .Enrich.FromLogContext()
182
- .Enrich.WithProperty("ApplicationName", "StoreMediaApi");
183
- });
184
- }
185
-
186
- // Usage in Handlers
187
- public class CreateProductCommandHandler : IRequestHandler<CreateProductCommand, ProductDto> {
188
- private readonly ILogger<CreateProductCommandHandler> _logger;
189
-
190
- public async Task<ProductDto> Handle(CreateProductCommand request, CancellationToken ct) {
191
- _logger.LogInformation("Creating product: {ProductName}", request.Name);
192
-
193
- try {
194
- var product = Product.Create(request.Name, request.Price, request.RetailerId);
195
- await _unitOfWork.Products.AddAsync(product, ct);
196
- await _unitOfWork.SaveChangesAsync(ct);
197
-
198
- _logger.LogInformation("Product created: {ProductId}", product.Id);
199
- return _mapper.MapToDto(product);
200
- } catch (Exception ex) {
201
- _logger.LogError(ex, "Error creating product: {ErrorMessage}", ex.Message);
202
- throw;
203
- }
204
- }
205
- }
206
- ```
207
-
208
- ### Custom Error Codes for Monitoring
209
- ```csharp
210
- public static class ErrorCodes {
211
- public const string OutboxUpdateFailure = "SMA-OutboxUpdateFailure";
212
- public const string ServiceCallFailure = "SMA-ServiceToServiceCallFailure";
213
- public const string ValidationFailure = "SMA-ValidationFailure";
214
- }
215
-
216
- // Usage
217
- _logger.LogError("Failed: {ErrorCode} for {Entity}", ErrorCodes.OutboxUpdateFailure, "Activation");
218
- ```
219
-
220
- ## Authorization & Authentication
221
-
222
- ### JWT & Permissions via ServiceBundle
223
- ```csharp
224
- // Startup.ConfigureServices
225
- services.AddServiceBundle(Configuration); // Includes auth middleware
226
- services.AddScoped<IPermissionsManagerV4Client, PermissionsManagerV4Client>();
227
-
228
- // Controller: Use [ScopedPermissions] attribute
229
- [HttpPost]
230
- [ScopedPermissions(Permissions.StoreMediaAdmin)]
231
- public async Task<IActionResult> CreateAsync([FromBody] CreateCommand cmd) {
232
- return await _mediator.Send(cmd);
233
- }
234
-
235
- // Extract JWT from HttpContext
236
- public static class HttpContextExtensions {
237
- public static string ExtractJwt(this IHttpContextAccessor accessor) {
238
- var authHeader = accessor.HttpContext?.Request.Headers["Authorization"].FirstOrDefault();
239
- return authHeader?.Replace("Bearer ", "") ?? string.Empty;
240
- }
241
- }
242
-
243
- // Custom Authorization Filter
244
- [ExcludeFromCodeCoverage]
245
- public class HangfireAuthorizationFilter : IDashboardAuthorizationFilter {
246
- private readonly IPermissionsManagerV4Client _permissionsManager;
247
-
248
- public HangfireAuthorizationFilter(IPermissionsManagerV4Client permissionsManager) {
249
- _permissionsManager = permissionsManager;
250
- }
251
-
252
- public bool Authorize(DashboardContext context) {
253
- var httpContext = context.GetHttpContext();
254
- var jwt = httpContext.Request.Headers["Authorization"].FirstOrDefault()?.Replace("Bearer ", "");
255
-
256
- if (string.IsNullOrEmpty(jwt)) return false;
257
-
258
- var permissions = _permissionsManager.GetPermissions(jwt).Result;
259
- return permissions.Contains(Permissions.HangfireDashboard);
260
- }
261
- }
262
- ```
263
-
264
- ## Security Best Practices
265
-
266
- ### Input Validation & SQL Injection Prevention
267
- ```csharp
268
- // ✅ GOOD: Input validation via FluentValidation
269
- public class CreateProductCommandValidator : AbstractValidator<CreateProductCommand> {
270
- public CreateProductCommandValidator() {
271
- RuleFor(x => x.Name)
272
- .NotEmpty()
273
- .MaximumLength(255)
274
- .Matches(@"^[a-zA-Z0-9\s\-_]+$").WithMessage("Invalid characters");
275
-
276
- RuleFor(x => x.Price)
277
- .GreaterThan(0)
278
- .LessThan(1000000);
279
-
280
- RuleFor(x => x.Email)
281
- .EmailAddress().When(x => !string.IsNullOrEmpty(x.Email));
282
- }
283
- }
284
-
285
- // ✅ GOOD: Parameterized queries (EF Core default)
286
- var products = await _dbContext.Products
287
- .Where(p => p.RetailerId == retailerId)
288
- .ToListAsync();
289
-
290
- // ❌ BAD: Raw SQL with string interpolation (SQL injection risk)
291
- var products = await _dbContext.Products
292
- .FromSqlRaw($"SELECT * FROM products WHERE retailer_id = '{retailerId}'")
293
- .ToListAsync();
294
- ```
295
-
296
- ### Secrets Management
297
- ```csharp
298
- // ✅ GOOD: Secrets via configuration, never hardcoded
299
- public class Startup {
300
- public void ConfigureServices(IServiceCollection services) {
301
- var connectionString = Configuration.GetConnectionString("DefaultConnection");
302
- services.AddDbContext<AppDbContext>(options =>
303
- options.UseNpgsql(connectionString));
304
- }
305
- }
306
-
307
- // ✅ GOOD: Azure Key Vault integration
308
- public class Program {
309
- public static IHostBuilder CreateHostBuilder(string[] args) =>
310
- Host.CreateDefaultBuilder(args)
311
- .ConfigureAppConfiguration((context, config) => {
312
- if (context.HostingEnvironment.IsProduction()) {
313
- var builtConfig = config.Build();
314
- config.AddAzureKeyVault(builtConfig["KeyVaultUrl"]);
315
- }
316
- });
317
- }
318
- ```
319
-
320
- ### HTTPS & CORS
321
- ```csharp
322
- // ✅ GOOD: HTTPS & CORS restrictions
323
- public class Startup {
324
- public void ConfigureServices(IServiceCollection services) {
325
- services.AddCors(options => {
326
- options.AddPolicy("AllowedOrigins", builder => {
327
- builder.WithOrigins("https://trusted-domain.com")
328
- .AllowAnyMethod()
329
- .AllowAnyHeader()
330
- .AllowCredentials();
331
- });
332
- });
333
-
334
- services.AddHttpsRedirection(options => {
335
- options.HttpsPort = 443;
336
- });
337
- }
338
-
339
- public void Configure(IApplicationBuilder app) {
340
- app.UseHttpsRedirection();
341
- app.UseCors("AllowedOrigins");
342
- }
343
- }
344
- ```
345
-
346
- ### Audit Logging
347
- ```csharp
348
- // ✅ GOOD: Audit logging for sensitive operations
349
- _logger.LogInformation(
350
- "Product created by user {UserId}: {ProductId}, Name: {ProductName}",
351
- userId,
352
- product.Id,
353
- product.Name);
354
- ```
355
-
356
- ## XML Documentation & Swagger
357
-
358
- ### XML Comments for API Documentation
359
- ```csharp
360
- /// <summary>
361
- /// Creates a new product in the system.
362
- /// </summary>
363
- /// <param name="command">The product creation command with required fields.</param>
364
- /// <returns>The created product with generated ID.</returns>
365
- /// <response code="201">Product created successfully.</response>
366
- /// <response code="400">Invalid input data.</response>
367
- /// <response code="404">Related entity not found.</response>
368
- [HttpPost]
369
- [ProducesResponseType(typeof(ProductDto), 201)]
370
- [ProducesResponseType(typeof(ProblemDetails), 400)]
371
- public async Task<IActionResult> CreateProductAsync([FromBody] CreateProductCommand command) {
372
- // Implementation
373
- }
374
-
375
- // Startup: Enable Swagger XML documentation
376
- services.AddSwaggerGen(options => {
377
- var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
378
- var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
379
- options.IncludeXmlComments(xmlPath);
380
- });
381
- ```
382
-
383
- ## Quick Checklist ✅
384
-
385
- - DI registrations use correct lifetime (Transient/Scoped/Singleton)
386
- - IOptions<T> pattern for configuration
387
- - FluentValidation for all commands/queries
388
- - MediatR for CQRS handlers
389
- - [ScopedPermissions] on all endpoints
390
- - Structured logging with Serilog
391
- - ProblemDetails for error responses
392
- - XML documentation on public APIs
393
- - Secrets via configuration/Key Vault
394
- - HTTPS enforced in production
395
- - CORS restricted to trusted origins
396
- - Audit logging for sensitive operations
397
-
398
- ## Common Mistakes ❌
399
-
400
- - Hardcoding secrets/connection strings
401
- - Missing input validation
402
- - Not using parameterized queries
403
- - Business logic in controllers
404
- - No authorization checks
405
- - Missing structured logging
406
- - Raw exceptions exposed to clients
407
- - CORS allowing all origins
408
- - No audit trail for sensitive operations
409
-
410
- ## Resources
411
-
412
- - [Microsoft ASP.NET Core Docs](https://docs.microsoft.com/aspnet/core/)
413
- - [FluentValidation](https://fluentvalidation.net/)
414
- - [MediatR](https://github.com/jbogard/MediatR)
415
- - [Serilog](https://serilog.net/)
416
- - [RFC 7807 Problem Details](https://tools.ietf.org/html/rfc7807)