imposters 0.1.0 → 0.2.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.
Files changed (44) hide show
  1. package/bin/imposters +1 -45
  2. package/dist/cjs/cli/Commands.js +14 -6
  3. package/dist/cjs/cli/Commands.js.map +1 -1
  4. package/dist/cjs/index.js +3 -3
  5. package/dist/cjs/layers/MainLayer.js +2 -2
  6. package/dist/cjs/layers/MainLayer.js.map +1 -1
  7. package/dist/cjs/server/ImposterServer.js +2 -2
  8. package/dist/cjs/server/ImposterServer.js.map +1 -1
  9. package/dist/cjs/server/ServerFactory.js +69 -0
  10. package/dist/cjs/server/ServerFactory.js.map +1 -0
  11. package/dist/dts/cli/Commands.d.ts.map +1 -1
  12. package/dist/dts/index.d.ts +1 -1
  13. package/dist/dts/index.d.ts.map +1 -1
  14. package/dist/dts/server/ImposterServer.d.ts +2 -2
  15. package/dist/dts/server/ImposterServer.d.ts.map +1 -1
  16. package/dist/dts/server/{BunServer.d.ts → ServerFactory.d.ts} +2 -1
  17. package/dist/dts/server/ServerFactory.d.ts.map +1 -0
  18. package/dist/esm/cli/Commands.js +14 -6
  19. package/dist/esm/cli/Commands.js.map +1 -1
  20. package/dist/esm/index.js +1 -1
  21. package/dist/esm/index.js.map +1 -1
  22. package/dist/esm/layers/MainLayer.js +2 -2
  23. package/dist/esm/layers/MainLayer.js.map +1 -1
  24. package/dist/esm/schemas/common.js +8 -4
  25. package/dist/esm/schemas/common.js.map +1 -1
  26. package/dist/esm/server/ImposterServer.js +1 -1
  27. package/dist/esm/server/ImposterServer.js.map +1 -1
  28. package/dist/esm/server/ServerFactory.js +61 -0
  29. package/dist/esm/server/ServerFactory.js.map +1 -0
  30. package/package.json +9 -15
  31. package/server/ServerFactory/package.json +6 -0
  32. package/src/cli/Commands.ts +20 -6
  33. package/src/index.ts +3 -3
  34. package/src/layers/MainLayer.ts +2 -2
  35. package/src/server/ImposterServer.ts +1 -1
  36. package/src/server/ServerFactory.ts +76 -0
  37. package/dist/cjs/server/BunServer.js +0 -13
  38. package/dist/cjs/server/BunServer.js.map +0 -1
  39. package/dist/dts/server/BunServer.d.ts.map +0 -1
  40. package/dist/esm/server/BunServer.js +0 -6
  41. package/dist/esm/server/BunServer.js.map +0 -1
  42. package/server/BunServer/package.json +0 -6
  43. package/src/server/BunServer.ts +0 -19
  44. package/src/types/bun.d.ts +0 -6
package/bin/imposters CHANGED
@@ -1,47 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const os = require("os");
4
- const path = require("path");
5
- const { execFileSync } = require("child_process");
6
-
7
- const platform = os.platform();
8
- const arch = os.arch();
9
-
10
- const PLATFORMS = {
11
- "linux-x64": "@imposters/linux-x64",
12
- "linux-arm64": "@imposters/linux-arm64",
13
- "darwin-x64": "@imposters/darwin-x64",
14
- "darwin-arm64": "@imposters/darwin-arm64",
15
- };
16
-
17
- const key = `${platform}-${arch}`;
18
- const pkg = PLATFORMS[key];
19
-
20
- if (!pkg) {
21
- console.error(
22
- `Unsupported platform: ${platform}-${arch}\n` +
23
- `Imposters supports: ${Object.keys(PLATFORMS).join(", ")}`
24
- );
25
- process.exit(1);
26
- }
27
-
28
- let binPath;
29
- try {
30
- binPath = require.resolve(`${pkg}/bin/imposters`);
31
- } catch {
32
- console.error(
33
- `Could not find the Imposters binary for ${platform}-${arch}.\n` +
34
- `The platform package "${pkg}" does not appear to be installed.\n\n` +
35
- `Try reinstalling: npm install -g imposters`
36
- );
37
- process.exit(1);
38
- }
39
-
40
- try {
41
- execFileSync(binPath, process.argv.slice(2), { stdio: "inherit" });
42
- } catch (e) {
43
- if (e.status !== null) {
44
- process.exit(e.status);
45
- }
46
- throw e;
47
- }
3
+ require("../dist/cjs/Program.js");
@@ -7,29 +7,37 @@ exports.run = exports.main = void 0;
7
7
  var _cli = require("@effect/cli");
8
8
  var _platformNode = require("@effect/platform-node");
9
9
  var _effect = require("effect");
10
+ var _nodeModule = require("node:module");
10
11
  var _HandlerHttpClient = require("../client/HandlerHttpClient");
11
12
  var _ImpostersClient = require("../client/ImpostersClient");
12
13
  var _AdminServer = require("../server/AdminServer");
14
+ var _ServerFactory = require("../server/ServerFactory");
13
15
  var _ConfigLoader = require("./ConfigLoader");
16
+ const _require = /*#__PURE__*/(0, _nodeModule.createRequire)(import.meta.url);
17
+ const packageJson = /*#__PURE__*/_require("imposters/package.json");
14
18
  const configOption = /*#__PURE__*/_cli.Options.file("config").pipe(/*#__PURE__*/_cli.Options.withAlias("c"), /*#__PURE__*/_cli.Options.withDescription("Path to JSON config file"), _cli.Options.optional);
15
19
  const portOption = /*#__PURE__*/_cli.Options.integer("port").pipe(/*#__PURE__*/_cli.Options.withAlias("p"), /*#__PURE__*/_cli.Options.withDescription("Admin server port (default: 2525)"), _cli.Options.optional);
20
+ const runtimeOption = /*#__PURE__*/_cli.Options.choice("runtime", ["node", "bun"]).pipe(/*#__PURE__*/_cli.Options.withDescription("Server runtime: node (default) or bun"), /*#__PURE__*/_cli.Options.withDefault("node"));
16
21
  const startCommand = /*#__PURE__*/_cli.Command.make("start", {
17
22
  config: configOption,
18
- port: portOption
23
+ port: portOption,
24
+ runtime: runtimeOption
19
25
  }, ({
20
26
  config,
21
- port
27
+ port,
28
+ runtime
22
29
  }) => _effect.Effect.gen(function* () {
23
30
  const adminPort = _effect.Option.isSome(port) ? port.value : Number(process.env.ADMIN_PORT ?? 2525);
24
31
  const {
25
32
  dispose,
26
33
  handler
27
34
  } = (0, _AdminServer.makeCompositeHandler)(adminPort);
28
- const server = Bun.serve({
35
+ const serverFactory = yield* _ServerFactory.ServerFactory;
36
+ const server = serverFactory.create({
29
37
  port: adminPort,
30
38
  fetch: handler
31
39
  });
32
- console.log(`Imposters admin server running on http://localhost:${server.port}`);
40
+ console.log(`Imposters admin server running on http://localhost:${server.port} (runtime: ${runtime})`);
33
41
  console.log(`Admin UI: http://localhost:${server.port}/_ui`);
34
42
  // Load config and create imposters if config file provided
35
43
  if (_effect.Option.isSome(config)) {
@@ -94,11 +102,11 @@ const startCommand = /*#__PURE__*/_cli.Command.make("start", {
94
102
  process.on("SIGINT", shutdown);
95
103
  process.on("SIGTERM", shutdown);
96
104
  });
97
- }));
105
+ }).pipe(_effect.Effect.provide(runtime === "bun" ? _ServerFactory.BunServerFactoryLive : _ServerFactory.NodeServerFactoryLive)));
98
106
  const command = /*#__PURE__*/_cli.Command.make("imposters").pipe(/*#__PURE__*/_cli.Command.withSubcommands([startCommand]));
99
107
  const run = exports.run = /*#__PURE__*/_cli.Command.run(command, {
100
108
  name: "imposters",
101
- version: "0.1.0"
109
+ version: packageJson.version
102
110
  });
103
111
  const main = exports.main = /*#__PURE__*/run(process.argv).pipe(/*#__PURE__*/_effect.Effect.provide(_platformNode.NodeContext.layer), _platformNode.NodeRuntime.runMain);
104
112
  //# sourceMappingURL=Commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Commands.js","names":["_cli","require","_platformNode","_effect","_HandlerHttpClient","_ImpostersClient","_AdminServer","_ConfigLoader","configOption","Options","file","pipe","withAlias","withDescription","optional","portOption","integer","startCommand","Command","make","config","port","Effect","gen","adminPort","Option","isSome","value","Number","process","env","ADMIN_PORT","dispose","handler","makeCompositeHandler","server","Bun","serve","fetch","console","log","configData","loadConfigFile","catchTag","e","sync","error","message","imposters","length","clientLayer","ImpostersClientLive","Layer","provide","HandlerHttpClientLive","client","ImpostersClient","imp","created","createImposter","payload","name","undefined","protocol","adminPath","catchAll","succeed","stub","stubs","addStub","path","imposterId","id","void","updateImposter","status","async","shutdown","stop","exit","on","command","withSubcommands","run","exports","version","main","argv","NodeContext","layer","NodeRuntime","runMain"],"sources":["../../../src/cli/Commands.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Commands.js","names":["_cli","require","_platformNode","_effect","_nodeModule","_HandlerHttpClient","_ImpostersClient","_AdminServer","_ServerFactory","_ConfigLoader","createRequire","import","meta","url","packageJson","configOption","Options","file","pipe","withAlias","withDescription","optional","portOption","integer","runtimeOption","choice","withDefault","startCommand","Command","make","config","port","runtime","Effect","gen","adminPort","Option","isSome","value","Number","process","env","ADMIN_PORT","dispose","handler","makeCompositeHandler","serverFactory","ServerFactory","server","create","fetch","console","log","configData","loadConfigFile","catchTag","e","sync","error","message","imposters","length","clientLayer","ImpostersClientLive","Layer","provide","HandlerHttpClientLive","client","ImpostersClient","imp","created","createImposter","payload","name","undefined","protocol","adminPath","catchAll","succeed","stub","stubs","addStub","path","imposterId","id","void","updateImposter","status","async","shutdown","stop","exit","on","BunServerFactoryLive","NodeServerFactoryLive","command","withSubcommands","run","exports","version","main","argv","NodeContext","layer","NodeRuntime","runMain"],"sources":["../../../src/cli/Commands.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/cjs/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.testing = exports.stubs = exports.route = exports.requests = exports.partials = exports.layout = exports.imposter = exports.html = exports.dashboard = exports.common = exports.UuidLive = exports.Uuid = exports.UiRouter = exports.TemplateEngine = exports.SystemHandlers = exports.SystemGroup = exports.StubSchema = exports.ResponseGenerator = exports.RequestMatcher = exports.RequestLogger = exports.RequestLogSchema = exports.ProxyService = exports.Program = exports.PortAllocator = exports.MetricsService = exports.MainLayer = exports.ImpostersHandlers = exports.ImpostersGroup = exports.ImpostersClient = exports.ImposterServer = exports.ImposterSchema = exports.ImposterRepository = exports.HandlerHttpClient = exports.FiberManager = exports.ExpressionEvaluator = exports.Conversions = exports.ConfigLoader = exports.ConfigFileSchema = exports.Commands = exports.BunServer = exports.AppConfig = exports.ApiSchemas = exports.ApiLayer = exports.ApiErrors = exports.AdminUiRouter = exports.AdminServer = exports.AdminLayout = exports.AdminDashboard = exports.AdminApi = void 0;
6
+ exports.testing = exports.stubs = exports.route = exports.requests = exports.partials = exports.layout = exports.imposter = exports.html = exports.dashboard = exports.common = exports.UuidLive = exports.Uuid = exports.UiRouter = exports.TemplateEngine = exports.SystemHandlers = exports.SystemGroup = exports.StubSchema = exports.ServerFactory = exports.ResponseGenerator = exports.RequestMatcher = exports.RequestLogger = exports.RequestLogSchema = exports.ProxyService = exports.Program = exports.PortAllocator = exports.MetricsService = exports.MainLayer = exports.ImpostersHandlers = exports.ImpostersGroup = exports.ImpostersClient = exports.ImposterServer = exports.ImposterSchema = exports.ImposterRepository = exports.HandlerHttpClient = exports.FiberManager = exports.ExpressionEvaluator = exports.Conversions = exports.ConfigLoader = exports.ConfigFileSchema = exports.Commands = exports.AppConfig = exports.ApiSchemas = exports.ApiLayer = exports.ApiErrors = exports.AdminUiRouter = exports.AdminServer = exports.AdminLayout = exports.AdminDashboard = exports.AdminApi = void 0;
7
7
  var _Program = _interopRequireWildcard(require("./Program.js"));
8
8
  exports.Program = _Program;
9
9
  var _AdminApi = _interopRequireWildcard(require("./api/AdminApi.js"));
@@ -62,12 +62,12 @@ var _common = _interopRequireWildcard(require("./schemas/common.js"));
62
62
  exports.common = _common;
63
63
  var _AdminServer = _interopRequireWildcard(require("./server/AdminServer.js"));
64
64
  exports.AdminServer = _AdminServer;
65
- var _BunServer = _interopRequireWildcard(require("./server/BunServer.js"));
66
- exports.BunServer = _BunServer;
67
65
  var _FiberManager = _interopRequireWildcard(require("./server/FiberManager.js"));
68
66
  exports.FiberManager = _FiberManager;
69
67
  var _ImposterServer = _interopRequireWildcard(require("./server/ImposterServer.js"));
70
68
  exports.ImposterServer = _ImposterServer;
69
+ var _ServerFactory = _interopRequireWildcard(require("./server/ServerFactory.js"));
70
+ exports.ServerFactory = _ServerFactory;
71
71
  var _AppConfig = _interopRequireWildcard(require("./services/AppConfig.js"));
72
72
  exports.AppConfig = _AppConfig;
73
73
  var _MetricsService = _interopRequireWildcard(require("./services/MetricsService.js"));
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.MainLayer = void 0;
7
7
  var Layer = _interopRequireWildcard(require("effect/Layer"));
8
8
  var _ImposterRepository = require("../repositories/ImposterRepository");
9
- var _BunServer = require("../server/BunServer");
10
9
  var _FiberManager = require("../server/FiberManager");
11
10
  var _ImposterServer = require("../server/ImposterServer");
11
+ var _ServerFactory = require("../server/ServerFactory");
12
12
  var _AppConfig = require("../services/AppConfig");
13
13
  var _MetricsService = require("../services/MetricsService");
14
14
  var _PortAllocator = require("../services/PortAllocator");
@@ -21,7 +21,7 @@ const PortAllocatorWithDeps = /*#__PURE__*/_PortAllocator.PortAllocatorLive.pipe
21
21
  // ProxyServiceLive depends on Uuid
22
22
  const ProxyServiceWithDeps = /*#__PURE__*/_ProxyService.ProxyServiceLive.pipe(/*#__PURE__*/Layer.provide(_UuidLive.UuidLive));
23
23
  // ImposterServerLive depends on FiberManager + ImposterRepository + ServerFactory + RequestLogger + Metrics + Proxy
24
- const ImposterServerWithDeps = /*#__PURE__*/_ImposterServer.ImposterServerLive.pipe(/*#__PURE__*/Layer.provide(/*#__PURE__*/Layer.mergeAll(_FiberManager.FiberManagerLive, _ImposterRepository.ImposterRepositoryLive, _BunServer.BunServerFactoryLive, _RequestLogger.RequestLoggerLive, _MetricsService.MetricsServiceLive, ProxyServiceWithDeps)));
24
+ const ImposterServerWithDeps = /*#__PURE__*/_ImposterServer.ImposterServerLive.pipe(/*#__PURE__*/Layer.provide(/*#__PURE__*/Layer.mergeAll(_FiberManager.FiberManagerLive, _ImposterRepository.ImposterRepositoryLive, _ServerFactory.NodeServerFactoryLive, _RequestLogger.RequestLoggerLive, _MetricsService.MetricsServiceLive, ProxyServiceWithDeps)));
25
25
  // Compose all services
26
26
  const MainLayer = exports.MainLayer = /*#__PURE__*/Layer.mergeAll(_UuidLive.UuidLive, _AppConfig.AppConfigLive, PortAllocatorWithDeps, _ImposterRepository.ImposterRepositoryLive, _FiberManager.FiberManagerLive, _RequestLogger.RequestLoggerLive, _MetricsService.MetricsServiceLive, ImposterServerWithDeps);
27
27
  //# sourceMappingURL=MainLayer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MainLayer.js","names":["Layer","_interopRequireWildcard","require","_ImposterRepository","_BunServer","_FiberManager","_ImposterServer","_AppConfig","_MetricsService","_PortAllocator","_ProxyService","_RequestLogger","_UuidLive","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","PortAllocatorWithDeps","PortAllocatorLive","pipe","provide","AppConfigLive","ProxyServiceWithDeps","ProxyServiceLive","UuidLive","ImposterServerWithDeps","ImposterServerLive","mergeAll","FiberManagerLive","ImposterRepositoryLive","BunServerFactoryLive","RequestLoggerLive","MetricsServiceLive","MainLayer","exports"],"sources":["../../../src/layers/MainLayer.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,cAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAR,OAAA;AACA,IAAAS,cAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AAA+C,SAAAD,wBAAAY,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAd,uBAAA,YAAAA,CAAAY,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAE/C;AACA,MAAMkB,qBAAqB,gBAAGC,gCAAiB,CAACC,IAAI,cAAClC,KAAK,CAACmC,OAAO,CAACC,wBAAa,CAAC,CAAC;AAElF;AACA,MAAMC,oBAAoB,gBAAGC,8BAAgB,CAACJ,IAAI,cAAClC,KAAK,CAACmC,OAAO,CAACI,kBAAQ,CAAC,CAAC;AAE3E;AACA,MAAMC,sBAAsB,gBAAGC,kCAAkB,CAACP,IAAI,cACpDlC,KAAK,CAACmC,OAAO,cACXnC,KAAK,CAAC0C,QAAQ,CACZC,8BAAgB,EAChBC,0CAAsB,EACtBC,+BAAoB,EACpBC,gCAAiB,EACjBC,kCAAkB,EAClBV,oBAAoB,CACrB,CACF,CACF;AAED;AACO,MAAMW,SAAS,GAAAC,OAAA,CAAAD,SAAA,gBAAGhD,KAAK,CAAC0C,QAAQ,CACrCH,kBAAQ,EACRH,wBAAa,EACbJ,qBAAqB,EACrBY,0CAAsB,EACtBD,8BAAgB,EAChBG,gCAAiB,EACjBC,kCAAkB,EAClBP,sBAAsB,CACvB","ignoreList":[]}
1
+ {"version":3,"file":"MainLayer.js","names":["Layer","_interopRequireWildcard","require","_ImposterRepository","_FiberManager","_ImposterServer","_ServerFactory","_AppConfig","_MetricsService","_PortAllocator","_ProxyService","_RequestLogger","_UuidLive","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","PortAllocatorWithDeps","PortAllocatorLive","pipe","provide","AppConfigLive","ProxyServiceWithDeps","ProxyServiceLive","UuidLive","ImposterServerWithDeps","ImposterServerLive","mergeAll","FiberManagerLive","ImposterRepositoryLive","NodeServerFactoryLive","RequestLoggerLive","MetricsServiceLive","MainLayer","exports"],"sources":["../../../src/layers/MainLayer.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,cAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAR,OAAA;AACA,IAAAS,cAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AAA+C,SAAAD,wBAAAY,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAd,uBAAA,YAAAA,CAAAY,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAE/C;AACA,MAAMkB,qBAAqB,gBAAGC,gCAAiB,CAACC,IAAI,cAAClC,KAAK,CAACmC,OAAO,CAACC,wBAAa,CAAC,CAAC;AAElF;AACA,MAAMC,oBAAoB,gBAAGC,8BAAgB,CAACJ,IAAI,cAAClC,KAAK,CAACmC,OAAO,CAACI,kBAAQ,CAAC,CAAC;AAE3E;AACA,MAAMC,sBAAsB,gBAAGC,kCAAkB,CAACP,IAAI,cACpDlC,KAAK,CAACmC,OAAO,cACXnC,KAAK,CAAC0C,QAAQ,CACZC,8BAAgB,EAChBC,0CAAsB,EACtBC,oCAAqB,EACrBC,gCAAiB,EACjBC,kCAAkB,EAClBV,oBAAoB,CACrB,CACF,CACF;AAED;AACO,MAAMW,SAAS,GAAAC,OAAA,CAAAD,SAAA,gBAAGhD,KAAK,CAAC0C,QAAQ,CACrCH,kBAAQ,EACRH,wBAAa,EACbJ,qBAAqB,EACrBY,0CAAsB,EACtBD,8BAAgB,EAChBG,gCAAiB,EACjBC,kCAAkB,EAClBP,sBAAsB,CACvB","ignoreList":[]}
@@ -15,8 +15,8 @@ var _MetricsService = require("../services/MetricsService");
15
15
  var _ProxyService = require("../services/ProxyService");
16
16
  var _RequestLogger = require("../services/RequestLogger");
17
17
  var _UiRouter = require("../ui/UiRouter");
18
- var _BunServer = require("./BunServer");
19
18
  var _FiberManager = require("./FiberManager");
19
+ var _ServerFactory = require("./ServerFactory");
20
20
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
21
21
  class ImposterServerError extends _effect.Data.TaggedError("ImposterServerError") {}
22
22
  exports.ImposterServerError = ImposterServerError;
@@ -25,7 +25,7 @@ exports.ImposterServer = ImposterServer;
25
25
  const ImposterServerLive = exports.ImposterServerLive = /*#__PURE__*/_effect.Layer.effect(ImposterServer, /*#__PURE__*/_effect.Effect.gen(function* () {
26
26
  const repo = yield* _ImposterRepository.ImposterRepository;
27
27
  const fiberManager = yield* _FiberManager.FiberManager;
28
- const serverFactory = yield* _BunServer.ServerFactory;
28
+ const serverFactory = yield* _ServerFactory.ServerFactory;
29
29
  const requestLogger = yield* _RequestLogger.RequestLogger;
30
30
  const metricsService = yield* _MetricsService.MetricsService;
31
31
  const proxyService = yield* _ProxyService.ProxyService;
@@ -1 +1 @@
1
- {"version":3,"file":"ImposterServer.js","names":["_effect","require","DateTime","_interopRequireWildcard","_imposter","_RequestMatcher","_ResponseGenerator","_ImposterRepository","_common","_MetricsService","_ProxyService","_RequestLogger","_UiRouter","_BunServer","_FiberManager","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ImposterServerError","Data","TaggedError","exports","ImposterServer","Context","Tag","ImposterServerLive","Layer","effect","Effect","gen","repo","ImposterRepository","fiberManager","FiberManager","serverFactory","ServerFactory","requestLogger","RequestLogger","metricsService","MetricsService","proxyService","ProxyService","stateMapRef","Ref","make","HashMap","empty","start","id","record","config","stubsRef","stubs","proxyConfigRef","proxy","responseState","makeResponseState","update","rt","runtime","runPromise","Runtime","uiRouter","makeUiRouter","handler","request","uiResponse","startTime","Date","now","ctx","promise","extractRequestContext","stub","findMatchingStub","response","proxied","proxyConfig","url","URL","forward","pipe","catchTag","err","succeed","Response","JSON","stringify","error","target","targetUrl","reason","status","headers","mode","responseClone","clone","newStub","recordAsStub","addStub","catchAll","void","freshStubs","getStubs","method","path","responses","index","getNextIndex","length","responseMode","responseConfig","delay","undefined","sleep","buildResponse","respText","text","respHeaders","forEach","val","key","logBody","slice","duration","logEntry","NonEmptyString","crypto","randomUUID","imposterId","timestamp","unsafeMake","query","body","matchedStubId","log","recordRequest","catchAllCause","cause","details","String","fiberEffect","acquireRelease","try","create","port","fetch","catch","server","sync","stop","andThen","never","scoped","supervisedEffect","onError","remove","ImposterConfig","reset","removeImposter","updateStubs","stateMap","state","_tag","value","updateProxyConfig","isRunning"],"sources":["../../../src/server/ImposterServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ImposterServer.js","names":["_effect","require","DateTime","_interopRequireWildcard","_imposter","_RequestMatcher","_ResponseGenerator","_ImposterRepository","_common","_MetricsService","_ProxyService","_RequestLogger","_UiRouter","_FiberManager","_ServerFactory","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ImposterServerError","Data","TaggedError","exports","ImposterServer","Context","Tag","ImposterServerLive","Layer","effect","Effect","gen","repo","ImposterRepository","fiberManager","FiberManager","serverFactory","ServerFactory","requestLogger","RequestLogger","metricsService","MetricsService","proxyService","ProxyService","stateMapRef","Ref","make","HashMap","empty","start","id","record","config","stubsRef","stubs","proxyConfigRef","proxy","responseState","makeResponseState","update","rt","runtime","runPromise","Runtime","uiRouter","makeUiRouter","handler","request","uiResponse","startTime","Date","now","ctx","promise","extractRequestContext","stub","findMatchingStub","response","proxied","proxyConfig","url","URL","forward","pipe","catchTag","err","succeed","Response","JSON","stringify","error","target","targetUrl","reason","status","headers","mode","responseClone","clone","newStub","recordAsStub","addStub","catchAll","void","freshStubs","getStubs","method","path","responses","index","getNextIndex","length","responseMode","responseConfig","delay","undefined","sleep","buildResponse","respText","text","respHeaders","forEach","val","key","logBody","slice","duration","logEntry","NonEmptyString","crypto","randomUUID","imposterId","timestamp","unsafeMake","query","body","matchedStubId","log","recordRequest","catchAllCause","cause","details","String","fiberEffect","acquireRelease","try","create","port","fetch","catch","server","sync","stop","andThen","never","scoped","supervisedEffect","onError","remove","ImposterConfig","reset","removeImposter","updateStubs","stateMap","state","_tag","value","updateProxyConfig","isRunning"],"sources":["../../../src/server/ImposterServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ServerFactory = exports.NodeServerFactoryLive = exports.BunServerFactoryLive = void 0;
7
+ var _effect = require("effect");
8
+ var http = _interopRequireWildcard(require("node:http"));
9
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
10
+ class ServerFactory extends _effect.Context.Tag("ServerFactory")() {}
11
+ exports.ServerFactory = ServerFactory;
12
+ const NodeServerFactoryLive = exports.NodeServerFactoryLive = /*#__PURE__*/_effect.Layer.succeed(ServerFactory, {
13
+ create: options => {
14
+ const server = http.createServer(async (req, res) => {
15
+ try {
16
+ const url = `http://localhost:${options.port}${req.url}`;
17
+ const headers = new Headers();
18
+ for (const [key, val] of Object.entries(req.headers)) {
19
+ if (val) headers.set(key, Array.isArray(val) ? val.join(", ") : val);
20
+ }
21
+ let body;
22
+ if (req.method !== "GET" && req.method !== "HEAD") {
23
+ body = await new Promise(resolve => {
24
+ let data = "";
25
+ req.on("data", chunk => {
26
+ data += chunk.toString();
27
+ });
28
+ req.on("end", () => resolve(data));
29
+ });
30
+ }
31
+ const request = new Request(url, {
32
+ method: req.method ?? "GET",
33
+ headers,
34
+ ...(body !== undefined && body !== "" ? {
35
+ body
36
+ } : {})
37
+ });
38
+ const response = await options.fetch(request);
39
+ const respHeaders = {};
40
+ response.headers.forEach((val, key) => {
41
+ respHeaders[key] = val;
42
+ });
43
+ res.writeHead(response.status, respHeaders);
44
+ const respBody = await response.text();
45
+ res.end(respBody);
46
+ } catch (err) {
47
+ res.writeHead(500);
48
+ res.end(JSON.stringify({
49
+ error: "Internal server error",
50
+ details: String(err)
51
+ }));
52
+ }
53
+ });
54
+ server.listen(options.port);
55
+ return {
56
+ port: options.port,
57
+ stop: closeActive => {
58
+ if (closeActive && typeof server.closeAllConnections === "function") {
59
+ server.closeAllConnections();
60
+ }
61
+ server.close();
62
+ }
63
+ };
64
+ }
65
+ });
66
+ const BunServerFactoryLive = exports.BunServerFactoryLive = /*#__PURE__*/_effect.Layer.succeed(ServerFactory, {
67
+ create: options => globalThis.Bun.serve(options)
68
+ });
69
+ //# sourceMappingURL=ServerFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerFactory.js","names":["_effect","require","http","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ServerFactory","Context","Tag","exports","NodeServerFactoryLive","Layer","succeed","create","options","server","createServer","req","res","url","port","headers","Headers","key","val","entries","Array","isArray","join","body","method","Promise","resolve","data","on","chunk","toString","request","Request","undefined","response","fetch","respHeaders","forEach","writeHead","status","respBody","text","end","err","JSON","stringify","error","details","String","listen","stop","closeActive","closeAllConnections","close","BunServerFactoryLive","globalThis","Bun","serve"],"sources":["../../../src/server/ServerFactory.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Commands.d.ts","sourceRoot":"","sources":["../../../src/cli/Commands.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAiB,MAAM,QAAQ,CAAA;AA4G9C,eAAO,MAAM,GAAG,8JAGd,CAAA;AAEF,eAAO,MAAM,IAAI,MAGhB,CAAA"}
1
+ {"version":3,"file":"Commands.d.ts","sourceRoot":"","sources":["../../../src/cli/Commands.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAiB,MAAM,QAAQ,CAAA;AA0H9C,eAAO,MAAM,GAAG,8JAGd,CAAA;AAEF,eAAO,MAAM,IAAI,MAGhB,CAAA"}
@@ -37,9 +37,9 @@ export * as RequestLogSchema from "./schemas/RequestLogSchema.js";
37
37
  export * as StubSchema from "./schemas/StubSchema.js";
38
38
  export * as common from "./schemas/common.js";
39
39
  export * as AdminServer from "./server/AdminServer.js";
40
- export * as BunServer from "./server/BunServer.js";
41
40
  export * as FiberManager from "./server/FiberManager.js";
42
41
  export * as ImposterServer from "./server/ImposterServer.js";
42
+ export * as ServerFactory from "./server/ServerFactory.js";
43
43
  export * as AppConfig from "./services/AppConfig.js";
44
44
  export * as MetricsService from "./services/MetricsService.js";
45
45
  export * as PortAllocator from "./services/PortAllocator.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAGvC,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAG7C,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAA;AAG/C,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAA;AAGjD,OAAO,KAAK,WAAW,MAAM,sBAAsB,CAAA;AAGnD,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAA;AAGzD,OAAO,KAAK,iBAAiB,MAAM,4BAA4B,CAAA;AAG/D,OAAO,KAAK,WAAW,MAAM,sBAAsB,CAAA;AAGnD,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAA;AAGzD,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAG7C,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AAGrD,OAAO,KAAK,iBAAiB,MAAM,+BAA+B,CAAA;AAGlE,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAA;AAG9D,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAE9C;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAEhD;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAG1C,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAGhD,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAElD;;;GAGG;AACH,OAAO,KAAK,mBAAmB,MAAM,mCAAmC,CAAA;AAGxE,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAG9D,OAAO,KAAK,iBAAiB,MAAM,iCAAiC,CAAA;AAGpE,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAG9D,OAAO,KAAK,kBAAkB,MAAM,sCAAsC,CAAA;AAG1E,OAAO,KAAK,gBAAgB,MAAM,+BAA+B,CAAA;AAGjE,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAG7D,OAAO,KAAK,gBAAgB,MAAM,+BAA+B,CAAA;AAGjE,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAA;AAGrD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAG7C,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;AAGtD,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAGlD,OAAO,KAAK,YAAY,MAAM,0BAA0B,CAAA;AAGxD,OAAO,KAAK,cAAc,MAAM,4BAA4B,CAAA;AAG5D,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAA;AAGpD,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAG9D,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAA;AAG5D,OAAO,KAAK,YAAY,MAAM,4BAA4B,CAAA;AAG1D,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAA;AAG5D,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAG1C,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAGlD,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAA;AAG5C,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAA;AAGxD,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAA;AAG5D,OAAO,KAAK,cAAc,MAAM,oCAAoC,CAAA;AAGpE,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAGlD,OAAO,KAAK,IAAI,MAAM,cAAc,CAAA;AAGpC,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA;AAGxC,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAA;AAGpD,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAGlD,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAGvC,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAG7C,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAA;AAG/C,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAA;AAGjD,OAAO,KAAK,WAAW,MAAM,sBAAsB,CAAA;AAGnD,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAA;AAGzD,OAAO,KAAK,iBAAiB,MAAM,4BAA4B,CAAA;AAG/D,OAAO,KAAK,WAAW,MAAM,sBAAsB,CAAA;AAGnD,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAA;AAGzD,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAG7C,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AAGrD,OAAO,KAAK,iBAAiB,MAAM,+BAA+B,CAAA;AAGlE,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAA;AAG9D,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAE9C;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAEhD;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAG1C,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAGhD,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAElD;;;GAGG;AACH,OAAO,KAAK,mBAAmB,MAAM,mCAAmC,CAAA;AAGxE,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAG9D,OAAO,KAAK,iBAAiB,MAAM,iCAAiC,CAAA;AAGpE,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAG9D,OAAO,KAAK,kBAAkB,MAAM,sCAAsC,CAAA;AAG1E,OAAO,KAAK,gBAAgB,MAAM,+BAA+B,CAAA;AAGjE,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAG7D,OAAO,KAAK,gBAAgB,MAAM,+BAA+B,CAAA;AAGjE,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAA;AAGrD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAG7C,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;AAGtD,OAAO,KAAK,YAAY,MAAM,0BAA0B,CAAA;AAGxD,OAAO,KAAK,cAAc,MAAM,4BAA4B,CAAA;AAG5D,OAAO,KAAK,aAAa,MAAM,2BAA2B,CAAA;AAG1D,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAA;AAGpD,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAG9D,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAA;AAG5D,OAAO,KAAK,YAAY,MAAM,4BAA4B,CAAA;AAG1D,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAA;AAG5D,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAG1C,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAGlD,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAA;AAG5C,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAA;AAGxD,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAA;AAG5D,OAAO,KAAK,cAAc,MAAM,oCAAoC,CAAA;AAGpE,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAGlD,OAAO,KAAK,IAAI,MAAM,cAAc,CAAA;AAGpC,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA;AAGxC,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAA;AAGpD,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAGlD,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAA"}
@@ -4,8 +4,8 @@ import { ImposterRepository } from "../repositories/ImposterRepository";
4
4
  import { MetricsService } from "../services/MetricsService";
5
5
  import { ProxyService } from "../services/ProxyService";
6
6
  import { RequestLogger } from "../services/RequestLogger";
7
- import { ServerFactory } from "./BunServer";
8
7
  import { FiberManager } from "./FiberManager";
8
+ import { ServerFactory } from "./ServerFactory";
9
9
  declare const ImposterServerError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
10
10
  readonly _tag: "ImposterServerError";
11
11
  } & Readonly<A>;
@@ -24,6 +24,6 @@ export interface ImposterServerShape {
24
24
  declare const ImposterServer_base: Context.TagClass<ImposterServer, "ImposterServer", ImposterServerShape>;
25
25
  export declare class ImposterServer extends ImposterServer_base {
26
26
  }
27
- export declare const ImposterServerLive: Layer.Layer<ImposterServer, never, ImposterRepository | MetricsService | ProxyService | RequestLogger | ServerFactory | FiberManager>;
27
+ export declare const ImposterServerLive: Layer.Layer<ImposterServer, never, ImposterRepository | MetricsService | ProxyService | RequestLogger | FiberManager | ServerFactory>;
28
28
  export {};
29
29
  //# sourceMappingURL=ImposterServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ImposterServer.d.ts","sourceRoot":"","sources":["../../../src/server/ImposterServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,MAAM,EAAW,KAAK,EAAgB,MAAM,QAAQ,CAAA;AAE5E,OAAO,EAAkB,KAAK,qBAAqB,EAA0B,MAAM,oBAAoB,CAAA;AAGvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AAIvE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;;;;AAE7C,qBAAa,mBAAoB,SAAQ,yBAAwC;IAC/E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAC;CAAG;AAEL,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,qBAAqB,CAAC,CAAA;IAChG,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAClD,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzD,QAAQ,CAAC,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC/D,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;CAC3D;;AAED,qBAAa,cAAe,SAAQ,mBAAoE;CAAG;AAO3G,eAAO,MAAM,kBAAkB,uIA+M9B,CAAA"}
1
+ {"version":3,"file":"ImposterServer.d.ts","sourceRoot":"","sources":["../../../src/server/ImposterServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,MAAM,EAAW,KAAK,EAAgB,MAAM,QAAQ,CAAA;AAE5E,OAAO,EAAkB,KAAK,qBAAqB,EAA0B,MAAM,oBAAoB,CAAA;AAGvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AAIvE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;;;;AAE/C,qBAAa,mBAAoB,SAAQ,yBAAwC;IAC/E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAC;CAAG;AAEL,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,qBAAqB,CAAC,CAAA;IAChG,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAClD,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzD,QAAQ,CAAC,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC/D,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;CAC3D;;AAED,qBAAa,cAAe,SAAQ,mBAAoE;CAAG;AAO3G,eAAO,MAAM,kBAAkB,uIA+M9B,CAAA"}
@@ -12,6 +12,7 @@ export interface ServerFactoryShape {
12
12
  declare const ServerFactory_base: Context.TagClass<ServerFactory, "ServerFactory", ServerFactoryShape>;
13
13
  export declare class ServerFactory extends ServerFactory_base {
14
14
  }
15
+ export declare const NodeServerFactoryLive: Layer.Layer<ServerFactory, never, never>;
15
16
  export declare const BunServerFactoryLive: Layer.Layer<ServerFactory, never, never>;
16
17
  export {};
17
- //# sourceMappingURL=BunServer.d.ts.map
18
+ //# sourceMappingURL=ServerFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerFactory.d.ts","sourceRoot":"","sources":["../../../src/server/ServerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAGvC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAA;CAC9C;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;QACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;KACxD,KAAK,cAAc,CAAA;CACrB;;AAED,qBAAa,aAAc,SAAQ,kBAAiE;CAAG;AAEvG,eAAO,MAAM,qBAAqB,0CAsDhC,CAAA;AAEF,eAAO,MAAM,oBAAoB,0CAE/B,CAAA"}
@@ -1,29 +1,37 @@
1
1
  import { Command, Options } from "@effect/cli";
2
2
  import { NodeContext, NodeRuntime } from "@effect/platform-node";
3
3
  import { Effect, Layer, Option } from "effect";
4
+ import { createRequire } from "node:module";
4
5
  import { HandlerHttpClientLive } from "../client/HandlerHttpClient";
5
6
  import { ImpostersClient, ImpostersClientLive } from "../client/ImpostersClient";
6
7
  import { makeCompositeHandler } from "../server/AdminServer";
8
+ import { BunServerFactoryLive, NodeServerFactoryLive, ServerFactory } from "../server/ServerFactory";
7
9
  import { loadConfigFile } from "./ConfigLoader";
10
+ const require = /*#__PURE__*/createRequire(import.meta.url);
11
+ const packageJson = /*#__PURE__*/require("imposters/package.json");
8
12
  const configOption = /*#__PURE__*/Options.file("config").pipe(/*#__PURE__*/Options.withAlias("c"), /*#__PURE__*/Options.withDescription("Path to JSON config file"), Options.optional);
9
13
  const portOption = /*#__PURE__*/Options.integer("port").pipe(/*#__PURE__*/Options.withAlias("p"), /*#__PURE__*/Options.withDescription("Admin server port (default: 2525)"), Options.optional);
14
+ const runtimeOption = /*#__PURE__*/Options.choice("runtime", ["node", "bun"]).pipe(/*#__PURE__*/Options.withDescription("Server runtime: node (default) or bun"), /*#__PURE__*/Options.withDefault("node"));
10
15
  const startCommand = /*#__PURE__*/Command.make("start", {
11
16
  config: configOption,
12
- port: portOption
17
+ port: portOption,
18
+ runtime: runtimeOption
13
19
  }, ({
14
20
  config,
15
- port
21
+ port,
22
+ runtime
16
23
  }) => Effect.gen(function* () {
17
24
  const adminPort = Option.isSome(port) ? port.value : Number(process.env.ADMIN_PORT ?? 2525);
18
25
  const {
19
26
  dispose,
20
27
  handler
21
28
  } = makeCompositeHandler(adminPort);
22
- const server = Bun.serve({
29
+ const serverFactory = yield* ServerFactory;
30
+ const server = serverFactory.create({
23
31
  port: adminPort,
24
32
  fetch: handler
25
33
  });
26
- console.log(`Imposters admin server running on http://localhost:${server.port}`);
34
+ console.log(`Imposters admin server running on http://localhost:${server.port} (runtime: ${runtime})`);
27
35
  console.log(`Admin UI: http://localhost:${server.port}/_ui`);
28
36
  // Load config and create imposters if config file provided
29
37
  if (Option.isSome(config)) {
@@ -88,11 +96,11 @@ const startCommand = /*#__PURE__*/Command.make("start", {
88
96
  process.on("SIGINT", shutdown);
89
97
  process.on("SIGTERM", shutdown);
90
98
  });
91
- }));
99
+ }).pipe(Effect.provide(runtime === "bun" ? BunServerFactoryLive : NodeServerFactoryLive)));
92
100
  const command = /*#__PURE__*/Command.make("imposters").pipe(/*#__PURE__*/Command.withSubcommands([startCommand]));
93
101
  export const run = /*#__PURE__*/Command.run(command, {
94
102
  name: "imposters",
95
- version: "0.1.0"
103
+ version: packageJson.version
96
104
  });
97
105
  export const main = /*#__PURE__*/run(process.argv).pipe(/*#__PURE__*/Effect.provide(NodeContext.layer), NodeRuntime.runMain);
98
106
  //# sourceMappingURL=Commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Commands.js","names":["Command","Options","NodeContext","NodeRuntime","Effect","Layer","Option","HandlerHttpClientLive","ImpostersClient","ImpostersClientLive","makeCompositeHandler","loadConfigFile","configOption","file","pipe","withAlias","withDescription","optional","portOption","integer","startCommand","make","config","port","gen","adminPort","isSome","value","Number","process","env","ADMIN_PORT","dispose","handler","server","Bun","serve","fetch","console","log","configData","catchTag","e","sync","error","message","imposters","length","clientLayer","provide","client","imp","created","createImposter","payload","name","undefined","protocol","adminPath","catchAll","succeed","stub","stubs","addStub","path","imposterId","id","void","updateImposter","status","async","shutdown","stop","exit","on","command","withSubcommands","run","version","main","argv","layer","runMain"],"sources":["../../../src/cli/Commands.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Commands.js","names":["Command","Options","NodeContext","NodeRuntime","Effect","Layer","Option","createRequire","HandlerHttpClientLive","ImpostersClient","ImpostersClientLive","makeCompositeHandler","BunServerFactoryLive","NodeServerFactoryLive","ServerFactory","loadConfigFile","require","import","meta","url","packageJson","configOption","file","pipe","withAlias","withDescription","optional","portOption","integer","runtimeOption","choice","withDefault","startCommand","make","config","port","runtime","gen","adminPort","isSome","value","Number","process","env","ADMIN_PORT","dispose","handler","serverFactory","server","create","fetch","console","log","configData","catchTag","e","sync","error","message","imposters","length","clientLayer","provide","client","imp","created","createImposter","payload","name","undefined","protocol","adminPath","catchAll","succeed","stub","stubs","addStub","path","imposterId","id","void","updateImposter","status","async","shutdown","stop","exit","on","command","withSubcommands","run","version","main","argv","layer","runMain"],"sources":["../../../src/cli/Commands.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -37,9 +37,9 @@ export * as RequestLogSchema from "./schemas/RequestLogSchema.js";
37
37
  export * as StubSchema from "./schemas/StubSchema.js";
38
38
  export * as common from "./schemas/common.js";
39
39
  export * as AdminServer from "./server/AdminServer.js";
40
- export * as BunServer from "./server/BunServer.js";
41
40
  export * as FiberManager from "./server/FiberManager.js";
42
41
  export * as ImposterServer from "./server/ImposterServer.js";
42
+ export * as ServerFactory from "./server/ServerFactory.js";
43
43
  export * as AppConfig from "./services/AppConfig.js";
44
44
  export * as MetricsService from "./services/MetricsService.js";
45
45
  export * as PortAllocator from "./services/PortAllocator.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Program","AdminApi","ApiErrors","ApiSchemas","Conversions","ImpostersGroup","ImpostersHandlers","SystemGroup","SystemHandlers","Commands","ConfigLoader","HandlerHttpClient","ImpostersClient","testing","imposter","route","ApiLayer","MainLayer","ExpressionEvaluator","RequestMatcher","ResponseGenerator","TemplateEngine","ImposterRepository","ConfigFileSchema","ImposterSchema","RequestLogSchema","StubSchema","common","AdminServer","BunServer","FiberManager","ImposterServer","AppConfig","MetricsService","PortAllocator","ProxyService","RequestLogger","Uuid","UuidLive","UiRouter","AdminLayout","AdminUiRouter","AdminDashboard","partials","html","layout","dashboard","requests","stubs"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,OAAO,MAAM,cAAc;AAGvC,OAAO,KAAKC,QAAQ,MAAM,mBAAmB;AAG7C,OAAO,KAAKC,SAAS,MAAM,oBAAoB;AAG/C,OAAO,KAAKC,UAAU,MAAM,qBAAqB;AAGjD,OAAO,KAAKC,WAAW,MAAM,sBAAsB;AAGnD,OAAO,KAAKC,cAAc,MAAM,yBAAyB;AAGzD,OAAO,KAAKC,iBAAiB,MAAM,4BAA4B;AAG/D,OAAO,KAAKC,WAAW,MAAM,sBAAsB;AAGnD,OAAO,KAAKC,cAAc,MAAM,yBAAyB;AAGzD,OAAO,KAAKC,QAAQ,MAAM,mBAAmB;AAG7C,OAAO,KAAKC,YAAY,MAAM,uBAAuB;AAGrD,OAAO,KAAKC,iBAAiB,MAAM,+BAA+B;AAGlE,OAAO,KAAKC,eAAe,MAAM,6BAA6B;AAG9D,OAAO,KAAKC,OAAO,MAAM,qBAAqB;AAE9C;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,sBAAsB;AAEhD;;;AAGA,OAAO,KAAKC,KAAK,MAAM,mBAAmB;AAG1C,OAAO,KAAKC,QAAQ,MAAM,sBAAsB;AAGhD,OAAO,KAAKC,SAAS,MAAM,uBAAuB;AAElD;;;;AAIA,OAAO,KAAKC,mBAAmB,MAAM,mCAAmC;AAGxE,OAAO,KAAKC,cAAc,MAAM,8BAA8B;AAG9D,OAAO,KAAKC,iBAAiB,MAAM,iCAAiC;AAGpE,OAAO,KAAKC,cAAc,MAAM,8BAA8B;AAG9D,OAAO,KAAKC,kBAAkB,MAAM,sCAAsC;AAG1E,OAAO,KAAKC,gBAAgB,MAAM,+BAA+B;AAGjE,OAAO,KAAKC,cAAc,MAAM,6BAA6B;AAG7D,OAAO,KAAKC,gBAAgB,MAAM,+BAA+B;AAGjE,OAAO,KAAKC,UAAU,MAAM,yBAAyB;AAGrD,OAAO,KAAKC,MAAM,MAAM,qBAAqB;AAG7C,OAAO,KAAKC,WAAW,MAAM,yBAAyB;AAGtD,OAAO,KAAKC,SAAS,MAAM,uBAAuB;AAGlD,OAAO,KAAKC,YAAY,MAAM,0BAA0B;AAGxD,OAAO,KAAKC,cAAc,MAAM,4BAA4B;AAG5D,OAAO,KAAKC,SAAS,MAAM,yBAAyB;AAGpD,OAAO,KAAKC,cAAc,MAAM,8BAA8B;AAG9D,OAAO,KAAKC,aAAa,MAAM,6BAA6B;AAG5D,OAAO,KAAKC,YAAY,MAAM,4BAA4B;AAG1D,OAAO,KAAKC,aAAa,MAAM,6BAA6B;AAG5D,OAAO,KAAKC,IAAI,MAAM,oBAAoB;AAG1C,OAAO,KAAKC,QAAQ,MAAM,wBAAwB;AAGlD,OAAO,KAAKC,QAAQ,MAAM,kBAAkB;AAG5C,OAAO,KAAKC,WAAW,MAAM,2BAA2B;AAGxD,OAAO,KAAKC,aAAa,MAAM,6BAA6B;AAG5D,OAAO,KAAKC,cAAc,MAAM,oCAAoC;AAGpE,OAAO,KAAKC,QAAQ,MAAM,wBAAwB;AAGlD,OAAO,KAAKC,IAAI,MAAM,cAAc;AAGpC,OAAO,KAAKC,MAAM,MAAM,gBAAgB;AAGxC,OAAO,KAAKC,SAAS,MAAM,yBAAyB;AAGpD,OAAO,KAAKC,QAAQ,MAAM,wBAAwB;AAGlD,OAAO,KAAKC,KAAK,MAAM,qBAAqB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Program","AdminApi","ApiErrors","ApiSchemas","Conversions","ImpostersGroup","ImpostersHandlers","SystemGroup","SystemHandlers","Commands","ConfigLoader","HandlerHttpClient","ImpostersClient","testing","imposter","route","ApiLayer","MainLayer","ExpressionEvaluator","RequestMatcher","ResponseGenerator","TemplateEngine","ImposterRepository","ConfigFileSchema","ImposterSchema","RequestLogSchema","StubSchema","common","AdminServer","FiberManager","ImposterServer","ServerFactory","AppConfig","MetricsService","PortAllocator","ProxyService","RequestLogger","Uuid","UuidLive","UiRouter","AdminLayout","AdminUiRouter","AdminDashboard","partials","html","layout","dashboard","requests","stubs"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,OAAO,MAAM,cAAc;AAGvC,OAAO,KAAKC,QAAQ,MAAM,mBAAmB;AAG7C,OAAO,KAAKC,SAAS,MAAM,oBAAoB;AAG/C,OAAO,KAAKC,UAAU,MAAM,qBAAqB;AAGjD,OAAO,KAAKC,WAAW,MAAM,sBAAsB;AAGnD,OAAO,KAAKC,cAAc,MAAM,yBAAyB;AAGzD,OAAO,KAAKC,iBAAiB,MAAM,4BAA4B;AAG/D,OAAO,KAAKC,WAAW,MAAM,sBAAsB;AAGnD,OAAO,KAAKC,cAAc,MAAM,yBAAyB;AAGzD,OAAO,KAAKC,QAAQ,MAAM,mBAAmB;AAG7C,OAAO,KAAKC,YAAY,MAAM,uBAAuB;AAGrD,OAAO,KAAKC,iBAAiB,MAAM,+BAA+B;AAGlE,OAAO,KAAKC,eAAe,MAAM,6BAA6B;AAG9D,OAAO,KAAKC,OAAO,MAAM,qBAAqB;AAE9C;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,sBAAsB;AAEhD;;;AAGA,OAAO,KAAKC,KAAK,MAAM,mBAAmB;AAG1C,OAAO,KAAKC,QAAQ,MAAM,sBAAsB;AAGhD,OAAO,KAAKC,SAAS,MAAM,uBAAuB;AAElD;;;;AAIA,OAAO,KAAKC,mBAAmB,MAAM,mCAAmC;AAGxE,OAAO,KAAKC,cAAc,MAAM,8BAA8B;AAG9D,OAAO,KAAKC,iBAAiB,MAAM,iCAAiC;AAGpE,OAAO,KAAKC,cAAc,MAAM,8BAA8B;AAG9D,OAAO,KAAKC,kBAAkB,MAAM,sCAAsC;AAG1E,OAAO,KAAKC,gBAAgB,MAAM,+BAA+B;AAGjE,OAAO,KAAKC,cAAc,MAAM,6BAA6B;AAG7D,OAAO,KAAKC,gBAAgB,MAAM,+BAA+B;AAGjE,OAAO,KAAKC,UAAU,MAAM,yBAAyB;AAGrD,OAAO,KAAKC,MAAM,MAAM,qBAAqB;AAG7C,OAAO,KAAKC,WAAW,MAAM,yBAAyB;AAGtD,OAAO,KAAKC,YAAY,MAAM,0BAA0B;AAGxD,OAAO,KAAKC,cAAc,MAAM,4BAA4B;AAG5D,OAAO,KAAKC,aAAa,MAAM,2BAA2B;AAG1D,OAAO,KAAKC,SAAS,MAAM,yBAAyB;AAGpD,OAAO,KAAKC,cAAc,MAAM,8BAA8B;AAG9D,OAAO,KAAKC,aAAa,MAAM,6BAA6B;AAG5D,OAAO,KAAKC,YAAY,MAAM,4BAA4B;AAG1D,OAAO,KAAKC,aAAa,MAAM,6BAA6B;AAG5D,OAAO,KAAKC,IAAI,MAAM,oBAAoB;AAG1C,OAAO,KAAKC,QAAQ,MAAM,wBAAwB;AAGlD,OAAO,KAAKC,QAAQ,MAAM,kBAAkB;AAG5C,OAAO,KAAKC,WAAW,MAAM,2BAA2B;AAGxD,OAAO,KAAKC,aAAa,MAAM,6BAA6B;AAG5D,OAAO,KAAKC,cAAc,MAAM,oCAAoC;AAGpE,OAAO,KAAKC,QAAQ,MAAM,wBAAwB;AAGlD,OAAO,KAAKC,IAAI,MAAM,cAAc;AAGpC,OAAO,KAAKC,MAAM,MAAM,gBAAgB;AAGxC,OAAO,KAAKC,SAAS,MAAM,yBAAyB;AAGpD,OAAO,KAAKC,QAAQ,MAAM,wBAAwB;AAGlD,OAAO,KAAKC,KAAK,MAAM,qBAAqB","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  import * as Layer from "effect/Layer";
2
2
  import { ImposterRepositoryLive } from "../repositories/ImposterRepository";
3
- import { BunServerFactoryLive } from "../server/BunServer";
4
3
  import { FiberManagerLive } from "../server/FiberManager";
5
4
  import { ImposterServerLive } from "../server/ImposterServer";
5
+ import { NodeServerFactoryLive } from "../server/ServerFactory";
6
6
  import { AppConfigLive } from "../services/AppConfig";
7
7
  import { MetricsServiceLive } from "../services/MetricsService";
8
8
  import { PortAllocatorLive } from "../services/PortAllocator";
@@ -14,7 +14,7 @@ const PortAllocatorWithDeps = /*#__PURE__*/PortAllocatorLive.pipe(/*#__PURE__*/L
14
14
  // ProxyServiceLive depends on Uuid
15
15
  const ProxyServiceWithDeps = /*#__PURE__*/ProxyServiceLive.pipe(/*#__PURE__*/Layer.provide(UuidLive));
16
16
  // ImposterServerLive depends on FiberManager + ImposterRepository + ServerFactory + RequestLogger + Metrics + Proxy
17
- const ImposterServerWithDeps = /*#__PURE__*/ImposterServerLive.pipe(/*#__PURE__*/Layer.provide(/*#__PURE__*/Layer.mergeAll(FiberManagerLive, ImposterRepositoryLive, BunServerFactoryLive, RequestLoggerLive, MetricsServiceLive, ProxyServiceWithDeps)));
17
+ const ImposterServerWithDeps = /*#__PURE__*/ImposterServerLive.pipe(/*#__PURE__*/Layer.provide(/*#__PURE__*/Layer.mergeAll(FiberManagerLive, ImposterRepositoryLive, NodeServerFactoryLive, RequestLoggerLive, MetricsServiceLive, ProxyServiceWithDeps)));
18
18
  // Compose all services
19
19
  export const MainLayer = /*#__PURE__*/Layer.mergeAll(UuidLive, AppConfigLive, PortAllocatorWithDeps, ImposterRepositoryLive, FiberManagerLive, RequestLoggerLive, MetricsServiceLive, ImposterServerWithDeps);
20
20
  //# sourceMappingURL=MainLayer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MainLayer.js","names":["Layer","ImposterRepositoryLive","BunServerFactoryLive","FiberManagerLive","ImposterServerLive","AppConfigLive","MetricsServiceLive","PortAllocatorLive","ProxyServiceLive","RequestLoggerLive","UuidLive","PortAllocatorWithDeps","pipe","provide","ProxyServiceWithDeps","ImposterServerWithDeps","mergeAll","MainLayer"],"sources":["../../../src/layers/MainLayer.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,SAASC,sBAAsB,QAAQ,oCAAoC;AAC3E,SAASC,oBAAoB,QAAQ,qBAAqB;AAC1D,SAASC,gBAAgB,QAAQ,wBAAwB;AACzD,SAASC,kBAAkB,QAAQ,0BAA0B;AAC7D,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,kBAAkB,QAAQ,4BAA4B;AAC/D,SAASC,iBAAiB,QAAQ,2BAA2B;AAC7D,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,iBAAiB,QAAQ,2BAA2B;AAC7D,SAASC,QAAQ,QAAQ,sBAAsB;AAE/C;AACA,MAAMC,qBAAqB,gBAAGJ,iBAAiB,CAACK,IAAI,cAACZ,KAAK,CAACa,OAAO,CAACR,aAAa,CAAC,CAAC;AAElF;AACA,MAAMS,oBAAoB,gBAAGN,gBAAgB,CAACI,IAAI,cAACZ,KAAK,CAACa,OAAO,CAACH,QAAQ,CAAC,CAAC;AAE3E;AACA,MAAMK,sBAAsB,gBAAGX,kBAAkB,CAACQ,IAAI,cACpDZ,KAAK,CAACa,OAAO,cACXb,KAAK,CAACgB,QAAQ,CACZb,gBAAgB,EAChBF,sBAAsB,EACtBC,oBAAoB,EACpBO,iBAAiB,EACjBH,kBAAkB,EAClBQ,oBAAoB,CACrB,CACF,CACF;AAED;AACA,OAAO,MAAMG,SAAS,gBAAGjB,KAAK,CAACgB,QAAQ,CACrCN,QAAQ,EACRL,aAAa,EACbM,qBAAqB,EACrBV,sBAAsB,EACtBE,gBAAgB,EAChBM,iBAAiB,EACjBH,kBAAkB,EAClBS,sBAAsB,CACvB","ignoreList":[]}
1
+ {"version":3,"file":"MainLayer.js","names":["Layer","ImposterRepositoryLive","FiberManagerLive","ImposterServerLive","NodeServerFactoryLive","AppConfigLive","MetricsServiceLive","PortAllocatorLive","ProxyServiceLive","RequestLoggerLive","UuidLive","PortAllocatorWithDeps","pipe","provide","ProxyServiceWithDeps","ImposterServerWithDeps","mergeAll","MainLayer"],"sources":["../../../src/layers/MainLayer.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,SAASC,sBAAsB,QAAQ,oCAAoC;AAC3E,SAASC,gBAAgB,QAAQ,wBAAwB;AACzD,SAASC,kBAAkB,QAAQ,0BAA0B;AAC7D,SAASC,qBAAqB,QAAQ,yBAAyB;AAC/D,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,kBAAkB,QAAQ,4BAA4B;AAC/D,SAASC,iBAAiB,QAAQ,2BAA2B;AAC7D,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,iBAAiB,QAAQ,2BAA2B;AAC7D,SAASC,QAAQ,QAAQ,sBAAsB;AAE/C;AACA,MAAMC,qBAAqB,gBAAGJ,iBAAiB,CAACK,IAAI,cAACZ,KAAK,CAACa,OAAO,CAACR,aAAa,CAAC,CAAC;AAElF;AACA,MAAMS,oBAAoB,gBAAGN,gBAAgB,CAACI,IAAI,cAACZ,KAAK,CAACa,OAAO,CAACH,QAAQ,CAAC,CAAC;AAE3E;AACA,MAAMK,sBAAsB,gBAAGZ,kBAAkB,CAACS,IAAI,cACpDZ,KAAK,CAACa,OAAO,cACXb,KAAK,CAACgB,QAAQ,CACZd,gBAAgB,EAChBD,sBAAsB,EACtBG,qBAAqB,EACrBK,iBAAiB,EACjBH,kBAAkB,EAClBQ,oBAAoB,CACrB,CACF,CACF;AAED;AACA,OAAO,MAAMG,SAAS,gBAAGjB,KAAK,CAACgB,QAAQ,CACrCN,QAAQ,EACRL,aAAa,EACbM,qBAAqB,EACrBV,sBAAsB,EACtBC,gBAAgB,EAChBO,iBAAiB,EACjBH,kBAAkB,EAClBS,sBAAsB,CACvB","ignoreList":[]}
@@ -23,13 +23,17 @@ export const PaginationMeta = /*#__PURE__*/Schema.Struct({
23
23
  offset: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative()),
24
24
  hasMore: Schema.Boolean
25
25
  });
26
- export const ErrorCode = /*#__PURE__*/Schema.Union(/*#__PURE__*/
26
+ export const ErrorCode = /*#__PURE__*/Schema.Union(
27
+ /*#__PURE__*/
27
28
  // Validation errors
28
- Schema.Literal("VALIDATION_ERROR"), /*#__PURE__*/Schema.Literal("INVALID_ENDPOINT"), /*#__PURE__*/
29
+ Schema.Literal("VALIDATION_ERROR"), /*#__PURE__*/Schema.Literal("INVALID_ENDPOINT"),
30
+ /*#__PURE__*/
29
31
  // Resource errors
30
- Schema.Literal("IMPOSTER_NOT_FOUND"), /*#__PURE__*/Schema.Literal("PORT_IN_USE"), /*#__PURE__*/Schema.Literal("IMPOSTER_BUSY"), /*#__PURE__*/
32
+ Schema.Literal("IMPOSTER_NOT_FOUND"), /*#__PURE__*/Schema.Literal("PORT_IN_USE"), /*#__PURE__*/Schema.Literal("IMPOSTER_BUSY"),
33
+ /*#__PURE__*/
31
34
  // System errors
32
- Schema.Literal("SYSTEM_ERROR"), /*#__PURE__*/Schema.Literal("CONFIRMATION_REQUIRED"), /*#__PURE__*/
35
+ Schema.Literal("SYSTEM_ERROR"), /*#__PURE__*/Schema.Literal("CONFIRMATION_REQUIRED"),
36
+ /*#__PURE__*/
33
37
  // Conflict errors
34
38
  Schema.Literal("ENDPOINT_CONFLICT"));
35
39
  export const ErrorDetails = /*#__PURE__*/Schema.Struct({
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","names":["Clock","DateTime","Effect","Duration","Schema","ImposterStatus","Literal","Protocol","PositiveInteger","Number","pipe","int","positive","brand","NonEmptyString","String","minLength","PortNumber","between","PaginationQuery","Struct","limit","optionalWith","default","make","offset","nonNegative","PaginationMeta","total","hasMore","Boolean","ErrorCode","Union","ErrorDetails","code","message","field","optional","value","Unknown","details","Record","key","ErrorResponse","error","StatusFilter","ProtocolFilter","DateTimeSchema","DateTimeUtc","currentDateTime","map","currentTimeMillis","ms","unsafeMake","formatDurationAsUptime","duration","format"],"sources":["../../../src/schemas/common.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"common.js","names":["Clock","DateTime","Effect","Duration","Schema","ImposterStatus","Literal","Protocol","PositiveInteger","Number","pipe","int","positive","brand","NonEmptyString","String","minLength","PortNumber","between","PaginationQuery","Struct","limit","optionalWith","default","make","offset","nonNegative","PaginationMeta","total","hasMore","Boolean","ErrorCode","Union","ErrorDetails","code","message","field","optional","value","Unknown","details","Record","key","ErrorResponse","error","StatusFilter","ProtocolFilter","DateTimeSchema","DateTimeUtc","currentDateTime","map","currentTimeMillis","ms","unsafeMake","formatDurationAsUptime","duration","format"],"sources":["../../../src/schemas/common.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -9,8 +9,8 @@ import { MetricsService } from "../services/MetricsService";
9
9
  import { ProxyService } from "../services/ProxyService";
10
10
  import { RequestLogger } from "../services/RequestLogger";
11
11
  import { makeUiRouter } from "../ui/UiRouter";
12
- import { ServerFactory } from "./BunServer";
13
12
  import { FiberManager } from "./FiberManager";
13
+ import { ServerFactory } from "./ServerFactory";
14
14
  export class ImposterServerError extends Data.TaggedError("ImposterServerError") {}
15
15
  export class ImposterServer extends Context.Tag("ImposterServer")() {}
16
16
  export const ImposterServerLive = /*#__PURE__*/Layer.effect(ImposterServer, /*#__PURE__*/Effect.gen(function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"ImposterServer.js","names":["Context","Data","Effect","HashMap","Layer","Ref","Runtime","DateTime","ImposterConfig","extractRequestContext","findMatchingStub","buildResponse","makeResponseState","ImposterRepository","NonEmptyString","MetricsService","ProxyService","RequestLogger","makeUiRouter","ServerFactory","FiberManager","ImposterServerError","TaggedError","ImposterServer","Tag","ImposterServerLive","effect","gen","repo","fiberManager","serverFactory","requestLogger","metricsService","proxyService","stateMapRef","make","empty","start","id","record","get","config","stubsRef","stubs","proxyConfigRef","proxy","responseState","update","set","rt","runtime","runPromise","uiRouter","handler","request","uiResponse","startTime","Date","now","ctx","promise","stub","response","proxied","proxyConfig","url","URL","forward","pipe","catchTag","err","succeed","Response","JSON","stringify","error","target","targetUrl","reason","status","headers","mode","responseClone","clone","newStub","recordAsStub","addStub","catchAll","void","freshStubs","getStubs","method","path","responses","index","getNextIndex","length","responseMode","responseConfig","delay","undefined","sleep","respText","text","respHeaders","forEach","val","key","logBody","slice","duration","logEntry","crypto","randomUUID","imposterId","timestamp","unsafeMake","query","body","matchedStubId","log","recordRequest","catchAllCause","cause","details","String","fiberEffect","acquireRelease","try","create","port","fetch","catch","server","sync","stop","andThen","never","scoped","supervisedEffect","onError","remove","r","reset","removeImposter","updateStubs","stateMap","state","_tag","value","updateProxyConfig","isRunning"],"sources":["../../../src/server/ImposterServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ImposterServer.js","names":["Context","Data","Effect","HashMap","Layer","Ref","Runtime","DateTime","ImposterConfig","extractRequestContext","findMatchingStub","buildResponse","makeResponseState","ImposterRepository","NonEmptyString","MetricsService","ProxyService","RequestLogger","makeUiRouter","FiberManager","ServerFactory","ImposterServerError","TaggedError","ImposterServer","Tag","ImposterServerLive","effect","gen","repo","fiberManager","serverFactory","requestLogger","metricsService","proxyService","stateMapRef","make","empty","start","id","record","get","config","stubsRef","stubs","proxyConfigRef","proxy","responseState","update","set","rt","runtime","runPromise","uiRouter","handler","request","uiResponse","startTime","Date","now","ctx","promise","stub","response","proxied","proxyConfig","url","URL","forward","pipe","catchTag","err","succeed","Response","JSON","stringify","error","target","targetUrl","reason","status","headers","mode","responseClone","clone","newStub","recordAsStub","addStub","catchAll","void","freshStubs","getStubs","method","path","responses","index","getNextIndex","length","responseMode","responseConfig","delay","undefined","sleep","respText","text","respHeaders","forEach","val","key","logBody","slice","duration","logEntry","crypto","randomUUID","imposterId","timestamp","unsafeMake","query","body","matchedStubId","log","recordRequest","catchAllCause","cause","details","String","fiberEffect","acquireRelease","try","create","port","fetch","catch","server","sync","stop","andThen","never","scoped","supervisedEffect","onError","remove","r","reset","removeImposter","updateStubs","stateMap","state","_tag","value","updateProxyConfig","isRunning"],"sources":["../../../src/server/ImposterServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,61 @@
1
+ import { Context, Layer } from "effect";
2
+ import * as http from "node:http";
3
+ export class ServerFactory extends Context.Tag("ServerFactory")() {}
4
+ export const NodeServerFactoryLive = /*#__PURE__*/Layer.succeed(ServerFactory, {
5
+ create: options => {
6
+ const server = http.createServer(async (req, res) => {
7
+ try {
8
+ const url = `http://localhost:${options.port}${req.url}`;
9
+ const headers = new Headers();
10
+ for (const [key, val] of Object.entries(req.headers)) {
11
+ if (val) headers.set(key, Array.isArray(val) ? val.join(", ") : val);
12
+ }
13
+ let body;
14
+ if (req.method !== "GET" && req.method !== "HEAD") {
15
+ body = await new Promise(resolve => {
16
+ let data = "";
17
+ req.on("data", chunk => {
18
+ data += chunk.toString();
19
+ });
20
+ req.on("end", () => resolve(data));
21
+ });
22
+ }
23
+ const request = new Request(url, {
24
+ method: req.method ?? "GET",
25
+ headers,
26
+ ...(body !== undefined && body !== "" ? {
27
+ body
28
+ } : {})
29
+ });
30
+ const response = await options.fetch(request);
31
+ const respHeaders = {};
32
+ response.headers.forEach((val, key) => {
33
+ respHeaders[key] = val;
34
+ });
35
+ res.writeHead(response.status, respHeaders);
36
+ const respBody = await response.text();
37
+ res.end(respBody);
38
+ } catch (err) {
39
+ res.writeHead(500);
40
+ res.end(JSON.stringify({
41
+ error: "Internal server error",
42
+ details: String(err)
43
+ }));
44
+ }
45
+ });
46
+ server.listen(options.port);
47
+ return {
48
+ port: options.port,
49
+ stop: closeActive => {
50
+ if (closeActive && typeof server.closeAllConnections === "function") {
51
+ server.closeAllConnections();
52
+ }
53
+ server.close();
54
+ }
55
+ };
56
+ }
57
+ });
58
+ export const BunServerFactoryLive = /*#__PURE__*/Layer.succeed(ServerFactory, {
59
+ create: options => globalThis.Bun.serve(options)
60
+ });
61
+ //# sourceMappingURL=ServerFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerFactory.js","names":["Context","Layer","http","ServerFactory","Tag","NodeServerFactoryLive","succeed","create","options","server","createServer","req","res","url","port","headers","Headers","key","val","Object","entries","set","Array","isArray","join","body","method","Promise","resolve","data","on","chunk","toString","request","Request","undefined","response","fetch","respHeaders","forEach","writeHead","status","respBody","text","end","err","JSON","stringify","error","details","String","listen","stop","closeActive","closeAllConnections","close","BunServerFactoryLive","globalThis","Bun","serve"],"sources":["../../../src/server/ServerFactory.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "imposters",
3
- "version": "0.1.0",
3
+ "version": "0.2.2",
4
4
  "description": "A service virtualization tool built with TypeScript and Effect",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -16,12 +16,6 @@
16
16
  "jsonata": "^2.1.0",
17
17
  "uuid": "^11.1.0"
18
18
  },
19
- "optionalDependencies": {
20
- "@imposters/linux-x64": "0.1.0",
21
- "@imposters/linux-arm64": "0.1.0",
22
- "@imposters/darwin-x64": "0.1.0",
23
- "@imposters/darwin-arm64": "0.1.0"
24
- },
25
19
  "bin": {
26
20
  "imposters": "./bin/imposters"
27
21
  },
@@ -180,11 +174,6 @@
180
174
  "import": "./dist/esm/server/AdminServer.js",
181
175
  "default": "./dist/cjs/server/AdminServer.js"
182
176
  },
183
- "./server/BunServer": {
184
- "types": "./dist/dts/server/BunServer.d.ts",
185
- "import": "./dist/esm/server/BunServer.js",
186
- "default": "./dist/cjs/server/BunServer.js"
187
- },
188
177
  "./server/FiberManager": {
189
178
  "types": "./dist/dts/server/FiberManager.d.ts",
190
179
  "import": "./dist/esm/server/FiberManager.js",
@@ -195,6 +184,11 @@
195
184
  "import": "./dist/esm/server/ImposterServer.js",
196
185
  "default": "./dist/cjs/server/ImposterServer.js"
197
186
  },
187
+ "./server/ServerFactory": {
188
+ "types": "./dist/dts/server/ServerFactory.d.ts",
189
+ "import": "./dist/esm/server/ServerFactory.js",
190
+ "default": "./dist/cjs/server/ServerFactory.js"
191
+ },
198
192
  "./services/AppConfig": {
199
193
  "types": "./dist/dts/services/AppConfig.d.ts",
200
194
  "import": "./dist/esm/services/AppConfig.js",
@@ -370,15 +364,15 @@
370
364
  "server/AdminServer": [
371
365
  "./dist/dts/server/AdminServer.d.ts"
372
366
  ],
373
- "server/BunServer": [
374
- "./dist/dts/server/BunServer.d.ts"
375
- ],
376
367
  "server/FiberManager": [
377
368
  "./dist/dts/server/FiberManager.d.ts"
378
369
  ],
379
370
  "server/ImposterServer": [
380
371
  "./dist/dts/server/ImposterServer.d.ts"
381
372
  ],
373
+ "server/ServerFactory": [
374
+ "./dist/dts/server/ServerFactory.d.ts"
375
+ ],
382
376
  "services/AppConfig": [
383
377
  "./dist/dts/services/AppConfig.d.ts"
384
378
  ],
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/cjs/server/ServerFactory.js",
3
+ "module": "../../dist/esm/server/ServerFactory.js",
4
+ "types": "../../dist/dts/server/ServerFactory.d.ts",
5
+ "sideEffects": []
6
+ }
@@ -1,11 +1,16 @@
1
1
  import { Command, Options } from "@effect/cli"
2
2
  import { NodeContext, NodeRuntime } from "@effect/platform-node"
3
3
  import { Effect, Layer, Option } from "effect"
4
+ import { createRequire } from "node:module"
4
5
  import { HandlerHttpClientLive } from "../client/HandlerHttpClient"
5
6
  import { ImpostersClient, ImpostersClientLive } from "../client/ImpostersClient"
6
7
  import { makeCompositeHandler } from "../server/AdminServer"
8
+ import { BunServerFactoryLive, NodeServerFactoryLive, ServerFactory } from "../server/ServerFactory"
7
9
  import { loadConfigFile } from "./ConfigLoader"
8
10
 
11
+ const require = createRequire(import.meta.url)
12
+ const packageJson = require("imposters/package.json") as { version: string }
13
+
9
14
  const configOption = Options.file("config").pipe(
10
15
  Options.withAlias("c"),
11
16
  Options.withDescription("Path to JSON config file"),
@@ -18,17 +23,24 @@ const portOption = Options.integer("port").pipe(
18
23
  Options.optional
19
24
  )
20
25
 
26
+ const runtimeOption = Options.choice("runtime", ["node", "bun"]).pipe(
27
+ Options.withDescription("Server runtime: node (default) or bun"),
28
+ Options.withDefault("node" as const)
29
+ )
30
+
21
31
  const startCommand = Command.make(
22
32
  "start",
23
- { config: configOption, port: portOption },
24
- ({ config, port }) =>
33
+ { config: configOption, port: portOption, runtime: runtimeOption },
34
+ ({ config, port, runtime }) =>
25
35
  Effect.gen(function*() {
26
36
  const adminPort = Option.isSome(port) ? port.value : Number(process.env.ADMIN_PORT ?? 2525)
27
37
 
28
38
  const { dispose, handler } = makeCompositeHandler(adminPort)
29
- const server = Bun.serve({ port: adminPort, fetch: handler })
30
39
 
31
- console.log(`Imposters admin server running on http://localhost:${server.port}`)
40
+ const serverFactory = yield* ServerFactory
41
+ const server = serverFactory.create({ port: adminPort, fetch: handler })
42
+
43
+ console.log(`Imposters admin server running on http://localhost:${server.port} (runtime: ${runtime})`)
32
44
  console.log(`Admin UI: http://localhost:${server.port}/_ui`)
33
45
 
34
46
  // Load config and create imposters if config file provided
@@ -101,7 +113,9 @@ const startCommand = Command.make(
101
113
  process.on("SIGINT", shutdown)
102
114
  process.on("SIGTERM", shutdown)
103
115
  })
104
- })
116
+ }).pipe(
117
+ Effect.provide(runtime === "bun" ? BunServerFactoryLive : NodeServerFactoryLive)
118
+ )
105
119
  )
106
120
 
107
121
  const command = Command.make("imposters").pipe(
@@ -110,7 +124,7 @@ const command = Command.make("imposters").pipe(
110
124
 
111
125
  export const run = Command.run(command, {
112
126
  name: "imposters",
113
- version: "0.1.0"
127
+ version: packageJson.version
114
128
  })
115
129
 
116
130
  export const main = run(process.argv).pipe(
package/src/index.ts CHANGED
@@ -93,15 +93,15 @@ export * as common from "./schemas/common.js"
93
93
  export * as AdminServer from "./server/AdminServer.js"
94
94
 
95
95
 
96
- export * as BunServer from "./server/BunServer.js"
97
-
98
-
99
96
  export * as FiberManager from "./server/FiberManager.js"
100
97
 
101
98
 
102
99
  export * as ImposterServer from "./server/ImposterServer.js"
103
100
 
104
101
 
102
+ export * as ServerFactory from "./server/ServerFactory.js"
103
+
104
+
105
105
  export * as AppConfig from "./services/AppConfig.js"
106
106
 
107
107
 
@@ -1,8 +1,8 @@
1
1
  import * as Layer from "effect/Layer"
2
2
  import { ImposterRepositoryLive } from "../repositories/ImposterRepository"
3
- import { BunServerFactoryLive } from "../server/BunServer"
4
3
  import { FiberManagerLive } from "../server/FiberManager"
5
4
  import { ImposterServerLive } from "../server/ImposterServer"
5
+ import { NodeServerFactoryLive } from "../server/ServerFactory"
6
6
  import { AppConfigLive } from "../services/AppConfig"
7
7
  import { MetricsServiceLive } from "../services/MetricsService"
8
8
  import { PortAllocatorLive } from "../services/PortAllocator"
@@ -22,7 +22,7 @@ const ImposterServerWithDeps = ImposterServerLive.pipe(
22
22
  Layer.mergeAll(
23
23
  FiberManagerLive,
24
24
  ImposterRepositoryLive,
25
- BunServerFactoryLive,
25
+ NodeServerFactoryLive,
26
26
  RequestLoggerLive,
27
27
  MetricsServiceLive,
28
28
  ProxyServiceWithDeps
@@ -11,8 +11,8 @@ import { MetricsService } from "../services/MetricsService"
11
11
  import { ProxyService } from "../services/ProxyService"
12
12
  import { RequestLogger } from "../services/RequestLogger"
13
13
  import { makeUiRouter } from "../ui/UiRouter"
14
- import { ServerFactory } from "./BunServer"
15
14
  import { FiberManager } from "./FiberManager"
15
+ import { ServerFactory } from "./ServerFactory"
16
16
 
17
17
  export class ImposterServerError extends Data.TaggedError("ImposterServerError")<{
18
18
  readonly imposterId: string
@@ -0,0 +1,76 @@
1
+ import { Context, Layer } from "effect"
2
+ import * as http from "node:http"
3
+
4
+ export interface ServerInstance {
5
+ readonly port: number
6
+ readonly stop: (closeActive: boolean) => void
7
+ }
8
+
9
+ export interface ServerFactoryShape {
10
+ readonly create: (options: {
11
+ readonly port: number
12
+ readonly fetch: (request: Request) => Promise<Response>
13
+ }) => ServerInstance
14
+ }
15
+
16
+ export class ServerFactory extends Context.Tag("ServerFactory")<ServerFactory, ServerFactoryShape>() {}
17
+
18
+ export const NodeServerFactoryLive = Layer.succeed(ServerFactory, {
19
+ create: (options): ServerInstance => {
20
+ const server = http.createServer(async (req, res) => {
21
+ try {
22
+ const url = `http://localhost:${options.port}${req.url}`
23
+ const headers = new Headers()
24
+ for (const [key, val] of Object.entries(req.headers)) {
25
+ if (val) headers.set(key, Array.isArray(val) ? val.join(", ") : val)
26
+ }
27
+
28
+ let body: string | undefined
29
+ if (req.method !== "GET" && req.method !== "HEAD") {
30
+ body = await new Promise<string>((resolve) => {
31
+ let data = ""
32
+ req.on("data", (chunk: Buffer) => {
33
+ data += chunk.toString()
34
+ })
35
+ req.on("end", () => resolve(data))
36
+ })
37
+ }
38
+
39
+ const request = new Request(url, {
40
+ method: req.method ?? "GET",
41
+ headers,
42
+ ...(body !== undefined && body !== "" ? { body } : {})
43
+ })
44
+
45
+ const response = await options.fetch(request)
46
+
47
+ const respHeaders: Record<string, string> = {}
48
+ response.headers.forEach((val, key) => {
49
+ respHeaders[key] = val
50
+ })
51
+ res.writeHead(response.status, respHeaders)
52
+ const respBody = await response.text()
53
+ res.end(respBody)
54
+ } catch (err) {
55
+ res.writeHead(500)
56
+ res.end(JSON.stringify({ error: "Internal server error", details: String(err) }))
57
+ }
58
+ })
59
+
60
+ server.listen(options.port)
61
+
62
+ return {
63
+ port: options.port,
64
+ stop: (closeActive: boolean) => {
65
+ if (closeActive && typeof server.closeAllConnections === "function") {
66
+ server.closeAllConnections()
67
+ }
68
+ server.close()
69
+ }
70
+ }
71
+ }
72
+ })
73
+
74
+ export const BunServerFactoryLive = Layer.succeed(ServerFactory, {
75
+ create: (options) => (globalThis as any).Bun.serve(options)
76
+ })
@@ -1,13 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ServerFactory = exports.BunServerFactoryLive = void 0;
7
- var _effect = require("effect");
8
- class ServerFactory extends _effect.Context.Tag("ServerFactory")() {}
9
- exports.ServerFactory = ServerFactory;
10
- const BunServerFactoryLive = exports.BunServerFactoryLive = /*#__PURE__*/_effect.Layer.succeed(ServerFactory, {
11
- create: options => Bun.serve(options)
12
- });
13
- //# sourceMappingURL=BunServer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BunServer.js","names":["_effect","require","ServerFactory","Context","Tag","exports","BunServerFactoryLive","Layer","succeed","create","options","Bun","serve"],"sources":["../../../src/server/BunServer.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAcM,MAAOC,aAAc,SAAQC,eAAO,CAACC,GAAG,CAAC,eAAe,CAAC,EAAqC;AAAAC,OAAA,CAAAH,aAAA,GAAAA,aAAA;AAE7F,MAAMI,oBAAoB,GAAAD,OAAA,CAAAC,oBAAA,gBAAGC,aAAK,CAACC,OAAO,CAACN,aAAa,EAAE;EAC/DO,MAAM,EAAGC,OAAO,IAAKC,GAAG,CAACC,KAAK,CAACF,OAAO;CACvC,CAAC","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"BunServer.d.ts","sourceRoot":"","sources":["../../../src/server/BunServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEvC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAA;CAC9C;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;QACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;KACxD,KAAK,cAAc,CAAA;CACrB;;AAED,qBAAa,aAAc,SAAQ,kBAAiE;CAAG;AAEvG,eAAO,MAAM,oBAAoB,0CAE/B,CAAA"}
@@ -1,6 +0,0 @@
1
- import { Context, Layer } from "effect";
2
- export class ServerFactory extends Context.Tag("ServerFactory")() {}
3
- export const BunServerFactoryLive = /*#__PURE__*/Layer.succeed(ServerFactory, {
4
- create: options => Bun.serve(options)
5
- });
6
- //# sourceMappingURL=BunServer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BunServer.js","names":["Context","Layer","ServerFactory","Tag","BunServerFactoryLive","succeed","create","options","Bun","serve"],"sources":["../../../src/server/BunServer.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAO,EAAEC,KAAK,QAAQ,QAAQ;AAcvC,OAAM,MAAOC,aAAc,SAAQF,OAAO,CAACG,GAAG,CAAC,eAAe,CAAC,EAAqC;AAEpG,OAAO,MAAMC,oBAAoB,gBAAGH,KAAK,CAACI,OAAO,CAACH,aAAa,EAAE;EAC/DI,MAAM,EAAGC,OAAO,IAAKC,GAAG,CAACC,KAAK,CAACF,OAAO;CACvC,CAAC","ignoreList":[]}
@@ -1,6 +0,0 @@
1
- {
2
- "main": "../../dist/cjs/server/BunServer.js",
3
- "module": "../../dist/esm/server/BunServer.js",
4
- "types": "../../dist/dts/server/BunServer.d.ts",
5
- "sideEffects": []
6
- }
@@ -1,19 +0,0 @@
1
- import { Context, Layer } from "effect"
2
-
3
- export interface ServerInstance {
4
- readonly port: number
5
- readonly stop: (closeActive: boolean) => void
6
- }
7
-
8
- export interface ServerFactoryShape {
9
- readonly create: (options: {
10
- readonly port: number
11
- readonly fetch: (request: Request) => Promise<Response>
12
- }) => ServerInstance
13
- }
14
-
15
- export class ServerFactory extends Context.Tag("ServerFactory")<ServerFactory, ServerFactoryShape>() {}
16
-
17
- export const BunServerFactoryLive = Layer.succeed(ServerFactory, {
18
- create: (options) => Bun.serve(options)
19
- })
@@ -1,6 +0,0 @@
1
- declare const Bun: {
2
- serve(options: {
3
- readonly port: number
4
- readonly fetch: (request: Request) => Promise<Response>
5
- }): { readonly port: number; stop(closeActive: boolean): void }
6
- }