@decohere/flux 0.0.1-dev.59 → 0.0.1-dev.6

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,32 @@
1
+ import { parseArgs } from "node:util";
2
+ import { scribe } from "@decohere/scribe";
3
+ import { HotReloadServer } from "./hot-reload-server.js";
4
+ const { values } = parseArgs({
5
+ args: process.argv.slice(2),
6
+ options: {
7
+ entry: {
8
+ type: "string",
9
+ short: "e"
10
+ },
11
+ watchDir: {
12
+ type: "string",
13
+ multiple: true,
14
+ short: "w"
15
+ }
16
+ },
17
+ allowPositionals: false
18
+ });
19
+ const entry = values.entry;
20
+ const watchDirs = values.watchDir ?? [];
21
+ if (!entry) {
22
+ console.error("Usage: forge-hmr --entry <path> --watchDir <dir> [--watchDir <dir>...]");
23
+ process.exit(1);
24
+ }
25
+ if (watchDirs.length === 0) {
26
+ console.error("Usage: forge-hmr --entry <path> --watchDir <dir> [--watchDir <dir>...]");
27
+ process.exit(1);
28
+ }
29
+ const hmr = new HotReloadServer(scribe.logger("HotReloadServer"));
30
+ await hmr.start(entry, ...watchDirs);
31
+
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL3NlcnZlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlQXJncyB9IGZyb20gXCJub2RlOnV0aWxcIjtcbmltcG9ydCB7IHNjcmliZSB9IGZyb20gXCJAZGVjb2hlcmUvc2NyaWJlXCI7XG5pbXBvcnQgeyBIb3RSZWxvYWRTZXJ2ZXIgfSBmcm9tIFwiLi9ob3QtcmVsb2FkLXNlcnZlci5qc1wiO1xuXG5jb25zdCB7IHZhbHVlcyB9ID0gcGFyc2VBcmdzKHtcblx0YXJnczogcHJvY2Vzcy5hcmd2LnNsaWNlKDIpLFxuXHRvcHRpb25zOiB7XG5cdFx0ZW50cnk6IHsgdHlwZTogXCJzdHJpbmdcIiwgc2hvcnQ6IFwiZVwiIH0sXG5cdFx0d2F0Y2hEaXI6IHsgdHlwZTogXCJzdHJpbmdcIiwgbXVsdGlwbGU6IHRydWUsIHNob3J0OiBcIndcIiB9LFxuXHR9LFxuXHRhbGxvd1Bvc2l0aW9uYWxzOiBmYWxzZSxcbn0pO1xuXG5jb25zdCBlbnRyeSA9IHZhbHVlcy5lbnRyeTtcbmNvbnN0IHdhdGNoRGlycyA9IHZhbHVlcy53YXRjaERpciA/PyBbXTtcblxuaWYgKCFlbnRyeSkge1xuXHRjb25zb2xlLmVycm9yKFwiVXNhZ2U6IGZvcmdlLWhtciAtLWVudHJ5IDxwYXRoPiAtLXdhdGNoRGlyIDxkaXI+IFstLXdhdGNoRGlyIDxkaXI+Li4uXVwiKTtcblx0cHJvY2Vzcy5leGl0KDEpO1xufVxuXG5pZiAod2F0Y2hEaXJzLmxlbmd0aCA9PT0gMCkge1xuXHRjb25zb2xlLmVycm9yKFwiVXNhZ2U6IGZvcmdlLWhtciAtLWVudHJ5IDxwYXRoPiAtLXdhdGNoRGlyIDxkaXI+IFstLXdhdGNoRGlyIDxkaXI+Li4uXVwiKTtcblx0cHJvY2Vzcy5leGl0KDEpO1xufVxuXG5jb25zdCBobXIgPSBuZXcgSG90UmVsb2FkU2VydmVyKHNjcmliZS5sb2dnZXIoXCJIb3RSZWxvYWRTZXJ2ZXJcIikpO1xuYXdhaXQgaG1yLnN0YXJ0KGVudHJ5LCAuLi53YXRjaERpcnMpO1xuIl0sIm5hbWVzIjpbInBhcnNlQXJncyIsInNjcmliZSIsIkhvdFJlbG9hZFNlcnZlciIsInZhbHVlcyIsImFyZ3MiLCJwcm9jZXNzIiwiYXJndiIsInNsaWNlIiwib3B0aW9ucyIsImVudHJ5IiwidHlwZSIsInNob3J0Iiwid2F0Y2hEaXIiLCJtdWx0aXBsZSIsImFsbG93UG9zaXRpb25hbHMiLCJ3YXRjaERpcnMiLCJjb25zb2xlIiwiZXJyb3IiLCJleGl0IiwibGVuZ3RoIiwiaG1yIiwibG9nZ2VyIiwic3RhcnQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVMsUUFBUSxZQUFZO0FBQ3RDLFNBQVNDLE1BQU0sUUFBUSxtQkFBbUI7QUFDMUMsU0FBU0MsZUFBZSxRQUFRLHlCQUF5QjtBQUV6RCxNQUFNLEVBQUVDLE1BQU0sRUFBRSxHQUFHSCxVQUFVO0lBQzVCSSxNQUFNQyxRQUFRQyxJQUFJLENBQUNDLEtBQUssQ0FBQztJQUN6QkMsU0FBUztRQUNSQyxPQUFPO1lBQUVDLE1BQU07WUFBVUMsT0FBTztRQUFJO1FBQ3BDQyxVQUFVO1lBQUVGLE1BQU07WUFBVUcsVUFBVTtZQUFNRixPQUFPO1FBQUk7SUFDeEQ7SUFDQUcsa0JBQWtCO0FBQ25CO0FBRUEsTUFBTUwsUUFBUU4sT0FBT00sS0FBSztBQUMxQixNQUFNTSxZQUFZWixPQUFPUyxRQUFRLElBQUksRUFBRTtBQUV2QyxJQUFJLENBQUNILE9BQU87SUFDWE8sUUFBUUMsS0FBSyxDQUFDO0lBQ2RaLFFBQVFhLElBQUksQ0FBQztBQUNkO0FBRUEsSUFBSUgsVUFBVUksTUFBTSxLQUFLLEdBQUc7SUFDM0JILFFBQVFDLEtBQUssQ0FBQztJQUNkWixRQUFRYSxJQUFJLENBQUM7QUFDZDtBQUVBLE1BQU1FLE1BQU0sSUFBSWxCLGdCQUFnQkQsT0FBT29CLE1BQU0sQ0FBQztBQUM5QyxNQUFNRCxJQUFJRSxLQUFLLENBQUNiLFVBQVVNIn0=
@@ -0,0 +1,45 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ function _ts_metadata(k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ }
10
+ import path from "node:path";
11
+ import { injectable } from "@decohere/crucible/decorators";
12
+ // biome-ignore lint/style/useImportType: <DI>
13
+ import { Workspace } from "@decohere/mesh";
14
+ import { ActionResponse } from "@decohere/nexus/cli";
15
+ import { ServeAction } from "./serve.action.js";
16
+ export class WorkspaceServeAction {
17
+ workspace;
18
+ constructor(workspace){
19
+ this.workspace = workspace;
20
+ }
21
+ async run(options) {
22
+ const { configuration } = options;
23
+ const projects = this.workspace.getProjects(configuration);
24
+ const project = projects.at(0);
25
+ if (project == null) {
26
+ return ActionResponse.Error(WorkspaceServeAction.name, `No projects found for configuration: ${configuration}`);
27
+ }
28
+ const outDir = project.getOutDir();
29
+ const entry = path.join(outDir, "src", "index.js");
30
+ const serveAction = new ServeAction();
31
+ return serveAction.run({
32
+ entry,
33
+ watchDir: outDir
34
+ });
35
+ }
36
+ }
37
+ WorkspaceServeAction = _ts_decorate([
38
+ injectable(),
39
+ _ts_metadata("design:type", Function),
40
+ _ts_metadata("design:paramtypes", [
41
+ typeof Workspace === "undefined" ? Object : Workspace
42
+ ])
43
+ ], WorkspaceServeAction);
44
+
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL3dvcmtzcGFjZS1zZXJ2ZS5hY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgaW5qZWN0YWJsZSB9IGZyb20gXCJAZGVjb2hlcmUvY3J1Y2libGUvZGVjb3JhdG9yc1wiO1xuLy8gYmlvbWUtaWdub3JlIGxpbnQvc3R5bGUvdXNlSW1wb3J0VHlwZTogPERJPlxuaW1wb3J0IHsgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgdHlwZSB7IEFjdGlvbiB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQgeyBBY3Rpb25SZXNwb25zZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQgeyBTZXJ2ZUFjdGlvbiB9IGZyb20gXCIuL3NlcnZlLmFjdGlvbi5qc1wiO1xuXG5leHBvcnQgdHlwZSBXb3Jrc3BhY2VTZXJ2ZU9wdGlvbnMgPSB7XG5cdGNvbmZpZ3VyYXRpb246IHN0cmluZztcbn07XG5cbkBpbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBXb3Jrc3BhY2VTZXJ2ZUFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbjxXb3Jrc3BhY2VTZXJ2ZU9wdGlvbnM+IHtcblx0cHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgd29ya3NwYWNlOiBXb3Jrc3BhY2UpIHt9XG5cblx0cHVibGljIGFzeW5jIHJ1bihvcHRpb25zOiBXb3Jrc3BhY2VTZXJ2ZU9wdGlvbnMpOiBQcm9taXNlPEFjdGlvblJlc3BvbnNlPiB7XG5cdFx0Y29uc3QgeyBjb25maWd1cmF0aW9uIH0gPSBvcHRpb25zO1xuXHRcdGNvbnN0IHByb2plY3RzID0gdGhpcy53b3Jrc3BhY2UuZ2V0UHJvamVjdHMoY29uZmlndXJhdGlvbik7XG5cdFx0Y29uc3QgcHJvamVjdCA9IHByb2plY3RzLmF0KDApO1xuXG5cdFx0aWYgKHByb2plY3QgPT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIEFjdGlvblJlc3BvbnNlLkVycm9yKFxuXHRcdFx0XHRXb3Jrc3BhY2VTZXJ2ZUFjdGlvbi5uYW1lLFxuXHRcdFx0XHRgTm8gcHJvamVjdHMgZm91bmQgZm9yIGNvbmZpZ3VyYXRpb246ICR7Y29uZmlndXJhdGlvbn1gLFxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHRjb25zdCBvdXREaXIgPSBwcm9qZWN0LmdldE91dERpcigpO1xuXHRcdGNvbnN0IGVudHJ5ID0gcGF0aC5qb2luKG91dERpciwgXCJzcmNcIiwgXCJpbmRleC5qc1wiKTtcblx0XHRjb25zdCBzZXJ2ZUFjdGlvbiA9IG5ldyBTZXJ2ZUFjdGlvbigpO1xuXHRcdHJldHVybiBzZXJ2ZUFjdGlvbi5ydW4oeyBlbnRyeSwgd2F0Y2hEaXI6IG91dERpciB9KTtcblx0fVxufVxuIl0sIm5hbWVzIjpbInBhdGgiLCJpbmplY3RhYmxlIiwiV29ya3NwYWNlIiwiQWN0aW9uUmVzcG9uc2UiLCJTZXJ2ZUFjdGlvbiIsIldvcmtzcGFjZVNlcnZlQWN0aW9uIiwid29ya3NwYWNlIiwicnVuIiwib3B0aW9ucyIsImNvbmZpZ3VyYXRpb24iLCJwcm9qZWN0cyIsImdldFByb2plY3RzIiwicHJvamVjdCIsImF0IiwiRXJyb3IiLCJuYW1lIiwib3V0RGlyIiwiZ2V0T3V0RGlyIiwiZW50cnkiLCJqb2luIiwic2VydmVBY3Rpb24iLCJ3YXRjaERpciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBT0EsVUFBVSxZQUFZO0FBQzdCLFNBQVNDLFVBQVUsUUFBUSxnQ0FBZ0M7QUFDM0QsOENBQThDO0FBQzlDLFNBQVNDLFNBQVMsUUFBUSxpQkFBaUI7QUFFM0MsU0FBU0MsY0FBYyxRQUFRLHNCQUFzQjtBQUNyRCxTQUFTQyxXQUFXLFFBQVEsb0JBQW9CO0FBT2hELE9BQU8sTUFBTUM7O0lBQ1osWUFBbUIsQUFBaUJDLFNBQW9CLENBQUU7YUFBdEJBLFlBQUFBO0lBQXVCO0lBRTNELE1BQWFDLElBQUlDLE9BQThCLEVBQTJCO1FBQ3pFLE1BQU0sRUFBRUMsYUFBYSxFQUFFLEdBQUdEO1FBQzFCLE1BQU1FLFdBQVcsSUFBSSxDQUFDSixTQUFTLENBQUNLLFdBQVcsQ0FBQ0Y7UUFDNUMsTUFBTUcsVUFBVUYsU0FBU0csRUFBRSxDQUFDO1FBRTVCLElBQUlELFdBQVcsTUFBTTtZQUNwQixPQUFPVCxlQUFlVyxLQUFLLENBQzFCVCxxQkFBcUJVLElBQUksRUFDekIsQ0FBQyxxQ0FBcUMsRUFBRU4sZUFBZTtRQUV6RDtRQUVBLE1BQU1PLFNBQVNKLFFBQVFLLFNBQVM7UUFDaEMsTUFBTUMsUUFBUWxCLEtBQUttQixJQUFJLENBQUNILFFBQVEsT0FBTztRQUN2QyxNQUFNSSxjQUFjLElBQUloQjtRQUN4QixPQUFPZ0IsWUFBWWIsR0FBRyxDQUFDO1lBQUVXO1lBQU9HLFVBQVVMO1FBQU87SUFDbEQ7QUFDRCJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decohere/flux",
3
- "version": "0.0.1-dev.59",
3
+ "version": "0.0.1-dev.6",
4
4
  "description": "Hot module reload server for Node.js ESM applications",
5
5
  "keywords": [
6
6
  "typescript",
@@ -19,18 +19,23 @@
19
19
  "types": "./types/src/index.d.ts",
20
20
  "import": "./es6/src/index.js",
21
21
  "require": "./commonjs/src/index.js"
22
+ },
23
+ "./serve": {
24
+ "types": "./types/src/serve.d.ts",
25
+ "import": "./es6/src/serve.js"
22
26
  }
23
27
  },
28
+ "bin": {
29
+ "ember": "./es6/src/serve.js"
30
+ },
24
31
  "scripts": {
25
32
  "test": "echo \"Error: no test specified\" && exit 1"
26
33
  },
27
34
  "dependencies": {
28
- "@decohere/crucible": "0.0.1-dev.59",
29
- "@decohere/forge": "0.0.1-dev.59",
30
- "@decohere/mesh": "0.0.1-dev.59",
31
- "@decohere/nexus": "0.0.1-dev.59",
32
- "@decohere/scribe": "0.0.1-dev.59",
33
- "rxjs": "^7.8.2"
35
+ "@decohere/crucible": "0.0.1-dev.6",
36
+ "@decohere/mesh": "0.0.1-dev.6",
37
+ "@decohere/nexus": "0.0.1-dev.6",
38
+ "@decohere/scribe": "0.0.1-dev.6"
34
39
  },
35
40
  "devDependencies": {}
36
41
  }
@@ -1,6 +1,6 @@
1
1
  import type { Actions } from "@decohere/nexus/cli";
2
2
  import { type CommandHandler, type CommandResponse, type CommandType, DecohereCommand } from "@decohere/nexus/cli";
3
- export declare class FluxCommand extends DecohereCommand {
3
+ export declare class EmberCommand extends DecohereCommand {
4
4
  constructor(commands: Record<string, CommandType>, handler: CommandHandler);
5
5
  run(_actions: Actions, _options: never): Promise<CommandResponse>;
6
6
  }
@@ -0,0 +1,22 @@
1
+ import type { Workspace } from "@decohere/mesh";
2
+ import type { WorkspaceFactoryOptions } from "@decohere/nexus/cli";
3
+ import { ModuleManifest } from "@decohere/nexus/cli";
4
+ import type { ContainerBuilder } from "@decohere/nexus/composition";
5
+ import { EmberCommand } from "./ember.command.js";
6
+ import { WorkspaceServeAction } from "./workspace-serve.action.js";
7
+ export type EmberModuleContext = {
8
+ builder: ContainerBuilder;
9
+ workspace: Workspace;
10
+ };
11
+ export type EmberModuleResult = {
12
+ actions: typeof EmberActions;
13
+ };
14
+ export declare const EmberActions: {};
15
+ export declare class EmberModule extends ModuleManifest {
16
+ readonly id = "ember";
17
+ readonly command: typeof EmberCommand;
18
+ readonly actions: {
19
+ serve: typeof WorkspaceServeAction;
20
+ };
21
+ createWorkspace(options: WorkspaceFactoryOptions): any;
22
+ }
@@ -0,0 +1,5 @@
1
+ import type { ResolveFnOutput } from "node:module";
2
+ export type ResolveHandler = (result: ResolveFnOutput, parentUrl: string) => void;
3
+ export declare function initModuleHooks(): void;
4
+ export declare function addResolverHook(fn: ResolveHandler): void;
5
+ export declare function removeResolverHook(fn: ResolveHandler): void;
@@ -1,64 +1,38 @@
1
1
  import { EventEmitter } from "node:events";
2
- import type { Workspace } from "@decohere/mesh";
2
+ import type { Logger } from "@decohere/scribe";
3
3
  export interface HotReloadServerEvents {
4
- start: [];
5
4
  reboot: [];
6
5
  }
7
- export interface HotReloadServerOptions {
8
- /** Build configuration name. */
9
- buildConfig: string;
10
- /** Name of the project to serve. Defaults to the first project in the workspace. */
11
- project?: string;
12
- /**
13
- * Pre-built Workspace instance to use instead of running WorkspaceFactory.
14
- * Useful in tests to bypass filesystem-based workspace discovery.
15
- */
16
- workspace?: Workspace;
17
- }
18
6
  export declare class HotReloadServer extends EventEmitter<HotReloadServerEvents> {
19
7
  private readonly logger;
20
8
  private disposed;
21
- private hooksRegistered;
22
- private entryModulePath;
23
- private entryModule?;
24
- private workspace?;
25
- private watchSubscription?;
26
- /** Map from absolute .ts source file path to project info */
27
- private fileInfoMap;
9
+ private entryModule;
10
+ private entry;
11
+ private sourceFiles;
28
12
  private moduleCache;
29
13
  private dependencies;
30
- private transpileCache;
31
- private transpiler;
32
- start(options: HotReloadServerOptions): Promise<void>;
14
+ private watchers;
15
+ constructor(logger: Logger);
16
+ start(entry: string, ...watchDirs: string[]): Promise<void>;
33
17
  dispose(): Promise<void>;
34
- [Symbol.asyncDispose](): Promise<void>;
35
- private bootEntry;
36
- private reboot;
37
- private disposeEntry;
38
- private scheduleReboot;
39
- private resolveWorkspace;
40
- private resolveProject;
41
- private buildFileInfoMap;
42
- private registerHooks;
43
- /**
44
- * Pre-next specifier rewriter: if specifier is a .js import that maps to a
45
- * known .ts source file, returns the versioned .ts file URL so next() never
46
- * tries to load a non-existent .js file from disk.
47
- */
48
- private rewriteJsToTs;
49
- /**
50
- * Post-next dependency tracker: records which source files import which
51
- * other source files so that reloadIfAffected can traverse the graph.
52
- */
53
- private onPostResolve;
54
- private loadTs;
55
- private onFileChange;
56
- private reloadIfAffected;
18
+ private removeSourceFiles;
19
+ private getSourceFiles;
20
+ private configureModuleHooks;
21
+ private onResolve;
22
+ private isSourceModule;
57
23
  private getDependencyGraph;
58
24
  private trackDependency;
59
25
  private getCachedOrNew;
60
26
  private versionModule;
61
- private invalidateModule;
62
- private invalidateAllSourceFiles;
27
+ private watch;
28
+ private onFileAdded;
29
+ private onSourceFileChanged;
30
+ private onFileDeleted;
31
+ private reloadIfAffected;
63
32
  private isSelf;
33
+ private invlidateModule;
34
+ private invalidateAllSourceFiles;
35
+ private disposeAndBoot;
36
+ private disposeEntry;
37
+ private bootEntry;
64
38
  }
@@ -1,4 +1,9 @@
1
- export { FluxModule } from "./flux.module.js";
2
- export type { HotReloadServerOptions } from "./hot-reload-server.js";
3
- export { HotReloadServer } from "./hot-reload-server.js";
1
+ export { EmberCommand } from "./ember.command.js";
2
+ export type { EmberModuleContext, EmberModuleResult } from "./ember.module.js";
3
+ export { EmberActions, EmberModule } from "./ember.module.js";
4
+ export * from "./hot-reload-server.js";
4
5
  export type { ServeOptions } from "./serve.action.js";
6
+ export { ServeAction } from "./serve.action.js";
7
+ export { ServeCommand } from "./serve.command.js";
8
+ export type { WorkspaceServeOptions } from "./workspace-serve.action.js";
9
+ export { WorkspaceServeAction } from "./workspace-serve.action.js";
@@ -1,13 +1,8 @@
1
- import { Workspace } from "@decohere/mesh";
2
1
  import { type Action, ActionResponse } from "@decohere/nexus/cli";
3
- import { HotReloadServer } from "./hot-reload-server.js";
4
2
  export type ServeOptions = {
5
- configuration: string;
6
- project?: string;
3
+ entry: string;
4
+ watchDir: string;
7
5
  };
8
6
  export declare class ServeAction implements Action<ServeOptions> {
9
- private readonly server;
10
- private readonly workspace;
11
- constructor(server: HotReloadServer, workspace: Workspace);
12
7
  run(options: ServeOptions): Promise<ActionResponse>;
13
8
  }
@@ -1,6 +1,6 @@
1
1
  import { DecohereCommand } from "@decohere/nexus/cli";
2
- import { ServeAction } from "./serve.action.js";
2
+ import { WorkspaceServeAction } from "./workspace-serve.action.js";
3
3
  export declare class ServeCommand extends DecohereCommand {
4
- get actions(): (typeof ServeAction)[];
4
+ get actions(): (typeof WorkspaceServeAction)[];
5
5
  constructor(name: string);
6
6
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ import { Workspace } from "@decohere/mesh";
2
+ import type { Action } from "@decohere/nexus/cli";
3
+ import { ActionResponse } from "@decohere/nexus/cli";
4
+ export type WorkspaceServeOptions = {
5
+ configuration: string;
6
+ };
7
+ export declare class WorkspaceServeAction implements Action<WorkspaceServeOptions> {
8
+ private readonly workspace;
9
+ constructor(workspace: Workspace);
10
+ run(options: WorkspaceServeOptions): Promise<ActionResponse>;
11
+ }
@@ -1,27 +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 _servecommand = require("./serve.command.js");
13
- class FluxCommand extends _cli.DecohereCommand {
14
- constructor(commands, handler){
15
- super(FluxCommand);
16
- this.exitOverride();
17
- this.registerSubcommand({
18
- serve: _servecommand.ServeCommand,
19
- ...commands
20
- }, handler);
21
- }
22
- run(_actions, _options) {
23
- return this.help();
24
- }
25
- }
26
-
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL2ZsdXguY29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFjdGlvbnMgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHtcblx0dHlwZSBDb21tYW5kSGFuZGxlcixcblx0dHlwZSBDb21tYW5kUmVzcG9uc2UsXG5cdHR5cGUgQ29tbWFuZFR5cGUsXG5cdERlY29oZXJlQ29tbWFuZCxcbn0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jbGlcIjtcbmltcG9ydCB7IFNlcnZlQ29tbWFuZCB9IGZyb20gXCIuL3NlcnZlLmNvbW1hbmQuanNcIjtcblxuZXhwb3J0IGNsYXNzIEZsdXhDb21tYW5kIGV4dGVuZHMgRGVjb2hlcmVDb21tYW5kIHtcblx0cHVibGljIGNvbnN0cnVjdG9yKGNvbW1hbmRzOiBSZWNvcmQ8c3RyaW5nLCBDb21tYW5kVHlwZT4sIGhhbmRsZXI6IENvbW1hbmRIYW5kbGVyKSB7XG5cdFx0c3VwZXIoRmx1eENvbW1hbmQpO1xuXHRcdHRoaXMuZXhpdE92ZXJyaWRlKCk7XG5cdFx0dGhpcy5yZWdpc3RlclN1YmNvbW1hbmQoeyBzZXJ2ZTogU2VydmVDb21tYW5kLCAuLi5jb21tYW5kcyB9LCBoYW5kbGVyKTtcblx0fVxuXG5cdHB1YmxpYyBydW4oX2FjdGlvbnM6IEFjdGlvbnMsIF9vcHRpb25zOiBuZXZlcik6IFByb21pc2U8Q29tbWFuZFJlc3BvbnNlPiB7XG5cdFx0cmV0dXJuIHRoaXMuaGVscCgpO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiRmx1eENvbW1hbmQiLCJEZWNvaGVyZUNvbW1hbmQiLCJjb21tYW5kcyIsImhhbmRsZXIiLCJleGl0T3ZlcnJpZGUiLCJyZWdpc3RlclN1YmNvbW1hbmQiLCJzZXJ2ZSIsIlNlcnZlQ29tbWFuZCIsInJ1biIsIl9hY3Rpb25zIiwiX29wdGlvbnMiLCJoZWxwIl0sIm1hcHBpbmdzIjoiOzs7OytCQVNhQTs7O2VBQUFBOzs7cUJBSE47OEJBQ3NCO0FBRXRCLE1BQU1BLG9CQUFvQkMsb0JBQWU7SUFDL0MsWUFBbUJDLFFBQXFDLEVBQUVDLE9BQXVCLENBQUU7UUFDbEYsS0FBSyxDQUFDSDtRQUNOLElBQUksQ0FBQ0ksWUFBWTtRQUNqQixJQUFJLENBQUNDLGtCQUFrQixDQUFDO1lBQUVDLE9BQU9DLDBCQUFZO1lBQUUsR0FBR0wsUUFBUTtRQUFDLEdBQUdDO0lBQy9EO0lBRU9LLElBQUlDLFFBQWlCLEVBQUVDLFFBQWUsRUFBNEI7UUFDeEUsT0FBTyxJQUFJLENBQUNDLElBQUk7SUFDakI7QUFDRCJ9
@@ -1,32 +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 _fluxcommand = require("./flux.command.js");
14
- const _hotreloadserver = require("./hot-reload-server.js");
15
- const _serveaction = require("./serve.action.js");
16
- class FluxModule extends _cli.ModuleManifest {
17
- id = "flux";
18
- command = _fluxcommand.FluxCommand;
19
- actions = {
20
- serve: _serveaction.ServeAction
21
- };
22
- registerServices(builder) {
23
- builder.registerSingleton(_hotreloadserver.HotReloadServer);
24
- }
25
- createWorkspace(options) {
26
- return _mesh.WorkspaceFactory.create({
27
- configFile: options.configFile
28
- });
29
- }
30
- }
31
-
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL2ZsdXgubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdvcmtzcGFjZUZhY3RvcnkgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB0eXBlIHsgV29ya3NwYWNlRmFjdG9yeU9wdGlvbnMgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgTW9kdWxlTWFuaWZlc3QgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHR5cGUgeyBDb250YWluZXJCdWlsZGVyIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jb21wb3NpdGlvblwiO1xuaW1wb3J0IHsgRmx1eENvbW1hbmQgfSBmcm9tIFwiLi9mbHV4LmNvbW1hbmQuanNcIjtcbmltcG9ydCB7IEhvdFJlbG9hZFNlcnZlciB9IGZyb20gXCIuL2hvdC1yZWxvYWQtc2VydmVyLmpzXCI7XG5pbXBvcnQgeyBTZXJ2ZUFjdGlvbiB9IGZyb20gXCIuL3NlcnZlLmFjdGlvbi5qc1wiO1xuXG5leHBvcnQgY2xhc3MgRmx1eE1vZHVsZSBleHRlbmRzIE1vZHVsZU1hbmlmZXN0IHtcblx0cHVibGljIHJlYWRvbmx5IGlkID0gXCJmbHV4XCI7XG5cdHB1YmxpYyByZWFkb25seSBjb21tYW5kID0gRmx1eENvbW1hbmQ7XG5cdHB1YmxpYyByZWFkb25seSBhY3Rpb25zID0ge1xuXHRcdHNlcnZlOiBTZXJ2ZUFjdGlvbixcblx0fTtcblxuXHRwdWJsaWMgcmVnaXN0ZXJTZXJ2aWNlcyhidWlsZGVyOiBDb250YWluZXJCdWlsZGVyKSB7XG5cdFx0YnVpbGRlci5yZWdpc3RlclNpbmdsZXRvbihIb3RSZWxvYWRTZXJ2ZXIpO1xuXHR9XG5cblx0cHVibGljIG92ZXJyaWRlIGNyZWF0ZVdvcmtzcGFjZShvcHRpb25zOiBXb3Jrc3BhY2VGYWN0b3J5T3B0aW9ucykge1xuXHRcdHJldHVybiBXb3Jrc3BhY2VGYWN0b3J5LmNyZWF0ZSh7IGNvbmZpZ0ZpbGU6IG9wdGlvbnMuY29uZmlnRmlsZSB9KTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIkZsdXhNb2R1bGUiLCJNb2R1bGVNYW5pZmVzdCIsImlkIiwiY29tbWFuZCIsIkZsdXhDb21tYW5kIiwiYWN0aW9ucyIsInNlcnZlIiwiU2VydmVBY3Rpb24iLCJyZWdpc3RlclNlcnZpY2VzIiwiYnVpbGRlciIsInJlZ2lzdGVyU2luZ2xldG9uIiwiSG90UmVsb2FkU2VydmVyIiwiY3JlYXRlV29ya3NwYWNlIiwib3B0aW9ucyIsIldvcmtzcGFjZUZhY3RvcnkiLCJjcmVhdGUiLCJjb25maWdGaWxlIl0sIm1hcHBpbmdzIjoiOzs7OytCQVFhQTs7O2VBQUFBOzs7c0JBUm9CO3FCQUVGOzZCQUVIO2lDQUNJOzZCQUNKO0FBRXJCLE1BQU1BLG1CQUFtQkMsbUJBQWM7SUFDN0JDLEtBQUssT0FBTztJQUNaQyxVQUFVQyx3QkFBVyxDQUFDO0lBQ3RCQyxVQUFVO1FBQ3pCQyxPQUFPQyx3QkFBVztJQUNuQixFQUFFO0lBRUtDLGlCQUFpQkMsT0FBeUIsRUFBRTtRQUNsREEsUUFBUUMsaUJBQWlCLENBQUNDLGdDQUFlO0lBQzFDO0lBRWdCQyxnQkFBZ0JDLE9BQWdDLEVBQUU7UUFDakUsT0FBT0Msc0JBQWdCLENBQUNDLE1BQU0sQ0FBQztZQUFFQyxZQUFZSCxRQUFRRyxVQUFVO1FBQUM7SUFDakU7QUFDRCJ9
@@ -1,17 +0,0 @@
1
- import { DecohereCommand } from "@decohere/nexus/cli";
2
- import { ServeCommand } from "./serve.command.js";
3
- export class FluxCommand extends DecohereCommand {
4
- constructor(commands, handler){
5
- super(FluxCommand);
6
- this.exitOverride();
7
- this.registerSubcommand({
8
- serve: ServeCommand,
9
- ...commands
10
- }, handler);
11
- }
12
- run(_actions, _options) {
13
- return this.help();
14
- }
15
- }
16
-
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL2ZsdXguY29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFjdGlvbnMgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHtcblx0dHlwZSBDb21tYW5kSGFuZGxlcixcblx0dHlwZSBDb21tYW5kUmVzcG9uc2UsXG5cdHR5cGUgQ29tbWFuZFR5cGUsXG5cdERlY29oZXJlQ29tbWFuZCxcbn0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jbGlcIjtcbmltcG9ydCB7IFNlcnZlQ29tbWFuZCB9IGZyb20gXCIuL3NlcnZlLmNvbW1hbmQuanNcIjtcblxuZXhwb3J0IGNsYXNzIEZsdXhDb21tYW5kIGV4dGVuZHMgRGVjb2hlcmVDb21tYW5kIHtcblx0cHVibGljIGNvbnN0cnVjdG9yKGNvbW1hbmRzOiBSZWNvcmQ8c3RyaW5nLCBDb21tYW5kVHlwZT4sIGhhbmRsZXI6IENvbW1hbmRIYW5kbGVyKSB7XG5cdFx0c3VwZXIoRmx1eENvbW1hbmQpO1xuXHRcdHRoaXMuZXhpdE92ZXJyaWRlKCk7XG5cdFx0dGhpcy5yZWdpc3RlclN1YmNvbW1hbmQoeyBzZXJ2ZTogU2VydmVDb21tYW5kLCAuLi5jb21tYW5kcyB9LCBoYW5kbGVyKTtcblx0fVxuXG5cdHB1YmxpYyBydW4oX2FjdGlvbnM6IEFjdGlvbnMsIF9vcHRpb25zOiBuZXZlcik6IFByb21pc2U8Q29tbWFuZFJlc3BvbnNlPiB7XG5cdFx0cmV0dXJuIHRoaXMuaGVscCgpO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiRGVjb2hlcmVDb21tYW5kIiwiU2VydmVDb21tYW5kIiwiRmx1eENvbW1hbmQiLCJjb21tYW5kcyIsImhhbmRsZXIiLCJleGl0T3ZlcnJpZGUiLCJyZWdpc3RlclN1YmNvbW1hbmQiLCJzZXJ2ZSIsInJ1biIsIl9hY3Rpb25zIiwiX29wdGlvbnMiLCJoZWxwIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUlDQSxlQUFlLFFBQ1Qsc0JBQXNCO0FBQzdCLFNBQVNDLFlBQVksUUFBUSxxQkFBcUI7QUFFbEQsT0FBTyxNQUFNQyxvQkFBb0JGO0lBQ2hDLFlBQW1CRyxRQUFxQyxFQUFFQyxPQUF1QixDQUFFO1FBQ2xGLEtBQUssQ0FBQ0Y7UUFDTixJQUFJLENBQUNHLFlBQVk7UUFDakIsSUFBSSxDQUFDQyxrQkFBa0IsQ0FBQztZQUFFQyxPQUFPTjtZQUFjLEdBQUdFLFFBQVE7UUFBQyxHQUFHQztJQUMvRDtJQUVPSSxJQUFJQyxRQUFpQixFQUFFQyxRQUFlLEVBQTRCO1FBQ3hFLE9BQU8sSUFBSSxDQUFDQyxJQUFJO0lBQ2pCO0FBQ0QifQ==
@@ -1,22 +0,0 @@
1
- import { WorkspaceFactory } from "@decohere/mesh";
2
- import { ModuleManifest } from "@decohere/nexus/cli";
3
- import { FluxCommand } from "./flux.command.js";
4
- import { HotReloadServer } from "./hot-reload-server.js";
5
- import { ServeAction } from "./serve.action.js";
6
- export class FluxModule extends ModuleManifest {
7
- id = "flux";
8
- command = FluxCommand;
9
- actions = {
10
- serve: ServeAction
11
- };
12
- registerServices(builder) {
13
- builder.registerSingleton(HotReloadServer);
14
- }
15
- createWorkspace(options) {
16
- return WorkspaceFactory.create({
17
- configFile: options.configFile
18
- });
19
- }
20
- }
21
-
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZsdXgvc3JjL2ZsdXgubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdvcmtzcGFjZUZhY3RvcnkgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB0eXBlIHsgV29ya3NwYWNlRmFjdG9yeU9wdGlvbnMgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgTW9kdWxlTWFuaWZlc3QgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHR5cGUgeyBDb250YWluZXJCdWlsZGVyIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jb21wb3NpdGlvblwiO1xuaW1wb3J0IHsgRmx1eENvbW1hbmQgfSBmcm9tIFwiLi9mbHV4LmNvbW1hbmQuanNcIjtcbmltcG9ydCB7IEhvdFJlbG9hZFNlcnZlciB9IGZyb20gXCIuL2hvdC1yZWxvYWQtc2VydmVyLmpzXCI7XG5pbXBvcnQgeyBTZXJ2ZUFjdGlvbiB9IGZyb20gXCIuL3NlcnZlLmFjdGlvbi5qc1wiO1xuXG5leHBvcnQgY2xhc3MgRmx1eE1vZHVsZSBleHRlbmRzIE1vZHVsZU1hbmlmZXN0IHtcblx0cHVibGljIHJlYWRvbmx5IGlkID0gXCJmbHV4XCI7XG5cdHB1YmxpYyByZWFkb25seSBjb21tYW5kID0gRmx1eENvbW1hbmQ7XG5cdHB1YmxpYyByZWFkb25seSBhY3Rpb25zID0ge1xuXHRcdHNlcnZlOiBTZXJ2ZUFjdGlvbixcblx0fTtcblxuXHRwdWJsaWMgcmVnaXN0ZXJTZXJ2aWNlcyhidWlsZGVyOiBDb250YWluZXJCdWlsZGVyKSB7XG5cdFx0YnVpbGRlci5yZWdpc3RlclNpbmdsZXRvbihIb3RSZWxvYWRTZXJ2ZXIpO1xuXHR9XG5cblx0cHVibGljIG92ZXJyaWRlIGNyZWF0ZVdvcmtzcGFjZShvcHRpb25zOiBXb3Jrc3BhY2VGYWN0b3J5T3B0aW9ucykge1xuXHRcdHJldHVybiBXb3Jrc3BhY2VGYWN0b3J5LmNyZWF0ZSh7IGNvbmZpZ0ZpbGU6IG9wdGlvbnMuY29uZmlnRmlsZSB9KTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIldvcmtzcGFjZUZhY3RvcnkiLCJNb2R1bGVNYW5pZmVzdCIsIkZsdXhDb21tYW5kIiwiSG90UmVsb2FkU2VydmVyIiwiU2VydmVBY3Rpb24iLCJGbHV4TW9kdWxlIiwiaWQiLCJjb21tYW5kIiwiYWN0aW9ucyIsInNlcnZlIiwicmVnaXN0ZXJTZXJ2aWNlcyIsImJ1aWxkZXIiLCJyZWdpc3RlclNpbmdsZXRvbiIsImNyZWF0ZVdvcmtzcGFjZSIsIm9wdGlvbnMiLCJjcmVhdGUiLCJjb25maWdGaWxlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxnQkFBZ0IsUUFBUSxpQkFBaUI7QUFFbEQsU0FBU0MsY0FBYyxRQUFRLHNCQUFzQjtBQUVyRCxTQUFTQyxXQUFXLFFBQVEsb0JBQW9CO0FBQ2hELFNBQVNDLGVBQWUsUUFBUSx5QkFBeUI7QUFDekQsU0FBU0MsV0FBVyxRQUFRLG9CQUFvQjtBQUVoRCxPQUFPLE1BQU1DLG1CQUFtQko7SUFDZkssS0FBSyxPQUFPO0lBQ1pDLFVBQVVMLFlBQVk7SUFDdEJNLFVBQVU7UUFDekJDLE9BQU9MO0lBQ1IsRUFBRTtJQUVLTSxpQkFBaUJDLE9BQXlCLEVBQUU7UUFDbERBLFFBQVFDLGlCQUFpQixDQUFDVDtJQUMzQjtJQUVnQlUsZ0JBQWdCQyxPQUFnQyxFQUFFO1FBQ2pFLE9BQU9kLGlCQUFpQmUsTUFBTSxDQUFDO1lBQUVDLFlBQVlGLFFBQVFFLFVBQVU7UUFBQztJQUNqRTtBQUNEIn0=
@@ -1,14 +0,0 @@
1
- import type { WorkspaceFactoryOptions } from "@decohere/nexus/cli";
2
- import { ModuleManifest } from "@decohere/nexus/cli";
3
- import type { ContainerBuilder } from "@decohere/nexus/composition";
4
- import { FluxCommand } from "./flux.command.js";
5
- import { ServeAction } from "./serve.action.js";
6
- export declare class FluxModule extends ModuleManifest {
7
- readonly id = "flux";
8
- readonly command: typeof FluxCommand;
9
- readonly actions: {
10
- serve: typeof ServeAction;
11
- };
12
- registerServices(builder: ContainerBuilder): void;
13
- createWorkspace(options: WorkspaceFactoryOptions): Promise<import("@decohere/mesh").Workspace>;
14
- }