@sanity/client 4.0.0-alpha.esm.6 → 4.0.1-0

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 (69) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +23 -16
  3. package/dist/sanityClient.browser.mjs +2806 -0
  4. package/dist/sanityClient.browser.mjs.map +7 -0
  5. package/index.js +7 -0
  6. package/lib/assets/assetsClient.js +102 -142
  7. package/lib/auth/authClient.js +20 -35
  8. package/lib/config.js +21 -43
  9. package/lib/data/dataMethods.js +42 -67
  10. package/lib/data/encodeQueryString.js +9 -15
  11. package/lib/data/listen.js +27 -56
  12. package/lib/data/patch.js +114 -167
  13. package/lib/data/transaction.js +95 -139
  14. package/lib/datasets/datasetsClient.js +31 -56
  15. package/lib/generateHelpUrl.js +11 -0
  16. package/lib/http/browserMiddleware.js +4 -3
  17. package/lib/http/errors.js +9 -15
  18. package/lib/http/nodeMiddleware.js +6 -10
  19. package/lib/http/queryString.js +4 -7
  20. package/lib/http/request.js +14 -28
  21. package/lib/http/requestOptions.js +7 -10
  22. package/lib/projects/projectsClient.js +19 -34
  23. package/lib/sanityClient.js +100 -157
  24. package/lib/users/usersClient.js +14 -27
  25. package/lib/util/defaults.js +6 -8
  26. package/lib/util/getSelection.js +3 -5
  27. package/lib/util/once.js +4 -6
  28. package/lib/util/pick.js +4 -6
  29. package/lib/validators.js +0 -26
  30. package/lib/warnings.js +9 -13
  31. package/package.json +51 -40
  32. package/sanityClient.d.ts +262 -105
  33. package/umd/sanityClient.js +5474 -146
  34. package/umd/sanityClient.min.js +14 -1
  35. package/dist/browser/sanityClient.js +0 -4165
  36. package/dist/node/sanityClient.js +0 -969
  37. package/lib/util/observable.js +0 -29
  38. package/src/assets/assetsClient.js +0 -132
  39. package/src/auth/authClient.js +0 -13
  40. package/src/config.js +0 -93
  41. package/src/data/dataMethods.js +0 -182
  42. package/src/data/encodeQueryString.js +0 -18
  43. package/src/data/listen.js +0 -159
  44. package/src/data/patch.js +0 -119
  45. package/src/data/transaction.js +0 -103
  46. package/src/datasets/datasetsClient.js +0 -28
  47. package/src/http/browserMiddleware.js +0 -1
  48. package/src/http/errors.js +0 -53
  49. package/src/http/nodeMiddleware.js +0 -11
  50. package/src/http/queryString.js +0 -10
  51. package/src/http/request.js +0 -50
  52. package/src/http/requestOptions.js +0 -29
  53. package/src/projects/projectsClient.js +0 -13
  54. package/src/sanityClient.js +0 -124
  55. package/src/users/usersClient.js +0 -9
  56. package/src/util/defaults.js +0 -9
  57. package/src/util/getSelection.js +0 -17
  58. package/src/util/observable.js +0 -6
  59. package/src/util/once.js +0 -12
  60. package/src/util/pick.js +0 -9
  61. package/src/validators.js +0 -76
  62. package/src/warnings.js +0 -25
  63. package/test/client.test.js +0 -2561
  64. package/test/encodeQueryString.test.js +0 -38
  65. package/test/fixtures/horsehead-nebula.jpg +0 -0
  66. package/test/fixtures/pdf-sample.pdf +0 -0
  67. package/test/helpers/sseServer.js +0 -27
  68. package/test/listen.test.js +0 -207
  69. package/test/warnings.test.disabled.js +0 -84
@@ -1,37 +1,29 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
- exports.dataMethods = void 0;
9
-
10
- var _observable = require("../util/observable");
11
-
6
+ exports.default = void 0;
12
7
  var validators = _interopRequireWildcard(require("../validators"));
13
-
14
- var _getSelection = require("../util/getSelection");
15
-
16
- var _encodeQueryString = require("./encodeQueryString");
17
-
18
- var _transaction = require("./transaction");
19
-
20
- var _patch = require("./patch");
21
-
22
- var _listen = require("./listen");
23
-
8
+ var _getSelection = _interopRequireDefault(require("../util/getSelection"));
9
+ var _encodeQueryString = _interopRequireDefault(require("./encodeQueryString"));
10
+ var _transaction = _interopRequireDefault(require("./transaction"));
11
+ var _patch = _interopRequireDefault(require("./patch"));
12
+ var _listen = _interopRequireDefault(require("./listen"));
13
+ var _operators = require("rxjs/operators");
14
+ var _rxjs = require("rxjs");
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
-
26
17
  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; }
27
-
28
- 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; }
29
-
18
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
19
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
20
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
21
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
22
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
30
23
  var excludeFalsey = function excludeFalsey(param, defValue) {
31
24
  var value = typeof param === 'undefined' ? defValue : param;
32
25
  return param === false ? undefined : value;
33
26
  };
34
-
35
27
  var getMutationQuery = function getMutationQuery() {
36
28
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
37
29
  return {
@@ -43,29 +35,21 @@ var getMutationQuery = function getMutationQuery() {
43
35
  skipCrossDatasetReferenceValidation: options.skipCrossDatasetReferenceValidation
44
36
  };
45
37
  };
46
-
47
38
  var isResponse = function isResponse(event) {
48
39
  return event.type === 'response';
49
40
  };
50
-
51
41
  var getBody = function getBody(event) {
52
42
  return event.body;
53
43
  };
54
-
55
44
  var indexBy = function indexBy(docs, attr) {
56
45
  return docs.reduce(function (indexed, doc) {
57
46
  indexed[attr(doc)] = doc;
58
47
  return indexed;
59
48
  }, Object.create(null));
60
49
  };
61
-
62
- var toPromise = function toPromise(observable) {
63
- return observable.toPromise();
64
- };
65
-
66
50
  var getQuerySizeLimit = 11264;
67
- var dataMethods = {
68
- listen: _listen.listen,
51
+ var _default = {
52
+ listen: _listen.default,
69
53
  getDataUrl: function getDataUrl(operation, path) {
70
54
  var config = this.clientConfig;
71
55
  var catalog = validators.hasDataset(config);
@@ -80,13 +64,11 @@ var dataMethods = {
80
64
  } : function (res) {
81
65
  return res.result;
82
66
  };
83
-
84
67
  var observable = this._dataRequest('query', {
85
68
  query: query,
86
69
  params: params
87
- }, options).pipe((0, _observable.map)(mapResponse));
88
-
89
- return this.isPromiseAPI() ? toPromise(observable) : observable;
70
+ }, options).pipe((0, _operators.map)(mapResponse));
71
+ return this.isPromiseAPI() ? (0, _rxjs.lastValueFrom)(observable) : observable;
90
72
  },
91
73
  getDocument: function getDocument(id) {
92
74
  var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -95,12 +77,10 @@ var dataMethods = {
95
77
  json: true,
96
78
  tag: opts.tag
97
79
  };
98
-
99
- var observable = this._requestObservable(options).pipe((0, _observable.filter)(isResponse), (0, _observable.map)(function (event) {
80
+ var observable = this._requestObservable(options).pipe((0, _operators.filter)(isResponse), (0, _operators.map)(function (event) {
100
81
  return event.body.documents && event.body.documents[0];
101
82
  }));
102
-
103
- return this.isPromiseAPI() ? toPromise(observable) : observable;
83
+ return this.isPromiseAPI() ? (0, _rxjs.lastValueFrom)(observable) : observable;
104
84
  },
105
85
  getDocuments: function getDocuments(ids) {
106
86
  var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -109,8 +89,7 @@ var dataMethods = {
109
89
  json: true,
110
90
  tag: opts.tag
111
91
  };
112
-
113
- var observable = this._requestObservable(options).pipe((0, _observable.filter)(isResponse), (0, _observable.map)(function (event) {
92
+ var observable = this._requestObservable(options).pipe((0, _operators.filter)(isResponse), (0, _operators.map)(function (event) {
114
93
  var indexed = indexBy(event.body.documents || [], function (doc) {
115
94
  return doc._id;
116
95
  });
@@ -118,8 +97,7 @@ var dataMethods = {
118
97
  return indexed[id] || null;
119
98
  });
120
99
  }));
121
-
122
- return this.isPromiseAPI() ? toPromise(observable) : observable;
100
+ return this.isPromiseAPI() ? (0, _rxjs.lastValueFrom)(observable) : observable;
123
101
  },
124
102
  create: function create(doc, options) {
125
103
  return this._create(doc, 'create', options);
@@ -133,17 +111,17 @@ var dataMethods = {
133
111
  return this._create(doc, 'createOrReplace', options);
134
112
  },
135
113
  patch: function patch(selector, operations) {
136
- return new _patch.Patch(selector, operations, this);
114
+ return new _patch.default(selector, operations, this);
137
115
  },
138
116
  delete: function _delete(selection, options) {
139
117
  return this.dataRequest('mutate', {
140
118
  mutations: [{
141
- delete: (0, _getSelection.getSelection)(selection)
119
+ delete: (0, _getSelection.default)(selection)
142
120
  }]
143
121
  }, options);
144
122
  },
145
123
  mutate: function mutate(mutations, options) {
146
- var mut = mutations instanceof _patch.Patch || mutations instanceof _transaction.Transaction ? mutations.serialize() : mutations;
124
+ var mut = mutations instanceof _patch.default || mutations instanceof _transaction.default ? mutations.serialize() : mutations;
147
125
  var muts = Array.isArray(mut) ? mut : [mut];
148
126
  var transactionId = options && options.transactionId;
149
127
  return this.dataRequest('mutate', {
@@ -152,29 +130,28 @@ var dataMethods = {
152
130
  }, options);
153
131
  },
154
132
  transaction: function transaction(operations) {
155
- return new _transaction.Transaction(operations, this);
133
+ return new _transaction.default(operations, this);
156
134
  },
157
135
  dataRequest: function dataRequest(endpoint, body) {
158
136
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
159
-
160
137
  var request = this._dataRequest(endpoint, body, options);
161
-
162
- return this.isPromiseAPI() ? toPromise(request) : request;
138
+ return this.isPromiseAPI() ? (0, _rxjs.lastValueFrom)(request) : request;
163
139
  },
164
140
  _dataRequest: function _dataRequest(endpoint, body) {
165
141
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
166
142
  var isMutation = endpoint === 'mutate';
167
- var isQuery = endpoint === 'query'; // Check if the query string is within a configured threshold,
168
- // in which case we can use GET. Otherwise, use POST.
143
+ var isQuery = endpoint === 'query';
169
144
 
170
- var strQuery = !isMutation && (0, _encodeQueryString.encodeQueryString)(body);
145
+ // Check if the query string is within a configured threshold,
146
+ // in which case we can use GET. Otherwise, use POST.
147
+ var strQuery = !isMutation && (0, _encodeQueryString.default)(body);
171
148
  var useGet = !isMutation && strQuery.length < getQuerySizeLimit;
172
149
  var stringQuery = useGet ? strQuery : '';
173
150
  var returnFirst = options.returnFirst;
174
151
  var timeout = options.timeout,
175
- token = options.token,
176
- tag = options.tag,
177
- headers = options.headers;
152
+ token = options.token,
153
+ tag = options.tag,
154
+ headers = options.headers;
178
155
  var uri = this.getDataUrl(endpoint, stringQuery);
179
156
  var reqOptions = {
180
157
  method: useGet ? 'GET' : 'POST',
@@ -188,21 +165,20 @@ var dataMethods = {
188
165
  tag: tag,
189
166
  canUseCdn: isQuery
190
167
  };
191
- return this._requestObservable(reqOptions).pipe((0, _observable.filter)(isResponse), (0, _observable.map)(getBody), (0, _observable.map)(function (res) {
168
+ return this._requestObservable(reqOptions).pipe((0, _operators.filter)(isResponse), (0, _operators.map)(getBody), (0, _operators.map)(function (res) {
192
169
  if (!isMutation) {
193
170
  return res;
194
- } // Should we return documents?
195
-
171
+ }
196
172
 
173
+ // Should we return documents?
197
174
  var results = res.results || [];
198
-
199
175
  if (options.returnDocuments) {
200
176
  return returnFirst ? results[0] && results[0].document : results.map(function (mut) {
201
177
  return mut.document;
202
178
  });
203
- } // Return a reduced subset
204
-
179
+ }
205
180
 
181
+ // Return a reduced subset
206
182
  var key = returnFirst ? 'documentId' : 'documentIds';
207
183
  var ids = returnFirst ? results[0] && results[0].id : results.map(function (mut) {
208
184
  return mut.id;
@@ -215,10 +191,8 @@ var dataMethods = {
215
191
  },
216
192
  _create: function _create(doc, op) {
217
193
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
218
-
219
194
  var mutation = _defineProperty({}, op, doc);
220
-
221
- var opts = Object.assign({
195
+ var opts = _extends({
222
196
  returnFirst: true,
223
197
  returnDocuments: true
224
198
  }, options);
@@ -227,4 +201,5 @@ var dataMethods = {
227
201
  }, opts);
228
202
  }
229
203
  };
230
- exports.dataMethods = dataMethods;
204
+ exports.default = _default;
205
+ module.exports = exports.default;
@@ -3,26 +3,20 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.encodeQueryString = void 0;
6
+ exports.default = void 0;
7
7
  var _excluded = ["tag"];
8
-
9
8
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
10
-
11
9
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
12
-
13
10
  var enc = encodeURIComponent;
14
-
15
- var encodeQueryString = function encodeQueryString(_ref) {
11
+ var _default = function _default(_ref) {
16
12
  var query = _ref.query,
17
- _ref$params = _ref.params,
18
- params = _ref$params === void 0 ? {} : _ref$params,
19
- _ref$options = _ref.options,
20
- options = _ref$options === void 0 ? {} : _ref$options;
21
-
13
+ _ref$params = _ref.params,
14
+ params = _ref$params === void 0 ? {} : _ref$params,
15
+ _ref$options = _ref.options,
16
+ options = _ref$options === void 0 ? {} : _ref$options;
22
17
  // We generally want tag at the start of the query string
23
18
  var tag = options.tag,
24
- opts = _objectWithoutProperties(options, _excluded);
25
-
19
+ opts = _objectWithoutProperties(options, _excluded);
26
20
  var q = "query=".concat(enc(query));
27
21
  var base = tag ? "?tag=".concat(enc(tag), "&").concat(q) : "?".concat(q);
28
22
  var qString = Object.keys(params).reduce(function (qs, param) {
@@ -33,5 +27,5 @@ var encodeQueryString = function encodeQueryString(_ref) {
33
27
  return options[option] ? "".concat(qs, "&").concat(enc(option), "=").concat(enc(options[option])) : qs;
34
28
  }, qString);
35
29
  };
36
-
37
- exports.encodeQueryString = encodeQueryString;
30
+ exports.default = _default;
31
+ module.exports = exports.default;
@@ -3,26 +3,20 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.listen = listen;
7
-
8
- var _observable = require("../util/observable");
9
-
6
+ exports.default = listen;
10
7
  var _eventsource = _interopRequireDefault(require("@sanity/eventsource"));
11
-
12
- var _pick = require("../util/pick");
13
-
14
- var _defaults = require("../util/defaults");
15
-
16
- var _encodeQueryString = require("./encodeQueryString");
17
-
8
+ var _pick = _interopRequireDefault(require("../util/pick"));
9
+ var _defaults = _interopRequireDefault(require("../util/defaults"));
10
+ var _encodeQueryString = _interopRequireDefault(require("./encodeQueryString"));
11
+ var _rxjs = require("rxjs");
18
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
13
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
14
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
20
15
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
-
22
16
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
-
24
- 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; }
25
-
17
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
18
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
19
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
26
20
  // Limit is 16K for a _request_, eg including headers. Have to account for an
27
21
  // unknown range of headers, but an average EventSource request from Chrome seems
28
22
  // to have around 700 bytes of cruft, so let us account for 1.2K to be "safe"
@@ -32,92 +26,79 @@ var possibleOptions = ['includePreviousRevision', 'includeResult', 'visibility',
32
26
  var defaultOptions = {
33
27
  includeResult: true
34
28
  };
35
-
36
29
  function listen(query, params) {
37
30
  var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
38
31
  var _this$clientConfig = this.clientConfig,
39
- url = _this$clientConfig.url,
40
- token = _this$clientConfig.token,
41
- withCredentials = _this$clientConfig.withCredentials,
42
- requestTagPrefix = _this$clientConfig.requestTagPrefix;
32
+ url = _this$clientConfig.url,
33
+ token = _this$clientConfig.token,
34
+ withCredentials = _this$clientConfig.withCredentials,
35
+ requestTagPrefix = _this$clientConfig.requestTagPrefix;
43
36
  var tag = opts.tag && requestTagPrefix ? [requestTagPrefix, opts.tag].join('.') : opts.tag;
44
-
45
- var options = _objectSpread(_objectSpread({}, (0, _defaults.defaults)(opts, defaultOptions)), {}, {
37
+ var options = _objectSpread(_objectSpread({}, (0, _defaults.default)(opts, defaultOptions)), {}, {
46
38
  tag: tag
47
39
  });
48
-
49
- var listenOpts = (0, _pick.pick)(options, possibleOptions);
50
- var qs = (0, _encodeQueryString.encodeQueryString)({
40
+ var listenOpts = (0, _pick.default)(options, possibleOptions);
41
+ var qs = (0, _encodeQueryString.default)({
51
42
  query: query,
52
43
  params: params,
53
44
  options: listenOpts,
54
45
  tag: tag
55
46
  });
56
47
  var uri = "".concat(url).concat(this.getDataUrl('listen', qs));
57
-
58
48
  if (uri.length > MAX_URL_LENGTH) {
59
- return new _observable.Observable(function (observer) {
49
+ return new _rxjs.Observable(function (observer) {
60
50
  return observer.error(new Error('Query too large for listener'));
61
51
  });
62
52
  }
63
-
64
53
  var listenFor = options.events ? options.events : ['mutation'];
65
54
  var shouldEmitReconnect = listenFor.indexOf('reconnect') !== -1;
66
55
  var esOptions = {};
67
-
68
56
  if (token || withCredentials) {
69
57
  esOptions.withCredentials = true;
70
58
  }
71
-
72
59
  if (token) {
73
60
  esOptions.headers = {
74
61
  Authorization: "Bearer ".concat(token)
75
62
  };
76
63
  }
77
-
78
- return new _observable.Observable(function (observer) {
64
+ return new _rxjs.Observable(function (observer) {
79
65
  var es = getEventSource();
80
66
  var reconnectTimer;
81
67
  var stopped = false;
82
-
83
68
  function onError() {
84
69
  if (stopped) {
85
70
  return;
86
71
  }
72
+ emitReconnect();
87
73
 
88
- emitReconnect(); // Allow event handlers of `emitReconnect` to cancel/close the reconnect attempt
89
-
74
+ // Allow event handlers of `emitReconnect` to cancel/close the reconnect attempt
90
75
  if (stopped) {
91
76
  return;
92
- } // Unless we've explicitly stopped the ES (in which case `stopped` should be true),
77
+ }
78
+
79
+ // Unless we've explicitly stopped the ES (in which case `stopped` should be true),
93
80
  // we should never be in a disconnected state. By default, EventSource will reconnect
94
81
  // automatically, in which case it sets readyState to `CONNECTING`, but in some cases
95
82
  // (like when a laptop lid is closed), it closes the connection. In these cases we need
96
83
  // to explicitly reconnect.
97
-
98
-
99
84
  if (es.readyState === EventSource.CLOSED) {
100
85
  unsubscribe();
101
86
  clearTimeout(reconnectTimer);
102
87
  reconnectTimer = setTimeout(open, 100);
103
88
  }
104
89
  }
105
-
106
90
  function onChannelError(err) {
107
91
  observer.error(cooerceError(err));
108
92
  }
109
-
110
93
  function onMessage(evt) {
111
94
  var event = parseEvent(evt);
112
95
  return event instanceof Error ? observer.error(event) : observer.next(event);
113
96
  }
114
-
115
97
  function onDisconnect(evt) {
116
98
  stopped = true;
117
99
  unsubscribe();
118
100
  observer.complete();
119
101
  }
120
-
121
102
  function unsubscribe() {
122
103
  es.removeEventListener('error', onError, false);
123
104
  es.removeEventListener('channelError', onChannelError, false);
@@ -127,7 +108,6 @@ function listen(query, params) {
127
108
  });
128
109
  es.close();
129
110
  }
130
-
131
111
  function emitReconnect() {
132
112
  if (shouldEmitReconnect) {
133
113
  observer.next({
@@ -135,7 +115,6 @@ function listen(query, params) {
135
115
  });
136
116
  }
137
117
  }
138
-
139
118
  function getEventSource() {
140
119
  var evs = new EventSource(uri, esOptions);
141
120
  evs.addEventListener('error', onError, false);
@@ -146,48 +125,40 @@ function listen(query, params) {
146
125
  });
147
126
  return evs;
148
127
  }
149
-
150
128
  function open() {
151
129
  es = getEventSource();
152
130
  }
153
-
154
131
  function stop() {
155
132
  stopped = true;
156
133
  unsubscribe();
157
134
  }
158
-
159
135
  return stop;
160
136
  });
161
137
  }
162
-
163
138
  function parseEvent(event) {
164
139
  try {
165
140
  var data = event.data && JSON.parse(event.data) || {};
166
- return Object.assign({
141
+ return _extends({
167
142
  type: event.type
168
143
  }, data);
169
144
  } catch (err) {
170
145
  return err;
171
146
  }
172
147
  }
173
-
174
148
  function cooerceError(err) {
175
149
  if (err instanceof Error) {
176
150
  return err;
177
151
  }
178
-
179
152
  var evt = parseEvent(err);
180
153
  return evt instanceof Error ? evt : new Error(extractErrorMessage(evt));
181
154
  }
182
-
183
155
  function extractErrorMessage(err) {
184
156
  if (!err.error) {
185
157
  return err.message || 'Unknown listener error';
186
158
  }
187
-
188
159
  if (err.error.description) {
189
160
  return err.error.description;
190
161
  }
191
-
192
162
  return typeof err.error === 'string' ? err.error : JSON.stringify(err.error, null, 2);
193
- }
163
+ }
164
+ module.exports = exports.default;