@decohere/flux 0.0.1-dev.79 → 0.0.1-dev.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/commonjs/src/ember.command.js +27 -0
- package/commonjs/src/ember.module.js +37 -0
- package/commonjs/src/hot-module-hooks.js +47 -0
- package/commonjs/src/hot-reload-server.js +160 -293
- package/commonjs/src/index.js +32 -33
- package/commonjs/src/serve.action.js +10 -94
- package/commonjs/src/serve.command.js +4 -36
- package/commonjs/src/serve.js +36 -0
- package/commonjs/src/workspace-serve.action.js +59 -0
- package/es6/src/ember.command.js +17 -0
- package/es6/src/ember.module.js +19 -0
- package/es6/src/hot-module-hooks.js +26 -0
- package/es6/src/hot-reload-server.js +117 -280
- package/es6/src/index.js +7 -6
- package/es6/src/serve.action.js +10 -92
- package/es6/src/serve.command.js +5 -37
- package/es6/src/serve.js +32 -0
- package/es6/src/workspace-serve.action.js +45 -0
- package/package.json +12 -8
- package/types/src/{flux.command.d.ts → ember.command.d.ts} +1 -1
- package/types/src/ember.module.d.ts +22 -0
- package/types/src/hot-module-hooks.d.ts +5 -0
- package/types/src/hot-reload-server.d.ts +22 -62
- package/types/src/index.d.ts +8 -8
- package/types/src/serve.action.d.ts +2 -17
- package/types/src/serve.command.d.ts +2 -7
- package/types/src/serve.d.ts +1 -0
- package/types/src/workspace-serve.action.d.ts +11 -0
- package/commonjs/src/deferred-script-runner.js +0 -58
- package/commonjs/src/flux.command.js +0 -29
- package/commonjs/src/flux.module.js +0 -38
- package/commonjs/src/rewrite-serve-specifier.js +0 -46
- package/commonjs/src/run.action.js +0 -71
- package/commonjs/src/run.command.js +0 -67
- package/commonjs/src/slice-serve.js +0 -132
- package/commonjs/src/source-module-loader.js +0 -216
- package/es6/src/deferred-script-runner.js +0 -48
- package/es6/src/flux.command.js +0 -19
- package/es6/src/flux.module.js +0 -28
- package/es6/src/rewrite-serve-specifier.js +0 -40
- package/es6/src/run.action.js +0 -58
- package/es6/src/run.command.js +0 -57
- package/es6/src/slice-serve.js +0 -107
- package/es6/src/source-module-loader.js +0 -160
- package/types/src/deferred-script-runner.d.ts +0 -18
- package/types/src/flux.module.d.ts +0 -16
- package/types/src/rewrite-serve-specifier.d.ts +0 -13
- package/types/src/run.action.d.ts +0 -17
- package/types/src/run.command.d.ts +0 -11
- package/types/src/slice-serve.d.ts +0 -52
- package/types/src/source-module-loader.d.ts +0 -49
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "FluxCommand", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return FluxCommand;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _cli = require("@decohere/nexus/cli");
|
|
12
|
-
const _runcommand = require("./run.command.js");
|
|
13
|
-
const _servecommand = require("./serve.command.js");
|
|
14
|
-
class FluxCommand extends _cli.DecohereCommand {
|
|
15
|
-
constructor(commands, handler){
|
|
16
|
-
super(FluxCommand);
|
|
17
|
-
this.exitOverride();
|
|
18
|
-
this.registerSubcommand({
|
|
19
|
-
serve: _servecommand.ServeCommand,
|
|
20
|
-
run: _runcommand.RunCommand,
|
|
21
|
-
...commands
|
|
22
|
-
}, handler);
|
|
23
|
-
}
|
|
24
|
-
run(_actions, _options) {
|
|
25
|
-
return this.help();
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL2ZsdXguY29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFjdGlvbnMgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHtcblx0dHlwZSBDb21tYW5kSGFuZGxlcixcblx0dHlwZSBDb21tYW5kUmVzcG9uc2UsXG5cdHR5cGUgQ29tbWFuZFR5cGUsXG5cdERlY29oZXJlQ29tbWFuZCxcbn0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jbGlcIjtcbmltcG9ydCB7IFJ1bkNvbW1hbmQgfSBmcm9tIFwiLi9ydW4uY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgU2VydmVDb21tYW5kIH0gZnJvbSBcIi4vc2VydmUuY29tbWFuZC5qc1wiO1xuXG5leHBvcnQgY2xhc3MgRmx1eENvbW1hbmQgZXh0ZW5kcyBEZWNvaGVyZUNvbW1hbmQge1xuXHRwdWJsaWMgY29uc3RydWN0b3IoY29tbWFuZHM6IFJlY29yZDxzdHJpbmcsIENvbW1hbmRUeXBlPiwgaGFuZGxlcjogQ29tbWFuZEhhbmRsZXIpIHtcblx0XHRzdXBlcihGbHV4Q29tbWFuZCk7XG5cdFx0dGhpcy5leGl0T3ZlcnJpZGUoKTtcblx0XHR0aGlzLnJlZ2lzdGVyU3ViY29tbWFuZCh7IHNlcnZlOiBTZXJ2ZUNvbW1hbmQsIHJ1bjogUnVuQ29tbWFuZCwgLi4uY29tbWFuZHMgfSwgaGFuZGxlcik7XG5cdH1cblxuXHRwdWJsaWMgcnVuKF9hY3Rpb25zOiBBY3Rpb25zLCBfb3B0aW9uczogbmV2ZXIpOiBQcm9taXNlPENvbW1hbmRSZXNwb25zZT4ge1xuXHRcdHJldHVybiB0aGlzLmhlbHAoKTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIkZsdXhDb21tYW5kIiwiRGVjb2hlcmVDb21tYW5kIiwiY29tbWFuZHMiLCJoYW5kbGVyIiwiZXhpdE92ZXJyaWRlIiwicmVnaXN0ZXJTdWJjb21tYW5kIiwic2VydmUiLCJTZXJ2ZUNvbW1hbmQiLCJydW4iLCJSdW5Db21tYW5kIiwiX2FjdGlvbnMiLCJfb3B0aW9ucyIsImhlbHAiXSwibWFwcGluZ3MiOiI7Ozs7K0JBVWFBOzs7ZUFBQUE7OztxQkFKTjs0QkFDb0I7OEJBQ0U7QUFFdEIsTUFBTUEsb0JBQW9CQyxvQkFBZTtJQUMvQyxZQUFtQkMsUUFBcUMsRUFBRUMsT0FBdUIsQ0FBRTtRQUNsRixLQUFLLENBQUNIO1FBQ04sSUFBSSxDQUFDSSxZQUFZO1FBQ2pCLElBQUksQ0FBQ0Msa0JBQWtCLENBQUM7WUFBRUMsT0FBT0MsMEJBQVk7WUFBRUMsS0FBS0Msc0JBQVU7WUFBRSxHQUFHUCxRQUFRO1FBQUMsR0FBR0M7SUFDaEY7SUFFT0ssSUFBSUUsUUFBaUIsRUFBRUMsUUFBZSxFQUE0QjtRQUN4RSxPQUFPLElBQUksQ0FBQ0MsSUFBSTtJQUNqQjtBQUNEIn0=
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "FluxModule", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return FluxModule;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _mesh = require("@decohere/mesh");
|
|
12
|
-
const _cli = require("@decohere/nexus/cli");
|
|
13
|
-
const _deferredscriptrunner = require("./deferred-script-runner.js");
|
|
14
|
-
const _fluxcommand = require("./flux.command.js");
|
|
15
|
-
const _hotreloadserver = require("./hot-reload-server.js");
|
|
16
|
-
const _runaction = require("./run.action.js");
|
|
17
|
-
const _serveaction = require("./serve.action.js");
|
|
18
|
-
const _sourcemoduleloader = require("./source-module-loader.js");
|
|
19
|
-
class FluxModule extends _cli.ModuleManifest {
|
|
20
|
-
id = "flux";
|
|
21
|
-
command = _fluxcommand.FluxCommand;
|
|
22
|
-
actions = {
|
|
23
|
-
serve: _serveaction.ServeAction,
|
|
24
|
-
run: _runaction.RunAction
|
|
25
|
-
};
|
|
26
|
-
registerServices(builder) {
|
|
27
|
-
builder.registerSingleton(_sourcemoduleloader.SourceModuleLoader);
|
|
28
|
-
builder.registerSingleton(_hotreloadserver.HotReloadServer);
|
|
29
|
-
builder.registerSingleton(_deferredscriptrunner.DeferredScriptRunner);
|
|
30
|
-
}
|
|
31
|
-
createWorkspace(options) {
|
|
32
|
-
return _mesh.WorkspaceFactory.create({
|
|
33
|
-
configFile: options.configFile
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL2ZsdXgubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdvcmtzcGFjZUZhY3RvcnkgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB0eXBlIHsgV29ya3NwYWNlRmFjdG9yeU9wdGlvbnMgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgTW9kdWxlTWFuaWZlc3QgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHR5cGUgeyBDb250YWluZXJCdWlsZGVyIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jb21wb3NpdGlvblwiO1xuaW1wb3J0IHsgRGVmZXJyZWRTY3JpcHRSdW5uZXIgfSBmcm9tIFwiLi9kZWZlcnJlZC1zY3JpcHQtcnVubmVyLmpzXCI7XG5pbXBvcnQgeyBGbHV4Q29tbWFuZCB9IGZyb20gXCIuL2ZsdXguY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgSG90UmVsb2FkU2VydmVyIH0gZnJvbSBcIi4vaG90LXJlbG9hZC1zZXJ2ZXIuanNcIjtcbmltcG9ydCB7IFJ1bkFjdGlvbiB9IGZyb20gXCIuL3J1bi5hY3Rpb24uanNcIjtcbmltcG9ydCB7IFNlcnZlQWN0aW9uIH0gZnJvbSBcIi4vc2VydmUuYWN0aW9uLmpzXCI7XG5pbXBvcnQgeyBTb3VyY2VNb2R1bGVMb2FkZXIgfSBmcm9tIFwiLi9zb3VyY2UtbW9kdWxlLWxvYWRlci5qc1wiO1xuXG5leHBvcnQgY2xhc3MgRmx1eE1vZHVsZSBleHRlbmRzIE1vZHVsZU1hbmlmZXN0IHtcblx0cHVibGljIHJlYWRvbmx5IGlkID0gXCJmbHV4XCI7XG5cdHB1YmxpYyByZWFkb25seSBjb21tYW5kID0gRmx1eENvbW1hbmQ7XG5cdHB1YmxpYyByZWFkb25seSBhY3Rpb25zID0ge1xuXHRcdHNlcnZlOiBTZXJ2ZUFjdGlvbixcblx0XHRydW46IFJ1bkFjdGlvbixcblx0fTtcblxuXHRwdWJsaWMgcmVnaXN0ZXJTZXJ2aWNlcyhidWlsZGVyOiBDb250YWluZXJCdWlsZGVyKSB7XG5cdFx0YnVpbGRlci5yZWdpc3RlclNpbmdsZXRvbihTb3VyY2VNb2R1bGVMb2FkZXIpO1xuXHRcdGJ1aWxkZXIucmVnaXN0ZXJTaW5nbGV0b24oSG90UmVsb2FkU2VydmVyKTtcblx0XHRidWlsZGVyLnJlZ2lzdGVyU2luZ2xldG9uKERlZmVycmVkU2NyaXB0UnVubmVyKTtcblx0fVxuXG5cdHB1YmxpYyBvdmVycmlkZSBjcmVhdGVXb3Jrc3BhY2Uob3B0aW9uczogV29ya3NwYWNlRmFjdG9yeU9wdGlvbnMpIHtcblx0XHRyZXR1cm4gV29ya3NwYWNlRmFjdG9yeS5jcmVhdGUoeyBjb25maWdGaWxlOiBvcHRpb25zLmNvbmZpZ0ZpbGUgfSk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJGbHV4TW9kdWxlIiwiTW9kdWxlTWFuaWZlc3QiLCJpZCIsImNvbW1hbmQiLCJGbHV4Q29tbWFuZCIsImFjdGlvbnMiLCJzZXJ2ZSIsIlNlcnZlQWN0aW9uIiwicnVuIiwiUnVuQWN0aW9uIiwicmVnaXN0ZXJTZXJ2aWNlcyIsImJ1aWxkZXIiLCJyZWdpc3RlclNpbmdsZXRvbiIsIlNvdXJjZU1vZHVsZUxvYWRlciIsIkhvdFJlbG9hZFNlcnZlciIsIkRlZmVycmVkU2NyaXB0UnVubmVyIiwiY3JlYXRlV29ya3NwYWNlIiwib3B0aW9ucyIsIldvcmtzcGFjZUZhY3RvcnkiLCJjcmVhdGUiLCJjb25maWdGaWxlIl0sIm1hcHBpbmdzIjoiOzs7OytCQVdhQTs7O2VBQUFBOzs7c0JBWG9CO3FCQUVGO3NDQUVNOzZCQUNUO2lDQUNJOzJCQUNOOzZCQUNFO29DQUNPO0FBRTVCLE1BQU1BLG1CQUFtQkMsbUJBQWM7SUFDN0JDLEtBQUssT0FBTztJQUNaQyxVQUFVQyx3QkFBVyxDQUFDO0lBQ3RCQyxVQUFVO1FBQ3pCQyxPQUFPQyx3QkFBVztRQUNsQkMsS0FBS0Msb0JBQVM7SUFDZixFQUFFO0lBRUtDLGlCQUFpQkMsT0FBeUIsRUFBRTtRQUNsREEsUUFBUUMsaUJBQWlCLENBQUNDLHNDQUFrQjtRQUM1Q0YsUUFBUUMsaUJBQWlCLENBQUNFLGdDQUFlO1FBQ3pDSCxRQUFRQyxpQkFBaUIsQ0FBQ0csMENBQW9CO0lBQy9DO0lBRWdCQyxnQkFBZ0JDLE9BQWdDLEVBQUU7UUFDakUsT0FBT0Msc0JBQWdCLENBQUNDLE1BQU0sQ0FBQztZQUFFQyxZQUFZSCxRQUFRRyxVQUFVO1FBQUM7SUFDakU7QUFDRCJ9
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "rewriteServeSpecifier", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return rewriteServeSpecifier;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _nodeurl = require("node:url");
|
|
12
|
-
const _mesh = require("@decohere/mesh");
|
|
13
|
-
function rewriteServeSpecifier(options) {
|
|
14
|
-
const { specifier, parentUrl, isWatchedTs, resolveBare, versionFileUrl } = options;
|
|
15
|
-
const relativeTs = resolveRelativeWatchedTs(specifier, parentUrl, isWatchedTs);
|
|
16
|
-
if (relativeTs != null) {
|
|
17
|
-
return versionFileUrl((0, _nodeurl.pathToFileURL)(relativeTs).toString());
|
|
18
|
-
}
|
|
19
|
-
const bareTarget = resolveBare(specifier);
|
|
20
|
-
if (bareTarget != null && isWatchedTs(bareTarget)) {
|
|
21
|
-
return versionFileUrl((0, _nodeurl.pathToFileURL)(bareTarget).toString());
|
|
22
|
-
}
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
function resolveRelativeWatchedTs(specifier, parentUrl, isWatchedTs) {
|
|
26
|
-
if (_mesh.packageAliases.isBareSpecifier(specifier)) return null;
|
|
27
|
-
if (!(specifier.startsWith(".") || specifier.startsWith("/"))) return null;
|
|
28
|
-
const parentClean = parentUrl.split("?")[0];
|
|
29
|
-
if (parentClean == null || parentClean === "") return null;
|
|
30
|
-
let resolved;
|
|
31
|
-
try {
|
|
32
|
-
resolved = new URL(specifier, parentClean);
|
|
33
|
-
} catch {
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
if (resolved.protocol !== "file:") return null;
|
|
37
|
-
let filePath = (0, _nodeurl.fileURLToPath)(resolved);
|
|
38
|
-
if (filePath.endsWith(".js")) {
|
|
39
|
-
filePath = `${filePath.slice(0, -3)}.ts`;
|
|
40
|
-
} else if (!filePath.endsWith(".ts")) {
|
|
41
|
-
filePath = `${filePath}.ts`;
|
|
42
|
-
}
|
|
43
|
-
return isWatchedTs(filePath) ? filePath : null;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL3Jld3JpdGUtc2VydmUtc3BlY2lmaWVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbGVVUkxUb1BhdGgsIHBhdGhUb0ZpbGVVUkwgfSBmcm9tIFwibm9kZTp1cmxcIjtcbmltcG9ydCB7IHBhY2thZ2VBbGlhc2VzIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5cbmV4cG9ydCB0eXBlIFJld3JpdGVTZXJ2ZVNwZWNpZmllck9wdGlvbnMgPSB7XG5cdHNwZWNpZmllcjogc3RyaW5nO1xuXHRwYXJlbnRVcmw6IHN0cmluZztcblx0aXNXYXRjaGVkVHM6IChhYnNvbHV0ZVBhdGg6IHN0cmluZykgPT4gYm9vbGVhbjtcblx0cmVzb2x2ZUJhcmU6IChzcGVjaWZpZXI6IHN0cmluZykgPT4gc3RyaW5nIHwgbnVsbDtcblx0dmVyc2lvbkZpbGVVcmw6IChmaWxlVXJsOiBzdHJpbmcpID0+IHN0cmluZztcbn07XG5cbi8qKlxuICogTWFwIGEgcmVzb2x2ZS1ob29rIHNwZWNpZmllciB0byBhIHZlcnNpb25lZCB3YXRjaGVkIGAudHNgIGZpbGUgVVJMLlxuICogQ292ZXJzIHJlbGF0aXZlIGAuanNgIC8gYC50c2AgLyBleHRlbnNpb25sZXNzIGltcG9ydHMgYW5kIGJhcmUgd29ya3NwYWNlXG4gKiBwYWNrYWdlIG5hbWVzIChkeW5hbWljIGBpbXBvcnQoKWAgbmV2ZXIgZ29lcyB0aHJvdWdoIFNXQyBwYXRoIHJld3JpdGUpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmV3cml0ZVNlcnZlU3BlY2lmaWVyKG9wdGlvbnM6IFJld3JpdGVTZXJ2ZVNwZWNpZmllck9wdGlvbnMpOiBzdHJpbmcgfCBudWxsIHtcblx0Y29uc3QgeyBzcGVjaWZpZXIsIHBhcmVudFVybCwgaXNXYXRjaGVkVHMsIHJlc29sdmVCYXJlLCB2ZXJzaW9uRmlsZVVybCB9ID0gb3B0aW9ucztcblxuXHRjb25zdCByZWxhdGl2ZVRzID0gcmVzb2x2ZVJlbGF0aXZlV2F0Y2hlZFRzKHNwZWNpZmllciwgcGFyZW50VXJsLCBpc1dhdGNoZWRUcyk7XG5cdGlmIChyZWxhdGl2ZVRzICE9IG51bGwpIHtcblx0XHRyZXR1cm4gdmVyc2lvbkZpbGVVcmwocGF0aFRvRmlsZVVSTChyZWxhdGl2ZVRzKS50b1N0cmluZygpKTtcblx0fVxuXG5cdGNvbnN0IGJhcmVUYXJnZXQgPSByZXNvbHZlQmFyZShzcGVjaWZpZXIpO1xuXHRpZiAoYmFyZVRhcmdldCAhPSBudWxsICYmIGlzV2F0Y2hlZFRzKGJhcmVUYXJnZXQpKSB7XG5cdFx0cmV0dXJuIHZlcnNpb25GaWxlVXJsKHBhdGhUb0ZpbGVVUkwoYmFyZVRhcmdldCkudG9TdHJpbmcoKSk7XG5cdH1cblxuXHRyZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZVJlbGF0aXZlV2F0Y2hlZFRzKFxuXHRzcGVjaWZpZXI6IHN0cmluZyxcblx0cGFyZW50VXJsOiBzdHJpbmcsXG5cdGlzV2F0Y2hlZFRzOiAoYWJzb2x1dGVQYXRoOiBzdHJpbmcpID0+IGJvb2xlYW4sXG4pOiBzdHJpbmcgfCBudWxsIHtcblx0aWYgKHBhY2thZ2VBbGlhc2VzLmlzQmFyZVNwZWNpZmllcihzcGVjaWZpZXIpKSByZXR1cm4gbnVsbDtcblx0aWYgKCEoc3BlY2lmaWVyLnN0YXJ0c1dpdGgoXCIuXCIpIHx8IHNwZWNpZmllci5zdGFydHNXaXRoKFwiL1wiKSkpIHJldHVybiBudWxsO1xuXG5cdGNvbnN0IHBhcmVudENsZWFuID0gcGFyZW50VXJsLnNwbGl0KFwiP1wiKVswXTtcblx0aWYgKHBhcmVudENsZWFuID09IG51bGwgfHwgcGFyZW50Q2xlYW4gPT09IFwiXCIpIHJldHVybiBudWxsO1xuXG5cdGxldCByZXNvbHZlZDogVVJMO1xuXHR0cnkge1xuXHRcdHJlc29sdmVkID0gbmV3IFVSTChzcGVjaWZpZXIsIHBhcmVudENsZWFuKTtcblx0fSBjYXRjaCB7XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblx0aWYgKHJlc29sdmVkLnByb3RvY29sICE9PSBcImZpbGU6XCIpIHJldHVybiBudWxsO1xuXG5cdGxldCBmaWxlUGF0aCA9IGZpbGVVUkxUb1BhdGgocmVzb2x2ZWQpO1xuXHRpZiAoZmlsZVBhdGguZW5kc1dpdGgoXCIuanNcIikpIHtcblx0XHRmaWxlUGF0aCA9IGAke2ZpbGVQYXRoLnNsaWNlKDAsIC0zKX0udHNgO1xuXHR9IGVsc2UgaWYgKCFmaWxlUGF0aC5lbmRzV2l0aChcIi50c1wiKSkge1xuXHRcdGZpbGVQYXRoID0gYCR7ZmlsZVBhdGh9LnRzYDtcblx0fVxuXG5cdHJldHVybiBpc1dhdGNoZWRUcyhmaWxlUGF0aCkgPyBmaWxlUGF0aCA6IG51bGw7XG59XG4iXSwibmFtZXMiOlsicmV3cml0ZVNlcnZlU3BlY2lmaWVyIiwib3B0aW9ucyIsInNwZWNpZmllciIsInBhcmVudFVybCIsImlzV2F0Y2hlZFRzIiwicmVzb2x2ZUJhcmUiLCJ2ZXJzaW9uRmlsZVVybCIsInJlbGF0aXZlVHMiLCJyZXNvbHZlUmVsYXRpdmVXYXRjaGVkVHMiLCJwYXRoVG9GaWxlVVJMIiwidG9TdHJpbmciLCJiYXJlVGFyZ2V0IiwicGFja2FnZUFsaWFzZXMiLCJpc0JhcmVTcGVjaWZpZXIiLCJzdGFydHNXaXRoIiwicGFyZW50Q2xlYW4iLCJzcGxpdCIsInJlc29sdmVkIiwiVVJMIiwicHJvdG9jb2wiLCJmaWxlUGF0aCIsImZpbGVVUkxUb1BhdGgiLCJlbmRzV2l0aCIsInNsaWNlIl0sIm1hcHBpbmdzIjoiOzs7OytCQWdCZ0JBOzs7ZUFBQUE7Ozt5QkFoQjZCO3NCQUNkO0FBZXhCLFNBQVNBLHNCQUFzQkMsT0FBcUM7SUFDMUUsTUFBTSxFQUFFQyxTQUFTLEVBQUVDLFNBQVMsRUFBRUMsV0FBVyxFQUFFQyxXQUFXLEVBQUVDLGNBQWMsRUFBRSxHQUFHTDtJQUUzRSxNQUFNTSxhQUFhQyx5QkFBeUJOLFdBQVdDLFdBQVdDO0lBQ2xFLElBQUlHLGNBQWMsTUFBTTtRQUN2QixPQUFPRCxlQUFlRyxJQUFBQSxzQkFBYSxFQUFDRixZQUFZRyxRQUFRO0lBQ3pEO0lBRUEsTUFBTUMsYUFBYU4sWUFBWUg7SUFDL0IsSUFBSVMsY0FBYyxRQUFRUCxZQUFZTyxhQUFhO1FBQ2xELE9BQU9MLGVBQWVHLElBQUFBLHNCQUFhLEVBQUNFLFlBQVlELFFBQVE7SUFDekQ7SUFFQSxPQUFPO0FBQ1I7QUFFQSxTQUFTRix5QkFDUk4sU0FBaUIsRUFDakJDLFNBQWlCLEVBQ2pCQyxXQUE4QztJQUU5QyxJQUFJUSxvQkFBYyxDQUFDQyxlQUFlLENBQUNYLFlBQVksT0FBTztJQUN0RCxJQUFJLENBQUVBLENBQUFBLFVBQVVZLFVBQVUsQ0FBQyxRQUFRWixVQUFVWSxVQUFVLENBQUMsSUFBRyxHQUFJLE9BQU87SUFFdEUsTUFBTUMsY0FBY1osVUFBVWEsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO0lBQzNDLElBQUlELGVBQWUsUUFBUUEsZ0JBQWdCLElBQUksT0FBTztJQUV0RCxJQUFJRTtJQUNKLElBQUk7UUFDSEEsV0FBVyxJQUFJQyxJQUFJaEIsV0FBV2E7SUFDL0IsRUFBRSxPQUFNO1FBQ1AsT0FBTztJQUNSO0lBQ0EsSUFBSUUsU0FBU0UsUUFBUSxLQUFLLFNBQVMsT0FBTztJQUUxQyxJQUFJQyxXQUFXQyxJQUFBQSxzQkFBYSxFQUFDSjtJQUM3QixJQUFJRyxTQUFTRSxRQUFRLENBQUMsUUFBUTtRQUM3QkYsV0FBVyxHQUFHQSxTQUFTRyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ3pDLE9BQU8sSUFBSSxDQUFDSCxTQUFTRSxRQUFRLENBQUMsUUFBUTtRQUNyQ0YsV0FBVyxHQUFHQSxTQUFTLEdBQUcsQ0FBQztJQUM1QjtJQUVBLE9BQU9oQixZQUFZZ0IsWUFBWUEsV0FBVztBQUMzQyJ9
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "RunAction", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return RunAction;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path"));
|
|
12
|
-
const _decorators = require("@decohere/crucible/decorators");
|
|
13
|
-
const _mesh = require("@decohere/mesh");
|
|
14
|
-
const _cli = require("@decohere/nexus/cli");
|
|
15
|
-
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
|
-
}
|
|
22
|
-
function _ts_decorate(decorators, target, key, desc) {
|
|
23
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
24
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
25
|
-
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
26
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
27
|
-
}
|
|
28
|
-
function _ts_metadata(k, v) {
|
|
29
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
30
|
-
}
|
|
31
|
-
class RunAction {
|
|
32
|
-
loader;
|
|
33
|
-
workspace;
|
|
34
|
-
logger = _scribe.scribe.logger(RunAction.name);
|
|
35
|
-
constructor(loader, workspace){
|
|
36
|
-
this.loader = loader;
|
|
37
|
-
this.workspace = workspace;
|
|
38
|
-
}
|
|
39
|
-
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
|
|
49
|
-
});
|
|
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
|
-
return _cli.ActionResponse.Success(RunAction.name);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
RunAction = _ts_decorate([
|
|
63
|
-
(0, _decorators.injectable)(),
|
|
64
|
-
_ts_metadata("design:type", Function),
|
|
65
|
-
_ts_metadata("design:paramtypes", [
|
|
66
|
-
typeof _sourcemoduleloader.SourceModuleLoader === "undefined" ? Object : _sourcemoduleloader.SourceModuleLoader,
|
|
67
|
-
typeof _mesh.Workspace === "undefined" ? Object : _mesh.Workspace
|
|
68
|
-
])
|
|
69
|
-
], RunAction);
|
|
70
|
-
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL3J1bi5hY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgaW5qZWN0YWJsZSB9IGZyb20gXCJAZGVjb2hlcmUvY3J1Y2libGUvZGVjb3JhdG9yc1wiO1xuLy8gYmlvbWUtaWdub3JlIGxpbnQvc3R5bGUvdXNlSW1wb3J0VHlwZTogPERJPlxuaW1wb3J0IHsgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyB0eXBlIEFjdGlvbiwgQWN0aW9uUmVzcG9uc2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgdHlwZSBMb2dnZXIsIHNjcmliZSB9IGZyb20gXCJAZGVjb2hlcmUvc2NyaWJlXCI7XG4vLyBiaW9tZS1pZ25vcmUgbGludC9zdHlsZS91c2VJbXBvcnRUeXBlOiA8REk+XG5pbXBvcnQgeyBTb3VyY2VNb2R1bGVMb2FkZXIgfSBmcm9tIFwiLi9zb3VyY2UtbW9kdWxlLWxvYWRlci5qc1wiO1xuXG5leHBvcnQgdHlwZSBSdW5PcHRpb25zID0ge1xuXHQvKiogQWJzb2x1dGUgb3IgY3dkLXJlbGF0aXZlIHBhdGggdG8gYSBgLnRzYCBlbnRyeSBmaWxlLiAqL1xuXHRlbnRyeTogc3RyaW5nO1xuXHRjb25maWd1cmF0aW9uOiBzdHJpbmc7XG5cdC8qKiBBcmd1bWVudHMgZm9yd2FyZGVkIHRvIHRoZSBlbnRyeSAoYmluLXN0eWxlIGBwcm9jZXNzLmFyZ3Yuc2xpY2UoMilgKS4gKi9cblx0YXJncz86IHN0cmluZ1tdO1xufTtcblxuQGluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJ1bkFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbjxSdW5PcHRpb25zPiB7XG5cdHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXIgPSBzY3JpYmUubG9nZ2VyKFJ1bkFjdGlvbi5uYW1lKTtcblxuXHRwdWJsaWMgY29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSByZWFkb25seSBsb2FkZXI6IFNvdXJjZU1vZHVsZUxvYWRlcixcblx0XHRwcml2YXRlIHJlYWRvbmx5IHdvcmtzcGFjZTogV29ya3NwYWNlLFxuXHQpIHt9XG5cblx0cHVibGljIGFzeW5jIHJ1bihvcHRpb25zOiBSdW5PcHRpb25zKTogUHJvbWlzZTxBY3Rpb25SZXNwb25zZT4ge1xuXHRcdGNvbnN0IGVudHJ5ID0gb3B0aW9ucy5lbnRyeT8udHJpbSgpO1xuXHRcdGlmIChlbnRyeSA9PSBudWxsIHx8IGVudHJ5ID09PSBcIlwiKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJmbHV4IHJ1biByZXF1aXJlcyBhbiBlbnRyeSBmaWxlIHBhdGhcIik7XG5cdFx0fVxuXG5cdFx0Y29uc3QgYWJzb2x1dGVFbnRyeSA9IHBhdGgucmVzb2x2ZShlbnRyeSk7XG5cdFx0Y29uc3QgcGFzc3Rocm91Z2ggPSBvcHRpb25zLmFyZ3MgPz8gW107XG5cblx0XHRhd2FpdCB0aGlzLmxvYWRlci5jb25maWd1cmUoe1xuXHRcdFx0d29ya3NwYWNlOiB0aGlzLndvcmtzcGFjZSxcblx0XHRcdGJ1aWxkQ29uZmlnOiBvcHRpb25zLmNvbmZpZ3VyYXRpb24sXG5cdFx0fSk7XG5cdFx0dGhpcy5sb2FkZXIucmVnaXN0ZXJIb29rcygpO1xuXG5cdFx0Ly8gQmluLXN0eWxlIGVudHJpZXMgKGZvcmdlLnRzLCBmbHV4LnRzKSByZWFkIHByb2Nlc3MuYXJndi5zbGljZSgyKS5cblx0XHRwcm9jZXNzLmFyZ3YgPSBbcHJvY2Vzcy5leGVjUGF0aCwgYWJzb2x1dGVFbnRyeSwgLi4ucGFzc3Rocm91Z2hdO1xuXG5cdFx0dGhpcy5sb2dnZXIudHJhY2UoYFJ1bm5pbmcgJHthYnNvbHV0ZUVudHJ5fWApO1xuXHRcdGF3YWl0IHRoaXMubG9hZGVyLmltcG9ydEVudHJ5KGFic29sdXRlRW50cnkpO1xuXHRcdHJldHVybiBBY3Rpb25SZXNwb25zZS5TdWNjZXNzKFJ1bkFjdGlvbi5uYW1lKTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIlJ1bkFjdGlvbiIsImxvZ2dlciIsInNjcmliZSIsIm5hbWUiLCJsb2FkZXIiLCJ3b3Jrc3BhY2UiLCJydW4iLCJvcHRpb25zIiwiZW50cnkiLCJ0cmltIiwiRXJyb3IiLCJhYnNvbHV0ZUVudHJ5IiwicGF0aCIsInJlc29sdmUiLCJwYXNzdGhyb3VnaCIsImFyZ3MiLCJjb25maWd1cmUiLCJidWlsZENvbmZpZyIsImNvbmZpZ3VyYXRpb24iLCJyZWdpc3Rlckhvb2tzIiwicHJvY2VzcyIsImFyZ3YiLCJleGVjUGF0aCIsInRyYWNlIiwiaW1wb3J0RW50cnkiLCJBY3Rpb25SZXNwb25zZSIsIlN1Y2Nlc3MiXSwibWFwcGluZ3MiOiI7Ozs7K0JBa0JhQTs7O2VBQUFBOzs7aUVBbEJJOzRCQUNVO3NCQUVEO3FCQUNrQjt3QkFDUjtvQ0FFRDs7Ozs7Ozs7Ozs7Ozs7O0FBVzVCLE1BQU1BOzs7SUFDS0MsU0FBaUJDLGNBQU0sQ0FBQ0QsTUFBTSxDQUFDRCxVQUFVRyxJQUFJLEVBQUU7SUFFaEUsWUFDQyxBQUFpQkMsTUFBMEIsRUFDM0MsQUFBaUJDLFNBQW9CLENBQ3BDO2FBRmdCRCxTQUFBQTthQUNBQyxZQUFBQTtJQUNmO0lBRUgsTUFBYUMsSUFBSUMsT0FBbUIsRUFBMkI7UUFDOUQsTUFBTUMsUUFBUUQsUUFBUUMsS0FBSyxFQUFFQztRQUM3QixJQUFJRCxTQUFTLFFBQVFBLFVBQVUsSUFBSTtZQUNsQyxNQUFNLElBQUlFLE1BQU07UUFDakI7UUFFQSxNQUFNQyxnQkFBZ0JDLGlCQUFJLENBQUNDLE9BQU8sQ0FBQ0w7UUFDbkMsTUFBTU0sY0FBY1AsUUFBUVEsSUFBSSxJQUFJLEVBQUU7UUFFdEMsTUFBTSxJQUFJLENBQUNYLE1BQU0sQ0FBQ1ksU0FBUyxDQUFDO1lBQzNCWCxXQUFXLElBQUksQ0FBQ0EsU0FBUztZQUN6QlksYUFBYVYsUUFBUVcsYUFBYTtRQUNuQztRQUNBLElBQUksQ0FBQ2QsTUFBTSxDQUFDZSxhQUFhO1FBRXpCLG9FQUFvRTtRQUNwRUMsUUFBUUMsSUFBSSxHQUFHO1lBQUNELFFBQVFFLFFBQVE7WUFBRVg7ZUFBa0JHO1NBQVk7UUFFaEUsSUFBSSxDQUFDYixNQUFNLENBQUNzQixLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUVaLGVBQWU7UUFDNUMsTUFBTSxJQUFJLENBQUNQLE1BQU0sQ0FBQ29CLFdBQVcsQ0FBQ2I7UUFDOUIsT0FBT2MsbUJBQWMsQ0FBQ0MsT0FBTyxDQUFDMUIsVUFBVUcsSUFBSTtJQUM3QztBQUNEIn0=
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "RunCommand", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return RunCommand;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _cli = require("@decohere/nexus/cli");
|
|
12
|
-
const _runaction = require("./run.action.js");
|
|
13
|
-
class RunCommand extends _cli.DecohereCommand {
|
|
14
|
-
get actions() {
|
|
15
|
-
return [
|
|
16
|
-
_runaction.RunAction
|
|
17
|
-
];
|
|
18
|
-
}
|
|
19
|
-
constructor(name){
|
|
20
|
-
super(name);
|
|
21
|
-
this.description("Compile and run a TypeScript entry on the fly (no watch / HMR)");
|
|
22
|
-
this.argument("<entry>", "Path to the TypeScript entry file");
|
|
23
|
-
this.argument("[args...]", "Arguments forwarded to the entry after rewriting argv");
|
|
24
|
-
this.addOption(new _cli.ConfigurationOption("debug"));
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Commander passes positionals before options when `<entry> [args...]` is declared.
|
|
28
|
-
* The CLI host ModuleFactory expects `(opts, cmd)` — normalize and stash entry/args on opts.
|
|
29
|
-
*/ action(fn) {
|
|
30
|
-
return super.action((...args)=>{
|
|
31
|
-
const cmd = args.at(-1);
|
|
32
|
-
const opts = args.at(-2);
|
|
33
|
-
const { entry, entryArgs } = normalizeRunPositionals(args.slice(0, -2));
|
|
34
|
-
cmd.setOptionValue("entry", entry);
|
|
35
|
-
cmd.setOptionValue("args", entryArgs);
|
|
36
|
-
return fn(opts, cmd);
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
/** Commander yields `[entry, args[]]` or sometimes a flat list depending on arity. */ function normalizeRunPositionals(positionals) {
|
|
41
|
-
if (positionals.length === 0) {
|
|
42
|
-
return {
|
|
43
|
-
entry: "",
|
|
44
|
-
entryArgs: []
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
const first = positionals[0];
|
|
48
|
-
if (typeof first !== "string" || first === "") {
|
|
49
|
-
return {
|
|
50
|
-
entry: "",
|
|
51
|
-
entryArgs: []
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
const second = positionals[1];
|
|
55
|
-
if (Array.isArray(second)) {
|
|
56
|
-
return {
|
|
57
|
-
entry: first,
|
|
58
|
-
entryArgs: second.filter((s)=>typeof s === "string")
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
return {
|
|
62
|
-
entry: first,
|
|
63
|
-
entryArgs: positionals.slice(1).filter((s)=>typeof s === "string" && s !== "")
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL3J1bi5jb21tYW5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ3VyYXRpb25PcHRpb24sIERlY29oZXJlQ29tbWFuZCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQgdHlwZSB7IE9wdGlvblZhbHVlcyB9IGZyb20gXCJjb21tYW5kZXJcIjtcbmltcG9ydCB7IFJ1bkFjdGlvbiB9IGZyb20gXCIuL3J1bi5hY3Rpb24uanNcIjtcblxuZXhwb3J0IGNsYXNzIFJ1bkNvbW1hbmQgZXh0ZW5kcyBEZWNvaGVyZUNvbW1hbmQge1xuXHRwdWJsaWMgb3ZlcnJpZGUgZ2V0IGFjdGlvbnMoKSB7XG5cdFx0cmV0dXJuIFtSdW5BY3Rpb25dO1xuXHR9XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZykge1xuXHRcdHN1cGVyKG5hbWUpO1xuXHRcdHRoaXMuZGVzY3JpcHRpb24oXCJDb21waWxlIGFuZCBydW4gYSBUeXBlU2NyaXB0IGVudHJ5IG9uIHRoZSBmbHkgKG5vIHdhdGNoIC8gSE1SKVwiKTtcblx0XHR0aGlzLmFyZ3VtZW50KFwiPGVudHJ5PlwiLCBcIlBhdGggdG8gdGhlIFR5cGVTY3JpcHQgZW50cnkgZmlsZVwiKTtcblx0XHR0aGlzLmFyZ3VtZW50KFwiW2FyZ3MuLi5dXCIsIFwiQXJndW1lbnRzIGZvcndhcmRlZCB0byB0aGUgZW50cnkgYWZ0ZXIgcmV3cml0aW5nIGFyZ3ZcIik7XG5cdFx0dGhpcy5hZGRPcHRpb24obmV3IENvbmZpZ3VyYXRpb25PcHRpb24oXCJkZWJ1Z1wiKSk7XG5cdH1cblxuXHQvKipcblx0ICogQ29tbWFuZGVyIHBhc3NlcyBwb3NpdGlvbmFscyBiZWZvcmUgb3B0aW9ucyB3aGVuIGA8ZW50cnk+IFthcmdzLi4uXWAgaXMgZGVjbGFyZWQuXG5cdCAqIFRoZSBDTEkgaG9zdCBNb2R1bGVGYWN0b3J5IGV4cGVjdHMgYChvcHRzLCBjbWQpYCDigJQgbm9ybWFsaXplIGFuZCBzdGFzaCBlbnRyeS9hcmdzIG9uIG9wdHMuXG5cdCAqL1xuXHRwdWJsaWMgb3ZlcnJpZGUgYWN0aW9uKGZuOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+KTogdGhpcyB7XG5cdFx0cmV0dXJuIHN1cGVyLmFjdGlvbigoLi4uYXJnczogYW55W10pID0+IHtcblx0XHRcdGNvbnN0IGNtZCA9IGFyZ3MuYXQoLTEpIGFzIERlY29oZXJlQ29tbWFuZDtcblx0XHRcdGNvbnN0IG9wdHMgPSBhcmdzLmF0KC0yKSBhcyBPcHRpb25WYWx1ZXM7XG5cdFx0XHRjb25zdCB7IGVudHJ5LCBlbnRyeUFyZ3MgfSA9IG5vcm1hbGl6ZVJ1blBvc2l0aW9uYWxzKGFyZ3Muc2xpY2UoMCwgLTIpKTtcblx0XHRcdGNtZC5zZXRPcHRpb25WYWx1ZShcImVudHJ5XCIsIGVudHJ5KTtcblx0XHRcdGNtZC5zZXRPcHRpb25WYWx1ZShcImFyZ3NcIiwgZW50cnlBcmdzKTtcblx0XHRcdHJldHVybiBmbihvcHRzLCBjbWQpO1xuXHRcdH0pO1xuXHR9XG59XG5cbi8qKiBDb21tYW5kZXIgeWllbGRzIGBbZW50cnksIGFyZ3NbXV1gIG9yIHNvbWV0aW1lcyBhIGZsYXQgbGlzdCBkZXBlbmRpbmcgb24gYXJpdHkuICovXG5mdW5jdGlvbiBub3JtYWxpemVSdW5Qb3NpdGlvbmFscyhwb3NpdGlvbmFsczogdW5rbm93bltdKToge1xuXHRlbnRyeTogc3RyaW5nO1xuXHRlbnRyeUFyZ3M6IHN0cmluZ1tdO1xufSB7XG5cdGlmIChwb3NpdGlvbmFscy5sZW5ndGggPT09IDApIHtcblx0XHRyZXR1cm4geyBlbnRyeTogXCJcIiwgZW50cnlBcmdzOiBbXSB9O1xuXHR9XG5cblx0Y29uc3QgZmlyc3QgPSBwb3NpdGlvbmFsc1swXTtcblx0aWYgKHR5cGVvZiBmaXJzdCAhPT0gXCJzdHJpbmdcIiB8fCBmaXJzdCA9PT0gXCJcIikge1xuXHRcdHJldHVybiB7IGVudHJ5OiBcIlwiLCBlbnRyeUFyZ3M6IFtdIH07XG5cdH1cblxuXHRjb25zdCBzZWNvbmQgPSBwb3NpdGlvbmFsc1sxXTtcblx0aWYgKEFycmF5LmlzQXJyYXkoc2Vjb25kKSkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRlbnRyeTogZmlyc3QsXG5cdFx0XHRlbnRyeUFyZ3M6IHNlY29uZC5maWx0ZXIoKHMpOiBzIGlzIHN0cmluZyA9PiB0eXBlb2YgcyA9PT0gXCJzdHJpbmdcIiksXG5cdFx0fTtcblx0fVxuXG5cdHJldHVybiB7XG5cdFx0ZW50cnk6IGZpcnN0LFxuXHRcdGVudHJ5QXJnczogcG9zaXRpb25hbHNcblx0XHRcdC5zbGljZSgxKVxuXHRcdFx0LmZpbHRlcigocyk6IHMgaXMgc3RyaW5nID0+IHR5cGVvZiBzID09PSBcInN0cmluZ1wiICYmIHMgIT09IFwiXCIpLFxuXHR9O1xufVxuIl0sIm5hbWVzIjpbIlJ1bkNvbW1hbmQiLCJEZWNvaGVyZUNvbW1hbmQiLCJhY3Rpb25zIiwiUnVuQWN0aW9uIiwibmFtZSIsImRlc2NyaXB0aW9uIiwiYXJndW1lbnQiLCJhZGRPcHRpb24iLCJDb25maWd1cmF0aW9uT3B0aW9uIiwiYWN0aW9uIiwiZm4iLCJhcmdzIiwiY21kIiwiYXQiLCJvcHRzIiwiZW50cnkiLCJlbnRyeUFyZ3MiLCJub3JtYWxpemVSdW5Qb3NpdGlvbmFscyIsInNsaWNlIiwic2V0T3B0aW9uVmFsdWUiLCJwb3NpdGlvbmFscyIsImxlbmd0aCIsImZpcnN0Iiwic2Vjb25kIiwiQXJyYXkiLCJpc0FycmF5IiwiZmlsdGVyIiwicyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFJYUE7OztlQUFBQTs7O3FCQUp3QzsyQkFFM0I7QUFFbkIsTUFBTUEsbUJBQW1CQyxvQkFBZTtJQUM5QyxJQUFvQkMsVUFBVTtRQUM3QixPQUFPO1lBQUNDLG9CQUFTO1NBQUM7SUFDbkI7SUFFQSxZQUFtQkMsSUFBWSxDQUFFO1FBQ2hDLEtBQUssQ0FBQ0E7UUFDTixJQUFJLENBQUNDLFdBQVcsQ0FBQztRQUNqQixJQUFJLENBQUNDLFFBQVEsQ0FBQyxXQUFXO1FBQ3pCLElBQUksQ0FBQ0EsUUFBUSxDQUFDLGFBQWE7UUFDM0IsSUFBSSxDQUFDQyxTQUFTLENBQUMsSUFBSUMsd0JBQW1CLENBQUM7SUFDeEM7SUFFQTs7O0VBR0MsR0FDRCxBQUFnQkMsT0FBT0MsRUFBNEMsRUFBUTtRQUMxRSxPQUFPLEtBQUssQ0FBQ0QsT0FBTyxDQUFDLEdBQUdFO1lBQ3ZCLE1BQU1DLE1BQU1ELEtBQUtFLEVBQUUsQ0FBQyxDQUFDO1lBQ3JCLE1BQU1DLE9BQU9ILEtBQUtFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RCLE1BQU0sRUFBRUUsS0FBSyxFQUFFQyxTQUFTLEVBQUUsR0FBR0Msd0JBQXdCTixLQUFLTyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQ3BFTixJQUFJTyxjQUFjLENBQUMsU0FBU0o7WUFDNUJILElBQUlPLGNBQWMsQ0FBQyxRQUFRSDtZQUMzQixPQUFPTixHQUFHSSxNQUFNRjtRQUNqQjtJQUNEO0FBQ0Q7QUFFQSxvRkFBb0YsR0FDcEYsU0FBU0ssd0JBQXdCRyxXQUFzQjtJQUl0RCxJQUFJQSxZQUFZQyxNQUFNLEtBQUssR0FBRztRQUM3QixPQUFPO1lBQUVOLE9BQU87WUFBSUMsV0FBVyxFQUFFO1FBQUM7SUFDbkM7SUFFQSxNQUFNTSxRQUFRRixXQUFXLENBQUMsRUFBRTtJQUM1QixJQUFJLE9BQU9FLFVBQVUsWUFBWUEsVUFBVSxJQUFJO1FBQzlDLE9BQU87WUFBRVAsT0FBTztZQUFJQyxXQUFXLEVBQUU7UUFBQztJQUNuQztJQUVBLE1BQU1PLFNBQVNILFdBQVcsQ0FBQyxFQUFFO0lBQzdCLElBQUlJLE1BQU1DLE9BQU8sQ0FBQ0YsU0FBUztRQUMxQixPQUFPO1lBQ05SLE9BQU9PO1lBQ1BOLFdBQVdPLE9BQU9HLE1BQU0sQ0FBQyxDQUFDQyxJQUFtQixPQUFPQSxNQUFNO1FBQzNEO0lBQ0Q7SUFFQSxPQUFPO1FBQ05aLE9BQU9PO1FBQ1BOLFdBQVdJLFlBQ1RGLEtBQUssQ0FBQyxHQUNOUSxNQUFNLENBQUMsQ0FBQ0MsSUFBbUIsT0FBT0EsTUFBTSxZQUFZQSxNQUFNO0lBQzdEO0FBQ0QifQ==
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Directory-slice helpers for `flux serve <dir>…` — classify Mesh packages as
|
|
3
|
-
* Flux apps, Nixpacks-style script deferrals, or libraries to skip.
|
|
4
|
-
*/ "use strict";
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
function _export(target, all) {
|
|
9
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
10
|
-
enumerable: true,
|
|
11
|
-
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
_export(exports, {
|
|
15
|
-
get DEFER_SCRIPT_CANDIDATES () {
|
|
16
|
-
return DEFER_SCRIPT_CANDIDATES;
|
|
17
|
-
},
|
|
18
|
-
get classifySliceProject () {
|
|
19
|
-
return classifySliceProject;
|
|
20
|
-
},
|
|
21
|
-
get classifySliceProjects () {
|
|
22
|
-
return classifySliceProjects;
|
|
23
|
-
},
|
|
24
|
-
get isFluxAppMain () {
|
|
25
|
-
return isFluxAppMain;
|
|
26
|
-
},
|
|
27
|
-
get isFluxOwnedScript () {
|
|
28
|
-
return isFluxOwnedScript;
|
|
29
|
-
},
|
|
30
|
-
get isUnderSlice () {
|
|
31
|
-
return isUnderSlice;
|
|
32
|
-
},
|
|
33
|
-
get normalizeSlicePrefix () {
|
|
34
|
-
return normalizeSlicePrefix;
|
|
35
|
-
},
|
|
36
|
-
get projectsInSlice () {
|
|
37
|
-
return projectsInSlice;
|
|
38
|
-
},
|
|
39
|
-
get projectsInSlices () {
|
|
40
|
-
return projectsInSlices;
|
|
41
|
-
},
|
|
42
|
-
get resolveDeferScript () {
|
|
43
|
-
return resolveDeferScript;
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
const DEFER_SCRIPT_CANDIDATES = [
|
|
47
|
-
"dev",
|
|
48
|
-
"serve"
|
|
49
|
-
];
|
|
50
|
-
function normalizeSlicePrefix(slice) {
|
|
51
|
-
const trimmed = slice.replaceAll("\\", "/").replace(/\/+$/, "");
|
|
52
|
-
if (trimmed === "" || trimmed === ".") {
|
|
53
|
-
throw new Error("Slice directory must be a non-empty path");
|
|
54
|
-
}
|
|
55
|
-
if (trimmed === "projects" || trimmed.startsWith("projects/")) {
|
|
56
|
-
return trimmed;
|
|
57
|
-
}
|
|
58
|
-
return `projects/${trimmed}`;
|
|
59
|
-
}
|
|
60
|
-
function isUnderSlice(projectDirectory, slicePrefix) {
|
|
61
|
-
const dir = projectDirectory.replaceAll("\\", "/").replace(/\/+$/, "");
|
|
62
|
-
const prefix = slicePrefix.replaceAll("\\", "/").replace(/\/+$/, "");
|
|
63
|
-
if (dir === prefix || dir.startsWith(`${prefix}/`)) {
|
|
64
|
-
return true;
|
|
65
|
-
}
|
|
66
|
-
// Flat monorepo packages: projects/<module>.<role>
|
|
67
|
-
return dir.startsWith(`${prefix}.`);
|
|
68
|
-
}
|
|
69
|
-
function projectsInSlice(projects, slice) {
|
|
70
|
-
const prefix = normalizeSlicePrefix(slice);
|
|
71
|
-
return projects.filter((p)=>isUnderSlice(p.projectDirectory, prefix));
|
|
72
|
-
}
|
|
73
|
-
function projectsInSlices(projects, slices) {
|
|
74
|
-
const byName = new Map();
|
|
75
|
-
for (const slice of slices){
|
|
76
|
-
for (const project of projectsInSlice(projects, slice)){
|
|
77
|
-
byName.set(project.name, project);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return [
|
|
81
|
-
...byName.values()
|
|
82
|
-
];
|
|
83
|
-
}
|
|
84
|
-
function isFluxOwnedScript(script) {
|
|
85
|
-
return /\bflux\b/i.test(script);
|
|
86
|
-
}
|
|
87
|
-
function resolveDeferScript(scripts) {
|
|
88
|
-
for (const name of DEFER_SCRIPT_CANDIDATES){
|
|
89
|
-
const body = scripts[name];
|
|
90
|
-
if (body != null && body !== "" && !isFluxOwnedScript(body)) {
|
|
91
|
-
return name;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return undefined;
|
|
95
|
-
}
|
|
96
|
-
function isFluxAppMain(main) {
|
|
97
|
-
const normalized = main.replaceAll("\\", "/");
|
|
98
|
-
return /(^|\/)main\.tsx?$/.test(normalized);
|
|
99
|
-
}
|
|
100
|
-
function classifySliceProject(project) {
|
|
101
|
-
if (resolveDeferScript(project.scripts) != null) {
|
|
102
|
-
return "defer";
|
|
103
|
-
}
|
|
104
|
-
if (isFluxAppMain(project.main)) {
|
|
105
|
-
return "flux";
|
|
106
|
-
}
|
|
107
|
-
return "skip";
|
|
108
|
-
}
|
|
109
|
-
function classifySliceProjects(projects, slices) {
|
|
110
|
-
const tokens = typeof slices === "string" ? [
|
|
111
|
-
slices
|
|
112
|
-
] : [
|
|
113
|
-
...slices
|
|
114
|
-
];
|
|
115
|
-
const inSlice = projectsInSlices(projects, tokens);
|
|
116
|
-
const flux = [];
|
|
117
|
-
const defer = [];
|
|
118
|
-
const skip = [];
|
|
119
|
-
for (const project of inSlice){
|
|
120
|
-
const kind = classifySliceProject(project);
|
|
121
|
-
if (kind === "flux") flux.push(project);
|
|
122
|
-
else if (kind === "defer") defer.push(project);
|
|
123
|
-
else skip.push(project);
|
|
124
|
-
}
|
|
125
|
-
return {
|
|
126
|
-
flux,
|
|
127
|
-
defer,
|
|
128
|
-
skip
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL3NsaWNlLXNlcnZlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGlyZWN0b3J5LXNsaWNlIGhlbHBlcnMgZm9yIGBmbHV4IHNlcnZlIDxkaXI+4oCmYCDigJQgY2xhc3NpZnkgTWVzaCBwYWNrYWdlcyBhc1xuICogRmx1eCBhcHBzLCBOaXhwYWNrcy1zdHlsZSBzY3JpcHQgZGVmZXJyYWxzLCBvciBsaWJyYXJpZXMgdG8gc2tpcC5cbiAqL1xuXG5leHBvcnQgdHlwZSBTbGljZVByb2plY3RWaWV3ID0ge1xuXHRyZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cdC8qKiBSZWxhdGl2ZSBwcm9qZWN0IGRpciBmcm9tIHdvcmtzcGFjZSByb290IChlLmcuIGBwcm9qZWN0cy9mdW5kaW5nL2FwaWApLiAqL1xuXHRyZWFkb25seSBwcm9qZWN0RGlyZWN0b3J5OiBzdHJpbmc7XG5cdHJlYWRvbmx5IG1haW46IHN0cmluZztcblx0cmVhZG9ubHkgc2NyaXB0czogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn07XG5cbmV4cG9ydCB0eXBlIFNsaWNlS2luZCA9IFwiZmx1eFwiIHwgXCJkZWZlclwiIHwgXCJza2lwXCI7XG5cbmV4cG9ydCB0eXBlIENsYXNzaWZpZWRTbGljZSA9IHtcblx0cmVhZG9ubHkgZmx1eDogU2xpY2VQcm9qZWN0Vmlld1tdO1xuXHRyZWFkb25seSBkZWZlcjogU2xpY2VQcm9qZWN0Vmlld1tdO1xuXHRyZWFkb25seSBza2lwOiBTbGljZVByb2plY3RWaWV3W107XG59O1xuXG4vKiogUHJlZmVycmVkIHBhY2thZ2Ugc2NyaXB0cyBmb3IgZm9yZWlnbiB0b29sY2hhaW5zIChOaXhwYWNrcy1zdHlsZSkuICovXG5leHBvcnQgY29uc3QgREVGRVJfU0NSSVBUX0NBTkRJREFURVMgPSBbXCJkZXZcIiwgXCJzZXJ2ZVwiXSBhcyBjb25zdDtcblxuLyoqXG4gKiBOb3JtYWxpemUgYSBDTEkgc2xpY2UgdG9rZW4gdG8gYSBgcHJvamVjdHMv4oCmYCBwcmVmaXggd2l0aG91dCBhIHRyYWlsaW5nIHNsYXNoLlxuICogYGZ1bmRpbmdgIGFuZCBgcHJvamVjdHMvZnVuZGluZ2AgYm90aCBiZWNvbWUgYHByb2plY3RzL2Z1bmRpbmdgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplU2xpY2VQcmVmaXgoc2xpY2U6IHN0cmluZyk6IHN0cmluZyB7XG5cdGNvbnN0IHRyaW1tZWQgPSBzbGljZS5yZXBsYWNlQWxsKFwiXFxcXFwiLCBcIi9cIikucmVwbGFjZSgvXFwvKyQvLCBcIlwiKTtcblx0aWYgKHRyaW1tZWQgPT09IFwiXCIgfHwgdHJpbW1lZCA9PT0gXCIuXCIpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJTbGljZSBkaXJlY3RvcnkgbXVzdCBiZSBhIG5vbi1lbXB0eSBwYXRoXCIpO1xuXHR9XG5cdGlmICh0cmltbWVkID09PSBcInByb2plY3RzXCIgfHwgdHJpbW1lZC5zdGFydHNXaXRoKFwicHJvamVjdHMvXCIpKSB7XG5cdFx0cmV0dXJuIHRyaW1tZWQ7XG5cdH1cblx0cmV0dXJuIGBwcm9qZWN0cy8ke3RyaW1tZWR9YDtcbn1cblxuLyoqXG4gKiBUcnVlIHdoZW4gYHByb2plY3REaXJlY3RvcnlgIGJlbG9uZ3MgdG8gdGhlIHNsaWNlIHRva2VuLlxuICpcbiAqIE1hdGNoZXM6XG4gKiAtIG5lc3RlZDogYHByb2plY3RzL2Z1bmRpbmdgLCBgcHJvamVjdHMvZnVuZGluZy9hcGlgXG4gKiAtIGZsYXQgZG90dGVkIHBhY2thZ2UgZGlyczogYHByb2plY3RzL2Z1bmRpbmcud2ViYCBmb3IgdG9rZW4gYGZ1bmRpbmdgXG4gKlxuICogRG9lcyBub3QgbWF0Y2ggc2libGluZ3MgdGhhdCBvbmx5IHNoYXJlIGEgc3RyaW5nIHByZWZpeCAoYGZ1bmRpbmdgIHZzIGBmdW5kaW5nLWZlZS5hcGlgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVW5kZXJTbGljZShwcm9qZWN0RGlyZWN0b3J5OiBzdHJpbmcsIHNsaWNlUHJlZml4OiBzdHJpbmcpOiBib29sZWFuIHtcblx0Y29uc3QgZGlyID0gcHJvamVjdERpcmVjdG9yeS5yZXBsYWNlQWxsKFwiXFxcXFwiLCBcIi9cIikucmVwbGFjZSgvXFwvKyQvLCBcIlwiKTtcblx0Y29uc3QgcHJlZml4ID0gc2xpY2VQcmVmaXgucmVwbGFjZUFsbChcIlxcXFxcIiwgXCIvXCIpLnJlcGxhY2UoL1xcLyskLywgXCJcIik7XG5cdGlmIChkaXIgPT09IHByZWZpeCB8fCBkaXIuc3RhcnRzV2l0aChgJHtwcmVmaXh9L2ApKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblx0Ly8gRmxhdCBtb25vcmVwbyBwYWNrYWdlczogcHJvamVjdHMvPG1vZHVsZT4uPHJvbGU+XG5cdHJldHVybiBkaXIuc3RhcnRzV2l0aChgJHtwcmVmaXh9LmApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvamVjdHNJblNsaWNlKFxuXHRwcm9qZWN0czogcmVhZG9ubHkgU2xpY2VQcm9qZWN0Vmlld1tdLFxuXHRzbGljZTogc3RyaW5nLFxuKTogU2xpY2VQcm9qZWN0Vmlld1tdIHtcblx0Y29uc3QgcHJlZml4ID0gbm9ybWFsaXplU2xpY2VQcmVmaXgoc2xpY2UpO1xuXHRyZXR1cm4gcHJvamVjdHMuZmlsdGVyKChwKSA9PiBpc1VuZGVyU2xpY2UocC5wcm9qZWN0RGlyZWN0b3J5LCBwcmVmaXgpKTtcbn1cblxuLyoqIFVuaW9uIG9mIHBhY2thZ2VzIHVuZGVyIGFueSBvZiB0aGUgc2xpY2UgdG9rZW5zIChkZWR1cGVkIGJ5IHBhY2thZ2UgbmFtZSkuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvamVjdHNJblNsaWNlcyhcblx0cHJvamVjdHM6IHJlYWRvbmx5IFNsaWNlUHJvamVjdFZpZXdbXSxcblx0c2xpY2VzOiByZWFkb25seSBzdHJpbmdbXSxcbik6IFNsaWNlUHJvamVjdFZpZXdbXSB7XG5cdGNvbnN0IGJ5TmFtZSA9IG5ldyBNYXA8c3RyaW5nLCBTbGljZVByb2plY3RWaWV3PigpO1xuXHRmb3IgKGNvbnN0IHNsaWNlIG9mIHNsaWNlcykge1xuXHRcdGZvciAoY29uc3QgcHJvamVjdCBvZiBwcm9qZWN0c0luU2xpY2UocHJvamVjdHMsIHNsaWNlKSkge1xuXHRcdFx0YnlOYW1lLnNldChwcm9qZWN0Lm5hbWUsIHByb2plY3QpO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gWy4uLmJ5TmFtZS52YWx1ZXMoKV07XG59XG5cbi8qKiBTY3JpcHQgaW52b2tlcyBGbHV4IChpbi1wcm9jZXNzIHNlcnZlIHN0YXlzIG9uIEZsdXgsIG5vdCBkZWZlcnJlZCkuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGbHV4T3duZWRTY3JpcHQoc2NyaXB0OiBzdHJpbmcpOiBib29sZWFuIHtcblx0cmV0dXJuIC9cXGJmbHV4XFxiL2kudGVzdChzY3JpcHQpO1xufVxuXG4vKipcbiAqIEZpcnN0IE5peHBhY2tzLXN0eWxlIHNlcnZlIHNjcmlwdCB0aGF0IGlzIG5vdCBGbHV4LW93bmVkLlxuICogUHJlZmVycyBgZGV2YCwgdGhlbiBgc2VydmVgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZURlZmVyU2NyaXB0KHNjcmlwdHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRmb3IgKGNvbnN0IG5hbWUgb2YgREVGRVJfU0NSSVBUX0NBTkRJREFURVMpIHtcblx0XHRjb25zdCBib2R5ID0gc2NyaXB0c1tuYW1lXTtcblx0XHRpZiAoYm9keSAhPSBudWxsICYmIGJvZHkgIT09IFwiXCIgJiYgIWlzRmx1eE93bmVkU2NyaXB0KGJvZHkpKSB7XG5cdFx0XHRyZXR1cm4gbmFtZTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqIENvbnZlbnRpb246IEZsdXggTm9kZSBhcHBzIHVzZSBgbWFpbmAgZW5kaW5nIGluIGBtYWluLnRzYCAvIGBtYWluLnRzeGAuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGbHV4QXBwTWFpbihtYWluOiBzdHJpbmcpOiBib29sZWFuIHtcblx0Y29uc3Qgbm9ybWFsaXplZCA9IG1haW4ucmVwbGFjZUFsbChcIlxcXFxcIiwgXCIvXCIpO1xuXHRyZXR1cm4gLyhefFxcLyltYWluXFwudHN4PyQvLnRlc3Qobm9ybWFsaXplZCk7XG59XG5cbi8qKlxuICogQ2xhc3NpZnkgb25lIHBhY2thZ2UuIEZvcmVpZ24gc2VydmUgc2NyaXB0cyB3aW4gb3ZlciBgbWFpbi50c2AgKFZpdGUgYXBwc1xuICogb2Z0ZW4gaGF2ZSBhIG1haW4gZW50cnkgYnV0IG11c3Qgbm90IGJlIEhNUi1ib290ZWQgYnkgRmx1eCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGFzc2lmeVNsaWNlUHJvamVjdChwcm9qZWN0OiBTbGljZVByb2plY3RWaWV3KTogU2xpY2VLaW5kIHtcblx0aWYgKHJlc29sdmVEZWZlclNjcmlwdChwcm9qZWN0LnNjcmlwdHMpICE9IG51bGwpIHtcblx0XHRyZXR1cm4gXCJkZWZlclwiO1xuXHR9XG5cdGlmIChpc0ZsdXhBcHBNYWluKHByb2plY3QubWFpbikpIHtcblx0XHRyZXR1cm4gXCJmbHV4XCI7XG5cdH1cblx0cmV0dXJuIFwic2tpcFwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xhc3NpZnlTbGljZVByb2plY3RzKFxuXHRwcm9qZWN0czogcmVhZG9ubHkgU2xpY2VQcm9qZWN0Vmlld1tdLFxuXHRzbGljZXM6IHN0cmluZyB8IHJlYWRvbmx5IHN0cmluZ1tdLFxuKTogQ2xhc3NpZmllZFNsaWNlIHtcblx0Y29uc3QgdG9rZW5zID0gdHlwZW9mIHNsaWNlcyA9PT0gXCJzdHJpbmdcIiA/IFtzbGljZXNdIDogWy4uLnNsaWNlc107XG5cdGNvbnN0IGluU2xpY2UgPSBwcm9qZWN0c0luU2xpY2VzKHByb2plY3RzLCB0b2tlbnMpO1xuXHRjb25zdCBmbHV4OiBTbGljZVByb2plY3RWaWV3W10gPSBbXTtcblx0Y29uc3QgZGVmZXI6IFNsaWNlUHJvamVjdFZpZXdbXSA9IFtdO1xuXHRjb25zdCBza2lwOiBTbGljZVByb2plY3RWaWV3W10gPSBbXTtcblx0Zm9yIChjb25zdCBwcm9qZWN0IG9mIGluU2xpY2UpIHtcblx0XHRjb25zdCBraW5kID0gY2xhc3NpZnlTbGljZVByb2plY3QocHJvamVjdCk7XG5cdFx0aWYgKGtpbmQgPT09IFwiZmx1eFwiKSBmbHV4LnB1c2gocHJvamVjdCk7XG5cdFx0ZWxzZSBpZiAoa2luZCA9PT0gXCJkZWZlclwiKSBkZWZlci5wdXNoKHByb2plY3QpO1xuXHRcdGVsc2Ugc2tpcC5wdXNoKHByb2plY3QpO1xuXHR9XG5cdHJldHVybiB7IGZsdXgsIGRlZmVyLCBza2lwIH07XG59XG4iXSwibmFtZXMiOlsiREVGRVJfU0NSSVBUX0NBTkRJREFURVMiLCJjbGFzc2lmeVNsaWNlUHJvamVjdCIsImNsYXNzaWZ5U2xpY2VQcm9qZWN0cyIsImlzRmx1eEFwcE1haW4iLCJpc0ZsdXhPd25lZFNjcmlwdCIsImlzVW5kZXJTbGljZSIsIm5vcm1hbGl6ZVNsaWNlUHJlZml4IiwicHJvamVjdHNJblNsaWNlIiwicHJvamVjdHNJblNsaWNlcyIsInJlc29sdmVEZWZlclNjcmlwdCIsInNsaWNlIiwidHJpbW1lZCIsInJlcGxhY2VBbGwiLCJyZXBsYWNlIiwiRXJyb3IiLCJzdGFydHNXaXRoIiwicHJvamVjdERpcmVjdG9yeSIsInNsaWNlUHJlZml4IiwiZGlyIiwicHJlZml4IiwicHJvamVjdHMiLCJmaWx0ZXIiLCJwIiwic2xpY2VzIiwiYnlOYW1lIiwiTWFwIiwicHJvamVjdCIsInNldCIsIm5hbWUiLCJ2YWx1ZXMiLCJzY3JpcHQiLCJ0ZXN0Iiwic2NyaXB0cyIsImJvZHkiLCJ1bmRlZmluZWQiLCJtYWluIiwibm9ybWFsaXplZCIsInRva2VucyIsImluU2xpY2UiLCJmbHV4IiwiZGVmZXIiLCJza2lwIiwia2luZCIsInB1c2giXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQzs7Ozs7Ozs7Ozs7UUFtQllBO2VBQUFBOztRQXVGR0M7ZUFBQUE7O1FBVUFD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
|