@thoughtbot/superglue 0.53.2 → 0.53.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.
@@ -4,127 +4,91 @@ exports.__esModule = true;
4
4
  exports.KeyPathError = void 0;
5
5
  exports.getIn = getIn;
6
6
  exports.setIn = setIn;
7
-
8
7
  function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
9
-
10
8
  function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }
11
-
12
9
  function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }
13
-
14
10
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
15
-
16
11
  function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; }
17
-
18
12
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
19
-
20
13
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
21
-
22
14
  // These were taken from Scour.js
23
15
  // Then, modified to respect the id=0 keypath
24
- var isSearchable = /^[\da-zA-Z\-_=.]+$/;
25
16
 
26
- var KeyPathError = /*#__PURE__*/function (_Error) {
17
+ var isSearchable = /^[\da-zA-Z\-_=.]+$/;
18
+ var KeyPathError = exports.KeyPathError = /*#__PURE__*/function (_Error) {
27
19
  _inheritsLoose(KeyPathError, _Error);
28
-
29
20
  function KeyPathError(message) {
30
21
  var _this;
31
-
32
22
  _this = _Error.call(this, message) || this;
33
23
  _this.name = 'KeyPathError';
34
24
  return _this;
35
25
  }
36
-
37
26
  return KeyPathError;
38
27
  }( /*#__PURE__*/_wrapNativeSuper(Error));
39
-
40
- exports.KeyPathError = KeyPathError;
41
-
42
28
  function getIn(obj, path) {
43
29
  var keyPath = normalizeKeyPath(path);
44
30
  var result = obj;
45
-
46
31
  for (var i = 0; i < keyPath.length; i++) {
47
32
  var key = keyPath[i];
48
-
49
33
  if (!result) {
50
34
  break;
51
35
  }
52
-
53
36
  result = atKey(result, key);
54
37
  }
55
-
56
38
  return result;
57
39
  }
58
-
59
40
  function clone(object) {
60
41
  return Array.isArray(object) ? [].slice.call(object) : Object.assign({}, object);
61
42
  }
62
-
63
43
  function getKey(node, key) {
64
44
  if (Array.isArray(node) && isNaN(key)) {
65
45
  var key_parts = Array.from(key.split('='));
66
46
  var attr = key_parts[0];
67
47
  var id = key_parts[1];
68
48
  var i, child;
69
-
70
49
  if (!id) {
71
50
  return key;
72
51
  }
73
-
74
52
  for (i = 0; i < node.length; i++) {
75
53
  child = node[i];
76
-
77
54
  if (child[attr].toString() === id) {
78
55
  break;
79
56
  }
80
57
  }
81
-
82
58
  return i;
83
59
  } else {
84
60
  return key;
85
61
  }
86
62
  }
87
-
88
63
  function isArray(ary) {
89
64
  return Array.isArray(ary);
90
65
  }
91
-
92
66
  function isObject(obj) {
93
67
  return !isArray(obj) && obj === Object(obj);
94
68
  }
95
-
96
69
  function atKey(node, key) {
97
70
  var id, attr;
98
-
99
71
  if (isSearchable.test(key)) {
100
72
  // eslint-disable-next-line
101
73
  ;
102
-
103
74
  var _Array$from = Array.from(key.split('='));
104
-
105
75
  attr = _Array$from[0];
106
76
  id = _Array$from[1];
107
77
  }
108
-
109
78
  if (!isArray(node) && !isObject(node)) {
110
79
  throw new KeyPathError("Expected to traverse an Array or Obj, got " + JSON.stringify(node));
111
80
  }
112
-
113
81
  if (isObject(node) && id) {
114
82
  throw new KeyPathError("Expected to find an Array when using the key: " + key);
115
83
  }
116
-
117
84
  if (Array.isArray(node) && id) {
118
85
  var child;
119
-
120
86
  for (var i = 0; i < node.length; i++) {
121
87
  child = node[i];
122
-
123
88
  if (child[attr].toString() === id) {
124
89
  break;
125
90
  }
126
91
  }
127
-
128
92
  if (child[attr].toString() === id) {
129
93
  return child;
130
94
  } else {
@@ -134,39 +98,31 @@ function atKey(node, key) {
134
98
  return node[key];
135
99
  }
136
100
  }
137
-
138
101
  function normalizeKeyPath(path) {
139
102
  if (typeof path === 'string') {
140
103
  path = path.replace(/ /g, '');
141
-
142
104
  if (path === '') {
143
105
  return [];
144
106
  }
145
-
146
107
  return path.split('.');
147
108
  } else {
148
109
  return path;
149
110
  }
150
111
  }
151
-
152
112
  function setIn(object, keypath, value) {
153
113
  keypath = normalizeKeyPath(keypath);
154
114
  var results = {};
155
115
  var parents = {};
156
116
  var i;
157
117
  parents[0] = object;
158
-
159
118
  for (i = 0; i < keypath.length; i++) {
160
119
  parents[i + 1] = atKey(parents[i], keypath[i]);
161
120
  }
162
-
163
121
  results[keypath.length] = value;
164
-
165
122
  for (i = keypath.length - 1; i >= 0; i--) {
166
123
  results[i] = clone(parents[i]);
167
124
  var key = getKey(results[i], keypath[i]);
168
125
  results[i][key] = results[i + 1];
169
126
  }
170
-
171
127
  return results[0];
172
128
  }
package/utils/index.js CHANGED
@@ -1,57 +1,43 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
-
5
4
  var _helpers = require("./helpers");
6
-
7
5
  Object.keys(_helpers).forEach(function (key) {
8
6
  if (key === "default" || key === "__esModule") return;
9
7
  if (key in exports && exports[key] === _helpers[key]) return;
10
8
  exports[key] = _helpers[key];
11
9
  });
12
-
13
10
  var _immutability = require("./immutability");
14
-
15
11
  Object.keys(_immutability).forEach(function (key) {
16
12
  if (key === "default" || key === "__esModule") return;
17
13
  if (key in exports && exports[key] === _immutability[key]) return;
18
14
  exports[key] = _immutability[key];
19
15
  });
20
-
21
16
  var _react = require("./react");
22
-
23
17
  Object.keys(_react).forEach(function (key) {
24
18
  if (key === "default" || key === "__esModule") return;
25
19
  if (key in exports && exports[key] === _react[key]) return;
26
20
  exports[key] = _react[key];
27
21
  });
28
-
29
22
  var _request = require("./request");
30
-
31
23
  Object.keys(_request).forEach(function (key) {
32
24
  if (key === "default" || key === "__esModule") return;
33
25
  if (key in exports && exports[key] === _request[key]) return;
34
26
  exports[key] = _request[key];
35
27
  });
36
-
37
28
  var _ujs = require("./ujs");
38
-
39
29
  Object.keys(_ujs).forEach(function (key) {
40
30
  if (key === "default" || key === "__esModule") return;
41
31
  if (key in exports && exports[key] === _ujs[key]) return;
42
32
  exports[key] = _ujs[key];
43
33
  });
44
-
45
34
  var _url = require("./url");
46
-
47
35
  Object.keys(_url).forEach(function (key) {
48
36
  if (key === "default" || key === "__esModule") return;
49
37
  if (key in exports && exports[key] === _url[key]) return;
50
38
  exports[key] = _url[key];
51
39
  });
52
-
53
40
  var _window = require("./window");
54
-
55
41
  Object.keys(_window).forEach(function (key) {
56
42
  if (key === "default" || key === "__esModule") return;
57
43
  if (key in exports && exports[key] === _window[key]) return;
package/utils/react.js CHANGED
@@ -3,11 +3,8 @@
3
3
  exports.__esModule = true;
4
4
  exports.mapDispatchToPropsIncludingVisitAndRemote = exports.mapDispatchToProps = void 0;
5
5
  exports.mapStateToProps = mapStateToProps;
6
-
7
6
  var _action_creators = require("../action_creators");
8
-
9
7
  var _url = require("./url");
10
-
11
8
  function mapStateToProps(state, ownProps) {
12
9
  if (state === void 0) {
13
10
  state = {
@@ -15,35 +12,29 @@ function mapStateToProps(state, ownProps) {
15
12
  superglue: {}
16
13
  };
17
14
  }
18
-
19
15
  var pageKey = ownProps.pageKey;
20
16
  var params = ownProps;
21
17
  var csrfToken = state.superglue.csrfToken;
22
18
  pageKey = (0, _url.urlToPageKey)(pageKey);
23
-
24
19
  var _ref = state.pages[pageKey] || {
25
- data: {},
26
- fragments: []
27
- },
28
- data = _ref.data,
29
- fragments = _ref.fragments;
30
-
20
+ data: {},
21
+ fragments: []
22
+ },
23
+ data = _ref.data,
24
+ fragments = _ref.fragments;
31
25
  return Object.assign({}, data, params, {
32
26
  pageKey: pageKey,
33
27
  csrfToken: csrfToken,
34
28
  fragments: fragments
35
29
  });
36
30
  }
37
-
38
- var mapDispatchToProps = {
31
+ var mapDispatchToProps = exports.mapDispatchToProps = {
39
32
  saveAndProcessPage: _action_creators.saveAndProcessPage,
40
33
  copyPage: _action_creators.copyPage
41
34
  };
42
- exports.mapDispatchToProps = mapDispatchToProps;
43
- var mapDispatchToPropsIncludingVisitAndRemote = {
35
+ var mapDispatchToPropsIncludingVisitAndRemote = exports.mapDispatchToPropsIncludingVisitAndRemote = {
44
36
  visit: _action_creators.visit,
45
37
  remote: _action_creators.remote,
46
38
  saveAndProcessPage: _action_creators.saveAndProcessPage,
47
39
  copyPage: _action_creators.copyPage
48
- };
49
- exports.mapDispatchToPropsIncludingVisitAndRemote = mapDispatchToPropsIncludingVisitAndRemote;
40
+ };
package/utils/request.js CHANGED
@@ -8,33 +8,24 @@ exports.isValidContent = isValidContent;
8
8
  exports.isValidResponse = isValidResponse;
9
9
  exports.parseResponse = parseResponse;
10
10
  exports.validateResponse = validateResponse;
11
-
12
11
  var _urlParse = _interopRequireDefault(require("url-parse"));
13
-
14
12
  var _url = require("./url");
15
-
16
13
  var _config = require("../config");
17
-
18
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
-
20
15
  function isValidResponse(xhr) {
21
16
  return isValidContent(xhr) && !downloadingFile(xhr);
22
17
  }
23
-
24
18
  function isValidContent(rsp) {
25
19
  var contentType = rsp.headers.get('content-type');
26
20
  var jsContent = /^(?:application\/json)(?:;|$)/;
27
21
  return !!(contentType !== undefined && contentType.match(jsContent));
28
22
  }
29
-
30
23
  function downloadingFile(xhr) {
31
24
  var disposition = xhr.headers.get('content-disposition');
32
25
  return disposition !== undefined && disposition !== null && disposition.match(/^attachment/);
33
26
  }
34
-
35
27
  function validateResponse(args) {
36
28
  var rsp = args.rsp;
37
-
38
29
  if (isValidResponse(rsp)) {
39
30
  return args;
40
31
  } else {
@@ -43,29 +34,27 @@ function validateResponse(args) {
43
34
  throw error;
44
35
  }
45
36
  }
46
-
47
37
  function handleServerErrors(args) {
48
38
  var rsp = args.rsp;
49
-
50
39
  if (!rsp.ok) {
40
+ if (rsp.status === 406) {
41
+ console.error("Superglue encountered a 406 Not Acceptable response. This can happen if you used respond_to and didn't specify format.json in the block. Try adding it to your respond_to. For example:\n\n" + 'respond_to do |format|\n' + ' format.html\n' + ' format.json\n' + ' format.csv\n' + 'end');
42
+ }
51
43
  var error = new Error(rsp.statusText);
52
44
  error.response = rsp;
53
45
  throw error;
54
46
  }
55
-
56
47
  return args;
57
48
  }
58
-
59
49
  function argsForFetch(getState, pathQuery, _temp) {
60
50
  var _ref = _temp === void 0 ? {} : _temp,
61
- _ref$method = _ref.method,
62
- method = _ref$method === void 0 ? 'GET' : _ref$method,
63
- _ref$headers = _ref.headers,
64
- headers = _ref$headers === void 0 ? {} : _ref$headers,
65
- _ref$body = _ref.body,
66
- body = _ref$body === void 0 ? '' : _ref$body,
67
- signal = _ref.signal;
68
-
51
+ _ref$method = _ref.method,
52
+ method = _ref$method === void 0 ? 'GET' : _ref$method,
53
+ _ref$headers = _ref.headers,
54
+ headers = _ref$headers === void 0 ? {} : _ref$headers,
55
+ _ref$body = _ref.body,
56
+ body = _ref$body === void 0 ? '' : _ref$body,
57
+ signal = _ref.signal;
69
58
  method = method.toUpperCase();
70
59
  var currentState = getState().superglue || {};
71
60
  var jsAccept = 'application/json';
@@ -75,26 +64,25 @@ function argsForFetch(getState, pathQuery, _temp) {
75
64
  'x-superglue-request': true
76
65
  });
77
66
 
67
+ // This needs to be done better. This is saying to
68
+ // remove the content-type header from UJS form
69
+ // submissions.
70
+ var fromUJSForm = headers['content-type'] === null;
78
71
  if (method != 'GET' && method != 'HEAD') {
79
- if (headers['content-type'] === null) {
80
- delete headers['content-type'];
81
- } else {
82
- headers['content-type'] = 'application/json';
83
- }
72
+ headers['content-type'] = 'application/json';
73
+ }
74
+ if (fromUJSForm) {
75
+ delete headers['content-type'];
84
76
  }
85
-
86
77
  if (currentState.csrfToken) {
87
78
  headers['x-csrf-token'] = currentState.csrfToken;
88
79
  }
89
-
90
- var href = new _urlParse["default"](pathQuery, _config.config.baseUrl || {}, false).href;
80
+ var fetchPath = new _urlParse["default"]((0, _url.formatForXHR)(pathQuery), _config.config.baseUrl || {}, false);
91
81
  var credentials = 'same-origin';
92
-
93
82
  if (!(method == 'GET' || method == 'HEAD')) {
94
83
  headers['x-http-method-override'] = method;
95
84
  method = 'POST';
96
85
  }
97
-
98
86
  var options = {
99
87
  method: method,
100
88
  headers: headers,
@@ -102,19 +90,20 @@ function argsForFetch(getState, pathQuery, _temp) {
102
90
  credentials: credentials,
103
91
  signal: signal
104
92
  };
105
-
106
93
  if (currentState.currentPageKey) {
107
94
  var referrer = new _urlParse["default"](currentState.currentPageKey, _config.config.baseUrl || {}, false).href;
108
95
  options.referrer = referrer;
109
96
  }
110
-
111
97
  if (method == 'GET' || method == 'HEAD') {
98
+ if (options.body instanceof FormData) {
99
+ var allData = new URLSearchParams(options.body).toString();
100
+ // fetchPath will always have atleast /?format=json
101
+ fetchPath.query = fetchPath.query + '&' + allData;
102
+ }
112
103
  delete options.body;
113
104
  }
114
-
115
- return [(0, _url.formatForXHR)(href), options];
105
+ return [fetchPath.toString(), options];
116
106
  }
117
-
118
107
  function extractJSON(rsp) {
119
108
  return rsp.json().then(function (json) {
120
109
  return {
@@ -126,7 +115,6 @@ function extractJSON(rsp) {
126
115
  throw e;
127
116
  });
128
117
  }
129
-
130
118
  function parseResponse(prm) {
131
119
  return Promise.resolve(prm).then(extractJSON).then(handleServerErrors).then(validateResponse);
132
120
  }
package/utils/ujs.js CHANGED
@@ -2,14 +2,12 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.ujsHandlers = exports.HandlerBuilder = void 0;
5
-
6
5
  var _url = require("./url");
7
-
8
- var HandlerBuilder = /*#__PURE__*/function () {
6
+ var HandlerBuilder = exports.HandlerBuilder = /*#__PURE__*/function () {
9
7
  function HandlerBuilder(_ref) {
10
8
  var ujsAttributePrefix = _ref.ujsAttributePrefix,
11
- visit = _ref.visit,
12
- remote = _ref.remote;
9
+ visit = _ref.visit,
10
+ remote = _ref.remote;
13
11
  this.attributePrefix = ujsAttributePrefix;
14
12
  this.isUJS = this.isUJS.bind(this);
15
13
  this.handleSubmit = this.handleSubmit.bind(this);
@@ -18,38 +16,29 @@ var HandlerBuilder = /*#__PURE__*/function () {
18
16
  this.remote = remote;
19
17
  this.visitOrRemote = this.visitOrRemote.bind(this);
20
18
  }
21
-
22
19
  var _proto = HandlerBuilder.prototype;
23
-
24
20
  _proto.retrieveLink = function retrieveLink(target) {
25
21
  var link = target;
26
-
27
22
  while (!!link.parentNode && link.nodeName.toLowerCase() !== 'a') {
28
23
  link = link.parentNode;
29
24
  }
30
-
31
25
  if (link.nodeName.toLowerCase() === 'a' && link.href.length !== 0) {
32
26
  return link;
33
27
  }
34
28
  };
35
-
36
29
  _proto.isNonStandardClick = function isNonStandardClick(event) {
37
30
  return event.which > 1 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey;
38
31
  };
39
-
40
32
  _proto.isUJS = function isUJS(node) {
41
33
  var hasVisit = !!node.getAttribute(this.attributePrefix + '-visit');
42
34
  var hasRemote = !!node.getAttribute(this.attributePrefix + '-remote');
43
35
  return hasVisit || hasRemote;
44
36
  };
45
-
46
37
  _proto.handleSubmit = function handleSubmit(event) {
47
38
  var form = event.target;
48
-
49
39
  if (form.nodeName.toLowerCase() !== 'form' || !this.isUJS(form)) {
50
40
  return;
51
41
  }
52
-
53
42
  event.preventDefault();
54
43
  var url = form.getAttribute('action');
55
44
  var method = (form.getAttribute('method') || 'POST').toUpperCase();
@@ -62,15 +51,12 @@ var HandlerBuilder = /*#__PURE__*/function () {
62
51
  body: new FormData(event.target)
63
52
  });
64
53
  };
65
-
66
54
  _proto.handleClick = function handleClick(event) {
67
55
  var link = this.retrieveLink(event.target);
68
56
  var isNonStandard = this.isNonStandardClick(event);
69
-
70
57
  if (!link || isNonStandard || !this.isUJS(link)) {
71
58
  return;
72
59
  }
73
-
74
60
  event.preventDefault();
75
61
  var url = link.getAttribute('href');
76
62
  url = (0, _url.withoutBusters)(url);
@@ -78,52 +64,41 @@ var HandlerBuilder = /*#__PURE__*/function () {
78
64
  method: 'GET'
79
65
  });
80
66
  };
81
-
82
67
  _proto.visitOrRemote = function visitOrRemote(linkOrForm, url, opts) {
83
68
  if (opts === void 0) {
84
69
  opts = {};
85
70
  }
86
-
87
71
  var target;
88
-
89
72
  if (linkOrForm.getAttribute(this.attributePrefix + '-visit')) {
90
73
  target = this.visit;
91
74
  var placeholderKey = linkOrForm.getAttribute(this.attributePrefix + '-placeholder');
92
-
93
75
  if (placeholderKey) {
94
76
  opts.placeholderKey = (0, _url.urlToPageKey)(placeholderKey);
95
77
  }
96
78
  }
97
-
98
79
  if (linkOrForm.getAttribute(this.attributePrefix + '-remote')) {
99
80
  target = this.remote;
100
81
  }
101
-
102
82
  if (!target) {
103
83
  return;
104
84
  } else {
105
85
  return target(url, opts);
106
86
  }
107
87
  };
108
-
109
88
  _proto.handlers = function handlers() {
110
89
  return {
111
90
  onClick: this.handleClick,
112
91
  onSubmit: this.handleSubmit
113
92
  };
114
93
  };
115
-
116
94
  return HandlerBuilder;
117
95
  }();
118
-
119
- exports.HandlerBuilder = HandlerBuilder;
120
-
121
- var ujsHandlers = function ujsHandlers(_ref2) {
96
+ var ujsHandlers = exports.ujsHandlers = function ujsHandlers(_ref2) {
122
97
  var navigatorRef = _ref2.navigatorRef,
123
- store = _ref2.store,
124
- ujsAttributePrefix = _ref2.ujsAttributePrefix,
125
- visit = _ref2.visit,
126
- remote = _ref2.remote;
98
+ store = _ref2.store,
99
+ ujsAttributePrefix = _ref2.ujsAttributePrefix,
100
+ visit = _ref2.visit,
101
+ remote = _ref2.remote;
127
102
  var builder = new HandlerBuilder({
128
103
  navigatorRef: navigatorRef,
129
104
  store: store,
@@ -132,6 +107,4 @@ var ujsHandlers = function ujsHandlers(_ref2) {
132
107
  ujsAttributePrefix: ujsAttributePrefix
133
108
  });
134
109
  return builder.handlers();
135
- };
136
-
137
- exports.ujsHandlers = ujsHandlers;
110
+ };
package/utils/url.js CHANGED
@@ -11,40 +11,31 @@ exports.urlToPageKey = urlToPageKey;
11
11
  exports.withFormatJson = withFormatJson;
12
12
  exports.withoutBusters = withoutBusters;
13
13
  exports.withoutHash = withoutHash;
14
-
15
14
  var _urlParse = _interopRequireDefault(require("url-parse"));
16
-
17
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
18
-
19
16
  function pathQuery(url) {
20
17
  var _parse = new _urlParse["default"](url, {}),
21
- pathname = _parse.pathname,
22
- query = _parse.query;
23
-
18
+ pathname = _parse.pathname,
19
+ query = _parse.query;
24
20
  return pathname + query;
25
21
  }
26
-
27
22
  function pathQueryHash(url) {
28
23
  var _parse2 = new _urlParse["default"](url, {}),
29
- pathname = _parse2.pathname,
30
- query = _parse2.query,
31
- hash = _parse2.hash;
32
-
24
+ pathname = _parse2.pathname,
25
+ query = _parse2.query,
26
+ hash = _parse2.hash;
33
27
  return pathname + query + hash;
34
28
  }
35
-
36
29
  function hasPropsAt(url) {
37
30
  url = new _urlParse["default"](url, {}, true);
38
31
  var query = url.query;
39
32
  return !!query['props_at'];
40
33
  }
41
-
42
34
  function withFormatJson(url) {
43
35
  url = new _urlParse["default"](url, {}, true);
44
36
  url.query['format'] = 'json';
45
37
  return url.toString();
46
38
  }
47
-
48
39
  function pathWithoutBZParams(url) {
49
40
  url = new _urlParse["default"](url, {}, true);
50
41
  var query = url.query;
@@ -53,7 +44,6 @@ function pathWithoutBZParams(url) {
53
44
  url.query = query;
54
45
  return pathQueryHash(url.toString());
55
46
  }
56
-
57
47
  function removePropsAt(url) {
58
48
  url = new _urlParse["default"](url, {}, true);
59
49
  var query = url.query;
@@ -61,7 +51,6 @@ function removePropsAt(url) {
61
51
  url.query = query;
62
52
  return url.toString();
63
53
  }
64
-
65
54
  function urlToPageKey(url) {
66
55
  url = new _urlParse["default"](url, {}, true);
67
56
  var query = url.query;
@@ -70,13 +59,11 @@ function urlToPageKey(url) {
70
59
  url.query = query;
71
60
  return pathQuery(url.toString());
72
61
  }
73
-
74
62
  function withoutHash(url) {
75
63
  url = new _urlParse["default"](url, {}, true);
76
64
  url.hash = '';
77
65
  return url.toString();
78
66
  }
79
-
80
67
  function withoutBusters(url) {
81
68
  url = new _urlParse["default"](url, {}, true);
82
69
  var query = url.query;
@@ -84,7 +71,6 @@ function withoutBusters(url) {
84
71
  url.query = query;
85
72
  return pathQuery(url.toString());
86
73
  }
87
-
88
74
  function formatForXHR(url) {
89
75
  var formats = [withoutHash, withFormatJson];
90
76
  return formats.reduce(function (memo, f) {
package/utils/window.js CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.needsRefresh = needsRefresh;
5
-
6
5
  function needsRefresh(prevAssets, newAssets) {
7
6
  if (prevAssets && newAssets) {
8
7
  var hasNewAssets = !newAssets.every(function (asset) {