@fluixi/compiler 1.0.0-alpha.53

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 (71) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +76 -0
  3. package/dist/babel-OGRQKOZA.mjs +2 -0
  4. package/dist/chunk-3SAEGOMQ.mjs +1 -0
  5. package/dist/codegen/backend.cjs +1 -0
  6. package/dist/codegen/backend.d.ts +22 -0
  7. package/dist/codegen/backend.d.ts.map +1 -0
  8. package/dist/codegen/backend.js +1 -0
  9. package/dist/codegen/backend.mjs +0 -0
  10. package/dist/codegen/backends/imperative.cjs +1 -0
  11. package/dist/codegen/backends/imperative.d.ts +3 -0
  12. package/dist/codegen/backends/imperative.d.ts.map +1 -0
  13. package/dist/codegen/backends/imperative.js +152 -0
  14. package/dist/codegen/backends/imperative.mjs +1 -0
  15. package/dist/codegen/contract.cjs +1 -0
  16. package/dist/codegen/contract.d.ts +25 -0
  17. package/dist/codegen/contract.d.ts.map +1 -0
  18. package/dist/codegen/contract.js +30 -0
  19. package/dist/codegen/contract.mjs +1 -0
  20. package/dist/frontend/babel/build-ir.cjs +1 -0
  21. package/dist/frontend/babel/build-ir.d.ts +23 -0
  22. package/dist/frontend/babel/build-ir.d.ts.map +1 -0
  23. package/dist/frontend/babel/build-ir.js +224 -0
  24. package/dist/frontend/babel/build-ir.mjs +1 -0
  25. package/dist/frontend/babel/index.cjs +2 -0
  26. package/dist/frontend/babel/index.d.ts +34 -0
  27. package/dist/frontend/babel/index.d.ts.map +1 -0
  28. package/dist/frontend/babel/index.js +65 -0
  29. package/dist/frontend/babel/index.mjs +2 -0
  30. package/dist/frontend/babel/plugin.cjs +2 -0
  31. package/dist/frontend/babel/plugin.d.ts +122 -0
  32. package/dist/frontend/babel/plugin.d.ts.map +1 -0
  33. package/dist/frontend/babel/plugin.js +1509 -0
  34. package/dist/frontend/babel/plugin.mjs +2 -0
  35. package/dist/frontend/babel/server-functions.cjs +1 -0
  36. package/dist/frontend/babel/server-functions.d.ts +11 -0
  37. package/dist/frontend/babel/server-functions.d.ts.map +1 -0
  38. package/dist/frontend/babel/server-functions.js +88 -0
  39. package/dist/frontend/babel/server-functions.mjs +1 -0
  40. package/dist/frontend/babel/types.cjs +1 -0
  41. package/dist/frontend/babel/types.d.ts +34 -0
  42. package/dist/frontend/babel/types.d.ts.map +1 -0
  43. package/dist/frontend/babel/types.js +1 -0
  44. package/dist/frontend/babel/types.mjs +0 -0
  45. package/dist/frontend/types.cjs +1 -0
  46. package/dist/frontend/types.d.ts +26 -0
  47. package/dist/frontend/types.d.ts.map +1 -0
  48. package/dist/frontend/types.js +1 -0
  49. package/dist/frontend/types.mjs +0 -0
  50. package/dist/index.cjs +1 -0
  51. package/dist/index.d.ts +19 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +20 -0
  54. package/dist/index.mjs +1 -0
  55. package/dist/integrations.cjs +12 -0
  56. package/dist/integrations.d.ts +251 -0
  57. package/dist/integrations.d.ts.map +1 -0
  58. package/dist/integrations.js +790 -0
  59. package/dist/integrations.mjs +11 -0
  60. package/dist/ir/nodes.cjs +1 -0
  61. package/dist/ir/nodes.d.ts +80 -0
  62. package/dist/ir/nodes.d.ts.map +1 -0
  63. package/dist/ir/nodes.js +1 -0
  64. package/dist/ir/nodes.mjs +0 -0
  65. package/dist/options.cjs +1 -0
  66. package/dist/options.d.ts +18 -0
  67. package/dist/options.d.ts.map +1 -0
  68. package/dist/options.js +9 -0
  69. package/dist/options.mjs +1 -0
  70. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  71. package/package.json +70 -0
@@ -0,0 +1,122 @@
1
+ /**
2
+ * @fileoverview Comprehensive Babel Plugin for Reactive JSX Transformation
3
+ * @module @fluixi/babel-plugin-jsx
4
+ *
5
+ * This plugin transforms JSX into optimized reactive DOM operations with:
6
+ * - Fine-grained reactivity detection
7
+ * - Signal/store wrapping
8
+ * - Event delegation
9
+ * - Static hoisting
10
+ * - Lit-HTML integration
11
+ * - Control flow optimization
12
+ */
13
+ import { type PluginObj, type PluginPass } from '@babel/core';
14
+ export interface PluginOptions {
15
+ /**
16
+ * Automatically transform `{() => cond && <JSX />}` and
17
+ * `{() => cond ? <JSX /> : null}` patterns into `<Show>` components.
18
+ * Prevents entire sub-trees from being recreated on every signal change.
19
+ * @default false
20
+ */
21
+ autoShowTransform?: boolean;
22
+ /**
23
+ * JSX runtime mode
24
+ * @default 'automatic'
25
+ */
26
+ runtime?: 'automatic' | 'classic';
27
+ /**
28
+ * Import source for JSX runtime
29
+ * @default '@fluixi/jsx'
30
+ */
31
+ importSource?: string;
32
+ /**
33
+ * Classic mode pragma
34
+ * @default 'jsx'
35
+ */
36
+ pragma?: string;
37
+ /**
38
+ * Classic mode fragment pragma
39
+ * @default 'Fragment'
40
+ */
41
+ pragmaFrag?: string;
42
+ /**
43
+ * Enable development mode with additional checks
44
+ * @default false
45
+ */
46
+ development?: boolean;
47
+ /**
48
+ * Auto-detect and wrap reactive expressions
49
+ * @default true
50
+ */
51
+ detectReactivity?: boolean;
52
+ /**
53
+ * Use lit-html templates when beneficial
54
+ * @default true
55
+ */
56
+ useLitHTML?: boolean;
57
+ /**
58
+ * Enable static element hoisting
59
+ * @default true
60
+ */
61
+ hoistStatics?: boolean;
62
+ /**
63
+ * Enable event delegation
64
+ * @default true
65
+ */
66
+ delegateEvents?: boolean;
67
+ /**
68
+ * Events to delegate
69
+ * @default ['click', 'input', 'change', 'submit', 'focus', 'blur']
70
+ */
71
+ delegatedEvents?: string[];
72
+ /**
73
+ * Optimize control flow components
74
+ * @default true
75
+ */
76
+ optimizeControlFlow?: boolean;
77
+ /**
78
+ * Generate source maps
79
+ * @default true
80
+ */
81
+ sourceMaps?: boolean;
82
+ /**
83
+ * Module name for signal directive
84
+ * @default '@fluixi/dom'
85
+ */
86
+ signalModule?: string;
87
+ /**
88
+ * Module name for control flow
89
+ * @default '@fluixi/dom'
90
+ */
91
+ controlFlowModule?: string;
92
+ /**
93
+ * Where reactive primitives (createMemo) are imported from — the signal core,
94
+ * not the dom runtime.
95
+ * @default '@fluixi/reactive/signal'
96
+ */
97
+ reactiveModule?: string;
98
+ /**
99
+ * Code-generation backend.
100
+ * - 'imperative' (default): emit direct compiled calls into the @fluixi/dom
101
+ * runtime (createNativeElement/spread/insert/createComponent) — no per-render
102
+ * jsx() dispatch. Targets RUNTIME_CONTRACT_V1.
103
+ * - 'jsx': emit the automatic runtime (jsx()/jsxs()) — the runtime interprets
104
+ * the calls.
105
+ * @default 'imperative'
106
+ */
107
+ backend?: 'jsx' | 'imperative';
108
+ /**
109
+ * Which imperative codegen path to use (only relevant when backend is
110
+ * 'imperative'):
111
+ * - 'inline': the plugin builds the runtime calls directly from the JSX AST
112
+ * (no string reparse). Default.
113
+ * - 'ir': route through the shared host-agnostic pipeline — build IR
114
+ * (build-ir.ts) then run the imperative backend's emit(), reparsing the
115
+ * emitted code. Same output; this is the path a future SWC front-end reuses.
116
+ * @default 'inline'
117
+ */
118
+ codegen?: 'inline' | 'ir';
119
+ }
120
+ declare const _default: (api: object, options: PluginOptions | null | undefined, dirname: string) => PluginObj<PluginPass>;
121
+ export default _default;
122
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/frontend/babel/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,aAAa,CAAC;AAQrB,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAElC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC;IAE/B;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC3B;;AA4FD,wBA4lBG"}