@mmapp/react-compiler 0.1.0-alpha.4 → 0.1.0-alpha.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.
Files changed (103) hide show
  1. package/dist/babel/index.d.mts +2 -2
  2. package/dist/babel/index.d.ts +2 -2
  3. package/dist/babel/index.js +5 -5
  4. package/dist/babel/index.mjs +1 -1
  5. package/dist/cli/index.js +797 -1941
  6. package/dist/cli/index.mjs +179 -77
  7. package/dist/codemod/cli.js +1 -1
  8. package/dist/codemod/cli.mjs +1 -1
  9. package/dist/codemod/index.d.mts +3 -3
  10. package/dist/codemod/index.d.ts +3 -3
  11. package/dist/codemod/index.js +1 -1
  12. package/dist/codemod/index.mjs +1 -1
  13. package/dist/dev-server.d.mts +2 -2
  14. package/dist/dev-server.d.ts +2 -2
  15. package/dist/dev-server.js +86 -1218
  16. package/dist/dev-server.mjs +4 -4
  17. package/dist/envelope.d.mts +2 -2
  18. package/dist/envelope.d.ts +2 -2
  19. package/dist/envelope.js +5 -5
  20. package/dist/envelope.mjs +2 -2
  21. package/dist/index.d.mts +8 -8
  22. package/dist/index.d.ts +8 -8
  23. package/dist/index.js +342 -1266
  24. package/dist/index.mjs +8 -8
  25. package/dist/testing/index.d.mts +8 -8
  26. package/dist/testing/index.d.ts +8 -8
  27. package/dist/testing/index.js +5 -5
  28. package/dist/testing/index.mjs +1 -1
  29. package/dist/vite/index.d.mts +1 -1
  30. package/dist/vite/index.d.ts +1 -1
  31. package/dist/vite/index.js +5 -5
  32. package/dist/vite/index.mjs +2 -2
  33. package/examples/authentication/main.workflow.tsx +1 -1
  34. package/examples/authentication/mm.config.ts +1 -1
  35. package/examples/authentication/pages/LoginPage.tsx +2 -2
  36. package/examples/authentication/pages/SignupPage.tsx +2 -2
  37. package/examples/counter.workflow.tsx +1 -1
  38. package/examples/dashboard.workflow.tsx +1 -1
  39. package/examples/invoice-approval/actions/invoice.server.ts +1 -1
  40. package/examples/invoice-approval/main.workflow.tsx +1 -1
  41. package/examples/invoice-approval/mm.config.ts +1 -1
  42. package/examples/invoice-approval/pages/InvoiceDetailPage.tsx +1 -1
  43. package/examples/invoice-approval/pages/InvoiceFormPage.tsx +1 -1
  44. package/examples/invoice-approval/pages/InvoiceListPage.tsx +1 -1
  45. package/examples/todo-app.workflow.tsx +1 -1
  46. package/examples/uber-app/actions/matching.server.ts +1 -1
  47. package/examples/uber-app/actions/notifications.server.ts +1 -1
  48. package/examples/uber-app/actions/payments.server.ts +1 -1
  49. package/examples/uber-app/actions/pricing.server.ts +1 -1
  50. package/examples/uber-app/app/admin/analytics.tsx +2 -2
  51. package/examples/uber-app/app/admin/fleet.tsx +2 -2
  52. package/examples/uber-app/app/admin/surge-pricing.tsx +2 -2
  53. package/examples/uber-app/app/driver/dashboard.tsx +2 -2
  54. package/examples/uber-app/app/driver/earnings.tsx +2 -2
  55. package/examples/uber-app/app/driver/navigation.tsx +2 -2
  56. package/examples/uber-app/app/driver/ride-acceptance.tsx +2 -2
  57. package/examples/uber-app/app/rider/home.tsx +2 -2
  58. package/examples/uber-app/app/rider/payment-methods.tsx +2 -2
  59. package/examples/uber-app/app/rider/ride-history.tsx +2 -2
  60. package/examples/uber-app/app/rider/ride-tracking.tsx +2 -2
  61. package/examples/uber-app/components/DriverCard.tsx +1 -1
  62. package/examples/uber-app/components/MapView.tsx +3 -3
  63. package/examples/uber-app/components/RatingStars.tsx +2 -2
  64. package/examples/uber-app/components/RideCard.tsx +1 -1
  65. package/examples/uber-app/mm.config.ts +1 -1
  66. package/examples/uber-app/workflows/dispute-resolution.workflow.tsx +2 -2
  67. package/examples/uber-app/workflows/driver-onboarding.workflow.tsx +2 -2
  68. package/examples/uber-app/workflows/payment-processing.workflow.tsx +2 -2
  69. package/examples/uber-app/workflows/ride-request.workflow.tsx +2 -2
  70. package/package.json +13 -9
  71. package/dist/auth-3UK75242.mjs +0 -17
  72. package/dist/chunk-5FTDWKHH.mjs +0 -244
  73. package/dist/chunk-7JRAEFRB.mjs +0 -7510
  74. package/dist/chunk-7T6Q5KAA.mjs +0 -7506
  75. package/dist/chunk-ABYPKRSB.mjs +0 -215
  76. package/dist/chunk-BZEXUPDH.mjs +0 -175
  77. package/dist/chunk-HRYR54PT.mjs +0 -175
  78. package/dist/chunk-J3M4GUS7.mjs +0 -161
  79. package/dist/chunk-JRGFBWTN.mjs +0 -2918
  80. package/dist/chunk-O4AUS7EU.mjs +0 -148
  81. package/dist/chunk-R2DD5GTY.mjs +0 -186
  82. package/dist/chunk-UDDTWG5J.mjs +0 -734
  83. package/dist/chunk-VLTKQDJ3.mjs +0 -244
  84. package/dist/chunk-WVYY32LD.mjs +0 -939
  85. package/dist/chunk-XDVM4YHX.mjs +0 -3450
  86. package/dist/chunk-Z2G5RZ4H.mjs +0 -186
  87. package/dist/chunk-ZE3KCHBM.mjs +0 -2918
  88. package/dist/deploy-YAJGW6II.mjs +0 -9
  89. package/dist/dev-server-CrQ041KP.d.mts +0 -79
  90. package/dist/dev-server-CrQ041KP.d.ts +0 -79
  91. package/dist/envelope-ChEkuHij.d.mts +0 -265
  92. package/dist/envelope-ChEkuHij.d.ts +0 -265
  93. package/dist/index-CEKyyazf.d.mts +0 -104
  94. package/dist/index-CEKyyazf.d.ts +0 -104
  95. package/dist/init-7FJENUDK.mjs +0 -407
  96. package/dist/project-compiler-NNK32MPG.mjs +0 -10
  97. package/dist/project-compiler-ZB4RUYVL.mjs +0 -10
  98. package/dist/project-decompiler-U55HQUHW.mjs +0 -7
  99. package/dist/pull-KOL2QAYQ.mjs +0 -109
  100. package/dist/seed-KOGEPGOJ.mjs +0 -154
  101. package/dist/server-VW6UPCHO.mjs +0 -277
  102. package/dist/verify-BYHUKARQ.mjs +0 -1833
  103. package/dist/verify-OQDEQYMS.mjs +0 -1833
@@ -1,186 +0,0 @@
1
- import {
2
- createSourceEnvelope,
3
- generateFsTree
4
- } from "./chunk-5M7DKKBC.mjs";
5
- import {
6
- babelPlugin
7
- } from "./chunk-7JRAEFRB.mjs";
8
-
9
- // src/envelope.ts
10
- import { createHash } from "crypto";
11
- import { readFileSync } from "fs";
12
- import { resolve, relative, basename } from "path";
13
- import { glob } from "glob";
14
- import { transformSync } from "@babel/core";
15
- async function buildEnvelope(projectDir, options = {}) {
16
- const root = resolve(projectDir);
17
- const slug = options.slug ?? basename(root);
18
- const version = options.version ?? "0.1.0";
19
- const mode = options.mode ?? "infer";
20
- const patterns = options.include ?? [
21
- `${root}/**/*.workflow.{tsx,ts,jsx,js}`,
22
- `${root}/**/models/**/*.{ts,tsx}`,
23
- `${root}/**/*.server.{ts,tsx,js,jsx}`
24
- ];
25
- const discoveredFiles = [];
26
- for (const pattern of patterns) {
27
- const matches = await glob(pattern, { absolute: true });
28
- discoveredFiles.push(...matches);
29
- }
30
- const uniqueFiles = [...new Set(discoveredFiles)];
31
- const allSourceFiles = await glob(`${root}/**/*.{ts,tsx,js,jsx,css,json}`, {
32
- absolute: true,
33
- ignore: ["**/node_modules/**", "**/dist/**", "**/.git/**"]
34
- });
35
- const fsTree = generateFsTree(allSourceFiles, root);
36
- const definitions = [];
37
- const envelopeFiles = [];
38
- const errors = [];
39
- const sourceBindings = [];
40
- for (const file of uniqueFiles) {
41
- const relativePath = relative(root, file);
42
- let fileContent;
43
- try {
44
- fileContent = readFileSync(file);
45
- } catch {
46
- errors.push({ file: relativePath, message: "Could not read file" });
47
- continue;
48
- }
49
- const fileHash = createHash("sha256").update(fileContent).digest("hex");
50
- const code = fileContent.toString("utf-8");
51
- try {
52
- const hasTsx = /\.(tsx|jsx)$/.test(file);
53
- const parserPlugins = ["typescript"];
54
- if (hasTsx) parserPlugins.push("jsx");
55
- const result = transformSync(code, {
56
- filename: file,
57
- plugins: [[babelPlugin, { mode }]],
58
- parserOpts: { plugins: parserPlugins, attachComment: true },
59
- sourceMaps: true
60
- });
61
- const ir = result?.metadata?.mindmatrixIR;
62
- if (ir) {
63
- definitions.push(ir);
64
- const bindings = extractSourceBindings(ir, relativePath);
65
- sourceBindings.push(...bindings);
66
- const irErrors = ir.metadata?.errors;
67
- if (irErrors?.length) {
68
- for (const e of irErrors) {
69
- errors.push({ file: relativePath, message: e.message, line: e.line });
70
- }
71
- }
72
- envelopeFiles.push({
73
- path: relativePath,
74
- hash: fileHash,
75
- size: fileContent.length,
76
- slug: ir.slug,
77
- compiled: true
78
- });
79
- } else {
80
- envelopeFiles.push({
81
- path: relativePath,
82
- hash: fileHash,
83
- size: fileContent.length,
84
- compiled: false
85
- });
86
- }
87
- } catch (error) {
88
- const msg = error instanceof Error ? error.message : String(error);
89
- errors.push({ file: relativePath, message: msg });
90
- envelopeFiles.push({
91
- path: relativePath,
92
- hash: fileHash,
93
- size: fileContent.length,
94
- compiled: false
95
- });
96
- }
97
- }
98
- const envelope = createSourceEnvelope({
99
- blueprintSlug: slug,
100
- blueprintVersion: version,
101
- definitions,
102
- fsTree,
103
- sourceBindings,
104
- environment: options.environment,
105
- mode
106
- });
107
- const envelopeJson = JSON.stringify(envelope);
108
- const manifestHash = createHash("sha256").update(envelopeJson).digest("hex");
109
- const manifest = {
110
- hash: manifestHash,
111
- files: envelopeFiles,
112
- version,
113
- timestamp: envelope.createdAt,
114
- definitionCount: definitions.length,
115
- errorCount: errors.length
116
- };
117
- return {
118
- envelope,
119
- manifest,
120
- files: envelopeFiles,
121
- definitions,
122
- errors
123
- };
124
- }
125
- function extractSourceBindings(ir, filePath) {
126
- const bindings = [];
127
- const slug = ir.slug ?? "";
128
- for (const field of ir.fields) {
129
- const source = field.__source;
130
- bindings.push({
131
- kind: "field",
132
- name: field.name,
133
- workflowSlug: slug,
134
- file: filePath,
135
- startLine: source?.line ?? 0,
136
- startColumn: source?.column ?? 0,
137
- endLine: source?.endLine,
138
- endColumn: source?.endColumn
139
- });
140
- }
141
- for (const state of ir.states) {
142
- const source = state.__source;
143
- bindings.push({
144
- kind: "state",
145
- name: state.name,
146
- workflowSlug: slug,
147
- file: filePath,
148
- startLine: source?.line ?? 0,
149
- startColumn: source?.column ?? 0,
150
- endLine: source?.endLine,
151
- endColumn: source?.endColumn
152
- });
153
- }
154
- for (const transition of ir.transitions) {
155
- const source = transition.__source;
156
- bindings.push({
157
- kind: "transition",
158
- name: transition.name,
159
- workflowSlug: slug,
160
- file: filePath,
161
- startLine: source?.line ?? 0,
162
- startColumn: source?.column ?? 0,
163
- endLine: source?.endLine,
164
- endColumn: source?.endColumn
165
- });
166
- }
167
- if (ir.extensions) {
168
- for (const [tag, islands] of Object.entries(ir.extensions)) {
169
- for (const island of islands) {
170
- bindings.push({
171
- kind: "grammar-island",
172
- name: `${tag}:${island.contextTag}`,
173
- workflowSlug: slug,
174
- file: filePath,
175
- startLine: island.__source?.line ?? 0,
176
- startColumn: island.__source?.column ?? 0
177
- });
178
- }
179
- }
180
- }
181
- return bindings;
182
- }
183
-
184
- export {
185
- buildEnvelope
186
- };