@jesscss/plugin-less-compat 2.0.0-alpha.1

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 (111) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +139 -0
  3. package/lib/index.d.ts +9 -0
  4. package/lib/index.js +10 -0
  5. package/lib/index.js.map +1 -0
  6. package/lib/less-compat-structures.d.ts +108 -0
  7. package/lib/less-compat-structures.js +519 -0
  8. package/lib/less-compat-structures.js.map +1 -0
  9. package/lib/nodes/at-rule.d.ts +6 -0
  10. package/lib/nodes/at-rule.js +72 -0
  11. package/lib/nodes/at-rule.js.map +1 -0
  12. package/lib/nodes/attribute-selector.d.ts +6 -0
  13. package/lib/nodes/attribute-selector.js +54 -0
  14. package/lib/nodes/attribute-selector.js.map +1 -0
  15. package/lib/nodes/call.d.ts +6 -0
  16. package/lib/nodes/call.js +83 -0
  17. package/lib/nodes/call.js.map +1 -0
  18. package/lib/nodes/color.d.ts +6 -0
  19. package/lib/nodes/color.js +57 -0
  20. package/lib/nodes/color.js.map +1 -0
  21. package/lib/nodes/combinator.d.ts +6 -0
  22. package/lib/nodes/combinator.js +34 -0
  23. package/lib/nodes/combinator.js.map +1 -0
  24. package/lib/nodes/comment.d.ts +6 -0
  25. package/lib/nodes/comment.js +41 -0
  26. package/lib/nodes/comment.js.map +1 -0
  27. package/lib/nodes/condition.d.ts +6 -0
  28. package/lib/nodes/condition.js +60 -0
  29. package/lib/nodes/condition.js.map +1 -0
  30. package/lib/nodes/declaration.d.ts +6 -0
  31. package/lib/nodes/declaration.js +81 -0
  32. package/lib/nodes/declaration.js.map +1 -0
  33. package/lib/nodes/dimension.d.ts +6 -0
  34. package/lib/nodes/dimension.js +47 -0
  35. package/lib/nodes/dimension.js.map +1 -0
  36. package/lib/nodes/expression.d.ts +6 -0
  37. package/lib/nodes/expression.js +44 -0
  38. package/lib/nodes/expression.js.map +1 -0
  39. package/lib/nodes/extend.d.ts +6 -0
  40. package/lib/nodes/extend.js +57 -0
  41. package/lib/nodes/extend.js.map +1 -0
  42. package/lib/nodes/import.d.ts +6 -0
  43. package/lib/nodes/import.js +63 -0
  44. package/lib/nodes/import.js.map +1 -0
  45. package/lib/nodes/index.d.ts +45 -0
  46. package/lib/nodes/index.js +308 -0
  47. package/lib/nodes/index.js.map +1 -0
  48. package/lib/nodes/keyword.d.ts +6 -0
  49. package/lib/nodes/keyword.js +36 -0
  50. package/lib/nodes/keyword.js.map +1 -0
  51. package/lib/nodes/list.d.ts +6 -0
  52. package/lib/nodes/list.js +150 -0
  53. package/lib/nodes/list.js.map +1 -0
  54. package/lib/nodes/mixin.d.ts +6 -0
  55. package/lib/nodes/mixin.js +62 -0
  56. package/lib/nodes/mixin.js.map +1 -0
  57. package/lib/nodes/negative.d.ts +6 -0
  58. package/lib/nodes/negative.js +42 -0
  59. package/lib/nodes/negative.js.map +1 -0
  60. package/lib/nodes/operation.d.ts +6 -0
  61. package/lib/nodes/operation.js +63 -0
  62. package/lib/nodes/operation.js.map +1 -0
  63. package/lib/nodes/paren.d.ts +6 -0
  64. package/lib/nodes/paren.js +42 -0
  65. package/lib/nodes/paren.js.map +1 -0
  66. package/lib/nodes/quoted.d.ts +6 -0
  67. package/lib/nodes/quoted.js +57 -0
  68. package/lib/nodes/quoted.js.map +1 -0
  69. package/lib/nodes/reference.d.ts +9 -0
  70. package/lib/nodes/reference.js +80 -0
  71. package/lib/nodes/reference.js.map +1 -0
  72. package/lib/nodes/ruleset.d.ts +6 -0
  73. package/lib/nodes/ruleset.js +108 -0
  74. package/lib/nodes/ruleset.js.map +1 -0
  75. package/lib/nodes/selector.d.ts +8 -0
  76. package/lib/nodes/selector.js +226 -0
  77. package/lib/nodes/selector.js.map +1 -0
  78. package/lib/nodes/sequence.d.ts +9 -0
  79. package/lib/nodes/sequence.js +75 -0
  80. package/lib/nodes/sequence.js.map +1 -0
  81. package/lib/nodes/url.d.ts +6 -0
  82. package/lib/nodes/url.js +42 -0
  83. package/lib/nodes/url.js.map +1 -0
  84. package/lib/nodes/var-declaration.d.ts +6 -0
  85. package/lib/nodes/var-declaration.js +60 -0
  86. package/lib/nodes/var-declaration.js.map +1 -0
  87. package/lib/plugin-utils.d.ts +20 -0
  88. package/lib/plugin-utils.js +100 -0
  89. package/lib/plugin-utils.js.map +1 -0
  90. package/lib/plugin.d.ts +92 -0
  91. package/lib/plugin.js +1027 -0
  92. package/lib/plugin.js.map +1 -0
  93. package/lib/transform/from-less.d.ts +30 -0
  94. package/lib/transform/from-less.js +170 -0
  95. package/lib/transform/from-less.js.map +1 -0
  96. package/lib/transform/index.d.ts +7 -0
  97. package/lib/transform/index.js +8 -0
  98. package/lib/transform/index.js.map +1 -0
  99. package/lib/transform/proxy.d.ts +32 -0
  100. package/lib/transform/proxy.js +138 -0
  101. package/lib/transform/proxy.js.map +1 -0
  102. package/lib/transform/to-less.d.ts +17 -0
  103. package/lib/transform/to-less.js +128 -0
  104. package/lib/transform/to-less.js.map +1 -0
  105. package/lib/transform/type-map.d.ts +27 -0
  106. package/lib/transform/type-map.js +105 -0
  107. package/lib/transform/type-map.js.map +1 -0
  108. package/lib/types.d.ts +33 -0
  109. package/lib/types.js +5 -0
  110. package/lib/types.js.map +1 -0
  111. package/package.json +56 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { Node, Rules } from '@jesscss/core';
2
+ export type LessNode = any;
3
+ export interface FromLessOptions {
4
+ /** Cache conversions to avoid repeated work */
5
+ cache?: WeakMap<any, Node>;
6
+ /** When true, boolean return values are treated as "no output" (Less statement context) */
7
+ statementContext?: boolean;
8
+ }
9
+ /**
10
+ * Convert a Less node back to a Jess node
11
+ *
12
+ * @param lessNode - The Less node to convert
13
+ * @param options - Conversion options
14
+ * @returns A Jess node
15
+ */
16
+ export declare function fromLessNode(lessNode: LessNode, options?: FromLessOptions): Node;
17
+ /**
18
+ * Convert a Less plugin function return value to a Jess node.
19
+ * Handles primitives (number, boolean), Less nodes (via fromLessNode), and toCSS() objects.
20
+ * Use this for @plugin-loaded function results so conversion is centralized here.
21
+ */
22
+ export declare function fromLessPluginReturnValue(value: unknown, options?: FromLessOptions): Node | undefined;
23
+ /**
24
+ * Convert an entire Less tree back to Jess Rules
25
+ *
26
+ * @param lessTree - The Less tree to convert
27
+ * @param options - Conversion options
28
+ * @returns A Jess Rules tree
29
+ */
30
+ export declare function fromLessTree(lessTree: LessNode, _options?: FromLessOptions): Rules;
@@ -0,0 +1,170 @@
1
+ import { Any, Collection, Declaration, Dimension, Quoted, Rules } from '@jesscss/core';
2
+ import { getJessNodeFromProxy, isLessProxy } from './proxy.js';
3
+ /**
4
+ * Convert a Less node back to a Jess node
5
+ *
6
+ * @param lessNode - The Less node to convert
7
+ * @param options - Conversion options
8
+ * @returns A Jess node
9
+ */
10
+ export function fromLessNode(lessNode, options) {
11
+ if (!lessNode) {
12
+ return lessNode;
13
+ }
14
+ const cache = options?.cache || new WeakMap();
15
+ // Check cache first
16
+ if (cache.has(lessNode)) {
17
+ const cached = cache.get(lessNode);
18
+ if (cached) {
19
+ return cached;
20
+ }
21
+ }
22
+ // If it's already a Jess node wrapped in a proxy, extract it
23
+ if (isLessProxy(lessNode)) {
24
+ const jessNode = getJessNodeFromProxy(lessNode);
25
+ if (jessNode) {
26
+ cache.set(lessNode, jessNode);
27
+ return jessNode;
28
+ }
29
+ }
30
+ // If it's a Less node that was created by a visitor, we need to reconstruct
31
+ // For now, if we can't convert it back, return the original proxy target
32
+ // TODO: Implement full reverse conversion for all node types
33
+ // Check if it has a __jessNode property (we might store this during conversion)
34
+ if (lessNode && typeof lessNode === 'object' && '__jessNode' in lessNode) {
35
+ return lessNode.__jessNode;
36
+ }
37
+ // Minimal reverse conversions for Less-created nodes used in Less.js plugins
38
+ if (lessNode && typeof lessNode === 'object' && typeof lessNode.type === 'string') {
39
+ if (lessNode.type === 'Quoted') {
40
+ const quote = (lessNode.quote === '\'' || lessNode.quote === '"') ? lessNode.quote : '"';
41
+ const value = typeof lessNode.value === 'string' ? lessNode.value : String(lessNode.value);
42
+ const escaped = !!lessNode.escaped;
43
+ const out = new Quoted(value, { quote, escaped });
44
+ cache.set(lessNode, out);
45
+ return out;
46
+ }
47
+ if (lessNode.type === 'Anonymous') {
48
+ const value = typeof lessNode.value === 'string' ? lessNode.value : String(lessNode.value);
49
+ const out = new Any(value);
50
+ cache.set(lessNode, out);
51
+ return out;
52
+ }
53
+ if (lessNode.type === 'Dimension' || lessNode.type === 'Num') {
54
+ const n = typeof lessNode.value === 'number' ? lessNode.value : Number(lessNode.value);
55
+ const u = typeof lessNode.unit === 'string' ? lessNode.unit : '';
56
+ const out = new Dimension({ number: n, unit: u || undefined });
57
+ cache.set(lessNode, out);
58
+ return out;
59
+ }
60
+ if (lessNode.type === 'Declaration' || lessNode.type === 'Rule') {
61
+ const prop = String(lessNode.name ?? '');
62
+ const val = lessNode.value;
63
+ const valueStr = val && typeof val === 'object' && typeof val.value === 'string'
64
+ ? val.value
65
+ : String(val ?? '');
66
+ const out = new Declaration({
67
+ name: new Any(prop, { role: 'property' }),
68
+ value: new Any(valueStr)
69
+ });
70
+ out.pre = 0;
71
+ out.post = 0;
72
+ cache.set(lessNode, out);
73
+ return out;
74
+ }
75
+ if (lessNode.type === 'DetachedRuleset') {
76
+ const ruleset = lessNode.ruleset;
77
+ const rules = (ruleset && Array.isArray(ruleset.rules)) ? ruleset.rules : [];
78
+ const nodes = [];
79
+ for (const rr of rules) {
80
+ if (rr && typeof rr === 'object' && (rr.type === 'Declaration' || rr.type === 'Rule')) {
81
+ const prop = String(rr.name ?? '');
82
+ const val = rr.value;
83
+ const valueStr = val && typeof val === 'object' && typeof val.value === 'string'
84
+ ? val.value
85
+ : String(val ?? '');
86
+ const decl = new Declaration({
87
+ name: new Any(prop, { role: 'property' }),
88
+ value: new Any(valueStr)
89
+ });
90
+ decl.pre = 0;
91
+ decl.post = 0;
92
+ nodes.push(decl);
93
+ }
94
+ }
95
+ const out = new Collection(nodes);
96
+ cache.set(lessNode, out);
97
+ return out;
98
+ }
99
+ if (lessNode.type === 'AtRule') {
100
+ const n = String(lessNode.name ?? '');
101
+ const v = String(lessNode.value ?? '');
102
+ const line = `${n} ${v};`;
103
+ const out = n === '@charset'
104
+ ? new Any(line, { role: 'charset' })
105
+ : new Any(line);
106
+ cache.set(lessNode, out);
107
+ return out;
108
+ }
109
+ }
110
+ // If we can't convert it, try to return the original node
111
+ // This is a fallback - in practice, visitors shouldn't create new nodes
112
+ // that we can't track back to their originals
113
+ throw new Error(`Cannot convert Less node back to Jess: ${lessNode?.type || 'unknown type'}. `
114
+ + `Less visitors should not create new nodes, only modify existing ones.`);
115
+ }
116
+ /**
117
+ * Convert a Less plugin function return value to a Jess node.
118
+ * Handles primitives (number, boolean), Less nodes (via fromLessNode), and toCSS() objects.
119
+ * Use this for @plugin-loaded function results so conversion is centralized here.
120
+ */
121
+ export function fromLessPluginReturnValue(value, options) {
122
+ if (value === null || value === undefined) {
123
+ return value;
124
+ }
125
+ if (typeof value === 'number') {
126
+ return new Any(String(value));
127
+ }
128
+ if (value === true || value === false) {
129
+ if (options?.statementContext) {
130
+ return undefined;
131
+ }
132
+ return new Any(String(value));
133
+ }
134
+ if (typeof value === 'object' && value !== null) {
135
+ const obj = value;
136
+ if (typeof obj.type === 'string') {
137
+ return fromLessNode(value, options);
138
+ }
139
+ if (typeof obj.toCSS === 'function') {
140
+ try {
141
+ const css = obj.toCSS();
142
+ return new Any(typeof css === 'string' ? css : String(css));
143
+ }
144
+ catch {
145
+ // ignore
146
+ }
147
+ }
148
+ }
149
+ return value;
150
+ }
151
+ /**
152
+ * Convert an entire Less tree back to Jess Rules
153
+ *
154
+ * @param lessTree - The Less tree to convert
155
+ * @param options - Conversion options
156
+ * @returns A Jess Rules tree
157
+ */
158
+ export function fromLessTree(lessTree, _options) {
159
+ // TODO: Implement tree conversion
160
+ // This will recursively convert all nodes back to Jess format
161
+ // For now, if it's a proxy, extract the original
162
+ if (isLessProxy(lessTree)) {
163
+ const jessNode = getJessNodeFromProxy(lessTree);
164
+ if (jessNode instanceof Rules) {
165
+ return jessNode;
166
+ }
167
+ }
168
+ throw new Error('Cannot convert Less tree back to Jess Rules');
169
+ }
170
+ //# sourceMappingURL=from-less.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"from-less.js","sourceRoot":"","sources":["../../src/transform/from-less.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Transformation utilities for converting between Jess and Less AST nodes
3
+ */
4
+ export { toLessNode, toLessTree, type ToLessOptions } from './to-less.js';
5
+ export { fromLessNode, fromLessPluginReturnValue, fromLessTree, type FromLessOptions } from './from-less.js';
6
+ export { createLessProxy, isLessProxy, getJessNodeFromProxy } from './proxy.js';
7
+ export { mapJessTypeToLessType, mapLessTypeToJessType, getLessTypeIndex } from './type-map.js';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Transformation utilities for converting between Jess and Less AST nodes
3
+ */
4
+ export { toLessNode, toLessTree } from './to-less.js';
5
+ export { fromLessNode, fromLessPluginReturnValue, fromLessTree } from './from-less.js';
6
+ export { createLessProxy, isLessProxy, getJessNodeFromProxy } from './proxy.js';
7
+ export { mapJessTypeToLessType, mapLessTypeToJessType, getLessTypeIndex } from './type-map.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transform/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAsB,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,YAAY,EAAwB,MAAM,gBAAgB,CAAC;AAC7G,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { Node } from '@jesscss/core';
2
+ /**
3
+ * Symbol to mark nodes that are already being proxied (to prevent recursion)
4
+ * Exported so toLessNode can check it
5
+ */
6
+ export declare const IS_PROXYING_SYMBOL: unique symbol;
7
+ /**
8
+ * Create a Less-compatible proxy wrapper around a Jess node
9
+ *
10
+ * This proxy intercepts property access and method calls to provide
11
+ * a Less.js-compatible interface while maintaining the underlying Jess node.
12
+ *
13
+ * @param jessNode - The Jess node to wrap
14
+ * @param cache - Optional cache for converted nodes
15
+ * @param propertyMap - Function to map property names and values
16
+ * @returns A proxy object that appears as a Less node
17
+ */
18
+ export declare function createLessProxy(jessNode: Node, cache?: WeakMap<Node, any>, propertyMap?: (prop: string | symbol, target: Node) => any): any;
19
+ /**
20
+ * Check if an object is a Less proxy wrapper
21
+ *
22
+ * @param obj - The object to check
23
+ * @returns True if the object is a Less proxy
24
+ */
25
+ export declare function isLessProxy(obj: any): boolean;
26
+ /**
27
+ * Get the underlying Jess node from a Less proxy
28
+ *
29
+ * @param proxy - The proxy object
30
+ * @returns The underlying Jess node, or undefined if not a proxy
31
+ */
32
+ export declare function getJessNodeFromProxy(proxy: any): Node | undefined;
@@ -0,0 +1,138 @@
1
+ import { mapJessTypeToLessType } from './type-map.js';
2
+ /**
3
+ * Symbol to mark Less proxy objects
4
+ */
5
+ const LESS_PROXY_SYMBOL = Symbol('less-proxy');
6
+ /**
7
+ * Symbol to store reference to underlying Jess node in proxy
8
+ */
9
+ const JESS_NODE_SYMBOL = Symbol('jess-node');
10
+ /**
11
+ * Symbol to mark nodes that are already being proxied (to prevent recursion)
12
+ * Exported so toLessNode can check it
13
+ */
14
+ export const IS_PROXYING_SYMBOL = Symbol('is-proxying');
15
+ /**
16
+ * Get typeIndex for a Less node type
17
+ * Since we're not using the actual Less.js library, we return undefined
18
+ * Plugins typically don't need typeIndex - it's only used internally by Less's Visitor
19
+ * for dispatch optimization. Our proxy-based approach doesn't require it.
20
+ */
21
+ function getLessTypeIndex(_lessType) {
22
+ // Return undefined - plugins don't need typeIndex for our compatibility layer
23
+ return undefined;
24
+ }
25
+ /**
26
+ * Create a Less-compatible proxy wrapper around a Jess node
27
+ *
28
+ * This proxy intercepts property access and method calls to provide
29
+ * a Less.js-compatible interface while maintaining the underlying Jess node.
30
+ *
31
+ * @param jessNode - The Jess node to wrap
32
+ * @param cache - Optional cache for converted nodes
33
+ * @param propertyMap - Function to map property names and values
34
+ * @returns A proxy object that appears as a Less node
35
+ */
36
+ export function createLessProxy(jessNode, cache, propertyMap) {
37
+ // Check if already proxied (prevent recursion)
38
+ if (jessNode[IS_PROXYING_SYMBOL]) {
39
+ // Return the cached proxy if available
40
+ if (cache && cache.has(jessNode)) {
41
+ return cache.get(jessNode);
42
+ }
43
+ // If no cache, return the node as-is to prevent recursion
44
+ return jessNode;
45
+ }
46
+ // Check cache first
47
+ if (cache && cache.has(jessNode)) {
48
+ return cache.get(jessNode);
49
+ }
50
+ // Mark as being proxied to prevent recursion
51
+ jessNode[IS_PROXYING_SYMBOL] = true;
52
+ // Create proxy handler
53
+ const handler = {
54
+ get(target, prop) {
55
+ // Handle special symbols
56
+ if (prop === LESS_PROXY_SYMBOL) {
57
+ return true;
58
+ }
59
+ // Handle typeIndex - Less's Visitor needs this for dispatch
60
+ // Set it automatically based on the node's type
61
+ // Use direct property access to avoid proxy recursion
62
+ if (prop === 'typeIndex') {
63
+ // Access type directly from the target (not through proxy)
64
+ const nodeType = target.type;
65
+ if (nodeType && typeof nodeType === 'string') {
66
+ const lessType = mapJessTypeToLessType(nodeType);
67
+ return getLessTypeIndex(lessType);
68
+ }
69
+ return undefined;
70
+ }
71
+ // Allow custom property mapping
72
+ if (propertyMap) {
73
+ const mapped = propertyMap(prop, target);
74
+ if (mapped !== undefined) {
75
+ return mapped;
76
+ }
77
+ }
78
+ // Default: pass through to target
79
+ const value = Reflect.get(target, prop);
80
+ // If it's a method, bind it to the target
81
+ if (typeof value === 'function') {
82
+ return value.bind(target);
83
+ }
84
+ return value;
85
+ },
86
+ set(target, prop, value) {
87
+ // Allow setting properties
88
+ return Reflect.set(target, prop, value);
89
+ },
90
+ has(target, prop) {
91
+ // Check if property exists
92
+ return Reflect.has(target, prop);
93
+ },
94
+ ownKeys(target) {
95
+ // Return own property keys
96
+ return Reflect.ownKeys(target);
97
+ },
98
+ getOwnPropertyDescriptor(target, prop) {
99
+ // Return property descriptor
100
+ return Reflect.getOwnPropertyDescriptor(target, prop);
101
+ }
102
+ };
103
+ const proxy = new Proxy(jessNode, handler);
104
+ // Mark as proxy
105
+ proxy[LESS_PROXY_SYMBOL] = true;
106
+ // Store reference to underlying Jess node for reverse lookup
107
+ proxy[JESS_NODE_SYMBOL] = jessNode;
108
+ // Cache if provided
109
+ if (cache) {
110
+ cache.set(jessNode, proxy);
111
+ }
112
+ // Unmark proxying flag after proxy is created
113
+ delete jessNode[IS_PROXYING_SYMBOL];
114
+ return proxy;
115
+ }
116
+ /**
117
+ * Check if an object is a Less proxy wrapper
118
+ *
119
+ * @param obj - The object to check
120
+ * @returns True if the object is a Less proxy
121
+ */
122
+ export function isLessProxy(obj) {
123
+ return obj && typeof obj === 'object' && LESS_PROXY_SYMBOL in obj;
124
+ }
125
+ /**
126
+ * Get the underlying Jess node from a Less proxy
127
+ *
128
+ * @param proxy - The proxy object
129
+ * @returns The underlying Jess node, or undefined if not a proxy
130
+ */
131
+ export function getJessNodeFromProxy(proxy) {
132
+ if (isLessProxy(proxy)) {
133
+ // Get the stored reference to the underlying Jess node
134
+ return proxy[JESS_NODE_SYMBOL];
135
+ }
136
+ return undefined;
137
+ }
138
+ //# sourceMappingURL=proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/transform/proxy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Node, Rules } from '@jesscss/core';
2
+ export type LessNode = any;
3
+ export interface ToLessOptions {
4
+ /** Cache conversions to avoid repeated work */
5
+ cache?: WeakMap<Node, any>;
6
+ /** Preserve original Jess node reference */
7
+ preserveOriginal?: boolean;
8
+ }
9
+ export declare function toLessNode(jessNode: Node, options?: ToLessOptions): LessNode;
10
+ /**
11
+ * Convert an entire Jess Rules tree to Less-compatible format
12
+ *
13
+ * @param jessRules - The Jess Rules tree to convert
14
+ * @param options - Conversion options
15
+ * @returns A Less-compatible tree
16
+ */
17
+ export declare function toLessTree(jessRules: Rules | Node, options?: ToLessOptions): LessNode;
@@ -0,0 +1,128 @@
1
+ import { Node, Rules } from '@jesscss/core';
2
+ import { createLessProxy } from './proxy.js';
3
+ import { getTransformer } from '../nodes/index.js';
4
+ import { mapJessTypeToLessType } from './type-map.js';
5
+ // typeIndex handling is now in proxy.ts - plugins don't need to know about it
6
+ /**
7
+ * Convert a Jess node to a Less-compatible proxy
8
+ *
9
+ * @param jessNode - The Jess node to convert
10
+ * @param options - Conversion options
11
+ * @returns A Less-compatible proxy node
12
+ */
13
+ import { IS_PROXYING_SYMBOL } from './proxy.js';
14
+ export function toLessNode(jessNode, options) {
15
+ if (!jessNode) {
16
+ return jessNode;
17
+ }
18
+ const cache = options?.cache || new WeakMap();
19
+ // Check cache first - if we have a cached proxy, return it even if IS_PROXYING_SYMBOL is set
20
+ if (cache.has(jessNode)) {
21
+ return cache.get(jessNode);
22
+ }
23
+ // Check if already being proxied (prevent recursion)
24
+ // Only return node as-is if there's no cached proxy
25
+ if (jessNode[IS_PROXYING_SYMBOL]) {
26
+ // Return the node as-is to prevent recursion
27
+ // This should only happen if cache doesn't have it (checked above)
28
+ return jessNode;
29
+ }
30
+ // Get transformer for this node type
31
+ const transformer = getTransformer(jessNode.type);
32
+ if (transformer) {
33
+ // Use specific transformer
34
+ return transformer(jessNode, cache);
35
+ }
36
+ // Fallback: create a basic proxy with type mapping
37
+ return createLessProxy(jessNode, cache, (prop, target) => {
38
+ // Map 'type' property
39
+ if (prop === 'type') {
40
+ return mapJessTypeToLessType(target.type);
41
+ }
42
+ // typeIndex is handled automatically by the base proxy handler
43
+ // For child nodes, convert them lazily
44
+ if (prop === 'value' && target.value) {
45
+ // If value is a Node, convert it
46
+ if (target.value instanceof Node) {
47
+ return toLessNode(target.value, options);
48
+ }
49
+ // If value is an array, convert each element
50
+ if (Array.isArray(target.value)) {
51
+ return target.value.map((item) => {
52
+ if (item instanceof Node) {
53
+ return toLessNode(item, options);
54
+ }
55
+ return item;
56
+ });
57
+ }
58
+ // If value is an object, convert nested nodes
59
+ if (typeof target.value === 'object' && target.value !== null) {
60
+ const converted = {};
61
+ for (const [key, val] of Object.entries(target.value)) {
62
+ if (val instanceof Node) {
63
+ converted[key] = toLessNode(val, options);
64
+ }
65
+ else if (Array.isArray(val)) {
66
+ converted[key] = val.map((item) => {
67
+ if (item instanceof Node) {
68
+ return toLessNode(item, options);
69
+ }
70
+ return item;
71
+ });
72
+ }
73
+ else {
74
+ converted[key] = val;
75
+ }
76
+ }
77
+ return converted;
78
+ }
79
+ }
80
+ // Map 'accept' method for visitor traversal
81
+ // This is called by Less visitors when they want to traverse the tree
82
+ // Note: Less visitors should NOT call node.accept() in their visit() methods
83
+ // as this causes infinite recursion. The less-compat plugin handles traversal.
84
+ if (prop === 'accept') {
85
+ return function (visitor) {
86
+ // Check if the visitor is a Less visitor (has visitRuleset, visitDeclaration, etc.)
87
+ // vs the less-compat visitor (has a visit method that converts to Less)
88
+ const isLessVisitor = visitor && (typeof visitor.visitRuleset === 'function' ||
89
+ typeof visitor.visitDeclaration === 'function' ||
90
+ typeof visitor.visitVariable === 'function' ||
91
+ typeof visitor.visitAtRule === 'function' ||
92
+ (typeof visitor.visit === 'function' && !visitor.atRule && !visitor.ruleset && !visitor.visit));
93
+ if (!isLessVisitor) {
94
+ // This is likely the less-compat visitor or a Jess visitor
95
+ // Just return the node without processing to avoid recursion
96
+ return target;
97
+ }
98
+ // This is a Less visitor - but we should NOT call visitor.visit here
99
+ // because the Less visitor's visit() method might call node.accept() again,
100
+ // causing infinite recursion. Instead, we just return the node.
101
+ // The less-compat plugin's visit() method handles calling Less visitors.
102
+ // If a Less visitor needs to traverse children, it should do so through
103
+ // the less-compat plugin's traversal, not by calling node.accept().
104
+ return target;
105
+ };
106
+ }
107
+ return undefined;
108
+ });
109
+ }
110
+ /**
111
+ * Convert an entire Jess Rules tree to Less-compatible format
112
+ *
113
+ * @param jessRules - The Jess Rules tree to convert
114
+ * @param options - Conversion options
115
+ * @returns A Less-compatible tree
116
+ */
117
+ export function toLessTree(jessRules, options) {
118
+ // If it's a Rules container, convert the root node
119
+ if (jessRules instanceof Rules) {
120
+ // Rules is a container - we need to find the root ruleset
121
+ // For now, create a synthetic root ruleset
122
+ // TODO: Handle this properly based on how Less structures its root
123
+ return toLessNode(jessRules, options);
124
+ }
125
+ // Otherwise, convert the node directly
126
+ return toLessNode(jessRules, options);
127
+ }
128
+ //# sourceMappingURL=to-less.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-less.js","sourceRoot":"","sources":["../../src/transform/to-less.ts"],"names":[],"mappings":"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"}