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.
- package/LICENSE +21 -0
- package/README.md +37 -0
- package/lib/index.js +100 -0
- package/lib/index.js.map +1 -0
- package/lib/index.mjs +215 -0
- package/lib/src/canonicalize-context.js +31 -0
- package/lib/src/canonicalize-context.js.map +1 -0
- package/lib/src/compile.js +51 -0
- package/lib/src/compile.js.map +1 -0
- package/lib/src/compiler/async.js +187 -0
- package/lib/src/compiler/async.js.map +1 -0
- package/lib/src/compiler/sync.js +204 -0
- package/lib/src/compiler/sync.js.map +1 -0
- package/lib/src/compiler/utils.js +210 -0
- package/lib/src/compiler/utils.js.map +1 -0
- package/lib/src/compiler-module.js +64 -0
- package/lib/src/compiler-module.js.map +1 -0
- package/lib/src/compiler-path.js +82 -0
- package/lib/src/compiler-path.js.map +1 -0
- package/lib/src/deprecations.js +121 -0
- package/lib/src/deprecations.js.map +1 -0
- package/lib/src/deprotofy-span.js +41 -0
- package/lib/src/deprotofy-span.js.map +1 -0
- package/lib/src/dispatcher.js +241 -0
- package/lib/src/dispatcher.js.map +1 -0
- package/lib/src/elf.js +114 -0
- package/lib/src/elf.js.map +1 -0
- package/lib/src/exception.js +23 -0
- package/lib/src/exception.js.map +1 -0
- package/lib/src/function-registry.js +127 -0
- package/lib/src/function-registry.js.map +1 -0
- package/lib/src/importer-registry.js +201 -0
- package/lib/src/importer-registry.js.map +1 -0
- package/lib/src/legacy/importer.js +296 -0
- package/lib/src/legacy/importer.js.map +1 -0
- package/lib/src/legacy/index.js +329 -0
- package/lib/src/legacy/index.js.map +1 -0
- package/lib/src/legacy/resolve-path.js +133 -0
- package/lib/src/legacy/resolve-path.js.map +1 -0
- package/lib/src/legacy/utils.js +58 -0
- package/lib/src/legacy/utils.js.map +1 -0
- package/lib/src/legacy/value/base.js +18 -0
- package/lib/src/legacy/value/base.js.map +1 -0
- package/lib/src/legacy/value/color.js +65 -0
- package/lib/src/legacy/value/color.js.map +1 -0
- package/lib/src/legacy/value/index.js +23 -0
- package/lib/src/legacy/value/index.js.map +1 -0
- package/lib/src/legacy/value/list.js +50 -0
- package/lib/src/legacy/value/list.js.map +1 -0
- package/lib/src/legacy/value/map.js +74 -0
- package/lib/src/legacy/value/map.js.map +1 -0
- package/lib/src/legacy/value/number.js +60 -0
- package/lib/src/legacy/value/number.js.map +1 -0
- package/lib/src/legacy/value/string.js +27 -0
- package/lib/src/legacy/value/string.js.map +1 -0
- package/lib/src/legacy/value/wrap.js +115 -0
- package/lib/src/legacy/value/wrap.js.map +1 -0
- package/lib/src/logger.js +10 -0
- package/lib/src/logger.js.map +1 -0
- package/lib/src/message-transformer.js +108 -0
- package/lib/src/message-transformer.js.map +1 -0
- package/lib/src/messages.js +6 -0
- package/lib/src/messages.js.map +1 -0
- package/lib/src/packet-transformer.js +171 -0
- package/lib/src/packet-transformer.js.map +1 -0
- package/lib/src/protofier.js +492 -0
- package/lib/src/protofier.js.map +1 -0
- package/lib/src/request-tracker.js +52 -0
- package/lib/src/request-tracker.js.map +1 -0
- package/lib/src/utils.js +177 -0
- package/lib/src/utils.js.map +1 -0
- package/lib/src/value/argument-list.js +66 -0
- package/lib/src/value/argument-list.js.map +1 -0
- package/lib/src/value/boolean.js +69 -0
- package/lib/src/value/boolean.js.map +1 -0
- package/lib/src/value/calculations.js +114 -0
- package/lib/src/value/calculations.js.map +1 -0
- package/lib/src/value/color.js +869 -0
- package/lib/src/value/color.js.map +1 -0
- package/lib/src/value/function.js +74 -0
- package/lib/src/value/function.js.map +1 -0
- package/lib/src/value/index.js +166 -0
- package/lib/src/value/index.js.map +1 -0
- package/lib/src/value/list.js +101 -0
- package/lib/src/value/list.js.map +1 -0
- package/lib/src/value/map.js +92 -0
- package/lib/src/value/map.js.map +1 -0
- package/lib/src/value/mixin.js +50 -0
- package/lib/src/value/mixin.js.map +1 -0
- package/lib/src/value/null.js +49 -0
- package/lib/src/value/null.js.map +1 -0
- package/lib/src/value/number.js +583 -0
- package/lib/src/value/number.js.map +1 -0
- package/lib/src/value/string.js +118 -0
- package/lib/src/value/string.js.map +1 -0
- package/lib/src/value/utils.js +124 -0
- package/lib/src/value/utils.js.map +1 -0
- package/lib/src/vendor/deprecations.js +216 -0
- package/lib/src/vendor/deprecations.js.map +1 -0
- package/lib/src/vendor/embedded_sass_pb.js +432 -0
- package/lib/src/vendor/embedded_sass_pb.js.map +1 -0
- package/lib/src/vendor/sass/README.md +162 -0
- package/lib/src/vendor/sass/compile.d.ts +342 -0
- package/lib/src/vendor/sass/deprecations.d.ts +312 -0
- package/lib/src/vendor/sass/exception.d.ts +41 -0
- package/lib/src/vendor/sass/importer.d.ts +471 -0
- package/lib/src/vendor/sass/index.d.ts +122 -0
- package/lib/src/vendor/sass/index.m.d.ts +122 -0
- package/lib/src/vendor/sass/legacy/exception.d.ts +55 -0
- package/lib/src/vendor/sass/legacy/function.d.ts +757 -0
- package/lib/src/vendor/sass/legacy/importer.d.ts +169 -0
- package/lib/src/vendor/sass/legacy/options.d.ts +700 -0
- package/lib/src/vendor/sass/legacy/plugin_this.d.ts +74 -0
- package/lib/src/vendor/sass/legacy/render.d.ts +144 -0
- package/lib/src/vendor/sass/logger/index.d.ts +115 -0
- package/lib/src/vendor/sass/logger/source_location.d.ts +21 -0
- package/lib/src/vendor/sass/logger/source_span.d.ts +34 -0
- package/lib/src/vendor/sass/options.d.ts +468 -0
- package/lib/src/vendor/sass/util/promise_or.d.ts +17 -0
- package/lib/src/vendor/sass/value/argument_list.d.ts +47 -0
- package/lib/src/vendor/sass/value/boolean.d.ts +29 -0
- package/lib/src/vendor/sass/value/calculation.d.ts +137 -0
- package/lib/src/vendor/sass/value/color.d.ts +567 -0
- package/lib/src/vendor/sass/value/function.d.ts +22 -0
- package/lib/src/vendor/sass/value/index.d.ts +219 -0
- package/lib/src/vendor/sass/value/list.d.ts +54 -0
- package/lib/src/vendor/sass/value/map.d.ts +41 -0
- package/lib/src/vendor/sass/value/mixin.d.ts +14 -0
- package/lib/src/vendor/sass/value/number.d.ts +305 -0
- package/lib/src/vendor/sass/value/string.d.ts +84 -0
- package/lib/src/version.js +28 -0
- package/lib/src/version.js.map +1 -0
- package/package.json +36 -0
- package/types/compile.d.ts +342 -0
- package/types/deprecations.d.ts +312 -0
- package/types/exception.d.ts +41 -0
- package/types/importer.d.ts +471 -0
- package/types/index.d.ts +122 -0
- package/types/index.m.d.ts +122 -0
- package/types/legacy/exception.d.ts +55 -0
- package/types/legacy/function.d.ts +757 -0
- package/types/legacy/importer.d.ts +169 -0
- package/types/legacy/options.d.ts +700 -0
- package/types/legacy/plugin_this.d.ts +74 -0
- package/types/legacy/render.d.ts +144 -0
- package/types/logger/index.d.ts +115 -0
- package/types/logger/source_location.d.ts +21 -0
- package/types/logger/source_span.d.ts +34 -0
- package/types/options.d.ts +468 -0
- package/types/util/promise_or.d.ts +17 -0
- package/types/value/argument_list.d.ts +47 -0
- package/types/value/boolean.d.ts +29 -0
- package/types/value/calculation.d.ts +137 -0
- package/types/value/color.d.ts +567 -0
- package/types/value/function.d.ts +22 -0
- package/types/value/index.d.ts +219 -0
- package/types/value/list.d.ts +54 -0
- package/types/value/map.d.ts +41 -0
- package/types/value/mixin.d.ts +14 -0
- package/types/value/number.d.ts +305 -0
- package/types/value/string.d.ts +84 -0
|
@@ -0,0 +1,204 @@
|
|
|
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.Compiler = void 0;
|
|
40
|
+
exports.initCompiler = initCompiler;
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const rxjs_1 = require("rxjs");
|
|
43
|
+
const sync_child_process = __importStar(require("sync-child-process"));
|
|
44
|
+
const utils_1 = require("./utils");
|
|
45
|
+
const compiler_path_1 = require("../compiler-path");
|
|
46
|
+
const deprecations_1 = require("../deprecations");
|
|
47
|
+
const function_registry_1 = require("../function-registry");
|
|
48
|
+
const importer_registry_1 = require("../importer-registry");
|
|
49
|
+
const message_transformer_1 = require("../message-transformer");
|
|
50
|
+
const packet_transformer_1 = require("../packet-transformer");
|
|
51
|
+
const utils = __importStar(require("../utils"));
|
|
52
|
+
/**
|
|
53
|
+
* Flag allowing the constructor passed by `initCompiler` so we can
|
|
54
|
+
* differentiate and throw an error if the `Compiler` is constructed via `new
|
|
55
|
+
* Compiler`.
|
|
56
|
+
*/
|
|
57
|
+
const initFlag = Symbol();
|
|
58
|
+
/** A synchronous wrapper for the embedded Sass compiler */
|
|
59
|
+
class Compiler {
|
|
60
|
+
/** The underlying process that's being wrapped. */
|
|
61
|
+
process = (() => {
|
|
62
|
+
let command = compiler_path_1.compilerCommand[0];
|
|
63
|
+
let args = [...compiler_path_1.compilerCommand.slice(1), '--embedded'];
|
|
64
|
+
const options = {
|
|
65
|
+
// Use the command's cwd so the compiler survives the removal of the
|
|
66
|
+
// current working directory.
|
|
67
|
+
// https://github.com/sass/embedded-host-node/pull/261#discussion_r1438712923
|
|
68
|
+
cwd: path.dirname(compiler_path_1.compilerCommand[0]),
|
|
69
|
+
windowsHide: true,
|
|
70
|
+
};
|
|
71
|
+
// Node forbids launching .bat and .cmd without a shell due to CVE-2024-27980,
|
|
72
|
+
// and DEP0190 forbids passing an argument list *with* shell: true. To work
|
|
73
|
+
// around this, we have to manually concatenate the arguments.
|
|
74
|
+
if (['.bat', '.cmd'].includes(path.extname(command).toLowerCase())) {
|
|
75
|
+
command = `${command} ${args.join(' ')}`;
|
|
76
|
+
args = [];
|
|
77
|
+
options.shell = true;
|
|
78
|
+
}
|
|
79
|
+
return new sync_child_process.SyncChildProcess(command, args, options);
|
|
80
|
+
})();
|
|
81
|
+
/** The next compilation ID. */
|
|
82
|
+
compilationId = 1;
|
|
83
|
+
/** A list of active dispatchers. */
|
|
84
|
+
dispatchers = new Set();
|
|
85
|
+
/** The buffers emitted by the child process's stdout. */
|
|
86
|
+
stdout$ = new rxjs_1.Subject();
|
|
87
|
+
/** The buffers emitted by the child process's stderr. */
|
|
88
|
+
stderr$ = new rxjs_1.Subject();
|
|
89
|
+
/** Whether the underlying compiler has already exited. */
|
|
90
|
+
disposed = false;
|
|
91
|
+
/** Reusable message transformer for all compilations. */
|
|
92
|
+
messageTransformer;
|
|
93
|
+
/** Writes `buffer` to the child process's stdin. */
|
|
94
|
+
writeStdin(buffer) {
|
|
95
|
+
this.process.stdin.write(buffer);
|
|
96
|
+
}
|
|
97
|
+
/** Yields the next event from the underlying process. */
|
|
98
|
+
yield() {
|
|
99
|
+
const result = this.process.next();
|
|
100
|
+
if (result.done) {
|
|
101
|
+
this.disposed = true;
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
const event = result.value;
|
|
105
|
+
switch (event.type) {
|
|
106
|
+
case 'stdout':
|
|
107
|
+
this.stdout$.next(event.data);
|
|
108
|
+
return true;
|
|
109
|
+
case 'stderr':
|
|
110
|
+
this.stderr$.next(event.data);
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/** Blocks until the underlying process exits. */
|
|
115
|
+
yieldUntilExit() {
|
|
116
|
+
while (!this.disposed) {
|
|
117
|
+
this.yield();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Sends a compile request to the child process and returns the CompileResult.
|
|
122
|
+
* Throws if there were any protocol or compilation errors.
|
|
123
|
+
*/
|
|
124
|
+
compileRequestSync(request, importers, options) {
|
|
125
|
+
const optionsKey = Symbol();
|
|
126
|
+
deprecations_1.activeDeprecationOptions.set(optionsKey, options ?? {});
|
|
127
|
+
try {
|
|
128
|
+
const functions = new function_registry_1.FunctionRegistry(options?.functions);
|
|
129
|
+
const dispatcher = (0, utils_1.createDispatcher)(this.compilationId++, this.messageTransformer, {
|
|
130
|
+
handleImportRequest: request => importers.import(request),
|
|
131
|
+
handleFileImportRequest: request => importers.fileImport(request),
|
|
132
|
+
handleCanonicalizeRequest: request => importers.canonicalize(request),
|
|
133
|
+
handleFunctionCallRequest: request => functions.call(request),
|
|
134
|
+
});
|
|
135
|
+
this.dispatchers.add(dispatcher);
|
|
136
|
+
dispatcher.logEvents$.subscribe(event => (0, utils_1.handleLogEvent)(options, event));
|
|
137
|
+
let error;
|
|
138
|
+
let response;
|
|
139
|
+
dispatcher.sendCompileRequest(request, (error_, response_) => {
|
|
140
|
+
this.dispatchers.delete(dispatcher);
|
|
141
|
+
// Reset the compilation ID when the compiler goes idle (no active
|
|
142
|
+
// dispatchers) to avoid overflowing it.
|
|
143
|
+
// https://github.com/sass/embedded-host-node/pull/261#discussion_r1429266794
|
|
144
|
+
if (this.dispatchers.size === 0)
|
|
145
|
+
this.compilationId = 1;
|
|
146
|
+
if (error_) {
|
|
147
|
+
error = error_;
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
response = response_;
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
for (;;) {
|
|
154
|
+
if (!this.yield()) {
|
|
155
|
+
throw utils.compilerError('Embedded compiler exited unexpectedly');
|
|
156
|
+
}
|
|
157
|
+
if (error)
|
|
158
|
+
throw error;
|
|
159
|
+
if (response)
|
|
160
|
+
return (0, utils_1.handleCompileResponse)(response);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
finally {
|
|
164
|
+
deprecations_1.activeDeprecationOptions.delete(optionsKey);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/** Guards against using a disposed compiler. */
|
|
168
|
+
throwIfDisposed() {
|
|
169
|
+
if (this.disposed) {
|
|
170
|
+
throw utils.compilerError('Sync compiler has already been disposed');
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/** Initialize resources shared across compilations. */
|
|
174
|
+
constructor(flag) {
|
|
175
|
+
if (flag !== initFlag) {
|
|
176
|
+
throw utils.compilerError('Compiler can not be directly constructed. ' +
|
|
177
|
+
'Please use `sass.initCompiler()` instead');
|
|
178
|
+
}
|
|
179
|
+
this.stderr$.subscribe(data => process.stderr.write(data));
|
|
180
|
+
const packetTransformer = new packet_transformer_1.PacketTransformer(this.stdout$, buffer => {
|
|
181
|
+
this.writeStdin(buffer);
|
|
182
|
+
});
|
|
183
|
+
this.messageTransformer = new message_transformer_1.MessageTransformer(packetTransformer.outboundProtobufs$, packet => packetTransformer.writeInboundProtobuf(packet));
|
|
184
|
+
}
|
|
185
|
+
compile(path, options) {
|
|
186
|
+
this.throwIfDisposed();
|
|
187
|
+
const importers = new importer_registry_1.ImporterRegistry(options);
|
|
188
|
+
return this.compileRequestSync((0, utils_1.newCompilePathRequest)(path, importers, options), importers, options);
|
|
189
|
+
}
|
|
190
|
+
compileString(source, options) {
|
|
191
|
+
this.throwIfDisposed();
|
|
192
|
+
const importers = new importer_registry_1.ImporterRegistry(options);
|
|
193
|
+
return this.compileRequestSync((0, utils_1.newCompileStringRequest)(source, importers, options), importers, options);
|
|
194
|
+
}
|
|
195
|
+
dispose() {
|
|
196
|
+
this.process.stdin.end();
|
|
197
|
+
this.yieldUntilExit();
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
exports.Compiler = Compiler;
|
|
201
|
+
function initCompiler() {
|
|
202
|
+
return new Compiler(initFlag);
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../../lib/src/compiler/sync.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEvC,MAAY,IAAI,iCAAa;AAE7B,+BAA6B;AAC7B,MAAY,kBAAkB,+CAA2B;AAEzD,mCAOiB;AACjB,oDAAiD;AACjD,kDAAyD;AAEzD,4DAAsD;AACtD,4DAAsD;AACtD,gEAA0D;AAC1D,8DAAwD;AACxD,MAAY,KAAK,qCAAiB;AAKlC;;;;GAIG;AACH,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC;AAE1B,2DAA2D;AAC3D;IACE,mDAAmD;IAClC,OAAO,GAAG,CAAC,GAAG,EAAE;QAC/B,IAAI,OAAO,GAAG,+BAAe,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,IAAI,GAAG,CAAC,GAAG,+BAAe,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QACvD,MAAM,OAAO,GAA+B;YAC1C,oEAAoE;YACpE,6BAA6B;YAC7B,6EAA6E;YAC7E,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,+BAAe,CAAC,CAAC,CAAC,CAAC;YACrC,WAAW,EAAE,IAAI;SAClB,CAAC;QAEF,8EAA8E;QAC9E,2EAA2E;QAC3E,8DAA8D;QAC9D,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACnE,OAAO,GAAG,GAAG,OAAO,IAAI,IAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,IAAI,GAAG,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,OAAO,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC,CAAC,EAAE,CAAC;IAEL,+BAA+B;IACvB,aAAa,GAAG,CAAC,CAAC;IAE1B,oCAAoC;IACnB,WAAW,GAA4B,IAAI,GAAG,EAAE,CAAC;IAElE,yDAAyD;IACxC,OAAO,GAAG,IAAI,cAAO,EAAU,CAAC;IAEjD,yDAAyD;IACxC,OAAO,GAAG,IAAI,cAAO,EAAU,CAAC;IAEjD,0DAA0D;IAClD,QAAQ,GAAG,KAAK,CAAC;IAEzB,0DAA0D;IACzC,kBAAkB,CAAqB;IAExD,oDAAoD;IAC5C,UAAU,CAAC,MAAc;QAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,yDAAyD;IACjD,KAAK;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,QAAQ;gBACX,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9B,OAAO,IAAI,CAAC;YAEd,KAAK,QAAQ;gBACX,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9B,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAED,iDAAiD;IACzC,cAAc;QACpB,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,kBAAkB,CACxB,OAA4C,EAC5C,SAAmC,EACnC,OAAmC;QAEnC,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC;QAC5B,uCAAwB,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,oCAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAE3D,MAAM,UAAU,GAAG,IAAA,wBAAgB,EACjC,IAAI,CAAC,aAAa,EAAE,EACpB,IAAI,CAAC,kBAAkB,EACvB;gBACE,mBAAmB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;gBACzD,uBAAuB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;gBACjE,yBAAyB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC;gBACrE,yBAAyB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;aAC9D,CACF,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAEjC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,IAAA,sBAAc,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAEzE,IAAI,KAAc,CAAC;YACnB,IAAI,QAA2D,CAAC;YAChE,UAAU,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;gBAC3D,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACpC,kEAAkE;gBAClE,wCAAwC;gBACxC,6EAA6E;gBAC7E,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;oBAAE,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACxD,IAAI,MAAM,EAAE,CAAC;oBACX,KAAK,GAAG,MAAM,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACN,QAAQ,GAAG,SAAS,CAAC;gBACvB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,SAAS,CAAC;gBACR,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;oBAClB,MAAM,KAAK,CAAC,aAAa,CAAC,uCAAuC,CAAC,CAAC;gBACrE,CAAC;gBAED,IAAI,KAAK;oBAAE,MAAM,KAAK,CAAC;gBACvB,IAAI,QAAQ;oBAAE,OAAO,IAAA,6BAAqB,EAAC,QAAQ,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,uCAAwB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,gDAAgD;IACxC,eAAe;QACrB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,KAAK,CAAC,aAAa,CAAC,yCAAyC,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,YAAY,IAAwB;QAClC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,KAAK,CAAC,aAAa,CACvB,4CAA4C;gBAC1C,0CAA0C,CAC7C,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,MAAM,iBAAiB,GAAG,IAAI,sCAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;YACrE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,wCAAkB,CAC9C,iBAAiB,CAAC,kBAAkB,EACpC,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CACzD,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,OAAyB;QAC7C,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,oCAAgB,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,kBAAkB,CAC5B,IAAA,6BAAqB,EAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAC/C,SAAS,EACT,OAAO,CACR,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,MAAc,EAAE,OAAyB;QACrD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,oCAAgB,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,kBAAkB,CAC5B,IAAA,+BAAuB,EAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EACnD,SAAS,EACT,OAAO,CACR,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;CACF;;AAED;IACE,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,210 @@
|
|
|
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.createDispatcher = createDispatcher;
|
|
40
|
+
exports.newCompilePathRequest = newCompilePathRequest;
|
|
41
|
+
exports.newCompileStringRequest = newCompileStringRequest;
|
|
42
|
+
exports.handleLogEvent = handleLogEvent;
|
|
43
|
+
exports.handleCompileResponse = handleCompileResponse;
|
|
44
|
+
exports.promiseWithResolvers = promiseWithResolvers;
|
|
45
|
+
const p = __importStar(require("path"));
|
|
46
|
+
const supportsColor = __importStar(require("supports-color"));
|
|
47
|
+
const protobuf_1 = require("@bufbuild/protobuf");
|
|
48
|
+
const deprecations_1 = require("../deprecations");
|
|
49
|
+
const deprotofy_span_1 = require("../deprotofy-span");
|
|
50
|
+
const dispatcher_1 = require("../dispatcher");
|
|
51
|
+
const exception_1 = require("../exception");
|
|
52
|
+
const utils_1 = require("../legacy/utils");
|
|
53
|
+
const logger_1 = require("../logger");
|
|
54
|
+
const utils = __importStar(require("../utils"));
|
|
55
|
+
const proto = __importStar(require("../vendor/embedded_sass_pb"));
|
|
56
|
+
/**
|
|
57
|
+
* Creates a dispatcher that dispatches messages from the given `stdout` stream.
|
|
58
|
+
*/
|
|
59
|
+
function createDispatcher(compilationId, messageTransformer, handlers) {
|
|
60
|
+
return new dispatcher_1.Dispatcher(compilationId, messageTransformer.outboundMessages$, message => messageTransformer.writeInboundMessage(message), handlers);
|
|
61
|
+
}
|
|
62
|
+
// Creates a compilation request for the given `options` without adding any
|
|
63
|
+
// input-specific options.
|
|
64
|
+
function newCompileRequest(importers, options) {
|
|
65
|
+
const request = (0, protobuf_1.create)(proto.InboundMessage_CompileRequestSchema, {
|
|
66
|
+
importers: importers.importers,
|
|
67
|
+
globalFunctions: Object.keys(options?.functions ?? {}),
|
|
68
|
+
sourceMap: !!options?.sourceMap,
|
|
69
|
+
sourceMapIncludeSources: !!options?.sourceMapIncludeSources,
|
|
70
|
+
alertColor: options?.alertColor ?? !!supportsColor.stdout,
|
|
71
|
+
alertAscii: !!options?.alertAscii,
|
|
72
|
+
quietDeps: !!options?.quietDeps,
|
|
73
|
+
verbose: !!options?.verbose,
|
|
74
|
+
charset: !!(options?.charset ?? true),
|
|
75
|
+
silent: options?.logger === logger_1.Logger.silent,
|
|
76
|
+
fatalDeprecation: (0, deprecations_1.getDeprecationIds)(options?.fatalDeprecations ?? []),
|
|
77
|
+
silenceDeprecation: (0, deprecations_1.getDeprecationIds)(options?.silenceDeprecations ?? []),
|
|
78
|
+
futureDeprecation: (0, deprecations_1.getDeprecationIds)(options?.futureDeprecations ?? []),
|
|
79
|
+
});
|
|
80
|
+
switch (options?.style ?? 'expanded') {
|
|
81
|
+
case 'expanded':
|
|
82
|
+
request.style = proto.OutputStyle.EXPANDED;
|
|
83
|
+
break;
|
|
84
|
+
case 'compressed':
|
|
85
|
+
request.style = proto.OutputStyle.COMPRESSED;
|
|
86
|
+
break;
|
|
87
|
+
default:
|
|
88
|
+
throw new Error(`Unknown options.style: "${options?.style}"`);
|
|
89
|
+
}
|
|
90
|
+
return request;
|
|
91
|
+
}
|
|
92
|
+
// Creates a request for compiling a file.
|
|
93
|
+
function newCompilePathRequest(path, importers, options) {
|
|
94
|
+
const absPath = p.resolve(path);
|
|
95
|
+
const request = newCompileRequest(importers, options);
|
|
96
|
+
request.input = { case: 'path', value: absPath };
|
|
97
|
+
return request;
|
|
98
|
+
}
|
|
99
|
+
// Creates a request for compiling a string.
|
|
100
|
+
function newCompileStringRequest(source, importers, options) {
|
|
101
|
+
const input = (0, protobuf_1.create)(proto.InboundMessage_CompileRequest_StringInputSchema, {
|
|
102
|
+
source,
|
|
103
|
+
syntax: utils.protofySyntax(options?.syntax ?? 'scss'),
|
|
104
|
+
});
|
|
105
|
+
const url = options?.url?.toString();
|
|
106
|
+
if (url && url !== utils_1.legacyImporterProtocol) {
|
|
107
|
+
input.url = url;
|
|
108
|
+
}
|
|
109
|
+
if (options && 'importer' in options && options.importer) {
|
|
110
|
+
input.importer = importers.register(options.importer);
|
|
111
|
+
}
|
|
112
|
+
else if (url === utils_1.legacyImporterProtocol) {
|
|
113
|
+
input.importer = (0, protobuf_1.create)(proto.InboundMessage_CompileRequest_ImporterSchema, {
|
|
114
|
+
importer: { case: 'path', value: p.resolve('.') },
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
// When importer is not set on the host, the compiler will set a
|
|
119
|
+
// FileSystemImporter if `url` is set to a file: url or a NoOpImporter.
|
|
120
|
+
}
|
|
121
|
+
const request = newCompileRequest(importers, options);
|
|
122
|
+
request.input = { case: 'string', value: input };
|
|
123
|
+
return request;
|
|
124
|
+
}
|
|
125
|
+
/** Type guard to check that `id` is a valid deprecation ID. */
|
|
126
|
+
function validDeprecationId(id) {
|
|
127
|
+
return !!id && id in deprecations_1.deprecations;
|
|
128
|
+
}
|
|
129
|
+
/** Handles a log event according to `options`. */
|
|
130
|
+
function handleLogEvent(options, event) {
|
|
131
|
+
let span = event.span ? (0, deprotofy_span_1.deprotofySourceSpan)(event.span) : null;
|
|
132
|
+
if (span && options?.legacy)
|
|
133
|
+
span = (0, utils_1.removeLegacyImporterFromSpan)(span);
|
|
134
|
+
let message = event.message;
|
|
135
|
+
if (options?.legacy)
|
|
136
|
+
message = (0, utils_1.removeLegacyImporter)(message);
|
|
137
|
+
let formatted = event.formatted;
|
|
138
|
+
if (options?.legacy)
|
|
139
|
+
formatted = (0, utils_1.removeLegacyImporter)(formatted);
|
|
140
|
+
const deprecationType = validDeprecationId(event.deprecationType)
|
|
141
|
+
? deprecations_1.deprecations[event.deprecationType]
|
|
142
|
+
: null;
|
|
143
|
+
if (event.type === proto.LogEventType.DEBUG) {
|
|
144
|
+
if (options?.logger?.debug) {
|
|
145
|
+
options.logger.debug(message, {
|
|
146
|
+
span: span,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
console.error(formatted);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
if (options?.logger?.warn) {
|
|
155
|
+
const params = deprecationType
|
|
156
|
+
? { deprecation: true, deprecationType: deprecationType }
|
|
157
|
+
: { deprecation: false };
|
|
158
|
+
if (span)
|
|
159
|
+
params.span = span;
|
|
160
|
+
const stack = event.stackTrace;
|
|
161
|
+
if (stack) {
|
|
162
|
+
params.stack = options?.legacy ? (0, utils_1.removeLegacyImporter)(stack) : stack;
|
|
163
|
+
}
|
|
164
|
+
options.logger.warn(message, params);
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
console.error(formatted);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Converts a `CompileResponse` into a `CompileResult`.
|
|
173
|
+
*
|
|
174
|
+
* Throws a `SassException` if the compilation failed.
|
|
175
|
+
*/
|
|
176
|
+
function handleCompileResponse(response) {
|
|
177
|
+
if (response.result.case === 'success') {
|
|
178
|
+
const success = response.result.value;
|
|
179
|
+
const result = {
|
|
180
|
+
css: success.css,
|
|
181
|
+
loadedUrls: response.loadedUrls.map(url => new URL(url)),
|
|
182
|
+
};
|
|
183
|
+
const sourceMap = success.sourceMap;
|
|
184
|
+
if (sourceMap)
|
|
185
|
+
result.sourceMap = JSON.parse(sourceMap);
|
|
186
|
+
return result;
|
|
187
|
+
}
|
|
188
|
+
else if (response.result.case === 'failure') {
|
|
189
|
+
throw new exception_1.Exception(response.result.value);
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
throw utils.compilerError('Compiler sent empty CompileResponse');
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// TODO(nweiz): Replace this with the library function once Node 22 is the
|
|
196
|
+
// oldest LTS version (May 2026).
|
|
197
|
+
/**
|
|
198
|
+
* A polyfill for `Promise.withResolvers()` until it's universally available in
|
|
199
|
+
* LTS Node.js versions.
|
|
200
|
+
*/
|
|
201
|
+
function promiseWithResolvers() {
|
|
202
|
+
let resolve;
|
|
203
|
+
let reject;
|
|
204
|
+
const promise = new Promise((resolve_, reject_) => {
|
|
205
|
+
resolve = resolve_;
|
|
206
|
+
reject = reject_;
|
|
207
|
+
});
|
|
208
|
+
return { promise, resolve: resolve, reject: reject };
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/src/compiler/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2025 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.compilerModule = void 0;
|
|
40
|
+
const p = __importStar(require("path"));
|
|
41
|
+
const elf_1 = require("./elf");
|
|
42
|
+
/**
|
|
43
|
+
* Detect if the given binary is linked with musl libc by checking if
|
|
44
|
+
* the interpreter basename starts with "ld-musl-"
|
|
45
|
+
*/
|
|
46
|
+
function isLinuxMusl(path) {
|
|
47
|
+
try {
|
|
48
|
+
const interpreter = (0, elf_1.getElfInterpreter)(path);
|
|
49
|
+
return p.basename(interpreter).startsWith('ld-musl-');
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
console.warn(`Warning: Failed to detect linux-musl, fallback to linux-gnu: ${error.message}`);
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/** The module name for the embedded compiler executable. */
|
|
57
|
+
exports.compilerModule = (() => {
|
|
58
|
+
const platform = process.platform === 'linux' && isLinuxMusl(process.execPath)
|
|
59
|
+
? 'linux-musl'
|
|
60
|
+
: process.platform;
|
|
61
|
+
const arch = process.arch;
|
|
62
|
+
return `sass-embedded-go-${platform}-${arch}`;
|
|
63
|
+
})();
|
|
64
|
+
//# sourceMappingURL=compiler-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiler-module.js","sourceRoot":"","sources":["../../../lib/src/compiler-module.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEvC,MAAY,CAAC,iCAAa;AAC1B,+BAAwC;AAExC;;;GAGG;AACH,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAA,uBAAiB,EAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,gEAAgE,KAAK,CAAC,OAAO,EAAE,CAChF,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,4DAA4D;AAC/C,QAAA,cAAc,GAAG,CAAC,GAAG,EAAE;IAClC,MAAM,QAAQ,GACZ,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC3D,CAAC,CAAC,YAAY;QACd,CAAC,CAAE,OAAO,CAAC,QAAmB,CAAC;IAEnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,OAAO,iBAAiB,QAAQ,IAAI,IAAI,EAAE,CAAC;AAC7C,CAAC,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2021 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.compilerCommand = void 0;
|
|
40
|
+
const p = __importStar(require("path"));
|
|
41
|
+
const compiler_module_1 = require("./compiler-module");
|
|
42
|
+
/** The full command for the embedded compiler executable. */
|
|
43
|
+
exports.compilerCommand = (() => {
|
|
44
|
+
try {
|
|
45
|
+
return [
|
|
46
|
+
require.resolve(`${compiler_module_1.compilerModule}/dart-sass/src/dart` +
|
|
47
|
+
(process.platform === 'win32' ? '.exe' : '')),
|
|
48
|
+
require.resolve(`${compiler_module_1.compilerModule}/dart-sass/src/sass.snapshot`),
|
|
49
|
+
];
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
if (e.code !== 'MODULE_NOT_FOUND') {
|
|
53
|
+
throw e;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
return [
|
|
58
|
+
require.resolve(`${compiler_module_1.compilerModule}/dart-sass/sass` +
|
|
59
|
+
(process.platform === 'win32' ? '.bat' : '')),
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
if (e.code !== 'MODULE_NOT_FOUND') {
|
|
64
|
+
throw e;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
return [
|
|
69
|
+
process.execPath,
|
|
70
|
+
p.join(p.dirname(require.resolve('sass')), 'sass.js'),
|
|
71
|
+
];
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
if (e.code !== 'MODULE_NOT_FOUND') {
|
|
75
|
+
throw e;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
throw new Error("Embedded Dart Sass couldn't find the embedded compiler executable. " +
|
|
79
|
+
`Please make sure the optional dependency ${compiler_module_1.compilerModule} or sass is ` +
|
|
80
|
+
'installed in node_modules.');
|
|
81
|
+
})();
|
|
82
|
+
//# sourceMappingURL=compiler-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiler-path.js","sourceRoot":"","sources":["../../../lib/src/compiler-path.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEvC,MAAY,CAAC,iCAAa;AAC1B,uDAAiD;AAEjD,6DAA6D;AAChD,QAAA,eAAe,GAAG,CAAC,GAAG,EAAE;IACnC,IAAI,CAAC;QACH,OAAO;YACL,OAAO,CAAC,OAAO,CACb,GAAG,gCAAc,qBAAqB;gBACpC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAC/C;YACD,OAAO,CAAC,OAAO,CAAC,GAAG,gCAAc,8BAA8B,CAAC;SACjE,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAClC,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,OAAO;YACL,OAAO,CAAC,OAAO,CACb,GAAG,gCAAc,iBAAiB;gBAChC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAC/C;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAClC,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,OAAO;YACL,OAAO,CAAC,QAAQ;YAChB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC;SACtD,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAClC,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CACb,qEAAqE;QACnE,4CAA4C,gCAAc,cAAc;QACxE,4BAA4B,CAC/B,CAAC;AACJ,CAAC,CAAC,EAAE,CAAC"}
|