@mmapp/react-compiler 0.1.0-alpha.1 → 0.1.0-alpha.3
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/ATOM-PIPELINE.md +144 -0
- package/README.md +88 -40
- package/dist/babel/index.js +113 -6
- package/dist/babel/index.mjs +2 -2
- package/dist/chunk-3USIFFE4.mjs +2190 -0
- package/dist/chunk-45YMGEVT.mjs +186 -0
- package/dist/chunk-4FN2AISW.mjs +148 -0
- package/dist/chunk-4OPI5L7G.mjs +2593 -0
- package/dist/chunk-4RYTKOOJ.mjs +186 -0
- package/dist/chunk-5RKTOVR5.mjs +244 -0
- package/dist/chunk-5YDMOO4X.mjs +214 -0
- package/dist/chunk-64ZWEMLJ.mjs +148 -0
- package/dist/chunk-6XP4KSWQ.mjs +2190 -0
- package/dist/chunk-72QWL54I.mjs +175 -0
- package/dist/chunk-7B4TRI7C.mjs +4835 -0
- package/dist/chunk-7ZKGHTNB.mjs +4952 -0
- package/dist/chunk-CIESM3BP.mjs +33 -0
- package/dist/chunk-DE3ZGQAC.mjs +148 -0
- package/dist/chunk-DMCY3BBG.mjs +1933 -0
- package/dist/chunk-DPIK3PJS.mjs +244 -0
- package/dist/chunk-E5IVH4RE.mjs +186 -0
- package/dist/chunk-E6FZNUR5.mjs +4953 -0
- package/dist/chunk-EJRBDQDP.mjs +2607 -0
- package/dist/chunk-ELO4TXJL.mjs +186 -0
- package/dist/chunk-FKRO52XH.mjs +3446 -0
- package/dist/chunk-FL4YAKU6.mjs +4941 -0
- package/dist/chunk-FYT47UBU.mjs +5076 -0
- package/dist/chunk-GCLGPOJZ.mjs +148 -0
- package/dist/chunk-GXB4JOP7.mjs +5072 -0
- package/dist/chunk-HFXOUMTD.mjs +175 -0
- package/dist/chunk-HWIZ47US.mjs +214 -0
- package/dist/chunk-IB7MNPQL.mjs +4953 -0
- package/dist/chunk-ICSIHQCG.mjs +148 -0
- package/dist/chunk-JLA5VNQ3.mjs +186 -0
- package/dist/chunk-JQLWFCTM.mjs +214 -0
- package/dist/chunk-KFJJCQAL.mjs +148 -0
- package/dist/chunk-KJUIIEQE.mjs +186 -0
- package/dist/chunk-KNWTHRVQ.mjs +175 -0
- package/dist/chunk-KSG4XSZF.mjs +175 -0
- package/dist/chunk-LF5N6DOU.mjs +175 -0
- package/dist/chunk-LJQCM2IM.mjs +214 -0
- package/dist/chunk-NW6555WJ.mjs +186 -0
- package/dist/chunk-OMZE6VLQ.mjs +214 -0
- package/dist/chunk-P4BR7WVO.mjs +2190 -0
- package/dist/chunk-QQHVYH2X.mjs +244 -0
- package/dist/chunk-S5QLWLLT.mjs +186 -0
- package/dist/chunk-SCWGT2FY.mjs +2190 -0
- package/dist/chunk-SMKJUSB3.mjs +2190 -0
- package/dist/chunk-VCAY2KGM.mjs +175 -0
- package/dist/chunk-WECAV6QB.mjs +148 -0
- package/dist/chunk-WMKBXUCE.mjs +3228 -0
- package/dist/chunk-XAJ5BKKL.mjs +4947 -0
- package/dist/chunk-XG2X7AEA.mjs +175 -0
- package/dist/chunk-XG7Z23NQ.mjs +148 -0
- package/dist/chunk-XWZAOCQ7.mjs +2607 -0
- package/dist/chunk-Y6MA7ULW.mjs +148 -0
- package/dist/chunk-YMS7Q7LG.mjs +214 -0
- package/dist/chunk-ZA37XTGA.mjs +175 -0
- package/dist/cli/index.js +1616 -366
- package/dist/cli/index.mjs +8 -8
- package/dist/codemod/cli.mjs +1 -1
- package/dist/codemod/index.mjs +1 -1
- package/dist/dev-server-RmGHIntF.d.mts +113 -0
- package/dist/dev-server-RmGHIntF.d.ts +113 -0
- package/dist/dev-server.d.mts +1 -1
- package/dist/dev-server.d.ts +1 -1
- package/dist/dev-server.js +982 -53
- package/dist/dev-server.mjs +5 -5
- package/dist/envelope.js +113 -6
- package/dist/envelope.mjs +3 -3
- package/dist/index.d.mts +5 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +992 -63
- package/dist/index.mjs +8 -8
- package/{src/cli/init.ts → dist/init-7JQMAAXS.mjs} +70 -95
- package/dist/init-EHO4VQ22.mjs +369 -0
- package/dist/init-UC3FWPIW.mjs +367 -0
- package/dist/init-UNSMVKIK.mjs +366 -0
- package/dist/init-UNV5XIDE.mjs +367 -0
- package/dist/project-compiler-2P4N4DR7.mjs +10 -0
- package/dist/project-compiler-D2LCC27O.mjs +10 -0
- package/dist/project-compiler-EJ3GANJE.mjs +10 -0
- package/dist/project-compiler-LOQKVRZJ.mjs +10 -0
- package/dist/project-compiler-RQ6OQKRM.mjs +10 -0
- package/dist/project-compiler-VWNNCHGO.mjs +10 -0
- package/dist/project-compiler-XVAAU4C5.mjs +10 -0
- package/dist/project-compiler-YES5FGMD.mjs +10 -0
- package/dist/project-compiler-ZKMQDLGU.mjs +10 -0
- package/dist/project-decompiler-FLXCEJHS.mjs +7 -0
- package/dist/project-decompiler-VLPR22QF.mjs +7 -0
- package/dist/pull-FUS5QYZS.mjs +109 -0
- package/dist/pull-LD5ENLGY.mjs +109 -0
- package/dist/testing/index.js +113 -6
- package/dist/testing/index.mjs +2 -2
- package/dist/vite/index.js +113 -6
- package/dist/vite/index.mjs +3 -3
- package/examples/uber-app/app/admin/fleet.tsx +19 -19
- package/package.json +4 -3
- package/compile-blueprint-chat.mjs +0 -99
- package/compile-blueprint-glass-console.mjs +0 -98
- package/compile-chat-defs.mjs +0 -92
- package/examples/uber-app/tests/payment.test.tsx +0 -129
- package/examples/uber-app/tests/ride-flow.test.tsx +0 -123
- package/package.json.backup +0 -86
- package/scripts/decompile.ts +0 -226
- package/scripts/seed-auth.ts +0 -267
- package/scripts/seed-uber.ts +0 -248
- package/scripts/validate-uber.ts +0 -119
- package/seed-blueprint-chat.mjs +0 -444
- package/seed-blueprint-glass-console.mjs +0 -445
- package/seed-compiled.mjs +0 -318
- package/src/RoundTripValidator.ts +0 -400
- package/src/__tests__/atom-rendering-coverage.test.ts +0 -680
- package/src/__tests__/auth-module-compilation.test.ts +0 -247
- package/src/__tests__/auth-template-compilation.test.ts +0 -589
- package/src/__tests__/change-extractor.test.ts +0 -142
- package/src/__tests__/cli-pull.test.ts +0 -73
- package/src/__tests__/cli-test.test.ts +0 -72
- package/src/__tests__/component-extractor.test.ts +0 -331
- package/src/__tests__/context-extractor.test.ts +0 -145
- package/src/__tests__/decompiler.test.ts +0 -718
- package/src/__tests__/define-blueprint.test.ts +0 -133
- package/src/__tests__/definition-validator.test.ts +0 -519
- package/src/__tests__/during-extractor.test.ts +0 -152
- package/src/__tests__/effect-extractor.test.ts +0 -107
- package/src/__tests__/event-emission.test.ts +0 -127
- package/src/__tests__/examples.test.ts +0 -236
- package/src/__tests__/full-blueprint-coverage.test.ts +0 -1221
- package/src/__tests__/golden-suite.test.ts +0 -403
- package/src/__tests__/grammar-island-extractor.test.ts +0 -289
- package/src/__tests__/instance-key.test.ts +0 -82
- package/src/__tests__/ir-migration.test.ts +0 -255
- package/src/__tests__/lock-file.test.ts +0 -117
- package/src/__tests__/model-extractor.test.ts +0 -195
- package/src/__tests__/model-field-acl.test.ts +0 -237
- package/src/__tests__/model-hooks.test.ts +0 -130
- package/src/__tests__/model-ref-resolution.test.ts +0 -268
- package/src/__tests__/model-roundtrip.test.ts +0 -502
- package/src/__tests__/model-runtime.test.ts +0 -112
- package/src/__tests__/model-transitions.test.ts +0 -183
- package/src/__tests__/nrt-action-trace.test.ts +0 -391
- package/src/__tests__/pipeline-hardening.test.ts +0 -413
- package/src/__tests__/project-compiler.test.ts +0 -546
- package/src/__tests__/project-decompiler.test.ts +0 -343
- package/src/__tests__/query-compilation.test.ts +0 -145
- package/src/__tests__/round-trip/PLAN.md +0 -158
- package/src/__tests__/round-trip/README.md +0 -52
- package/src/__tests__/round-trip/RESULTS.md +0 -86
- package/src/__tests__/round-trip/fixtures/data-heavy/main.workflow.tsx +0 -55
- package/src/__tests__/round-trip/fixtures/data-heavy/mm.config.ts +0 -11
- package/src/__tests__/round-trip/fixtures/data-heavy/models/contact.ts +0 -54
- package/src/__tests__/round-trip/fixtures/full-workflow/main.workflow.tsx +0 -79
- package/src/__tests__/round-trip/fixtures/full-workflow/mm.config.ts +0 -12
- package/src/__tests__/round-trip/fixtures/full-workflow/models/order.ts +0 -50
- package/src/__tests__/round-trip/fixtures/simple-crud/main.workflow.tsx +0 -25
- package/src/__tests__/round-trip/fixtures/simple-crud/mm.config.ts +0 -11
- package/src/__tests__/round-trip/fixtures/simple-crud/models/task.ts +0 -32
- package/src/__tests__/round-trip/fixtures/view-heavy/main.workflow.tsx +0 -79
- package/src/__tests__/round-trip/fixtures/view-heavy/mm.config.ts +0 -10
- package/src/__tests__/round-trip/round-trip.test.ts +0 -2598
- package/src/__tests__/round-trip-ir.test.ts +0 -300
- package/src/__tests__/round-trip.test.ts +0 -1212
- package/src/__tests__/route-merging.test.ts +0 -372
- package/src/__tests__/router-composition.test.ts +0 -489
- package/src/__tests__/router-extractor.test.ts +0 -176
- package/src/__tests__/server-action-extractor.test.ts +0 -128
- package/src/__tests__/smart-type-inference.test.ts +0 -365
- package/src/__tests__/source-envelope.test.ts +0 -284
- package/src/__tests__/source-fidelity.test.ts +0 -516
- package/src/__tests__/state-extractor.test.ts +0 -115
- package/src/__tests__/strict-mode.test.ts +0 -227
- package/src/__tests__/transition-effect-extractor.test.ts +0 -119
- package/src/__tests__/transition-extractor.test.ts +0 -68
- package/src/__tests__/ts-to-expression.test.ts +0 -462
- package/src/__tests__/type-generator.test.ts +0 -201
- package/src/__tests__/uber-validation.test.ts +0 -502
- package/src/action-compiler.ts +0 -361
- package/src/babel/emitters/experience-transform.ts +0 -199
- package/src/babel/emitters/ir-to-tsx-emitter.ts +0 -110
- package/src/babel/emitters/pure-form-emitter.ts +0 -1023
- package/src/babel/emitters/runtime-glue-emitter.ts +0 -39
- package/src/babel/extractors/change-extractor.ts +0 -199
- package/src/babel/extractors/component-extractor.ts +0 -907
- package/src/babel/extractors/computed-extractor.ts +0 -262
- package/src/babel/extractors/context-extractor.ts +0 -277
- package/src/babel/extractors/during-extractor.ts +0 -295
- package/src/babel/extractors/effect-extractor.ts +0 -340
- package/src/babel/extractors/event-extractor.ts +0 -235
- package/src/babel/extractors/grammar-island-extractor.ts +0 -302
- package/src/babel/extractors/model-extractor.ts +0 -1018
- package/src/babel/extractors/router-extractor.ts +0 -303
- package/src/babel/extractors/server-action-extractor.ts +0 -173
- package/src/babel/extractors/server-action-hook-extractor.ts +0 -72
- package/src/babel/extractors/server-state-extractor.ts +0 -88
- package/src/babel/extractors/state-extractor.ts +0 -214
- package/src/babel/extractors/transition-effect-extractor.ts +0 -176
- package/src/babel/extractors/transition-extractor.ts +0 -143
- package/src/babel/index.ts +0 -24
- package/src/babel/transpilers/ts-to-expression.ts +0 -674
- package/src/babel/visitor.ts +0 -807
- package/src/cli/auth.ts +0 -255
- package/src/cli/build.ts +0 -288
- package/src/cli/deploy.ts +0 -206
- package/src/cli/index.ts +0 -328
- package/src/cli/installer.ts +0 -261
- package/src/cli/lock-file.ts +0 -94
- package/src/cli/mmrc.ts +0 -22
- package/src/cli/pull.ts +0 -172
- package/src/cli/registry-client.ts +0 -175
- package/src/cli/test.ts +0 -397
- package/src/cli/type-generator.ts +0 -243
- package/src/codemod/__tests__/forward.test.ts +0 -239
- package/src/codemod/__tests__/reverse.test.ts +0 -145
- package/src/codemod/__tests__/round-trip.test.ts +0 -137
- package/src/codemod/annotation.ts +0 -97
- package/src/codemod/classify.ts +0 -197
- package/src/codemod/cli.ts +0 -207
- package/src/codemod/control-flow.ts +0 -409
- package/src/codemod/forward.ts +0 -244
- package/src/codemod/import-manager.ts +0 -171
- package/src/codemod/index.ts +0 -120
- package/src/codemod/reverse.ts +0 -197
- package/src/codemod/rules.ts +0 -174
- package/src/codemod/state-transform.ts +0 -126
- package/src/decompiler/ast-builder.ts +0 -538
- package/src/decompiler/config-generator.ts +0 -151
- package/src/decompiler/index.ts +0 -315
- package/src/decompiler/project-decompiler.ts +0 -1776
- package/src/decompiler/project.ts +0 -862
- package/src/decompiler/split-strategy.ts +0 -140
- package/src/decompiler/state-emitter.ts +0 -1053
- package/src/decompiler/sx-emitter.ts +0 -318
- package/src/decompiler/workspace-hydrator.ts +0 -189
- package/src/dev-server.ts +0 -238
- package/src/envelope/fs-tree.ts +0 -217
- package/src/envelope/source-envelope.ts +0 -264
- package/src/envelope.ts +0 -315
- package/src/incremental-compiler.ts +0 -401
- package/src/index.ts +0 -99
- package/src/model-compiler.ts +0 -277
- package/src/project-compiler.ts +0 -1629
- package/src/route-extractor.ts +0 -333
- package/src/testing/index.ts +0 -32
- package/src/testing/snapshot.ts +0 -252
- package/src/testing/test-utils.ts +0 -226
- package/src/types.ts +0 -68
- package/src/vite/index.ts +0 -288
- package/test-compile.mjs +0 -142
- package/tsconfig.json +0 -25
- package/tsup.config.ts +0 -23
- package/vitest.config.ts +0 -9
package/dist/cli/index.mjs
CHANGED
|
@@ -4,12 +4,12 @@ import {
|
|
|
4
4
|
} from "../chunk-EQGA6A6D.mjs";
|
|
5
5
|
import {
|
|
6
6
|
build
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-5RKTOVR5.mjs";
|
|
8
8
|
import "../chunk-5M7DKKBC.mjs";
|
|
9
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-FYT47UBU.mjs";
|
|
10
10
|
import {
|
|
11
11
|
__require
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-CIESM3BP.mjs";
|
|
13
13
|
|
|
14
14
|
// src/cli/test.ts
|
|
15
15
|
import { glob } from "glob";
|
|
@@ -39,8 +39,8 @@ async function test(options = {}) {
|
|
|
39
39
|
const rel = f.startsWith(srcDir + "/") ? f.slice(srcDir.length + 1) : f;
|
|
40
40
|
fileMap[rel] = readFileSync(f, "utf-8");
|
|
41
41
|
}
|
|
42
|
-
const { compileProject } = await import("../project-compiler-
|
|
43
|
-
const { decompileProjectEnhanced } = await import("../project-decompiler-
|
|
42
|
+
const { compileProject } = await import("../project-compiler-D2LCC27O.mjs");
|
|
43
|
+
const { decompileProjectEnhanced } = await import("../project-decompiler-FLXCEJHS.mjs");
|
|
44
44
|
process.stdout.write(` Compiling project...`);
|
|
45
45
|
const t0 = performance.now();
|
|
46
46
|
let ir1;
|
|
@@ -514,7 +514,7 @@ async function main() {
|
|
|
514
514
|
const { glob: glob2 } = await import("glob");
|
|
515
515
|
const configPath = resolve2(srcDir, "mm.config.ts");
|
|
516
516
|
if (existsSync3(configPath)) {
|
|
517
|
-
const { compileProject } = await import("../project-compiler-
|
|
517
|
+
const { compileProject } = await import("../project-compiler-D2LCC27O.mjs");
|
|
518
518
|
const allFiles = await glob2(`${srcDir}/**/*.{ts,tsx}`, {
|
|
519
519
|
ignore: ["**/node_modules/**", "**/dist/**", "**/__tests__/**", "**/*.test.*"]
|
|
520
520
|
});
|
|
@@ -577,7 +577,7 @@ async function main() {
|
|
|
577
577
|
console.error('[mmrc] Error: name is required\n Usage: mmrc init <name> [--description "..."] [--icon "..."] [--author "..."]');
|
|
578
578
|
process.exit(1);
|
|
579
579
|
}
|
|
580
|
-
const { init } = await import("../init-
|
|
580
|
+
const { init } = await import("../init-UC3FWPIW.mjs");
|
|
581
581
|
await init({
|
|
582
582
|
name,
|
|
583
583
|
description: getFlag("--description"),
|
|
@@ -600,7 +600,7 @@ async function main() {
|
|
|
600
600
|
console.error(" 3. Set MMRC_TOKEN environment variable");
|
|
601
601
|
process.exit(1);
|
|
602
602
|
}
|
|
603
|
-
const { pull } = await import("../pull-
|
|
603
|
+
const { pull } = await import("../pull-LD5ENLGY.mjs");
|
|
604
604
|
await pull({ slug, apiUrl, token, outDir });
|
|
605
605
|
} else {
|
|
606
606
|
console.log(`
|
package/dist/codemod/cli.mjs
CHANGED
package/dist/codemod/index.mjs
CHANGED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { ViteDevServer } from 'vite';
|
|
2
|
+
import { IRWorkflowDefinition } from '@mindmatrix/player-core';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* CLI Build Command — compiles workflow files to Pure Form JSON.
|
|
6
|
+
*
|
|
7
|
+
* Supports three file types:
|
|
8
|
+
* - *.workflow.tsx — React workflow components
|
|
9
|
+
* - models/*.ts — TypeScript model files
|
|
10
|
+
* - *.server.ts — Server action files
|
|
11
|
+
*
|
|
12
|
+
* Produces:
|
|
13
|
+
* - *.workflow.json — IR (Pure Form)
|
|
14
|
+
* - *.json — Engine-compatible definition
|
|
15
|
+
* - envelope.json — Source envelope with file manifest
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
interface BuildOptions {
|
|
19
|
+
src?: string;
|
|
20
|
+
outDir?: string;
|
|
21
|
+
mode?: 'strict' | 'infer';
|
|
22
|
+
/** Generate source envelope. */
|
|
23
|
+
envelope?: boolean;
|
|
24
|
+
/** Blueprint slug for envelope. */
|
|
25
|
+
slug?: string;
|
|
26
|
+
/** Blueprint version for envelope. */
|
|
27
|
+
version?: string;
|
|
28
|
+
/** Skip TypeScript type checking (not recommended). */
|
|
29
|
+
skipTypeCheck?: boolean;
|
|
30
|
+
/** Watch mode: auto-recompile on file changes. */
|
|
31
|
+
watch?: boolean;
|
|
32
|
+
}
|
|
33
|
+
interface BuildResult {
|
|
34
|
+
compiled: number;
|
|
35
|
+
errors: number;
|
|
36
|
+
warnings: number;
|
|
37
|
+
definitions: IRWorkflowDefinition[];
|
|
38
|
+
errorDetails: {
|
|
39
|
+
file: string;
|
|
40
|
+
message: string;
|
|
41
|
+
line?: number;
|
|
42
|
+
}[];
|
|
43
|
+
}
|
|
44
|
+
declare function build(options?: BuildOptions): Promise<BuildResult>;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Dev Server — Vite-based development server for MindMatrix React workflows.
|
|
48
|
+
*
|
|
49
|
+
* Uses the Vite plugin to watch .workflow.tsx files. On file change:
|
|
50
|
+
* 1. Compile through Babel plugin → extract IR
|
|
51
|
+
* 2. Diff IR against last known state
|
|
52
|
+
* 3. Notify connected frontends via WebSocket
|
|
53
|
+
* 4. Optionally seed definitions to the dev API
|
|
54
|
+
*
|
|
55
|
+
* Usage (programmatic):
|
|
56
|
+
* import { createDevServer } from '@mindmatrix/react-compiler';
|
|
57
|
+
* const server = await createDevServer({ port: 5199 });
|
|
58
|
+
* // ... server.close() to stop
|
|
59
|
+
*
|
|
60
|
+
* Usage (CLI):
|
|
61
|
+
* mmrc dev --port 5199 --src src/workflows --seed
|
|
62
|
+
*/
|
|
63
|
+
|
|
64
|
+
/** Minimal WebSocket interface — avoids requiring @types/ws at compile time */
|
|
65
|
+
interface WsClient {
|
|
66
|
+
readyState: number;
|
|
67
|
+
send(data: string): void;
|
|
68
|
+
close(): void;
|
|
69
|
+
on(event: string, listener: (...args: unknown[]) => void): void;
|
|
70
|
+
}
|
|
71
|
+
interface DevServerOptions {
|
|
72
|
+
/** Port for the dev server. Default: 5199 */
|
|
73
|
+
port?: number;
|
|
74
|
+
/** Source directory to watch. Default: 'src/workflows' */
|
|
75
|
+
src?: string;
|
|
76
|
+
/** Compilation mode. Default: 'infer' */
|
|
77
|
+
mode?: 'strict' | 'infer';
|
|
78
|
+
/** Glob patterns for workflow files. Default: ['**\/*.workflow.tsx'] */
|
|
79
|
+
include?: string[];
|
|
80
|
+
/** Output directory for .workflow.json sidecar files. Default: 'dist/workflows' */
|
|
81
|
+
outDir?: string;
|
|
82
|
+
/** Seed compiled definitions to the dev API on change. Default: false */
|
|
83
|
+
seed?: boolean;
|
|
84
|
+
/** Dev API base URL. Default: 'http://localhost:4200/api/v1' */
|
|
85
|
+
apiUrl?: string;
|
|
86
|
+
/** Auth token for dev API. Default: reads from MINDMATRIX_TOKEN env */
|
|
87
|
+
authToken?: string;
|
|
88
|
+
/** Enable WebSocket notification channel. Default: true */
|
|
89
|
+
ws?: boolean;
|
|
90
|
+
/** Open browser on start. Default: false */
|
|
91
|
+
open?: boolean;
|
|
92
|
+
}
|
|
93
|
+
interface DevServerInstance {
|
|
94
|
+
/** The underlying Vite dev server */
|
|
95
|
+
vite: ViteDevServer;
|
|
96
|
+
/** Port the server is running on */
|
|
97
|
+
port: number;
|
|
98
|
+
/** Connected WebSocket clients */
|
|
99
|
+
clients: Set<WsClient>;
|
|
100
|
+
/** Trigger a full rebuild of all workflow files */
|
|
101
|
+
rebuild: () => Promise<BuildResult>;
|
|
102
|
+
/** Stop the dev server */
|
|
103
|
+
close: () => Promise<void>;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Create and start a MindMatrix dev server.
|
|
107
|
+
*
|
|
108
|
+
* This is a thin Vite server configured with the mindmatrixReact plugin,
|
|
109
|
+
* plus a WebSocket channel that pushes compile events to connected editors.
|
|
110
|
+
*/
|
|
111
|
+
declare function createDevServer(options?: DevServerOptions): Promise<DevServerInstance>;
|
|
112
|
+
|
|
113
|
+
export { type BuildOptions as B, type DevServerOptions as D, type DevServerInstance as a, build as b, createDevServer as c, type BuildResult as d };
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { ViteDevServer } from 'vite';
|
|
2
|
+
import { IRWorkflowDefinition } from '@mindmatrix/player-core';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* CLI Build Command — compiles workflow files to Pure Form JSON.
|
|
6
|
+
*
|
|
7
|
+
* Supports three file types:
|
|
8
|
+
* - *.workflow.tsx — React workflow components
|
|
9
|
+
* - models/*.ts — TypeScript model files
|
|
10
|
+
* - *.server.ts — Server action files
|
|
11
|
+
*
|
|
12
|
+
* Produces:
|
|
13
|
+
* - *.workflow.json — IR (Pure Form)
|
|
14
|
+
* - *.json — Engine-compatible definition
|
|
15
|
+
* - envelope.json — Source envelope with file manifest
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
interface BuildOptions {
|
|
19
|
+
src?: string;
|
|
20
|
+
outDir?: string;
|
|
21
|
+
mode?: 'strict' | 'infer';
|
|
22
|
+
/** Generate source envelope. */
|
|
23
|
+
envelope?: boolean;
|
|
24
|
+
/** Blueprint slug for envelope. */
|
|
25
|
+
slug?: string;
|
|
26
|
+
/** Blueprint version for envelope. */
|
|
27
|
+
version?: string;
|
|
28
|
+
/** Skip TypeScript type checking (not recommended). */
|
|
29
|
+
skipTypeCheck?: boolean;
|
|
30
|
+
/** Watch mode: auto-recompile on file changes. */
|
|
31
|
+
watch?: boolean;
|
|
32
|
+
}
|
|
33
|
+
interface BuildResult {
|
|
34
|
+
compiled: number;
|
|
35
|
+
errors: number;
|
|
36
|
+
warnings: number;
|
|
37
|
+
definitions: IRWorkflowDefinition[];
|
|
38
|
+
errorDetails: {
|
|
39
|
+
file: string;
|
|
40
|
+
message: string;
|
|
41
|
+
line?: number;
|
|
42
|
+
}[];
|
|
43
|
+
}
|
|
44
|
+
declare function build(options?: BuildOptions): Promise<BuildResult>;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Dev Server — Vite-based development server for MindMatrix React workflows.
|
|
48
|
+
*
|
|
49
|
+
* Uses the Vite plugin to watch .workflow.tsx files. On file change:
|
|
50
|
+
* 1. Compile through Babel plugin → extract IR
|
|
51
|
+
* 2. Diff IR against last known state
|
|
52
|
+
* 3. Notify connected frontends via WebSocket
|
|
53
|
+
* 4. Optionally seed definitions to the dev API
|
|
54
|
+
*
|
|
55
|
+
* Usage (programmatic):
|
|
56
|
+
* import { createDevServer } from '@mindmatrix/react-compiler';
|
|
57
|
+
* const server = await createDevServer({ port: 5199 });
|
|
58
|
+
* // ... server.close() to stop
|
|
59
|
+
*
|
|
60
|
+
* Usage (CLI):
|
|
61
|
+
* mmrc dev --port 5199 --src src/workflows --seed
|
|
62
|
+
*/
|
|
63
|
+
|
|
64
|
+
/** Minimal WebSocket interface — avoids requiring @types/ws at compile time */
|
|
65
|
+
interface WsClient {
|
|
66
|
+
readyState: number;
|
|
67
|
+
send(data: string): void;
|
|
68
|
+
close(): void;
|
|
69
|
+
on(event: string, listener: (...args: unknown[]) => void): void;
|
|
70
|
+
}
|
|
71
|
+
interface DevServerOptions {
|
|
72
|
+
/** Port for the dev server. Default: 5199 */
|
|
73
|
+
port?: number;
|
|
74
|
+
/** Source directory to watch. Default: 'src/workflows' */
|
|
75
|
+
src?: string;
|
|
76
|
+
/** Compilation mode. Default: 'infer' */
|
|
77
|
+
mode?: 'strict' | 'infer';
|
|
78
|
+
/** Glob patterns for workflow files. Default: ['**\/*.workflow.tsx'] */
|
|
79
|
+
include?: string[];
|
|
80
|
+
/** Output directory for .workflow.json sidecar files. Default: 'dist/workflows' */
|
|
81
|
+
outDir?: string;
|
|
82
|
+
/** Seed compiled definitions to the dev API on change. Default: false */
|
|
83
|
+
seed?: boolean;
|
|
84
|
+
/** Dev API base URL. Default: 'http://localhost:4200/api/v1' */
|
|
85
|
+
apiUrl?: string;
|
|
86
|
+
/** Auth token for dev API. Default: reads from MINDMATRIX_TOKEN env */
|
|
87
|
+
authToken?: string;
|
|
88
|
+
/** Enable WebSocket notification channel. Default: true */
|
|
89
|
+
ws?: boolean;
|
|
90
|
+
/** Open browser on start. Default: false */
|
|
91
|
+
open?: boolean;
|
|
92
|
+
}
|
|
93
|
+
interface DevServerInstance {
|
|
94
|
+
/** The underlying Vite dev server */
|
|
95
|
+
vite: ViteDevServer;
|
|
96
|
+
/** Port the server is running on */
|
|
97
|
+
port: number;
|
|
98
|
+
/** Connected WebSocket clients */
|
|
99
|
+
clients: Set<WsClient>;
|
|
100
|
+
/** Trigger a full rebuild of all workflow files */
|
|
101
|
+
rebuild: () => Promise<BuildResult>;
|
|
102
|
+
/** Stop the dev server */
|
|
103
|
+
close: () => Promise<void>;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Create and start a MindMatrix dev server.
|
|
107
|
+
*
|
|
108
|
+
* This is a thin Vite server configured with the mindmatrixReact plugin,
|
|
109
|
+
* plus a WebSocket channel that pushes compile events to connected editors.
|
|
110
|
+
*/
|
|
111
|
+
declare function createDevServer(options?: DevServerOptions): Promise<DevServerInstance>;
|
|
112
|
+
|
|
113
|
+
export { type BuildOptions as B, type DevServerOptions as D, type DevServerInstance as a, build as b, createDevServer as c, type BuildResult as d };
|
package/dist/dev-server.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import 'vite';
|
|
2
|
-
export { a as DevServerInstance, D as DevServerOptions, c as createDevServer } from './dev-server-
|
|
2
|
+
export { a as DevServerInstance, D as DevServerOptions, c as createDevServer } from './dev-server-RmGHIntF.mjs';
|
|
3
3
|
import '@mindmatrix/player-core';
|
package/dist/dev-server.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import 'vite';
|
|
2
|
-
export { a as DevServerInstance, D as DevServerOptions, c as createDevServer } from './dev-server-
|
|
2
|
+
export { a as DevServerInstance, D as DevServerOptions, c as createDevServer } from './dev-server-RmGHIntF.js';
|
|
3
3
|
import '@mindmatrix/player-core';
|