@miso.ai/client-sdk-core 1.8.0-beta.9 → 1.8.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 (54) hide show
  1. package/dist/cjs/api/api.js +25 -0
  2. package/dist/cjs/api/ask.js +7 -6
  3. package/dist/cjs/api/constants.js +27 -0
  4. package/dist/cjs/api/helpers.js +1 -1
  5. package/dist/cjs/api/index.js +54 -19
  6. package/dist/cjs/api/interactions.js +5 -4
  7. package/dist/cjs/api/recommendation.js +9 -8
  8. package/dist/cjs/api/search.js +6 -5
  9. package/dist/cjs/classes.js +5 -15
  10. package/dist/cjs/client.js +2 -2
  11. package/dist/cjs/constants.js +2 -2
  12. package/dist/cjs/index.js +39 -5
  13. package/dist/cjs/plugin/auto-events.js +3 -2
  14. package/dist/cjs/plugin/index.js +3 -3
  15. package/dist/cjs/plugin/plugin-root.js +3 -3
  16. package/dist/cjs/root.js +2 -2
  17. package/dist/cjs/version.js +1 -1
  18. package/package.json +9 -9
  19. package/{dist/es/api/index.js → src/api/api.js} +9 -6
  20. package/src/api/ask.js +76 -0
  21. package/src/api/base.js +47 -0
  22. package/src/api/constants.js +20 -0
  23. package/{dist/es → src}/api/helpers.js +47 -91
  24. package/src/api/index.js +8 -0
  25. package/src/api/interactions.js +55 -0
  26. package/src/api/recommendation.js +34 -0
  27. package/src/api/search.js +22 -0
  28. package/src/classes.js +7 -0
  29. package/{dist/es → src}/client.js +25 -10
  30. package/{dist/es → src}/cmd.js +7 -8
  31. package/src/constants.js +4 -0
  32. package/{dist/es → src}/context.js +4 -1
  33. package/src/index.js +4 -0
  34. package/{dist/es → src}/plugin/anonymous.js +5 -4
  35. package/{dist/es → src}/plugin/auto-events.js +27 -27
  36. package/src/plugin/index.js +3 -0
  37. package/{dist/es → src}/plugin/page-info.js +28 -24
  38. package/{dist/es → src}/plugin/plugin-root.js +37 -22
  39. package/{dist/es → src}/plugin/urls.js +2 -1
  40. package/{dist/es → src}/plugin/user.js +32 -37
  41. package/{dist/es → src}/root.js +10 -4
  42. package/src/utils.js +1 -0
  43. package/src/version.js +1 -0
  44. package/dist/es/api/ask.js +0 -85
  45. package/dist/es/api/base.js +0 -96
  46. package/dist/es/api/interactions.js +0 -82
  47. package/dist/es/api/recommendation.js +0 -24
  48. package/dist/es/api/search.js +0 -15
  49. package/dist/es/classes.js +0 -20
  50. package/dist/es/constants.js +0 -4
  51. package/dist/es/index.js +0 -2
  52. package/dist/es/plugin/index.js +0 -3
  53. package/dist/es/utils.js +0 -1
  54. package/dist/es/version.js +0 -1
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _commons = require("@miso.ai/commons");
8
+ var _helpers = _interopRequireDefault(require("./helpers.js"));
9
+ var _interactions = _interopRequireDefault(require("./interactions.js"));
10
+ var _ask = _interopRequireDefault(require("./ask.js"));
11
+ var _search = _interopRequireDefault(require("./search.js"));
12
+ var _recommendation = _interopRequireDefault(require("./recommendation.js"));
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ class Api extends _commons.Component {
15
+ constructor(client, root) {
16
+ super('api', client);
17
+ this._client = client;
18
+ this.helpers = new _helpers.default(client, root);
19
+ this.interactions = new _interactions.default(this);
20
+ this.ask = new _ask.default(this);
21
+ this.search = new _search.default(this);
22
+ this.recommendation = new _recommendation.default(this);
23
+ }
24
+ }
25
+ exports.default = Api;
@@ -5,13 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _commons = require("@miso.ai/commons");
8
- var _base = _interopRequireDefault(require("./base"));
8
+ var _constants = require("./constants.js");
9
+ var _base = _interopRequireDefault(require("./base.js"));
9
10
  const _excluded = ["pollingInterval", "signal", "stallTimeout"];
10
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
12
  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
  class Ask extends _base.default {
13
14
  constructor(api) {
14
- super(api, 'ask');
15
+ super(api, _constants.GROUP.ASK);
15
16
  }
16
17
  async questions(payload) {
17
18
  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -20,14 +21,14 @@ class Ask extends _base.default {
20
21
  question_id: payload
21
22
  }, options);
22
23
  }
23
- const response = await this._run('questions', payload, options);
24
+ const response = await this._run(_constants.NAME.QUESTIONS, payload, options);
24
25
  return new Answer(this, response, options);
25
26
  }
26
27
  async _questions(payload, options) {
27
- return this._run('questions', payload, options);
28
+ return this._run(_constants.NAME.QUESTIONS, payload, options);
28
29
  }
29
30
  async _get(questionId, options) {
30
- return this._run(`questions/${questionId}/answer`, undefined, Object.assign({}, options, {
31
+ return this._run(`${_constants.NAME.QUESTIONS}/${questionId}/answer`, undefined, Object.assign({}, options, {
31
32
  method: 'GET'
32
33
  }));
33
34
  }
@@ -67,7 +68,7 @@ class Answer {
67
68
  {
68
69
  pollingInterval: interval,
69
70
  signal,
70
- stallTimeout = 30000
71
+ stallTimeout = 120000
71
72
  } = _this$_options,
72
73
  options = _objectWithoutPropertiesLoose(_this$_options, _excluded);
73
74
  const stac = new _commons.StallTimeoutAbortController(stallTimeout);
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.NAME = exports.GROUP = void 0;
7
+ const GROUP = Object.freeze({
8
+ ASK: 'ask',
9
+ SEARCH: 'search',
10
+ RECOMMENDATION: 'recommendation',
11
+ INTERACTIONS: 'interactions'
12
+ });
13
+ exports.GROUP = GROUP;
14
+ const NAME = Object.freeze({
15
+ QUESTIONS: 'questions',
16
+ SEARCH: 'search',
17
+ AUTOCOMPLETE: 'autocomplete',
18
+ MGET: 'mget',
19
+ USER_TO_PRODUCTS: 'user_to_products',
20
+ USER_TO_CATEGORIES: 'user_to_categories',
21
+ USER_TO_ATTRIBUTES: 'user_to_attributes',
22
+ USER_TO_TRENDING: 'user_to_trending',
23
+ USER_TO_HISTORY: 'user_to_history',
24
+ PRODUCT_TO_PRODUCTS: 'product_to_products',
25
+ UPLOAD: 'upload'
26
+ });
27
+ exports.NAME = NAME;
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _commons = require("@miso.ai/commons");
8
- var _constants = require("../constants");
8
+ var _constants = require("../constants.js");
9
9
  class ApiHelpers {
10
10
  constructor(client, root) {
11
11
  this._client = client;
@@ -3,23 +3,58 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
7
- var _commons = require("@miso.ai/commons");
8
- var _helpers = _interopRequireDefault(require("./helpers"));
9
- var _interactions = _interopRequireDefault(require("./interactions"));
10
- var _ask = _interopRequireDefault(require("./ask"));
11
- var _search = _interopRequireDefault(require("./search"));
12
- var _recommendation = _interopRequireDefault(require("./recommendation"));
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
- class Api extends _commons.Component {
15
- constructor(client, root) {
16
- super('api', client);
17
- this._client = client;
18
- this.helpers = new _helpers.default(client, root);
19
- this.interactions = new _interactions.default(this);
20
- this.ask = new _ask.default(this);
21
- this.search = new _search.default(this);
22
- this.recommendation = new _recommendation.default(this);
6
+ Object.defineProperty(exports, "Api", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _api.default;
23
10
  }
24
- }
25
- exports.default = Api;
11
+ });
12
+ Object.defineProperty(exports, "ApiBase", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _base.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "ApiHelpers", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _helpers.default;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "Ask", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _ask.default;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "Interactions", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _interactions.default;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "Recommendation", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _recommendation.default;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "Search", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _search.default;
46
+ }
47
+ });
48
+ exports.constants = void 0;
49
+ var _api = _interopRequireDefault(require("./api.js"));
50
+ var _base = _interopRequireDefault(require("./base.js"));
51
+ var _helpers = _interopRequireDefault(require("./helpers.js"));
52
+ var _interactions = _interopRequireDefault(require("./interactions.js"));
53
+ var _ask = _interopRequireDefault(require("./ask.js"));
54
+ var _search = _interopRequireDefault(require("./search.js"));
55
+ var _recommendation = _interopRequireDefault(require("./recommendation.js"));
56
+ var _constants = _interopRequireWildcard(require("./constants.js"));
57
+ exports.constants = _constants;
58
+ 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); }
59
+ 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; }
60
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -4,18 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _base = _interopRequireDefault(require("./base"));
7
+ var _constants = require("./constants.js");
8
+ var _base = _interopRequireDefault(require("./base.js"));
8
9
  const _excluded = ["useBeacon"],
9
10
  _excluded2 = ["options"];
10
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
12
  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
  class Interactions extends _base.default {
13
14
  constructor(api) {
14
- super(api, 'interactions');
15
+ super(api, _constants.GROUP.INTERACTIONS);
15
16
  }
16
17
  async upload(payload, options) {
17
18
  try {
18
- return await this._run('upload', payload, options);
19
+ return await this._run(_constants.NAME.UPLOAD, payload, options);
19
20
  } catch (e) {
20
21
  if (e.status === 400 && e.message && e.message.toLowerCase().indexOf('playground') > -1) {
21
22
  this._warn(`Ignore interactions uploaded to playground app.`);
@@ -44,7 +45,7 @@ class Interactions extends _base.default {
44
45
  apiName,
45
46
  payload
46
47
  } = _ref2;
47
- if (apiName === 'upload') {
48
+ if (apiName === _constants.NAME.UPLOAD) {
48
49
  payload = this._normalizeUploadPayload(payload);
49
50
  }
50
51
  return super._preprocess({
@@ -4,29 +4,30 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _base = _interopRequireDefault(require("./base"));
7
+ var _constants = require("./constants.js");
8
+ var _base = _interopRequireDefault(require("./base.js"));
8
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
10
  class Recommendation extends _base.default {
10
11
  constructor(api) {
11
- super(api, 'recommendation');
12
+ super(api, _constants.GROUP.RECOMMENDATION);
12
13
  }
13
14
  async userToProducts(payload, options) {
14
- return this._run('user_to_products', payload, options);
15
+ return this._run(_constants.NAME.USER_TO_PRODUCTS, payload, options);
15
16
  }
16
17
  async userToCategories(payload, options) {
17
- return this._run('user_to_categories', payload, options);
18
+ return this._run(_constants.NAME.USER_TO_CATEGORIES, payload, options);
18
19
  }
19
20
  async userToAttributes(payload, options) {
20
- return this._run('user_to_attributes', payload, options);
21
+ return this._run(_constants.NAME.USER_TO_ATTRIBUTES, payload, options);
21
22
  }
22
23
  async userToTrending(payload, options) {
23
- return this._run('user_to_trending', payload, options);
24
+ return this._run(_constants.NAME.USER_TO_TRENDING, payload, options);
24
25
  }
25
26
  async userToHistory(payload, options) {
26
- return this._run('user_to_history', payload, options);
27
+ return this._run(_constants.NAME.USER_TO_HISTORY, payload, options);
27
28
  }
28
29
  async productToProducts(payload, options) {
29
- return this._run('product_to_products', payload, options);
30
+ return this._run(_constants.NAME.PRODUCT_TO_PRODUCTS, payload, options);
30
31
  }
31
32
  }
32
33
  exports.default = Recommendation;
@@ -4,20 +4,21 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _base = _interopRequireDefault(require("./base"));
7
+ var _constants = require("./constants.js");
8
+ var _base = _interopRequireDefault(require("./base.js"));
8
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
10
  class Search extends _base.default {
10
11
  constructor(api) {
11
- super(api, 'search');
12
+ super(api, _constants.GROUP.SEARCH);
12
13
  }
13
14
  async search(payload, options) {
14
- return this._run('search', payload, options);
15
+ return this._run(_constants.NAME.SEARCH, payload, options);
15
16
  }
16
17
  async autocomplete(payload, options) {
17
- return this._run('autocomplete', payload, options);
18
+ return this._run(_constants.NAME.AUTOCOMPLETE, payload, options);
18
19
  }
19
20
  async multipleGet(payload, options) {
20
- return this._run('mget', payload, options);
21
+ return this._run(_constants.NAME.MGET, payload, options);
21
22
  }
22
23
  }
23
24
  exports.default = Search;
@@ -4,23 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _api = _interopRequireDefault(require("./api"));
8
- var _base = _interopRequireDefault(require("./api/base"));
9
- var _helpers = _interopRequireDefault(require("./api/helpers"));
10
- var _interactions = _interopRequireDefault(require("./api/interactions"));
11
- var _recommendation = _interopRequireDefault(require("./api/recommendation"));
12
- var _search = _interopRequireDefault(require("./api/search"));
13
- var _context = _interopRequireDefault(require("./context"));
7
+ var api = _interopRequireWildcard(require("./api/index.js"));
8
+ var _context = _interopRequireDefault(require("./context.js"));
14
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; }
15
12
  var _default = {
16
- api: {
17
- Api: _api.default,
18
- ApiBase: _base.default,
19
- ApiHelpers: _helpers.default,
20
- Interactions: _interactions.default,
21
- Recommendation: _recommendation.default,
22
- Search: _search.default
23
- },
13
+ api,
24
14
  context: {
25
15
  Context: _context.default
26
16
  }
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _commons = require("@miso.ai/commons");
8
8
  var _root = require("./root");
9
- var _api = _interopRequireDefault(require("./api"));
9
+ var _index = require("./api/index.js");
10
10
  var _context = _interopRequireDefault(require("./context"));
11
11
  var helpers = _interopRequireWildcard(require("./utils"));
12
12
  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); }
@@ -28,7 +28,7 @@ class MisoClient extends _commons.Component {
28
28
  super('client', _root.root);
29
29
  this._config(options);
30
30
  this.context = new _context.default(this);
31
- this.api = new _api.default(this, _root.root);
31
+ this.api = new _index.Api(this, _root.root);
32
32
  (0, _root.register)(this);
33
33
  }
34
34
  get version() {
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.API = void 0;
7
- const API = {
7
+ const API = Object.freeze({
8
8
  DATA_ENDPOINT: 'https://api-edge.askmiso.com/v1',
9
9
  EVENT_ENDPOINT: 'https://api.askmiso.com/v1'
10
- };
10
+ });
11
11
  exports.API = API;
package/dist/cjs/index.js CHANGED
@@ -3,8 +3,42 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
7
- var _client = _interopRequireDefault(require("./client"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
- var _default = _client.default;
10
- exports.default = _default;
6
+ var _exportNames = {
7
+ version: true,
8
+ MisoClient: true,
9
+ API: true
10
+ };
11
+ Object.defineProperty(exports, "API", {
12
+ enumerable: true,
13
+ get: function () {
14
+ return _index.constants;
15
+ }
16
+ });
17
+ Object.defineProperty(exports, "MisoClient", {
18
+ enumerable: true,
19
+ get: function () {
20
+ return _client.default;
21
+ }
22
+ });
23
+ Object.defineProperty(exports, "version", {
24
+ enumerable: true,
25
+ get: function () {
26
+ return _version.default;
27
+ }
28
+ });
29
+ var _version = _interopRequireDefault(require("./version.js"));
30
+ var _client = _interopRequireDefault(require("./client.js"));
31
+ var _index = require("./api/index.js");
32
+ var _index2 = require("./plugin/index.js");
33
+ Object.keys(_index2).forEach(function (key) {
34
+ if (key === "default" || key === "__esModule") return;
35
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
36
+ if (key in exports && exports[key] === _index2[key]) return;
37
+ Object.defineProperty(exports, key, {
38
+ enumerable: true,
39
+ get: function () {
40
+ return _index2[key];
41
+ }
42
+ });
43
+ });
44
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _commons = require("@miso.ai/commons");
8
+ var _index = require("../api/index.js");
8
9
  const PLUGIN_ID = 'std:auto-events';
9
10
  class AutoEventsPlugin extends _commons.Component {
10
11
  static get id() {
@@ -32,9 +33,9 @@ class AutoEventsPlugin extends _commons.Component {
32
33
  payload
33
34
  } = _ref;
34
35
  switch (apiGroup) {
35
- case 'search':
36
+ case _index.constants.GROUP.SEARCH:
36
37
  switch (apiName) {
37
- case 'search':
38
+ case _index.constants.NAME.SEARCH:
38
39
  this._captureSearchApiRequest(client, payload);
39
40
  break;
40
41
  }
@@ -21,7 +21,7 @@ Object.defineProperty(exports, "UserPlugin", {
21
21
  return _user.default;
22
22
  }
23
23
  });
24
- var _user = _interopRequireDefault(require("./user"));
25
- var _pageInfo = _interopRequireDefault(require("./page-info"));
26
- var _autoEvents = _interopRequireDefault(require("./auto-events"));
24
+ var _user = _interopRequireDefault(require("./user.js"));
25
+ var _pageInfo = _interopRequireDefault(require("./page-info.js"));
26
+ var _autoEvents = _interopRequireDefault(require("./auto-events.js"));
27
27
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _commons = require("@miso.ai/commons");
8
- var _classes = _interopRequireDefault(require("../classes"));
9
- var _anonymous = _interopRequireDefault(require("./anonymous"));
10
- var _urls = require("./urls");
8
+ var _classes = _interopRequireDefault(require("../classes.js"));
9
+ var _anonymous = _interopRequireDefault(require("./anonymous.js"));
10
+ var _urls = require("./urls.js");
11
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
12
  class PluginRoot extends _commons.Registry {
13
13
  constructor(root) {
package/dist/cjs/root.js CHANGED
@@ -7,8 +7,8 @@ exports.init = init;
7
7
  exports.register = register;
8
8
  exports.root = void 0;
9
9
  var _commons = require("@miso.ai/commons");
10
- var _version = _interopRequireDefault(require("./version"));
11
- var _pluginRoot = _interopRequireDefault(require("./plugin/plugin-root"));
10
+ var _version = _interopRequireDefault(require("./version.js"));
11
+ var _pluginRoot = _interopRequireDefault(require("./plugin/plugin-root.js"));
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
  /**
14
14
  * The hidden singleton root component that oversees all client components.
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _default = '1.8.0-beta.9';
7
+ var _default = '1.8.0';
8
8
  exports.default = _default;
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@miso.ai/client-sdk-core",
3
3
  "description": "A collection of shared utilies across many Miso packages",
4
+ "type": "module",
4
5
  "main": "dist/cjs/index.js",
5
- "module": "dist/es/index.js",
6
- "files": [
7
- "dist/*"
8
- ],
6
+ "module": "src/index.js",
7
+ "exports": {
8
+ "import": "./src/index.js",
9
+ "require": "./dist/cjs/index.js"
10
+ },
9
11
  "publishConfig": {
10
12
  "access": "public"
11
13
  },
12
14
  "scripts": {
13
- "start": "npx babel src --root-mode upward --out-dir dist/es --watch",
14
15
  "build:clean": "npx rimraf dist",
15
- "build:esm": "npx babel src --root-mode upward --out-dir dist/es",
16
16
  "build:cjs": "BABEL_ENV=cjs npx babel src --root-mode upward --out-dir dist/cjs",
17
- "build": "npm run build:clean && npm run build:esm && npm run build:cjs"
17
+ "build": "npm run build:clean && npm run build:cjs"
18
18
  },
19
19
  "repository": {
20
20
  "type": "git",
@@ -29,7 +29,7 @@
29
29
  "url": "https://github.com/MisoAI/miso-client-js-sdk/issues"
30
30
  },
31
31
  "dependencies": {
32
- "@miso.ai/commons": "1.8.0-beta.9"
32
+ "@miso.ai/commons": "1.8.0"
33
33
  },
34
- "version": "1.8.0-beta.9"
34
+ "version": "1.8.0"
35
35
  }
@@ -1,10 +1,12 @@
1
1
  import { Component } from '@miso.ai/commons';
2
- import ApiHelpers from './helpers';
3
- import Interactions from './interactions';
4
- import Ask from './ask';
5
- import Search from './search';
6
- import Recommendation from './recommendation';
2
+ import ApiHelpers from './helpers.js';
3
+ import Interactions from './interactions.js';
4
+ import Ask from './ask.js';
5
+ import Search from './search.js';
6
+ import Recommendation from './recommendation.js';
7
+
7
8
  export default class Api extends Component {
9
+
8
10
  constructor(client, root) {
9
11
  super('api', client);
10
12
  this._client = client;
@@ -14,4 +16,5 @@ export default class Api extends Component {
14
16
  this.search = new Search(this);
15
17
  this.recommendation = new Recommendation(this);
16
18
  }
17
- }
19
+
20
+ }
package/src/api/ask.js ADDED
@@ -0,0 +1,76 @@
1
+ import { polling, signals, StallTimeoutAbortController } from '@miso.ai/commons';
2
+ import { GROUP, NAME } from './constants.js';
3
+ import ApiBase from './base.js';
4
+
5
+ export default class Ask extends ApiBase {
6
+
7
+ constructor(api) {
8
+ super(api, GROUP.ASK);
9
+ }
10
+
11
+ async questions(payload, options = {}) {
12
+ if (typeof payload === 'string' && payload.charAt(0) !== '{') {
13
+ return new Answer(this, { question_id: payload }, options);
14
+ }
15
+ const response = await this._run(NAME.QUESTIONS, payload, options);
16
+ return new Answer(this, response, options);
17
+ }
18
+
19
+ async _questions(payload, options) {
20
+ return this._run(NAME.QUESTIONS, payload, options);
21
+ }
22
+
23
+ async _get(questionId, options) {
24
+ return this._run(`${NAME.QUESTIONS}/${questionId}/answer`, undefined, { ...options, method: 'GET' });
25
+ }
26
+
27
+ }
28
+
29
+ class Answer {
30
+
31
+ constructor(api, { question_id }, options = {}) {
32
+ this._api = api;
33
+ this._questionId = question_id;
34
+ this._ac = new AbortController();
35
+ this._options = options;
36
+ }
37
+
38
+ get questionId() {
39
+ return this._questionId;
40
+ }
41
+
42
+ async get(options) {
43
+ return this._api._get(this._questionId, { ...this._options, ...options });
44
+ }
45
+
46
+ abort(reason) {
47
+ this._ac.abort(reason);
48
+ }
49
+
50
+ [Symbol.asyncIterator]() {
51
+ const fetch = async ({ signal } = {}) => {
52
+ // TODO: pass signal
53
+ const response = await this.get();
54
+ return [response, response.finished];
55
+ };
56
+ let { pollingInterval: interval, signal, stallTimeout = 120000, ...options } = this._options;
57
+ const stac = new StallTimeoutAbortController(stallTimeout);
58
+ signal = signals.any(this._ac.signal, stac.signal, signal);
59
+
60
+ let prevResponse;
61
+ const onResponse = (response, finished) => {
62
+ if (finished) {
63
+ stac.clear();
64
+ } else if (isUpdated(prevResponse, response)) {
65
+ stac.touch();
66
+ }
67
+ prevResponse = response;
68
+ };
69
+ return polling(fetch, { interval, signal, onResponse, ...options })[Symbol.asyncIterator]();
70
+ }
71
+
72
+ }
73
+
74
+ function isUpdated(prev, curr) {
75
+ return !prev || prev.answer_stage !== curr.answer_stage || prev.answer.length !== curr.answer.length;
76
+ }
@@ -0,0 +1,47 @@
1
+ import { Component } from '@miso.ai/commons';
2
+
3
+ export default class ApiBase extends Component {
4
+
5
+ // TODO: use private fields (may encounter issues with rollup)
6
+
7
+ constructor(api, apiPath) {
8
+ super(apiPath, api);
9
+ this._apiPath = apiPath;
10
+ this.helpers = api.helpers;
11
+ this.clientOptions = api._client.options;
12
+ this.context = api._client.context;
13
+ }
14
+
15
+ async _run(apiName, payload, options = {}) {
16
+ const { bulk } = options;
17
+ const bulkInfo = bulk ? { bulk: this.helpers.bulkInfo } : undefined;
18
+ const apiGroup = this._apiPath;
19
+ const url = this._url({ apiGroup, apiName, payload, options });
20
+ payload = this._preprocess({ apiGroup, apiName, payload, options });
21
+ const requestData = { apiGroup, apiName, payload, url, options };
22
+ this._events.emit('request', { ...requestData, ...bulkInfo });
23
+ const response = await this._send(requestData);
24
+ const responseData = { ...requestData, response };
25
+ this._events.emit('response', { ...responseData, ...bulkInfo });
26
+ return this._postprocess(responseData);
27
+ }
28
+
29
+ _preprocess({ apiGroup, apiName, payload }) {
30
+ return this.helpers.applyPayloadPasses(this, { apiGroup, apiName, payload });
31
+ }
32
+
33
+ _url({ apiGroup, apiName, options }) {
34
+ const url = this.helpers.url([apiGroup, apiName], options);
35
+ return this.helpers.applyUrlPasses(this, { apiGroup, apiName, url, options });
36
+ }
37
+
38
+ async _send({ apiGroup, apiName, url, payload, options: { bulk, ...options } = {} }) {
39
+ return bulk ? this.helpers.fetchForBulk(apiGroup, apiName, payload) : this.helpers.fetch(url, payload, options);
40
+ }
41
+
42
+ _postprocess({ response }) {
43
+ // TODO: we can introduce response passes
44
+ return response.data;
45
+ }
46
+
47
+ }