@miso.ai/client-sdk-core 1.8.0-beta.17 → 1.8.0-beta.18

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 (47) hide show
  1. package/dist/cjs/api/api.js +25 -0
  2. package/dist/cjs/api/ask.js +1 -1
  3. package/dist/cjs/api/helpers.js +1 -1
  4. package/dist/cjs/api/index.js +49 -19
  5. package/dist/cjs/api/interactions.js +1 -1
  6. package/dist/cjs/api/recommendation.js +1 -1
  7. package/dist/cjs/api/search.js +1 -1
  8. package/dist/cjs/classes.js +5 -15
  9. package/dist/cjs/client.js +2 -2
  10. package/dist/cjs/index.js +31 -5
  11. package/dist/cjs/plugin/index.js +3 -3
  12. package/dist/cjs/plugin/plugin-root.js +3 -3
  13. package/dist/cjs/root.js +2 -2
  14. package/dist/cjs/version.js +1 -1
  15. package/package.json +9 -9
  16. package/{dist/es/api/index.js → src/api/api.js} +9 -6
  17. package/src/api/ask.js +75 -0
  18. package/src/api/base.js +47 -0
  19. package/{dist/es → src}/api/helpers.js +47 -91
  20. package/src/api/index.js +7 -0
  21. package/src/api/interactions.js +54 -0
  22. package/{dist/es → src}/api/recommendation.js +11 -2
  23. package/{dist/es → src}/api/search.js +8 -2
  24. package/src/classes.js +7 -0
  25. package/{dist/es → src}/client.js +25 -10
  26. package/{dist/es → src}/cmd.js +7 -8
  27. package/{dist/es → src}/constants.js +2 -2
  28. package/{dist/es → src}/context.js +4 -1
  29. package/src/index.js +3 -0
  30. package/{dist/es → src}/plugin/anonymous.js +5 -4
  31. package/{dist/es → src}/plugin/auto-events.js +24 -25
  32. package/src/plugin/index.js +3 -0
  33. package/{dist/es → src}/plugin/page-info.js +28 -24
  34. package/{dist/es → src}/plugin/plugin-root.js +37 -22
  35. package/{dist/es → src}/plugin/urls.js +2 -1
  36. package/{dist/es → src}/plugin/user.js +32 -37
  37. package/{dist/es → src}/root.js +10 -4
  38. package/src/utils.js +1 -0
  39. package/src/version.js +1 -0
  40. package/dist/es/api/ask.js +0 -85
  41. package/dist/es/api/base.js +0 -96
  42. package/dist/es/api/interactions.js +0 -82
  43. package/dist/es/classes.js +0 -20
  44. package/dist/es/index.js +0 -2
  45. package/dist/es/plugin/index.js +0 -3
  46. package/dist/es/utils.js +0 -1
  47. 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,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 _base = _interopRequireDefault(require("./base"));
8
+ var _base = _interopRequireDefault(require("./base.js"));
9
9
  const _excluded = ["pollingInterval", "signal", "stallTimeout"];
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
11
  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; }
@@ -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,53 @@
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
+ var _api = _interopRequireDefault(require("./api.js"));
49
+ var _base = _interopRequireDefault(require("./base.js"));
50
+ var _helpers = _interopRequireDefault(require("./helpers.js"));
51
+ var _interactions = _interopRequireDefault(require("./interactions.js"));
52
+ var _ask = _interopRequireDefault(require("./ask.js"));
53
+ var _search = _interopRequireDefault(require("./search.js"));
54
+ var _recommendation = _interopRequireDefault(require("./recommendation.js"));
55
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _base = _interopRequireDefault(require("./base"));
7
+ var _base = _interopRequireDefault(require("./base.js"));
8
8
  const _excluded = ["useBeacon"],
9
9
  _excluded2 = ["options"];
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _base = _interopRequireDefault(require("./base"));
7
+ var _base = _interopRequireDefault(require("./base.js"));
8
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
9
  class Recommendation extends _base.default {
10
10
  constructor(api) {
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _base = _interopRequireDefault(require("./base"));
7
+ var _base = _interopRequireDefault(require("./base.js"));
8
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
9
  class Search extends _base.default {
10
10
  constructor(api) {
@@ -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() {
package/dist/cjs/index.js CHANGED
@@ -3,8 +3,34 @@
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
+ };
10
+ Object.defineProperty(exports, "MisoClient", {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _client.default;
14
+ }
15
+ });
16
+ Object.defineProperty(exports, "version", {
17
+ enumerable: true,
18
+ get: function () {
19
+ return _version.default;
20
+ }
21
+ });
22
+ var _version = _interopRequireDefault(require("./version.js"));
23
+ var _client = _interopRequireDefault(require("./client.js"));
24
+ var _index = require("./plugin/index.js");
25
+ Object.keys(_index).forEach(function (key) {
26
+ if (key === "default" || key === "__esModule") return;
27
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
28
+ if (key in exports && exports[key] === _index[key]) return;
29
+ Object.defineProperty(exports, key, {
30
+ enumerable: true,
31
+ get: function () {
32
+ return _index[key];
33
+ }
34
+ });
35
+ });
36
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -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.17';
7
+ var _default = '1.8.0-beta.18';
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.17"
32
+ "@miso.ai/commons": "1.8.0-beta.18"
33
33
  },
34
- "version": "1.8.0-beta.17"
34
+ "version": "1.8.0-beta.18"
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,75 @@
1
+ import { polling, signals, StallTimeoutAbortController } from '@miso.ai/commons';
2
+ import ApiBase from './base.js';
3
+
4
+ export default class Ask extends ApiBase {
5
+
6
+ constructor(api) {
7
+ super(api, 'ask');
8
+ }
9
+
10
+ async questions(payload, options = {}) {
11
+ if (typeof payload === 'string' && payload.charAt(0) !== '{') {
12
+ return new Answer(this, { question_id: payload }, options);
13
+ }
14
+ const response = await this._run('questions', payload, options);
15
+ return new Answer(this, response, options);
16
+ }
17
+
18
+ async _questions(payload, options) {
19
+ return this._run('questions', payload, options);
20
+ }
21
+
22
+ async _get(questionId, options) {
23
+ return this._run(`questions/${questionId}/answer`, undefined, { ...options, method: 'GET' });
24
+ }
25
+
26
+ }
27
+
28
+ class Answer {
29
+
30
+ constructor(api, { question_id }, options = {}) {
31
+ this._api = api;
32
+ this._questionId = question_id;
33
+ this._ac = new AbortController();
34
+ this._options = options;
35
+ }
36
+
37
+ get questionId() {
38
+ return this._questionId;
39
+ }
40
+
41
+ async get(options) {
42
+ return this._api._get(this._questionId, { ...this._options, ...options });
43
+ }
44
+
45
+ abort(reason) {
46
+ this._ac.abort(reason);
47
+ }
48
+
49
+ [Symbol.asyncIterator]() {
50
+ const fetch = async ({ signal } = {}) => {
51
+ // TODO: pass signal
52
+ const response = await this.get();
53
+ return [response, response.finished];
54
+ };
55
+ let { pollingInterval: interval, signal, stallTimeout = 120000, ...options } = this._options;
56
+ const stac = new StallTimeoutAbortController(stallTimeout);
57
+ signal = signals.any(this._ac.signal, stac.signal, signal);
58
+
59
+ let prevResponse;
60
+ const onResponse = (response, finished) => {
61
+ if (finished) {
62
+ stac.clear();
63
+ } else if (isUpdated(prevResponse, response)) {
64
+ stac.touch();
65
+ }
66
+ prevResponse = response;
67
+ };
68
+ return polling(fetch, { interval, signal, onResponse, ...options })[Symbol.asyncIterator]();
69
+ }
70
+
71
+ }
72
+
73
+ function isUpdated(prev, curr) {
74
+ return !prev || prev.answer_stage !== curr.answer_stage || prev.answer.length !== curr.answer.length;
75
+ }
@@ -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
+ }