@percy/sdk-utils 1.28.8-beta.4 → 1.28.8

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
@@ -6,54 +6,6 @@
6
6
  process.env = process.env || {};
7
7
  process.env.__PERCY_BROWSERIFIED__ = true;
8
8
 
9
- // Used when determining if a message should be logged
10
- const LOG_LEVELS = {
11
- debug: 0,
12
- info: 1,
13
- warn: 2,
14
- error: 3
15
- };
16
-
17
- // Create a small logger util using the specified namespace
18
- function logger(namespace) {
19
- return Object.keys(LOG_LEVELS).reduce((ns, lvl) => Object.assign(ns, {
20
- [lvl]: function () {
21
- for (var _len = arguments.length, a = new Array(_len), _key = 0; _key < _len; _key++) {
22
- a[_key] = arguments[_key];
23
- }
24
- return logger.log(namespace, lvl, ...a);
25
- }
26
- }), {});
27
- }
28
- Object.assign(logger, {
29
- // Set and/or return the local loglevel
30
- loglevel: function () {
31
- let lvl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : logger.loglevel.lvl;
32
- return logger.loglevel.lvl = lvl || process.env.PERCY_LOGLEVEL || 'info';
33
- },
34
- // Track and send/write logs for the specified namespace and log level
35
- log: (ns, lvl, msg, meta) => {
36
- let err = typeof msg !== 'string' && (lvl === 'error' || lvl === 'debug');
37
-
38
- // check if the specific level is within the local loglevel range
39
- if (LOG_LEVELS[lvl] != null && LOG_LEVELS[lvl] >= LOG_LEVELS[logger.loglevel()]) {
40
- let debug = logger.loglevel() === 'debug';
41
- let label = debug ? `percy:${ns}` : 'percy';
42
-
43
- // colorize the label when possible for consistency with the CLI logger
44
- if (!process.env.__PERCY_BROWSERIFIED__) label = `\u001b[95m${label}\u001b[39m`;
45
- msg = `[${label}] ${err && debug && msg.stack || msg}`;
46
- if (process.env.__PERCY_BROWSERIFIED__) {
47
- // use console[warn|error|log] in browsers
48
- console[['warn', 'error'].includes(lvl) ? lvl : 'log'](msg);
49
- } else {
50
- // use process[stdout|stderr].write in node
51
- process[lvl === 'info' ? 'stdout' : 'stderr'].write(msg + '\n');
52
- }
53
- }
54
- }
55
- });
56
-
57
9
  // helper to create a version object from a string
58
10
  function toVersion(str) {
59
11
  str || (str = '0.0.0');
@@ -180,6 +132,65 @@
180
132
  };
181
133
  }
182
134
 
135
+ // Used when determining if a message should be logged
136
+ const LOG_LEVELS = {
137
+ debug: 0,
138
+ info: 1,
139
+ warn: 2,
140
+ error: 3
141
+ };
142
+
143
+ // Create a small logger util using the specified namespace
144
+ function logger(namespace) {
145
+ return Object.keys(LOG_LEVELS).reduce((ns, lvl) => Object.assign(ns, {
146
+ [lvl]: function () {
147
+ for (var _len = arguments.length, a = new Array(_len), _key = 0; _key < _len; _key++) {
148
+ a[_key] = arguments[_key];
149
+ }
150
+ return logger.log(namespace, lvl, ...a);
151
+ }
152
+ }), {});
153
+ }
154
+ Object.assign(logger, {
155
+ // Set and/or return the local loglevel
156
+ loglevel: function () {
157
+ let lvl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : logger.loglevel.lvl;
158
+ return logger.loglevel.lvl = lvl || process.env.PERCY_LOGLEVEL || 'info';
159
+ },
160
+ // Track and send/write logs for the specified namespace and log level
161
+ // remote should only be false in case of sensitive/self call for errors
162
+ log: function (ns, lvl, msg, meta) {
163
+ let remote = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
164
+ let err = typeof msg !== 'string' && (lvl === 'error' || lvl === 'debug');
165
+
166
+ // check if the specific level is within the local loglevel range
167
+ if (LOG_LEVELS[lvl] != null && LOG_LEVELS[lvl] >= LOG_LEVELS[logger.loglevel()]) {
168
+ let debug = logger.loglevel() === 'debug';
169
+ let label = debug ? `percy:${ns}` : 'percy';
170
+
171
+ // colorize the label when possible for consistency with the CLI logger
172
+ if (!process.env.__PERCY_BROWSERIFIED__) label = `\u001b[95m${label}\u001b[39m`;
173
+ msg = `[${label}] ${err && debug && msg.stack || msg}`;
174
+ if (process.env.__PERCY_BROWSERIFIED__) {
175
+ // use console[warn|error|log] in browsers
176
+ console[['warn', 'error'].includes(lvl) ? lvl : 'log'](msg);
177
+ } else {
178
+ // use process[stdout|stderr].write in node
179
+ process[lvl === 'info' ? 'stdout' : 'stderr'].write(msg + '\n');
180
+ }
181
+ if (remote && (lvl === 'error' || debug)) {
182
+ return request.post('/percy/log', {
183
+ level: lvl,
184
+ message: msg,
185
+ meta
186
+ }).catch(_ => {
187
+ logger.log(ns, 'error', 'Could not send logs to cli', meta, false);
188
+ });
189
+ }
190
+ }
191
+ }
192
+ });
193
+
183
194
  // Check if Percy is enabled using the healthcheck endpoint
184
195
  async function isPercyEnabled() {
185
196
  if (info.enabled == null) {
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
  exports.flushSnapshots = flushSnapshots;
8
8
  var _percyInfo = _interopRequireDefault(require("./percy-info.js"));
9
9
  var _request = _interopRequireDefault(require("./request.js"));
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
11
  // Posts to the local Percy server one or more snapshots to flush. Given no arguments, all snapshots
12
12
  // will be flushed. Does nothing when Percy is not enabled.
13
13
  async function flushSnapshots(options) {
package/dist/index.js CHANGED
@@ -83,6 +83,6 @@ var _flushSnapshots = _interopRequireDefault(require("./flush-snapshots.js"));
83
83
  var _postScreenshot = _interopRequireDefault(require("./post-screenshot.js"));
84
84
  var _default = _interopRequireWildcard(require("./index.js"));
85
85
  exports.default = _default;
86
- 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); }
87
- 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; }
88
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
86
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
87
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
88
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
package/dist/logger.js CHANGED
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  exports.logger = logger;
8
+ var _request = _interopRequireDefault(require("./request.js"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
10
  // Used when determining if a message should be logged
9
11
  const LOG_LEVELS = {
10
12
  debug: 0,
@@ -25,7 +27,8 @@ Object.assign(logger, {
25
27
  return logger.loglevel.lvl = lvl || process.env.PERCY_LOGLEVEL || 'info';
26
28
  },
27
29
  // Track and send/write logs for the specified namespace and log level
28
- log: (ns, lvl, msg, meta) => {
30
+ // remote should only be false in case of sensitive/self call for errors
31
+ log: (ns, lvl, msg, meta, remote = true) => {
29
32
  let err = typeof msg !== 'string' && (lvl === 'error' || lvl === 'debug');
30
33
 
31
34
  // check if the specific level is within the local loglevel range
@@ -43,6 +46,15 @@ Object.assign(logger, {
43
46
  // use process[stdout|stderr].write in node
44
47
  process[lvl === 'info' ? 'stdout' : 'stderr'].write(msg + '\n');
45
48
  }
49
+ if (remote && (lvl === 'error' || debug)) {
50
+ return _request.default.post('/percy/log', {
51
+ level: lvl,
52
+ message: msg,
53
+ meta
54
+ }).catch(_ => {
55
+ logger.log(ns, 'error', 'Could not send logs to cli', meta, false);
56
+ });
57
+ }
46
58
  }
47
59
  }
48
60
  });
package/dist/percy-dom.js CHANGED
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
  exports.fetchPercyDOM = fetchPercyDOM;
8
8
  var _percyInfo = _interopRequireDefault(require("./percy-info.js"));
9
9
  var _request = _interopRequireDefault(require("./request.js"));
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
11
  // Fetch and cache the @percy/dom script
12
12
  async function fetchPercyDOM() {
13
13
  if (_percyInfo.default.domScript == null) {
@@ -8,7 +8,7 @@ exports.isPercyEnabled = isPercyEnabled;
8
8
  var _percyInfo = _interopRequireDefault(require("./percy-info.js"));
9
9
  var _request = _interopRequireDefault(require("./request.js"));
10
10
  var _logger = _interopRequireDefault(require("./logger.js"));
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
12
  // Check if Percy is enabled using the healthcheck endpoint
13
13
  async function isPercyEnabled() {
14
14
  if (_percyInfo.default.enabled == null) {
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  exports.waitForPercyIdle = waitForPercyIdle;
8
8
  var _request = _interopRequireDefault(require("./request.js"));
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  const RETRY_ERROR_CODES = ['ECONNRESET', 'ETIMEDOUT'];
11
11
  async function waitForPercyIdle() {
12
12
  try {
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  exports.postBuildEvents = postBuildEvents;
8
8
  var _request = _interopRequireDefault(require("./request.js"));
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  // Post failed event data to the CLI event endpoint.
11
11
  async function postBuildEvents(options) {
12
12
  return await _request.default.post('/percy/events', options).catch(err => {
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
  exports.postComparison = postComparison;
8
8
  var _percyInfo = _interopRequireDefault(require("./percy-info.js"));
9
9
  var _request = _interopRequireDefault(require("./request.js"));
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
11
  // Post snapshot data to the CLI snapshot endpoint. If the endpoint responds with a build error,
12
12
  // indicate that Percy has been disabled.
13
13
  async function postComparison(options, params) {
@@ -7,7 +7,7 @@ exports.captureAutomateScreenshot = captureAutomateScreenshot;
7
7
  exports.default = void 0;
8
8
  var _percyInfo = _interopRequireDefault(require("./percy-info.js"));
9
9
  var _request = _interopRequireDefault(require("./request.js"));
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
11
  // Post screenshot data to the CLI automateScreenshot endpoint. If the endpoint responds with a build error,
12
12
  // indicate that Percy has been disabled.
13
13
  async function captureAutomateScreenshot(options, params) {
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
  exports.postSnapshot = postSnapshot;
8
8
  var _percyInfo = _interopRequireDefault(require("./percy-info.js"));
9
9
  var _request = _interopRequireDefault(require("./request.js"));
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
11
  // Post snapshot data to the CLI snapshot endpoint. If the endpoint responds with a build error,
12
12
  // indicate that Percy has been disabled.
13
13
  async function postSnapshot(options, params) {
package/dist/request.js CHANGED
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  exports.request = request;
8
8
  var _percyInfo = _interopRequireDefault(require("./percy-info.js"));
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
- 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); }
11
- 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; }
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
12
  // Helper to send a request to the local CLI API
13
13
  async function request(path, options = {}) {
14
14
  let url = path.startsWith('http') ? path : `${_percyInfo.default.address}${path}`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@percy/sdk-utils",
3
- "version": "1.28.8-beta.4",
3
+ "version": "1.28.8",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -9,7 +9,7 @@
9
9
  },
10
10
  "publishConfig": {
11
11
  "access": "public",
12
- "tag": "beta"
12
+ "tag": "latest"
13
13
  },
14
14
  "engines": {
15
15
  "node": ">=14"
@@ -51,5 +51,5 @@
51
51
  ]
52
52
  }
53
53
  },
54
- "gitHead": "0ea30a56b97b5a5dab6ddc1282f71f1ecf07df2d"
54
+ "gitHead": "1b93761a01b608afadf8d4efccacc11f925396bd"
55
55
  }