@parcel/utils 2.0.0-nightly.137 → 2.0.0-nightly.1373

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/.eslintrc.js +6 -6
  2. package/lib/index.js +37566 -307
  3. package/lib/index.js.map +1 -0
  4. package/package.json +45 -20
  5. package/src/BitSet.js +126 -0
  6. package/src/DefaultMap.js +1 -1
  7. package/src/PromiseQueue.js +16 -12
  8. package/src/alternatives.js +145 -0
  9. package/src/ansi-html.js +2 -2
  10. package/src/blob.js +2 -1
  11. package/src/bundle-url.js +1 -1
  12. package/src/collection.js +35 -15
  13. package/src/config.js +132 -45
  14. package/src/countLines.js +5 -2
  15. package/src/debounce.js +1 -1
  16. package/src/dependency-location.js +11 -6
  17. package/src/generateBuildMetrics.js +158 -0
  18. package/src/generateCertificate.js +1 -1
  19. package/src/getCertificate.js +1 -1
  20. package/src/getExisting.js +1 -4
  21. package/src/getModuleParts.js +23 -0
  22. package/src/getRootDir.js +1 -2
  23. package/src/glob.js +51 -10
  24. package/src/hash.js +49 -0
  25. package/src/http-server.js +29 -19
  26. package/src/index.js +69 -21
  27. package/src/is-url.js +1 -1
  28. package/src/isDirectoryInside.js +11 -0
  29. package/src/openInBrowser.js +64 -0
  30. package/src/path.js +38 -6
  31. package/src/prettyDiagnostic.js +74 -24
  32. package/src/progress-message.js +22 -0
  33. package/src/relativeBundlePath.js +8 -13
  34. package/src/replaceBundleReferences.js +85 -41
  35. package/src/schema.js +100 -44
  36. package/src/shared-buffer.js +23 -0
  37. package/src/sourcemap.js +138 -0
  38. package/src/stream.js +31 -1
  39. package/src/urlJoin.js +3 -1
  40. package/test/BitSet.test.js +119 -0
  41. package/test/DefaultMap.test.js +7 -4
  42. package/test/collection.test.js +13 -1
  43. package/test/config.test.js +98 -0
  44. package/test/input/config/.testrc +3 -0
  45. package/test/input/config/config.cjs +3 -0
  46. package/test/input/config/config.js +3 -0
  47. package/test/input/config/config.json +3 -0
  48. package/test/input/config/empty.json +0 -0
  49. package/test/input/config/empty.toml +0 -0
  50. package/test/input/sourcemap/referenced-min.js +2 -0
  51. package/test/input/sourcemap/referenced-min.js.map +6 -0
  52. package/test/input/sourcemap/source-root.js +2 -0
  53. package/test/input/sourcemap/source-root.js.map +7 -0
  54. package/test/replaceBundleReferences.test.js +268 -0
  55. package/test/sourcemap.test.js +207 -0
  56. package/test/throttle.test.js +1 -2
  57. package/test/urlJoin.test.js +37 -0
  58. package/lib/DefaultMap.js +0 -64
  59. package/lib/Deferred.js +0 -26
  60. package/lib/PromiseQueue.js +0 -133
  61. package/lib/TapStream.js +0 -41
  62. package/lib/ansi-html.js +0 -16
  63. package/lib/blob.js +0 -31
  64. package/lib/bundle-url.js +0 -43
  65. package/lib/collection.js +0 -62
  66. package/lib/config.js +0 -88
  67. package/lib/countLines.js +0 -18
  68. package/lib/debounce.js +0 -20
  69. package/lib/dependency-location.js +0 -21
  70. package/lib/escape-html.js +0 -24
  71. package/lib/generateBundleReport.js +0 -38
  72. package/lib/generateCertificate.js +0 -124
  73. package/lib/getCertificate.js +0 -19
  74. package/lib/getExisting.js +0 -23
  75. package/lib/getRootDir.js +0 -55
  76. package/lib/glob.js +0 -76
  77. package/lib/http-server.js +0 -64
  78. package/lib/is-url.js +0 -17
  79. package/lib/loadSourceMapUrl.js +0 -33
  80. package/lib/md5.js +0 -35
  81. package/lib/objectHash.js +0 -26
  82. package/lib/parseCSSImport.js +0 -16
  83. package/lib/path.js +0 -22
  84. package/lib/prettifyTime.js +0 -10
  85. package/lib/prettyDiagnostic.js +0 -57
  86. package/lib/promisify.js +0 -13
  87. package/lib/relativeBundlePath.js +0 -24
  88. package/lib/relativeUrl.js +0 -16
  89. package/lib/replaceBundleReferences.js +0 -151
  90. package/lib/resolve.js +0 -93
  91. package/lib/schema.js +0 -320
  92. package/lib/serializeObject.js +0 -28
  93. package/lib/stream.js +0 -51
  94. package/lib/throttle.js +0 -16
  95. package/lib/urlJoin.js +0 -27
  96. package/src/.babelrc +0 -3
  97. package/src/generateBundleReport.js +0 -51
  98. package/src/loadSourceMapUrl.js +0 -33
  99. package/src/md5.js +0 -44
  100. package/src/promisify.js +0 -13
  101. package/src/resolve.js +0 -135
  102. package/src/serializeObject.js +0 -22
  103. package/test/input/sourcemap/referenced.js +0 -7
  104. package/test/loadSourceMapUrl.test.js +0 -37
@@ -0,0 +1,207 @@
1
+ import assert from 'assert';
2
+ import {
3
+ matchSourceMappingURL,
4
+ loadSourceMapUrl,
5
+ loadSourceMap,
6
+ } from '../src/sourcemap';
7
+ import {NodeFS} from '@parcel/fs';
8
+ import path from 'path';
9
+
10
+ const fs = new NodeFS();
11
+
12
+ describe('loadSourceMap', () => {
13
+ it('should not match sourceMappingURL when not at the end of the bundle', () => {
14
+ // Code example taken from livescript.js (issue #2408 in parcel-bundler)
15
+ // This snippet lead to JSAsset.js being mislead and incorrectly trying to
16
+ // load (due to false-positive match) sourcemap before fix was introduced
17
+ let code = fs.readFileSync(
18
+ path.join(__dirname, './input/sourcemap/no-sourcemap.js'),
19
+ 'utf-8',
20
+ );
21
+
22
+ assert(!matchSourceMappingURL(code));
23
+ });
24
+
25
+ it('should match referenced-min sourceMappingURL when correctly inserted at end of the bundle', () => {
26
+ let code = fs.readFileSync(
27
+ path.join(__dirname, './input/sourcemap/referenced-min.js'),
28
+ 'utf-8',
29
+ );
30
+
31
+ assert(!!matchSourceMappingURL(code));
32
+ });
33
+
34
+ it('should match inline sourceMappingURL when correctly inserted at end of the bundle', () => {
35
+ // inline source map taken from https://github.com/thlorenz/inline-source-map
36
+ let code = fs.readFileSync(
37
+ path.join(__dirname, './input/sourcemap/inline.js'),
38
+ 'utf-8',
39
+ );
40
+
41
+ assert(!!matchSourceMappingURL(code));
42
+ });
43
+
44
+ it('Should be able to load sourcemap data from a url reference', async () => {
45
+ let filename = path.join(__dirname, './input/sourcemap/referenced-min.js');
46
+ let contents = fs.readFileSync(filename, 'utf-8');
47
+
48
+ let foundMap = await loadSourceMapUrl(fs, filename, contents);
49
+ assert.equal(foundMap.url, 'file://referenced-min.js.map');
50
+ assert.equal(
51
+ foundMap.filename,
52
+ path.join(__dirname, 'input/sourcemap/referenced-min.js.map'),
53
+ );
54
+ assert.deepEqual(foundMap.map, {
55
+ version: 3,
56
+ sources: ['./referenced.js'],
57
+ names: ['hello', 'l', 'o', 'console', 'log'],
58
+ mappings:
59
+ 'AAAA,SAASA,QACP,IAAIC,EAAI,QACNC,EAAI,QACNC,QAAQC,IAAIH,EAAI,IAAMC,EAAI,KAE5BF',
60
+ });
61
+ });
62
+
63
+ it('Should be able to load sourcemap data from an inline url reference', async () => {
64
+ let filename = path.join(__dirname, './input/sourcemap/inline.js');
65
+ let contents = fs.readFileSync(filename, 'utf-8');
66
+
67
+ let foundMap = await loadSourceMapUrl(fs, filename, contents);
68
+ assert.equal(
69
+ foundMap.url,
70
+ 'data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlcyI6WyJmb28uanMiLCJiYXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O1VBQ0c7Ozs7Ozs7Ozs7Ozs7O3NCQ0RIO3NCQUNBIn0=',
71
+ );
72
+ assert.equal(foundMap.filename, filename);
73
+ assert.deepEqual(foundMap.map, {
74
+ version: 3,
75
+ file: '',
76
+ sources: ['foo.js', 'bar.js'],
77
+ names: [],
78
+ mappings: ';;;;;;;;;UACG;;;;;;;;;;;;;;sBCDH;sBACA',
79
+ });
80
+ });
81
+
82
+ it('Should be able to load a SourceMap instance from a file', async () => {
83
+ let filename = path.join(__dirname, './input/sourcemap/referenced-min.js');
84
+ let contents = fs.readFileSync(filename, 'utf-8');
85
+
86
+ let map = await loadSourceMap(filename, contents, {
87
+ fs,
88
+ projectRoot: __dirname,
89
+ });
90
+
91
+ assert(!!map);
92
+
93
+ let parsedMap = map.getMap();
94
+ assert.deepEqual(parsedMap.sources, ['input/sourcemap/referenced.js']);
95
+ assert.deepEqual(parsedMap.names, ['hello', 'l', 'o', 'console', 'log']);
96
+ assert.deepEqual(parsedMap.mappings, [
97
+ {
98
+ generated: {line: 1, column: 0},
99
+ original: {line: 1, column: 0},
100
+ source: 0,
101
+ },
102
+ {
103
+ generated: {line: 1, column: 9},
104
+ original: {line: 1, column: 9},
105
+ source: 0,
106
+ name: 0,
107
+ },
108
+ {
109
+ generated: {line: 1, column: 17},
110
+ original: {line: 2, column: 2},
111
+ source: 0,
112
+ },
113
+ {
114
+ generated: {line: 1, column: 21},
115
+ original: {line: 2, column: 6},
116
+ source: 0,
117
+ name: 1,
118
+ },
119
+ {
120
+ generated: {line: 1, column: 23},
121
+ original: {line: 2, column: 10},
122
+ source: 0,
123
+ },
124
+ {
125
+ generated: {line: 1, column: 31},
126
+ original: {line: 3, column: 4},
127
+ source: 0,
128
+ name: 2,
129
+ },
130
+ {
131
+ generated: {line: 1, column: 33},
132
+ original: {line: 3, column: 8},
133
+ source: 0,
134
+ },
135
+ {
136
+ generated: {line: 1, column: 41},
137
+ original: {line: 4, column: 2},
138
+ source: 0,
139
+ name: 3,
140
+ },
141
+ {
142
+ generated: {line: 1, column: 49},
143
+ original: {line: 4, column: 10},
144
+ source: 0,
145
+ name: 4,
146
+ },
147
+ {
148
+ generated: {line: 1, column: 53},
149
+ original: {line: 4, column: 14},
150
+ source: 0,
151
+ name: 1,
152
+ },
153
+ {
154
+ generated: {line: 1, column: 55},
155
+ original: {line: 4, column: 18},
156
+ source: 0,
157
+ },
158
+ {
159
+ generated: {line: 1, column: 59},
160
+ original: {line: 4, column: 24},
161
+ source: 0,
162
+ name: 2,
163
+ },
164
+ {
165
+ generated: {line: 1, column: 61},
166
+ original: {line: 4, column: 28},
167
+ source: 0,
168
+ },
169
+ {
170
+ generated: {line: 1, column: 66},
171
+ original: {line: 6, column: 0},
172
+ source: 0,
173
+ name: 0,
174
+ },
175
+ ]);
176
+ });
177
+
178
+ it('Should remap sources when using sourceRoot', async () => {
179
+ let filename = path.join(__dirname, './input/sourcemap/referenced-min.js');
180
+ let contents = fs.readFileSync(filename, 'utf-8');
181
+
182
+ let map = await loadSourceMap(filename, contents, {
183
+ fs,
184
+ projectRoot: __dirname,
185
+ });
186
+
187
+ assert(!!map);
188
+
189
+ let parsedMap = map.getMap();
190
+ assert.deepEqual(parsedMap.sources, ['input/sourcemap/referenced.js']);
191
+ });
192
+
193
+ it('Should remap sources when using sourceRoot', async () => {
194
+ let filename = path.join(__dirname, './input/sourcemap/source-root.js');
195
+ let contents = fs.readFileSync(filename, 'utf-8');
196
+
197
+ let map = await loadSourceMap(filename, contents, {
198
+ fs,
199
+ projectRoot: __dirname,
200
+ });
201
+
202
+ assert(!!map);
203
+
204
+ let parsedMap = map.getMap();
205
+ assert.deepEqual(parsedMap.sources, ['input/source.js']);
206
+ });
207
+ });
@@ -1,7 +1,6 @@
1
1
  // @flow strict-local
2
2
 
3
3
  import assert from 'assert';
4
- // $FlowFixMe
5
4
  import sinon from 'sinon';
6
5
  import throttle from '../src/throttle';
7
6
 
@@ -35,7 +34,7 @@ describe('throttle', () => {
35
34
 
36
35
  it('preserves the `this` when throttled functions are invoked', () => {
37
36
  let result;
38
- let throttled = throttle(function() {
37
+ let throttled = throttle(function () {
39
38
  result = this.bar;
40
39
  }, 100);
41
40
 
@@ -0,0 +1,37 @@
1
+ // @flow strict-local
2
+
3
+ import assert from 'assert';
4
+ import urlJoin from '../src/urlJoin';
5
+
6
+ describe('urlJoin', () => {
7
+ it('Should join two paths', () => {
8
+ let joinedUrl = urlJoin('/', './image.jpeg?test=test');
9
+ assert.equal(joinedUrl, '/image.jpeg?test=test');
10
+ });
11
+
12
+ it('Should join two paths with longer publicUrl', () => {
13
+ let joinedUrl = urlJoin('/static', './image.jpeg?test=test');
14
+ assert.equal(joinedUrl, '/static/image.jpeg?test=test');
15
+ });
16
+
17
+ it('Should join two paths with longer publicUrl', () => {
18
+ let joinedUrl = urlJoin('/static', 'image.jpeg?test=test');
19
+ assert.equal(joinedUrl, '/static/image.jpeg?test=test');
20
+ });
21
+
22
+ it('Should turn windows path into posix', () => {
23
+ let joinedUrl = urlJoin('/static', '.\\image.jpeg?test=test');
24
+ assert.equal(joinedUrl, '/static/image.jpeg?test=test');
25
+ });
26
+
27
+ it('should support paths with colons', () => {
28
+ let joinedUrl = urlJoin('/static', 'a:b:c.html');
29
+ assert.equal(joinedUrl, '/static/a:b:c.html');
30
+
31
+ joinedUrl = urlJoin('/static', '/a:b:c.html');
32
+ assert.equal(joinedUrl, '/static/a:b:c.html');
33
+
34
+ joinedUrl = urlJoin('/static', './a:b:c.html');
35
+ assert.equal(joinedUrl, '/static/a:b:c.html');
36
+ });
37
+ });
package/lib/DefaultMap.js DELETED
@@ -1,64 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DefaultWeakMap = exports.DefaultMap = void 0;
7
-
8
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
-
10
- class DefaultMap extends Map {
11
- constructor(getDefault, entries) {
12
- super(entries);
13
-
14
- _defineProperty(this, "_getDefault", void 0);
15
-
16
- this._getDefault = getDefault;
17
- }
18
-
19
- get(key) {
20
- let ret;
21
-
22
- if (this.has(key)) {
23
- ret = super.get(key);
24
- } else {
25
- ret = this._getDefault(key);
26
- this.set(key, ret);
27
- } // $FlowFixMe
28
-
29
-
30
- return ret;
31
- }
32
-
33
- } // Duplicated from DefaultMap implementation for Flow
34
- // Roughly mirrors https://github.com/facebook/flow/blob/2eb5a78d92c167117ba9caae070afd2b9f598599/lib/core.js#L617
35
-
36
-
37
- exports.DefaultMap = DefaultMap;
38
-
39
- class DefaultWeakMap extends WeakMap {
40
- constructor(getDefault, entries) {
41
- super(entries);
42
-
43
- _defineProperty(this, "_getDefault", void 0);
44
-
45
- this._getDefault = getDefault;
46
- }
47
-
48
- get(key) {
49
- let ret;
50
-
51
- if (this.has(key)) {
52
- ret = super.get(key);
53
- } else {
54
- ret = this._getDefault(key);
55
- this.set(key, ret);
56
- } // $FlowFixMe
57
-
58
-
59
- return ret;
60
- }
61
-
62
- }
63
-
64
- exports.DefaultWeakMap = DefaultWeakMap;
package/lib/Deferred.js DELETED
@@ -1,26 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.makeDeferredWithPromise = makeDeferredWithPromise;
7
-
8
- var _assert = _interopRequireDefault(require("assert"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- function makeDeferredWithPromise() {
13
- let deferred;
14
- let promise = new Promise((resolve, reject) => {
15
- deferred = {
16
- resolve,
17
- reject
18
- };
19
- }); // Promise constructor callback executes synchronously, so this is defined
20
-
21
- (0, _assert.default)(deferred != null);
22
- return {
23
- deferred,
24
- promise
25
- };
26
- }
@@ -1,133 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _Deferred = require("./Deferred");
9
-
10
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
-
12
- class PromiseQueue {
13
- constructor(opts = {
14
- maxConcurrent: Infinity
15
- }) {
16
- _defineProperty(this, "_deferred", void 0);
17
-
18
- _defineProperty(this, "_maxConcurrent", void 0);
19
-
20
- _defineProperty(this, "_numRunning", 0);
21
-
22
- _defineProperty(this, "_queue", []);
23
-
24
- _defineProperty(this, "_runPromise", null);
25
-
26
- _defineProperty(this, "_count", 0);
27
-
28
- _defineProperty(this, "_results", []);
29
-
30
- if (opts.maxConcurrent <= 0) {
31
- throw new TypeError('maxConcurrent must be a positive, non-zero value');
32
- }
33
-
34
- this._maxConcurrent = opts.maxConcurrent;
35
- }
36
-
37
- getNumWaiting() {
38
- return this._queue.length;
39
- }
40
-
41
- add(fn) {
42
- return new Promise((resolve, reject) => {
43
- let i = this._count++;
44
-
45
- this._queue.push(() => fn().then(result => {
46
- this._results[i] = result;
47
- resolve(result);
48
- }, err => {
49
- reject(err);
50
- throw err;
51
- }));
52
-
53
- if (this._numRunning > 0 && this._numRunning < this._maxConcurrent) {
54
- this._next();
55
- }
56
- });
57
- }
58
-
59
- run() {
60
- if (this._runPromise != null) {
61
- return this._runPromise;
62
- }
63
-
64
- if (this._queue.length === 0) {
65
- return Promise.resolve([]);
66
- }
67
-
68
- let {
69
- deferred,
70
- promise
71
- } = (0, _Deferred.makeDeferredWithPromise)();
72
- this._deferred = deferred;
73
- this._runPromise = promise;
74
-
75
- while (this._queue.length && this._numRunning < this._maxConcurrent) {
76
- this._next();
77
- }
78
-
79
- return promise;
80
- }
81
-
82
- async _next() {
83
- let fn = this._queue.shift();
84
-
85
- await this._runFn(fn);
86
-
87
- if (this._queue.length) {
88
- this._next();
89
- } else if (this._numRunning === 0) {
90
- this._resolve();
91
- }
92
- }
93
-
94
- async _runFn(fn) {
95
- this._numRunning++;
96
-
97
- try {
98
- await fn();
99
- this._numRunning--;
100
- } catch (e) {
101
- this._reject(e); // rejecting resets state so numRunning is reset to 0 here
102
-
103
- }
104
- }
105
-
106
- _resetState() {
107
- this._queue = [];
108
- this._count = 0;
109
- this._results = [];
110
- this._runPromise = null;
111
- this._numRunning = 0;
112
- this._deferred = null;
113
- }
114
-
115
- _reject(err) {
116
- if (this._deferred != null) {
117
- this._deferred.reject(err);
118
- }
119
-
120
- this._resetState();
121
- }
122
-
123
- _resolve() {
124
- if (this._deferred != null) {
125
- this._deferred.resolve(this._results);
126
- }
127
-
128
- this._resetState();
129
- }
130
-
131
- }
132
-
133
- exports.default = PromiseQueue;
package/lib/TapStream.js DELETED
@@ -1,41 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _stream = require("stream");
9
-
10
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
11
-
12
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
-
14
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
-
16
- /*
17
- * "Taps" into the contents of a flowing stream, yielding chunks to the passed
18
- * callback. Continues to pass data chunks down the stream.
19
- */
20
- class TapStream extends _stream.Transform {
21
- constructor(tap, options) {
22
- super(_objectSpread({}, options));
23
-
24
- _defineProperty(this, "_tap", void 0);
25
-
26
- this._tap = tap;
27
- }
28
-
29
- _transform(chunk, encoding, callback) {
30
- try {
31
- this._tap(Buffer.from(chunk));
32
-
33
- callback(null, chunk);
34
- } catch (err) {
35
- callback(err);
36
- }
37
- }
38
-
39
- }
40
-
41
- exports.default = TapStream;
package/lib/ansi-html.js DELETED
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ansiHtml = ansiHtml;
7
-
8
- var _ansiHtml = _interopRequireDefault(require("ansi-html"));
9
-
10
- var _escapeHtml = require("./escape-html");
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- function ansiHtml(ansi) {
15
- return (0, _ansiHtml.default)((0, _escapeHtml.escapeHTML)(ansi));
16
- }
package/lib/blob.js DELETED
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.blobToBuffer = blobToBuffer;
7
- exports.blobToString = blobToString;
8
-
9
- var _ = require("../");
10
-
11
- var _stream = require("stream");
12
-
13
- function blobToBuffer(blob) {
14
- if (blob instanceof _stream.Readable) {
15
- return (0, _.bufferStream)(blob);
16
- } else if (blob instanceof Buffer) {
17
- return Promise.resolve(Buffer.from(blob));
18
- } else {
19
- return Promise.resolve(Buffer.from(blob, 'utf8'));
20
- }
21
- }
22
-
23
- async function blobToString(blob) {
24
- if (blob instanceof _stream.Readable) {
25
- return (await (0, _.bufferStream)(blob)).toString();
26
- } else if (blob instanceof Buffer) {
27
- return blob.toString();
28
- } else {
29
- return blob;
30
- }
31
- }
package/lib/bundle-url.js DELETED
@@ -1,43 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getBaseURL = getBaseURL;
7
- exports.getBundleURL = void 0;
8
- let bundleURL = null;
9
-
10
- function getBundleURLCached() {
11
- if (bundleURL == null) {
12
- bundleURL = _getBundleURL();
13
- }
14
-
15
- return bundleURL;
16
- }
17
-
18
- function _getBundleURL() {
19
- // Attempt to find the URL of the current script and use that as the base URL
20
- try {
21
- throw new Error();
22
- } catch (err) {
23
- let stack = typeof err.stack === 'string' ? err.stack : '';
24
- let matches = stack.match(/(https?|file|ftp):\/\/[^)\n]+/g);
25
-
26
- if (matches) {
27
- return getBaseURL(matches[0]);
28
- }
29
- }
30
-
31
- return '/';
32
- }
33
-
34
- function getBaseURL(url) {
35
- if (url == null) {
36
- return '/';
37
- }
38
-
39
- return url.replace(/^((?:https?|file|ftp):\/\/.+)\/[^/]+$/, '$1') + '/';
40
- }
41
-
42
- const getBundleURL = getBundleURLCached;
43
- exports.getBundleURL = getBundleURL;
package/lib/collection.js DELETED
@@ -1,62 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.unique = unique;
7
- exports.flatMap = flatMap;
8
- exports.objectSortedEntries = objectSortedEntries;
9
- exports.objectSortedEntriesDeep = objectSortedEntriesDeep;
10
- exports.setDifference = setDifference;
11
-
12
- function unique(array) {
13
- return [...new Set(array)];
14
- }
15
-
16
- function flatMap(array, projectFn) {
17
- let out = [];
18
-
19
- for (let arr of array.map(projectFn)) {
20
- out.push(...arr);
21
- }
22
-
23
- return out;
24
- }
25
-
26
- function objectSortedEntries(obj) {
27
- return Object.entries(obj).sort(([keyA], [keyB]) => keyA.localeCompare(keyB));
28
- }
29
-
30
- function objectSortedEntriesDeep(object) {
31
- let sortedEntries = objectSortedEntries(object);
32
-
33
- for (let i = 0; i < sortedEntries.length; i++) {
34
- sortedEntries[i][1] = sortEntry(sortedEntries[i][1]);
35
- }
36
-
37
- return sortedEntries;
38
- }
39
-
40
- function sortEntry(entry) {
41
- if (Array.isArray(entry)) {
42
- return entry.map(sortEntry);
43
- }
44
-
45
- if (typeof entry === 'object' && entry != null) {
46
- return objectSortedEntriesDeep(entry);
47
- }
48
-
49
- return entry;
50
- }
51
-
52
- function setDifference(a, b) {
53
- let difference = new Set();
54
-
55
- for (let e of a) {
56
- if (!b.has(e)) {
57
- difference.add(e);
58
- }
59
- }
60
-
61
- return difference;
62
- }