sass-embedded 1.0.0-beta.8 → 1.0.0-rc.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 (43) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/dist/lib/index.js +14 -6
  3. package/dist/lib/index.js.map +1 -1
  4. package/dist/lib/src/compile.js +1 -1
  5. package/dist/lib/src/compile.js.map +1 -1
  6. package/dist/lib/src/legacy/importer.js +186 -0
  7. package/dist/lib/src/legacy/importer.js.map +1 -0
  8. package/dist/lib/src/legacy/index.js +261 -0
  9. package/dist/lib/src/legacy/index.js.map +1 -0
  10. package/dist/lib/src/legacy/resolve-path.js +101 -0
  11. package/dist/lib/src/legacy/resolve-path.js.map +1 -0
  12. package/dist/lib/src/legacy/value/base.js +17 -0
  13. package/dist/lib/src/legacy/value/base.js.map +1 -0
  14. package/dist/lib/src/legacy/value/color.js +64 -0
  15. package/dist/lib/src/legacy/value/color.js.map +1 -0
  16. package/dist/lib/src/legacy/value/index.js +23 -0
  17. package/dist/lib/src/legacy/value/index.js.map +1 -0
  18. package/dist/lib/src/legacy/value/list.js +50 -0
  19. package/dist/lib/src/legacy/value/list.js.map +1 -0
  20. package/dist/lib/src/legacy/value/map.js +74 -0
  21. package/dist/lib/src/legacy/value/map.js.map +1 -0
  22. package/dist/lib/src/legacy/value/number.js +60 -0
  23. package/dist/lib/src/legacy/value/number.js.map +1 -0
  24. package/dist/lib/src/legacy/value/string.js +27 -0
  25. package/dist/lib/src/legacy/value/string.js.map +1 -0
  26. package/dist/lib/src/legacy/value/wrap.js +83 -0
  27. package/dist/lib/src/legacy/value/wrap.js.map +1 -0
  28. package/dist/lib/src/utils.js +14 -1
  29. package/dist/lib/src/utils.js.map +1 -1
  30. package/dist/lib/src/value/boolean.js +17 -1
  31. package/dist/lib/src/value/boolean.js.map +1 -1
  32. package/dist/lib/src/value/null.js +13 -1
  33. package/dist/lib/src/value/null.js.map +1 -1
  34. package/dist/package.json +2 -2
  35. package/dist/tool/utils.js +1 -1
  36. package/dist/tool/utils.js.map +1 -1
  37. package/dist/types/index.d.ts +5 -1
  38. package/dist/types/legacy/function.d.ts +63 -7
  39. package/dist/types/legacy/plugin_this.d.ts +4 -4
  40. package/dist/types/options.d.ts +10 -0
  41. package/package.json +2 -2
  42. package/dist/lib/src/legacy.js +0 -133
  43. package/dist/lib/src/legacy.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 1.0.0-rc.1
2
+
3
+ * Add support for the legacy `render()` and `renderSync()` functions and the
4
+ legacy `sass.types` namespace.
5
+
1
6
  ## 1.0.0-beta.8
2
7
 
3
8
  * Fully support the new JS API:
package/dist/lib/index.js CHANGED
@@ -3,15 +3,17 @@
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.Logger = exports.info = exports.render = exports.compileStringAsync = exports.compileAsync = exports.compileString = exports.compile = exports.Exception = exports.sassNull = exports.Value = exports.SassString = exports.SassNumber = exports.SassMap = exports.SassFunction = exports.SassColor = exports.sassTrue = exports.sassFalse = exports.SassArgumentList = exports.SassList = void 0;
6
+ exports.NULL = exports.FALSE = exports.TRUE = exports.Logger = exports.info = exports.renderSync = exports.render = exports.compileStringAsync = exports.compileAsync = exports.compileString = exports.compile = exports.Exception = exports.types = exports.sassNull = exports.Value = exports.SassString = exports.SassNumber = exports.SassMap = exports.SassFunction = exports.SassColor = exports.sassTrue = exports.sassFalse = exports.SassArgumentList = exports.SassList = void 0;
7
7
  const pkg = require("../package.json");
8
+ const boolean_1 = require("./src/value/boolean");
9
+ const null_1 = require("./src/value/null");
8
10
  var list_1 = require("./src/value/list");
9
11
  Object.defineProperty(exports, "SassList", { enumerable: true, get: function () { return list_1.SassList; } });
10
12
  var argument_list_1 = require("./src/value/argument-list");
11
13
  Object.defineProperty(exports, "SassArgumentList", { enumerable: true, get: function () { return argument_list_1.SassArgumentList; } });
12
- var boolean_1 = require("./src/value/boolean");
13
- Object.defineProperty(exports, "sassFalse", { enumerable: true, get: function () { return boolean_1.sassFalse; } });
14
- Object.defineProperty(exports, "sassTrue", { enumerable: true, get: function () { return boolean_1.sassTrue; } });
14
+ var boolean_2 = require("./src/value/boolean");
15
+ Object.defineProperty(exports, "sassFalse", { enumerable: true, get: function () { return boolean_2.sassFalse; } });
16
+ Object.defineProperty(exports, "sassTrue", { enumerable: true, get: function () { return boolean_2.sassTrue; } });
15
17
  var color_1 = require("./src/value/color");
16
18
  Object.defineProperty(exports, "SassColor", { enumerable: true, get: function () { return color_1.SassColor; } });
17
19
  var function_1 = require("./src/value/function");
@@ -24,8 +26,9 @@ var string_1 = require("./src/value/string");
24
26
  Object.defineProperty(exports, "SassString", { enumerable: true, get: function () { return string_1.SassString; } });
25
27
  var value_1 = require("./src/value");
26
28
  Object.defineProperty(exports, "Value", { enumerable: true, get: function () { return value_1.Value; } });
27
- var null_1 = require("./src/value/null");
28
- Object.defineProperty(exports, "sassNull", { enumerable: true, get: function () { return null_1.sassNull; } });
29
+ var null_2 = require("./src/value/null");
30
+ Object.defineProperty(exports, "sassNull", { enumerable: true, get: function () { return null_2.sassNull; } });
31
+ exports.types = require("./src/legacy/value");
29
32
  var exception_1 = require("./src/exception");
30
33
  Object.defineProperty(exports, "Exception", { enumerable: true, get: function () { return exception_1.Exception; } });
31
34
  var compile_1 = require("./src/compile");
@@ -35,8 +38,13 @@ Object.defineProperty(exports, "compileAsync", { enumerable: true, get: function
35
38
  Object.defineProperty(exports, "compileStringAsync", { enumerable: true, get: function () { return compile_1.compileStringAsync; } });
36
39
  var legacy_1 = require("./src/legacy");
37
40
  Object.defineProperty(exports, "render", { enumerable: true, get: function () { return legacy_1.render; } });
41
+ Object.defineProperty(exports, "renderSync", { enumerable: true, get: function () { return legacy_1.renderSync; } });
38
42
  exports.info = `sass-embedded\t${pkg.version}`;
39
43
  exports.Logger = {
40
44
  silent: { warn() { }, debug() { } },
41
45
  };
46
+ // Legacy JS API
47
+ exports.TRUE = boolean_1.sassTrue;
48
+ exports.FALSE = boolean_1.sassFalse;
49
+ exports.NULL = null_1.sassNull;
42
50
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,uCAAuC;AAEvC,yCAAyD;AAAlC,gGAAA,QAAQ,OAAA;AAC/B,2DAA2D;AAAnD,iHAAA,gBAAgB,OAAA;AACxB,+CAAqE;AAAhD,oGAAA,SAAS,OAAA;AAAE,mGAAA,QAAQ,OAAA;AACxC,2CAA4C;AAApC,kGAAA,SAAS,OAAA;AACjB,iDAAkD;AAA1C,wGAAA,YAAY,OAAA;AACpB,uCAAwC;AAAhC,8FAAA,OAAO,OAAA;AACf,6CAA8C;AAAtC,oGAAA,UAAU,OAAA;AAClB,6CAA8C;AAAtC,oGAAA,UAAU,OAAA;AAClB,qCAAkC;AAA1B,8FAAA,KAAK,OAAA;AACb,yCAA0C;AAAlC,gGAAA,QAAQ,OAAA;AAEhB,6CAA0C;AAAlC,sGAAA,SAAS,OAAA;AACjB,yCAKuB;AAJrB,kGAAA,OAAO,OAAA;AACP,wGAAA,aAAa,OAAA;AACb,uGAAA,YAAY,OAAA;AACZ,6GAAA,kBAAkB,OAAA;AAEpB,uCAAoC;AAA5B,gGAAA,MAAM,OAAA;AAED,QAAA,IAAI,GAAG,kBAAkB,GAAG,CAAC,OAAO,EAAE,CAAC;AAEvC,QAAA,MAAM,GAAG;IACpB,MAAM,EAAE,EAAC,IAAI,KAAI,CAAC,EAAE,KAAK,KAAI,CAAC,EAAC;CAChC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,uCAAuC;AACvC,iDAAwD;AACxD,2CAA0C;AAE1C,yCAAyD;AAAlC,gGAAA,QAAQ,OAAA;AAC/B,2DAA2D;AAAnD,iHAAA,gBAAgB,OAAA;AACxB,+CAAwD;AAAhD,oGAAA,SAAS,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAC3B,2CAA4C;AAApC,kGAAA,SAAS,OAAA;AACjB,iDAAkD;AAA1C,wGAAA,YAAY,OAAA;AACpB,uCAAwC;AAAhC,8FAAA,OAAO,OAAA;AACf,6CAA8C;AAAtC,oGAAA,UAAU,OAAA;AAClB,6CAA8C;AAAtC,oGAAA,UAAU,OAAA;AAClB,qCAAkC;AAA1B,8FAAA,KAAK,OAAA;AACb,yCAA0C;AAAlC,gGAAA,QAAQ,OAAA;AAEhB,8CAA4C;AAC5C,6CAA0C;AAAlC,sGAAA,SAAS,OAAA;AACjB,yCAKuB;AAJrB,kGAAA,OAAO,OAAA;AACP,wGAAA,aAAa,OAAA;AACb,uGAAA,YAAY,OAAA;AACZ,6GAAA,kBAAkB,OAAA;AAEpB,uCAAgD;AAAxC,gGAAA,MAAM,OAAA;AAAE,oGAAA,UAAU,OAAA;AAEb,QAAA,IAAI,GAAG,kBAAkB,GAAG,CAAC,OAAO,EAAE,CAAC;AAEvC,QAAA,MAAM,GAAG;IACpB,MAAM,EAAE,EAAC,IAAI,KAAI,CAAC,EAAE,KAAK,KAAI,CAAC,EAAC;CAChC,CAAC;AAEF,gBAAgB;AAEH,QAAA,IAAI,GAAG,kBAAQ,CAAC;AAChB,QAAA,KAAK,GAAG,mBAAS,CAAC;AAClB,QAAA,IAAI,GAAG,eAAQ,CAAC"}
@@ -50,7 +50,7 @@ function newCompileStringRequest(source, importers, options) {
50
50
  input.setSyntax(utils.protofySyntax((_a = options === null || options === void 0 ? void 0 : options.syntax) !== null && _a !== void 0 ? _a : 'scss'));
51
51
  if (options === null || options === void 0 ? void 0 : options.url)
52
52
  input.setUrl(options.url.toString());
53
- if (options && 'importer' in options) {
53
+ if (options && 'importer' in options && options.importer) {
54
54
  input.setImporter(importers.register(options.importer));
55
55
  }
56
56
  const request = newCompileRequest(importers, options);
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../lib/src/compile.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAGvC,gDAAgD;AAEhD,qEAAqE;AACrE,iCAAiC;AACjC,qDAAuD;AAEvD,6CAA4D;AAC5D,2CAAsC;AACtC,2DAAqD;AACrD,2DAAqD;AACrD,+DAAyD;AACzD,6DAAuD;AACvD,mDAAqD;AACrD,qDAAqD;AAErD,SAAgB,OAAO,CACrB,IAAY,EACZ,OAAyB;IAEzB,MAAM,SAAS,GAAG,IAAI,oCAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,kBAAkB,CACvB,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAC/C,SAAS,EACT,OAAO,CACR,CAAC;AACJ,CAAC;AAVD,0BAUC;AAED,SAAgB,aAAa,CAC3B,MAAc,EACd,OAAyB;IAEzB,MAAM,SAAS,GAAG,IAAI,oCAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,kBAAkB,CACvB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EACnD,SAAS,EACT,OAAO,CACR,CAAC;AACJ,CAAC;AAVD,sCAUC;AAED,SAAgB,YAAY,CAC1B,IAAY,EACZ,OAA0B;IAE1B,MAAM,SAAS,GAAG,IAAI,oCAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,mBAAmB,CACxB,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAC/C,SAAS,EACT,OAAO,CACR,CAAC;AACJ,CAAC;AAVD,oCAUC;AAED,SAAgB,kBAAkB,CAChC,MAAc,EACd,OAAgC;IAEhC,MAAM,SAAS,GAAG,IAAI,oCAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,mBAAmB,CACxB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EACnD,SAAS,EACT,OAAO,CACR,CAAC;AACJ,CAAC;AAVD,gDAUC;AAED,0CAA0C;AAC1C,SAAS,qBAAqB,CAC5B,IAAY,EACZ,SAA6C,EAC7C,OAAmC;IAEnC,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACtD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4CAA4C;AAC5C,SAAS,uBAAuB,CAC9B,MAAc,EACd,SAA6C,EAC7C,OAAyC;;IAEzC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;IACpE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,mCAAI,MAAM,CAAC,CAAC,CAAC;IAEhE,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG;QAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEvD,IAAI,OAAO,IAAI,UAAU,IAAI,OAAO,EAAE;QACpC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;KACzD;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACtD,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACzB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,2EAA2E;AAC3E,0BAA0B;AAC1B,SAAS,iBAAiB,CACxB,SAA6C,EAC7C,OAAmC;;IAEnC,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;IAC1D,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9C,OAAO,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,EAAE,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAA,CAAC,CAAC;IAC3C,OAAO,CAAC,aAAa,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACrE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAA,CAAC,CAAC;IAC7C,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAA,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAA,CAAC,CAAC;IAEvC,QAAQ,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,mCAAI,UAAU,EAAE;QACpC,KAAK,UAAU;YACb,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM;QAER,KAAK,YAAY;YACf,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM;QAER;YACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,GAAG,CAAC,CAAC;KACjE;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,+EAA+E;AAC/E,wEAAwE;AACxE,iEAAiE;AACjE,KAAK,UAAU,mBAAmB,CAChC,OAA4C,EAC5C,SAAoC,EACpC,OAA0B;IAE1B,MAAM,SAAS,GAAG,IAAI,oCAAgB,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,IAAI,sCAAqB,EAAE,CAAC;IAErD,IAAI;QACF,MAAM,UAAU,GAAG,gBAAgB,CACjC,gBAAgB,CAAC,OAAO,EACxB,MAAM,CAAC,EAAE;YACP,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,EACD;YACE,mBAAmB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YACzD,uBAAuB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;YACjE,yBAAyB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC;YACrE,yBAAyB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;SAC9D,CACF,CAAC;QAEF,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAEzE,OAAO,qBAAqB,CAC1B,MAAM,IAAI,OAAO,CACf,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAClB,UAAU,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;YACvD,IAAI,GAAG,EAAE;gBACP,MAAM,CAAC,GAAG,CAAC,CAAC;aACb;iBAAM;gBACL,OAAO,CAAC,QAAS,CAAC,CAAC;aACpB;QACH,CAAC,CAAC,CACL,CACF,CAAC;KACH;YAAS;QACR,gBAAgB,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,gBAAgB,CAAC,KAAK,CAAC;KAC9B;AACH,CAAC;AAED,+EAA+E;AAC/E,wEAAwE;AACxE,iEAAiE;AACjE,SAAS,kBAAkB,CACzB,OAA4C,EAC5C,SAAmC,EACnC,OAAyB;IAEzB,MAAM,SAAS,GAAG,IAAI,oCAAgB,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,IAAI,oCAAoB,EAAE,CAAC;IAEpD,IAAI;QACF,MAAM,UAAU,GAAG,gBAAgB,CACjC,gBAAgB,CAAC,OAAO,EACxB,MAAM,CAAC,EAAE;YACP,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,EACD;YACE,mBAAmB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YACzD,uBAAuB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;YACjE,yBAAyB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC;YACrE,yBAAyB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;SAC9D,CACF,CAAC;QAEF,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAEzE,IAAI,KAAc,CAAC;QACnB,IAAI,QAA2D,CAAC;QAChE,UAAU,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;YAC3D,IAAI,MAAM,EAAE;gBACV,KAAK,GAAG,MAAM,CAAC;aAChB;iBAAM;gBACL,QAAQ,GAAG,SAAS,CAAC;aACtB;QACH,CAAC,CAAC,CAAC;QAEH,SAAS;YACP,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE;gBAC7B,MAAM,KAAK,CAAC,aAAa,CAAC,wCAAwC,CAAC,CAAC;aACrE;YAED,IAAI,KAAK;gBAAE,MAAM,KAAK,CAAC;YACvB,IAAI,QAAQ;gBAAE,OAAO,qBAAqB,CAAC,QAAQ,CAAC,CAAC;SACtD;KACF;YAAS;QACR,gBAAgB,CAAC,KAAK,EAAE,CAAC;QACzB,gBAAgB,CAAC,cAAc,EAAE,CAAC;KACnC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,MAA0B,EAC1B,UAAoC,EACpC,QAAkC;IAElC,MAAM,iBAAiB,GAAG,IAAI,sCAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAEpE,MAAM,kBAAkB,GAAG,IAAI,wCAAkB,CAC/C,iBAAiB,CAAC,kBAAkB,EACpC,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CACzD,CAAC;IAEF,OAAO,IAAI,uBAAU,CACnB,kBAAkB,CAAC,iBAAiB,EACpC,OAAO,CAAC,EAAE,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAC1D,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,kDAAkD;AAClD,SAAS,cAAc,CACrB,OAA8C,EAC9C,KAAqC;;IAErC,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE;QAChD,IAAI,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,KAAK,EAAE;YAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;gBACvC,IAAI,EAAE,IAAA,oCAAmB,EAAC,KAAK,CAAC,OAAO,EAAG,CAAC;aAC5C,CAAC,CAAC;SACJ;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;SACrC;KACF;SAAM;QACL,IAAI,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,IAAI,EAAE;YACzB,MAAM,MAAM,GACV;gBACE,WAAW,EACT,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,YAAY,CAAC,mBAAmB;aAC7D,CAAC;YAEJ,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,SAAS;gBAAE,MAAM,CAAC,IAAI,GAAG,IAAA,oCAAmB,EAAC,SAAS,CAAC,CAAC;YAE5D,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;YACpC,IAAI,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YAEhC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;SACjD;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;SACrC;KACF;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAC5B,QAA+C;IAE/C,IAAI,QAAQ,CAAC,UAAU,EAAE,EAAE;QACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAG,CAAC;QACvC,MAAM,MAAM,GAAkB;YAC5B,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE;YACrB,UAAU,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;SACjE,CAAC;QAEF,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QACzC,IAAI,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC;KACf;SAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,EAAE;QAChC,MAAM,IAAI,qBAAS,CAAC,QAAQ,CAAC,UAAU,EAAG,CAAC,CAAC;KAC7C;SAAM;QACL,MAAM,KAAK,CAAC,aAAa,CAAC,sCAAsC,CAAC,CAAC;KACnE;AACH,CAAC"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../lib/src/compile.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAGvC,gDAAgD;AAEhD,qEAAqE;AACrE,iCAAiC;AACjC,qDAAuD;AAEvD,6CAA4D;AAC5D,2CAAsC;AACtC,2DAAqD;AACrD,2DAAqD;AACrD,+DAAyD;AACzD,6DAAuD;AACvD,mDAAqD;AACrD,qDAAqD;AAErD,SAAgB,OAAO,CACrB,IAAY,EACZ,OAAyB;IAEzB,MAAM,SAAS,GAAG,IAAI,oCAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,kBAAkB,CACvB,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAC/C,SAAS,EACT,OAAO,CACR,CAAC;AACJ,CAAC;AAVD,0BAUC;AAED,SAAgB,aAAa,CAC3B,MAAc,EACd,OAA+B;IAE/B,MAAM,SAAS,GAAG,IAAI,oCAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,kBAAkB,CACvB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EACnD,SAAS,EACT,OAAO,CACR,CAAC;AACJ,CAAC;AAVD,sCAUC;AAED,SAAgB,YAAY,CAC1B,IAAY,EACZ,OAA0B;IAE1B,MAAM,SAAS,GAAG,IAAI,oCAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,mBAAmB,CACxB,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAC/C,SAAS,EACT,OAAO,CACR,CAAC;AACJ,CAAC;AAVD,oCAUC;AAED,SAAgB,kBAAkB,CAChC,MAAc,EACd,OAAgC;IAEhC,MAAM,SAAS,GAAG,IAAI,oCAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,mBAAmB,CACxB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EACnD,SAAS,EACT,OAAO,CACR,CAAC;AACJ,CAAC;AAVD,gDAUC;AAED,0CAA0C;AAC1C,SAAS,qBAAqB,CAC5B,IAAY,EACZ,SAA6C,EAC7C,OAAmC;IAEnC,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACtD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4CAA4C;AAC5C,SAAS,uBAAuB,CAC9B,MAAc,EACd,SAA6C,EAC7C,OAAyC;;IAEzC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;IACpE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,mCAAI,MAAM,CAAC,CAAC,CAAC;IAEhE,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG;QAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEvD,IAAI,OAAO,IAAI,UAAU,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;QACxD,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;KACzD;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACtD,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACzB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,2EAA2E;AAC3E,0BAA0B;AAC1B,SAAS,iBAAiB,CACxB,SAA6C,EAC7C,OAAmC;;IAEnC,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;IAC1D,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9C,OAAO,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,EAAE,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAA,CAAC,CAAC;IAC3C,OAAO,CAAC,aAAa,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACrE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAA,CAAC,CAAC;IAC7C,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAA,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAA,CAAC,CAAC;IAEvC,QAAQ,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,mCAAI,UAAU,EAAE;QACpC,KAAK,UAAU;YACb,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM;QAER,KAAK,YAAY;YACf,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM;QAER;YACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,GAAG,CAAC,CAAC;KACjE;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,+EAA+E;AAC/E,wEAAwE;AACxE,iEAAiE;AACjE,KAAK,UAAU,mBAAmB,CAChC,OAA4C,EAC5C,SAAoC,EACpC,OAA0B;IAE1B,MAAM,SAAS,GAAG,IAAI,oCAAgB,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,IAAI,sCAAqB,EAAE,CAAC;IAErD,IAAI;QACF,MAAM,UAAU,GAAG,gBAAgB,CACjC,gBAAgB,CAAC,OAAO,EACxB,MAAM,CAAC,EAAE;YACP,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,EACD;YACE,mBAAmB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YACzD,uBAAuB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;YACjE,yBAAyB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC;YACrE,yBAAyB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;SAC9D,CACF,CAAC;QAEF,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAEzE,OAAO,qBAAqB,CAC1B,MAAM,IAAI,OAAO,CACf,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAClB,UAAU,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;YACvD,IAAI,GAAG,EAAE;gBACP,MAAM,CAAC,GAAG,CAAC,CAAC;aACb;iBAAM;gBACL,OAAO,CAAC,QAAS,CAAC,CAAC;aACpB;QACH,CAAC,CAAC,CACL,CACF,CAAC;KACH;YAAS;QACR,gBAAgB,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,gBAAgB,CAAC,KAAK,CAAC;KAC9B;AACH,CAAC;AAED,+EAA+E;AAC/E,wEAAwE;AACxE,iEAAiE;AACjE,SAAS,kBAAkB,CACzB,OAA4C,EAC5C,SAAmC,EACnC,OAAyB;IAEzB,MAAM,SAAS,GAAG,IAAI,oCAAgB,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,IAAI,oCAAoB,EAAE,CAAC;IAEpD,IAAI;QACF,MAAM,UAAU,GAAG,gBAAgB,CACjC,gBAAgB,CAAC,OAAO,EACxB,MAAM,CAAC,EAAE;YACP,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,EACD;YACE,mBAAmB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YACzD,uBAAuB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;YACjE,yBAAyB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC;YACrE,yBAAyB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;SAC9D,CACF,CAAC;QAEF,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAEzE,IAAI,KAAc,CAAC;QACnB,IAAI,QAA2D,CAAC;QAChE,UAAU,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;YAC3D,IAAI,MAAM,EAAE;gBACV,KAAK,GAAG,MAAM,CAAC;aAChB;iBAAM;gBACL,QAAQ,GAAG,SAAS,CAAC;aACtB;QACH,CAAC,CAAC,CAAC;QAEH,SAAS;YACP,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE;gBAC7B,MAAM,KAAK,CAAC,aAAa,CAAC,wCAAwC,CAAC,CAAC;aACrE;YAED,IAAI,KAAK;gBAAE,MAAM,KAAK,CAAC;YACvB,IAAI,QAAQ;gBAAE,OAAO,qBAAqB,CAAC,QAAQ,CAAC,CAAC;SACtD;KACF;YAAS;QACR,gBAAgB,CAAC,KAAK,EAAE,CAAC;QACzB,gBAAgB,CAAC,cAAc,EAAE,CAAC;KACnC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,MAA0B,EAC1B,UAAoC,EACpC,QAAkC;IAElC,MAAM,iBAAiB,GAAG,IAAI,sCAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAEpE,MAAM,kBAAkB,GAAG,IAAI,wCAAkB,CAC/C,iBAAiB,CAAC,kBAAkB,EACpC,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CACzD,CAAC;IAEF,OAAO,IAAI,uBAAU,CACnB,kBAAkB,CAAC,iBAAiB,EACpC,OAAO,CAAC,EAAE,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAC1D,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,kDAAkD;AAClD,SAAS,cAAc,CACrB,OAA8C,EAC9C,KAAqC;;IAErC,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE;QAChD,IAAI,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,KAAK,EAAE;YAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;gBACvC,IAAI,EAAE,IAAA,oCAAmB,EAAC,KAAK,CAAC,OAAO,EAAG,CAAC;aAC5C,CAAC,CAAC;SACJ;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;SACrC;KACF;SAAM;QACL,IAAI,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,IAAI,EAAE;YACzB,MAAM,MAAM,GACV;gBACE,WAAW,EACT,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,YAAY,CAAC,mBAAmB;aAC7D,CAAC;YAEJ,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,SAAS;gBAAE,MAAM,CAAC,IAAI,GAAG,IAAA,oCAAmB,EAAC,SAAS,CAAC,CAAC;YAE5D,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;YACpC,IAAI,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YAEhC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;SACjD;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;SACrC;KACF;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAC5B,QAA+C;IAE/C,IAAI,QAAQ,CAAC,UAAU,EAAE,EAAE;QACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAG,CAAC;QACvC,MAAM,MAAM,GAAkB;YAC5B,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE;YACrB,UAAU,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;SACjE,CAAC;QAEF,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QACzC,IAAI,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC;KACf;SAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,EAAE;QAChC,MAAM,IAAI,qBAAS,CAAC,QAAQ,CAAC,UAAU,EAAG,CAAC,CAAC;KAC7C;SAAM;QACL,MAAM,KAAK,CAAC,aAAa,CAAC,sCAAsC,CAAC,CAAC;KACnE;AACH,CAAC"}
@@ -0,0 +1,186 @@
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.LegacyImporterWrapper = exports.legacyImporterProtocol = exports.endOfLoadProtocol = void 0;
7
+ const assert_1 = require("assert");
8
+ const url_1 = require("url");
9
+ const fs = require("fs");
10
+ const p = require("path");
11
+ const resolve_path_1 = require("./resolve-path");
12
+ const utils_1 = require("../utils");
13
+ /**
14
+ * A special URL protocol we use to signal when a stylesheet has finished
15
+ * loading. This allows us to determine which stylesheet is "current" when
16
+ * resolving a new load, which in turn allows us to pass in an accurate `prev`
17
+ * parameter to the legacy callback.
18
+ */
19
+ exports.endOfLoadProtocol = 'sass-embedded-legacy-load-done:';
20
+ /**
21
+ * The URL protocol to use for URLs canonicalized using `LegacyImporterWrapper`.
22
+ */
23
+ exports.legacyImporterProtocol = 'legacy-importer:';
24
+ // A count of `endOfLoadProtocol` imports that have been generated. Each one
25
+ // must be a different URL to ensure that the importer results aren't cached.
26
+ let endOfLoadCount = 0;
27
+ /**
28
+ * A wrapper around a `LegacyImporter` callback that exposes it as a new-API
29
+ * `Importer`.
30
+ */
31
+ class LegacyImporterWrapper {
32
+ // TODO: Support prev from a load path
33
+ constructor(self, callbacks, loadPaths, initialPrev, sync) {
34
+ this.self = self;
35
+ this.callbacks = callbacks;
36
+ this.loadPaths = loadPaths;
37
+ this.sync = sync;
38
+ // A stack of previous URLs passed to `this.callbacks`.
39
+ this.prev = [];
40
+ // Whether we're expecting the next call to `canonicalize()` to be a relative
41
+ // load. The legacy importer API doesn't handle these loads in the same way as
42
+ // the modern API, so we always return `null` in this case.
43
+ this.expectingRelativeLoad = true;
44
+ const path = initialPrev !== 'stdin';
45
+ this.prev.push({ url: path ? p.resolve(initialPrev) : 'stdin', path });
46
+ }
47
+ canonicalize(url, options) {
48
+ if (url.startsWith(exports.endOfLoadProtocol))
49
+ return new URL(url);
50
+ // Since there's only ever one modern importer in legacy mode, we can be
51
+ // sure that all normal loads are preceded by exactly one relative load.
52
+ if (this.expectingRelativeLoad) {
53
+ if (url.startsWith('file:')) {
54
+ const resolved = (0, resolve_path_1.resolvePath)((0, utils_1.fileUrlToPathCrossPlatform)(url), options.fromImport);
55
+ if (resolved !== null)
56
+ return (0, url_1.pathToFileURL)(resolved);
57
+ }
58
+ this.expectingRelativeLoad = false;
59
+ return null;
60
+ }
61
+ else {
62
+ this.expectingRelativeLoad = true;
63
+ }
64
+ const prev = this.prev[this.prev.length - 1];
65
+ return (0, utils_1.thenOr)((0, utils_1.thenOr)(this.invokeCallbacks(url, prev.url, options), result => {
66
+ var _a;
67
+ if (result instanceof Error)
68
+ throw result;
69
+ if (result === null)
70
+ return null;
71
+ if ('contents' in result || !('file' in result)) {
72
+ this.lastContents = (_a = result.contents) !== null && _a !== void 0 ? _a : '';
73
+ if ('file' in result) {
74
+ return new URL(exports.legacyImporterProtocol +
75
+ encodeURI(result.file));
76
+ }
77
+ else if (/^[A-Za-z+.-]+:/.test(url)) {
78
+ return new URL(url);
79
+ }
80
+ else {
81
+ return new URL(exports.legacyImporterProtocol + encodeURI(url));
82
+ }
83
+ }
84
+ else {
85
+ if (p.isAbsolute(result.file)) {
86
+ const resolved = (0, resolve_path_1.resolvePath)(result.file, options.fromImport);
87
+ return resolved ? (0, url_1.pathToFileURL)(resolved) : null;
88
+ }
89
+ const prefixes = [...this.loadPaths, '.'];
90
+ if (prev.path)
91
+ prefixes.unshift(p.dirname(prev.url));
92
+ for (const prefix of prefixes) {
93
+ const resolved = (0, resolve_path_1.resolvePath)(p.join(prefix, result.file), options.fromImport);
94
+ if (resolved !== null)
95
+ return (0, url_1.pathToFileURL)(resolved);
96
+ }
97
+ return null;
98
+ }
99
+ }), result => {
100
+ if (result !== null) {
101
+ const path = result.protocol === 'file:';
102
+ this.prev.push({
103
+ url: path ? (0, utils_1.fileUrlToPathCrossPlatform)(result) : url,
104
+ path,
105
+ });
106
+ return result;
107
+ }
108
+ else {
109
+ for (const loadPath of this.loadPaths) {
110
+ const resolved = (0, resolve_path_1.resolvePath)(p.join(loadPath, url), options.fromImport);
111
+ if (resolved !== null)
112
+ return (0, url_1.pathToFileURL)(resolved);
113
+ }
114
+ return null;
115
+ }
116
+ });
117
+ }
118
+ load(canonicalUrl) {
119
+ var _a;
120
+ if (canonicalUrl.protocol === exports.endOfLoadProtocol) {
121
+ this.prev.pop();
122
+ return { contents: '', syntax: 'scss' };
123
+ }
124
+ if (canonicalUrl.protocol === 'file:') {
125
+ const syntax = canonicalUrl.pathname.endsWith('.sass')
126
+ ? 'indented'
127
+ : canonicalUrl.pathname.endsWith('.css')
128
+ ? 'css'
129
+ : 'scss';
130
+ let contents = (_a = this.lastContents) !== null && _a !== void 0 ? _a : fs.readFileSync((0, utils_1.fileUrlToPathCrossPlatform)(canonicalUrl), 'utf-8');
131
+ this.lastContents = undefined;
132
+ if (syntax === 'scss') {
133
+ contents += this.endOfLoadImport;
134
+ }
135
+ else if (syntax === 'indented') {
136
+ contents += `\n@import "${exports.endOfLoadProtocol}${endOfLoadCount++}"`;
137
+ }
138
+ else {
139
+ this.prev.pop();
140
+ }
141
+ return { contents, syntax };
142
+ }
143
+ const lastContents = this.lastContents;
144
+ assert_1.strict.notEqual(lastContents, undefined);
145
+ this.lastContents = undefined;
146
+ return {
147
+ contents: lastContents + this.endOfLoadImport,
148
+ syntax: 'scss',
149
+ };
150
+ }
151
+ // Invokes each callback in `this.callbacks` until one returns a non-null
152
+ // `LegacyImporterResult`, then returns that result. Returns `null` if all
153
+ // callbacks return `null`.
154
+ invokeCallbacks(url, prev, { fromImport }) {
155
+ const self = { ...this.self, fromImport };
156
+ self.options = { ...self.options, context: self };
157
+ const invokeNthCallback = (n) => (0, utils_1.thenOr)(this.invokeCallback(this.callbacks[n], self, url, prev), result => {
158
+ if (result !== null)
159
+ return result;
160
+ if (n === this.callbacks.length - 1)
161
+ return null;
162
+ return invokeNthCallback(n + 1);
163
+ });
164
+ return invokeNthCallback(0);
165
+ }
166
+ // Invokes `callback` and converts its return value into a `PromiseOr`.
167
+ invokeCallback(callback, self, url, prev) {
168
+ if (this.sync) {
169
+ return callback.call(self, url, prev);
170
+ }
171
+ return new Promise(resolve => {
172
+ // The cast here is necesary to work around microsoft/TypeScript#33815.
173
+ const syncResult = callback.call(self, url, prev, resolve);
174
+ if (syncResult !== undefined)
175
+ resolve(syncResult);
176
+ });
177
+ }
178
+ // The `@import` statement to inject after the contents of files to ensure
179
+ // that we know when a load has completed so we can pass the correct `prev`
180
+ // argument to callbacks.
181
+ get endOfLoadImport() {
182
+ return `\n;@import "${exports.endOfLoadProtocol}${endOfLoadCount++}";`;
183
+ }
184
+ }
185
+ exports.LegacyImporterWrapper = LegacyImporterWrapper;
186
+ //# sourceMappingURL=importer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importer.js","sourceRoot":"","sources":["../../../../lib/src/legacy/importer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+ // Copyright 2021 Google Inc. 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.renderSync = exports.render = void 0;
7
+ const fs = require("fs");
8
+ const p = require("path");
9
+ const url_1 = require("url");
10
+ const exception_1 = require("../exception");
11
+ const compile_1 = require("../compile");
12
+ const utils_1 = require("../utils");
13
+ const wrap_1 = require("./value/wrap");
14
+ const importer_1 = require("./importer");
15
+ function render(options, callback) {
16
+ try {
17
+ options = adjustOptions(options);
18
+ const start = Date.now();
19
+ const compileSass = isStringOptions(options)
20
+ ? (0, compile_1.compileStringAsync)(options.data, convertStringOptions(options, false))
21
+ : (0, compile_1.compileAsync)(options.file, convertOptions(options, false));
22
+ compileSass.then(result => callback(undefined, newLegacyResult(options, start, result)), error => callback(newLegacyException(error)));
23
+ }
24
+ catch (error) {
25
+ if (error instanceof Error)
26
+ callback(newLegacyException(error));
27
+ throw error;
28
+ }
29
+ }
30
+ exports.render = render;
31
+ function renderSync(options) {
32
+ const start = Date.now();
33
+ try {
34
+ options = adjustOptions(options);
35
+ const result = isStringOptions(options)
36
+ ? (0, compile_1.compileString)(options.data, convertStringOptions(options, true))
37
+ : (0, compile_1.compile)(options.file, convertOptions(options, true));
38
+ return newLegacyResult(options, start, result);
39
+ }
40
+ catch (error) {
41
+ throw newLegacyException(error);
42
+ }
43
+ }
44
+ exports.renderSync = renderSync;
45
+ // Does some initial adjustments of `options` to make it easier to convert pass
46
+ // to the new API.
47
+ function adjustOptions(options) {
48
+ if (!('file' in options && options.file) && !('data' in options)) {
49
+ throw new Error('Either options.data or options.file must be set.');
50
+ }
51
+ if (!isStringOptions(options) &&
52
+ // The `indentedSyntax` option takes precedence over the file extension in the
53
+ // legacy API, but the new API doesn't have a `syntax` option for a file path.
54
+ // Instead, we eagerly load the entrypoint into memory and treat it like a
55
+ // string source.
56
+ (options.indentedSyntax !==
57
+ undefined ||
58
+ options.importer)) {
59
+ return {
60
+ ...options,
61
+ data: fs.readFileSync(options.file, 'utf8'),
62
+ indentedSyntax: !!options
63
+ .indentedSyntax,
64
+ };
65
+ }
66
+ else {
67
+ return options;
68
+ }
69
+ }
70
+ // Returns whether `options` is a `LegacyStringOptions`.
71
+ function isStringOptions(options) {
72
+ return 'data' in options;
73
+ }
74
+ // Converts `LegacyOptions` into new API `Options`.
75
+ function convertOptions(options, sync) {
76
+ var _a, _b, _c;
77
+ if ('outputStyle' in options &&
78
+ options.outputStyle !== 'compressed' &&
79
+ options.outputStyle !== 'expanded') {
80
+ throw new Error(`Unknown output style: "${options.outputStyle}"`);
81
+ }
82
+ const self = pluginThis(options);
83
+ const functions = {};
84
+ for (let [signature, callback] of Object.entries((_a = options.functions) !== null && _a !== void 0 ? _a : {})) {
85
+ // The legacy API allows signatures without parentheses but the modern API
86
+ // does not.
87
+ if (!signature.includes('('))
88
+ signature += '()';
89
+ functions[signature] = (0, wrap_1.wrapFunction)(self, callback, sync);
90
+ }
91
+ const importers = options.importer
92
+ ? [
93
+ new importer_1.LegacyImporterWrapper(self, options.importer instanceof Array
94
+ ? options.importer
95
+ : [options.importer], (_b = options.includePaths) !== null && _b !== void 0 ? _b : [], (_c = options.file) !== null && _c !== void 0 ? _c : 'stdin', sync),
96
+ ]
97
+ : undefined;
98
+ return {
99
+ functions,
100
+ importers,
101
+ sourceMap: wasSourceMapRequested(options),
102
+ loadPaths: importers ? undefined : options.includePaths,
103
+ style: options.outputStyle,
104
+ quietDeps: options.quietDeps,
105
+ verbose: options.verbose,
106
+ logger: options.logger,
107
+ };
108
+ }
109
+ // Converts `LegacyStringOptions` into new API `StringOptions`.
110
+ function convertStringOptions(options, sync) {
111
+ const modernOptions = convertOptions(options, sync);
112
+ return {
113
+ ...modernOptions,
114
+ url: options.file ? (0, url_1.pathToFileURL)(options.file) : undefined,
115
+ importer: modernOptions.importers ? modernOptions.importers[0] : undefined,
116
+ syntax: options.indentedSyntax ? 'indented' : 'scss',
117
+ };
118
+ }
119
+ // Determines whether a sourceMap was requested by the call to `render()`.
120
+ function wasSourceMapRequested(options) {
121
+ return (typeof options.sourceMap === 'string' ||
122
+ (options.sourceMap === true && !!options.outFile));
123
+ }
124
+ // Creates the `this` value that's used for callbacks.
125
+ function pluginThis(options) {
126
+ var _a, _b;
127
+ const pluginThis = {
128
+ options: {
129
+ context: undefined,
130
+ file: options.file,
131
+ data: options.data,
132
+ includePaths: [process.cwd(), ...((_a = options.includePaths) !== null && _a !== void 0 ? _a : [])].join(p.delimiter),
133
+ precision: 10,
134
+ style: 1,
135
+ indentType: 0,
136
+ indentWidth: 2,
137
+ linefeed: '\n',
138
+ result: {
139
+ stats: {
140
+ start: Date.now(),
141
+ entry: (_b = options.file) !== null && _b !== void 0 ? _b : 'data',
142
+ },
143
+ },
144
+ },
145
+ };
146
+ pluginThis.options.context = pluginThis;
147
+ return pluginThis;
148
+ }
149
+ // Transforms the compilation result into an object that mimics the Node Sass
150
+ // API format.
151
+ function newLegacyResult(options, start, result) {
152
+ var _a, _b;
153
+ const end = Date.now();
154
+ let css = result.css;
155
+ let sourceMapBytes;
156
+ if (result.sourceMap) {
157
+ const sourceMap = result.sourceMap;
158
+ sourceMap.sourceRoot = (_a = options.sourceMapRoot) !== null && _a !== void 0 ? _a : '';
159
+ const sourceMapPath = typeof options.sourceMap === 'string'
160
+ ? options.sourceMap
161
+ : options.outFile + '.map';
162
+ const sourceMapDir = p.dirname(sourceMapPath);
163
+ if (options.outFile) {
164
+ sourceMap.file = (0, utils_1.pathToUrlString)(p.relative(sourceMapDir, options.outFile));
165
+ }
166
+ else if (options.file) {
167
+ sourceMap.file = (0, utils_1.pathToUrlString)((0, utils_1.withoutExtension)(options.file) + '.css');
168
+ }
169
+ else {
170
+ sourceMap.file = 'stdin.css';
171
+ }
172
+ sourceMap.sources = sourceMap.sources.map(source => {
173
+ if (source.startsWith('file://')) {
174
+ return (0, utils_1.pathToUrlString)(p.relative(sourceMapDir, (0, utils_1.fileUrlToPathCrossPlatform)(source)));
175
+ }
176
+ else if (source.startsWith('data:')) {
177
+ return 'stdin';
178
+ }
179
+ else {
180
+ return source;
181
+ }
182
+ });
183
+ sourceMapBytes = Buffer.from(JSON.stringify(sourceMap));
184
+ if (!options.omitSourceMapUrl) {
185
+ let url;
186
+ if (options.sourceMapEmbed) {
187
+ url = `data:application/json;base64,${sourceMapBytes.toString('base64')}`;
188
+ }
189
+ else if (options.outFile) {
190
+ url = (0, utils_1.pathToUrlString)(p.relative(p.dirname(options.outFile), sourceMapPath));
191
+ }
192
+ else {
193
+ url = (0, utils_1.pathToUrlString)(sourceMapPath);
194
+ }
195
+ css += `\n\n/*# sourceMappingURL=${url} */`;
196
+ }
197
+ }
198
+ return {
199
+ css: Buffer.from(css),
200
+ map: sourceMapBytes,
201
+ stats: {
202
+ entry: (_b = options.file) !== null && _b !== void 0 ? _b : 'data',
203
+ start,
204
+ end,
205
+ duration: end - start,
206
+ includedFiles: result.loadedUrls
207
+ .filter(url => url.protocol !== importer_1.endOfLoadProtocol)
208
+ .map(url => {
209
+ if (url.protocol === 'file:') {
210
+ return (0, utils_1.fileUrlToPathCrossPlatform)(url);
211
+ }
212
+ else if (url.protocol === importer_1.legacyImporterProtocol) {
213
+ return decodeURI(url.pathname);
214
+ }
215
+ else {
216
+ return url.toString();
217
+ }
218
+ }),
219
+ },
220
+ };
221
+ }
222
+ // Decorates an Error with additional fields so that it behaves like a Node Sass
223
+ // error.
224
+ function newLegacyException(error) {
225
+ var _a, _b, _c;
226
+ if (!(error instanceof exception_1.Exception)) {
227
+ return Object.assign(error, {
228
+ formatted: error.toString(),
229
+ status: 3,
230
+ });
231
+ }
232
+ let file;
233
+ if (!((_a = error.span) === null || _a === void 0 ? void 0 : _a.url)) {
234
+ file = 'stdin';
235
+ }
236
+ else if (error.span.url.protocol === 'file:') {
237
+ // We have to cast to Node's URL type here because the specified type is the
238
+ // standard URL type which is slightly less featureful. `fileURLToPath()`
239
+ // does work with standard URL objects in practice, but we know that we
240
+ // generate Node URLs here regardless.
241
+ file = (0, utils_1.fileUrlToPathCrossPlatform)(error.span.url);
242
+ }
243
+ else {
244
+ file = error.span.url.toString();
245
+ }
246
+ return Object.assign(new Error(), {
247
+ status: 1,
248
+ message: error.toString().replace(/^Error: /, ''),
249
+ formatted: error.toString(),
250
+ toString: () => error.toString(),
251
+ stack: error.stack,
252
+ line: (0, utils_1.isNullOrUndefined)((_b = error.span) === null || _b === void 0 ? void 0 : _b.start.line)
253
+ ? undefined
254
+ : error.span.start.line + 1,
255
+ column: (0, utils_1.isNullOrUndefined)((_c = error.span) === null || _c === void 0 ? void 0 : _c.start.column)
256
+ ? undefined
257
+ : error.span.start.column + 1,
258
+ file,
259
+ });
260
+ }
261
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/src/legacy/index.ts"],"names":[],"mappings":"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"}