@decohere/flux 0.0.1-dev.81 → 0.0.1-dev.82

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.
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "flux", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return flux;
9
+ }
10
+ });
11
+ const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path"));
12
+ const _hotreloadserver = require("./hot-reload-server.js");
13
+ const _sourcemoduleloader = require("./source-module-loader.js");
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ /** Process-level one-shot loader so a second `run()` reconfigures instead of stacking hooks. */ const runLoader = new _sourcemoduleloader.SourceModuleLoader();
20
+ async function run(entry, options = {}) {
21
+ const trimmed = entry.trim();
22
+ if (trimmed == null || trimmed === "") {
23
+ throw new Error("flux.run requires an entry file path");
24
+ }
25
+ const absoluteEntry = _nodepath.default.resolve(trimmed);
26
+ await runLoader.configure({
27
+ workspace: options.workspace,
28
+ buildConfig: options.configuration ?? "debug"
29
+ });
30
+ runLoader.registerHooks();
31
+ process.argv = [
32
+ process.execPath,
33
+ absoluteEntry,
34
+ ...options.args ?? []
35
+ ];
36
+ return runLoader.importEntry(absoluteEntry);
37
+ }
38
+ async function serve(options = {}) {
39
+ const server = new _hotreloadserver.HotReloadServer();
40
+ await server.start({
41
+ buildConfig: options.configuration ?? "debug",
42
+ project: options.project,
43
+ projects: options.projects,
44
+ workspace: options.workspace,
45
+ rebootDebounceMs: options.rebootDebounceMs
46
+ });
47
+ return server;
48
+ }
49
+ function dispose() {
50
+ runLoader.dispose();
51
+ }
52
+ const flux = {
53
+ run,
54
+ serve,
55
+ dispose
56
+ };
57
+
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL2ZsdXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHR5cGUgeyBXb3Jrc3BhY2UgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB7IEhvdFJlbG9hZFNlcnZlciB9IGZyb20gXCIuL2hvdC1yZWxvYWQtc2VydmVyLmpzXCI7XG5pbXBvcnQgeyBTb3VyY2VNb2R1bGVMb2FkZXIgfSBmcm9tIFwiLi9zb3VyY2UtbW9kdWxlLWxvYWRlci5qc1wiO1xuXG5leHBvcnQgdHlwZSBGbHV4UnVuT3B0aW9ucyA9IHtcblx0LyoqIE1lc2gvRm9yZ2UgY29uZmlndXJhdGlvbiBuYW1lLiBEZWZhdWx0cyB0byBgZGVidWdgIChgLS1jb25maWd1cmF0aW9uYCkuICovXG5cdGNvbmZpZ3VyYXRpb24/OiBzdHJpbmc7XG5cdC8qKiBBcmd1bWVudHMgZm9yd2FyZGVkIHRvIHRoZSBlbnRyeSAoYmluLXN0eWxlIGBwcm9jZXNzLmFyZ3Yuc2xpY2UoMilgKS4gKi9cblx0YXJncz86IHN0cmluZ1tdO1xuXHQvKipcblx0ICogUHJlLWJ1aWx0IFdvcmtzcGFjZSBpbnN0ZWFkIG9mIGBXb3Jrc3BhY2VGYWN0b3J5YC5cblx0ICogVXNlZnVsIGluIHRlc3RzIHRvIHNraXAgZmlsZXN5c3RlbSBkaXNjb3ZlcnkuXG5cdCAqL1xuXHR3b3Jrc3BhY2U/OiBXb3Jrc3BhY2U7XG59O1xuXG5leHBvcnQgdHlwZSBGbHV4U2VydmVPcHRpb25zID0ge1xuXHQvKiogTWVzaC9Gb3JnZSBjb25maWd1cmF0aW9uIG5hbWUuIERlZmF1bHRzIHRvIGBkZWJ1Z2AgKGAtLWNvbmZpZ3VyYXRpb25gKS4gKi9cblx0Y29uZmlndXJhdGlvbj86IHN0cmluZztcblx0LyoqIE5hbWUgb2YgdGhlIHByb2plY3QgdG8gc2VydmUuIERlZmF1bHRzIHRvIHRoZSBmaXJzdCBwcm9qZWN0IGluIHRoZSB3b3Jrc3BhY2UuICovXG5cdHByb2plY3Q/OiBzdHJpbmc7XG5cdC8qKlxuXHQgKiBNdWx0aXBsZSBGbHV4IGFwcCBwYWNrYWdlIG5hbWVzIHRvIGJvb3QgaW4gb25lIHByb2Nlc3MgKGRpcmVjdG9yeSBzbGljZSkuXG5cdCAqIFdoZW4gc2V0LCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIge0BsaW5rIHByb2plY3R9LlxuXHQgKi9cblx0cHJvamVjdHM/OiByZWFkb25seSBzdHJpbmdbXTtcblx0LyoqXG5cdCAqIFByZS1idWlsdCBXb3Jrc3BhY2UgaW5zdGVhZCBvZiBgV29ya3NwYWNlRmFjdG9yeWAuXG5cdCAqIFVzZWZ1bCBpbiB0ZXN0cyB0byBza2lwIGZpbGVzeXN0ZW0gZGlzY292ZXJ5LlxuXHQgKi9cblx0d29ya3NwYWNlPzogV29ya3NwYWNlO1xuXHQvKipcblx0ICogUXVpZXQgd2luZG93IGluIG1pbGxpc2Vjb25kcyBhZnRlciB0aGUgbGFzdCBhZmZlY3Rpbmcgc2F2ZSBiZWZvcmUgYSByZWJvb3QuXG5cdCAqIFJhaXNlIHRoaXMgZm9yIGFnZW50IHNhdmUgdHJhaW5zLlxuXHQgKi9cblx0cmVib290RGVib3VuY2VNcz86IG51bWJlcjtcbn07XG5cbi8qKiBQcm9jZXNzLWxldmVsIG9uZS1zaG90IGxvYWRlciBzbyBhIHNlY29uZCBgcnVuKClgIHJlY29uZmlndXJlcyBpbnN0ZWFkIG9mIHN0YWNraW5nIGhvb2tzLiAqL1xuY29uc3QgcnVuTG9hZGVyID0gbmV3IFNvdXJjZU1vZHVsZUxvYWRlcigpO1xuXG5hc3luYyBmdW5jdGlvbiBydW4oZW50cnk6IHN0cmluZywgb3B0aW9uczogRmx1eFJ1bk9wdGlvbnMgPSB7fSk6IFByb21pc2U8dW5rbm93bj4ge1xuXHRjb25zdCB0cmltbWVkID0gZW50cnkudHJpbSgpO1xuXHRpZiAodHJpbW1lZCA9PSBudWxsIHx8IHRyaW1tZWQgPT09IFwiXCIpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJmbHV4LnJ1biByZXF1aXJlcyBhbiBlbnRyeSBmaWxlIHBhdGhcIik7XG5cdH1cblxuXHRjb25zdCBhYnNvbHV0ZUVudHJ5ID0gcGF0aC5yZXNvbHZlKHRyaW1tZWQpO1xuXHRhd2FpdCBydW5Mb2FkZXIuY29uZmlndXJlKHtcblx0XHR3b3Jrc3BhY2U6IG9wdGlvbnMud29ya3NwYWNlLFxuXHRcdGJ1aWxkQ29uZmlnOiBvcHRpb25zLmNvbmZpZ3VyYXRpb24gPz8gXCJkZWJ1Z1wiLFxuXHR9KTtcblx0cnVuTG9hZGVyLnJlZ2lzdGVySG9va3MoKTtcblx0cHJvY2Vzcy5hcmd2ID0gW3Byb2Nlc3MuZXhlY1BhdGgsIGFic29sdXRlRW50cnksIC4uLihvcHRpb25zLmFyZ3MgPz8gW10pXTtcblx0cmV0dXJuIHJ1bkxvYWRlci5pbXBvcnRFbnRyeShhYnNvbHV0ZUVudHJ5KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2VydmUob3B0aW9uczogRmx1eFNlcnZlT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxIb3RSZWxvYWRTZXJ2ZXI+IHtcblx0Y29uc3Qgc2VydmVyID0gbmV3IEhvdFJlbG9hZFNlcnZlcigpO1xuXHRhd2FpdCBzZXJ2ZXIuc3RhcnQoe1xuXHRcdGJ1aWxkQ29uZmlnOiBvcHRpb25zLmNvbmZpZ3VyYXRpb24gPz8gXCJkZWJ1Z1wiLFxuXHRcdHByb2plY3Q6IG9wdGlvbnMucHJvamVjdCxcblx0XHRwcm9qZWN0czogb3B0aW9ucy5wcm9qZWN0cyxcblx0XHR3b3Jrc3BhY2U6IG9wdGlvbnMud29ya3NwYWNlLFxuXHRcdHJlYm9vdERlYm91bmNlTXM6IG9wdGlvbnMucmVib290RGVib3VuY2VNcyxcblx0fSk7XG5cdHJldHVybiBzZXJ2ZXI7XG59XG5cbmZ1bmN0aW9uIGRpc3Bvc2UoKTogdm9pZCB7XG5cdHJ1bkxvYWRlci5kaXNwb3NlKCk7XG59XG5cbmV4cG9ydCBjb25zdCBmbHV4ID0geyBydW4sIHNlcnZlLCBkaXNwb3NlIH07XG4iXSwibmFtZXMiOlsiZmx1eCIsInJ1bkxvYWRlciIsIlNvdXJjZU1vZHVsZUxvYWRlciIsInJ1biIsImVudHJ5Iiwib3B0aW9ucyIsInRyaW1tZWQiLCJ0cmltIiwiRXJyb3IiLCJhYnNvbHV0ZUVudHJ5IiwicGF0aCIsInJlc29sdmUiLCJjb25maWd1cmUiLCJ3b3Jrc3BhY2UiLCJidWlsZENvbmZpZyIsImNvbmZpZ3VyYXRpb24iLCJyZWdpc3Rlckhvb2tzIiwicHJvY2VzcyIsImFyZ3YiLCJleGVjUGF0aCIsImFyZ3MiLCJpbXBvcnRFbnRyeSIsInNlcnZlIiwic2VydmVyIiwiSG90UmVsb2FkU2VydmVyIiwic3RhcnQiLCJwcm9qZWN0IiwicHJvamVjdHMiLCJyZWJvb3REZWJvdW5jZU1zIiwiZGlzcG9zZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkEwRWFBOzs7ZUFBQUE7OztpRUExRUk7aUNBRWU7b0NBQ0c7Ozs7OztBQW9DbkMsOEZBQThGLEdBQzlGLE1BQU1DLFlBQVksSUFBSUMsc0NBQWtCO0FBRXhDLGVBQWVDLElBQUlDLEtBQWEsRUFBRUMsVUFBMEIsQ0FBQyxDQUFDO0lBQzdELE1BQU1DLFVBQVVGLE1BQU1HLElBQUk7SUFDMUIsSUFBSUQsV0FBVyxRQUFRQSxZQUFZLElBQUk7UUFDdEMsTUFBTSxJQUFJRSxNQUFNO0lBQ2pCO0lBRUEsTUFBTUMsZ0JBQWdCQyxpQkFBSSxDQUFDQyxPQUFPLENBQUNMO0lBQ25DLE1BQU1MLFVBQVVXLFNBQVMsQ0FBQztRQUN6QkMsV0FBV1IsUUFBUVEsU0FBUztRQUM1QkMsYUFBYVQsUUFBUVUsYUFBYSxJQUFJO0lBQ3ZDO0lBQ0FkLFVBQVVlLGFBQWE7SUFDdkJDLFFBQVFDLElBQUksR0FBRztRQUFDRCxRQUFRRSxRQUFRO1FBQUVWO1dBQW1CSixRQUFRZSxJQUFJLElBQUksRUFBRTtLQUFFO0lBQ3pFLE9BQU9uQixVQUFVb0IsV0FBVyxDQUFDWjtBQUM5QjtBQUVBLGVBQWVhLE1BQU1qQixVQUE0QixDQUFDLENBQUM7SUFDbEQsTUFBTWtCLFNBQVMsSUFBSUMsZ0NBQWU7SUFDbEMsTUFBTUQsT0FBT0UsS0FBSyxDQUFDO1FBQ2xCWCxhQUFhVCxRQUFRVSxhQUFhLElBQUk7UUFDdENXLFNBQVNyQixRQUFRcUIsT0FBTztRQUN4QkMsVUFBVXRCLFFBQVFzQixRQUFRO1FBQzFCZCxXQUFXUixRQUFRUSxTQUFTO1FBQzVCZSxrQkFBa0J2QixRQUFRdUIsZ0JBQWdCO0lBQzNDO0lBQ0EsT0FBT0w7QUFDUjtBQUVBLFNBQVNNO0lBQ1I1QixVQUFVNEIsT0FBTztBQUNsQjtBQUVPLE1BQU03QixPQUFPO0lBQUVHO0lBQUttQjtJQUFPTztBQUFRIn0=
@@ -15,7 +15,6 @@ const _fluxcommand = require("./flux.command.js");
15
15
  const _hotreloadserver = require("./hot-reload-server.js");
16
16
  const _runaction = require("./run.action.js");
17
17
  const _serveaction = require("./serve.action.js");
18
- const _sourcemoduleloader = require("./source-module-loader.js");
19
18
  class FluxModule extends _cli.ModuleManifest {
20
19
  id = "flux";
21
20
  command = _fluxcommand.FluxCommand;
@@ -24,7 +23,6 @@ class FluxModule extends _cli.ModuleManifest {
24
23
  run: _runaction.RunAction
25
24
  };
26
25
  registerServices(builder) {
27
- builder.registerSingleton(_sourcemoduleloader.SourceModuleLoader);
28
26
  builder.registerSingleton(_hotreloadserver.HotReloadServer);
29
27
  builder.registerSingleton(_deferredscriptrunner.DeferredScriptRunner);
30
28
  }
@@ -35,4 +33,4 @@ class FluxModule extends _cli.ModuleManifest {
35
33
  }
36
34
  }
37
35
 
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL2ZsdXgubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdvcmtzcGFjZUZhY3RvcnkgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB0eXBlIHsgV29ya3NwYWNlRmFjdG9yeU9wdGlvbnMgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgTW9kdWxlTWFuaWZlc3QgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHR5cGUgeyBDb250YWluZXJCdWlsZGVyIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jb21wb3NpdGlvblwiO1xuaW1wb3J0IHsgRGVmZXJyZWRTY3JpcHRSdW5uZXIgfSBmcm9tIFwiLi9kZWZlcnJlZC1zY3JpcHQtcnVubmVyLmpzXCI7XG5pbXBvcnQgeyBGbHV4Q29tbWFuZCB9IGZyb20gXCIuL2ZsdXguY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgSG90UmVsb2FkU2VydmVyIH0gZnJvbSBcIi4vaG90LXJlbG9hZC1zZXJ2ZXIuanNcIjtcbmltcG9ydCB7IFJ1bkFjdGlvbiB9IGZyb20gXCIuL3J1bi5hY3Rpb24uanNcIjtcbmltcG9ydCB7IFNlcnZlQWN0aW9uIH0gZnJvbSBcIi4vc2VydmUuYWN0aW9uLmpzXCI7XG5pbXBvcnQgeyBTb3VyY2VNb2R1bGVMb2FkZXIgfSBmcm9tIFwiLi9zb3VyY2UtbW9kdWxlLWxvYWRlci5qc1wiO1xuXG5leHBvcnQgY2xhc3MgRmx1eE1vZHVsZSBleHRlbmRzIE1vZHVsZU1hbmlmZXN0IHtcblx0cHVibGljIHJlYWRvbmx5IGlkID0gXCJmbHV4XCI7XG5cdHB1YmxpYyByZWFkb25seSBjb21tYW5kID0gRmx1eENvbW1hbmQ7XG5cdHB1YmxpYyByZWFkb25seSBhY3Rpb25zID0ge1xuXHRcdHNlcnZlOiBTZXJ2ZUFjdGlvbixcblx0XHRydW46IFJ1bkFjdGlvbixcblx0fTtcblxuXHRwdWJsaWMgcmVnaXN0ZXJTZXJ2aWNlcyhidWlsZGVyOiBDb250YWluZXJCdWlsZGVyKSB7XG5cdFx0YnVpbGRlci5yZWdpc3RlclNpbmdsZXRvbihTb3VyY2VNb2R1bGVMb2FkZXIpO1xuXHRcdGJ1aWxkZXIucmVnaXN0ZXJTaW5nbGV0b24oSG90UmVsb2FkU2VydmVyKTtcblx0XHRidWlsZGVyLnJlZ2lzdGVyU2luZ2xldG9uKERlZmVycmVkU2NyaXB0UnVubmVyKTtcblx0fVxuXG5cdHB1YmxpYyBvdmVycmlkZSBjcmVhdGVXb3Jrc3BhY2Uob3B0aW9uczogV29ya3NwYWNlRmFjdG9yeU9wdGlvbnMpIHtcblx0XHRyZXR1cm4gV29ya3NwYWNlRmFjdG9yeS5jcmVhdGUoeyBjb25maWdGaWxlOiBvcHRpb25zLmNvbmZpZ0ZpbGUgfSk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJGbHV4TW9kdWxlIiwiTW9kdWxlTWFuaWZlc3QiLCJpZCIsImNvbW1hbmQiLCJGbHV4Q29tbWFuZCIsImFjdGlvbnMiLCJzZXJ2ZSIsIlNlcnZlQWN0aW9uIiwicnVuIiwiUnVuQWN0aW9uIiwicmVnaXN0ZXJTZXJ2aWNlcyIsImJ1aWxkZXIiLCJyZWdpc3RlclNpbmdsZXRvbiIsIlNvdXJjZU1vZHVsZUxvYWRlciIsIkhvdFJlbG9hZFNlcnZlciIsIkRlZmVycmVkU2NyaXB0UnVubmVyIiwiY3JlYXRlV29ya3NwYWNlIiwib3B0aW9ucyIsIldvcmtzcGFjZUZhY3RvcnkiLCJjcmVhdGUiLCJjb25maWdGaWxlIl0sIm1hcHBpbmdzIjoiOzs7OytCQVdhQTs7O2VBQUFBOzs7c0JBWG9CO3FCQUVGO3NDQUVNOzZCQUNUO2lDQUNJOzJCQUNOOzZCQUNFO29DQUNPO0FBRTVCLE1BQU1BLG1CQUFtQkMsbUJBQWM7SUFDN0JDLEtBQUssT0FBTztJQUNaQyxVQUFVQyx3QkFBVyxDQUFDO0lBQ3RCQyxVQUFVO1FBQ3pCQyxPQUFPQyx3QkFBVztRQUNsQkMsS0FBS0Msb0JBQVM7SUFDZixFQUFFO0lBRUtDLGlCQUFpQkMsT0FBeUIsRUFBRTtRQUNsREEsUUFBUUMsaUJBQWlCLENBQUNDLHNDQUFrQjtRQUM1Q0YsUUFBUUMsaUJBQWlCLENBQUNFLGdDQUFlO1FBQ3pDSCxRQUFRQyxpQkFBaUIsQ0FBQ0csMENBQW9CO0lBQy9DO0lBRWdCQyxnQkFBZ0JDLE9BQWdDLEVBQUU7UUFDakUsT0FBT0Msc0JBQWdCLENBQUNDLE1BQU0sQ0FBQztZQUFFQyxZQUFZSCxRQUFRRyxVQUFVO1FBQUM7SUFDakU7QUFDRCJ9
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL2ZsdXgubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdvcmtzcGFjZUZhY3RvcnkgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB0eXBlIHsgV29ya3NwYWNlRmFjdG9yeU9wdGlvbnMgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgTW9kdWxlTWFuaWZlc3QgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHR5cGUgeyBDb250YWluZXJCdWlsZGVyIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jb21wb3NpdGlvblwiO1xuaW1wb3J0IHsgRGVmZXJyZWRTY3JpcHRSdW5uZXIgfSBmcm9tIFwiLi9kZWZlcnJlZC1zY3JpcHQtcnVubmVyLmpzXCI7XG5pbXBvcnQgeyBGbHV4Q29tbWFuZCB9IGZyb20gXCIuL2ZsdXguY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgSG90UmVsb2FkU2VydmVyIH0gZnJvbSBcIi4vaG90LXJlbG9hZC1zZXJ2ZXIuanNcIjtcbmltcG9ydCB7IFJ1bkFjdGlvbiB9IGZyb20gXCIuL3J1bi5hY3Rpb24uanNcIjtcbmltcG9ydCB7IFNlcnZlQWN0aW9uIH0gZnJvbSBcIi4vc2VydmUuYWN0aW9uLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBGbHV4TW9kdWxlIGV4dGVuZHMgTW9kdWxlTWFuaWZlc3Qge1xuXHRwdWJsaWMgcmVhZG9ubHkgaWQgPSBcImZsdXhcIjtcblx0cHVibGljIHJlYWRvbmx5IGNvbW1hbmQgPSBGbHV4Q29tbWFuZDtcblx0cHVibGljIHJlYWRvbmx5IGFjdGlvbnMgPSB7XG5cdFx0c2VydmU6IFNlcnZlQWN0aW9uLFxuXHRcdHJ1bjogUnVuQWN0aW9uLFxuXHR9O1xuXG5cdHB1YmxpYyByZWdpc3RlclNlcnZpY2VzKGJ1aWxkZXI6IENvbnRhaW5lckJ1aWxkZXIpIHtcblx0XHRidWlsZGVyLnJlZ2lzdGVyU2luZ2xldG9uKEhvdFJlbG9hZFNlcnZlcik7XG5cdFx0YnVpbGRlci5yZWdpc3RlclNpbmdsZXRvbihEZWZlcnJlZFNjcmlwdFJ1bm5lcik7XG5cdH1cblxuXHRwdWJsaWMgb3ZlcnJpZGUgY3JlYXRlV29ya3NwYWNlKG9wdGlvbnM6IFdvcmtzcGFjZUZhY3RvcnlPcHRpb25zKSB7XG5cdFx0cmV0dXJuIFdvcmtzcGFjZUZhY3RvcnkuY3JlYXRlKHsgY29uZmlnRmlsZTogb3B0aW9ucy5jb25maWdGaWxlIH0pO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiRmx1eE1vZHVsZSIsIk1vZHVsZU1hbmlmZXN0IiwiaWQiLCJjb21tYW5kIiwiRmx1eENvbW1hbmQiLCJhY3Rpb25zIiwic2VydmUiLCJTZXJ2ZUFjdGlvbiIsInJ1biIsIlJ1bkFjdGlvbiIsInJlZ2lzdGVyU2VydmljZXMiLCJidWlsZGVyIiwicmVnaXN0ZXJTaW5nbGV0b24iLCJIb3RSZWxvYWRTZXJ2ZXIiLCJEZWZlcnJlZFNjcmlwdFJ1bm5lciIsImNyZWF0ZVdvcmtzcGFjZSIsIm9wdGlvbnMiLCJXb3Jrc3BhY2VGYWN0b3J5IiwiY3JlYXRlIiwiY29uZmlnRmlsZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFVYUE7OztlQUFBQTs7O3NCQVZvQjtxQkFFRjtzQ0FFTTs2QkFDVDtpQ0FDSTsyQkFDTjs2QkFDRTtBQUVyQixNQUFNQSxtQkFBbUJDLG1CQUFjO0lBQzdCQyxLQUFLLE9BQU87SUFDWkMsVUFBVUMsd0JBQVcsQ0FBQztJQUN0QkMsVUFBVTtRQUN6QkMsT0FBT0Msd0JBQVc7UUFDbEJDLEtBQUtDLG9CQUFTO0lBQ2YsRUFBRTtJQUVLQyxpQkFBaUJDLE9BQXlCLEVBQUU7UUFDbERBLFFBQVFDLGlCQUFpQixDQUFDQyxnQ0FBZTtRQUN6Q0YsUUFBUUMsaUJBQWlCLENBQUNFLDBDQUFvQjtJQUMvQztJQUVnQkMsZ0JBQWdCQyxPQUFnQyxFQUFFO1FBQ2pFLE9BQU9DLHNCQUFnQixDQUFDQyxNQUFNLENBQUM7WUFBRUMsWUFBWUgsUUFBUUcsVUFBVTtRQUFDO0lBQ2pFO0FBQ0QifQ==
@@ -30,6 +30,9 @@ _export(exports, {
30
30
  get classifySliceProjects () {
31
31
  return _sliceserve.classifySliceProjects;
32
32
  },
33
+ get flux () {
34
+ return _flux.flux;
35
+ },
33
36
  get normalizeSlicePrefix () {
34
37
  return _sliceserve.normalizeSlicePrefix;
35
38
  },
@@ -44,9 +47,10 @@ _export(exports, {
44
47
  }
45
48
  });
46
49
  const _deferredscriptrunner = require("./deferred-script-runner.js");
50
+ const _flux = require("./flux.js");
47
51
  const _fluxmodule = require("./flux.module.js");
48
52
  const _hotreloadserver = require("./hot-reload-server.js");
49
53
  const _sliceserve = require("./slice-serve.js");
50
54
  const _sourcemoduleloader = require("./source-module-loader.js");
51
55
 
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IERlZmVycmVkU2NyaXB0UnVubmVyIH0gZnJvbSBcIi4vZGVmZXJyZWQtc2NyaXB0LXJ1bm5lci5qc1wiO1xuZXhwb3J0IHsgRmx1eE1vZHVsZSB9IGZyb20gXCIuL2ZsdXgubW9kdWxlLmpzXCI7XG5leHBvcnQgdHlwZSB7IEhvdFJlbG9hZFNlcnZlck9wdGlvbnMgfSBmcm9tIFwiLi9ob3QtcmVsb2FkLXNlcnZlci5qc1wiO1xuZXhwb3J0IHsgREVGQVVMVF9SRUJPT1RfREVCT1VOQ0VfTVMsIEhvdFJlbG9hZFNlcnZlciB9IGZyb20gXCIuL2hvdC1yZWxvYWQtc2VydmVyLmpzXCI7XG5leHBvcnQgdHlwZSB7IFJ1bk9wdGlvbnMgfSBmcm9tIFwiLi9ydW4uYWN0aW9uLmpzXCI7XG5leHBvcnQgdHlwZSB7IFNlcnZlT3B0aW9ucyB9IGZyb20gXCIuL3NlcnZlLmFjdGlvbi5qc1wiO1xuZXhwb3J0IHtcblx0dHlwZSBDbGFzc2lmaWVkU2xpY2UsXG5cdGNsYXNzaWZ5U2xpY2VQcm9qZWN0LFxuXHRjbGFzc2lmeVNsaWNlUHJvamVjdHMsXG5cdG5vcm1hbGl6ZVNsaWNlUHJlZml4LFxuXHRwcm9qZWN0c0luU2xpY2UsXG5cdHByb2plY3RzSW5TbGljZXMsXG5cdHJlc29sdmVEZWZlclNjcmlwdCxcblx0dHlwZSBTbGljZUtpbmQsXG5cdHR5cGUgU2xpY2VQcm9qZWN0Vmlldyxcbn0gZnJvbSBcIi4vc2xpY2Utc2VydmUuanNcIjtcbmV4cG9ydCB0eXBlIHsgU291cmNlTW9kdWxlTG9hZGVyT3B0aW9ucyB9IGZyb20gXCIuL3NvdXJjZS1tb2R1bGUtbG9hZGVyLmpzXCI7XG5leHBvcnQgeyBTb3VyY2VNb2R1bGVMb2FkZXIgfSBmcm9tIFwiLi9zb3VyY2UtbW9kdWxlLWxvYWRlci5qc1wiO1xuIl0sIm5hbWVzIjpbIkRFRkFVTFRfUkVCT09UX0RFQk9VTkNFX01TIiwiRGVmZXJyZWRTY3JpcHRSdW5uZXIiLCJGbHV4TW9kdWxlIiwiSG90UmVsb2FkU2VydmVyIiwiU291cmNlTW9kdWxlTG9hZGVyIiwiY2xhc3NpZnlTbGljZVByb2plY3QiLCJjbGFzc2lmeVNsaWNlUHJvamVjdHMiLCJub3JtYWxpemVTbGljZVByZWZpeCIsInByb2plY3RzSW5TbGljZSIsInByb2plY3RzSW5TbGljZXMiLCJyZXNvbHZlRGVmZXJTY3JpcHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBR1NBO2VBQUFBLDJDQUEwQjs7UUFIMUJDO2VBQUFBLDBDQUFvQjs7UUFDcEJDO2VBQUFBLHNCQUFVOztRQUVrQkM7ZUFBQUEsZ0NBQWU7O1FBZTNDQztlQUFBQSxzQ0FBa0I7O1FBVjFCQztlQUFBQSxnQ0FBb0I7O1FBQ3BCQztlQUFBQSxpQ0FBcUI7O1FBQ3JCQztlQUFBQSxnQ0FBb0I7O1FBQ3BCQztlQUFBQSwyQkFBZTs7UUFDZkM7ZUFBQUEsNEJBQWdCOztRQUNoQkM7ZUFBQUEsOEJBQWtCOzs7c0NBYmtCOzRCQUNWO2lDQUVpQzs0QkFhckQ7b0NBRTRCIn0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IERlZmVycmVkU2NyaXB0UnVubmVyIH0gZnJvbSBcIi4vZGVmZXJyZWQtc2NyaXB0LXJ1bm5lci5qc1wiO1xuZXhwb3J0IHR5cGUgeyBGbHV4UnVuT3B0aW9ucywgRmx1eFNlcnZlT3B0aW9ucyB9IGZyb20gXCIuL2ZsdXguanNcIjtcbmV4cG9ydCB7IGZsdXggfSBmcm9tIFwiLi9mbHV4LmpzXCI7XG5leHBvcnQgeyBGbHV4TW9kdWxlIH0gZnJvbSBcIi4vZmx1eC5tb2R1bGUuanNcIjtcbmV4cG9ydCB0eXBlIHsgSG90UmVsb2FkU2VydmVyT3B0aW9ucyB9IGZyb20gXCIuL2hvdC1yZWxvYWQtc2VydmVyLmpzXCI7XG5leHBvcnQgeyBERUZBVUxUX1JFQk9PVF9ERUJPVU5DRV9NUywgSG90UmVsb2FkU2VydmVyIH0gZnJvbSBcIi4vaG90LXJlbG9hZC1zZXJ2ZXIuanNcIjtcbmV4cG9ydCB0eXBlIHsgUnVuT3B0aW9ucyB9IGZyb20gXCIuL3J1bi5hY3Rpb24uanNcIjtcbmV4cG9ydCB0eXBlIHsgU2VydmVPcHRpb25zIH0gZnJvbSBcIi4vc2VydmUuYWN0aW9uLmpzXCI7XG5leHBvcnQge1xuXHR0eXBlIENsYXNzaWZpZWRTbGljZSxcblx0Y2xhc3NpZnlTbGljZVByb2plY3QsXG5cdGNsYXNzaWZ5U2xpY2VQcm9qZWN0cyxcblx0bm9ybWFsaXplU2xpY2VQcmVmaXgsXG5cdHByb2plY3RzSW5TbGljZSxcblx0cHJvamVjdHNJblNsaWNlcyxcblx0cmVzb2x2ZURlZmVyU2NyaXB0LFxuXHR0eXBlIFNsaWNlS2luZCxcblx0dHlwZSBTbGljZVByb2plY3RWaWV3LFxufSBmcm9tIFwiLi9zbGljZS1zZXJ2ZS5qc1wiO1xuZXhwb3J0IHR5cGUgeyBTb3VyY2VNb2R1bGVMb2FkZXJPcHRpb25zIH0gZnJvbSBcIi4vc291cmNlLW1vZHVsZS1sb2FkZXIuanNcIjtcbmV4cG9ydCB7IFNvdXJjZU1vZHVsZUxvYWRlciB9IGZyb20gXCIuL3NvdXJjZS1tb2R1bGUtbG9hZGVyLmpzXCI7XG4iXSwibmFtZXMiOlsiREVGQVVMVF9SRUJPT1RfREVCT1VOQ0VfTVMiLCJEZWZlcnJlZFNjcmlwdFJ1bm5lciIsIkZsdXhNb2R1bGUiLCJIb3RSZWxvYWRTZXJ2ZXIiLCJTb3VyY2VNb2R1bGVMb2FkZXIiLCJjbGFzc2lmeVNsaWNlUHJvamVjdCIsImNsYXNzaWZ5U2xpY2VQcm9qZWN0cyIsImZsdXgiLCJub3JtYWxpemVTbGljZVByZWZpeCIsInByb2plY3RzSW5TbGljZSIsInByb2plY3RzSW5TbGljZXMiLCJyZXNvbHZlRGVmZXJTY3JpcHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBS1NBO2VBQUFBLDJDQUEwQjs7UUFMMUJDO2VBQUFBLDBDQUFvQjs7UUFHcEJDO2VBQUFBLHNCQUFVOztRQUVrQkM7ZUFBQUEsZ0NBQWU7O1FBZTNDQztlQUFBQSxzQ0FBa0I7O1FBVjFCQztlQUFBQSxnQ0FBb0I7O1FBQ3BCQztlQUFBQSxpQ0FBcUI7O1FBVGJDO2VBQUFBLFVBQUk7O1FBVVpDO2VBQUFBLGdDQUFvQjs7UUFDcEJDO2VBQUFBLDJCQUFlOztRQUNmQztlQUFBQSw0QkFBZ0I7O1FBQ2hCQztlQUFBQSw4QkFBa0I7OztzQ0Fma0I7c0JBRWhCOzRCQUNNO2lDQUVpQzs0QkFhckQ7b0NBRTRCIn0=
@@ -8,17 +8,11 @@ Object.defineProperty(exports, "RunAction", {
8
8
  return RunAction;
9
9
  }
10
10
  });
11
- const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path"));
12
11
  const _decorators = require("@decohere/crucible/decorators");
13
12
  const _mesh = require("@decohere/mesh");
14
13
  const _cli = require("@decohere/nexus/cli");
15
14
  const _scribe = require("@decohere/scribe");
16
- const _sourcemoduleloader = require("./source-module-loader.js");
17
- function _interop_require_default(obj) {
18
- return obj && obj.__esModule ? obj : {
19
- default: obj
20
- };
21
- }
15
+ const _flux = require("./flux.js");
22
16
  function _ts_decorate(decorators, target, key, desc) {
23
17
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
24
18
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -29,33 +23,18 @@ function _ts_metadata(k, v) {
29
23
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
30
24
  }
31
25
  class RunAction {
32
- loader;
33
26
  workspace;
34
27
  logger = _scribe.scribe.logger(RunAction.name);
35
- constructor(loader, workspace){
36
- this.loader = loader;
28
+ constructor(workspace){
37
29
  this.workspace = workspace;
38
30
  }
39
31
  async run(options) {
40
- const entry = options.entry?.trim();
41
- if (entry == null || entry === "") {
42
- throw new Error("flux run requires an entry file path");
43
- }
44
- const absoluteEntry = _nodepath.default.resolve(entry);
45
- const passthrough = options.args ?? [];
46
- await this.loader.configure({
47
- workspace: this.workspace,
48
- buildConfig: options.configuration
32
+ this.logger.trace(`Running ${options.entry}`);
33
+ await _flux.flux.run(options.entry, {
34
+ configuration: options.configuration,
35
+ args: options.args,
36
+ workspace: this.workspace
49
37
  });
50
- this.loader.registerHooks();
51
- // Bin-style entries (forge.ts, flux.ts) read process.argv.slice(2).
52
- process.argv = [
53
- process.execPath,
54
- absoluteEntry,
55
- ...passthrough
56
- ];
57
- this.logger.trace(`Running ${absoluteEntry}`);
58
- await this.loader.importEntry(absoluteEntry);
59
38
  return _cli.ActionResponse.Success(RunAction.name);
60
39
  }
61
40
  }
@@ -63,9 +42,8 @@ RunAction = _ts_decorate([
63
42
  (0, _decorators.injectable)(),
64
43
  _ts_metadata("design:type", Function),
65
44
  _ts_metadata("design:paramtypes", [
66
- typeof _sourcemoduleloader.SourceModuleLoader === "undefined" ? Object : _sourcemoduleloader.SourceModuleLoader,
67
45
  typeof _mesh.Workspace === "undefined" ? Object : _mesh.Workspace
68
46
  ])
69
47
  ], RunAction);
70
48
 
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL3J1bi5hY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgaW5qZWN0YWJsZSB9IGZyb20gXCJAZGVjb2hlcmUvY3J1Y2libGUvZGVjb3JhdG9yc1wiO1xuLy8gYmlvbWUtaWdub3JlIGxpbnQvc3R5bGUvdXNlSW1wb3J0VHlwZTogPERJPlxuaW1wb3J0IHsgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyB0eXBlIEFjdGlvbiwgQWN0aW9uUmVzcG9uc2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgdHlwZSBMb2dnZXIsIHNjcmliZSB9IGZyb20gXCJAZGVjb2hlcmUvc2NyaWJlXCI7XG4vLyBiaW9tZS1pZ25vcmUgbGludC9zdHlsZS91c2VJbXBvcnRUeXBlOiA8REk+XG5pbXBvcnQgeyBTb3VyY2VNb2R1bGVMb2FkZXIgfSBmcm9tIFwiLi9zb3VyY2UtbW9kdWxlLWxvYWRlci5qc1wiO1xuXG5leHBvcnQgdHlwZSBSdW5PcHRpb25zID0ge1xuXHQvKiogQWJzb2x1dGUgb3IgY3dkLXJlbGF0aXZlIHBhdGggdG8gYSBgLnRzYCBlbnRyeSBmaWxlLiAqL1xuXHRlbnRyeTogc3RyaW5nO1xuXHRjb25maWd1cmF0aW9uOiBzdHJpbmc7XG5cdC8qKiBBcmd1bWVudHMgZm9yd2FyZGVkIHRvIHRoZSBlbnRyeSAoYmluLXN0eWxlIGBwcm9jZXNzLmFyZ3Yuc2xpY2UoMilgKS4gKi9cblx0YXJncz86IHN0cmluZ1tdO1xufTtcblxuQGluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJ1bkFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbjxSdW5PcHRpb25zPiB7XG5cdHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXIgPSBzY3JpYmUubG9nZ2VyKFJ1bkFjdGlvbi5uYW1lKTtcblxuXHRwdWJsaWMgY29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSByZWFkb25seSBsb2FkZXI6IFNvdXJjZU1vZHVsZUxvYWRlcixcblx0XHRwcml2YXRlIHJlYWRvbmx5IHdvcmtzcGFjZTogV29ya3NwYWNlLFxuXHQpIHt9XG5cblx0cHVibGljIGFzeW5jIHJ1bihvcHRpb25zOiBSdW5PcHRpb25zKTogUHJvbWlzZTxBY3Rpb25SZXNwb25zZT4ge1xuXHRcdGNvbnN0IGVudHJ5ID0gb3B0aW9ucy5lbnRyeT8udHJpbSgpO1xuXHRcdGlmIChlbnRyeSA9PSBudWxsIHx8IGVudHJ5ID09PSBcIlwiKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJmbHV4IHJ1biByZXF1aXJlcyBhbiBlbnRyeSBmaWxlIHBhdGhcIik7XG5cdFx0fVxuXG5cdFx0Y29uc3QgYWJzb2x1dGVFbnRyeSA9IHBhdGgucmVzb2x2ZShlbnRyeSk7XG5cdFx0Y29uc3QgcGFzc3Rocm91Z2ggPSBvcHRpb25zLmFyZ3MgPz8gW107XG5cblx0XHRhd2FpdCB0aGlzLmxvYWRlci5jb25maWd1cmUoe1xuXHRcdFx0d29ya3NwYWNlOiB0aGlzLndvcmtzcGFjZSxcblx0XHRcdGJ1aWxkQ29uZmlnOiBvcHRpb25zLmNvbmZpZ3VyYXRpb24sXG5cdFx0fSk7XG5cdFx0dGhpcy5sb2FkZXIucmVnaXN0ZXJIb29rcygpO1xuXG5cdFx0Ly8gQmluLXN0eWxlIGVudHJpZXMgKGZvcmdlLnRzLCBmbHV4LnRzKSByZWFkIHByb2Nlc3MuYXJndi5zbGljZSgyKS5cblx0XHRwcm9jZXNzLmFyZ3YgPSBbcHJvY2Vzcy5leGVjUGF0aCwgYWJzb2x1dGVFbnRyeSwgLi4ucGFzc3Rocm91Z2hdO1xuXG5cdFx0dGhpcy5sb2dnZXIudHJhY2UoYFJ1bm5pbmcgJHthYnNvbHV0ZUVudHJ5fWApO1xuXHRcdGF3YWl0IHRoaXMubG9hZGVyLmltcG9ydEVudHJ5KGFic29sdXRlRW50cnkpO1xuXHRcdHJldHVybiBBY3Rpb25SZXNwb25zZS5TdWNjZXNzKFJ1bkFjdGlvbi5uYW1lKTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIlJ1bkFjdGlvbiIsImxvZ2dlciIsInNjcmliZSIsIm5hbWUiLCJsb2FkZXIiLCJ3b3Jrc3BhY2UiLCJydW4iLCJvcHRpb25zIiwiZW50cnkiLCJ0cmltIiwiRXJyb3IiLCJhYnNvbHV0ZUVudHJ5IiwicGF0aCIsInJlc29sdmUiLCJwYXNzdGhyb3VnaCIsImFyZ3MiLCJjb25maWd1cmUiLCJidWlsZENvbmZpZyIsImNvbmZpZ3VyYXRpb24iLCJyZWdpc3Rlckhvb2tzIiwicHJvY2VzcyIsImFyZ3YiLCJleGVjUGF0aCIsInRyYWNlIiwiaW1wb3J0RW50cnkiLCJBY3Rpb25SZXNwb25zZSIsIlN1Y2Nlc3MiXSwibWFwcGluZ3MiOiI7Ozs7K0JBa0JhQTs7O2VBQUFBOzs7aUVBbEJJOzRCQUNVO3NCQUVEO3FCQUNrQjt3QkFDUjtvQ0FFRDs7Ozs7Ozs7Ozs7Ozs7O0FBVzVCLE1BQU1BOzs7SUFDS0MsU0FBaUJDLGNBQU0sQ0FBQ0QsTUFBTSxDQUFDRCxVQUFVRyxJQUFJLEVBQUU7SUFFaEUsWUFDQyxBQUFpQkMsTUFBMEIsRUFDM0MsQUFBaUJDLFNBQW9CLENBQ3BDO2FBRmdCRCxTQUFBQTthQUNBQyxZQUFBQTtJQUNmO0lBRUgsTUFBYUMsSUFBSUMsT0FBbUIsRUFBMkI7UUFDOUQsTUFBTUMsUUFBUUQsUUFBUUMsS0FBSyxFQUFFQztRQUM3QixJQUFJRCxTQUFTLFFBQVFBLFVBQVUsSUFBSTtZQUNsQyxNQUFNLElBQUlFLE1BQU07UUFDakI7UUFFQSxNQUFNQyxnQkFBZ0JDLGlCQUFJLENBQUNDLE9BQU8sQ0FBQ0w7UUFDbkMsTUFBTU0sY0FBY1AsUUFBUVEsSUFBSSxJQUFJLEVBQUU7UUFFdEMsTUFBTSxJQUFJLENBQUNYLE1BQU0sQ0FBQ1ksU0FBUyxDQUFDO1lBQzNCWCxXQUFXLElBQUksQ0FBQ0EsU0FBUztZQUN6QlksYUFBYVYsUUFBUVcsYUFBYTtRQUNuQztRQUNBLElBQUksQ0FBQ2QsTUFBTSxDQUFDZSxhQUFhO1FBRXpCLG9FQUFvRTtRQUNwRUMsUUFBUUMsSUFBSSxHQUFHO1lBQUNELFFBQVFFLFFBQVE7WUFBRVg7ZUFBa0JHO1NBQVk7UUFFaEUsSUFBSSxDQUFDYixNQUFNLENBQUNzQixLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUVaLGVBQWU7UUFDNUMsTUFBTSxJQUFJLENBQUNQLE1BQU0sQ0FBQ29CLFdBQVcsQ0FBQ2I7UUFDOUIsT0FBT2MsbUJBQWMsQ0FBQ0MsT0FBTyxDQUFDMUIsVUFBVUcsSUFBSTtJQUM3QztBQUNEIn0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL3J1bi5hY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0YWJsZSB9IGZyb20gXCJAZGVjb2hlcmUvY3J1Y2libGUvZGVjb3JhdG9yc1wiO1xuLy8gYmlvbWUtaWdub3JlIGxpbnQvc3R5bGUvdXNlSW1wb3J0VHlwZTogPERJPlxuaW1wb3J0IHsgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyB0eXBlIEFjdGlvbiwgQWN0aW9uUmVzcG9uc2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgdHlwZSBMb2dnZXIsIHNjcmliZSB9IGZyb20gXCJAZGVjb2hlcmUvc2NyaWJlXCI7XG5pbXBvcnQgeyBmbHV4IH0gZnJvbSBcIi4vZmx1eC5qc1wiO1xuXG5leHBvcnQgdHlwZSBSdW5PcHRpb25zID0ge1xuXHQvKiogQWJzb2x1dGUgb3IgY3dkLXJlbGF0aXZlIHBhdGggdG8gYSBgLnRzYCBlbnRyeSBmaWxlLiAqL1xuXHRlbnRyeTogc3RyaW5nO1xuXHRjb25maWd1cmF0aW9uOiBzdHJpbmc7XG5cdC8qKiBBcmd1bWVudHMgZm9yd2FyZGVkIHRvIHRoZSBlbnRyeSAoYmluLXN0eWxlIGBwcm9jZXNzLmFyZ3Yuc2xpY2UoMilgKS4gKi9cblx0YXJncz86IHN0cmluZ1tdO1xufTtcblxuQGluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJ1bkFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbjxSdW5PcHRpb25zPiB7XG5cdHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXIgPSBzY3JpYmUubG9nZ2VyKFJ1bkFjdGlvbi5uYW1lKTtcblxuXHRwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB3b3Jrc3BhY2U6IFdvcmtzcGFjZSkge31cblxuXHRwdWJsaWMgYXN5bmMgcnVuKG9wdGlvbnM6IFJ1bk9wdGlvbnMpOiBQcm9taXNlPEFjdGlvblJlc3BvbnNlPiB7XG5cdFx0dGhpcy5sb2dnZXIudHJhY2UoYFJ1bm5pbmcgJHtvcHRpb25zLmVudHJ5fWApO1xuXHRcdGF3YWl0IGZsdXgucnVuKG9wdGlvbnMuZW50cnksIHtcblx0XHRcdGNvbmZpZ3VyYXRpb246IG9wdGlvbnMuY29uZmlndXJhdGlvbixcblx0XHRcdGFyZ3M6IG9wdGlvbnMuYXJncyxcblx0XHRcdHdvcmtzcGFjZTogdGhpcy53b3Jrc3BhY2UsXG5cdFx0fSk7XG5cdFx0cmV0dXJuIEFjdGlvblJlc3BvbnNlLlN1Y2Nlc3MoUnVuQWN0aW9uLm5hbWUpO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiUnVuQWN0aW9uIiwibG9nZ2VyIiwic2NyaWJlIiwibmFtZSIsIndvcmtzcGFjZSIsInJ1biIsIm9wdGlvbnMiLCJ0cmFjZSIsImVudHJ5IiwiZmx1eCIsImNvbmZpZ3VyYXRpb24iLCJhcmdzIiwiQWN0aW9uUmVzcG9uc2UiLCJTdWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7OytCQWdCYUE7OztlQUFBQTs7OzRCQWhCYztzQkFFRDtxQkFDa0I7d0JBQ1I7c0JBQ2Y7Ozs7Ozs7Ozs7QUFXZCxNQUFNQTs7SUFDS0MsU0FBaUJDLGNBQU0sQ0FBQ0QsTUFBTSxDQUFDRCxVQUFVRyxJQUFJLEVBQUU7SUFFaEUsWUFBbUIsQUFBaUJDLFNBQW9CLENBQUU7YUFBdEJBLFlBQUFBO0lBQXVCO0lBRTNELE1BQWFDLElBQUlDLE9BQW1CLEVBQTJCO1FBQzlELElBQUksQ0FBQ0wsTUFBTSxDQUFDTSxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUVELFFBQVFFLEtBQUssRUFBRTtRQUM1QyxNQUFNQyxVQUFJLENBQUNKLEdBQUcsQ0FBQ0MsUUFBUUUsS0FBSyxFQUFFO1lBQzdCRSxlQUFlSixRQUFRSSxhQUFhO1lBQ3BDQyxNQUFNTCxRQUFRSyxJQUFJO1lBQ2xCUCxXQUFXLElBQUksQ0FBQ0EsU0FBUztRQUMxQjtRQUNBLE9BQU9RLG1CQUFjLENBQUNDLE9BQU8sQ0FBQ2IsVUFBVUcsSUFBSTtJQUM3QztBQUNEIn0=
@@ -0,0 +1,43 @@
1
+ import path from "node:path";
2
+ import { HotReloadServer } from "./hot-reload-server.js";
3
+ import { SourceModuleLoader } from "./source-module-loader.js";
4
+ /** Process-level one-shot loader so a second `run()` reconfigures instead of stacking hooks. */ const runLoader = new SourceModuleLoader();
5
+ async function run(entry, options = {}) {
6
+ const trimmed = entry.trim();
7
+ if (trimmed == null || trimmed === "") {
8
+ throw new Error("flux.run requires an entry file path");
9
+ }
10
+ const absoluteEntry = path.resolve(trimmed);
11
+ await runLoader.configure({
12
+ workspace: options.workspace,
13
+ buildConfig: options.configuration ?? "debug"
14
+ });
15
+ runLoader.registerHooks();
16
+ process.argv = [
17
+ process.execPath,
18
+ absoluteEntry,
19
+ ...options.args ?? []
20
+ ];
21
+ return runLoader.importEntry(absoluteEntry);
22
+ }
23
+ async function serve(options = {}) {
24
+ const server = new HotReloadServer();
25
+ await server.start({
26
+ buildConfig: options.configuration ?? "debug",
27
+ project: options.project,
28
+ projects: options.projects,
29
+ workspace: options.workspace,
30
+ rebootDebounceMs: options.rebootDebounceMs
31
+ });
32
+ return server;
33
+ }
34
+ function dispose() {
35
+ runLoader.dispose();
36
+ }
37
+ export const flux = {
38
+ run,
39
+ serve,
40
+ dispose
41
+ };
42
+
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL2ZsdXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHR5cGUgeyBXb3Jrc3BhY2UgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB7IEhvdFJlbG9hZFNlcnZlciB9IGZyb20gXCIuL2hvdC1yZWxvYWQtc2VydmVyLmpzXCI7XG5pbXBvcnQgeyBTb3VyY2VNb2R1bGVMb2FkZXIgfSBmcm9tIFwiLi9zb3VyY2UtbW9kdWxlLWxvYWRlci5qc1wiO1xuXG5leHBvcnQgdHlwZSBGbHV4UnVuT3B0aW9ucyA9IHtcblx0LyoqIE1lc2gvRm9yZ2UgY29uZmlndXJhdGlvbiBuYW1lLiBEZWZhdWx0cyB0byBgZGVidWdgIChgLS1jb25maWd1cmF0aW9uYCkuICovXG5cdGNvbmZpZ3VyYXRpb24/OiBzdHJpbmc7XG5cdC8qKiBBcmd1bWVudHMgZm9yd2FyZGVkIHRvIHRoZSBlbnRyeSAoYmluLXN0eWxlIGBwcm9jZXNzLmFyZ3Yuc2xpY2UoMilgKS4gKi9cblx0YXJncz86IHN0cmluZ1tdO1xuXHQvKipcblx0ICogUHJlLWJ1aWx0IFdvcmtzcGFjZSBpbnN0ZWFkIG9mIGBXb3Jrc3BhY2VGYWN0b3J5YC5cblx0ICogVXNlZnVsIGluIHRlc3RzIHRvIHNraXAgZmlsZXN5c3RlbSBkaXNjb3ZlcnkuXG5cdCAqL1xuXHR3b3Jrc3BhY2U/OiBXb3Jrc3BhY2U7XG59O1xuXG5leHBvcnQgdHlwZSBGbHV4U2VydmVPcHRpb25zID0ge1xuXHQvKiogTWVzaC9Gb3JnZSBjb25maWd1cmF0aW9uIG5hbWUuIERlZmF1bHRzIHRvIGBkZWJ1Z2AgKGAtLWNvbmZpZ3VyYXRpb25gKS4gKi9cblx0Y29uZmlndXJhdGlvbj86IHN0cmluZztcblx0LyoqIE5hbWUgb2YgdGhlIHByb2plY3QgdG8gc2VydmUuIERlZmF1bHRzIHRvIHRoZSBmaXJzdCBwcm9qZWN0IGluIHRoZSB3b3Jrc3BhY2UuICovXG5cdHByb2plY3Q/OiBzdHJpbmc7XG5cdC8qKlxuXHQgKiBNdWx0aXBsZSBGbHV4IGFwcCBwYWNrYWdlIG5hbWVzIHRvIGJvb3QgaW4gb25lIHByb2Nlc3MgKGRpcmVjdG9yeSBzbGljZSkuXG5cdCAqIFdoZW4gc2V0LCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIge0BsaW5rIHByb2plY3R9LlxuXHQgKi9cblx0cHJvamVjdHM/OiByZWFkb25seSBzdHJpbmdbXTtcblx0LyoqXG5cdCAqIFByZS1idWlsdCBXb3Jrc3BhY2UgaW5zdGVhZCBvZiBgV29ya3NwYWNlRmFjdG9yeWAuXG5cdCAqIFVzZWZ1bCBpbiB0ZXN0cyB0byBza2lwIGZpbGVzeXN0ZW0gZGlzY292ZXJ5LlxuXHQgKi9cblx0d29ya3NwYWNlPzogV29ya3NwYWNlO1xuXHQvKipcblx0ICogUXVpZXQgd2luZG93IGluIG1pbGxpc2Vjb25kcyBhZnRlciB0aGUgbGFzdCBhZmZlY3Rpbmcgc2F2ZSBiZWZvcmUgYSByZWJvb3QuXG5cdCAqIFJhaXNlIHRoaXMgZm9yIGFnZW50IHNhdmUgdHJhaW5zLlxuXHQgKi9cblx0cmVib290RGVib3VuY2VNcz86IG51bWJlcjtcbn07XG5cbi8qKiBQcm9jZXNzLWxldmVsIG9uZS1zaG90IGxvYWRlciBzbyBhIHNlY29uZCBgcnVuKClgIHJlY29uZmlndXJlcyBpbnN0ZWFkIG9mIHN0YWNraW5nIGhvb2tzLiAqL1xuY29uc3QgcnVuTG9hZGVyID0gbmV3IFNvdXJjZU1vZHVsZUxvYWRlcigpO1xuXG5hc3luYyBmdW5jdGlvbiBydW4oZW50cnk6IHN0cmluZywgb3B0aW9uczogRmx1eFJ1bk9wdGlvbnMgPSB7fSk6IFByb21pc2U8dW5rbm93bj4ge1xuXHRjb25zdCB0cmltbWVkID0gZW50cnkudHJpbSgpO1xuXHRpZiAodHJpbW1lZCA9PSBudWxsIHx8IHRyaW1tZWQgPT09IFwiXCIpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJmbHV4LnJ1biByZXF1aXJlcyBhbiBlbnRyeSBmaWxlIHBhdGhcIik7XG5cdH1cblxuXHRjb25zdCBhYnNvbHV0ZUVudHJ5ID0gcGF0aC5yZXNvbHZlKHRyaW1tZWQpO1xuXHRhd2FpdCBydW5Mb2FkZXIuY29uZmlndXJlKHtcblx0XHR3b3Jrc3BhY2U6IG9wdGlvbnMud29ya3NwYWNlLFxuXHRcdGJ1aWxkQ29uZmlnOiBvcHRpb25zLmNvbmZpZ3VyYXRpb24gPz8gXCJkZWJ1Z1wiLFxuXHR9KTtcblx0cnVuTG9hZGVyLnJlZ2lzdGVySG9va3MoKTtcblx0cHJvY2Vzcy5hcmd2ID0gW3Byb2Nlc3MuZXhlY1BhdGgsIGFic29sdXRlRW50cnksIC4uLihvcHRpb25zLmFyZ3MgPz8gW10pXTtcblx0cmV0dXJuIHJ1bkxvYWRlci5pbXBvcnRFbnRyeShhYnNvbHV0ZUVudHJ5KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2VydmUob3B0aW9uczogRmx1eFNlcnZlT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxIb3RSZWxvYWRTZXJ2ZXI+IHtcblx0Y29uc3Qgc2VydmVyID0gbmV3IEhvdFJlbG9hZFNlcnZlcigpO1xuXHRhd2FpdCBzZXJ2ZXIuc3RhcnQoe1xuXHRcdGJ1aWxkQ29uZmlnOiBvcHRpb25zLmNvbmZpZ3VyYXRpb24gPz8gXCJkZWJ1Z1wiLFxuXHRcdHByb2plY3Q6IG9wdGlvbnMucHJvamVjdCxcblx0XHRwcm9qZWN0czogb3B0aW9ucy5wcm9qZWN0cyxcblx0XHR3b3Jrc3BhY2U6IG9wdGlvbnMud29ya3NwYWNlLFxuXHRcdHJlYm9vdERlYm91bmNlTXM6IG9wdGlvbnMucmVib290RGVib3VuY2VNcyxcblx0fSk7XG5cdHJldHVybiBzZXJ2ZXI7XG59XG5cbmZ1bmN0aW9uIGRpc3Bvc2UoKTogdm9pZCB7XG5cdHJ1bkxvYWRlci5kaXNwb3NlKCk7XG59XG5cbmV4cG9ydCBjb25zdCBmbHV4ID0geyBydW4sIHNlcnZlLCBkaXNwb3NlIH07XG4iXSwibmFtZXMiOlsicGF0aCIsIkhvdFJlbG9hZFNlcnZlciIsIlNvdXJjZU1vZHVsZUxvYWRlciIsInJ1bkxvYWRlciIsInJ1biIsImVudHJ5Iiwib3B0aW9ucyIsInRyaW1tZWQiLCJ0cmltIiwiRXJyb3IiLCJhYnNvbHV0ZUVudHJ5IiwicmVzb2x2ZSIsImNvbmZpZ3VyZSIsIndvcmtzcGFjZSIsImJ1aWxkQ29uZmlnIiwiY29uZmlndXJhdGlvbiIsInJlZ2lzdGVySG9va3MiLCJwcm9jZXNzIiwiYXJndiIsImV4ZWNQYXRoIiwiYXJncyIsImltcG9ydEVudHJ5Iiwic2VydmUiLCJzZXJ2ZXIiLCJzdGFydCIsInByb2plY3QiLCJwcm9qZWN0cyIsInJlYm9vdERlYm91bmNlTXMiLCJkaXNwb3NlIiwiZmx1eCJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsVUFBVSxZQUFZO0FBRTdCLFNBQVNDLGVBQWUsUUFBUSx5QkFBeUI7QUFDekQsU0FBU0Msa0JBQWtCLFFBQVEsNEJBQTRCO0FBb0MvRCw4RkFBOEYsR0FDOUYsTUFBTUMsWUFBWSxJQUFJRDtBQUV0QixlQUFlRSxJQUFJQyxLQUFhLEVBQUVDLFVBQTBCLENBQUMsQ0FBQztJQUM3RCxNQUFNQyxVQUFVRixNQUFNRyxJQUFJO0lBQzFCLElBQUlELFdBQVcsUUFBUUEsWUFBWSxJQUFJO1FBQ3RDLE1BQU0sSUFBSUUsTUFBTTtJQUNqQjtJQUVBLE1BQU1DLGdCQUFnQlYsS0FBS1csT0FBTyxDQUFDSjtJQUNuQyxNQUFNSixVQUFVUyxTQUFTLENBQUM7UUFDekJDLFdBQVdQLFFBQVFPLFNBQVM7UUFDNUJDLGFBQWFSLFFBQVFTLGFBQWEsSUFBSTtJQUN2QztJQUNBWixVQUFVYSxhQUFhO0lBQ3ZCQyxRQUFRQyxJQUFJLEdBQUc7UUFBQ0QsUUFBUUUsUUFBUTtRQUFFVDtXQUFtQkosUUFBUWMsSUFBSSxJQUFJLEVBQUU7S0FBRTtJQUN6RSxPQUFPakIsVUFBVWtCLFdBQVcsQ0FBQ1g7QUFDOUI7QUFFQSxlQUFlWSxNQUFNaEIsVUFBNEIsQ0FBQyxDQUFDO0lBQ2xELE1BQU1pQixTQUFTLElBQUl0QjtJQUNuQixNQUFNc0IsT0FBT0MsS0FBSyxDQUFDO1FBQ2xCVixhQUFhUixRQUFRUyxhQUFhLElBQUk7UUFDdENVLFNBQVNuQixRQUFRbUIsT0FBTztRQUN4QkMsVUFBVXBCLFFBQVFvQixRQUFRO1FBQzFCYixXQUFXUCxRQUFRTyxTQUFTO1FBQzVCYyxrQkFBa0JyQixRQUFRcUIsZ0JBQWdCO0lBQzNDO0lBQ0EsT0FBT0o7QUFDUjtBQUVBLFNBQVNLO0lBQ1J6QixVQUFVeUIsT0FBTztBQUNsQjtBQUVBLE9BQU8sTUFBTUMsT0FBTztJQUFFekI7SUFBS2tCO0lBQU9NO0FBQVEsRUFBRSJ9
@@ -5,7 +5,6 @@ import { FluxCommand } from "./flux.command.js";
5
5
  import { HotReloadServer } from "./hot-reload-server.js";
6
6
  import { RunAction } from "./run.action.js";
7
7
  import { ServeAction } from "./serve.action.js";
8
- import { SourceModuleLoader } from "./source-module-loader.js";
9
8
  export class FluxModule extends ModuleManifest {
10
9
  id = "flux";
11
10
  command = FluxCommand;
@@ -14,7 +13,6 @@ export class FluxModule extends ModuleManifest {
14
13
  run: RunAction
15
14
  };
16
15
  registerServices(builder) {
17
- builder.registerSingleton(SourceModuleLoader);
18
16
  builder.registerSingleton(HotReloadServer);
19
17
  builder.registerSingleton(DeferredScriptRunner);
20
18
  }
@@ -25,4 +23,4 @@ export class FluxModule extends ModuleManifest {
25
23
  }
26
24
  }
27
25
 
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL2ZsdXgubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdvcmtzcGFjZUZhY3RvcnkgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB0eXBlIHsgV29ya3NwYWNlRmFjdG9yeU9wdGlvbnMgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgTW9kdWxlTWFuaWZlc3QgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHR5cGUgeyBDb250YWluZXJCdWlsZGVyIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jb21wb3NpdGlvblwiO1xuaW1wb3J0IHsgRGVmZXJyZWRTY3JpcHRSdW5uZXIgfSBmcm9tIFwiLi9kZWZlcnJlZC1zY3JpcHQtcnVubmVyLmpzXCI7XG5pbXBvcnQgeyBGbHV4Q29tbWFuZCB9IGZyb20gXCIuL2ZsdXguY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgSG90UmVsb2FkU2VydmVyIH0gZnJvbSBcIi4vaG90LXJlbG9hZC1zZXJ2ZXIuanNcIjtcbmltcG9ydCB7IFJ1bkFjdGlvbiB9IGZyb20gXCIuL3J1bi5hY3Rpb24uanNcIjtcbmltcG9ydCB7IFNlcnZlQWN0aW9uIH0gZnJvbSBcIi4vc2VydmUuYWN0aW9uLmpzXCI7XG5pbXBvcnQgeyBTb3VyY2VNb2R1bGVMb2FkZXIgfSBmcm9tIFwiLi9zb3VyY2UtbW9kdWxlLWxvYWRlci5qc1wiO1xuXG5leHBvcnQgY2xhc3MgRmx1eE1vZHVsZSBleHRlbmRzIE1vZHVsZU1hbmlmZXN0IHtcblx0cHVibGljIHJlYWRvbmx5IGlkID0gXCJmbHV4XCI7XG5cdHB1YmxpYyByZWFkb25seSBjb21tYW5kID0gRmx1eENvbW1hbmQ7XG5cdHB1YmxpYyByZWFkb25seSBhY3Rpb25zID0ge1xuXHRcdHNlcnZlOiBTZXJ2ZUFjdGlvbixcblx0XHRydW46IFJ1bkFjdGlvbixcblx0fTtcblxuXHRwdWJsaWMgcmVnaXN0ZXJTZXJ2aWNlcyhidWlsZGVyOiBDb250YWluZXJCdWlsZGVyKSB7XG5cdFx0YnVpbGRlci5yZWdpc3RlclNpbmdsZXRvbihTb3VyY2VNb2R1bGVMb2FkZXIpO1xuXHRcdGJ1aWxkZXIucmVnaXN0ZXJTaW5nbGV0b24oSG90UmVsb2FkU2VydmVyKTtcblx0XHRidWlsZGVyLnJlZ2lzdGVyU2luZ2xldG9uKERlZmVycmVkU2NyaXB0UnVubmVyKTtcblx0fVxuXG5cdHB1YmxpYyBvdmVycmlkZSBjcmVhdGVXb3Jrc3BhY2Uob3B0aW9uczogV29ya3NwYWNlRmFjdG9yeU9wdGlvbnMpIHtcblx0XHRyZXR1cm4gV29ya3NwYWNlRmFjdG9yeS5jcmVhdGUoeyBjb25maWdGaWxlOiBvcHRpb25zLmNvbmZpZ0ZpbGUgfSk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJXb3Jrc3BhY2VGYWN0b3J5IiwiTW9kdWxlTWFuaWZlc3QiLCJEZWZlcnJlZFNjcmlwdFJ1bm5lciIsIkZsdXhDb21tYW5kIiwiSG90UmVsb2FkU2VydmVyIiwiUnVuQWN0aW9uIiwiU2VydmVBY3Rpb24iLCJTb3VyY2VNb2R1bGVMb2FkZXIiLCJGbHV4TW9kdWxlIiwiaWQiLCJjb21tYW5kIiwiYWN0aW9ucyIsInNlcnZlIiwicnVuIiwicmVnaXN0ZXJTZXJ2aWNlcyIsImJ1aWxkZXIiLCJyZWdpc3RlclNpbmdsZXRvbiIsImNyZWF0ZVdvcmtzcGFjZSIsIm9wdGlvbnMiLCJjcmVhdGUiLCJjb25maWdGaWxlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxnQkFBZ0IsUUFBUSxpQkFBaUI7QUFFbEQsU0FBU0MsY0FBYyxRQUFRLHNCQUFzQjtBQUVyRCxTQUFTQyxvQkFBb0IsUUFBUSw4QkFBOEI7QUFDbkUsU0FBU0MsV0FBVyxRQUFRLG9CQUFvQjtBQUNoRCxTQUFTQyxlQUFlLFFBQVEseUJBQXlCO0FBQ3pELFNBQVNDLFNBQVMsUUFBUSxrQkFBa0I7QUFDNUMsU0FBU0MsV0FBVyxRQUFRLG9CQUFvQjtBQUNoRCxTQUFTQyxrQkFBa0IsUUFBUSw0QkFBNEI7QUFFL0QsT0FBTyxNQUFNQyxtQkFBbUJQO0lBQ2ZRLEtBQUssT0FBTztJQUNaQyxVQUFVUCxZQUFZO0lBQ3RCUSxVQUFVO1FBQ3pCQyxPQUFPTjtRQUNQTyxLQUFLUjtJQUNOLEVBQUU7SUFFS1MsaUJBQWlCQyxPQUF5QixFQUFFO1FBQ2xEQSxRQUFRQyxpQkFBaUIsQ0FBQ1Q7UUFDMUJRLFFBQVFDLGlCQUFpQixDQUFDWjtRQUMxQlcsUUFBUUMsaUJBQWlCLENBQUNkO0lBQzNCO0lBRWdCZSxnQkFBZ0JDLE9BQWdDLEVBQUU7UUFDakUsT0FBT2xCLGlCQUFpQm1CLE1BQU0sQ0FBQztZQUFFQyxZQUFZRixRQUFRRSxVQUFVO1FBQUM7SUFDakU7QUFDRCJ9
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL2ZsdXgubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdvcmtzcGFjZUZhY3RvcnkgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB0eXBlIHsgV29ya3NwYWNlRmFjdG9yeU9wdGlvbnMgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgTW9kdWxlTWFuaWZlc3QgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHR5cGUgeyBDb250YWluZXJCdWlsZGVyIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jb21wb3NpdGlvblwiO1xuaW1wb3J0IHsgRGVmZXJyZWRTY3JpcHRSdW5uZXIgfSBmcm9tIFwiLi9kZWZlcnJlZC1zY3JpcHQtcnVubmVyLmpzXCI7XG5pbXBvcnQgeyBGbHV4Q29tbWFuZCB9IGZyb20gXCIuL2ZsdXguY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgSG90UmVsb2FkU2VydmVyIH0gZnJvbSBcIi4vaG90LXJlbG9hZC1zZXJ2ZXIuanNcIjtcbmltcG9ydCB7IFJ1bkFjdGlvbiB9IGZyb20gXCIuL3J1bi5hY3Rpb24uanNcIjtcbmltcG9ydCB7IFNlcnZlQWN0aW9uIH0gZnJvbSBcIi4vc2VydmUuYWN0aW9uLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBGbHV4TW9kdWxlIGV4dGVuZHMgTW9kdWxlTWFuaWZlc3Qge1xuXHRwdWJsaWMgcmVhZG9ubHkgaWQgPSBcImZsdXhcIjtcblx0cHVibGljIHJlYWRvbmx5IGNvbW1hbmQgPSBGbHV4Q29tbWFuZDtcblx0cHVibGljIHJlYWRvbmx5IGFjdGlvbnMgPSB7XG5cdFx0c2VydmU6IFNlcnZlQWN0aW9uLFxuXHRcdHJ1bjogUnVuQWN0aW9uLFxuXHR9O1xuXG5cdHB1YmxpYyByZWdpc3RlclNlcnZpY2VzKGJ1aWxkZXI6IENvbnRhaW5lckJ1aWxkZXIpIHtcblx0XHRidWlsZGVyLnJlZ2lzdGVyU2luZ2xldG9uKEhvdFJlbG9hZFNlcnZlcik7XG5cdFx0YnVpbGRlci5yZWdpc3RlclNpbmdsZXRvbihEZWZlcnJlZFNjcmlwdFJ1bm5lcik7XG5cdH1cblxuXHRwdWJsaWMgb3ZlcnJpZGUgY3JlYXRlV29ya3NwYWNlKG9wdGlvbnM6IFdvcmtzcGFjZUZhY3RvcnlPcHRpb25zKSB7XG5cdFx0cmV0dXJuIFdvcmtzcGFjZUZhY3RvcnkuY3JlYXRlKHsgY29uZmlnRmlsZTogb3B0aW9ucy5jb25maWdGaWxlIH0pO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiV29ya3NwYWNlRmFjdG9yeSIsIk1vZHVsZU1hbmlmZXN0IiwiRGVmZXJyZWRTY3JpcHRSdW5uZXIiLCJGbHV4Q29tbWFuZCIsIkhvdFJlbG9hZFNlcnZlciIsIlJ1bkFjdGlvbiIsIlNlcnZlQWN0aW9uIiwiRmx1eE1vZHVsZSIsImlkIiwiY29tbWFuZCIsImFjdGlvbnMiLCJzZXJ2ZSIsInJ1biIsInJlZ2lzdGVyU2VydmljZXMiLCJidWlsZGVyIiwicmVnaXN0ZXJTaW5nbGV0b24iLCJjcmVhdGVXb3Jrc3BhY2UiLCJvcHRpb25zIiwiY3JlYXRlIiwiY29uZmlnRmlsZSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsZ0JBQWdCLFFBQVEsaUJBQWlCO0FBRWxELFNBQVNDLGNBQWMsUUFBUSxzQkFBc0I7QUFFckQsU0FBU0Msb0JBQW9CLFFBQVEsOEJBQThCO0FBQ25FLFNBQVNDLFdBQVcsUUFBUSxvQkFBb0I7QUFDaEQsU0FBU0MsZUFBZSxRQUFRLHlCQUF5QjtBQUN6RCxTQUFTQyxTQUFTLFFBQVEsa0JBQWtCO0FBQzVDLFNBQVNDLFdBQVcsUUFBUSxvQkFBb0I7QUFFaEQsT0FBTyxNQUFNQyxtQkFBbUJOO0lBQ2ZPLEtBQUssT0FBTztJQUNaQyxVQUFVTixZQUFZO0lBQ3RCTyxVQUFVO1FBQ3pCQyxPQUFPTDtRQUNQTSxLQUFLUDtJQUNOLEVBQUU7SUFFS1EsaUJBQWlCQyxPQUF5QixFQUFFO1FBQ2xEQSxRQUFRQyxpQkFBaUIsQ0FBQ1g7UUFDMUJVLFFBQVFDLGlCQUFpQixDQUFDYjtJQUMzQjtJQUVnQmMsZ0JBQWdCQyxPQUFnQyxFQUFFO1FBQ2pFLE9BQU9qQixpQkFBaUJrQixNQUFNLENBQUM7WUFBRUMsWUFBWUYsUUFBUUUsVUFBVTtRQUFDO0lBQ2pFO0FBQ0QifQ==
package/es6/src/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  export { DeferredScriptRunner } from "./deferred-script-runner.js";
2
+ export { flux } from "./flux.js";
2
3
  export { FluxModule } from "./flux.module.js";
3
4
  export { DEFAULT_REBOOT_DEBOUNCE_MS, HotReloadServer } from "./hot-reload-server.js";
4
5
  export { classifySliceProject, classifySliceProjects, normalizeSlicePrefix, projectsInSlice, projectsInSlices, resolveDeferScript } from "./slice-serve.js";
5
6
  export { SourceModuleLoader } from "./source-module-loader.js";
6
7
 
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IERlZmVycmVkU2NyaXB0UnVubmVyIH0gZnJvbSBcIi4vZGVmZXJyZWQtc2NyaXB0LXJ1bm5lci5qc1wiO1xuZXhwb3J0IHsgRmx1eE1vZHVsZSB9IGZyb20gXCIuL2ZsdXgubW9kdWxlLmpzXCI7XG5leHBvcnQgdHlwZSB7IEhvdFJlbG9hZFNlcnZlck9wdGlvbnMgfSBmcm9tIFwiLi9ob3QtcmVsb2FkLXNlcnZlci5qc1wiO1xuZXhwb3J0IHsgREVGQVVMVF9SRUJPT1RfREVCT1VOQ0VfTVMsIEhvdFJlbG9hZFNlcnZlciB9IGZyb20gXCIuL2hvdC1yZWxvYWQtc2VydmVyLmpzXCI7XG5leHBvcnQgdHlwZSB7IFJ1bk9wdGlvbnMgfSBmcm9tIFwiLi9ydW4uYWN0aW9uLmpzXCI7XG5leHBvcnQgdHlwZSB7IFNlcnZlT3B0aW9ucyB9IGZyb20gXCIuL3NlcnZlLmFjdGlvbi5qc1wiO1xuZXhwb3J0IHtcblx0dHlwZSBDbGFzc2lmaWVkU2xpY2UsXG5cdGNsYXNzaWZ5U2xpY2VQcm9qZWN0LFxuXHRjbGFzc2lmeVNsaWNlUHJvamVjdHMsXG5cdG5vcm1hbGl6ZVNsaWNlUHJlZml4LFxuXHRwcm9qZWN0c0luU2xpY2UsXG5cdHByb2plY3RzSW5TbGljZXMsXG5cdHJlc29sdmVEZWZlclNjcmlwdCxcblx0dHlwZSBTbGljZUtpbmQsXG5cdHR5cGUgU2xpY2VQcm9qZWN0Vmlldyxcbn0gZnJvbSBcIi4vc2xpY2Utc2VydmUuanNcIjtcbmV4cG9ydCB0eXBlIHsgU291cmNlTW9kdWxlTG9hZGVyT3B0aW9ucyB9IGZyb20gXCIuL3NvdXJjZS1tb2R1bGUtbG9hZGVyLmpzXCI7XG5leHBvcnQgeyBTb3VyY2VNb2R1bGVMb2FkZXIgfSBmcm9tIFwiLi9zb3VyY2UtbW9kdWxlLWxvYWRlci5qc1wiO1xuIl0sIm5hbWVzIjpbIkRlZmVycmVkU2NyaXB0UnVubmVyIiwiRmx1eE1vZHVsZSIsIkRFRkFVTFRfUkVCT09UX0RFQk9VTkNFX01TIiwiSG90UmVsb2FkU2VydmVyIiwiY2xhc3NpZnlTbGljZVByb2plY3QiLCJjbGFzc2lmeVNsaWNlUHJvamVjdHMiLCJub3JtYWxpemVTbGljZVByZWZpeCIsInByb2plY3RzSW5TbGljZSIsInByb2plY3RzSW5TbGljZXMiLCJyZXNvbHZlRGVmZXJTY3JpcHQiLCJTb3VyY2VNb2R1bGVMb2FkZXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLG9CQUFvQixRQUFRLDhCQUE4QjtBQUNuRSxTQUFTQyxVQUFVLFFBQVEsbUJBQW1CO0FBRTlDLFNBQVNDLDBCQUEwQixFQUFFQyxlQUFlLFFBQVEseUJBQXlCO0FBR3JGLFNBRUNDLG9CQUFvQixFQUNwQkMscUJBQXFCLEVBQ3JCQyxvQkFBb0IsRUFDcEJDLGVBQWUsRUFDZkMsZ0JBQWdCLEVBQ2hCQyxrQkFBa0IsUUFHWixtQkFBbUI7QUFFMUIsU0FBU0Msa0JBQWtCLFFBQVEsNEJBQTRCIn0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IERlZmVycmVkU2NyaXB0UnVubmVyIH0gZnJvbSBcIi4vZGVmZXJyZWQtc2NyaXB0LXJ1bm5lci5qc1wiO1xuZXhwb3J0IHR5cGUgeyBGbHV4UnVuT3B0aW9ucywgRmx1eFNlcnZlT3B0aW9ucyB9IGZyb20gXCIuL2ZsdXguanNcIjtcbmV4cG9ydCB7IGZsdXggfSBmcm9tIFwiLi9mbHV4LmpzXCI7XG5leHBvcnQgeyBGbHV4TW9kdWxlIH0gZnJvbSBcIi4vZmx1eC5tb2R1bGUuanNcIjtcbmV4cG9ydCB0eXBlIHsgSG90UmVsb2FkU2VydmVyT3B0aW9ucyB9IGZyb20gXCIuL2hvdC1yZWxvYWQtc2VydmVyLmpzXCI7XG5leHBvcnQgeyBERUZBVUxUX1JFQk9PVF9ERUJPVU5DRV9NUywgSG90UmVsb2FkU2VydmVyIH0gZnJvbSBcIi4vaG90LXJlbG9hZC1zZXJ2ZXIuanNcIjtcbmV4cG9ydCB0eXBlIHsgUnVuT3B0aW9ucyB9IGZyb20gXCIuL3J1bi5hY3Rpb24uanNcIjtcbmV4cG9ydCB0eXBlIHsgU2VydmVPcHRpb25zIH0gZnJvbSBcIi4vc2VydmUuYWN0aW9uLmpzXCI7XG5leHBvcnQge1xuXHR0eXBlIENsYXNzaWZpZWRTbGljZSxcblx0Y2xhc3NpZnlTbGljZVByb2plY3QsXG5cdGNsYXNzaWZ5U2xpY2VQcm9qZWN0cyxcblx0bm9ybWFsaXplU2xpY2VQcmVmaXgsXG5cdHByb2plY3RzSW5TbGljZSxcblx0cHJvamVjdHNJblNsaWNlcyxcblx0cmVzb2x2ZURlZmVyU2NyaXB0LFxuXHR0eXBlIFNsaWNlS2luZCxcblx0dHlwZSBTbGljZVByb2plY3RWaWV3LFxufSBmcm9tIFwiLi9zbGljZS1zZXJ2ZS5qc1wiO1xuZXhwb3J0IHR5cGUgeyBTb3VyY2VNb2R1bGVMb2FkZXJPcHRpb25zIH0gZnJvbSBcIi4vc291cmNlLW1vZHVsZS1sb2FkZXIuanNcIjtcbmV4cG9ydCB7IFNvdXJjZU1vZHVsZUxvYWRlciB9IGZyb20gXCIuL3NvdXJjZS1tb2R1bGUtbG9hZGVyLmpzXCI7XG4iXSwibmFtZXMiOlsiRGVmZXJyZWRTY3JpcHRSdW5uZXIiLCJmbHV4IiwiRmx1eE1vZHVsZSIsIkRFRkFVTFRfUkVCT09UX0RFQk9VTkNFX01TIiwiSG90UmVsb2FkU2VydmVyIiwiY2xhc3NpZnlTbGljZVByb2plY3QiLCJjbGFzc2lmeVNsaWNlUHJvamVjdHMiLCJub3JtYWxpemVTbGljZVByZWZpeCIsInByb2plY3RzSW5TbGljZSIsInByb2plY3RzSW5TbGljZXMiLCJyZXNvbHZlRGVmZXJTY3JpcHQiLCJTb3VyY2VNb2R1bGVMb2FkZXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLG9CQUFvQixRQUFRLDhCQUE4QjtBQUVuRSxTQUFTQyxJQUFJLFFBQVEsWUFBWTtBQUNqQyxTQUFTQyxVQUFVLFFBQVEsbUJBQW1CO0FBRTlDLFNBQVNDLDBCQUEwQixFQUFFQyxlQUFlLFFBQVEseUJBQXlCO0FBR3JGLFNBRUNDLG9CQUFvQixFQUNwQkMscUJBQXFCLEVBQ3JCQyxvQkFBb0IsRUFDcEJDLGVBQWUsRUFDZkMsZ0JBQWdCLEVBQ2hCQyxrQkFBa0IsUUFHWixtQkFBbUI7QUFFMUIsU0FBU0Msa0JBQWtCLFFBQVEsNEJBQTRCIn0=
@@ -7,42 +7,25 @@ function _ts_decorate(decorators, target, key, desc) {
7
7
  function _ts_metadata(k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  }
10
- import path from "node:path";
11
10
  import { injectable } from "@decohere/crucible/decorators";
12
11
  // biome-ignore lint/style/useImportType: <DI>
13
12
  import { Workspace } from "@decohere/mesh";
14
13
  import { ActionResponse } from "@decohere/nexus/cli";
15
14
  import { scribe } from "@decohere/scribe";
16
- // biome-ignore lint/style/useImportType: <DI>
17
- import { SourceModuleLoader } from "./source-module-loader.js";
15
+ import { flux } from "./flux.js";
18
16
  export class RunAction {
19
- loader;
20
17
  workspace;
21
18
  logger = scribe.logger(RunAction.name);
22
- constructor(loader, workspace){
23
- this.loader = loader;
19
+ constructor(workspace){
24
20
  this.workspace = workspace;
25
21
  }
26
22
  async run(options) {
27
- const entry = options.entry?.trim();
28
- if (entry == null || entry === "") {
29
- throw new Error("flux run requires an entry file path");
30
- }
31
- const absoluteEntry = path.resolve(entry);
32
- const passthrough = options.args ?? [];
33
- await this.loader.configure({
34
- workspace: this.workspace,
35
- buildConfig: options.configuration
23
+ this.logger.trace(`Running ${options.entry}`);
24
+ await flux.run(options.entry, {
25
+ configuration: options.configuration,
26
+ args: options.args,
27
+ workspace: this.workspace
36
28
  });
37
- this.loader.registerHooks();
38
- // Bin-style entries (forge.ts, flux.ts) read process.argv.slice(2).
39
- process.argv = [
40
- process.execPath,
41
- absoluteEntry,
42
- ...passthrough
43
- ];
44
- this.logger.trace(`Running ${absoluteEntry}`);
45
- await this.loader.importEntry(absoluteEntry);
46
29
  return ActionResponse.Success(RunAction.name);
47
30
  }
48
31
  }
@@ -50,9 +33,8 @@ RunAction = _ts_decorate([
50
33
  injectable(),
51
34
  _ts_metadata("design:type", Function),
52
35
  _ts_metadata("design:paramtypes", [
53
- typeof SourceModuleLoader === "undefined" ? Object : SourceModuleLoader,
54
36
  typeof Workspace === "undefined" ? Object : Workspace
55
37
  ])
56
38
  ], RunAction);
57
39
 
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL3J1bi5hY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgaW5qZWN0YWJsZSB9IGZyb20gXCJAZGVjb2hlcmUvY3J1Y2libGUvZGVjb3JhdG9yc1wiO1xuLy8gYmlvbWUtaWdub3JlIGxpbnQvc3R5bGUvdXNlSW1wb3J0VHlwZTogPERJPlxuaW1wb3J0IHsgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyB0eXBlIEFjdGlvbiwgQWN0aW9uUmVzcG9uc2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgdHlwZSBMb2dnZXIsIHNjcmliZSB9IGZyb20gXCJAZGVjb2hlcmUvc2NyaWJlXCI7XG4vLyBiaW9tZS1pZ25vcmUgbGludC9zdHlsZS91c2VJbXBvcnRUeXBlOiA8REk+XG5pbXBvcnQgeyBTb3VyY2VNb2R1bGVMb2FkZXIgfSBmcm9tIFwiLi9zb3VyY2UtbW9kdWxlLWxvYWRlci5qc1wiO1xuXG5leHBvcnQgdHlwZSBSdW5PcHRpb25zID0ge1xuXHQvKiogQWJzb2x1dGUgb3IgY3dkLXJlbGF0aXZlIHBhdGggdG8gYSBgLnRzYCBlbnRyeSBmaWxlLiAqL1xuXHRlbnRyeTogc3RyaW5nO1xuXHRjb25maWd1cmF0aW9uOiBzdHJpbmc7XG5cdC8qKiBBcmd1bWVudHMgZm9yd2FyZGVkIHRvIHRoZSBlbnRyeSAoYmluLXN0eWxlIGBwcm9jZXNzLmFyZ3Yuc2xpY2UoMilgKS4gKi9cblx0YXJncz86IHN0cmluZ1tdO1xufTtcblxuQGluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJ1bkFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbjxSdW5PcHRpb25zPiB7XG5cdHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXIgPSBzY3JpYmUubG9nZ2VyKFJ1bkFjdGlvbi5uYW1lKTtcblxuXHRwdWJsaWMgY29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSByZWFkb25seSBsb2FkZXI6IFNvdXJjZU1vZHVsZUxvYWRlcixcblx0XHRwcml2YXRlIHJlYWRvbmx5IHdvcmtzcGFjZTogV29ya3NwYWNlLFxuXHQpIHt9XG5cblx0cHVibGljIGFzeW5jIHJ1bihvcHRpb25zOiBSdW5PcHRpb25zKTogUHJvbWlzZTxBY3Rpb25SZXNwb25zZT4ge1xuXHRcdGNvbnN0IGVudHJ5ID0gb3B0aW9ucy5lbnRyeT8udHJpbSgpO1xuXHRcdGlmIChlbnRyeSA9PSBudWxsIHx8IGVudHJ5ID09PSBcIlwiKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJmbHV4IHJ1biByZXF1aXJlcyBhbiBlbnRyeSBmaWxlIHBhdGhcIik7XG5cdFx0fVxuXG5cdFx0Y29uc3QgYWJzb2x1dGVFbnRyeSA9IHBhdGgucmVzb2x2ZShlbnRyeSk7XG5cdFx0Y29uc3QgcGFzc3Rocm91Z2ggPSBvcHRpb25zLmFyZ3MgPz8gW107XG5cblx0XHRhd2FpdCB0aGlzLmxvYWRlci5jb25maWd1cmUoe1xuXHRcdFx0d29ya3NwYWNlOiB0aGlzLndvcmtzcGFjZSxcblx0XHRcdGJ1aWxkQ29uZmlnOiBvcHRpb25zLmNvbmZpZ3VyYXRpb24sXG5cdFx0fSk7XG5cdFx0dGhpcy5sb2FkZXIucmVnaXN0ZXJIb29rcygpO1xuXG5cdFx0Ly8gQmluLXN0eWxlIGVudHJpZXMgKGZvcmdlLnRzLCBmbHV4LnRzKSByZWFkIHByb2Nlc3MuYXJndi5zbGljZSgyKS5cblx0XHRwcm9jZXNzLmFyZ3YgPSBbcHJvY2Vzcy5leGVjUGF0aCwgYWJzb2x1dGVFbnRyeSwgLi4ucGFzc3Rocm91Z2hdO1xuXG5cdFx0dGhpcy5sb2dnZXIudHJhY2UoYFJ1bm5pbmcgJHthYnNvbHV0ZUVudHJ5fWApO1xuXHRcdGF3YWl0IHRoaXMubG9hZGVyLmltcG9ydEVudHJ5KGFic29sdXRlRW50cnkpO1xuXHRcdHJldHVybiBBY3Rpb25SZXNwb25zZS5TdWNjZXNzKFJ1bkFjdGlvbi5uYW1lKTtcblx0fVxufVxuIl0sIm5hbWVzIjpbInBhdGgiLCJpbmplY3RhYmxlIiwiV29ya3NwYWNlIiwiQWN0aW9uUmVzcG9uc2UiLCJzY3JpYmUiLCJTb3VyY2VNb2R1bGVMb2FkZXIiLCJSdW5BY3Rpb24iLCJsb2dnZXIiLCJuYW1lIiwibG9hZGVyIiwid29ya3NwYWNlIiwicnVuIiwib3B0aW9ucyIsImVudHJ5IiwidHJpbSIsIkVycm9yIiwiYWJzb2x1dGVFbnRyeSIsInJlc29sdmUiLCJwYXNzdGhyb3VnaCIsImFyZ3MiLCJjb25maWd1cmUiLCJidWlsZENvbmZpZyIsImNvbmZpZ3VyYXRpb24iLCJyZWdpc3Rlckhvb2tzIiwicHJvY2VzcyIsImFyZ3YiLCJleGVjUGF0aCIsInRyYWNlIiwiaW1wb3J0RW50cnkiLCJTdWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPQSxVQUFVLFlBQVk7QUFDN0IsU0FBU0MsVUFBVSxRQUFRLGdDQUFnQztBQUMzRCw4Q0FBOEM7QUFDOUMsU0FBU0MsU0FBUyxRQUFRLGlCQUFpQjtBQUMzQyxTQUFzQkMsY0FBYyxRQUFRLHNCQUFzQjtBQUNsRSxTQUFzQkMsTUFBTSxRQUFRLG1CQUFtQjtBQUN2RCw4Q0FBOEM7QUFDOUMsU0FBU0Msa0JBQWtCLFFBQVEsNEJBQTRCO0FBVy9ELE9BQU8sTUFBTUM7OztJQUNLQyxTQUFpQkgsT0FBT0csTUFBTSxDQUFDRCxVQUFVRSxJQUFJLEVBQUU7SUFFaEUsWUFDQyxBQUFpQkMsTUFBMEIsRUFDM0MsQUFBaUJDLFNBQW9CLENBQ3BDO2FBRmdCRCxTQUFBQTthQUNBQyxZQUFBQTtJQUNmO0lBRUgsTUFBYUMsSUFBSUMsT0FBbUIsRUFBMkI7UUFDOUQsTUFBTUMsUUFBUUQsUUFBUUMsS0FBSyxFQUFFQztRQUM3QixJQUFJRCxTQUFTLFFBQVFBLFVBQVUsSUFBSTtZQUNsQyxNQUFNLElBQUlFLE1BQU07UUFDakI7UUFFQSxNQUFNQyxnQkFBZ0JoQixLQUFLaUIsT0FBTyxDQUFDSjtRQUNuQyxNQUFNSyxjQUFjTixRQUFRTyxJQUFJLElBQUksRUFBRTtRQUV0QyxNQUFNLElBQUksQ0FBQ1YsTUFBTSxDQUFDVyxTQUFTLENBQUM7WUFDM0JWLFdBQVcsSUFBSSxDQUFDQSxTQUFTO1lBQ3pCVyxhQUFhVCxRQUFRVSxhQUFhO1FBQ25DO1FBQ0EsSUFBSSxDQUFDYixNQUFNLENBQUNjLGFBQWE7UUFFekIsb0VBQW9FO1FBQ3BFQyxRQUFRQyxJQUFJLEdBQUc7WUFBQ0QsUUFBUUUsUUFBUTtZQUFFVjtlQUFrQkU7U0FBWTtRQUVoRSxJQUFJLENBQUNYLE1BQU0sQ0FBQ29CLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRVgsZUFBZTtRQUM1QyxNQUFNLElBQUksQ0FBQ1AsTUFBTSxDQUFDbUIsV0FBVyxDQUFDWjtRQUM5QixPQUFPYixlQUFlMEIsT0FBTyxDQUFDdkIsVUFBVUUsSUFBSTtJQUM3QztBQUNEIn0=
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL3J1bi5hY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0YWJsZSB9IGZyb20gXCJAZGVjb2hlcmUvY3J1Y2libGUvZGVjb3JhdG9yc1wiO1xuLy8gYmlvbWUtaWdub3JlIGxpbnQvc3R5bGUvdXNlSW1wb3J0VHlwZTogPERJPlxuaW1wb3J0IHsgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyB0eXBlIEFjdGlvbiwgQWN0aW9uUmVzcG9uc2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgdHlwZSBMb2dnZXIsIHNjcmliZSB9IGZyb20gXCJAZGVjb2hlcmUvc2NyaWJlXCI7XG5pbXBvcnQgeyBmbHV4IH0gZnJvbSBcIi4vZmx1eC5qc1wiO1xuXG5leHBvcnQgdHlwZSBSdW5PcHRpb25zID0ge1xuXHQvKiogQWJzb2x1dGUgb3IgY3dkLXJlbGF0aXZlIHBhdGggdG8gYSBgLnRzYCBlbnRyeSBmaWxlLiAqL1xuXHRlbnRyeTogc3RyaW5nO1xuXHRjb25maWd1cmF0aW9uOiBzdHJpbmc7XG5cdC8qKiBBcmd1bWVudHMgZm9yd2FyZGVkIHRvIHRoZSBlbnRyeSAoYmluLXN0eWxlIGBwcm9jZXNzLmFyZ3Yuc2xpY2UoMilgKS4gKi9cblx0YXJncz86IHN0cmluZ1tdO1xufTtcblxuQGluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJ1bkFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbjxSdW5PcHRpb25zPiB7XG5cdHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXIgPSBzY3JpYmUubG9nZ2VyKFJ1bkFjdGlvbi5uYW1lKTtcblxuXHRwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB3b3Jrc3BhY2U6IFdvcmtzcGFjZSkge31cblxuXHRwdWJsaWMgYXN5bmMgcnVuKG9wdGlvbnM6IFJ1bk9wdGlvbnMpOiBQcm9taXNlPEFjdGlvblJlc3BvbnNlPiB7XG5cdFx0dGhpcy5sb2dnZXIudHJhY2UoYFJ1bm5pbmcgJHtvcHRpb25zLmVudHJ5fWApO1xuXHRcdGF3YWl0IGZsdXgucnVuKG9wdGlvbnMuZW50cnksIHtcblx0XHRcdGNvbmZpZ3VyYXRpb246IG9wdGlvbnMuY29uZmlndXJhdGlvbixcblx0XHRcdGFyZ3M6IG9wdGlvbnMuYXJncyxcblx0XHRcdHdvcmtzcGFjZTogdGhpcy53b3Jrc3BhY2UsXG5cdFx0fSk7XG5cdFx0cmV0dXJuIEFjdGlvblJlc3BvbnNlLlN1Y2Nlc3MoUnVuQWN0aW9uLm5hbWUpO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiaW5qZWN0YWJsZSIsIldvcmtzcGFjZSIsIkFjdGlvblJlc3BvbnNlIiwic2NyaWJlIiwiZmx1eCIsIlJ1bkFjdGlvbiIsImxvZ2dlciIsIm5hbWUiLCJ3b3Jrc3BhY2UiLCJydW4iLCJvcHRpb25zIiwidHJhY2UiLCJlbnRyeSIsImNvbmZpZ3VyYXRpb24iLCJhcmdzIiwiU3VjY2VzcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsU0FBU0EsVUFBVSxRQUFRLGdDQUFnQztBQUMzRCw4Q0FBOEM7QUFDOUMsU0FBU0MsU0FBUyxRQUFRLGlCQUFpQjtBQUMzQyxTQUFzQkMsY0FBYyxRQUFRLHNCQUFzQjtBQUNsRSxTQUFzQkMsTUFBTSxRQUFRLG1CQUFtQjtBQUN2RCxTQUFTQyxJQUFJLFFBQVEsWUFBWTtBQVdqQyxPQUFPLE1BQU1DOztJQUNLQyxTQUFpQkgsT0FBT0csTUFBTSxDQUFDRCxVQUFVRSxJQUFJLEVBQUU7SUFFaEUsWUFBbUIsQUFBaUJDLFNBQW9CLENBQUU7YUFBdEJBLFlBQUFBO0lBQXVCO0lBRTNELE1BQWFDLElBQUlDLE9BQW1CLEVBQTJCO1FBQzlELElBQUksQ0FBQ0osTUFBTSxDQUFDSyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUVELFFBQVFFLEtBQUssRUFBRTtRQUM1QyxNQUFNUixLQUFLSyxHQUFHLENBQUNDLFFBQVFFLEtBQUssRUFBRTtZQUM3QkMsZUFBZUgsUUFBUUcsYUFBYTtZQUNwQ0MsTUFBTUosUUFBUUksSUFBSTtZQUNsQk4sV0FBVyxJQUFJLENBQUNBLFNBQVM7UUFDMUI7UUFDQSxPQUFPTixlQUFlYSxPQUFPLENBQUNWLFVBQVVFLElBQUk7SUFDN0M7QUFDRCJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decohere/flux",
3
- "version": "0.0.1-dev.81",
3
+ "version": "0.0.1-dev.82",
4
4
  "description": "Hot module reload server for Node.js ESM applications",
5
5
  "keywords": [
6
6
  "typescript",
@@ -25,11 +25,11 @@
25
25
  "test": "echo \"Error: no test specified\" && exit 1"
26
26
  },
27
27
  "dependencies": {
28
- "@decohere/crucible": "0.0.1-dev.81",
29
- "@decohere/forge": "0.0.1-dev.81",
30
- "@decohere/mesh": "0.0.1-dev.81",
31
- "@decohere/nexus": "0.0.1-dev.81",
32
- "@decohere/scribe": "0.0.1-dev.81",
28
+ "@decohere/crucible": "0.0.1-dev.82",
29
+ "@decohere/forge": "0.0.1-dev.82",
30
+ "@decohere/mesh": "0.0.1-dev.82",
31
+ "@decohere/nexus": "0.0.1-dev.82",
32
+ "@decohere/scribe": "0.0.1-dev.82",
33
33
  "commander": "^13.1.0",
34
34
  "rxjs": "^7.8.2"
35
35
  },
@@ -0,0 +1,43 @@
1
+ import type { Workspace } from "@decohere/mesh";
2
+ import { HotReloadServer } from "./hot-reload-server.js";
3
+ export type FluxRunOptions = {
4
+ /** Mesh/Forge configuration name. Defaults to `debug` (`--configuration`). */
5
+ configuration?: string;
6
+ /** Arguments forwarded to the entry (bin-style `process.argv.slice(2)`). */
7
+ args?: string[];
8
+ /**
9
+ * Pre-built Workspace instead of `WorkspaceFactory`.
10
+ * Useful in tests to skip filesystem discovery.
11
+ */
12
+ workspace?: Workspace;
13
+ };
14
+ export type FluxServeOptions = {
15
+ /** Mesh/Forge configuration name. Defaults to `debug` (`--configuration`). */
16
+ configuration?: string;
17
+ /** Name of the project to serve. Defaults to the first project in the workspace. */
18
+ project?: string;
19
+ /**
20
+ * Multiple Flux app package names to boot in one process (directory slice).
21
+ * When set, takes precedence over {@link project}.
22
+ */
23
+ projects?: readonly string[];
24
+ /**
25
+ * Pre-built Workspace instead of `WorkspaceFactory`.
26
+ * Useful in tests to skip filesystem discovery.
27
+ */
28
+ workspace?: Workspace;
29
+ /**
30
+ * Quiet window in milliseconds after the last affecting save before a reboot.
31
+ * Raise this for agent save trains.
32
+ */
33
+ rebootDebounceMs?: number;
34
+ };
35
+ declare function run(entry: string, options?: FluxRunOptions): Promise<unknown>;
36
+ declare function serve(options?: FluxServeOptions): Promise<HotReloadServer>;
37
+ declare function dispose(): void;
38
+ export declare const flux: {
39
+ run: typeof run;
40
+ serve: typeof serve;
41
+ dispose: typeof dispose;
42
+ };
43
+ export {};
@@ -1,4 +1,6 @@
1
1
  export { DeferredScriptRunner } from "./deferred-script-runner.js";
2
+ export type { FluxRunOptions, FluxServeOptions } from "./flux.js";
3
+ export { flux } from "./flux.js";
2
4
  export { FluxModule } from "./flux.module.js";
3
5
  export type { HotReloadServerOptions } from "./hot-reload-server.js";
4
6
  export { DEFAULT_REBOOT_DEBOUNCE_MS, HotReloadServer } from "./hot-reload-server.js";
@@ -1,6 +1,5 @@
1
1
  import { Workspace } from "@decohere/mesh";
2
2
  import { type Action, ActionResponse } from "@decohere/nexus/cli";
3
- import { SourceModuleLoader } from "./source-module-loader.js";
4
3
  export type RunOptions = {
5
4
  /** Absolute or cwd-relative path to a `.ts` entry file. */
6
5
  entry: string;
@@ -9,9 +8,8 @@ export type RunOptions = {
9
8
  args?: string[];
10
9
  };
11
10
  export declare class RunAction implements Action<RunOptions> {
12
- private readonly loader;
13
11
  private readonly workspace;
14
12
  private readonly logger;
15
- constructor(loader: SourceModuleLoader, workspace: Workspace);
13
+ constructor(workspace: Workspace);
16
14
  run(options: RunOptions): Promise<ActionResponse>;
17
15
  }