sass-embedded 1.66.1 → 1.69.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.
- package/dist/jest.config.js +8 -0
- package/dist/jest.config.js.map +1 -0
- package/dist/lib/index.js +3 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/index.mjs +5 -0
- package/dist/lib/src/compile.js +22 -13
- package/dist/lib/src/compile.js.map +1 -1
- package/dist/lib/src/importer-registry.js +15 -4
- package/dist/lib/src/importer-registry.js.map +1 -1
- package/dist/lib/src/legacy/importer.js +25 -30
- package/dist/lib/src/legacy/importer.js.map +1 -1
- package/dist/lib/src/legacy/index.js +27 -25
- package/dist/lib/src/legacy/index.js.map +1 -1
- package/dist/lib/src/legacy/utils.js +55 -0
- package/dist/lib/src/legacy/utils.js.map +1 -0
- package/dist/lib/src/message-transformer.test.js +81 -0
- package/dist/lib/src/message-transformer.test.js.map +1 -0
- package/dist/lib/src/packet-transformer.test.js +124 -0
- package/dist/lib/src/packet-transformer.test.js.map +1 -0
- package/dist/lib/src/protofier.js +8 -0
- package/dist/lib/src/protofier.js.map +1 -1
- package/dist/lib/src/request-tracker.test.js +71 -0
- package/dist/lib/src/request-tracker.test.js.map +1 -0
- package/dist/lib/src/sync-process/index.js +1 -1
- package/dist/lib/src/sync-process/index.js.map +1 -1
- package/dist/lib/src/sync-process/index.test.js +129 -0
- package/dist/lib/src/sync-process/index.test.js.map +1 -0
- package/dist/lib/src/sync-process/sync-message-port.test.js +125 -0
- package/dist/lib/src/sync-process/sync-message-port.test.js.map +1 -0
- package/dist/lib/src/utils.test.js +32 -0
- package/dist/lib/src/utils.test.js.map +1 -0
- package/dist/lib/src/value/index.js +10 -0
- package/dist/lib/src/value/index.js.map +1 -1
- package/dist/lib/src/value/mixin.js +29 -0
- package/dist/lib/src/value/mixin.js.map +1 -0
- package/dist/lib/src/vendor/embedded_sass_pb.js +79 -18
- package/dist/lib/src/vendor/embedded_sass_pb.js.map +1 -1
- package/dist/package.json +18 -14
- package/dist/test/dependencies.test.js +18 -0
- package/dist/test/dependencies.test.js.map +1 -0
- package/dist/test/sandbox.js +35 -0
- package/dist/test/sandbox.js.map +1 -0
- package/dist/test/utils.js +58 -0
- package/dist/test/utils.js.map +1 -0
- package/dist/tool/get-embedded-compiler.js +1 -1
- package/dist/tool/get-language-repo.js +2 -1
- package/dist/tool/get-language-repo.js.map +1 -1
- package/dist/tool/init.js +1 -1
- package/dist/tool/init.js.map +1 -1
- package/dist/tool/prepare-optional-release.js +1 -1
- package/dist/tool/prepare-optional-release.js.map +1 -1
- package/dist/tool/prepare-release.js +1 -1
- package/dist/tool/prepare-release.js.map +1 -1
- package/dist/tool/utils.js +8 -3
- package/dist/tool/utils.js.map +1 -1
- package/dist/types/importer.d.ts +48 -14
- package/dist/types/index.d.ts +7 -1
- package/dist/types/value/index.d.ts +10 -0
- package/dist/types/value/mixin.d.ts +14 -0
- package/package.json +18 -14
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2023 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.legacyFileUrlToPath = exports.pathToLegacyFileUrl = exports.removeLegacyImporterFromSpan = exports.removeLegacyImporter = exports.legacyImporterProtocolPrefix = exports.legacyImporterProtocol = void 0;
|
|
7
|
+
const assert_1 = require("assert");
|
|
8
|
+
const url_1 = require("url");
|
|
9
|
+
const utils_1 = require("../utils");
|
|
10
|
+
const importer_1 = require("./importer");
|
|
11
|
+
/**
|
|
12
|
+
* The URL protocol to use for URLs canonicalized using `LegacyImporterWrapper`.
|
|
13
|
+
*/
|
|
14
|
+
exports.legacyImporterProtocol = 'legacy-importer:';
|
|
15
|
+
/**
|
|
16
|
+
* The prefix for absolute URLs canonicalized using `LegacyImporterWrapper`.
|
|
17
|
+
*
|
|
18
|
+
* This is used to distinguish imports resolved relative to URLs returned by a
|
|
19
|
+
* legacy importer from manually-specified absolute URLs.
|
|
20
|
+
*/
|
|
21
|
+
exports.legacyImporterProtocolPrefix = 'legacy-importer-';
|
|
22
|
+
/// A regular expression that matches legacy importer protocol syntax that
|
|
23
|
+
/// should be removed from human-readable messages.
|
|
24
|
+
const removeLegacyImporterRegExp = new RegExp(`${exports.legacyImporterProtocol}|${exports.legacyImporterProtocolPrefix}`, 'g');
|
|
25
|
+
/// Returns `string` with all instances of legacy importer syntax removed.
|
|
26
|
+
function removeLegacyImporter(string) {
|
|
27
|
+
return string.replace(removeLegacyImporterRegExp, '');
|
|
28
|
+
}
|
|
29
|
+
exports.removeLegacyImporter = removeLegacyImporter;
|
|
30
|
+
/// Returns a copy of [span] with the URL updated to remove legacy importer
|
|
31
|
+
/// syntax.
|
|
32
|
+
function removeLegacyImporterFromSpan(span) {
|
|
33
|
+
if (!span.url)
|
|
34
|
+
return span;
|
|
35
|
+
return { ...span, url: new URL(removeLegacyImporter(span.url.toString())) };
|
|
36
|
+
}
|
|
37
|
+
exports.removeLegacyImporterFromSpan = removeLegacyImporterFromSpan;
|
|
38
|
+
/// Converts [path] to a `file:` URL and adds the [legacyImporterProtocolPrefix]
|
|
39
|
+
/// to the beginning so we can distinguish it from manually-specified absolute
|
|
40
|
+
/// `file:` URLs.
|
|
41
|
+
function pathToLegacyFileUrl(path) {
|
|
42
|
+
return new URL(`${exports.legacyImporterProtocolPrefix}${(0, url_1.pathToFileURL)(path)}`);
|
|
43
|
+
}
|
|
44
|
+
exports.pathToLegacyFileUrl = pathToLegacyFileUrl;
|
|
45
|
+
/// Converts a `file:` URL with [legacyImporterProtocolPrefix] to the filesystem
|
|
46
|
+
/// path which it represents.
|
|
47
|
+
function legacyFileUrlToPath(url) {
|
|
48
|
+
assert_1.strict.equal(url.protocol, importer_1.legacyImporterFileProtocol);
|
|
49
|
+
const originalUrl = url
|
|
50
|
+
.toString()
|
|
51
|
+
.substring(exports.legacyImporterProtocolPrefix.length);
|
|
52
|
+
return (0, utils_1.fileUrlToPathCrossPlatform)(originalUrl);
|
|
53
|
+
}
|
|
54
|
+
exports.legacyFileUrlToPath = legacyFileUrlToPath;
|
|
55
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/src/legacy/utils.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,mCAAwC;AACxC,6BAAkC;AAElC,oCAAoD;AAEpD,yCAAsD;AAEtD;;GAEG;AACU,QAAA,sBAAsB,GAAG,kBAAkB,CAAC;AAEzD;;;;;GAKG;AACU,QAAA,4BAA4B,GAAG,kBAAkB,CAAC;AAE/D,0EAA0E;AAC1E,mDAAmD;AACnD,MAAM,0BAA0B,GAAG,IAAI,MAAM,CAC3C,GAAG,8BAAsB,IAAI,oCAA4B,EAAE,EAC3D,GAAG,CACJ,CAAC;AAEF,0EAA0E;AAC1E,SAAgB,oBAAoB,CAAC,MAAc;IACjD,OAAO,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;AACxD,CAAC;AAFD,oDAEC;AAED,2EAA2E;AAC3E,WAAW;AACX,SAAgB,4BAA4B,CAAC,IAAgB;IAC3D,IAAI,CAAC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAC3B,OAAO,EAAC,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAC,CAAC;AAC5E,CAAC;AAHD,oEAGC;AAED,gFAAgF;AAChF,8EAA8E;AAC9E,iBAAiB;AACjB,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,OAAO,IAAI,GAAG,CAAC,GAAG,oCAA4B,GAAG,IAAA,mBAAa,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1E,CAAC;AAFD,kDAEC;AAED,gFAAgF;AAChF,6BAA6B;AAC7B,SAAgB,mBAAmB,CAAC,GAAQ;IAC1C,eAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,qCAA0B,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,GAAG;SACpB,QAAQ,EAAE;SACV,SAAS,CAAC,oCAA4B,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,IAAA,kCAA0B,EAAC,WAAW,CAAC,CAAC;AACjD,CAAC;AAND,kDAMC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
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
|
+
const rxjs_1 = require("rxjs");
|
|
7
|
+
const varint = require("varint");
|
|
8
|
+
const utils_1 = require("../../test/utils");
|
|
9
|
+
const message_transformer_1 = require("./message-transformer");
|
|
10
|
+
const proto = require("./vendor/embedded_sass_pb");
|
|
11
|
+
describe('message transformer', () => {
|
|
12
|
+
let messages;
|
|
13
|
+
function validInboundMessage(source) {
|
|
14
|
+
return new proto.InboundMessage({
|
|
15
|
+
message: {
|
|
16
|
+
case: 'compileRequest',
|
|
17
|
+
value: new proto.InboundMessage_CompileRequest({
|
|
18
|
+
input: {
|
|
19
|
+
case: 'string',
|
|
20
|
+
value: new proto.InboundMessage_CompileRequest_StringInput({
|
|
21
|
+
source,
|
|
22
|
+
}),
|
|
23
|
+
},
|
|
24
|
+
}),
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
describe('encode', () => {
|
|
29
|
+
let encodedProtobufs;
|
|
30
|
+
beforeEach(() => {
|
|
31
|
+
encodedProtobufs = [];
|
|
32
|
+
messages = new message_transformer_1.MessageTransformer(new rxjs_1.Observable(), buffer => encodedProtobufs.push(buffer));
|
|
33
|
+
});
|
|
34
|
+
it('encodes an InboundMessage to buffer', () => {
|
|
35
|
+
const message = validInboundMessage('a {b: c}');
|
|
36
|
+
messages.writeInboundMessage([1234, message]);
|
|
37
|
+
expect(encodedProtobufs).toEqual([
|
|
38
|
+
Uint8Array.from([...varint.encode(1234), ...message.toBinary()]),
|
|
39
|
+
]);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
describe('decode', () => {
|
|
43
|
+
let protobufs$;
|
|
44
|
+
let decodedMessages;
|
|
45
|
+
beforeEach(() => {
|
|
46
|
+
protobufs$ = new rxjs_1.Subject();
|
|
47
|
+
messages = new message_transformer_1.MessageTransformer(protobufs$, () => { });
|
|
48
|
+
decodedMessages = [];
|
|
49
|
+
});
|
|
50
|
+
it('decodes buffer to OutboundMessage', done => {
|
|
51
|
+
messages.outboundMessages$.subscribe({
|
|
52
|
+
next: message => decodedMessages.push(message),
|
|
53
|
+
complete: () => {
|
|
54
|
+
expect(decodedMessages.length).toBe(1);
|
|
55
|
+
const [id, message] = decodedMessages[0];
|
|
56
|
+
expect(id).toBe(1234);
|
|
57
|
+
expect(message.message.case).toBe('compileResponse');
|
|
58
|
+
const response = message.message
|
|
59
|
+
.value;
|
|
60
|
+
expect(response.result.case).toBe('success');
|
|
61
|
+
expect(response.result
|
|
62
|
+
.value.css).toBe('a {b: c}');
|
|
63
|
+
done();
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
protobufs$.next(Uint8Array.from([
|
|
67
|
+
...varint.encode(1234),
|
|
68
|
+
...validInboundMessage('a {b: c}').toBinary(),
|
|
69
|
+
]));
|
|
70
|
+
protobufs$.complete();
|
|
71
|
+
});
|
|
72
|
+
describe('protocol error', () => {
|
|
73
|
+
it('fails on invalid buffer', done => {
|
|
74
|
+
(0, utils_1.expectObservableToError)(messages.outboundMessages$, 'Compiler caused error: Invalid compilation ID varint: RangeError: ' +
|
|
75
|
+
'Could not decode varint.', done);
|
|
76
|
+
protobufs$.next(Buffer.from([-1]));
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
//# sourceMappingURL=message-transformer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-transformer.test.js","sourceRoot":"","sources":["../../../lib/src/message-transformer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,124 @@
|
|
|
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
|
+
const rxjs_1 = require("rxjs");
|
|
7
|
+
const packet_transformer_1 = require("./packet-transformer");
|
|
8
|
+
describe('packet transformer', () => {
|
|
9
|
+
let packets;
|
|
10
|
+
describe('encode', () => {
|
|
11
|
+
let encodedBuffers;
|
|
12
|
+
beforeEach(() => {
|
|
13
|
+
encodedBuffers = [];
|
|
14
|
+
packets = new packet_transformer_1.PacketTransformer(new rxjs_1.Observable(), buffer => encodedBuffers.push(buffer));
|
|
15
|
+
});
|
|
16
|
+
it('encodes an empty message', () => {
|
|
17
|
+
packets.writeInboundProtobuf(Buffer.from([]));
|
|
18
|
+
expect(encodedBuffers).toEqual([Buffer.from([0])]);
|
|
19
|
+
});
|
|
20
|
+
it('encodes a message of length 1', () => {
|
|
21
|
+
packets.writeInboundProtobuf(Buffer.from([123]));
|
|
22
|
+
expect(encodedBuffers).toEqual([Buffer.from([1, 123])]);
|
|
23
|
+
});
|
|
24
|
+
it('encodes a message of length greater than 256', () => {
|
|
25
|
+
packets.writeInboundProtobuf(Buffer.alloc(300, 1));
|
|
26
|
+
expect(encodedBuffers).toEqual([
|
|
27
|
+
Buffer.from([172, 2, ...new Array(300).fill(1)]),
|
|
28
|
+
]);
|
|
29
|
+
});
|
|
30
|
+
it('encodes multiple messages', () => {
|
|
31
|
+
packets.writeInboundProtobuf(Buffer.from([10]));
|
|
32
|
+
packets.writeInboundProtobuf(Buffer.from([20, 30]));
|
|
33
|
+
packets.writeInboundProtobuf(Buffer.from([40, 50, 60]));
|
|
34
|
+
expect(encodedBuffers).toEqual([
|
|
35
|
+
Buffer.from([1, 10]),
|
|
36
|
+
Buffer.from([2, 20, 30]),
|
|
37
|
+
Buffer.from([3, 40, 50, 60]),
|
|
38
|
+
]);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
describe('decode', () => {
|
|
42
|
+
let rawBuffers$;
|
|
43
|
+
function expectDecoding(expected, done) {
|
|
44
|
+
const actual = [];
|
|
45
|
+
packets.outboundProtobufs$.subscribe({
|
|
46
|
+
next: protobuf => actual.push(protobuf),
|
|
47
|
+
error: () => fail('expected correct decoding'),
|
|
48
|
+
complete: () => {
|
|
49
|
+
expect(actual).toEqual(expected);
|
|
50
|
+
done();
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
beforeEach(() => {
|
|
55
|
+
rawBuffers$ = new rxjs_1.Subject();
|
|
56
|
+
packets = new packet_transformer_1.PacketTransformer(rawBuffers$, () => { });
|
|
57
|
+
});
|
|
58
|
+
describe('empty message', () => {
|
|
59
|
+
it('decodes a single chunk', done => {
|
|
60
|
+
expectDecoding([Buffer.from([])], done);
|
|
61
|
+
rawBuffers$.next(Buffer.from([0]));
|
|
62
|
+
rawBuffers$.complete();
|
|
63
|
+
});
|
|
64
|
+
it('decodes a chunk that contains more data', done => {
|
|
65
|
+
expectDecoding([Buffer.from([]), Buffer.from([100])], done);
|
|
66
|
+
rawBuffers$.next(Buffer.from([0, 1, 100]));
|
|
67
|
+
rawBuffers$.complete();
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
describe('longer message', () => {
|
|
71
|
+
it('decodes a single chunk', done => {
|
|
72
|
+
expectDecoding([Buffer.from(Buffer.from([1, 2, 3, 4]))], done);
|
|
73
|
+
rawBuffers$.next(Buffer.from([4, 1, 2, 3, 4]));
|
|
74
|
+
rawBuffers$.complete();
|
|
75
|
+
});
|
|
76
|
+
it('decodes multiple chunks', done => {
|
|
77
|
+
expectDecoding([Buffer.alloc(300, 1)], done);
|
|
78
|
+
rawBuffers$.next(Buffer.from([172]));
|
|
79
|
+
rawBuffers$.next(Buffer.from([2, 1]));
|
|
80
|
+
rawBuffers$.next(Buffer.from(Buffer.alloc(299, 1)));
|
|
81
|
+
rawBuffers$.complete();
|
|
82
|
+
});
|
|
83
|
+
it('decodes one chunk per byte', done => {
|
|
84
|
+
expectDecoding([Buffer.alloc(300, 1)], done);
|
|
85
|
+
for (const byte of [172, 2, ...Buffer.alloc(300, 1)]) {
|
|
86
|
+
rawBuffers$.next(Buffer.from([byte]));
|
|
87
|
+
}
|
|
88
|
+
rawBuffers$.complete();
|
|
89
|
+
});
|
|
90
|
+
it('decodes a chunk that contains more data', done => {
|
|
91
|
+
expectDecoding([Buffer.from([1, 2, 3, 4]), Buffer.from([0])], done);
|
|
92
|
+
rawBuffers$.next(Buffer.from([4, 1, 2, 3, 4, 1, 0]));
|
|
93
|
+
rawBuffers$.complete();
|
|
94
|
+
});
|
|
95
|
+
it('decodes a full chunk of length greater than 256', done => {
|
|
96
|
+
expectDecoding([Buffer.from(new Array(300).fill(1))], done);
|
|
97
|
+
rawBuffers$.next(Buffer.from([172, 2, ...new Array(300).fill(1)]));
|
|
98
|
+
rawBuffers$.complete();
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
describe('multiple messages', () => {
|
|
102
|
+
it('decodes a single chunk', done => {
|
|
103
|
+
expectDecoding([Buffer.from([1, 2, 3, 4]), Buffer.from([101, 102])], done);
|
|
104
|
+
rawBuffers$.next(Buffer.from([4, 1, 2, 3, 4, 2, 101, 102]));
|
|
105
|
+
rawBuffers$.complete();
|
|
106
|
+
});
|
|
107
|
+
it('decodes multiple chunks', done => {
|
|
108
|
+
expectDecoding([Buffer.from([1, 2, 3, 4]), Buffer.alloc(300, 1)], done);
|
|
109
|
+
rawBuffers$.next(Buffer.from([4]));
|
|
110
|
+
rawBuffers$.next(Buffer.from([1, 2, 3, 4, 172]));
|
|
111
|
+
rawBuffers$.next(Buffer.from([2, ...Buffer.alloc(300, 1)]));
|
|
112
|
+
rawBuffers$.complete();
|
|
113
|
+
});
|
|
114
|
+
it('decodes one chunk per byte', done => {
|
|
115
|
+
expectDecoding([Buffer.from([1, 2, 3, 4]), Buffer.alloc(300, 1)], done);
|
|
116
|
+
for (const byte of [4, 1, 2, 3, 4, 172, 2, ...Buffer.alloc(300, 1)]) {
|
|
117
|
+
rawBuffers$.next(Buffer.from([byte]));
|
|
118
|
+
}
|
|
119
|
+
rawBuffers$.complete();
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
//# sourceMappingURL=packet-transformer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packet-transformer.test.js","sourceRoot":"","sources":["../../../lib/src/packet-transformer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ const string_1 = require("./value/string");
|
|
|
17
17
|
const null_1 = require("./value/null");
|
|
18
18
|
const boolean_1 = require("./value/boolean");
|
|
19
19
|
const calculations_1 = require("./value/calculations");
|
|
20
|
+
const mixin_1 = require("./value/mixin");
|
|
20
21
|
/**
|
|
21
22
|
* A class that converts [Value] objects into protobufs.
|
|
22
23
|
*
|
|
@@ -118,6 +119,11 @@ class Protofier {
|
|
|
118
119
|
result.value = { case: 'hostFunction', value: fn };
|
|
119
120
|
}
|
|
120
121
|
}
|
|
122
|
+
else if (value instanceof mixin_1.SassMixin) {
|
|
123
|
+
const mixin = new proto.Value_CompilerMixin();
|
|
124
|
+
mixin.id = value.id;
|
|
125
|
+
result.value = { case: 'compilerMixin', value: mixin };
|
|
126
|
+
}
|
|
121
127
|
else if (value instanceof calculations_1.SassCalculation) {
|
|
122
128
|
result.value = {
|
|
123
129
|
case: 'calculation',
|
|
@@ -286,6 +292,8 @@ class Protofier {
|
|
|
286
292
|
return new function_1.SassFunction(value.value.value.id);
|
|
287
293
|
case 'hostFunction':
|
|
288
294
|
throw utils.compilerError('The compiler may not send Value.host_function.');
|
|
295
|
+
case 'compilerMixin':
|
|
296
|
+
return new mixin_1.SassMixin(value.value.value.id);
|
|
289
297
|
case 'calculation':
|
|
290
298
|
return this.deprotofyCalculation(value.value.value);
|
|
291
299
|
case 'singleton':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protofier.js","sourceRoot":"","sources":["../../../lib/src/protofier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"protofier.js","sourceRoot":"","sources":["../../../lib/src/protofier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
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
|
+
const request_tracker_1 = require("./request-tracker");
|
|
7
|
+
describe('request tracker', () => {
|
|
8
|
+
let tracker;
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
tracker = new request_tracker_1.RequestTracker();
|
|
11
|
+
});
|
|
12
|
+
it('returns the next ID when empty', () => {
|
|
13
|
+
expect(tracker.nextId).toBe(0);
|
|
14
|
+
});
|
|
15
|
+
describe('tracking requests', () => {
|
|
16
|
+
it('tracks when empty', () => {
|
|
17
|
+
tracker.add(0, 'compileResponse');
|
|
18
|
+
expect(tracker.nextId).toBe(1);
|
|
19
|
+
});
|
|
20
|
+
it('tracks multiple requests', () => {
|
|
21
|
+
tracker.add(0, 'compileResponse');
|
|
22
|
+
tracker.add(1, 'compileResponse');
|
|
23
|
+
tracker.add(2, 'compileResponse');
|
|
24
|
+
expect(tracker.nextId).toBe(3);
|
|
25
|
+
});
|
|
26
|
+
it('tracks starting from a non-zero ID', () => {
|
|
27
|
+
tracker.add(1, 'compileResponse');
|
|
28
|
+
expect(tracker.nextId).toBe(0);
|
|
29
|
+
tracker.add(0, 'compileResponse');
|
|
30
|
+
expect(tracker.nextId).toBe(2);
|
|
31
|
+
});
|
|
32
|
+
it('errors if the request ID is invalid', () => {
|
|
33
|
+
expect(() => tracker.add(-1, 'compileResponse')).toThrowError('Invalid request ID -1.');
|
|
34
|
+
});
|
|
35
|
+
it('errors if the request ID overlaps that of an existing in-flight request', () => {
|
|
36
|
+
tracker.add(0, 'compileResponse');
|
|
37
|
+
expect(() => tracker.add(0, 'compileResponse')).toThrowError('Request ID 0 is already in use by an in-flight request.');
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
describe('resolving requests', () => {
|
|
41
|
+
it('resolves a single request', () => {
|
|
42
|
+
tracker.add(0, 'compileResponse');
|
|
43
|
+
tracker.resolve(0, 'compileResponse');
|
|
44
|
+
expect(tracker.nextId).toBe(0);
|
|
45
|
+
});
|
|
46
|
+
it('resolves multiple requests', () => {
|
|
47
|
+
tracker.add(0, 'compileResponse');
|
|
48
|
+
tracker.add(1, 'compileResponse');
|
|
49
|
+
tracker.add(2, 'compileResponse');
|
|
50
|
+
tracker.resolve(1, 'compileResponse');
|
|
51
|
+
tracker.resolve(2, 'compileResponse');
|
|
52
|
+
tracker.resolve(0, 'compileResponse');
|
|
53
|
+
expect(tracker.nextId).toBe(0);
|
|
54
|
+
});
|
|
55
|
+
it('reuses the ID of a resolved request', () => {
|
|
56
|
+
tracker.add(0, 'compileResponse');
|
|
57
|
+
tracker.add(1, 'compileResponse');
|
|
58
|
+
tracker.resolve(0, 'compileResponse');
|
|
59
|
+
expect(tracker.nextId).toBe(0);
|
|
60
|
+
});
|
|
61
|
+
it('errors if the response ID does not match any existing request IDs', () => {
|
|
62
|
+
expect(() => tracker.resolve(0, 'compileResponse')).toThrowError('Response ID 0 does not match any pending requests.');
|
|
63
|
+
});
|
|
64
|
+
it('errors if the response type does not match what the request is expecting', () => {
|
|
65
|
+
tracker.add(0, 'importResponse');
|
|
66
|
+
expect(() => tracker.resolve(0, 'fileImportResponse')).toThrowError("Response with ID 0 does not match pending request's type. Expected " +
|
|
67
|
+
'importResponse but received fileImportResponse.');
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=request-tracker.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-tracker.test.js","sourceRoot":"","sources":["../../../lib/src/request-tracker.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/src/sync-process/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/src/sync-process/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const fs = require("fs");
|
|
7
|
+
const p = require("path");
|
|
8
|
+
const del = require("del");
|
|
9
|
+
const index_1 = require("./index");
|
|
10
|
+
describe('SyncProcess', () => {
|
|
11
|
+
describe('stdio', () => {
|
|
12
|
+
it('emits stdout', () => {
|
|
13
|
+
withJSProcess('console.log("hello, world!");', node => {
|
|
14
|
+
expectStdout(node.yield(), 'hello, world!\n');
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
it('emits stderr', () => {
|
|
18
|
+
withJSProcess('console.error("hello, world!");', node => {
|
|
19
|
+
expectStderr(node.yield(), 'hello, world!\n');
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
it('receives stdin', () => {
|
|
23
|
+
withJSProcess('process.stdin.on("data", (data) => process.stdout.write(data));', node => {
|
|
24
|
+
node.stdin.write('hi there!\n');
|
|
25
|
+
expectStdout(node.yield(), 'hi there!\n');
|
|
26
|
+
node.stdin.write('fblthp\n');
|
|
27
|
+
expectStdout(node.yield(), 'fblthp\n');
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
it('closes stdin', () => {
|
|
31
|
+
withJSProcess(`
|
|
32
|
+
process.stdin.on("data", () => {});
|
|
33
|
+
process.stdin.on("end", () => console.log("closed!"));
|
|
34
|
+
`, node => {
|
|
35
|
+
node.stdin.end();
|
|
36
|
+
expectStdout(node.yield(), 'closed!\n');
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
describe('emits exit', () => {
|
|
41
|
+
it('with code 0 by default', () => {
|
|
42
|
+
withJSProcess('', node => {
|
|
43
|
+
expectExit(node.yield(), 0);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
it('with a non-0 code', () => {
|
|
47
|
+
withJSProcess('process.exit(123);', node => {
|
|
48
|
+
expectExit(node.yield(), 123);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
it('with a signal code', () => {
|
|
52
|
+
withJSProcess('for (;;) {}', node => {
|
|
53
|
+
node.kill('SIGINT');
|
|
54
|
+
expectExit(node.yield(), 'SIGINT');
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
it('passes options to the subprocess', () => {
|
|
59
|
+
withJSFile('console.log(process.env.SYNC_PROCESS_TEST);', file => {
|
|
60
|
+
const node = new index_1.SyncProcess(process.argv0, [file], {
|
|
61
|
+
env: { ...process.env, SYNC_PROCESS_TEST: 'abcdef' },
|
|
62
|
+
});
|
|
63
|
+
expectStdout(node.yield(), 'abcdef\n');
|
|
64
|
+
node.kill();
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
/** Asserts that `event` is a `StdoutEvent` with text `text`. */
|
|
69
|
+
function expectStdout(event, text) {
|
|
70
|
+
if (event.type === 'stderr') {
|
|
71
|
+
throw `Expected stdout event, was stderr event: ${event.data.toString()}`;
|
|
72
|
+
}
|
|
73
|
+
expect(event.type).toEqual('stdout');
|
|
74
|
+
expect(event.data.toString()).toEqual(text);
|
|
75
|
+
}
|
|
76
|
+
/** Asserts that `event` is a `StderrEvent` with text `text`. */
|
|
77
|
+
function expectStderr(event, text) {
|
|
78
|
+
if (event.type === 'stdout') {
|
|
79
|
+
throw `Expected stderr event, was stdout event: ${event.data.toString()}`;
|
|
80
|
+
}
|
|
81
|
+
expect(event.type).toEqual('stderr');
|
|
82
|
+
expect(event.data.toString()).toEqual(text);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Asserts that `event` is an `ExitEvent` with either the given exit code (if
|
|
86
|
+
* `codeOrSignal` is a number) or signal (if `codeOrSignal` is a string).
|
|
87
|
+
*/
|
|
88
|
+
function expectExit(event, codeOrSignal) {
|
|
89
|
+
if (event.type !== 'exit') {
|
|
90
|
+
throw (`Expected exit event, was ${event.type} event: ` + event.data.toString());
|
|
91
|
+
}
|
|
92
|
+
expect(event).toEqual(typeof codeOrSignal === 'number'
|
|
93
|
+
? { type: 'exit', code: codeOrSignal }
|
|
94
|
+
: { type: 'exit', signal: codeOrSignal });
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Starts a `SyncProcess` running a JS file with the given `contents` and passes
|
|
98
|
+
* it to `callback`.
|
|
99
|
+
*/
|
|
100
|
+
function withJSProcess(contents, callback) {
|
|
101
|
+
return withJSFile(contents, file => {
|
|
102
|
+
const node = new index_1.SyncProcess(process.argv0, [file]);
|
|
103
|
+
try {
|
|
104
|
+
callback(node);
|
|
105
|
+
}
|
|
106
|
+
finally {
|
|
107
|
+
node.kill();
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Creates a JS file with the given `contents` for the duration of `callback`.
|
|
113
|
+
*
|
|
114
|
+
* The `callback` is passed the name of the created file.
|
|
115
|
+
*/
|
|
116
|
+
function withJSFile(contents, callback) {
|
|
117
|
+
const testDir = p.join('spec', 'sandbox', `${Math.random()}`.slice(2));
|
|
118
|
+
fs.mkdirSync(testDir, { recursive: true });
|
|
119
|
+
const file = p.join(testDir, 'script.js');
|
|
120
|
+
fs.writeFileSync(file, contents);
|
|
121
|
+
try {
|
|
122
|
+
callback(file);
|
|
123
|
+
}
|
|
124
|
+
finally {
|
|
125
|
+
// TODO(awjin): Change this to rmSync once we drop support for Node 12.
|
|
126
|
+
del.sync(testDir, { force: true });
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../lib/src/sync-process/index.test.ts"],"names":[],"mappings":"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"}
|