sass-embedded 1.69.1 → 1.69.4

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/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "sass-embedded",
3
- "version": "1.69.1",
3
+ "version": "1.69.4",
4
4
  "protocol-version": "2.3.0",
5
- "compiler-version": "1.69.1",
5
+ "compiler-version": "1.69.4",
6
6
  "description": "Node.js library that communicates with Embedded Dart Sass using the Embedded Sass protocol",
7
7
  "repository": "sass/embedded-host-node",
8
8
  "author": "Google Inc.",
9
9
  "license": "MIT",
10
10
  "exports": {
11
11
  "import": {
12
- "types": "./dist/lib/index.m.d.ts",
12
+ "types": "./dist/types/index.m.d.ts",
13
13
  "default": "./dist/lib/index.mjs"
14
14
  },
15
- "types": "./dist/lib/index.d.ts",
15
+ "types": "./dist/types/index.d.ts",
16
16
  "default": "./dist/lib/index.js"
17
17
  },
18
18
  "main": "dist/lib/index.js",
@@ -35,14 +35,14 @@
35
35
  "test": "jest"
36
36
  },
37
37
  "optionalDependencies": {
38
- "sass-embedded-darwin-arm64": "1.69.1",
39
- "sass-embedded-darwin-x64": "1.69.1",
40
- "sass-embedded-linux-arm": "1.69.1",
41
- "sass-embedded-linux-arm64": "1.69.1",
42
- "sass-embedded-linux-ia32": "1.69.1",
43
- "sass-embedded-linux-x64": "1.69.1",
44
- "sass-embedded-win32-ia32": "1.69.1",
45
- "sass-embedded-win32-x64": "1.69.1"
38
+ "sass-embedded-darwin-arm64": "1.69.4",
39
+ "sass-embedded-darwin-x64": "1.69.4",
40
+ "sass-embedded-linux-arm": "1.69.4",
41
+ "sass-embedded-linux-arm64": "1.69.4",
42
+ "sass-embedded-linux-ia32": "1.69.4",
43
+ "sass-embedded-linux-x64": "1.69.4",
44
+ "sass-embedded-win32-ia32": "1.69.4",
45
+ "sass-embedded-win32-x64": "1.69.4"
46
46
  },
47
47
  "dependencies": {
48
48
  "@bufbuild/protobuf": "^1.0.0",
@@ -12,10 +12,11 @@ void (async () => {
12
12
  await sanityCheckBeforeRelease();
13
13
  await (0, get_language_repo_1.getLanguageRepo)('lib/src/vendor');
14
14
  console.log('Transpiling TS into dist.');
15
- shell.exec('tsc');
15
+ shell.exec('tsc -p tsconfig.build.json');
16
16
  shell.cp('lib/index.mjs', 'dist/lib/index.mjs');
17
17
  console.log('Copying JS API types to dist.');
18
18
  shell.cp('-R', 'lib/src/vendor/sass', 'dist/types');
19
+ shell.cp('dist/types/index.d.ts', 'dist/types/index.m.d.ts');
19
20
  await fs_1.promises.unlink('dist/types/README.md');
20
21
  console.log('Ready for publishing to npm.');
21
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prepare-release.js","sourceRoot":"","sources":["../../tool/prepare-release.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;AAEvC,2BAAkC;AAClC,iCAAiC;AAEjC,uCAAuC;AACvC,2DAAoD;AAEpD,KAAK,CAAC,KAAK,IAAI,EAAE;IACf,IAAI;QACF,MAAM,wBAAwB,EAAE,CAAC;QAEjC,MAAM,IAAA,mCAAe,EAAC,gBAAgB,CAAC,CAAC;QAExC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,EAAE,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;QAEhD,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,EAAE,YAAY,CAAC,CAAC;QACpD,MAAM,aAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAExC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;KAC7C;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;KACtB;AACH,CAAC,CAAC,EAAE,CAAC;AAEL,8EAA8E;AAC9E,yBAAyB;AACzB,KAAK,UAAU,wBAAwB;IACrC,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;IAEnC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACtC,IAAI,GAAG,KAAK,aAAa,cAAc,EAAE,EAAE;QACzC,MAAM,KAAK,CACT,cAAc,GAAG,+CAA+C,cAAc,GAAG,CAClF,CAAC;KACH;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;QACrE,IAAI,OAAO,KAAK,cAAc,EAAE;YAC9B,MAAM,KAAK,CACT,uBAAuB,GAAG,4BAA4B,cAAc,GAAG,CACxE,CAAC;SACH;KACF;IAED,IAAI,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QACtC,MAAM,KAAK,CAAC,GAAG,cAAc,oBAAoB,CAAC,CAAC;KACpD;IAED,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,OAAO,cAAc,GAAG,EAAE,GAAG,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC5D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;QACnC,MAAM,KAAK,CAAC,kCAAkC,cAAc,GAAG,CAAC,CAAC;KAClE;AACH,CAAC"}
1
+ {"version":3,"file":"prepare-release.js","sourceRoot":"","sources":["../../tool/prepare-release.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;AAEvC,2BAAkC;AAClC,iCAAiC;AAEjC,uCAAuC;AACvC,2DAAoD;AAEpD,KAAK,CAAC,KAAK,IAAI,EAAE;IACf,IAAI;QACF,MAAM,wBAAwB,EAAE,CAAC;QAEjC,MAAM,IAAA,mCAAe,EAAC,gBAAgB,CAAC,CAAC;QAExC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACzC,KAAK,CAAC,EAAE,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;QAEhD,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,EAAE,YAAY,CAAC,CAAC;QACpD,KAAK,CAAC,EAAE,CAAC,uBAAuB,EAAE,yBAAyB,CAAC,CAAC;QAC7D,MAAM,aAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAExC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;KAC7C;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;KACtB;AACH,CAAC,CAAC,EAAE,CAAC;AAEL,8EAA8E;AAC9E,yBAAyB;AACzB,KAAK,UAAU,wBAAwB;IACrC,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;IAEnC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACtC,IAAI,GAAG,KAAK,aAAa,cAAc,EAAE,EAAE;QACzC,MAAM,KAAK,CACT,cAAc,GAAG,+CAA+C,cAAc,GAAG,CAClF,CAAC;KACH;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;QACrE,IAAI,OAAO,KAAK,cAAc,EAAE;YAC9B,MAAM,KAAK,CACT,uBAAuB,GAAG,4BAA4B,cAAc,GAAG,CACxE,CAAC;SACH;KACF;IAED,IAAI,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QACtC,MAAM,KAAK,CAAC,GAAG,cAAc,oBAAoB,CAAC,CAAC;KACpD;IAED,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,OAAO,cAAc,GAAG,EAAE,GAAG,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC5D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;QACnC,MAAM,KAAK,CAAC,kCAAkC,cAAc,GAAG,CAAC,CAAC;KAClE;AACH,CAAC"}
@@ -44,6 +44,11 @@ export interface CompileResult {
44
44
  *
45
45
  * This only allows synchronous {@link Importer}s and {@link CustomFunction}s.
46
46
  *
47
+ * **Heads up!** When using the `sass-embedded` npm package,
48
+ * **{@link compileAsync} is almost always faster than {@link compile}**, due to
49
+ * the overhead of emulating synchronous messaging with worker threads and
50
+ * concurrent compilations being blocked on main thread.
51
+ *
47
52
  * @example
48
53
  *
49
54
  * ```js
@@ -66,9 +71,9 @@ export function compile(path: string, options?: Options<'sync'>): CompileResult;
66
71
  * This only allows synchronous or asynchronous {@link Importer}s and
67
72
  * {@link CustomFunction}s.
68
73
  *
69
- * **Heads up!** When using Dart Sass, **{@link compile} is almost twice as fast
70
- * as {@link compileAsync}**, due to the overhead of making the entire
71
- * evaluation process asynchronous.
74
+ * **Heads up!** When using the `sass` npm package, **{@link compile} is almost
75
+ * twice as fast as {@link compileAsync}**, due to the overhead of making the
76
+ * entire evaluation process asynchronous.
72
77
  *
73
78
  * @example
74
79
  *
@@ -94,6 +99,12 @@ export function compileAsync(
94
99
  *
95
100
  * This only allows synchronous {@link Importer}s and {@link CustomFunction}s.
96
101
  *
102
+ * **Heads up!** When using the `sass-embedded` npm package,
103
+ * **{@link compileStringAsync} is almost always faster than
104
+ * {@link compileString}**, due to the overhead of emulating synchronous
105
+ * messaging with worker threads and concurrent compilations being blocked on
106
+ * main thread.
107
+ *
97
108
  * @example
98
109
  *
99
110
  * ```js
@@ -125,9 +136,9 @@ export function compileString(
125
136
  * This only allows synchronous or asynchronous {@link Importer}s and {@link
126
137
  * CustomFunction}s.
127
138
  *
128
- * **Heads up!** When using Dart Sass, **{@link compile} is almost twice as fast
129
- * as {@link compileAsync}**, due to the overhead of making the entire
130
- * evaluation process asynchronous.
139
+ * **Heads up!** When using the `sass` npm package, **{@link compileString} is
140
+ * almost twice as fast as {@link compileStringAsync}**, due to the overhead
141
+ * of making the entire evaluation process asynchronous.
131
142
  *
132
143
  * @example
133
144
  *
@@ -0,0 +1,91 @@
1
+ // This is a mirror of the JS API definitions in `spec/js-api`, but with comments
2
+ // written to provide user-facing documentation rather than to specify behavior for
3
+ // implementations.
4
+
5
+ export {
6
+ CompileResult,
7
+ compile,
8
+ compileAsync,
9
+ compileString,
10
+ compileStringAsync,
11
+ } from './compile';
12
+ export {Exception} from './exception';
13
+ export {
14
+ CanonicalizeContext,
15
+ FileImporter,
16
+ Importer,
17
+ ImporterResult,
18
+ } from './importer';
19
+ export {Logger, SourceSpan, SourceLocation} from './logger';
20
+ export {
21
+ CustomFunction,
22
+ Options,
23
+ OutputStyle,
24
+ StringOptions,
25
+ StringOptionsWithImporter,
26
+ StringOptionsWithoutImporter,
27
+ Syntax,
28
+ } from './options';
29
+ export {PromiseOr} from './util/promise_or';
30
+ export {
31
+ CalculationInterpolation,
32
+ CalculationOperation,
33
+ CalculationOperator,
34
+ CalculationValue,
35
+ ListSeparator,
36
+ SassArgumentList,
37
+ SassBoolean,
38
+ SassCalculation,
39
+ SassColor,
40
+ SassFunction,
41
+ SassList,
42
+ SassMap,
43
+ SassMixin,
44
+ SassNumber,
45
+ SassString,
46
+ Value,
47
+ sassFalse,
48
+ sassNull,
49
+ sassTrue,
50
+ } from './value';
51
+
52
+ // Legacy APIs
53
+ export {LegacyException} from './legacy/exception';
54
+ export {
55
+ FALSE,
56
+ LegacyAsyncFunction,
57
+ LegacyAsyncFunctionDone,
58
+ LegacyFunction,
59
+ LegacySyncFunction,
60
+ LegacyValue,
61
+ NULL,
62
+ TRUE,
63
+ types,
64
+ } from './legacy/function';
65
+ export {
66
+ LegacyAsyncImporter,
67
+ LegacyImporter,
68
+ LegacyImporterResult,
69
+ LegacyImporterThis,
70
+ LegacySyncImporter,
71
+ } from './legacy/importer';
72
+ export {
73
+ LegacySharedOptions,
74
+ LegacyFileOptions,
75
+ LegacyStringOptions,
76
+ LegacyOptions,
77
+ } from './legacy/options';
78
+ export {LegacyPluginThis} from './legacy/plugin_this';
79
+ export {LegacyResult, render, renderSync} from './legacy/render';
80
+
81
+ /**
82
+ * Information about the Sass implementation. This always begins with a unique
83
+ * identifier for the Sass implementation, followed by U+0009 TAB, followed by
84
+ * its npm package version. Some implementations include additional information
85
+ * as well, but not in any standardized format.
86
+ *
87
+ * * For Dart Sass, the implementation name is `dart-sass`.
88
+ * * For Node Sass, the implementation name is `node-sass`.
89
+ * * For the embedded host, the implementation name is `sass-embedded`.
90
+ */
91
+ export const info: string;
@@ -96,6 +96,11 @@ export interface LegacyResult {
96
96
  * This function synchronously compiles a Sass file to CSS. If it succeeds, it
97
97
  * returns the result, and if it fails it throws an error.
98
98
  *
99
+ * **Heads up!** When using the `sass-embedded` npm package, **{@link render}
100
+ * is almost always faster than {@link renderSync}**, due to the overhead of
101
+ * emulating synchronous messaging with worker threads and concurrent
102
+ * compilations being blocked on main thread.
103
+ *
99
104
  * @example
100
105
  *
101
106
  * ```js
@@ -116,9 +121,9 @@ export function renderSync(options: LegacyOptions<'sync'>): LegacyResult;
116
121
  * `callback` with a {@link LegacyResult} if compilation succeeds or {@link
117
122
  * LegacyException} if it fails.
118
123
  *
119
- * **Heads up!** When using Dart Sass, **{@link renderSync} is almost twice as
120
- * fast as {@link render}** by default, due to the overhead of making the entire
121
- * evaluation process asynchronous.
124
+ * **Heads up!** When using the `sass` npm package, **{@link renderSync} is
125
+ * almost twice as fast as {@link render}** by default, due to the overhead of
126
+ * making the entire evaluation process asynchronous.
122
127
  *
123
128
  * ```js
124
129
  * const sass = require('sass'); // or require('node-sass');
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "sass-embedded",
3
- "version": "1.69.1",
3
+ "version": "1.69.4",
4
4
  "protocol-version": "2.3.0",
5
- "compiler-version": "1.69.1",
5
+ "compiler-version": "1.69.4",
6
6
  "description": "Node.js library that communicates with Embedded Dart Sass using the Embedded Sass protocol",
7
7
  "repository": "sass/embedded-host-node",
8
8
  "author": "Google Inc.",
9
9
  "license": "MIT",
10
10
  "exports": {
11
11
  "import": {
12
- "types": "./dist/lib/index.m.d.ts",
12
+ "types": "./dist/types/index.m.d.ts",
13
13
  "default": "./dist/lib/index.mjs"
14
14
  },
15
- "types": "./dist/lib/index.d.ts",
15
+ "types": "./dist/types/index.d.ts",
16
16
  "default": "./dist/lib/index.js"
17
17
  },
18
18
  "main": "dist/lib/index.js",
@@ -35,14 +35,14 @@
35
35
  "test": "jest"
36
36
  },
37
37
  "optionalDependencies": {
38
- "sass-embedded-darwin-arm64": "1.69.1",
39
- "sass-embedded-darwin-x64": "1.69.1",
40
- "sass-embedded-linux-arm": "1.69.1",
41
- "sass-embedded-linux-arm64": "1.69.1",
42
- "sass-embedded-linux-ia32": "1.69.1",
43
- "sass-embedded-linux-x64": "1.69.1",
44
- "sass-embedded-win32-ia32": "1.69.1",
45
- "sass-embedded-win32-x64": "1.69.1"
38
+ "sass-embedded-darwin-arm64": "1.69.4",
39
+ "sass-embedded-darwin-x64": "1.69.4",
40
+ "sass-embedded-linux-arm": "1.69.4",
41
+ "sass-embedded-linux-arm64": "1.69.4",
42
+ "sass-embedded-linux-ia32": "1.69.4",
43
+ "sass-embedded-linux-x64": "1.69.4",
44
+ "sass-embedded-win32-ia32": "1.69.4",
45
+ "sass-embedded-win32-x64": "1.69.4"
46
46
  },
47
47
  "dependencies": {
48
48
  "@bufbuild/protobuf": "^1.0.0",
@@ -1,81 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-transformer.test.js","sourceRoot":"","sources":["../../../lib/src/message-transformer.test.ts"],"names":[],"mappings":"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"}
@@ -1,124 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"packet-transformer.test.js","sourceRoot":"","sources":["../../../lib/src/packet-transformer.test.ts"],"names":[],"mappings":"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"}
@@ -1,71 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"request-tracker.test.js","sourceRoot":"","sources":["../../../lib/src/request-tracker.test.ts"],"names":[],"mappings":"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"}
@@ -1,129 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../lib/src/sync-process/index.test.ts"],"names":[],"mappings":"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"}
@@ -1,125 +0,0 @@
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 worker_threads_1 = require("worker_threads");
9
- const sync_message_port_1 = require("./sync-message-port");
10
- describe('SyncMessagePort', () => {
11
- describe('sends a message', () => {
12
- it('before the other endpoint calls receiveMessage()', () => {
13
- const channel = sync_message_port_1.SyncMessagePort.createChannel();
14
- const port1 = new sync_message_port_1.SyncMessagePort(channel.port1);
15
- port1.postMessage('hi there!');
16
- const port2 = new sync_message_port_1.SyncMessagePort(channel.port2);
17
- expect(port2.receiveMessage()).toEqual('hi there!');
18
- });
19
- it('after the other endpoint calls receiveMessage()', () => {
20
- const channel = sync_message_port_1.SyncMessagePort.createChannel();
21
- const port = new sync_message_port_1.SyncMessagePort(channel.port1);
22
- spawnWorker(`
23
- // Wait a little bit just to make entirely sure that the parent thread
24
- // is awaiting a message.
25
- setTimeout(() => {
26
- port.postMessage('done!');
27
- port.close();
28
- }, 100);
29
- `, channel.port2);
30
- expect(port.receiveMessage()).toEqual('done!');
31
- });
32
- it('multiple times before the other endpoint starts reading', () => {
33
- const channel = sync_message_port_1.SyncMessagePort.createChannel();
34
- const port1 = new sync_message_port_1.SyncMessagePort(channel.port1);
35
- port1.postMessage('message1');
36
- port1.postMessage('message2');
37
- port1.postMessage('message3');
38
- port1.postMessage('message4');
39
- const port2 = new sync_message_port_1.SyncMessagePort(channel.port2);
40
- expect(port2.receiveMessage()).toEqual('message1');
41
- expect(port2.receiveMessage()).toEqual('message2');
42
- expect(port2.receiveMessage()).toEqual('message3');
43
- expect(port2.receiveMessage()).toEqual('message4');
44
- });
45
- });
46
- describe('with an asynchronous listener', () => {
47
- it('receives a message sent before listening', async () => {
48
- const channel = sync_message_port_1.SyncMessagePort.createChannel();
49
- const port1 = new sync_message_port_1.SyncMessagePort(channel.port1);
50
- port1.postMessage('hi there!');
51
- const port2 = new sync_message_port_1.SyncMessagePort(channel.port2);
52
- // Wait a macrotask to make sure the message is as queued up as it's going
53
- // to be.
54
- await new Promise(process.nextTick);
55
- const promise = new Promise(resolve => port2.once('message', resolve));
56
- await expect(promise).resolves.toEqual('hi there!');
57
- port1.close();
58
- });
59
- it('receives a message sent after listening', async () => {
60
- const channel = sync_message_port_1.SyncMessagePort.createChannel();
61
- const port1 = new sync_message_port_1.SyncMessagePort(channel.port1);
62
- const promise = new Promise(resolve => port1.once('message', resolve));
63
- // Wait a macrotask to make sure the message is as queued up as it's going
64
- // to be.
65
- await new Promise(process.nextTick);
66
- const port2 = new sync_message_port_1.SyncMessagePort(channel.port2);
67
- port2.postMessage('hi there!');
68
- await expect(promise).resolves.toEqual('hi there!');
69
- port1.close();
70
- });
71
- it('receiveMessage() throws an error after listening', async () => {
72
- const channel = sync_message_port_1.SyncMessagePort.createChannel();
73
- const port1 = new sync_message_port_1.SyncMessagePort(channel.port1);
74
- port1.on('message', () => { });
75
- expect(port1.receiveMessage).toThrow();
76
- port1.close();
77
- });
78
- });
79
- describe('close()', () => {
80
- it('closing one port closes the other', async () => {
81
- const channel = sync_message_port_1.SyncMessagePort.createChannel();
82
- const port1 = new sync_message_port_1.SyncMessagePort(channel.port1);
83
- const port2 = new sync_message_port_1.SyncMessagePort(channel.port2);
84
- port1.close();
85
- // Should resolve.
86
- await new Promise(resolve => port2.once('close', resolve));
87
- });
88
- it('receiveMessage() throws an error for a closed port', () => {
89
- const channel = sync_message_port_1.SyncMessagePort.createChannel();
90
- const port1 = new sync_message_port_1.SyncMessagePort(channel.port1);
91
- const port2 = new sync_message_port_1.SyncMessagePort(channel.port2);
92
- port1.close();
93
- expect(port1.receiveMessage).toThrow();
94
- expect(port2.receiveMessage).toThrow();
95
- });
96
- });
97
- });
98
- /**
99
- * Spawns a worker that executes the given TypeScript `source`.
100
- *
101
- * Automatically initializes a `SyncMessageChannel` named `port` connected to
102
- * `port`.
103
- */
104
- function spawnWorker(source, port) {
105
- fs.mkdirSync('spec/sandbox', { recursive: true });
106
- const file = p.join('spec/sandbox', `${Math.random()}.ts`.slice(2));
107
- fs.writeFileSync(file, `
108
- const {SyncMessagePort} = require(${JSON.stringify(p.join(p.dirname(__filename), 'sync-message-port'))});
109
- const {workerData} = require('worker_threads');
110
-
111
- const port = new SyncMessagePort(workerData);
112
-
113
- ${source}
114
- `);
115
- const worker = new worker_threads_1.Worker(`
116
- require('ts-node').register();
117
- require(${JSON.stringify(p.resolve(file.substring(0, file.length - 3)))});
118
- `, { eval: true, workerData: port, transferList: [port] });
119
- worker.on('error', error => {
120
- throw error;
121
- });
122
- worker.on('exit', () => fs.unlinkSync(file));
123
- return worker;
124
- }
125
- //# sourceMappingURL=sync-message-port.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync-message-port.test.js","sourceRoot":"","sources":["../../../../lib/src/sync-process/sync-message-port.test.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const url_1 = require("url");
4
- const utils_1 = require("./utils");
5
- describe('utils', () => {
6
- describe('pathToUrlString', () => {
7
- it('encode relative path like `pathToFileURL`', () => {
8
- const baseURL = (0, url_1.pathToFileURL)('').toString();
9
- for (let i = 0; i < 128; i++) {
10
- const char = String.fromCharCode(i);
11
- const filename = `${i}-${char}`;
12
- expect((0, utils_1.pathToUrlString)(filename)).toEqual((0, url_1.pathToFileURL)(filename)
13
- .toString()
14
- .slice(baseURL.length + 1));
15
- }
16
- });
17
- it('encode percent encoded string like `pathToFileURL`', () => {
18
- const baseURL = (0, url_1.pathToFileURL)('').toString();
19
- for (let i = 0; i < 128; i++) {
20
- const lowercase = `%${i < 10 ? '0' : ''}${i.toString(16)}`;
21
- expect((0, utils_1.pathToUrlString)(lowercase)).toEqual((0, url_1.pathToFileURL)(lowercase)
22
- .toString()
23
- .slice(baseURL.length + 1));
24
- const uppercase = lowercase.toUpperCase();
25
- expect((0, utils_1.pathToUrlString)(uppercase)).toEqual((0, url_1.pathToFileURL)(uppercase)
26
- .toString()
27
- .slice(baseURL.length + 1));
28
- }
29
- });
30
- });
31
- });
32
- //# sourceMappingURL=utils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../lib/src/utils.test.ts"],"names":[],"mappings":";;AAAA,6BAAkC;AAClC,mCAAwC;AAExC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,OAAO,GAAG,IAAA,mBAAa,EAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAA,uBAAe,EAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CACvC,IAAA,mBAAa,EAAC,QAAQ,CAAC;qBACpB,QAAQ,EAAE;qBACV,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAC7B,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,OAAO,GAAG,IAAA,mBAAa,EAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC3D,MAAM,CAAC,IAAA,uBAAe,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CACxC,IAAA,mBAAa,EAAC,SAAS,CAAC;qBACrB,QAAQ,EAAE;qBACV,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAC7B,CAAC;gBACF,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC1C,MAAM,CAAC,IAAA,uBAAe,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CACxC,IAAA,mBAAa,EAAC,SAAS,CAAC;qBACrB,QAAQ,EAAE;qBACV,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAC7B,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- // Copyright 2022 Google LLC. Use of this source code is governed by an
3
- // MIT-style license that can be found in the LICENSE file or at
4
- // https://opensource.org/licenses/MIT.
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const fs = require("fs");
7
- const p = require("path");
8
- const pkg = require("../package.json");
9
- // These tests assert that our declared dependency on the embedded protocol is
10
- // either a -dev version or the same version we're testing against.
11
- it('declares a compatible dependency on the embedded protocol', () => {
12
- if (pkg['protocol-version'].endsWith('-dev'))
13
- return;
14
- expect(fs
15
- .readFileSync(p.join(__dirname, '../build/sass/spec/EMBEDDED_PROTOCOL_VERSION'), 'utf-8')
16
- .trim()).toBe(pkg['protocol-version']);
17
- });
18
- //# sourceMappingURL=dependencies.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependencies.test.js","sourceRoot":"","sources":["../../test/dependencies.test.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;AAEvC,yBAAyB;AACzB,0BAA0B;AAE1B,uCAAuC;AAEvC,8EAA8E;AAC9E,mEAAmE;AAEnE,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;IACnE,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO;IAErD,MAAM,CACJ,EAAE;SACC,YAAY,CACX,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,8CAA8C,CAAC,EACjE,OAAO,CACR;SACA,IAAI,EAAE,CACV,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC"}