@percy/sdk-utils 1.0.0-beta.71 → 1.0.0-beta.72

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/bundle.js CHANGED
@@ -1,5 +1,5 @@
1
1
  (function() {
2
- (function (exports, require$$0$1, require$$0$2) {
2
+ (function (exports, require$$0$1) {
3
3
  'use strict';
4
4
 
5
5
  const process = (typeof globalThis !== "undefined" && globalThis.process) || {};
@@ -9,7 +9,6 @@
9
9
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
10
 
11
11
  var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0$1);
12
- var require$$0__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$0$2);
13
12
 
14
13
  function getAugmentedNamespace(n) {
15
14
  if (n.__esModule) return n;
@@ -34,10 +33,11 @@
34
33
  const ANSI_REG = new RegExp('[\\u001B\\u009B][[\\]()#;?]*((?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)' + '|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))', 'g'); // color names by ansi escape code
35
34
 
36
35
  const ANSI_COLORS = {
37
- '31m': 'red',
38
- '33m': 'yellow',
36
+ '91m': 'red',
37
+ '32m': 'green',
38
+ '93m': 'yellow',
39
39
  '34m': 'blue',
40
- '35m': 'magenta',
40
+ '95m': 'magenta',
41
41
  '90m': 'grey'
42
42
  }; // colorize each line of a string using an ansi escape sequence
43
43
 
@@ -114,8 +114,8 @@
114
114
 
115
115
 
116
116
  loglevel(level) {
117
- if (!level) return this.level;
118
- this.level = level;
117
+ if (level) this.level = level;
118
+ return this.level;
119
119
  } // Change namespaces by generating an array of namespace regular expressions from a
120
120
  // comma separated debug string
121
121
 
@@ -148,9 +148,13 @@
148
148
  return Object.keys(LOG_LEVELS).reduce((group, level) => Object.assign(group, {
149
149
  [level]: this.log.bind(this, name, level)
150
150
  }), {
151
- progress: this.progress.bind(this, name),
152
151
  deprecated: this.deprecated.bind(this, name),
153
- shouldLog: this.shouldLog.bind(this, name)
152
+ shouldLog: this.shouldLog.bind(this, name),
153
+ progress: this.progress.bind(this, name),
154
+ format: this.format.bind(this, name),
155
+ loglevel: this.loglevel.bind(this),
156
+ stdout: this.constructor.stdout,
157
+ stderr: this.constructor.stderr
154
158
  });
155
159
  } // Query for a set of logs by filtering the in-memory store
156
160
 
@@ -160,10 +164,18 @@
160
164
  } // Formats messages before they are logged to stdio
161
165
 
162
166
 
163
- format(message, debug, level, elapsed) {
167
+ format(debug, level, message, elapsed) {
164
168
  let label = 'percy';
165
169
  let suffix = '';
166
170
 
171
+ if (arguments.length === 1) {
172
+ // format(message)
173
+ [debug, message] = [null, debug];
174
+ } else if (arguments.length === 2) {
175
+ // format(debug, message)
176
+ [level, message] = [null, level];
177
+ }
178
+
167
179
  if (this.level === 'debug') {
168
180
  // include debug info in the label
169
181
  if (debug) label += `:${debug}`; // include elapsed time since last log
@@ -197,7 +209,7 @@
197
209
  } = this.constructor;
198
210
 
199
211
  if (stdout.isTTY || !this._progress) {
200
- message && (message = this.format(message, debug));
212
+ message && (message = this.format(debug, message));
201
213
  if (stdout.isTTY) stdout.cursorTo(0);else message && (message = message + '\n');
202
214
  if (message) stdout.write(message);
203
215
  if (stdout.isTTY) stdout.clearLine(1);
@@ -266,7 +278,7 @@
266
278
  if (this.shouldLog(debug, level)) {
267
279
  let elapsed = timestamp - (this.lastlog || timestamp);
268
280
  if (isError && this.level !== 'debug') message = error.toString();
269
- this.write(level, this.format(message, debug, error ? 'error' : level, elapsed));
281
+ this.write(level, this.format(debug, error ? 'error' : level, message, elapsed));
270
282
  this.lastlog = timestamp;
271
283
  }
272
284
  } // Writes a message to stdio based on the loglevel
@@ -390,10 +402,11 @@
390
402
 
391
403
  var logger$1 = /*#__PURE__*/Object.freeze({
392
404
  __proto__: null,
405
+ PercyLogger: PercyLogger,
393
406
  'default': PercyLogger
394
407
  });
395
408
 
396
- class BrowserLogger extends PercyLogger {
409
+ class PercyBrowserLogger extends PercyLogger {
397
410
  write(level, message) {
398
411
  let out = ['warn', 'error'].includes(level) ? level : 'log';
399
412
  let colors = [];
@@ -412,7 +425,8 @@
412
425
 
413
426
  var browser = /*#__PURE__*/Object.freeze({
414
427
  __proto__: null,
415
- 'default': BrowserLogger
428
+ PercyBrowserLogger: PercyBrowserLogger,
429
+ 'default': PercyBrowserLogger
416
430
  });
417
431
 
418
432
  var require$$0 = /*@__PURE__*/getAugmentedNamespace(browser);
@@ -440,13 +454,9 @@
440
454
  remote: function () {
441
455
  return new Logger().remote(...arguments);
442
456
  },
443
-
444
- loglevel(level) {
445
- let flags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
446
- if (flags.debug) level = 'debug';else if (flags.verbose) level = 'debug';else if (flags.quiet) level = 'warn';else if (flags.silent) level = 'silent';
447
- return new Logger().loglevel(level);
457
+ loglevel: function () {
458
+ return new Logger().loglevel(...arguments);
448
459
  }
449
-
450
460
  });
451
461
  Object.defineProperties(logger, {
452
462
  Logger: {
@@ -583,16 +593,19 @@
583
593
  }
584
594
 
585
595
  async function connectRemoteLogger() {
586
- await src.remote(() => {
596
+ await src.remote(async () => {
587
597
  let url = info.address.replace('http', 'ws');
588
598
 
589
599
  if (process.env.__PERCY_BROWSERIFIED__) {
590
600
  return new window.WebSocket(url);
591
601
  } else {
592
- let socket = new (require$$0__default$1["default"])(url); // allow node to exit with an active connection
602
+ /* eslint-disable-next-line import/no-extraneous-dependencies */
603
+ let {
604
+ default: WebSocket
605
+ } = await import('ws');
606
+ let ws = new WebSocket(url); // allow node to exit with an active connection
593
607
 
594
- socket.once('open', () => socket._socket.unref());
595
- return socket;
608
+ return ws.once('open', () => ws._socket.unref());
596
609
  }
597
610
  });
598
611
  } // Check if Percy is enabled using the healthcheck endpoint
@@ -671,7 +684,7 @@
671
684
 
672
685
  Object.defineProperty(exports, '__esModule', { value: true });
673
686
 
674
- })(this.PercySDKUtils = this.PercySDKUtils || {}, null, null);
687
+ })(this.PercySDKUtils = this.PercySDKUtils || {}, null);
675
688
  }).call(window);
676
689
 
677
690
  if (typeof define === "function" && define.amd) {
package/dist/percy-dom.js CHANGED
@@ -3,7 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = fetchPercyDOM;
6
+ exports.default = void 0;
7
+ exports.fetchPercyDOM = fetchPercyDOM;
7
8
 
8
9
  var _percyInfo = _interopRequireDefault(require("./percy-info"));
9
10
 
@@ -19,4 +20,7 @@ async function fetchPercyDOM() {
19
20
  }
20
21
 
21
22
  return _percyInfo.default.domScript;
22
- }
23
+ }
24
+
25
+ var _default = fetchPercyDOM;
26
+ exports.default = _default;
@@ -3,7 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = isPercyEnabled;
6
+ exports.default = void 0;
7
+ exports.isPercyEnabled = isPercyEnabled;
7
8
 
8
9
  var _logger = _interopRequireDefault(require("@percy/logger"));
9
10
 
@@ -13,18 +14,25 @@ var _request = _interopRequireDefault(require("./request"));
13
14
 
14
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
16
 
17
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
+
19
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
+
16
21
  // Create a socket to connect to a remote logger
17
22
  async function connectRemoteLogger() {
18
- await _logger.default.remote(() => {
23
+ await _logger.default.remote(async () => {
19
24
  let url = _percyInfo.default.address.replace('http', 'ws');
20
25
 
21
26
  if (process.env.__PERCY_BROWSERIFIED__) {
22
27
  return new window.WebSocket(url);
23
28
  } else {
24
- let socket = new (require('ws'))(url); // allow node to exit with an active connection
29
+ /* eslint-disable-next-line import/no-extraneous-dependencies */
30
+ let {
31
+ default: WebSocket
32
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require('ws')));
33
+ let ws = new WebSocket(url); // allow node to exit with an active connection
25
34
 
26
- socket.once('open', () => socket._socket.unref());
27
- return socket;
35
+ return ws.once('open', () => ws._socket.unref());
28
36
  }
29
37
  });
30
38
  } // Check if Percy is enabled using the healthcheck endpoint
@@ -60,4 +68,7 @@ async function isPercyEnabled() {
60
68
  }
61
69
 
62
70
  return _percyInfo.default.enabled;
63
- }
71
+ }
72
+
73
+ var _default = isPercyEnabled;
74
+ exports.default = _default;
@@ -3,7 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = postSnapshot;
6
+ exports.default = void 0;
7
+ exports.postSnapshot = postSnapshot;
7
8
 
8
9
  var _percyInfo = _interopRequireDefault(require("./percy-info"));
9
10
 
@@ -22,4 +23,7 @@ async function postSnapshot(options, params) {
22
23
  throw err;
23
24
  }
24
25
  });
25
- }
26
+ }
27
+
28
+ var _default = postSnapshot;
29
+ exports.default = _default;
package/dist/request.js CHANGED
@@ -3,7 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = request;
6
+ exports.default = void 0;
7
+ exports.request = request;
7
8
 
8
9
  var _percyInfo = _interopRequireDefault(require("./percy-info"));
9
10
 
@@ -69,4 +70,7 @@ if (process.env.__PERCY_BROWSERIFIED__) {
69
70
  }).on('error', reject).end(options.body);
70
71
  });
71
72
  };
72
- }
73
+ }
74
+
75
+ var _default = request;
76
+ exports.default = _default;
package/package.json CHANGED
@@ -1,7 +1,15 @@
1
1
  {
2
2
  "name": "@percy/sdk-utils",
3
- "version": "1.0.0-beta.71",
3
+ "version": "1.0.0-beta.72",
4
4
  "license": "MIT",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/percy/cli",
8
+ "directory": "packages/sdk-utils"
9
+ },
10
+ "publishConfig": {
11
+ "access": "public"
12
+ },
5
13
  "main": "dist/index.js",
6
14
  "browser": "dist/bundle.js",
7
15
  "files": [
@@ -19,9 +27,6 @@
19
27
  "test": "node ../../scripts/test",
20
28
  "test:coverage": "yarn test --coverage"
21
29
  },
22
- "publishConfig": {
23
- "access": "public"
24
- },
25
30
  "karma": {
26
31
  "run_start": "node test/server start &",
27
32
  "run_complete": "node test/server stop"
@@ -46,12 +51,7 @@
46
51
  }
47
52
  },
48
53
  "dependencies": {
49
- "@percy/logger": "1.0.0-beta.71"
50
- },
51
- "repository": {
52
- "type": "git",
53
- "url": "https://github.com/percy/cli",
54
- "directory": "packages/sdk-utils"
54
+ "@percy/logger": "1.0.0-beta.72"
55
55
  },
56
- "gitHead": "364d1df717fb19a26ccb024458df6e78a9c11f99"
56
+ "gitHead": "6219287e18a0cacb609d0c2696a5785abc9009b9"
57
57
  }
package/test/client.js CHANGED
@@ -39,10 +39,11 @@
39
39
  const ANSI_REG$1 = new RegExp('[\\u001B\\u009B][[\\]()#;?]*((?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)' + '|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))', 'g'); // color names by ansi escape code
40
40
 
41
41
  const ANSI_COLORS = {
42
- '31m': 'red',
43
- '33m': 'yellow',
42
+ '91m': 'red',
43
+ '32m': 'green',
44
+ '93m': 'yellow',
44
45
  '34m': 'blue',
45
- '35m': 'magenta',
46
+ '95m': 'magenta',
46
47
  '90m': 'grey'
47
48
  }; // colorize each line of a string using an ansi escape sequence
48
49
 
@@ -188,7 +189,7 @@
188
189
 
189
190
  let logs = Array.from(helpers$1.messages);
190
191
  logger$1.loglevel('debug');
191
- write(logger$1.format('--- DUMPING LOGS ---', 'testing', 'warn'));
192
+ write(logger$1.format('testing', 'warn', '--- DUMPING LOGS ---'));
192
193
  logs.reduce((lastlog, _ref) => {
193
194
  let {
194
195
  debug,
@@ -196,7 +197,7 @@
196
197
  message,
197
198
  timestamp
198
199
  } = _ref;
199
- write(logger$1.format(message, debug, level, timestamp - lastlog));
200
+ write(logger$1.format(debug, level, message, timestamp - lastlog));
200
201
  return timestamp;
201
202
  }, logs[0].timestamp);
202
203
  }
package/test/server.js CHANGED
@@ -123,12 +123,13 @@ async function start(args, log) {
123
123
  close.called = true;
124
124
 
125
125
  if (ctx) ctx.call('close');
126
+ for (let ws of wss.clients) ws.terminate();
126
127
  wss.close(() => log('info', 'Closed SDK testing server'));
127
128
  };
128
129
 
129
130
  wss.on('connection', ws => {
130
131
  ws.on('message', data => {
131
- if (data === 'CLOSE') return close();
132
+ if (data.toString() === 'CLOSE') return close();
132
133
  let { id, event, args = [] } = JSON.parse(data);
133
134
 
134
135
  Promise.resolve().then(async () => {