sass-embedded-go 1.104.0-alpha0

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 (161) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +37 -0
  3. package/lib/index.js +100 -0
  4. package/lib/index.js.map +1 -0
  5. package/lib/index.mjs +215 -0
  6. package/lib/src/canonicalize-context.js +31 -0
  7. package/lib/src/canonicalize-context.js.map +1 -0
  8. package/lib/src/compile.js +51 -0
  9. package/lib/src/compile.js.map +1 -0
  10. package/lib/src/compiler/async.js +187 -0
  11. package/lib/src/compiler/async.js.map +1 -0
  12. package/lib/src/compiler/sync.js +204 -0
  13. package/lib/src/compiler/sync.js.map +1 -0
  14. package/lib/src/compiler/utils.js +210 -0
  15. package/lib/src/compiler/utils.js.map +1 -0
  16. package/lib/src/compiler-module.js +64 -0
  17. package/lib/src/compiler-module.js.map +1 -0
  18. package/lib/src/compiler-path.js +82 -0
  19. package/lib/src/compiler-path.js.map +1 -0
  20. package/lib/src/deprecations.js +121 -0
  21. package/lib/src/deprecations.js.map +1 -0
  22. package/lib/src/deprotofy-span.js +41 -0
  23. package/lib/src/deprotofy-span.js.map +1 -0
  24. package/lib/src/dispatcher.js +241 -0
  25. package/lib/src/dispatcher.js.map +1 -0
  26. package/lib/src/elf.js +114 -0
  27. package/lib/src/elf.js.map +1 -0
  28. package/lib/src/exception.js +23 -0
  29. package/lib/src/exception.js.map +1 -0
  30. package/lib/src/function-registry.js +127 -0
  31. package/lib/src/function-registry.js.map +1 -0
  32. package/lib/src/importer-registry.js +201 -0
  33. package/lib/src/importer-registry.js.map +1 -0
  34. package/lib/src/legacy/importer.js +296 -0
  35. package/lib/src/legacy/importer.js.map +1 -0
  36. package/lib/src/legacy/index.js +329 -0
  37. package/lib/src/legacy/index.js.map +1 -0
  38. package/lib/src/legacy/resolve-path.js +133 -0
  39. package/lib/src/legacy/resolve-path.js.map +1 -0
  40. package/lib/src/legacy/utils.js +58 -0
  41. package/lib/src/legacy/utils.js.map +1 -0
  42. package/lib/src/legacy/value/base.js +18 -0
  43. package/lib/src/legacy/value/base.js.map +1 -0
  44. package/lib/src/legacy/value/color.js +65 -0
  45. package/lib/src/legacy/value/color.js.map +1 -0
  46. package/lib/src/legacy/value/index.js +23 -0
  47. package/lib/src/legacy/value/index.js.map +1 -0
  48. package/lib/src/legacy/value/list.js +50 -0
  49. package/lib/src/legacy/value/list.js.map +1 -0
  50. package/lib/src/legacy/value/map.js +74 -0
  51. package/lib/src/legacy/value/map.js.map +1 -0
  52. package/lib/src/legacy/value/number.js +60 -0
  53. package/lib/src/legacy/value/number.js.map +1 -0
  54. package/lib/src/legacy/value/string.js +27 -0
  55. package/lib/src/legacy/value/string.js.map +1 -0
  56. package/lib/src/legacy/value/wrap.js +115 -0
  57. package/lib/src/legacy/value/wrap.js.map +1 -0
  58. package/lib/src/logger.js +10 -0
  59. package/lib/src/logger.js.map +1 -0
  60. package/lib/src/message-transformer.js +108 -0
  61. package/lib/src/message-transformer.js.map +1 -0
  62. package/lib/src/messages.js +6 -0
  63. package/lib/src/messages.js.map +1 -0
  64. package/lib/src/packet-transformer.js +171 -0
  65. package/lib/src/packet-transformer.js.map +1 -0
  66. package/lib/src/protofier.js +492 -0
  67. package/lib/src/protofier.js.map +1 -0
  68. package/lib/src/request-tracker.js +52 -0
  69. package/lib/src/request-tracker.js.map +1 -0
  70. package/lib/src/utils.js +177 -0
  71. package/lib/src/utils.js.map +1 -0
  72. package/lib/src/value/argument-list.js +66 -0
  73. package/lib/src/value/argument-list.js.map +1 -0
  74. package/lib/src/value/boolean.js +69 -0
  75. package/lib/src/value/boolean.js.map +1 -0
  76. package/lib/src/value/calculations.js +114 -0
  77. package/lib/src/value/calculations.js.map +1 -0
  78. package/lib/src/value/color.js +869 -0
  79. package/lib/src/value/color.js.map +1 -0
  80. package/lib/src/value/function.js +74 -0
  81. package/lib/src/value/function.js.map +1 -0
  82. package/lib/src/value/index.js +166 -0
  83. package/lib/src/value/index.js.map +1 -0
  84. package/lib/src/value/list.js +101 -0
  85. package/lib/src/value/list.js.map +1 -0
  86. package/lib/src/value/map.js +92 -0
  87. package/lib/src/value/map.js.map +1 -0
  88. package/lib/src/value/mixin.js +50 -0
  89. package/lib/src/value/mixin.js.map +1 -0
  90. package/lib/src/value/null.js +49 -0
  91. package/lib/src/value/null.js.map +1 -0
  92. package/lib/src/value/number.js +583 -0
  93. package/lib/src/value/number.js.map +1 -0
  94. package/lib/src/value/string.js +118 -0
  95. package/lib/src/value/string.js.map +1 -0
  96. package/lib/src/value/utils.js +124 -0
  97. package/lib/src/value/utils.js.map +1 -0
  98. package/lib/src/vendor/deprecations.js +216 -0
  99. package/lib/src/vendor/deprecations.js.map +1 -0
  100. package/lib/src/vendor/embedded_sass_pb.js +432 -0
  101. package/lib/src/vendor/embedded_sass_pb.js.map +1 -0
  102. package/lib/src/vendor/sass/README.md +162 -0
  103. package/lib/src/vendor/sass/compile.d.ts +342 -0
  104. package/lib/src/vendor/sass/deprecations.d.ts +312 -0
  105. package/lib/src/vendor/sass/exception.d.ts +41 -0
  106. package/lib/src/vendor/sass/importer.d.ts +471 -0
  107. package/lib/src/vendor/sass/index.d.ts +122 -0
  108. package/lib/src/vendor/sass/index.m.d.ts +122 -0
  109. package/lib/src/vendor/sass/legacy/exception.d.ts +55 -0
  110. package/lib/src/vendor/sass/legacy/function.d.ts +757 -0
  111. package/lib/src/vendor/sass/legacy/importer.d.ts +169 -0
  112. package/lib/src/vendor/sass/legacy/options.d.ts +700 -0
  113. package/lib/src/vendor/sass/legacy/plugin_this.d.ts +74 -0
  114. package/lib/src/vendor/sass/legacy/render.d.ts +144 -0
  115. package/lib/src/vendor/sass/logger/index.d.ts +115 -0
  116. package/lib/src/vendor/sass/logger/source_location.d.ts +21 -0
  117. package/lib/src/vendor/sass/logger/source_span.d.ts +34 -0
  118. package/lib/src/vendor/sass/options.d.ts +468 -0
  119. package/lib/src/vendor/sass/util/promise_or.d.ts +17 -0
  120. package/lib/src/vendor/sass/value/argument_list.d.ts +47 -0
  121. package/lib/src/vendor/sass/value/boolean.d.ts +29 -0
  122. package/lib/src/vendor/sass/value/calculation.d.ts +137 -0
  123. package/lib/src/vendor/sass/value/color.d.ts +567 -0
  124. package/lib/src/vendor/sass/value/function.d.ts +22 -0
  125. package/lib/src/vendor/sass/value/index.d.ts +219 -0
  126. package/lib/src/vendor/sass/value/list.d.ts +54 -0
  127. package/lib/src/vendor/sass/value/map.d.ts +41 -0
  128. package/lib/src/vendor/sass/value/mixin.d.ts +14 -0
  129. package/lib/src/vendor/sass/value/number.d.ts +305 -0
  130. package/lib/src/vendor/sass/value/string.d.ts +84 -0
  131. package/lib/src/version.js +28 -0
  132. package/lib/src/version.js.map +1 -0
  133. package/package.json +36 -0
  134. package/types/compile.d.ts +342 -0
  135. package/types/deprecations.d.ts +312 -0
  136. package/types/exception.d.ts +41 -0
  137. package/types/importer.d.ts +471 -0
  138. package/types/index.d.ts +122 -0
  139. package/types/index.m.d.ts +122 -0
  140. package/types/legacy/exception.d.ts +55 -0
  141. package/types/legacy/function.d.ts +757 -0
  142. package/types/legacy/importer.d.ts +169 -0
  143. package/types/legacy/options.d.ts +700 -0
  144. package/types/legacy/plugin_this.d.ts +74 -0
  145. package/types/legacy/render.d.ts +144 -0
  146. package/types/logger/index.d.ts +115 -0
  147. package/types/logger/source_location.d.ts +21 -0
  148. package/types/logger/source_span.d.ts +34 -0
  149. package/types/options.d.ts +468 -0
  150. package/types/util/promise_or.d.ts +17 -0
  151. package/types/value/argument_list.d.ts +47 -0
  152. package/types/value/boolean.d.ts +29 -0
  153. package/types/value/calculation.d.ts +137 -0
  154. package/types/value/color.d.ts +567 -0
  155. package/types/value/function.d.ts +22 -0
  156. package/types/value/index.d.ts +219 -0
  157. package/types/value/list.d.ts +54 -0
  158. package/types/value/map.d.ts +41 -0
  159. package/types/value/mixin.d.ts +14 -0
  160. package/types/value/number.d.ts +305 -0
  161. package/types/value/string.d.ts +84 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Luka Zakrajšek <luka@bancek.net>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,37 @@
1
+ # sass-embedded-go
2
+
3
+ The [`sass-embedded`](https://www.npmjs.com/package/sass-embedded) host API
4
+ backed by the [go-sass](https://github.com/bancek/go-sass) embedded compiler —
5
+ a drop-in replacement that compiles with Go instead of Dart.
6
+
7
+ ## Install
8
+
9
+ ```sh
10
+ npm install sass-embedded-go
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ ```js
16
+ import { compileString } from "sass-embedded-go";
17
+
18
+ compileString("a {b: 1px + 2px}").css;
19
+ ```
20
+
21
+ The API is identical to `sass-embedded` (same exports and types), only the
22
+ compiler binary differs. Both packages can be imported in one process without
23
+ interference.
24
+
25
+ ## Versioning
26
+
27
+ Version tracks [dart-sass](https://github.com/sass/dart-sass) (`1.104.0`,
28
+ protocol `3.2.0`).
29
+
30
+ ## Links
31
+
32
+ - [Repository](https://github.com/bancek/go-sass) (compiler source).
33
+ - [Architecture and build docs](https://github.com/bancek/go-sass/blob/main/docs/ref/sass-embedded-go.md).
34
+
35
+ ## License
36
+
37
+ MIT. Host code is © Google LLC (MIT).
package/lib/index.js ADDED
@@ -0,0 +1,100 @@
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
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.NULL = exports.FALSE = exports.TRUE = exports.Logger = exports.info = exports.renderSync = exports.render = exports.Version = exports.deprecations = exports.Compiler = exports.initCompiler = exports.AsyncCompiler = exports.initAsyncCompiler = exports.NodePackageImporter = exports.compileStringAsync = exports.compileAsync = exports.compileString = exports.compile = exports.Exception = exports.types = exports.SassCalculation = exports.CalculationInterpolation = exports.CalculationOperation = exports.sassNull = exports.Value = exports.SassString = exports.SassNumber = exports.SassMixin = exports.SassMap = exports.SassFunction = exports.SassColor = exports.sassTrue = exports.sassFalse = exports.SassBoolean = exports.SassArgumentList = exports.SassList = void 0;
40
+ const pkg = __importStar(require("../package.json"));
41
+ const boolean_1 = require("./src/value/boolean");
42
+ const null_1 = require("./src/value/null");
43
+ var list_1 = require("./src/value/list");
44
+ Object.defineProperty(exports, "SassList", { enumerable: true, get: function () { return list_1.SassList; } });
45
+ var argument_list_1 = require("./src/value/argument-list");
46
+ Object.defineProperty(exports, "SassArgumentList", { enumerable: true, get: function () { return argument_list_1.SassArgumentList; } });
47
+ var boolean_2 = require("./src/value/boolean");
48
+ Object.defineProperty(exports, "SassBoolean", { enumerable: true, get: function () { return boolean_2.SassBoolean; } });
49
+ Object.defineProperty(exports, "sassFalse", { enumerable: true, get: function () { return boolean_2.sassFalse; } });
50
+ Object.defineProperty(exports, "sassTrue", { enumerable: true, get: function () { return boolean_2.sassTrue; } });
51
+ var color_1 = require("./src/value/color");
52
+ Object.defineProperty(exports, "SassColor", { enumerable: true, get: function () { return color_1.SassColor; } });
53
+ var function_1 = require("./src/value/function");
54
+ Object.defineProperty(exports, "SassFunction", { enumerable: true, get: function () { return function_1.SassFunction; } });
55
+ var map_1 = require("./src/value/map");
56
+ Object.defineProperty(exports, "SassMap", { enumerable: true, get: function () { return map_1.SassMap; } });
57
+ var mixin_1 = require("./src/value/mixin");
58
+ Object.defineProperty(exports, "SassMixin", { enumerable: true, get: function () { return mixin_1.SassMixin; } });
59
+ var number_1 = require("./src/value/number");
60
+ Object.defineProperty(exports, "SassNumber", { enumerable: true, get: function () { return number_1.SassNumber; } });
61
+ var string_1 = require("./src/value/string");
62
+ Object.defineProperty(exports, "SassString", { enumerable: true, get: function () { return string_1.SassString; } });
63
+ var value_1 = require("./src/value");
64
+ Object.defineProperty(exports, "Value", { enumerable: true, get: function () { return value_1.Value; } });
65
+ var null_2 = require("./src/value/null");
66
+ Object.defineProperty(exports, "sassNull", { enumerable: true, get: function () { return null_2.sassNull; } });
67
+ var calculations_1 = require("./src/value/calculations");
68
+ Object.defineProperty(exports, "CalculationOperation", { enumerable: true, get: function () { return calculations_1.CalculationOperation; } });
69
+ Object.defineProperty(exports, "CalculationInterpolation", { enumerable: true, get: function () { return calculations_1.CalculationInterpolation; } });
70
+ Object.defineProperty(exports, "SassCalculation", { enumerable: true, get: function () { return calculations_1.SassCalculation; } });
71
+ exports.types = __importStar(require("./src/legacy/value"));
72
+ var exception_1 = require("./src/exception");
73
+ Object.defineProperty(exports, "Exception", { enumerable: true, get: function () { return exception_1.Exception; } });
74
+ var compile_1 = require("./src/compile");
75
+ Object.defineProperty(exports, "compile", { enumerable: true, get: function () { return compile_1.compile; } });
76
+ Object.defineProperty(exports, "compileString", { enumerable: true, get: function () { return compile_1.compileString; } });
77
+ Object.defineProperty(exports, "compileAsync", { enumerable: true, get: function () { return compile_1.compileAsync; } });
78
+ Object.defineProperty(exports, "compileStringAsync", { enumerable: true, get: function () { return compile_1.compileStringAsync; } });
79
+ Object.defineProperty(exports, "NodePackageImporter", { enumerable: true, get: function () { return compile_1.NodePackageImporter; } });
80
+ var async_1 = require("./src/compiler/async");
81
+ Object.defineProperty(exports, "initAsyncCompiler", { enumerable: true, get: function () { return async_1.initAsyncCompiler; } });
82
+ Object.defineProperty(exports, "AsyncCompiler", { enumerable: true, get: function () { return async_1.AsyncCompiler; } });
83
+ var sync_1 = require("./src/compiler/sync");
84
+ Object.defineProperty(exports, "initCompiler", { enumerable: true, get: function () { return sync_1.initCompiler; } });
85
+ Object.defineProperty(exports, "Compiler", { enumerable: true, get: function () { return sync_1.Compiler; } });
86
+ var deprecations_1 = require("./src/deprecations");
87
+ Object.defineProperty(exports, "deprecations", { enumerable: true, get: function () { return deprecations_1.deprecations; } });
88
+ var version_1 = require("./src/version");
89
+ Object.defineProperty(exports, "Version", { enumerable: true, get: function () { return version_1.Version; } });
90
+ var legacy_1 = require("./src/legacy");
91
+ Object.defineProperty(exports, "render", { enumerable: true, get: function () { return legacy_1.render; } });
92
+ Object.defineProperty(exports, "renderSync", { enumerable: true, get: function () { return legacy_1.renderSync; } });
93
+ exports.info = `sass-embedded\t${pkg.version}`;
94
+ var logger_1 = require("./src/logger");
95
+ Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return logger_1.Logger; } });
96
+ // Legacy JS API
97
+ exports.TRUE = boolean_1.sassTrue;
98
+ exports.FALSE = boolean_1.sassFalse;
99
+ exports.NULL = null_1.sassNull;
100
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEvC,MAAY,GAAG,4CAAwB;AACvC,iDAAwD;AACxD,2CAA0C;AAE1C,yCAAyD;AAAlC,gGAAA,QAAQ,OAAA;AAC/B,2DAA2D;AAAnD,iHAAA,gBAAgB,OAAA;AACxB,+CAAqE;AAA7D,sGAAA,WAAW,OAAA;AAAE,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,2CAA4C;AAApC,kGAAA,SAAS,OAAA;AACjB,6CAA8C;AAAtC,oGAAA,UAAU,OAAA;AAClB,6CAA8C;AAAtC,oGAAA,UAAU,OAAA;AAClB,qCAAkC;AAA1B,8FAAA,KAAK,OAAA;AACb,yCAA0C;AAAlC,gGAAA,QAAQ,OAAA;AAChB,yDAKkC;AAJhC,oHAAA,oBAAoB,OAAA;AAEpB,wHAAA,wBAAwB,OAAA;AACxB,+GAAA,eAAe,OAAA;AAGjB,QAAY,KAAK,+CAA2B;AAC5C,6CAA0C;AAAlC,sGAAA,SAAS,OAAA;AACjB,yCAMuB;AALrB,kGAAA,OAAO,OAAA;AACP,wGAAA,aAAa,OAAA;AACb,uGAAA,YAAY,OAAA;AACZ,6GAAA,kBAAkB,OAAA;AAClB,8GAAA,mBAAmB,OAAA;AAErB,8CAAsE;AAA9D,0GAAA,iBAAiB,OAAA;AAAE,sGAAA,aAAa,OAAA;AACxC,4CAA2D;AAAnD,oGAAA,YAAY,OAAA;AAAE,gGAAA,QAAQ,OAAA;AAC9B,mDAK4B;AAJ1B,4GAAA,YAAY,OAAA;AAKd,yCAAsC;AAA9B,kGAAA,OAAO,OAAA;AACf,uCAAgD;AAAxC,gGAAA,MAAM,OAAA;AAAE,oGAAA,UAAU,OAAA;AAEb,QAAA,IAAI,GAAG,kBAAkB,GAAG,CAAC,OAAO,EAAE,CAAC;AAEpD,uCAAoC;AAA5B,gGAAA,MAAM,OAAA;AAEd,gBAAgB;AAEH,QAAA,IAAI,GAAG,kBAAQ,CAAC;AAChB,QAAA,KAAK,GAAG,mBAAS,CAAC;AAClB,QAAA,IAAI,GAAG,eAAQ,CAAC"}
package/lib/index.mjs ADDED
@@ -0,0 +1,215 @@
1
+ import * as sass from './index.js';
2
+
3
+ export const compile = sass.compile;
4
+ export const compileAsync = sass.compileAsync;
5
+ export const compileString = sass.compileString;
6
+ export const compileStringAsync = sass.compileStringAsync;
7
+ export const NodePackageImporter = sass.NodePackageImporter;
8
+ export const AsyncCompiler = sass.AsyncCompiler;
9
+ export const Compiler = sass.Compiler;
10
+ export const initAsyncCompiler = sass.initAsyncCompiler;
11
+ export const initCompiler = sass.initCompiler;
12
+ export const deprecations = sass.deprecations;
13
+ export const Version = sass.Version;
14
+ export const Logger = sass.Logger;
15
+ export const CalculationInterpolation = sass.CalculationInterpolation;
16
+ export const CalculationOperation = sass.CalculationOperation;
17
+ export const CalculationOperator = sass.CalculationOperator;
18
+ export const SassArgumentList = sass.SassArgumentList;
19
+ export const SassBoolean = sass.SassBoolean;
20
+ export const SassCalculation = sass.SassCalculation;
21
+ export const SassColor = sass.SassColor;
22
+ export const SassFunction = sass.SassFunction;
23
+ export const SassMixin = sass.SassMixin;
24
+ export const SassList = sass.SassList;
25
+ export const SassMap = sass.SassMap;
26
+ export const SassNumber = sass.SassNumber;
27
+ export const SassString = sass.SassString;
28
+ export const Value = sass.Value;
29
+ export const CustomFunction = sass.CustomFunction;
30
+ export const ListSeparator = sass.ListSeparator;
31
+ export const sassFalse = sass.sassFalse;
32
+ export const sassNull = sass.sassNull;
33
+ export const sassTrue = sass.sassTrue;
34
+ export const Exception = sass.Exception;
35
+ export const PromiseOr = sass.PromiseOr;
36
+ export const info = sass.info;
37
+ export const render = sass.render;
38
+ export const renderSync = sass.renderSync;
39
+ export const TRUE = sass.TRUE;
40
+ export const FALSE = sass.FALSE;
41
+ export const NULL = sass.NULL;
42
+ export const types = sass.types;
43
+
44
+ let printedDefaultExportDeprecation = false;
45
+ function defaultExportDeprecation() {
46
+ if (printedDefaultExportDeprecation) return;
47
+ printedDefaultExportDeprecation = true;
48
+ console.error(
49
+ "`import sass from 'sass'` is deprecated.\n" +
50
+ "Please use `import * as sass from 'sass'` instead.",
51
+ );
52
+ }
53
+
54
+ export default {
55
+ get compile() {
56
+ defaultExportDeprecation();
57
+ return sass.compile;
58
+ },
59
+ get compileAsync() {
60
+ defaultExportDeprecation();
61
+ return sass.compileAsync;
62
+ },
63
+ get compileString() {
64
+ defaultExportDeprecation();
65
+ return sass.compileString;
66
+ },
67
+ get compileStringAsync() {
68
+ defaultExportDeprecation();
69
+ return sass.compileStringAsync;
70
+ },
71
+ get NodePackageImporter() {
72
+ defaultExportDeprecation();
73
+ return sass.NodePackageImporter;
74
+ },
75
+ get initAsyncCompiler() {
76
+ defaultExportDeprecation();
77
+ return sass.initAsyncCompiler;
78
+ },
79
+ get initCompiler() {
80
+ defaultExportDeprecation();
81
+ return sass.initCompiler;
82
+ },
83
+ get AsyncCompiler() {
84
+ defaultExportDeprecation();
85
+ return sass.AsyncCompiler;
86
+ },
87
+ get Compiler() {
88
+ defaultExportDeprecation();
89
+ return sass.Compiler;
90
+ },
91
+ get deprecations() {
92
+ defaultExportDeprecation();
93
+ return sass.deprecations;
94
+ },
95
+ get Version() {
96
+ defaultExportDeprecation();
97
+ return sass.Version;
98
+ },
99
+ get Logger() {
100
+ defaultExportDeprecation();
101
+ return sass.Logger;
102
+ },
103
+ get CalculationOperation() {
104
+ defaultExportDeprecation();
105
+ return sass.CalculationOperation;
106
+ },
107
+ get CalculationOperator() {
108
+ defaultExportDeprecation();
109
+ return sass.CalculationOperator;
110
+ },
111
+ get CalculationInterpolation() {
112
+ defaultExportDeprecation();
113
+ return sass.CalculationInterpolation;
114
+ },
115
+ get SassArgumentList() {
116
+ defaultExportDeprecation();
117
+ return sass.SassArgumentList;
118
+ },
119
+ get SassBoolean() {
120
+ defaultExportDeprecation();
121
+ return sass.SassBoolean;
122
+ },
123
+ get SassCalculation() {
124
+ defaultExportDeprecation();
125
+ return sass.SassCalculation;
126
+ },
127
+ get SassColor() {
128
+ defaultExportDeprecation();
129
+ return sass.SassColor;
130
+ },
131
+ get SassFunction() {
132
+ defaultExportDeprecation();
133
+ return sass.SassFunction;
134
+ },
135
+ get SassMixin() {
136
+ defaultExportDeprecation();
137
+ return sass.SassMixin;
138
+ },
139
+ get SassList() {
140
+ defaultExportDeprecation();
141
+ return sass.SassList;
142
+ },
143
+ get SassMap() {
144
+ defaultExportDeprecation();
145
+ return sass.SassMap;
146
+ },
147
+ get SassNumber() {
148
+ defaultExportDeprecation();
149
+ return sass.SassNumber;
150
+ },
151
+ get SassString() {
152
+ defaultExportDeprecation();
153
+ return sass.SassString;
154
+ },
155
+ get Value() {
156
+ defaultExportDeprecation();
157
+ return sass.Value;
158
+ },
159
+ get CustomFunction() {
160
+ defaultExportDeprecation();
161
+ return sass.CustomFunction;
162
+ },
163
+ get ListSeparator() {
164
+ defaultExportDeprecation();
165
+ return sass.ListSeparator;
166
+ },
167
+ get sassFalse() {
168
+ defaultExportDeprecation();
169
+ return sass.sassFalse;
170
+ },
171
+ get sassNull() {
172
+ defaultExportDeprecation();
173
+ return sass.sassNull;
174
+ },
175
+ get sassTrue() {
176
+ defaultExportDeprecation();
177
+ return sass.sassTrue;
178
+ },
179
+ get Exception() {
180
+ defaultExportDeprecation();
181
+ return sass.Exception;
182
+ },
183
+ get PromiseOr() {
184
+ defaultExportDeprecation();
185
+ return sass.PromiseOr;
186
+ },
187
+ get info() {
188
+ defaultExportDeprecation();
189
+ return sass.info;
190
+ },
191
+ get render() {
192
+ defaultExportDeprecation();
193
+ return sass.render;
194
+ },
195
+ get renderSync() {
196
+ defaultExportDeprecation();
197
+ return sass.renderSync;
198
+ },
199
+ get TRUE() {
200
+ defaultExportDeprecation();
201
+ return sass.TRUE;
202
+ },
203
+ get FALSE() {
204
+ defaultExportDeprecation();
205
+ return sass.FALSE;
206
+ },
207
+ get NULL() {
208
+ defaultExportDeprecation();
209
+ return sass.NULL;
210
+ },
211
+ get types() {
212
+ defaultExportDeprecation();
213
+ return sass.types;
214
+ },
215
+ };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ // Copyright 2024 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.CanonicalizeContext = void 0;
7
+ class CanonicalizeContext {
8
+ fromImport;
9
+ _containingUrl;
10
+ get containingUrl() {
11
+ this._containingUrlAccessed = true;
12
+ return this._containingUrl;
13
+ }
14
+ _containingUrlAccessed = false;
15
+ /**
16
+ * Whether the `containingUrl` getter has been accessed.
17
+ *
18
+ * This is marked as public so that the importer registry can access it, but
19
+ * it's not part of the package's public API and should not be accessed by
20
+ * user code. It may be renamed or removed without warning in the future.
21
+ */
22
+ get containingUrlAccessed() {
23
+ return this._containingUrlAccessed;
24
+ }
25
+ constructor(containingUrl, fromImport) {
26
+ this._containingUrl = containingUrl;
27
+ this.fromImport = fromImport;
28
+ }
29
+ }
30
+ exports.CanonicalizeContext = CanonicalizeContext;
31
+ //# sourceMappingURL=canonicalize-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonicalize-context.js","sourceRoot":"","sources":["../../../lib/src/canonicalize-context.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC;IACW,UAAU,CAAU;IAEZ,cAAc,CAAa;IAE5C,IAAI,aAAa;QACf,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEO,sBAAsB,GAAG,KAAK,CAAC;IAEvC;;;;;;OAMG;IACH,IAAI,qBAAqB;QACvB,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IAED,YAAY,aAAyB,EAAE,UAAmB;QACxD,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ // Copyright 2020 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.NodePackageImporter = void 0;
7
+ exports.compile = compile;
8
+ exports.compileString = compileString;
9
+ exports.compileAsync = compileAsync;
10
+ exports.compileStringAsync = compileStringAsync;
11
+ const async_1 = require("./compiler/async");
12
+ const sync_1 = require("./compiler/sync");
13
+ var importer_registry_1 = require("./importer-registry");
14
+ Object.defineProperty(exports, "NodePackageImporter", { enumerable: true, get: function () { return importer_registry_1.NodePackageImporter; } });
15
+ function compile(path, options) {
16
+ const compiler = (0, sync_1.initCompiler)();
17
+ try {
18
+ return compiler.compile(path, options);
19
+ }
20
+ finally {
21
+ compiler.dispose();
22
+ }
23
+ }
24
+ function compileString(source, options) {
25
+ const compiler = (0, sync_1.initCompiler)();
26
+ try {
27
+ return compiler.compileString(source, options);
28
+ }
29
+ finally {
30
+ compiler.dispose();
31
+ }
32
+ }
33
+ async function compileAsync(path, options) {
34
+ const compiler = await (0, async_1.initAsyncCompiler)();
35
+ try {
36
+ return await compiler.compileAsync(path, options);
37
+ }
38
+ finally {
39
+ await compiler.dispose();
40
+ }
41
+ }
42
+ async function compileStringAsync(source, options) {
43
+ const compiler = await (0, async_1.initAsyncCompiler)();
44
+ try {
45
+ return await compiler.compileStringAsync(source, options);
46
+ }
47
+ finally {
48
+ await compiler.dispose();
49
+ }
50
+ }
51
+ //# sourceMappingURL=compile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../lib/src/compile.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;;;;;AAEvC,4CAAmD;AAEnD,0CAA6C;AAG7C,yDAAwD;AAAhD,wHAAA,mBAAmB,OAAA;AAE3B,iBACE,IAAY,EACZ,OAAmC;IAEnC,MAAM,QAAQ,GAAG,IAAA,mBAAY,GAAE,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;YAAS,CAAC;QACT,QAAQ,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC;AACH,CAAC;AAED,uBACE,MAAc,EACd,OAAyC;IAEzC,MAAM,QAAQ,GAAG,IAAA,mBAAY,GAAE,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;YAAS,CAAC;QACT,QAAQ,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC;AACH,CAAC;AAEM,KAAK,uBACV,IAAY,EACZ,OAAoC;IAEpC,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAiB,GAAE,CAAC;IAC3C,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;YAAS,CAAC;QACT,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC;AAEM,KAAK,6BACV,MAAc,EACd,OAA0C;IAE1C,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAiB,GAAE,CAAC;IAC3C,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;YAAS,CAAC;QACT,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC"}
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ // Copyright 2024 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
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.AsyncCompiler = void 0;
40
+ exports.initAsyncCompiler = initAsyncCompiler;
41
+ const child_process = __importStar(require("child_process"));
42
+ const rxjs_1 = require("rxjs");
43
+ const operators_1 = require("rxjs/operators");
44
+ const path = __importStar(require("path"));
45
+ const utils_1 = require("./utils");
46
+ const compiler_path_1 = require("../compiler-path");
47
+ const deprecations_1 = require("../deprecations");
48
+ const function_registry_1 = require("../function-registry");
49
+ const importer_registry_1 = require("../importer-registry");
50
+ const message_transformer_1 = require("../message-transformer");
51
+ const packet_transformer_1 = require("../packet-transformer");
52
+ const utils = __importStar(require("../utils"));
53
+ /**
54
+ * Flag allowing the constructor passed by `initAsyncCompiler` so we can
55
+ * differentiate and throw an error if the `AsyncCompiler` is constructed via
56
+ * `new AsyncCompiler`.
57
+ */
58
+ const initFlag = Symbol();
59
+ /** An asynchronous wrapper for the embedded Sass compiler */
60
+ class AsyncCompiler {
61
+ /** The underlying process that's being wrapped. */
62
+ process = (() => {
63
+ let command = compiler_path_1.compilerCommand[0];
64
+ let args = [...compiler_path_1.compilerCommand.slice(1), '--embedded'];
65
+ const options = {
66
+ // Use the command's cwd so the compiler survives the removal of the
67
+ // current working directory.
68
+ // https://github.com/sass/embedded-host-node/pull/261#discussion_r1438712923
69
+ cwd: path.dirname(compiler_path_1.compilerCommand[0]),
70
+ windowsHide: true,
71
+ };
72
+ // Node forbids launching .bat and .cmd without a shell due to CVE-2024-27980,
73
+ // and DEP0190 forbids passing an argument list *with* shell: true. To work
74
+ // around this, we have to manually concatenate the arguments.
75
+ if (['.bat', '.cmd'].includes(path.extname(command).toLowerCase())) {
76
+ command = `${command} ${args.join(' ')}`;
77
+ args = [];
78
+ options.shell = true;
79
+ }
80
+ return child_process.spawn(command, args, options);
81
+ })();
82
+ /** The next compilation ID. */
83
+ compilationId = 1;
84
+ /** A list of active compilations. */
85
+ compilations = new Set();
86
+ /** Whether the underlying compiler has already exited. */
87
+ disposed = false;
88
+ /** Reusable message transformer for all compilations. */
89
+ messageTransformer;
90
+ /** The child process's exit event. */
91
+ exit$ = new Promise(resolve => {
92
+ this.process.on('exit', code => resolve(code));
93
+ });
94
+ /** The buffers emitted by the child process's stdout. */
95
+ stdout$ = new rxjs_1.Observable(observer => {
96
+ this.process.stdout.on('data', buffer => observer.next(buffer));
97
+ }).pipe((0, operators_1.takeUntil)(this.exit$));
98
+ /** The buffers emitted by the child process's stderr. */
99
+ stderr$ = new rxjs_1.Observable(observer => {
100
+ this.process.stderr.on('data', buffer => observer.next(buffer));
101
+ }).pipe((0, operators_1.takeUntil)(this.exit$));
102
+ /** Writes `buffer` to the child process's stdin. */
103
+ writeStdin(buffer) {
104
+ this.process.stdin.write(buffer);
105
+ }
106
+ /** Guards against using a disposed compiler. */
107
+ throwIfDisposed() {
108
+ if (this.disposed) {
109
+ throw utils.compilerError('Async compiler has already been disposed');
110
+ }
111
+ }
112
+ /**
113
+ * Sends a compile request to the child process and returns a Promise that
114
+ * resolves with the CompileResult. Rejects the promise if there were any
115
+ * protocol or compilation errors.
116
+ */
117
+ async compileRequestAsync(request, importers, options) {
118
+ const optionsKey = Symbol();
119
+ deprecations_1.activeDeprecationOptions.set(optionsKey, options ?? {});
120
+ try {
121
+ const functions = new function_registry_1.FunctionRegistry(options?.functions);
122
+ const dispatcher = (0, utils_1.createDispatcher)(this.compilationId++, this.messageTransformer, {
123
+ handleImportRequest: request => importers.import(request),
124
+ handleFileImportRequest: request => importers.fileImport(request),
125
+ handleCanonicalizeRequest: request => importers.canonicalize(request),
126
+ handleFunctionCallRequest: request => functions.call(request),
127
+ });
128
+ dispatcher.logEvents$.subscribe(event => (0, utils_1.handleLogEvent)(options, event));
129
+ // Avoid `new Promise()` here because `dispatcher.sendCompilerequest` can
130
+ // run its callback synchronously, so `compilation` needs to be assigned
131
+ // and in `this.compilations` before we call it.
132
+ const { promise: compilation, resolve, reject, } = (0, utils_1.promiseWithResolvers)();
133
+ this.compilations.add(compilation);
134
+ dispatcher.sendCompileRequest(request, (err, response) => {
135
+ this.compilations.delete(compilation);
136
+ // Reset the compilation ID when the compiler goes idle (no active
137
+ // compilations) to avoid overflowing it.
138
+ // https://github.com/sass/embedded-host-node/pull/261#discussion_r1429266794
139
+ if (this.compilations.size === 0)
140
+ this.compilationId = 1;
141
+ if (err) {
142
+ reject(err);
143
+ }
144
+ else {
145
+ resolve(response);
146
+ }
147
+ });
148
+ return (0, utils_1.handleCompileResponse)(await compilation);
149
+ }
150
+ finally {
151
+ deprecations_1.activeDeprecationOptions.delete(optionsKey);
152
+ }
153
+ }
154
+ /** Initialize resources shared across compilations. */
155
+ constructor(flag) {
156
+ if (flag !== initFlag) {
157
+ throw utils.compilerError('AsyncCompiler can not be directly constructed. ' +
158
+ 'Please use `sass.initAsyncCompiler()` instead');
159
+ }
160
+ this.stderr$.subscribe(data => process.stderr.write(data));
161
+ const packetTransformer = new packet_transformer_1.PacketTransformer(this.stdout$, buffer => {
162
+ this.writeStdin(buffer);
163
+ });
164
+ this.messageTransformer = new message_transformer_1.MessageTransformer(packetTransformer.outboundProtobufs$, packet => packetTransformer.writeInboundProtobuf(packet));
165
+ }
166
+ compileAsync(path, options) {
167
+ this.throwIfDisposed();
168
+ const importers = new importer_registry_1.ImporterRegistry(options);
169
+ return this.compileRequestAsync((0, utils_1.newCompilePathRequest)(path, importers, options), importers, options);
170
+ }
171
+ compileStringAsync(source, options) {
172
+ this.throwIfDisposed();
173
+ const importers = new importer_registry_1.ImporterRegistry(options);
174
+ return this.compileRequestAsync((0, utils_1.newCompileStringRequest)(source, importers, options), importers, options);
175
+ }
176
+ async dispose() {
177
+ this.disposed = true;
178
+ await Promise.all(this.compilations);
179
+ this.process.stdin.end();
180
+ await this.exit$;
181
+ }
182
+ }
183
+ exports.AsyncCompiler = AsyncCompiler;
184
+ async function initAsyncCompiler() {
185
+ return new AsyncCompiler(initFlag);
186
+ }
187
+ //# sourceMappingURL=async.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async.js","sourceRoot":"","sources":["../../../../lib/src/compiler/async.ts"],"names":[],"mappings":"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"}