roboto-js 1.7.0 → 1.7.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.
- package/.last-build +1 -0
- package/dist/cjs/cookie_storage_adaptor.cjs +429 -0
- package/dist/cjs/index.cjs +57 -5
- package/dist/cjs/rbt_api.cjs +548 -463
- package/dist/cookie_storage_adaptor.js +415 -0
- package/dist/esm/cookie_storage_adaptor.js +226 -0
- package/dist/esm/index.js +37 -5
- package/dist/esm/rbt_api.js +50 -22
- package/dist/index.js +573 -0
- package/dist/rbt_api.js +2029 -0
- package/dist/rbt_file.js +223 -0
- package/dist/rbt_metrics_api.js +200 -0
- package/dist/rbt_object.js +665 -0
- package/dist/rbt_user.js +235 -0
- package/package.json +1 -1
- package/src/cookie_storage_adaptor.js +246 -0
- package/src/index.js +41 -5
- package/src/rbt_api.js +51 -20
package/dist/rbt_file.js
ADDED
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
3
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
4
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
5
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
6
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
7
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
8
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
9
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
10
|
+
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
11
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
12
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
13
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
14
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
15
|
+
function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
|
|
16
|
+
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
17
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
18
|
+
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
|
|
19
|
+
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
|
|
20
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
21
|
+
import { Upload } from 'tus-js-client';
|
|
22
|
+
import _ from 'lodash';
|
|
23
|
+
import EventEmitter from 'eventemitter3';
|
|
24
|
+
var RbtFile = /*#__PURE__*/function (_EventEmitter) {
|
|
25
|
+
function RbtFile(record, axiosInstance) {
|
|
26
|
+
var _this;
|
|
27
|
+
_classCallCheck(this, RbtFile);
|
|
28
|
+
_this = _callSuper(this, RbtFile); // Call the constructor of EventEmitter
|
|
29
|
+
|
|
30
|
+
_this.isRbtFile = true;
|
|
31
|
+
_this.id = record.id;
|
|
32
|
+
_this._axios = axiosInstance;
|
|
33
|
+
_this._internalData = record;
|
|
34
|
+
_this._data = record.data ? record.data : record.dataJson ? JSON.parse(record.dataJson) : {};
|
|
35
|
+
_this.progress = 0;
|
|
36
|
+
return _this;
|
|
37
|
+
}
|
|
38
|
+
_inherits(RbtFile, _EventEmitter);
|
|
39
|
+
return _createClass(RbtFile, [{
|
|
40
|
+
key: "get",
|
|
41
|
+
value: function get(path) {
|
|
42
|
+
return _.get(this._data, path);
|
|
43
|
+
}
|
|
44
|
+
}, {
|
|
45
|
+
key: "set",
|
|
46
|
+
value: function set(path, value) {
|
|
47
|
+
_.set(this._data, path, value);
|
|
48
|
+
}
|
|
49
|
+
}, {
|
|
50
|
+
key: "getData",
|
|
51
|
+
value: function getData() {
|
|
52
|
+
return _objectSpread({}, this._data);
|
|
53
|
+
}
|
|
54
|
+
}, {
|
|
55
|
+
key: "setData",
|
|
56
|
+
value: function setData(data) {
|
|
57
|
+
// Use lodash's merge to deeply merge the incoming data into _data
|
|
58
|
+
_.merge(this._data, data);
|
|
59
|
+
return _objectSpread({}, this._data); // Return the updated _data as a new object
|
|
60
|
+
}
|
|
61
|
+
}, {
|
|
62
|
+
key: "toRecord",
|
|
63
|
+
value: function toRecord() {
|
|
64
|
+
return _objectSpread(_objectSpread({}, this._internalData), {}, {
|
|
65
|
+
dataJson: JSON.stringify(this._data)
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}, {
|
|
69
|
+
key: "save",
|
|
70
|
+
value: function () {
|
|
71
|
+
var _save = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
72
|
+
var record, response, _e$response, _t;
|
|
73
|
+
return _regenerator().w(function (_context) {
|
|
74
|
+
while (1) switch (_context.p = _context.n) {
|
|
75
|
+
case 0:
|
|
76
|
+
if (this._internalData.type) {
|
|
77
|
+
_context.n = 1;
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
throw new Error('Cannot save object without type');
|
|
81
|
+
case 1:
|
|
82
|
+
_context.p = 1;
|
|
83
|
+
record = this.toRecord();
|
|
84
|
+
_context.n = 2;
|
|
85
|
+
return this._axios.post('/object_service/saveObject', [record]);
|
|
86
|
+
case 2:
|
|
87
|
+
response = _context.v;
|
|
88
|
+
if (!(response.data.ok === false)) {
|
|
89
|
+
_context.n = 3;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
throw new Error(response.data.message);
|
|
93
|
+
case 3:
|
|
94
|
+
this._internalData = response.data;
|
|
95
|
+
return _context.a(2, this);
|
|
96
|
+
case 4:
|
|
97
|
+
_context.p = 4;
|
|
98
|
+
_t = _context.v;
|
|
99
|
+
console.error('RbtFile.save.error:', (_e$response = _t.response) === null || _e$response === void 0 ? void 0 : _e$response.data);
|
|
100
|
+
throw _t;
|
|
101
|
+
case 5:
|
|
102
|
+
return _context.a(2);
|
|
103
|
+
}
|
|
104
|
+
}, _callee, this, [[1, 4]]);
|
|
105
|
+
}));
|
|
106
|
+
function save() {
|
|
107
|
+
return _save.apply(this, arguments);
|
|
108
|
+
}
|
|
109
|
+
return save;
|
|
110
|
+
}()
|
|
111
|
+
}, {
|
|
112
|
+
key: "delete",
|
|
113
|
+
value: function () {
|
|
114
|
+
var _delete2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
|
|
115
|
+
var record, response, _e$response2, _t2;
|
|
116
|
+
return _regenerator().w(function (_context2) {
|
|
117
|
+
while (1) switch (_context2.p = _context2.n) {
|
|
118
|
+
case 0:
|
|
119
|
+
if (this._internalData.type) {
|
|
120
|
+
_context2.n = 1;
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
throw new Error('Cannot delete object without type');
|
|
124
|
+
case 1:
|
|
125
|
+
_context2.p = 1;
|
|
126
|
+
record = this.toRecord();
|
|
127
|
+
_context2.n = 2;
|
|
128
|
+
return this._axios["delete"]("/object_service/deleteObject/".concat(this.id));
|
|
129
|
+
case 2:
|
|
130
|
+
response = _context2.v;
|
|
131
|
+
if (!(response.data.ok === false)) {
|
|
132
|
+
_context2.n = 3;
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
throw new Error(response.data.message);
|
|
136
|
+
case 3:
|
|
137
|
+
this._internalData = response.data;
|
|
138
|
+
return _context2.a(2, this);
|
|
139
|
+
case 4:
|
|
140
|
+
_context2.p = 4;
|
|
141
|
+
_t2 = _context2.v;
|
|
142
|
+
console.error('RbtFile.delete.error:', (_e$response2 = _t2.response) === null || _e$response2 === void 0 ? void 0 : _e$response2.data);
|
|
143
|
+
throw _t2;
|
|
144
|
+
case 5:
|
|
145
|
+
return _context2.a(2);
|
|
146
|
+
}
|
|
147
|
+
}, _callee2, this, [[1, 4]]);
|
|
148
|
+
}));
|
|
149
|
+
function _delete() {
|
|
150
|
+
return _delete2.apply(this, arguments);
|
|
151
|
+
}
|
|
152
|
+
return _delete;
|
|
153
|
+
}()
|
|
154
|
+
}, {
|
|
155
|
+
key: "uploadFile",
|
|
156
|
+
value: function uploadFile(file) {
|
|
157
|
+
var _this2 = this;
|
|
158
|
+
return new Promise(function (resolve, reject) {
|
|
159
|
+
var upload = new Upload(file, {
|
|
160
|
+
endpoint: _this2._axios.defaults.baseURL + "/file_service/files",
|
|
161
|
+
retryDelays: [0, 1000, 3000, 5000],
|
|
162
|
+
metadata: {
|
|
163
|
+
rbtfileid: _this2.id,
|
|
164
|
+
filename: file.name,
|
|
165
|
+
filetype: file.type
|
|
166
|
+
},
|
|
167
|
+
onError: function onError(error) {
|
|
168
|
+
console.error("Failed because:", error);
|
|
169
|
+
_this2.emit('error', error);
|
|
170
|
+
reject(error); // Reject the promise on error
|
|
171
|
+
},
|
|
172
|
+
onProgress: function onProgress(bytesUploaded, bytesTotal) {
|
|
173
|
+
var percentage = (bytesUploaded / bytesTotal * 100).toFixed(2);
|
|
174
|
+
_this2.emit('progress', percentage / 100); // Emit normalized progress
|
|
175
|
+
},
|
|
176
|
+
onSuccess: function onSuccess() {
|
|
177
|
+
//console.log("File uploaded to:", upload.url);
|
|
178
|
+
var m1 = upload.url.match(/\/([^\/]+)$/);
|
|
179
|
+
var remoteId = m1 ? m1[1] : null;
|
|
180
|
+
_this2.setData({
|
|
181
|
+
'remoteId': remoteId,
|
|
182
|
+
'remoteSrc': upload.url,
|
|
183
|
+
'sourceFile': {
|
|
184
|
+
name: upload.file.name,
|
|
185
|
+
size: upload.file.size,
|
|
186
|
+
type: upload.file.type,
|
|
187
|
+
lastModified: upload.file.lastModified
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
|
|
191
|
+
// Ensure save is called and finished before resolving the promise
|
|
192
|
+
_this2.save().then(function () {
|
|
193
|
+
_this2.emit('success', upload.url);
|
|
194
|
+
resolve(); // Resolve the promise after save is complete
|
|
195
|
+
})["catch"](function (error) {
|
|
196
|
+
console.error("Save failed:", error);
|
|
197
|
+
reject(error); // Reject the promise if save fails
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
// Check if there are any previous uploads to continue.
|
|
203
|
+
// upload.findPreviousUploads().then(function (previousUploads) {
|
|
204
|
+
// // Found previous uploads so we select the first one.
|
|
205
|
+
// if (previousUploads.length) {
|
|
206
|
+
// upload.resumeFromPreviousUpload(previousUploads[0])
|
|
207
|
+
// }
|
|
208
|
+
|
|
209
|
+
// // Start the upload
|
|
210
|
+
// upload.start();
|
|
211
|
+
// })
|
|
212
|
+
upload.start(); // Start the upload
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
}, {
|
|
216
|
+
key: "setProgress",
|
|
217
|
+
value: function setProgress(newProgress) {
|
|
218
|
+
this.progress = newProgress;
|
|
219
|
+
this.emit('progress', this.progress); // Emit a progress event
|
|
220
|
+
}
|
|
221
|
+
}]);
|
|
222
|
+
}(EventEmitter);
|
|
223
|
+
export { RbtFile as default };
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
2
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
7
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
8
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
9
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
10
|
+
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
11
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
12
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
13
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
14
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
15
|
+
function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
|
|
16
|
+
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
17
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
18
|
+
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
|
|
19
|
+
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
|
|
20
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
21
|
+
import axios from 'axios';
|
|
22
|
+
import EventEmitter from 'eventemitter3';
|
|
23
|
+
function getOrCreateDeviceId() {
|
|
24
|
+
if (typeof window !== "undefined" && window.localStorage) {
|
|
25
|
+
var deviceId = localStorage.getItem('robotoDeviceId');
|
|
26
|
+
if (!deviceId) {
|
|
27
|
+
// Modern browsers support crypto.randomUUID()
|
|
28
|
+
deviceId = crypto && crypto.randomUUID ? crypto.randomUUID() : Math.random().toString(36).slice(2) + Date.now().toString(36);
|
|
29
|
+
localStorage.setItem('robotoDeviceId', deviceId);
|
|
30
|
+
}
|
|
31
|
+
return deviceId;
|
|
32
|
+
}
|
|
33
|
+
// On server/Node.js, return undefined (or you can fallback to some other logic)
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
var RbtMetricsApi = /*#__PURE__*/function (_EventEmitter) {
|
|
37
|
+
/**
|
|
38
|
+
* You can pass either:
|
|
39
|
+
* - axiosInstance: an existing axios instance (recommended for same-host)
|
|
40
|
+
* - config: { baseUrl, headers, ... } to create a new instance (for different host)
|
|
41
|
+
*/
|
|
42
|
+
function RbtMetricsApi() {
|
|
43
|
+
var _this;
|
|
44
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
45
|
+
axiosInstance = _ref.axiosInstance,
|
|
46
|
+
config = _ref.config;
|
|
47
|
+
_classCallCheck(this, RbtMetricsApi);
|
|
48
|
+
_this = _callSuper(this, RbtMetricsApi);
|
|
49
|
+
if (axiosInstance) {
|
|
50
|
+
_this._axios = axiosInstance;
|
|
51
|
+
} else if (config) {
|
|
52
|
+
_this._axios = axios.create(config);
|
|
53
|
+
} else {
|
|
54
|
+
throw new Error("RbtMetricsApi requires either axiosInstance or config");
|
|
55
|
+
}
|
|
56
|
+
return _this;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Send an event to the metrics API.
|
|
61
|
+
* Usage:
|
|
62
|
+
* sendEvent('UIMain.userAction.login', { param1: 1, param2: 2 });
|
|
63
|
+
* sendEvent({ event: 'foo', ... });
|
|
64
|
+
*
|
|
65
|
+
roboto.metrics.sendEvent("UIMain.userAction.login", { foo: 123, bar: "baz" });
|
|
66
|
+
This will POST a payload like:
|
|
67
|
+
{
|
|
68
|
+
"event": "UIMain.userAction.login",
|
|
69
|
+
"category": "UIMain",
|
|
70
|
+
"action": "userAction",
|
|
71
|
+
"label": "login",
|
|
72
|
+
--
|
|
73
|
+
"foo": 123,
|
|
74
|
+
"bar": "baz"
|
|
75
|
+
}
|
|
76
|
+
*/
|
|
77
|
+
_inherits(RbtMetricsApi, _EventEmitter);
|
|
78
|
+
return _createClass(RbtMetricsApi, [{
|
|
79
|
+
key: "sendEvent",
|
|
80
|
+
value: (function () {
|
|
81
|
+
var _sendEvent = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(eventOrObj) {
|
|
82
|
+
var paramsObj,
|
|
83
|
+
payload,
|
|
84
|
+
parts,
|
|
85
|
+
deviceId,
|
|
86
|
+
res,
|
|
87
|
+
summary,
|
|
88
|
+
_err$response,
|
|
89
|
+
_err$response2,
|
|
90
|
+
_err$response3,
|
|
91
|
+
_err$config,
|
|
92
|
+
_err$config2,
|
|
93
|
+
_args = arguments,
|
|
94
|
+
_t;
|
|
95
|
+
return _regenerator().w(function (_context) {
|
|
96
|
+
while (1) switch (_context.p = _context.n) {
|
|
97
|
+
case 0:
|
|
98
|
+
paramsObj = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
|
|
99
|
+
if (!(typeof eventOrObj === 'string')) {
|
|
100
|
+
_context.n = 1;
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
parts = eventOrObj.split('.');
|
|
104
|
+
payload = _objectSpread({
|
|
105
|
+
event: eventOrObj,
|
|
106
|
+
category: parts[0] || undefined,
|
|
107
|
+
action: parts[1] || undefined,
|
|
108
|
+
label: parts[2] || undefined
|
|
109
|
+
}, paramsObj);
|
|
110
|
+
_context.n = 3;
|
|
111
|
+
break;
|
|
112
|
+
case 1:
|
|
113
|
+
if (!(_typeof(eventOrObj) === 'object' && eventOrObj !== null)) {
|
|
114
|
+
_context.n = 2;
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
payload = eventOrObj;
|
|
118
|
+
_context.n = 3;
|
|
119
|
+
break;
|
|
120
|
+
case 2:
|
|
121
|
+
throw new Error("Invalid arguments to sendEvent");
|
|
122
|
+
case 3:
|
|
123
|
+
// Add deviceId (only if available)
|
|
124
|
+
deviceId = getOrCreateDeviceId();
|
|
125
|
+
if (deviceId) {
|
|
126
|
+
payload.deviceId = deviceId;
|
|
127
|
+
}
|
|
128
|
+
_context.p = 4;
|
|
129
|
+
_context.n = 5;
|
|
130
|
+
return this._axios.post('/v1/metrics/event', payload);
|
|
131
|
+
case 5:
|
|
132
|
+
res = _context.v;
|
|
133
|
+
this.emit('sent', payload, res.data);
|
|
134
|
+
return _context.a(2, res.data);
|
|
135
|
+
case 6:
|
|
136
|
+
_context.p = 6;
|
|
137
|
+
_t = _context.v;
|
|
138
|
+
// Summarize Axios errors for clarity
|
|
139
|
+
summary = _t;
|
|
140
|
+
if (_t.isAxiosError) {
|
|
141
|
+
summary = {
|
|
142
|
+
isAxiosError: true,
|
|
143
|
+
message: _t.message,
|
|
144
|
+
status: (_err$response = _t.response) === null || _err$response === void 0 ? void 0 : _err$response.status,
|
|
145
|
+
statusText: (_err$response2 = _t.response) === null || _err$response2 === void 0 ? void 0 : _err$response2.statusText,
|
|
146
|
+
data: (_err$response3 = _t.response) === null || _err$response3 === void 0 ? void 0 : _err$response3.data,
|
|
147
|
+
url: (_err$config = _t.config) === null || _err$config === void 0 ? void 0 : _err$config.url,
|
|
148
|
+
method: (_err$config2 = _t.config) === null || _err$config2 === void 0 ? void 0 : _err$config2.method
|
|
149
|
+
// original: err, // Omit for clean logs, add if you want the raw error for debugging
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
this.emit('error', summary, payload);
|
|
153
|
+
throw summary;
|
|
154
|
+
case 7:
|
|
155
|
+
return _context.a(2);
|
|
156
|
+
}
|
|
157
|
+
}, _callee, this, [[4, 6]]);
|
|
158
|
+
}));
|
|
159
|
+
function sendEvent(_x) {
|
|
160
|
+
return _sendEvent.apply(this, arguments);
|
|
161
|
+
}
|
|
162
|
+
return sendEvent;
|
|
163
|
+
}()
|
|
164
|
+
/**
|
|
165
|
+
* Count-based metric event (requires `count` param).
|
|
166
|
+
* Example:
|
|
167
|
+
* roboto.metrics.countEvents("PGPT.Tool.SendSMS", { count: 4, agentId: "ABC" })
|
|
168
|
+
*
|
|
169
|
+
* is equivalent to:
|
|
170
|
+
* roboto.metrics.sendEvent("PGPT.Tool.SendSMS", { count: 4, agentId: "ABC" })
|
|
171
|
+
*/
|
|
172
|
+
)
|
|
173
|
+
}, {
|
|
174
|
+
key: "countEvents",
|
|
175
|
+
value: (function () {
|
|
176
|
+
var _countEvents = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(eventOrObj) {
|
|
177
|
+
var paramsObj,
|
|
178
|
+
_args2 = arguments;
|
|
179
|
+
return _regenerator().w(function (_context2) {
|
|
180
|
+
while (1) switch (_context2.n) {
|
|
181
|
+
case 0:
|
|
182
|
+
paramsObj = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : {};
|
|
183
|
+
if (!(!paramsObj || typeof paramsObj.count !== 'number')) {
|
|
184
|
+
_context2.n = 1;
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
throw new Error('countEvent requires a count param (number)');
|
|
188
|
+
case 1:
|
|
189
|
+
return _context2.a(2, this.sendEvent(eventOrObj, paramsObj));
|
|
190
|
+
}
|
|
191
|
+
}, _callee2, this);
|
|
192
|
+
}));
|
|
193
|
+
function countEvents(_x2) {
|
|
194
|
+
return _countEvents.apply(this, arguments);
|
|
195
|
+
}
|
|
196
|
+
return countEvents;
|
|
197
|
+
}())
|
|
198
|
+
}]);
|
|
199
|
+
}(EventEmitter);
|
|
200
|
+
export { RbtMetricsApi as default };
|