@jesscss/plugin-less-compat 2.0.0-alpha.5 → 2.0.0-alpha.7
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/README.md +3 -2
- package/lib/index.cjs +844 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +800 -9
- package/lib/less-adapter.cjs +216 -0
- package/lib/less-adapter.js +181 -0
- package/lib/less-compat-structures.cjs +378 -0
- package/lib/less-compat-structures.d.ts +2 -2
- package/lib/less-compat-structures.js +367 -512
- package/lib/nodes/at-rule.d.ts +2 -6
- package/lib/nodes/attribute-selector.d.ts +2 -6
- package/lib/nodes/call.d.ts +2 -6
- package/lib/nodes/color.d.ts +1 -5
- package/lib/nodes/combinator.d.ts +1 -5
- package/lib/nodes/comment.d.ts +1 -5
- package/lib/nodes/condition.d.ts +2 -6
- package/lib/nodes/declaration.d.ts +2 -6
- package/lib/nodes/dimension.d.ts +1 -5
- package/lib/nodes/expression.d.ts +2 -6
- package/lib/nodes/extend.d.ts +1 -5
- package/lib/nodes/import.d.ts +2 -6
- package/lib/nodes/keyword.d.ts +1 -5
- package/lib/nodes/list.d.ts +2 -5
- package/lib/nodes/mixin.d.ts +2 -6
- package/lib/nodes/negative.d.ts +2 -6
- package/lib/nodes/operation.d.ts +2 -6
- package/lib/nodes/paren.d.ts +2 -6
- package/lib/nodes/quoted.d.ts +1 -5
- package/lib/nodes/reference.d.ts +1 -8
- package/lib/nodes/ruleset.d.ts +2 -6
- package/lib/nodes/selector.d.ts +2 -7
- package/lib/nodes/sequence.d.ts +2 -9
- package/lib/nodes/url.d.ts +1 -5
- package/lib/nodes/var-declaration.d.ts +2 -6
- package/lib/plugin.d.ts +44 -16
- package/lib/transform/adapter.d.ts +31 -0
- package/lib/transform/index.cjs +13 -0
- package/lib/transform/index.d.ts +1 -1
- package/lib/transform/index.js +3 -8
- package/lib/transform/less-adapter.d.ts +29 -0
- package/lib/transform.cjs +1045 -0
- package/lib/transform.js +1015 -0
- package/lib/types.d.ts +153 -28
- package/package.json +13 -12
- package/lib/index.js.map +0 -1
- package/lib/less-compat-structures.js.map +0 -1
- package/lib/nodes/at-rule.js +0 -72
- package/lib/nodes/at-rule.js.map +0 -1
- package/lib/nodes/attribute-selector.js +0 -54
- package/lib/nodes/attribute-selector.js.map +0 -1
- package/lib/nodes/call.js +0 -83
- package/lib/nodes/call.js.map +0 -1
- package/lib/nodes/color.js +0 -57
- package/lib/nodes/color.js.map +0 -1
- package/lib/nodes/combinator.js +0 -34
- package/lib/nodes/combinator.js.map +0 -1
- package/lib/nodes/comment.js +0 -41
- package/lib/nodes/comment.js.map +0 -1
- package/lib/nodes/condition.js +0 -60
- package/lib/nodes/condition.js.map +0 -1
- package/lib/nodes/declaration.js +0 -81
- package/lib/nodes/declaration.js.map +0 -1
- package/lib/nodes/dimension.js +0 -47
- package/lib/nodes/dimension.js.map +0 -1
- package/lib/nodes/expression.js +0 -44
- package/lib/nodes/expression.js.map +0 -1
- package/lib/nodes/extend.js +0 -57
- package/lib/nodes/extend.js.map +0 -1
- package/lib/nodes/import.js +0 -63
- package/lib/nodes/import.js.map +0 -1
- package/lib/nodes/index.js +0 -308
- package/lib/nodes/index.js.map +0 -1
- package/lib/nodes/keyword.js +0 -36
- package/lib/nodes/keyword.js.map +0 -1
- package/lib/nodes/list.js +0 -150
- package/lib/nodes/list.js.map +0 -1
- package/lib/nodes/mixin.js +0 -62
- package/lib/nodes/mixin.js.map +0 -1
- package/lib/nodes/negative.js +0 -42
- package/lib/nodes/negative.js.map +0 -1
- package/lib/nodes/operation.js +0 -63
- package/lib/nodes/operation.js.map +0 -1
- package/lib/nodes/paren.js +0 -42
- package/lib/nodes/paren.js.map +0 -1
- package/lib/nodes/quoted.js +0 -57
- package/lib/nodes/quoted.js.map +0 -1
- package/lib/nodes/reference.js +0 -80
- package/lib/nodes/reference.js.map +0 -1
- package/lib/nodes/ruleset.js +0 -108
- package/lib/nodes/ruleset.js.map +0 -1
- package/lib/nodes/selector.js +0 -226
- package/lib/nodes/selector.js.map +0 -1
- package/lib/nodes/sequence.js +0 -75
- package/lib/nodes/sequence.js.map +0 -1
- package/lib/nodes/url.js +0 -42
- package/lib/nodes/url.js.map +0 -1
- package/lib/nodes/var-declaration.js +0 -60
- package/lib/nodes/var-declaration.js.map +0 -1
- package/lib/plugin-utils.js +0 -100
- package/lib/plugin-utils.js.map +0 -1
- package/lib/plugin.js +0 -1027
- package/lib/plugin.js.map +0 -1
- package/lib/transform/from-less.js +0 -170
- package/lib/transform/from-less.js.map +0 -1
- package/lib/transform/index.js.map +0 -1
- package/lib/transform/proxy.d.ts +0 -32
- package/lib/transform/proxy.js +0 -138
- package/lib/transform/proxy.js.map +0 -1
- package/lib/transform/to-less.js +0 -128
- package/lib/transform/to-less.js.map +0 -1
- package/lib/transform/type-map.js +0 -105
- package/lib/transform/type-map.js.map +0 -1
- package/lib/types.js +0 -5
- package/lib/types.js.map +0 -1
package/lib/nodes/condition.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { Node } from '@jesscss/core';
|
|
2
|
-
import { createLessProxy } from '../transform/proxy.js';
|
|
3
|
-
import { toLessNode } from '../transform/to-less.js';
|
|
4
|
-
import { mapJessTypeToLessType } from '../transform/type-map.js';
|
|
5
|
-
import { fromLessNode } from '../transform/from-less.js';
|
|
6
|
-
/**
|
|
7
|
-
* Transform a Jess Condition to a Less-compatible Condition
|
|
8
|
-
*/
|
|
9
|
-
export function transformConditionToLess(jessCondition, cache) {
|
|
10
|
-
return createLessProxy(jessCondition, cache, (prop, target) => {
|
|
11
|
-
const condition = target;
|
|
12
|
-
// Map 'type' property
|
|
13
|
-
if (prop === 'type') {
|
|
14
|
-
return mapJessTypeToLessType(condition.type);
|
|
15
|
-
}
|
|
16
|
-
// Map 'typeIndex'
|
|
17
|
-
if (prop === 'typeIndex') {
|
|
18
|
-
return undefined;
|
|
19
|
-
}
|
|
20
|
-
// Map 'op' property (operator)
|
|
21
|
-
// Condition.value is a tuple: [left, op?, right?]
|
|
22
|
-
if (prop === 'op') {
|
|
23
|
-
const [, op] = condition.value;
|
|
24
|
-
return op || '';
|
|
25
|
-
}
|
|
26
|
-
// Map 'lvalue' property (left value)
|
|
27
|
-
if (prop === 'lvalue') {
|
|
28
|
-
const [left] = condition.value;
|
|
29
|
-
if (left instanceof Node) {
|
|
30
|
-
return toLessNode(left, { cache });
|
|
31
|
-
}
|
|
32
|
-
return left;
|
|
33
|
-
}
|
|
34
|
-
// Map 'rvalue' property (right value)
|
|
35
|
-
if (prop === 'rvalue') {
|
|
36
|
-
const [, , right] = condition.value;
|
|
37
|
-
if (right instanceof Node) {
|
|
38
|
-
return toLessNode(right, { cache });
|
|
39
|
-
}
|
|
40
|
-
return right;
|
|
41
|
-
}
|
|
42
|
-
// Map 'negate' property
|
|
43
|
-
if (prop === 'negate') {
|
|
44
|
-
return condition.options?.negate === true;
|
|
45
|
-
}
|
|
46
|
-
// Map 'accept' method for visitor traversal
|
|
47
|
-
if (prop === 'accept') {
|
|
48
|
-
return function (visitor) {
|
|
49
|
-
const lessCondition = transformConditionToLess(condition, cache);
|
|
50
|
-
const result = visitor.visit(lessCondition);
|
|
51
|
-
if (result !== lessCondition) {
|
|
52
|
-
return fromLessNode(result, { cache });
|
|
53
|
-
}
|
|
54
|
-
return condition;
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
return undefined;
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=condition.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../src/nodes/condition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,aAAwB,EACxB,KAAyB;IAEzB,OAAO,eAAe,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAC5D,MAAM,SAAS,GAAG,MAAmB,CAAC;QAEtC,sBAAsB;QACtB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,+BAA+B;QAC/B,kDAAkD;QAClD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;YAC/B,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,CAAC;QAED,qCAAqC;QACrC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;YAC/B,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;gBACzB,OAAO,UAAU,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,sCAAsC;QACtC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,CAAC,EAAE,AAAD,EAAG,KAAK,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;YACpC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;gBAC1B,OAAO,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,wBAAwB;QACxB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QAC5C,CAAC;QAED,4CAA4C;QAC5C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,UAAS,OAAY;gBAC1B,MAAM,aAAa,GAAG,wBAAwB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACjE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC5C,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;oBAC7B,OAAO,YAAY,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzC,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/lib/nodes/declaration.js
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { Node } from '@jesscss/core';
|
|
2
|
-
import { createLessProxy } from '../transform/proxy.js';
|
|
3
|
-
import { toLessNode } from '../transform/to-less.js';
|
|
4
|
-
import { mapJessTypeToLessType } from '../transform/type-map.js';
|
|
5
|
-
/**
|
|
6
|
-
* Transform a Jess Declaration to a Less-compatible Declaration
|
|
7
|
-
*/
|
|
8
|
-
export function transformDeclarationToLess(jessDeclaration, cache) {
|
|
9
|
-
return createLessProxy(jessDeclaration, cache, (prop, target) => {
|
|
10
|
-
const decl = target;
|
|
11
|
-
// Map 'type' property
|
|
12
|
-
if (prop === 'type') {
|
|
13
|
-
return mapJessTypeToLessType(decl.type);
|
|
14
|
-
}
|
|
15
|
-
// typeIndex is handled automatically by the base proxy handler
|
|
16
|
-
// Map 'name' property
|
|
17
|
-
if (prop === 'name') {
|
|
18
|
-
return decl.value.name;
|
|
19
|
-
}
|
|
20
|
-
// Map 'value' property
|
|
21
|
-
if (prop === 'value') {
|
|
22
|
-
const value = decl.value.value;
|
|
23
|
-
if (value instanceof Node) {
|
|
24
|
-
return toLessNode(value, { cache });
|
|
25
|
-
}
|
|
26
|
-
return value;
|
|
27
|
-
}
|
|
28
|
-
// Map 'important' property
|
|
29
|
-
if (prop === 'important') {
|
|
30
|
-
return decl.value.important || false;
|
|
31
|
-
}
|
|
32
|
-
// Map 'variable' property (from options.assign)
|
|
33
|
-
// Jess uses AssignmentType enum, Less uses boolean
|
|
34
|
-
if (prop === 'variable') {
|
|
35
|
-
return decl.options?.assign !== undefined;
|
|
36
|
-
}
|
|
37
|
-
// Map 'merge' property (Less uses this for merging declarations)
|
|
38
|
-
if (prop === 'merge') {
|
|
39
|
-
return false; // Default, can be set by Less visitors
|
|
40
|
-
}
|
|
41
|
-
// Map 'accept' method for visitor traversal
|
|
42
|
-
// Less's Visitor.visit() calls node.accept(this) to traverse children
|
|
43
|
-
// Declaration's accept should ONLY traverse its value, NOT call visitor methods on itself
|
|
44
|
-
// The visitor's visit() method already called visitDeclaration() or visitRule() before calling accept()
|
|
45
|
-
if (prop === 'accept') {
|
|
46
|
-
return function (visitor) {
|
|
47
|
-
// Declaration's accept only traverses its value (children)
|
|
48
|
-
// Base Node.accept() pattern: visitor.visit(this.value)
|
|
49
|
-
const value = decl.value.value;
|
|
50
|
-
if (value instanceof Node) {
|
|
51
|
-
const lessValue = toLessNode(value, { cache });
|
|
52
|
-
if (lessValue && lessValue.accept) {
|
|
53
|
-
lessValue.accept(visitor);
|
|
54
|
-
}
|
|
55
|
-
else if (lessValue && visitor.visitArray) {
|
|
56
|
-
visitor.visitArray([lessValue]);
|
|
57
|
-
}
|
|
58
|
-
else if (lessValue && visitor.visit) {
|
|
59
|
-
visitor.visit(lessValue);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
else if (value && Array.isArray(value)) {
|
|
63
|
-
// If value is an array, use visitArray
|
|
64
|
-
const lessValues = value.map((v) => {
|
|
65
|
-
if (v instanceof Node) {
|
|
66
|
-
return toLessNode(v, { cache });
|
|
67
|
-
}
|
|
68
|
-
return v;
|
|
69
|
-
});
|
|
70
|
-
if (visitor.visitArray) {
|
|
71
|
-
visitor.visitArray(lessValues);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
// Return the declaration (accept doesn't return a replacement node)
|
|
75
|
-
return decl;
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
return undefined;
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=declaration.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"declaration.js","sourceRoot":"","sources":["../../src/nodes/declaration.ts"],"names":[],"mappings":"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"}
|
package/lib/nodes/dimension.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { Num } from '@jesscss/core';
|
|
2
|
-
import { createLessProxy } from '../transform/proxy.js';
|
|
3
|
-
import { mapJessTypeToLessType } from '../transform/type-map.js';
|
|
4
|
-
/**
|
|
5
|
-
* Transform a Jess Dimension or Num to a Less-compatible Dimension
|
|
6
|
-
*/
|
|
7
|
-
export function transformDimensionToLess(jessDimension, cache) {
|
|
8
|
-
return createLessProxy(jessDimension, cache, (prop, target) => {
|
|
9
|
-
const dim = target;
|
|
10
|
-
// Map 'type' property
|
|
11
|
-
if (prop === 'type') {
|
|
12
|
-
return mapJessTypeToLessType(dim.type);
|
|
13
|
-
}
|
|
14
|
-
// Map 'typeIndex'
|
|
15
|
-
if (prop === 'typeIndex') {
|
|
16
|
-
return undefined;
|
|
17
|
-
}
|
|
18
|
-
// Map 'value' property
|
|
19
|
-
if (prop === 'value') {
|
|
20
|
-
if (dim instanceof Num) {
|
|
21
|
-
return dim.value;
|
|
22
|
-
}
|
|
23
|
-
return dim.value.number;
|
|
24
|
-
}
|
|
25
|
-
// Map 'unit' property
|
|
26
|
-
if (prop === 'unit') {
|
|
27
|
-
if (dim instanceof Num) {
|
|
28
|
-
// Num has no unit, return empty string or undefined
|
|
29
|
-
return '';
|
|
30
|
-
}
|
|
31
|
-
// Dimension has unit as string, Less expects Unit node
|
|
32
|
-
// For now, return the string and let Less handle conversion
|
|
33
|
-
return dim.value.unit || '';
|
|
34
|
-
}
|
|
35
|
-
// Map 'accept' method for visitor traversal
|
|
36
|
-
if (prop === 'accept') {
|
|
37
|
-
return function (visitor) {
|
|
38
|
-
// Less Dimension has no children, so accept() should just return the dimension
|
|
39
|
-
// The visitor's visit() method will handle traversal
|
|
40
|
-
// We don't call visitor.visit() here to avoid infinite loops
|
|
41
|
-
return dim;
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
return undefined;
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=dimension.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dimension.js","sourceRoot":"","sources":["../../src/nodes/dimension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,GAAG,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGjE;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,aAA8B,EAC9B,KAAyB;IAEzB,OAAO,eAAe,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAC5D,MAAM,GAAG,GAAG,MAAyB,CAAC;QAEtC,sBAAsB;QACtB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,IAAI,GAAG,YAAY,GAAG,EAAE,CAAC;gBACvB,OAAO,GAAG,CAAC,KAAK,CAAC;YACnB,CAAC;YACD,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;QAC1B,CAAC;QAED,sBAAsB;QACtB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,IAAI,GAAG,YAAY,GAAG,EAAE,CAAC;gBACvB,oDAAoD;gBACpD,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,uDAAuD;YACvD,4DAA4D;YAC5D,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAC9B,CAAC;QAED,4CAA4C;QAC5C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,UAAS,OAAY;gBAC1B,+EAA+E;gBAC/E,qDAAqD;gBACrD,6DAA6D;gBAC7D,OAAO,GAAG,CAAC;YACb,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/lib/nodes/expression.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Node } from '@jesscss/core';
|
|
2
|
-
import { createLessProxy } from '../transform/proxy.js';
|
|
3
|
-
import { toLessNode } from '../transform/to-less.js';
|
|
4
|
-
import { mapJessTypeToLessType } from '../transform/type-map.js';
|
|
5
|
-
import { fromLessNode } from '../transform/from-less.js';
|
|
6
|
-
/**
|
|
7
|
-
* Transform a Jess Expression to a Less-compatible Expression
|
|
8
|
-
*/
|
|
9
|
-
export function transformExpressionToLess(jessExpression, cache) {
|
|
10
|
-
return createLessProxy(jessExpression, cache, (prop, target) => {
|
|
11
|
-
const expr = target;
|
|
12
|
-
// Map 'type' property
|
|
13
|
-
if (prop === 'type') {
|
|
14
|
-
return mapJessTypeToLessType(expr.type);
|
|
15
|
-
}
|
|
16
|
-
// Map 'typeIndex'
|
|
17
|
-
if (prop === 'typeIndex') {
|
|
18
|
-
return undefined;
|
|
19
|
-
}
|
|
20
|
-
// Map 'value' property (Less expects array)
|
|
21
|
-
if (prop === 'value') {
|
|
22
|
-
const value = expr.value;
|
|
23
|
-
if (value instanceof Node) {
|
|
24
|
-
// Single node - wrap in array
|
|
25
|
-
return [toLessNode(value, { cache })];
|
|
26
|
-
}
|
|
27
|
-
// Expression.value is always a Node, so this shouldn't happen
|
|
28
|
-
return [value];
|
|
29
|
-
}
|
|
30
|
-
// Map 'accept' method for visitor traversal
|
|
31
|
-
if (prop === 'accept') {
|
|
32
|
-
return function (visitor) {
|
|
33
|
-
const lessExpr = transformExpressionToLess(expr, cache);
|
|
34
|
-
const result = visitor.visit(lessExpr);
|
|
35
|
-
if (result !== lessExpr) {
|
|
36
|
-
return fromLessNode(result, { cache });
|
|
37
|
-
}
|
|
38
|
-
return expr;
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
return undefined;
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=expression.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"expression.js","sourceRoot":"","sources":["../../src/nodes/expression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,IAAI,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,cAA0B,EAC1B,KAAyB;IAEzB,OAAO,eAAe,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAC7D,MAAM,IAAI,GAAG,MAAoB,CAAC;QAElC,sBAAsB;QACtB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,4CAA4C;QAC5C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;gBAC1B,8BAA8B;gBAC9B,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACxC,CAAC;YACD,8DAA8D;YAC9D,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;QAED,4CAA4C;QAC5C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,UAAS,OAAY;gBAC1B,MAAM,QAAQ,GAAG,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACxB,OAAO,YAAY,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/lib/nodes/extend.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { Selector } from '@jesscss/core';
|
|
2
|
-
import { createLessProxy } from '../transform/proxy.js';
|
|
3
|
-
import { toLessNode } from '../transform/to-less.js';
|
|
4
|
-
import { mapJessTypeToLessType } from '../transform/type-map.js';
|
|
5
|
-
import { fromLessNode } from '../transform/from-less.js';
|
|
6
|
-
/**
|
|
7
|
-
* Transform a Jess Extend to a Less-compatible Extend
|
|
8
|
-
*/
|
|
9
|
-
export function transformExtendToLess(jessExtend, cache) {
|
|
10
|
-
return createLessProxy(jessExtend, cache, (prop, target) => {
|
|
11
|
-
const extend = target;
|
|
12
|
-
// Map 'type' property
|
|
13
|
-
if (prop === 'type') {
|
|
14
|
-
return mapJessTypeToLessType(extend.type);
|
|
15
|
-
}
|
|
16
|
-
// Map 'typeIndex'
|
|
17
|
-
if (prop === 'typeIndex') {
|
|
18
|
-
return undefined;
|
|
19
|
-
}
|
|
20
|
-
// Map 'selector' property
|
|
21
|
-
if (prop === 'selector') {
|
|
22
|
-
const selector = extend.value.selector;
|
|
23
|
-
if (selector instanceof Selector) {
|
|
24
|
-
return toLessNode(selector, { cache });
|
|
25
|
-
}
|
|
26
|
-
return selector;
|
|
27
|
-
}
|
|
28
|
-
// Map 'option' property (Less uses this for extend options)
|
|
29
|
-
// Jess uses 'flag' (ExtendFlag), Less uses 'option' string
|
|
30
|
-
if (prop === 'option') {
|
|
31
|
-
const flag = extend.value.flag;
|
|
32
|
-
// ExtendFlag.All = 0 (default), ExtendFlag.Exact = 1
|
|
33
|
-
return flag === 1 ? 'exact' : 'all';
|
|
34
|
-
}
|
|
35
|
-
// Map 'index' property
|
|
36
|
-
if (prop === 'index') {
|
|
37
|
-
const loc = extend.location;
|
|
38
|
-
if (Array.isArray(loc) || !loc) {
|
|
39
|
-
return undefined;
|
|
40
|
-
}
|
|
41
|
-
return loc.index;
|
|
42
|
-
}
|
|
43
|
-
// Map 'accept' method for visitor traversal
|
|
44
|
-
if (prop === 'accept') {
|
|
45
|
-
return function (visitor) {
|
|
46
|
-
const lessExtend = transformExtendToLess(extend, cache);
|
|
47
|
-
const result = visitor.visit(lessExtend);
|
|
48
|
-
if (result !== lessExtend) {
|
|
49
|
-
return fromLessNode(result, { cache });
|
|
50
|
-
}
|
|
51
|
-
return extend;
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
return undefined;
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=extend.js.map
|
package/lib/nodes/extend.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extend.js","sourceRoot":"","sources":["../../src/nodes/extend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAkB,EAClB,KAAyB;IAEzB,OAAO,eAAe,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QACzD,MAAM,MAAM,GAAG,MAAgB,CAAC;QAEhC,sBAAsB;QACtB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,0BAA0B;QAC1B,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;YACvC,IAAI,QAAQ,YAAY,QAAQ,EAAE,CAAC;gBACjC,OAAO,UAAU,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,4DAA4D;QAC5D,2DAA2D;QAC3D,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YAC/B,qDAAqD;YACrD,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QACtC,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC/B,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,OAAQ,GAAW,CAAC,KAAK,CAAC;QAC5B,CAAC;QAED,4CAA4C;QAC5C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,UAAS,OAAY;gBAC1B,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACzC,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;oBAC1B,OAAO,YAAY,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzC,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/lib/nodes/import.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { Node } from '@jesscss/core';
|
|
2
|
-
import { createLessProxy } from '../transform/proxy.js';
|
|
3
|
-
import { toLessNode } from '../transform/to-less.js';
|
|
4
|
-
import { mapJessTypeToLessType } from '../transform/type-map.js';
|
|
5
|
-
import { fromLessNode } from '../transform/from-less.js';
|
|
6
|
-
/**
|
|
7
|
-
* Transform a Jess StyleImport to a Less-compatible Import
|
|
8
|
-
*/
|
|
9
|
-
export function transformImportToLess(jessImport, cache) {
|
|
10
|
-
return createLessProxy(jessImport, cache, (prop, target) => {
|
|
11
|
-
const imp = target;
|
|
12
|
-
// Map 'type' property
|
|
13
|
-
if (prop === 'type') {
|
|
14
|
-
return mapJessTypeToLessType(imp.type);
|
|
15
|
-
}
|
|
16
|
-
// Map 'typeIndex'
|
|
17
|
-
if (prop === 'typeIndex') {
|
|
18
|
-
return undefined;
|
|
19
|
-
}
|
|
20
|
-
// Map 'path' property
|
|
21
|
-
if (prop === 'path') {
|
|
22
|
-
const path = imp.value.path;
|
|
23
|
-
if (path instanceof Node) {
|
|
24
|
-
return toLessNode(path, { cache });
|
|
25
|
-
}
|
|
26
|
-
return path;
|
|
27
|
-
}
|
|
28
|
-
// Map 'options' property (Less uses this for import options)
|
|
29
|
-
// Jess stores import options in options.importOptions
|
|
30
|
-
if (prop === 'options') {
|
|
31
|
-
return imp.options?.importOptions || {};
|
|
32
|
-
}
|
|
33
|
-
// Map 'currentFileInfo' property
|
|
34
|
-
if (prop === 'currentFileInfo') {
|
|
35
|
-
const loc = imp.location;
|
|
36
|
-
if (Array.isArray(loc)) {
|
|
37
|
-
return {};
|
|
38
|
-
}
|
|
39
|
-
return loc || {};
|
|
40
|
-
}
|
|
41
|
-
// Map 'index' property
|
|
42
|
-
if (prop === 'index') {
|
|
43
|
-
const loc = imp.location;
|
|
44
|
-
if (Array.isArray(loc) || !loc) {
|
|
45
|
-
return undefined;
|
|
46
|
-
}
|
|
47
|
-
return loc.index;
|
|
48
|
-
}
|
|
49
|
-
// Map 'accept' method for visitor traversal
|
|
50
|
-
if (prop === 'accept') {
|
|
51
|
-
return function (visitor) {
|
|
52
|
-
const lessImport = transformImportToLess(imp, cache);
|
|
53
|
-
const result = visitor.visit(lessImport);
|
|
54
|
-
if (result !== lessImport) {
|
|
55
|
-
return fromLessNode(result, { cache });
|
|
56
|
-
}
|
|
57
|
-
return imp;
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
return undefined;
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=import.js.map
|
package/lib/nodes/import.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/nodes/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAuB,EACvB,KAAyB;IAEzB,OAAO,eAAe,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QACzD,MAAM,GAAG,GAAG,MAAqB,CAAC;QAElC,sBAAsB;QACtB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,sBAAsB;QACtB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAC5B,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;gBACzB,OAAO,UAAU,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,6DAA6D;QAC7D,sDAAsD;QACtD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,OAAO,EAAE,aAAa,IAAI,EAAE,CAAC;QAC1C,CAAC;QAED,iCAAiC;QACjC,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;YACzB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,GAAG,IAAI,EAAE,CAAC;QACnB,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;YACzB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC/B,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,OAAQ,GAAW,CAAC,KAAK,CAAC;QAC5B,CAAC;QAED,4CAA4C;QAC5C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,UAAS,OAAY;gBAC1B,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACrD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACzC,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;oBAC1B,OAAO,YAAY,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzC,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC"}
|