sass-embedded 1.0.0-beta.7 → 1.49.8

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 (56) hide show
  1. package/CHANGELOG.md +2386 -33
  2. package/README.md +95 -9
  3. package/dist/lib/index.js +25 -10
  4. package/dist/lib/index.js.map +1 -1
  5. package/dist/lib/src/compile.js +67 -65
  6. package/dist/lib/src/compile.js.map +1 -1
  7. package/dist/lib/src/function-registry.js +16 -5
  8. package/dist/lib/src/function-registry.js.map +1 -1
  9. package/dist/lib/src/importer-registry.js +127 -0
  10. package/dist/lib/src/importer-registry.js.map +1 -0
  11. package/dist/lib/src/legacy/importer.js +191 -0
  12. package/dist/lib/src/legacy/importer.js.map +1 -0
  13. package/dist/lib/src/legacy/index.js +267 -0
  14. package/dist/lib/src/legacy/index.js.map +1 -0
  15. package/dist/lib/src/legacy/resolve-path.js +101 -0
  16. package/dist/lib/src/legacy/resolve-path.js.map +1 -0
  17. package/dist/lib/src/legacy/value/base.js +17 -0
  18. package/dist/lib/src/legacy/value/base.js.map +1 -0
  19. package/dist/lib/src/legacy/value/color.js +64 -0
  20. package/dist/lib/src/legacy/value/color.js.map +1 -0
  21. package/dist/lib/src/legacy/value/index.js +23 -0
  22. package/dist/lib/src/legacy/value/index.js.map +1 -0
  23. package/dist/lib/src/legacy/value/list.js +50 -0
  24. package/dist/lib/src/legacy/value/list.js.map +1 -0
  25. package/dist/lib/src/legacy/value/map.js +74 -0
  26. package/dist/lib/src/legacy/value/map.js.map +1 -0
  27. package/dist/lib/src/legacy/value/number.js +60 -0
  28. package/dist/lib/src/legacy/value/number.js.map +1 -0
  29. package/dist/lib/src/legacy/value/string.js +27 -0
  30. package/dist/lib/src/legacy/value/string.js.map +1 -0
  31. package/dist/lib/src/legacy/value/wrap.js +83 -0
  32. package/dist/lib/src/legacy/value/wrap.js.map +1 -0
  33. package/dist/lib/src/protofier.js +67 -0
  34. package/dist/lib/src/protofier.js.map +1 -1
  35. package/dist/lib/src/utils.js +37 -1
  36. package/dist/lib/src/utils.js.map +1 -1
  37. package/dist/lib/src/value/argument-list.js +31 -0
  38. package/dist/lib/src/value/argument-list.js.map +1 -0
  39. package/dist/lib/src/value/boolean.js +17 -1
  40. package/dist/lib/src/value/boolean.js.map +1 -1
  41. package/dist/lib/src/value/function.js +34 -0
  42. package/dist/lib/src/value/function.js.map +1 -0
  43. package/dist/lib/src/value/null.js +13 -1
  44. package/dist/lib/src/value/null.js.map +1 -1
  45. package/dist/lib/src/vendor/embedded-protocol/embedded_sass_pb.js +24 -1
  46. package/dist/lib/src/vendor/embedded-protocol/embedded_sass_pb.js.map +1 -1
  47. package/dist/package.json +3 -3
  48. package/dist/tool/utils.js +13 -7
  49. package/dist/tool/utils.js.map +1 -1
  50. package/dist/types/index.d.ts +5 -1
  51. package/dist/types/legacy/function.d.ts +110 -6
  52. package/dist/types/legacy/plugin_this.d.ts +7 -4
  53. package/dist/types/options.d.ts +10 -0
  54. package/package.json +3 -3
  55. package/dist/lib/src/legacy.js +0 -133
  56. package/dist/lib/src/legacy.js.map +0 -1
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ // Copyright 2022 Google LLC. Use of this source code is governed by an
3
+ // MIT-style license that can be found in the LICENSE file or at
4
+ // https://opensource.org/licenses/MIT.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LegacyColor = void 0;
7
+ const color_1 = require("../../value/color");
8
+ const base_1 = require("./base");
9
+ class LegacyColor extends base_1.LegacyValueBase {
10
+ constructor(redOrArgb, green, blue, alpha) {
11
+ if (redOrArgb instanceof color_1.SassColor) {
12
+ super(redOrArgb);
13
+ return;
14
+ }
15
+ let red;
16
+ if (!green || !blue) {
17
+ const argb = redOrArgb;
18
+ alpha = (argb >> 24) / 0xff;
19
+ red = (argb >> 16) % 0x100;
20
+ green = (argb >> 8) % 0x100;
21
+ blue = argb % 0x100;
22
+ }
23
+ else {
24
+ red = redOrArgb;
25
+ }
26
+ super(new color_1.SassColor({
27
+ red: clamp(red, 0, 255),
28
+ green: clamp(green, 0, 255),
29
+ blue: clamp(blue, 0, 255),
30
+ alpha: alpha ? clamp(alpha, 0, 1) : 1,
31
+ }));
32
+ }
33
+ getR() {
34
+ return this.inner.red;
35
+ }
36
+ setR(value) {
37
+ this.inner = this.inner.change({ red: clamp(value, 0, 255) });
38
+ }
39
+ getG() {
40
+ return this.inner.green;
41
+ }
42
+ setG(value) {
43
+ this.inner = this.inner.change({ green: clamp(value, 0, 255) });
44
+ }
45
+ getB() {
46
+ return this.inner.blue;
47
+ }
48
+ setB(value) {
49
+ this.inner = this.inner.change({ blue: clamp(value, 0, 255) });
50
+ }
51
+ getA() {
52
+ return this.inner.alpha;
53
+ }
54
+ setA(value) {
55
+ this.inner = this.inner.change({ alpha: clamp(value, 0, 1) });
56
+ }
57
+ }
58
+ exports.LegacyColor = LegacyColor;
59
+ Object.defineProperty(LegacyColor, 'name', { value: 'sass.types.Color' });
60
+ // Returns `number` clamped to between `min` and `max`.
61
+ function clamp(num, min, max) {
62
+ return Math.min(Math.max(num, min), max);
63
+ }
64
+ //# sourceMappingURL=color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.js","sourceRoot":"","sources":["../../../../../lib/src/legacy/value/color.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ // Copyright 2022 Google LLC. Use of this source code is governed by an
3
+ // MIT-style license that can be found in the LICENSE file or at
4
+ // https://opensource.org/licenses/MIT.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Error = exports.String = exports.Number = exports.Null = exports.Map = exports.List = exports.Color = exports.Boolean = void 0;
7
+ const boolean_1 = require("../../value/boolean");
8
+ const null_1 = require("../../value/null");
9
+ const color_1 = require("./color");
10
+ const list_1 = require("./list");
11
+ const map_1 = require("./map");
12
+ const number_1 = require("./number");
13
+ const string_1 = require("./string");
14
+ exports.Boolean = boolean_1.SassBooleanInternal;
15
+ exports.Color = color_1.LegacyColor;
16
+ exports.List = list_1.LegacyList;
17
+ exports.Map = map_1.LegacyMap;
18
+ exports.Null = null_1.SassNull;
19
+ exports.Number = number_1.LegacyNumber;
20
+ exports.String = string_1.LegacyString;
21
+ // For the `sass.types.Error` object, we just re-export the native Error class.
22
+ exports.Error = global.Error;
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/src/legacy/value/index.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,iDAAwD;AACxD,2CAA0C;AAC1C,mCAAoC;AACpC,iCAAkC;AAClC,+BAAgC;AAChC,qCAAsC;AACtC,qCAAsC;AAEzB,QAAA,OAAO,GAAG,6BAAmB,CAAC;AAC9B,QAAA,KAAK,GAAG,mBAAW,CAAC;AACpB,QAAA,IAAI,GAAG,iBAAU,CAAC;AAClB,QAAA,GAAG,GAAG,eAAS,CAAC;AAChB,QAAA,IAAI,GAAG,eAAQ,CAAC;AAChB,QAAA,MAAM,GAAG,qBAAY,CAAC;AACtB,QAAA,MAAM,GAAG,qBAAY,CAAC;AAEnC,+EAA+E;AAClE,QAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ // Copyright 2022 Google LLC. Use of this source code is governed by an
3
+ // MIT-style license that can be found in the LICENSE file or at
4
+ // https://opensource.org/licenses/MIT.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LegacyList = void 0;
7
+ const base_1 = require("./base");
8
+ const list_1 = require("../../value/list");
9
+ const null_1 = require("../../value/null");
10
+ const wrap_1 = require("./wrap");
11
+ class LegacyList extends base_1.LegacyValueBase {
12
+ constructor(lengthOrInner, commaSeparator) {
13
+ if (lengthOrInner instanceof list_1.SassList) {
14
+ super(lengthOrInner);
15
+ return;
16
+ }
17
+ super(new list_1.SassList(new Array(lengthOrInner).fill(null_1.sassNull), {
18
+ separator: commaSeparator === false ? ' ' : ',',
19
+ }));
20
+ }
21
+ getValue(index) {
22
+ const length = this.inner.asList.size;
23
+ if (index < 0 || index >= length) {
24
+ throw new Error(`Invalid index ${index}, must be between 0 and ${length}`);
25
+ }
26
+ const value = this.inner.get(index);
27
+ return value ? (0, wrap_1.wrapValue)(value) : undefined;
28
+ }
29
+ setValue(index, value) {
30
+ this.inner = new list_1.SassList(this.inner.asList.set(index, (0, wrap_1.unwrapValue)(value)), {
31
+ separator: this.inner.separator,
32
+ brackets: this.inner.hasBrackets,
33
+ });
34
+ }
35
+ getSeparator() {
36
+ return this.inner.separator === ',';
37
+ }
38
+ setSeparator(isComma) {
39
+ this.inner = new list_1.SassList(this.inner.asList, {
40
+ separator: isComma ? ',' : ' ',
41
+ brackets: this.inner.hasBrackets,
42
+ });
43
+ }
44
+ getLength() {
45
+ return this.inner.asList.size;
46
+ }
47
+ }
48
+ exports.LegacyList = LegacyList;
49
+ Object.defineProperty(LegacyList, 'name', { value: 'sass.types.List' });
50
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../lib/src/legacy/value/list.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,iCAAuC;AAEvC,2CAA0C;AAC1C,2CAA0C;AAC1C,iCAA8C;AAE9C,MAAa,UAAW,SAAQ,sBAAyB;IAIvD,YAAY,aAAgC,EAAE,cAAwB;QACpE,IAAI,aAAa,YAAY,eAAQ,EAAE;YACrC,KAAK,CAAC,aAAa,CAAC,CAAC;YACrB,OAAO;SACR;QAED,KAAK,CACH,IAAI,eAAQ,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,eAAQ,CAAC,EAAE;YACpD,SAAS,EAAE,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;SAChD,CAAC,CACH,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;QACtC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,MAAM,EAAE;YAChC,MAAM,IAAI,KAAK,CACb,iBAAiB,KAAK,2BAA2B,MAAM,EAAE,CAC1D,CAAC;SACH;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC,CAAC,CAAC,IAAA,gBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9C,CAAC;IAED,QAAQ,CAAC,KAAa,EAAE,KAAkB;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,eAAQ,CACvB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAA,kBAAW,EAAC,KAAK,CAAC,CAAC,EAChD;YACE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;SACjC,CACF,CAAC;IACJ,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,GAAG,CAAC;IACtC,CAAC;IAED,YAAY,CAAC,OAAgB;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,eAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAC3C,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;YAC9B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;SACjC,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;IAChC,CAAC;CACF;AApDD,gCAoDC;AAED,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,EAAC,KAAK,EAAE,iBAAiB,EAAC,CAAC,CAAC"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ // Copyright 2022 Google LLC. Use of this source code is governed by an
3
+ // MIT-style license that can be found in the LICENSE file or at
4
+ // https://opensource.org/licenses/MIT.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LegacyMap = void 0;
7
+ const immutable_1 = require("immutable");
8
+ const base_1 = require("./base");
9
+ const map_1 = require("../../value/map");
10
+ const number_1 = require("../../value/number");
11
+ const null_1 = require("../../value/null");
12
+ const wrap_1 = require("./wrap");
13
+ class LegacyMap extends base_1.LegacyValueBase {
14
+ constructor(lengthOrInner) {
15
+ if (lengthOrInner instanceof map_1.SassMap) {
16
+ super(lengthOrInner);
17
+ return;
18
+ }
19
+ super(new map_1.SassMap((0, immutable_1.OrderedMap)(Array.from({ length: lengthOrInner }, (_, i) => [
20
+ new number_1.SassNumber(i),
21
+ null_1.sassNull,
22
+ ]))));
23
+ }
24
+ getValue(index) {
25
+ const value = this.inner.contents.valueSeq().get(index);
26
+ if (index < 0 || !value) {
27
+ throw new Error(`Invalid index ${index}, must be between 0 and ` +
28
+ this.inner.contents.size);
29
+ }
30
+ return (0, wrap_1.wrapValue)(value);
31
+ }
32
+ setValue(index, value) {
33
+ this.inner = new map_1.SassMap(this.inner.contents.set(this.getUnwrappedKey(index), (0, wrap_1.unwrapValue)(value)));
34
+ }
35
+ getKey(index) {
36
+ return (0, wrap_1.wrapValue)(this.getUnwrappedKey(index));
37
+ }
38
+ // Like `getKey()`, but returns the unwrapped non-legacy value.
39
+ getUnwrappedKey(index) {
40
+ const key = this.inner.contents.keySeq().get(index);
41
+ if (index >= 0 && key)
42
+ return key;
43
+ throw new Error(`Invalid index ${index}, must be between 0 and ` +
44
+ this.inner.contents.size);
45
+ }
46
+ setKey(index, key) {
47
+ const oldMap = this.inner.contents;
48
+ if (index < 0 || index >= oldMap.size) {
49
+ throw new Error(`Invalid index ${index}, must be between 0 and ${oldMap.size}`);
50
+ }
51
+ const newKey = (0, wrap_1.unwrapValue)(key);
52
+ const newMap = (0, immutable_1.OrderedMap)().asMutable();
53
+ let i = 0;
54
+ for (const [oldKey, oldValue] of oldMap.entries()) {
55
+ if (i === index) {
56
+ newMap.set(newKey, oldValue);
57
+ }
58
+ else {
59
+ if (newKey.equals(oldKey)) {
60
+ throw new Error(`${key} is already in the map`);
61
+ }
62
+ newMap.set(oldKey, oldValue);
63
+ }
64
+ i++;
65
+ }
66
+ this.inner = new map_1.SassMap(newMap.asImmutable());
67
+ }
68
+ getLength() {
69
+ return this.inner.contents.size;
70
+ }
71
+ }
72
+ exports.LegacyMap = LegacyMap;
73
+ Object.defineProperty(LegacyMap, 'name', { value: 'sass.types.Map' });
74
+ //# sourceMappingURL=map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../../lib/src/legacy/value/map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ // Copyright 2022 Google LLC. Use of this source code is governed by an
3
+ // MIT-style license that can be found in the LICENSE file or at
4
+ // https://opensource.org/licenses/MIT.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LegacyNumber = void 0;
7
+ const number_1 = require("../../value/number");
8
+ const base_1 = require("./base");
9
+ class LegacyNumber extends base_1.LegacyValueBase {
10
+ constructor(valueOrInner, unit) {
11
+ super(valueOrInner instanceof number_1.SassNumber
12
+ ? valueOrInner
13
+ : parseNumber(valueOrInner, unit));
14
+ }
15
+ getValue() {
16
+ return this.inner.value;
17
+ }
18
+ setValue(value) {
19
+ this.inner = new number_1.SassNumber(value, {
20
+ numeratorUnits: this.inner.numeratorUnits,
21
+ denominatorUnits: this.inner.denominatorUnits,
22
+ });
23
+ }
24
+ getUnit() {
25
+ return (this.inner.numeratorUnits.join('*') +
26
+ (this.inner.denominatorUnits.size === 0 ? '' : '/') +
27
+ this.inner.denominatorUnits.join('*'));
28
+ }
29
+ setUnit(unit) {
30
+ this.inner = parseNumber(this.inner.value, unit);
31
+ }
32
+ }
33
+ exports.LegacyNumber = LegacyNumber;
34
+ Object.defineProperty(LegacyNumber, 'name', { value: 'sass.types.Number' });
35
+ // Parses a `SassNumber` from `value` and `unit`, using Node Sass's unit
36
+ // format.
37
+ function parseNumber(value, unit) {
38
+ if (!unit)
39
+ return new number_1.SassNumber(value);
40
+ if (!unit.includes('*') && !unit.includes('/')) {
41
+ return new number_1.SassNumber(value, unit);
42
+ }
43
+ const invalidUnit = new Error(`Unit ${unit} is invalid`);
44
+ const operands = unit.split('/');
45
+ if (operands.length > 2)
46
+ throw invalidUnit;
47
+ const numerator = operands[0];
48
+ const denominator = operands.length === 1 ? null : operands[1];
49
+ const numeratorUnits = numerator.length === 0 ? [] : numerator.split('*');
50
+ if (numeratorUnits.some(unit => unit.length === 0))
51
+ throw invalidUnit;
52
+ const denominatorUnits = denominator === null ? [] : denominator.split('*');
53
+ if (denominatorUnits.some(unit => unit.length === 0))
54
+ throw invalidUnit;
55
+ return new number_1.SassNumber(value, {
56
+ numeratorUnits: numeratorUnits,
57
+ denominatorUnits: denominatorUnits,
58
+ });
59
+ }
60
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../../../lib/src/legacy/value/number.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,+CAA8C;AAC9C,iCAAuC;AAEvC,MAAa,YAAa,SAAQ,sBAA2B;IAC3D,YAAY,YAAiC,EAAE,IAAa;QAC1D,KAAK,CACH,YAAY,YAAY,mBAAU;YAChC,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,CACpC,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,mBAAU,CAAC,KAAK,EAAE;YACjC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;YACzC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;YACnC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACnD,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CACtC,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;CACF;AA/BD,oCA+BC;AAED,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,EAAC,KAAK,EAAE,mBAAmB,EAAC,CAAC,CAAC;AAE1E,wEAAwE;AACxE,UAAU;AACV,SAAS,WAAW,CAAC,KAAa,EAAE,IAAa;IAC/C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,mBAAU,CAAC,KAAK,CAAC,CAAC;IAExC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAC9C,OAAO,IAAI,mBAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KACpC;IAED,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,QAAQ,IAAI,aAAa,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,WAAW,CAAC;IAE3C,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE/D,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1E,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;QAAE,MAAM,WAAW,CAAC;IAEtE,MAAM,gBAAgB,GAAG,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5E,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;QAAE,MAAM,WAAW,CAAC;IAExE,OAAO,IAAI,mBAAU,CAAC,KAAK,EAAE;QAC3B,cAAc,EAAE,cAAc;QAC9B,gBAAgB,EAAE,gBAAgB;KACnC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ // Copyright 2022 Google LLC. Use of this source code is governed by an
3
+ // MIT-style license that can be found in the LICENSE file or at
4
+ // https://opensource.org/licenses/MIT.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LegacyString = void 0;
7
+ const string_1 = require("../../value/string");
8
+ const base_1 = require("./base");
9
+ class LegacyString extends base_1.LegacyValueBase {
10
+ constructor(valueOrInner) {
11
+ if (valueOrInner instanceof string_1.SassString) {
12
+ super(valueOrInner);
13
+ }
14
+ else {
15
+ super(new string_1.SassString(valueOrInner, { quotes: false }));
16
+ }
17
+ }
18
+ getValue() {
19
+ return this.inner.text;
20
+ }
21
+ setValue(value) {
22
+ this.inner = new string_1.SassString(value, { quotes: false });
23
+ }
24
+ }
25
+ exports.LegacyString = LegacyString;
26
+ Object.defineProperty(LegacyString, 'name', { value: 'sass.types.String' });
27
+ //# sourceMappingURL=string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.js","sourceRoot":"","sources":["../../../../../lib/src/legacy/value/string.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,+CAA8C;AAC9C,iCAAuC;AAEvC,MAAa,YAAa,SAAQ,sBAA2B;IAC3D,YAAY,YAAiC;QAC3C,IAAI,YAAY,YAAY,mBAAU,EAAE;YACtC,KAAK,CAAC,YAAY,CAAC,CAAC;SACrB;aAAM;YACL,KAAK,CAAC,IAAI,mBAAU,CAAC,YAAY,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC;SACtD;IACH,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,mBAAU,CAAC,KAAK,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC;IACtD,CAAC;CACF;AAhBD,oCAgBC;AAED,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,EAAC,KAAK,EAAE,mBAAmB,EAAC,CAAC,CAAC"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ // Copyright 2022 Google LLC. Use of this source code is governed by an
3
+ // MIT-style license that can be found in the LICENSE file or at
4
+ // https://opensource.org/licenses/MIT.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.wrapValue = exports.unwrapValue = exports.wrapFunction = void 0;
7
+ const util = require("util");
8
+ const base_1 = require("./base");
9
+ const color_1 = require("./color");
10
+ const list_1 = require("./list");
11
+ const map_1 = require("./map");
12
+ const number_1 = require("./number");
13
+ const string_1 = require("./string");
14
+ const value_1 = require("../../value");
15
+ const color_2 = require("../../value/color");
16
+ const list_2 = require("../../value/list");
17
+ const map_2 = require("../../value/map");
18
+ const number_2 = require("../../value/number");
19
+ const string_2 = require("../../value/string");
20
+ /**
21
+ * Converts a `LegacyFunction` into a `CustomFunction` so it can be passed to
22
+ * the new JS API.
23
+ */
24
+ function wrapFunction(thisArg, callback, sync) {
25
+ if (sync) {
26
+ return args => unwrapTypedValue(callback.apply(thisArg, args.map(wrapValue)));
27
+ }
28
+ else {
29
+ return args => new Promise((resolve, reject) => {
30
+ const done = (result) => {
31
+ try {
32
+ if (result instanceof Error) {
33
+ reject(result);
34
+ }
35
+ else {
36
+ resolve(unwrapTypedValue(result));
37
+ }
38
+ }
39
+ catch (error) {
40
+ reject(error);
41
+ }
42
+ };
43
+ // The cast here is necesary to work around microsoft/TypeScript#33815.
44
+ const syncResult = callback.apply(thisArg, [...args.map(wrapValue), done]);
45
+ if (syncResult !== undefined)
46
+ resolve(unwrapTypedValue(syncResult));
47
+ });
48
+ }
49
+ }
50
+ exports.wrapFunction = wrapFunction;
51
+ // Like `unwrapValue()`, but returns a `types.Value` type.
52
+ function unwrapTypedValue(value) {
53
+ return unwrapValue(value);
54
+ }
55
+ /** Converts a value returned by a `LegacyFunction` into a `Value`. */
56
+ function unwrapValue(value) {
57
+ if (value instanceof Error)
58
+ throw value;
59
+ if (value instanceof value_1.Value)
60
+ return value;
61
+ if (value instanceof base_1.LegacyValueBase)
62
+ return value.inner;
63
+ throw new Error(`Expected legacy Sass value, got ${util.inspect(value)}.`);
64
+ }
65
+ exports.unwrapValue = unwrapValue;
66
+ /** Converts a `Value` into a `LegacyValue`. */
67
+ function wrapValue(value) {
68
+ if (value instanceof color_2.SassColor)
69
+ return new color_1.LegacyColor(value);
70
+ if (value instanceof list_2.SassList)
71
+ return new list_1.LegacyList(value);
72
+ if (value instanceof map_2.SassMap)
73
+ return new map_1.LegacyMap(value);
74
+ if (value instanceof number_2.SassNumber)
75
+ return new number_1.LegacyNumber(value);
76
+ if (value instanceof string_2.SassString)
77
+ return new string_1.LegacyString(value);
78
+ if (value instanceof value_1.Value)
79
+ return value;
80
+ throw new Error(`Expected Sass value, got ${util.inspect(value)}.`);
81
+ }
82
+ exports.wrapValue = wrapValue;
83
+ //# sourceMappingURL=wrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap.js","sourceRoot":"","sources":["../../../../../lib/src/legacy/value/wrap.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,6BAA6B;AAE7B,iCAAuC;AACvC,mCAAoC;AACpC,iCAAkC;AAClC,+BAAgC;AAChC,qCAAsC;AACtC,qCAAsC;AAEtC,uCAAkC;AAClC,6CAA4C;AAC5C,2CAA0C;AAC1C,yCAAwC;AACxC,+CAA8C;AAC9C,+CAA8C;AAS9C;;;GAGG;AACH,SAAgB,YAAY,CAC1B,OAAyB,EACzB,QAA8B,EAC9B,IAAuB;IAEvB,IAAI,IAAI,EAAE;QACR,OAAO,IAAI,CAAC,EAAE,CACZ,gBAAgB,CACb,QAAmC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CACzE,CAAC;KACL;SAAM;QACL,OAAO,IAAI,CAAC,EAAE,CACZ,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,CAAC,MAAe,EAAE,EAAE;gBAC/B,IAAI;oBACF,IAAI,MAAM,YAAY,KAAK,EAAE;wBAC3B,MAAM,CAAC,MAAM,CAAC,CAAC;qBAChB;yBAAM;wBACL,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;qBACnC;iBACF;gBAAC,OAAO,KAAc,EAAE;oBACvB,MAAM,CAAC,KAAK,CAAC,CAAC;iBACf;YACH,CAAC,CAAC;YAEF,uEAAuE;YACvE,MAAM,UAAU,GAAI,QAA4C,CAAC,KAAK,CACpE,OAAO,EACP,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAC/B,CAAC;YAEF,IAAI,UAAU,KAAK,SAAS;gBAAE,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;QACtE,CAAC,CAAiC,CAAC;KACtC;AACH,CAAC;AAlCD,oCAkCC;AAED,0DAA0D;AAC1D,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,WAAW,CAAC,KAAK,CAAgB,CAAC;AAC3C,CAAC;AAED,sEAAsE;AACtE,SAAgB,WAAW,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,KAAK;QAAE,MAAM,KAAK,CAAC;IACxC,IAAI,KAAK,YAAY,aAAK;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,KAAK,YAAY,sBAAe;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC;IACzD,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7E,CAAC;AALD,kCAKC;AAED,+CAA+C;AAC/C,SAAgB,SAAS,CAAC,KAA0B;IAClD,IAAI,KAAK,YAAY,iBAAS;QAAE,OAAO,IAAI,mBAAW,CAAC,KAAK,CAAC,CAAC;IAC9D,IAAI,KAAK,YAAY,eAAQ;QAAE,OAAO,IAAI,iBAAU,CAAC,KAAK,CAAC,CAAC;IAC5D,IAAI,KAAK,YAAY,aAAO;QAAE,OAAO,IAAI,eAAS,CAAC,KAAK,CAAC,CAAC;IAC1D,IAAI,KAAK,YAAY,mBAAU;QAAE,OAAO,IAAI,qBAAY,CAAC,KAAK,CAAC,CAAC;IAChE,IAAI,KAAK,YAAY,mBAAU;QAAE,OAAO,IAAI,qBAAY,CAAC,KAAK,CAAC,CAAC;IAChE,IAAI,KAAK,YAAY,aAAK;QAAE,OAAO,KAAK,CAAC;IACzC,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtE,CAAC;AARD,8BAQC"}
@@ -7,7 +7,9 @@ exports.Protofier = void 0;
7
7
  const immutable_1 = require("immutable");
8
8
  const proto = require("./vendor/embedded-protocol/embedded_sass_pb");
9
9
  const utils = require("./utils");
10
+ const argument_list_1 = require("./value/argument-list");
10
11
  const color_1 = require("./value/color");
12
+ const function_1 = require("./value/function");
11
13
  const list_1 = require("./value/list");
12
14
  const map_1 = require("./value/map");
13
15
  const number_1 = require("./value/number");
@@ -21,6 +23,26 @@ const boolean_1 = require("./value/boolean");
21
23
  * custom function call.
22
24
  */
23
25
  class Protofier {
26
+ constructor(
27
+ /**
28
+ * The registry of custom functions that can be invoked by the compiler.
29
+ * This is used to register first-class functions so that the compiler may
30
+ * invoke them.
31
+ */
32
+ functions) {
33
+ this.functions = functions;
34
+ /** All the argument lists returned by `deprotofy()`. */
35
+ this.argumentLists = [];
36
+ }
37
+ /**
38
+ * Returns IDs of all argument lists passed to `deprotofy()` whose keywords
39
+ * have been accessed.
40
+ */
41
+ get accessedArgumentLists() {
42
+ return this.argumentLists
43
+ .filter(list => list.keywordsAccessed)
44
+ .map(list => list.id);
45
+ }
24
46
  /** Converts `value` to its protocol buffer representation. */
25
47
  protofy(value) {
26
48
  const result = new proto.Value();
@@ -60,6 +82,19 @@ class Protofier {
60
82
  }
61
83
  result.setList(list);
62
84
  }
85
+ else if (value instanceof argument_list_1.SassArgumentList) {
86
+ const list = new proto.Value.ArgumentList();
87
+ list.setId(value.id);
88
+ list.setSeparator(this.protofySeparator(value.separator));
89
+ for (const element of value.asList) {
90
+ list.addContents(this.protofy(element));
91
+ }
92
+ const keywords = list.getKeywordsMap();
93
+ for (const [key, mapValue] of value.keywordsInternal) {
94
+ keywords.set(key, this.protofy(mapValue));
95
+ }
96
+ result.setArgumentList(list);
97
+ }
63
98
  else if (value instanceof map_1.SassMap) {
64
99
  const map = new proto.Value.Map();
65
100
  for (const [key, mapValue] of value.contents) {
@@ -70,6 +105,19 @@ class Protofier {
70
105
  }
71
106
  result.setMap(map);
72
107
  }
108
+ else if (value instanceof function_1.SassFunction) {
109
+ if (value.id !== undefined) {
110
+ const fn = new proto.Value.CompilerFunction();
111
+ fn.setId(value.id);
112
+ result.setCompilerFunction(fn);
113
+ }
114
+ else {
115
+ const fn = new proto.Value.HostFunction();
116
+ fn.setId(this.functions.register(value.callback));
117
+ fn.setSignature(value.signature);
118
+ result.setHostFunction(fn);
119
+ }
120
+ }
73
121
  else if (value === boolean_1.sassTrue) {
74
122
  result.setSingleton(proto.SingletonValue.TRUE);
75
123
  }
@@ -150,6 +198,21 @@ class Protofier {
150
198
  }
151
199
  return new list_1.SassList(contents.map(element => this.deprotofy(element)), { separator, brackets: list.getHasBrackets() });
152
200
  }
201
+ case proto.Value.ValueCase.ARGUMENT_LIST: {
202
+ const list = value.getArgumentList();
203
+ const separator = this.deprotofySeparator(list.getSeparator());
204
+ const contents = list.getContentsList();
205
+ if (separator === null && contents.length > 1) {
206
+ throw utils.compilerError(`Value.List ${list} can't have an undecided separator because it ` +
207
+ `has ${contents.length} elements`);
208
+ }
209
+ const result = new argument_list_1.SassArgumentList(contents.map(element => this.deprotofy(element)), (0, immutable_1.OrderedMap)([...list.getKeywordsMap().entries()].map(([key, value]) => [
210
+ key,
211
+ this.deprotofy(value),
212
+ ])), separator, list.getId());
213
+ this.argumentLists.push(result);
214
+ return result;
215
+ }
153
216
  case proto.Value.ValueCase.MAP:
154
217
  return new map_1.SassMap((0, immutable_1.OrderedMap)(value
155
218
  .getMap()
@@ -163,6 +226,10 @@ class Protofier {
163
226
  throw utils.mandatoryError('Value.Map.Entry.value');
164
227
  return [this.deprotofy(key), this.deprotofy(value)];
165
228
  })));
229
+ case proto.Value.ValueCase.COMPILER_FUNCTION:
230
+ return new function_1.SassFunction(value.getCompilerFunction().getId());
231
+ case proto.Value.ValueCase.HOST_FUNCTION:
232
+ throw utils.compilerError('The compiler may not send Value.host_function.');
166
233
  case proto.Value.ValueCase.SINGLETON:
167
234
  switch (value.getSingleton()) {
168
235
  case proto.SingletonValue.TRUE:
@@ -1 +1 @@
1
- {"version":3,"file":"protofier.js","sourceRoot":"","sources":["../../../lib/src/protofier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protofier.js","sourceRoot":"","sources":["../../../lib/src/protofier.ts"],"names":[],"mappings":"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"}
@@ -3,16 +3,25 @@
3
3
  // MIT-style license that can be found in the LICENSE file or at
4
4
  // https://opensource.org/licenses/MIT.
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.putIfAbsent = exports.withoutExtension = exports.pathToUrlString = exports.valueError = exports.hostError = exports.mandatoryError = exports.compilerError = exports.asImmutableList = exports.isNullOrUndefined = exports.catchOr = exports.thenOr = void 0;
6
+ exports.putIfAbsent = exports.protofySyntax = exports.withoutExtension = exports.fileUrlToPathCrossPlatform = exports.pathToUrlString = exports.valueError = exports.hostError = exports.mandatoryError = exports.compilerError = exports.asImmutableList = exports.isNullOrUndefined = exports.catchOr = exports.thenOr = void 0;
7
7
  const immutable_1 = require("immutable");
8
8
  const p = require("path");
9
9
  const url = require("url");
10
+ const proto = require("./vendor/embedded-protocol/embedded_sass_pb");
11
+ /**
12
+ * The equivalent of `Promise.then()`, except that if the first argument is a
13
+ * plain value it synchronously invokes `callback()` and returns its result.
14
+ */
10
15
  function thenOr(promiseOrValue, callback) {
11
16
  return promiseOrValue instanceof Promise
12
17
  ? promiseOrValue.then(callback)
13
18
  : callback(promiseOrValue);
14
19
  }
15
20
  exports.thenOr = thenOr;
21
+ /**
22
+ * The equivalent of `Promise.catch()`, except that if the first argument throws
23
+ * synchronously it synchronously invokes `callback()` and returns its result.
24
+ */
16
25
  function catchOr(promiseOrValueCallback, callback) {
17
26
  try {
18
27
  const result = promiseOrValueCallback();
@@ -66,12 +75,39 @@ function pathToUrlString(path) {
66
75
  return components.map(encodeURIComponent).join('/');
67
76
  }
68
77
  exports.pathToUrlString = pathToUrlString;
78
+ /**
79
+ * Like `url.fileURLToPath`, but returns the same result for Windows-style file
80
+ * URLs on all platforms.
81
+ */
82
+ function fileUrlToPathCrossPlatform(fileUrl) {
83
+ const path = url.fileURLToPath(fileUrl);
84
+ // Windows file: URLs begin with `file:///C:/` (or another drive letter),
85
+ // which `fileURLToPath` converts to `"/C:/"` on non-Windows systems. We want
86
+ // to ensure the behavior is consistent across OSes, so we normalize this back
87
+ // to a Windows-style path.
88
+ return /^\/[A-Za-z]:\//.test(path) ? path.substring(1) : path;
89
+ }
90
+ exports.fileUrlToPathCrossPlatform = fileUrlToPathCrossPlatform;
69
91
  /** Returns `path` without an extension, if it had one. */
70
92
  function withoutExtension(path) {
71
93
  const extension = p.extname(path);
72
94
  return path.substring(0, path.length - extension.length);
73
95
  }
74
96
  exports.withoutExtension = withoutExtension;
97
+ /** Converts a JS syntax string into a protobuf syntax enum. */
98
+ function protofySyntax(syntax) {
99
+ switch (syntax) {
100
+ case 'scss':
101
+ return proto.Syntax.SCSS;
102
+ case 'indented':
103
+ return proto.Syntax.INDENTED;
104
+ case 'css':
105
+ return proto.Syntax.CSS;
106
+ default:
107
+ throw new Error(`Unknown syntax: "${syntax}"`);
108
+ }
109
+ }
110
+ exports.protofySyntax = protofySyntax;
75
111
  /**
76
112
  * Dart-style utility. See
77
113
  * http://go/dart-api/stable/2.8.4/dart-core/Map/putIfAbsent.html.