miolo-cli 3.0.0-beta.3
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/dist/miolo-cli.mjs +492 -0
- package/dist/miolo-cli.mjs.map +1 -0
- package/dist/miolo-cli.umd.js +749 -0
- package/dist/miolo-cli.umd.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,492 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* miolo-cli v3.0.0-beta.2
|
|
3
|
+
*
|
|
4
|
+
* https://www.afialapis.com/os/miolo
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Donato Lorenzo <donato@afialapis.com>
|
|
7
|
+
*
|
|
8
|
+
* This source code is licensed under the MIT license found in the
|
|
9
|
+
* LICENSE.md file in the root directory of this source tree.
|
|
10
|
+
*
|
|
11
|
+
* @license MIT
|
|
12
|
+
*/
|
|
13
|
+
/* eslint-disable */
|
|
14
|
+
function init_catcher(catcher_url, fetcher) {
|
|
15
|
+
if (typeof window == "undefined") {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (window.miolo_listeners === true) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// window.onerror = function(msg, file, line, col, error) {
|
|
23
|
+
// try {
|
|
24
|
+
// const params= {
|
|
25
|
+
// 'error': {
|
|
26
|
+
// msg, file, line, col, error
|
|
27
|
+
// },
|
|
28
|
+
// 'path' : window.location.pathname,
|
|
29
|
+
// 'agent': 'UserAgent' + navigator.userAgent
|
|
30
|
+
// }
|
|
31
|
+
//
|
|
32
|
+
// fetcher.post(catcher_url, params)
|
|
33
|
+
// } catch(e) {
|
|
34
|
+
// console.error(e)
|
|
35
|
+
// }
|
|
36
|
+
// }
|
|
37
|
+
|
|
38
|
+
window.addEventListener("error", event => {
|
|
39
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent
|
|
40
|
+
|
|
41
|
+
try {
|
|
42
|
+
var params = {
|
|
43
|
+
'error': {
|
|
44
|
+
msg: (event === null || event === void 0 ? void 0 : event.message) || 'Client error',
|
|
45
|
+
file: event === null || event === void 0 ? void 0 : event.filename,
|
|
46
|
+
line: event === null || event === void 0 ? void 0 : event.lineno,
|
|
47
|
+
col: event === null || event === void 0 ? void 0 : event.colno,
|
|
48
|
+
error: event === null || event === void 0 ? void 0 : event.error
|
|
49
|
+
},
|
|
50
|
+
'path': window.location.pathname,
|
|
51
|
+
'agent': 'UserAgent' + navigator.userAgent
|
|
52
|
+
};
|
|
53
|
+
fetcher.post(catcher_url, params);
|
|
54
|
+
} catch (e) {
|
|
55
|
+
console.error(e);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
window.addEventListener("unhandledrejection", event => {
|
|
59
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent
|
|
60
|
+
|
|
61
|
+
try {
|
|
62
|
+
var params = {
|
|
63
|
+
'warning': {
|
|
64
|
+
msg: (event === null || event === void 0 ? void 0 : event.reason) || 'Client Unhandled rejection',
|
|
65
|
+
file: undefined,
|
|
66
|
+
line: undefined,
|
|
67
|
+
col: undefined,
|
|
68
|
+
error: event === null || event === void 0 ? void 0 : event.reason
|
|
69
|
+
},
|
|
70
|
+
'path': window.location.pathname,
|
|
71
|
+
'agent': 'UserAgent' + navigator.userAgent
|
|
72
|
+
};
|
|
73
|
+
fetcher.post(catcher_url, params);
|
|
74
|
+
} catch (e) {
|
|
75
|
+
console.error(e);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
window.miolo_listeners = true;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) {
|
|
82
|
+
try {
|
|
83
|
+
var i = n[a](c),
|
|
84
|
+
u = i.value;
|
|
85
|
+
} catch (n) {
|
|
86
|
+
return void e(n);
|
|
87
|
+
}
|
|
88
|
+
i.done ? t(u) : Promise.resolve(u).then(r, o);
|
|
89
|
+
}
|
|
90
|
+
function _asyncToGenerator(n) {
|
|
91
|
+
return function () {
|
|
92
|
+
var t = this,
|
|
93
|
+
e = arguments;
|
|
94
|
+
return new Promise(function (r, o) {
|
|
95
|
+
var a = n.apply(t, e);
|
|
96
|
+
function _next(n) {
|
|
97
|
+
asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
|
|
98
|
+
}
|
|
99
|
+
function _throw(n) {
|
|
100
|
+
asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
|
|
101
|
+
}
|
|
102
|
+
_next(void 0);
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
function _defineProperty(e, r, t) {
|
|
107
|
+
return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
108
|
+
value: t,
|
|
109
|
+
enumerable: true,
|
|
110
|
+
configurable: true,
|
|
111
|
+
writable: true
|
|
112
|
+
}) : e[r] = t, e;
|
|
113
|
+
}
|
|
114
|
+
function ownKeys(e, r) {
|
|
115
|
+
var t = Object.keys(e);
|
|
116
|
+
if (Object.getOwnPropertySymbols) {
|
|
117
|
+
var o = Object.getOwnPropertySymbols(e);
|
|
118
|
+
r && (o = o.filter(function (r) {
|
|
119
|
+
return Object.getOwnPropertyDescriptor(e, r).enumerable;
|
|
120
|
+
})), t.push.apply(t, o);
|
|
121
|
+
}
|
|
122
|
+
return t;
|
|
123
|
+
}
|
|
124
|
+
function _objectSpread2(e) {
|
|
125
|
+
for (var r = 1; r < arguments.length; r++) {
|
|
126
|
+
var t = null != arguments[r] ? arguments[r] : {};
|
|
127
|
+
r % 2 ? ownKeys(Object(t), true).forEach(function (r) {
|
|
128
|
+
_defineProperty(e, r, t[r]);
|
|
129
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
|
|
130
|
+
Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
return e;
|
|
134
|
+
}
|
|
135
|
+
function _toPrimitive(t, r) {
|
|
136
|
+
if ("object" != typeof t || !t) return t;
|
|
137
|
+
var e = t[Symbol.toPrimitive];
|
|
138
|
+
if (void 0 !== e) {
|
|
139
|
+
var i = e.call(t, r);
|
|
140
|
+
if ("object" != typeof i) return i;
|
|
141
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
142
|
+
}
|
|
143
|
+
return ("string" === r ? String : Number)(t);
|
|
144
|
+
}
|
|
145
|
+
function _toPropertyKey(t) {
|
|
146
|
+
var i = _toPrimitive(t, "string");
|
|
147
|
+
return "symbol" == typeof i ? i : i + "";
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Transform an JSON object to a query string
|
|
152
|
+
*/
|
|
153
|
+
var _parse_value = value => {
|
|
154
|
+
try {
|
|
155
|
+
return value.replace(/\+/g, '%2B');
|
|
156
|
+
} catch (e) {
|
|
157
|
+
return value;
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
function json_to_query_string(obj) {
|
|
161
|
+
if (obj && Object.keys(obj).length > 0) {
|
|
162
|
+
var uparams = new URLSearchParams();
|
|
163
|
+
var _loop = function _loop(key) {
|
|
164
|
+
if (Object.hasOwn(obj, key)) {
|
|
165
|
+
var value = obj[key];
|
|
166
|
+
if (Array.isArray(value)) {
|
|
167
|
+
value.forEach(item => uparams.append(key, _parse_value(item)));
|
|
168
|
+
} else if (value !== undefined && value !== null) {
|
|
169
|
+
uparams.append(key, _parse_value(value));
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
for (var key in obj) {
|
|
174
|
+
_loop(key);
|
|
175
|
+
}
|
|
176
|
+
return "?".concat(uparams.toString());
|
|
177
|
+
}
|
|
178
|
+
return '';
|
|
179
|
+
}
|
|
180
|
+
function trim_left(str, what) {
|
|
181
|
+
return str.replace(new RegExp("^".concat(what, "+")), '');
|
|
182
|
+
}
|
|
183
|
+
function omit_nil(obj) {
|
|
184
|
+
if (typeof obj !== 'object') return obj;
|
|
185
|
+
return Object.keys(obj).reduce((acc, v) => {
|
|
186
|
+
if (obj[v] !== undefined) acc[v] = obj[v];
|
|
187
|
+
return acc;
|
|
188
|
+
}, {});
|
|
189
|
+
}
|
|
190
|
+
function parse_login_cookie(response) {
|
|
191
|
+
if (typeof window !== 'object') {
|
|
192
|
+
return undefined;
|
|
193
|
+
}
|
|
194
|
+
try {
|
|
195
|
+
var raw = response.headers.raw()['set-cookie'];
|
|
196
|
+
return raw.map(entry => {
|
|
197
|
+
var parts = entry.split(';');
|
|
198
|
+
var cookiePart = parts[0];
|
|
199
|
+
return cookiePart;
|
|
200
|
+
}).join(';');
|
|
201
|
+
} catch (e) {
|
|
202
|
+
console.log('[miolo-cli] Could not get the set-cookie after login');
|
|
203
|
+
return undefined;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
class Fetcher {
|
|
208
|
+
/**
|
|
209
|
+
* @param {*} config {hostname, port, force_hostname, silent_fail: false}
|
|
210
|
+
*/
|
|
211
|
+
constructor(config) {
|
|
212
|
+
this.config = config;
|
|
213
|
+
this.auth = undefined;
|
|
214
|
+
this.cookie = undefined;
|
|
215
|
+
}
|
|
216
|
+
set_auth(auth) {
|
|
217
|
+
if (auth) {
|
|
218
|
+
var {
|
|
219
|
+
username,
|
|
220
|
+
password
|
|
221
|
+
} = auth;
|
|
222
|
+
this.auth = {
|
|
223
|
+
username,
|
|
224
|
+
password
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
get_headers() {
|
|
229
|
+
var headers = {};
|
|
230
|
+
if (this.auth) {
|
|
231
|
+
var {
|
|
232
|
+
username,
|
|
233
|
+
password
|
|
234
|
+
} = this.auth;
|
|
235
|
+
username = username || '';
|
|
236
|
+
password = password || '';
|
|
237
|
+
var sauth;
|
|
238
|
+
try {
|
|
239
|
+
sauth = 'Basic ' + Buffer.from(username + ":" + password).toString('base64');
|
|
240
|
+
} catch (_) {
|
|
241
|
+
sauth = 'Basic ' + btoa(username + ":" + password);
|
|
242
|
+
}
|
|
243
|
+
headers['Authorization'] = sauth;
|
|
244
|
+
}
|
|
245
|
+
if (this.cookie) {
|
|
246
|
+
headers['Cookie'] = this.cookie;
|
|
247
|
+
}
|
|
248
|
+
return headers;
|
|
249
|
+
}
|
|
250
|
+
_prepare_url(url) {
|
|
251
|
+
var endpoint = '/' + trim_left(url, '/');
|
|
252
|
+
var {
|
|
253
|
+
hostname,
|
|
254
|
+
port,
|
|
255
|
+
force_hostname
|
|
256
|
+
} = this.config || {};
|
|
257
|
+
if (hostname && force_hostname) {
|
|
258
|
+
return "http://".concat(hostname, ":").concat(port).concat(endpoint);
|
|
259
|
+
}
|
|
260
|
+
return endpoint;
|
|
261
|
+
}
|
|
262
|
+
_fetch(method, url, params) {
|
|
263
|
+
var _arguments = arguments,
|
|
264
|
+
_this = this;
|
|
265
|
+
return _asyncToGenerator(function* () {
|
|
266
|
+
var auth = _arguments.length > 3 && _arguments[3] !== undefined ? _arguments[3] : undefined;
|
|
267
|
+
_this.set_auth(auth);
|
|
268
|
+
var request = {
|
|
269
|
+
method,
|
|
270
|
+
mode: 'cors',
|
|
271
|
+
credentials: 'include',
|
|
272
|
+
headers: _objectSpread2({
|
|
273
|
+
'content-type': 'application/json'
|
|
274
|
+
}, _this.get_headers() || {})
|
|
275
|
+
};
|
|
276
|
+
var wurl = _this._prepare_url(url);
|
|
277
|
+
if (method === 'POST') {
|
|
278
|
+
request.body = JSON.stringify(params || {}, (k, v) => v === undefined ? null : v);
|
|
279
|
+
} else if (method === 'GET') {
|
|
280
|
+
if (params) {
|
|
281
|
+
wurl += json_to_query_string(params);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
var response = yield fetch(wurl, request);
|
|
285
|
+
if (response.redirected) {
|
|
286
|
+
var isBrowser = typeof window == 'object';
|
|
287
|
+
if (isBrowser) {
|
|
288
|
+
// JSDOM does not support navigation, so lets skip it for tests
|
|
289
|
+
var isTest = typeof navigator !== "undefined" && navigator.userAgent.includes("Node.js");
|
|
290
|
+
if (!isTest) {
|
|
291
|
+
window.location.replace(response.url);
|
|
292
|
+
return Promise.resolve(response);
|
|
293
|
+
} else {
|
|
294
|
+
console.error("Response for ".concat(wurl, " is a redirect to ").concat(response.url, ". But you are in a test environment, where redirects cannot be done. Unexpected results are coming..."));
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
if (response.headers.get('content-type').indexOf('json') >= 0) {
|
|
299
|
+
var _data = yield response.json();
|
|
300
|
+
return {
|
|
301
|
+
data: _data,
|
|
302
|
+
status: response.status,
|
|
303
|
+
response
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
var data = yield response.text();
|
|
307
|
+
return {
|
|
308
|
+
data,
|
|
309
|
+
status: response.status,
|
|
310
|
+
response
|
|
311
|
+
};
|
|
312
|
+
})();
|
|
313
|
+
}
|
|
314
|
+
get(url, params) {
|
|
315
|
+
var _arguments2 = arguments,
|
|
316
|
+
_this2 = this;
|
|
317
|
+
return _asyncToGenerator(function* () {
|
|
318
|
+
var auth = _arguments2.length > 2 && _arguments2[2] !== undefined ? _arguments2[2] : undefined;
|
|
319
|
+
/* eslint no-unused-vars:0 */
|
|
320
|
+
try {
|
|
321
|
+
var resp = yield _this2._fetch('GET', url, omit_nil(params), auth);
|
|
322
|
+
return resp;
|
|
323
|
+
} catch (e) {
|
|
324
|
+
var _this2$config;
|
|
325
|
+
if (((_this2$config = _this2.config) === null || _this2$config === void 0 ? void 0 : _this2$config.silent_fail) !== true) {
|
|
326
|
+
console.error("Error on GET ".concat(url));
|
|
327
|
+
console.error(e);
|
|
328
|
+
}
|
|
329
|
+
return {
|
|
330
|
+
data: e,
|
|
331
|
+
status: -1
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
})();
|
|
335
|
+
}
|
|
336
|
+
post(url, data) {
|
|
337
|
+
var _arguments3 = arguments,
|
|
338
|
+
_this3 = this;
|
|
339
|
+
return _asyncToGenerator(function* () {
|
|
340
|
+
var auth = _arguments3.length > 2 && _arguments3[2] !== undefined ? _arguments3[2] : undefined;
|
|
341
|
+
try {
|
|
342
|
+
var resp = yield _this3._fetch('POST', url, data, auth);
|
|
343
|
+
return resp;
|
|
344
|
+
} catch (e) {
|
|
345
|
+
var _this3$config;
|
|
346
|
+
if (((_this3$config = _this3.config) === null || _this3$config === void 0 ? void 0 : _this3$config.silent_fail) !== true) {
|
|
347
|
+
console.error("Error on POST ".concat(url));
|
|
348
|
+
console.error(e);
|
|
349
|
+
}
|
|
350
|
+
return {
|
|
351
|
+
data: e,
|
|
352
|
+
status: -1
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
})();
|
|
356
|
+
}
|
|
357
|
+
login(url, _ref) {
|
|
358
|
+
var _this4 = this;
|
|
359
|
+
return _asyncToGenerator(function* () {
|
|
360
|
+
var {
|
|
361
|
+
username,
|
|
362
|
+
password
|
|
363
|
+
} = _ref;
|
|
364
|
+
var res = yield _this4._fetch('POST', url || '/login', {
|
|
365
|
+
username,
|
|
366
|
+
password
|
|
367
|
+
});
|
|
368
|
+
_this4.cookie = parse_login_cookie(res.response);
|
|
369
|
+
return res;
|
|
370
|
+
})();
|
|
371
|
+
}
|
|
372
|
+
logout(url) {
|
|
373
|
+
var _this5 = this;
|
|
374
|
+
return _asyncToGenerator(function* () {
|
|
375
|
+
_this5.cookie = undefined;
|
|
376
|
+
var res = yield _this5._fetch('POST', url || '/logout', {});
|
|
377
|
+
return res;
|
|
378
|
+
})();
|
|
379
|
+
}
|
|
380
|
+
read(url, params) {
|
|
381
|
+
var _arguments4 = arguments,
|
|
382
|
+
_this6 = this;
|
|
383
|
+
return _asyncToGenerator(function* () {
|
|
384
|
+
var auth = _arguments4.length > 2 && _arguments4[2] !== undefined ? _arguments4[2] : undefined;
|
|
385
|
+
var result = yield _this6.get("".concat(url, "/read"), params, auth);
|
|
386
|
+
return result.data;
|
|
387
|
+
})();
|
|
388
|
+
}
|
|
389
|
+
key_list(url, params) {
|
|
390
|
+
var _arguments5 = arguments,
|
|
391
|
+
_this7 = this;
|
|
392
|
+
return _asyncToGenerator(function* () {
|
|
393
|
+
var auth = _arguments5.length > 2 && _arguments5[2] !== undefined ? _arguments5[2] : undefined;
|
|
394
|
+
var result = yield _this7.get("".concat(url, "/key_list"), params, auth);
|
|
395
|
+
return result.data;
|
|
396
|
+
})();
|
|
397
|
+
}
|
|
398
|
+
name_list(url, params) {
|
|
399
|
+
var _arguments6 = arguments,
|
|
400
|
+
_this8 = this;
|
|
401
|
+
return _asyncToGenerator(function* () {
|
|
402
|
+
var auth = _arguments6.length > 2 && _arguments6[2] !== undefined ? _arguments6[2] : undefined;
|
|
403
|
+
var result = yield _this8.key_list(url, params, auth);
|
|
404
|
+
return Object.values(result);
|
|
405
|
+
})();
|
|
406
|
+
}
|
|
407
|
+
find(url, id) {
|
|
408
|
+
var _arguments7 = arguments,
|
|
409
|
+
_this9 = this;
|
|
410
|
+
return _asyncToGenerator(function* () {
|
|
411
|
+
var auth = _arguments7.length > 2 && _arguments7[2] !== undefined ? _arguments7[2] : undefined;
|
|
412
|
+
var result = yield _this9.get("".concat(url, "/find"), {
|
|
413
|
+
id: id
|
|
414
|
+
}, auth);
|
|
415
|
+
return result.data;
|
|
416
|
+
})();
|
|
417
|
+
}
|
|
418
|
+
distinct(url, field, params) {
|
|
419
|
+
var _arguments8 = arguments,
|
|
420
|
+
_this0 = this;
|
|
421
|
+
return _asyncToGenerator(function* () {
|
|
422
|
+
var auth = _arguments8.length > 3 && _arguments8[3] !== undefined ? _arguments8[3] : undefined;
|
|
423
|
+
var nparams = _objectSpread2(_objectSpread2({}, params), {}, {
|
|
424
|
+
distinct_field: field
|
|
425
|
+
});
|
|
426
|
+
var result = yield _this0.get("".concat(url, "/distinct"), nparams, auth);
|
|
427
|
+
return result.data;
|
|
428
|
+
})();
|
|
429
|
+
}
|
|
430
|
+
upsave(url, data) {
|
|
431
|
+
var _arguments9 = arguments,
|
|
432
|
+
_this1 = this;
|
|
433
|
+
return _asyncToGenerator(function* () {
|
|
434
|
+
var auth = _arguments9.length > 2 && _arguments9[2] !== undefined ? _arguments9[2] : undefined;
|
|
435
|
+
var result;
|
|
436
|
+
if (data.id == undefined) {
|
|
437
|
+
delete data.id;
|
|
438
|
+
result = yield _this1.post("".concat(url, "/save"), data, auth);
|
|
439
|
+
} else {
|
|
440
|
+
result = yield _this1.post("".concat(url, "/update"), data, auth);
|
|
441
|
+
}
|
|
442
|
+
return result.data;
|
|
443
|
+
})();
|
|
444
|
+
}
|
|
445
|
+
remove(url, id) {
|
|
446
|
+
var _arguments0 = arguments,
|
|
447
|
+
_this10 = this;
|
|
448
|
+
return _asyncToGenerator(function* () {
|
|
449
|
+
var auth = _arguments0.length > 2 && _arguments0[2] !== undefined ? _arguments0[2] : undefined;
|
|
450
|
+
var data = {
|
|
451
|
+
id: id
|
|
452
|
+
};
|
|
453
|
+
var result = yield _this10.post("".concat(url, "/delete"), data, auth);
|
|
454
|
+
return result.data;
|
|
455
|
+
})();
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
Fetcher.keyList = Fetcher.key_list;
|
|
459
|
+
Fetcher.nameList = Fetcher.name_list;
|
|
460
|
+
|
|
461
|
+
function init_fetcher(config) {
|
|
462
|
+
var fetcher = new Fetcher(config);
|
|
463
|
+
return fetcher;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
// import {init_socket} from './socket/index.mjs'
|
|
467
|
+
|
|
468
|
+
function miolo_client(context) {
|
|
469
|
+
var {
|
|
470
|
+
config
|
|
471
|
+
} = context;
|
|
472
|
+
var fetcher = init_fetcher(config);
|
|
473
|
+
if (config !== null && config !== void 0 && config.catcher_url) {
|
|
474
|
+
init_catcher(config === null || config === void 0 ? void 0 : config.catcher_url, fetcher);
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
// let socket
|
|
478
|
+
// if (config?.socket?.enabled===true) {
|
|
479
|
+
// const domain = config?.socket?.domain
|
|
480
|
+
// const options = config?.socket?.options
|
|
481
|
+
// socket = init_socket(domain, options)
|
|
482
|
+
// }
|
|
483
|
+
|
|
484
|
+
var miolo_obj = {
|
|
485
|
+
fetcher
|
|
486
|
+
//socket
|
|
487
|
+
};
|
|
488
|
+
return miolo_obj;
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
export { miolo_client };
|
|
492
|
+
//# sourceMappingURL=miolo-cli.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"miolo-cli.mjs","sources":["../src/catcher/index.mjs","../src/fetcher/utils.mjs","../src/fetcher/fetcher.mjs","../src/fetcher/index.mjs","../src/index.mjs"],"sourcesContent":["function init_catcher (catcher_url, fetcher) {\n if (typeof window == \"undefined\") {\n return\n } \n\n if (window.miolo_listeners===true) {\n return\n }\n\n // window.onerror = function(msg, file, line, col, error) {\n // try {\n // const params= {\n // 'error': {\n // msg, file, line, col, error\n // },\n // 'path' : window.location.pathname,\n // 'agent': 'UserAgent' + navigator.userAgent\n // }\n //\n // fetcher.post(catcher_url, params)\n // } catch(e) {\n // console.error(e)\n // }\n // }\n\n\n window.addEventListener(\"error\", (event) => {\n // https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent\n\n try {\n const params= {\n 'error': {\n msg: event?.message || 'Client error',\n file: event?.filename,\n line: event?.lineno,\n col: event?.colno,\n error: event?.error\n },\n 'path' : window.location.pathname,\n 'agent': 'UserAgent' + navigator.userAgent\n }\n\n fetcher.post(catcher_url, params)\n } catch(e) {\n console.error(e)\n }\n }) \n\n window.addEventListener(\"unhandledrejection\", (event) => {\n // https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n\n try {\n const params= {\n 'warning': {\n msg: event?.reason || 'Client Unhandled rejection',\n file: undefined,\n line: undefined,\n col: undefined,\n error: event?.reason\n },\n 'path' : window.location.pathname,\n 'agent': 'UserAgent' + navigator.userAgent\n }\n\n fetcher.post(catcher_url, params)\n } catch(e) {\n console.error(e)\n }\n }) \n\n window.miolo_listeners = true\n\n}\n\nexport {init_catcher}","/**\n * Transform an JSON object to a query string\n */\nconst _parse_value= (value) => {\n try {\n return value.replace(/\\+/g, '%2B')\n } catch(e) {\n return value\n }\n}\n\nexport function json_to_query_string(obj) {\n if (obj && (Object.keys(obj).length>0)) {\n const uparams = new URLSearchParams()\n for (const key in obj) {\n if (Object.hasOwn(obj, key)) {\n const value = obj[key];\n if (Array.isArray(value)) {\n value.forEach(item => uparams.append(key, _parse_value(item)))\n } else if (value !== undefined && value !== null) {\n uparams.append(key, _parse_value(value))\n }\n }\n }\n return `?${uparams.toString()}`\n }\n return ''\n}\n\nexport function trim_left(str, what) {\n return str.replace(new RegExp(`^${what || '\\\\s'}+`), '')\n}\n\n\nexport function omit_nil(obj) {\n if (typeof obj !== 'object') return obj\n return Object.keys(obj).reduce((acc, v) => {\n if (obj[v] !== undefined) acc[v] = obj[v]\n return acc\n }, {})\n}\n\n\nexport function parse_login_cookie(response) {\n if (typeof window !== 'object') {\n return undefined\n }\n try {\n const raw = response.headers.raw()['set-cookie'];\n return raw.map((entry) => {\n const parts = entry.split(';');\n const cookiePart = parts[0];\n return cookiePart;\n }).join(';');\n } catch(e) {\n console.log('[miolo-cli] Could not get the set-cookie after login')\n return undefined\n }\n}","import {omit_nil, trim_left, json_to_query_string, parse_login_cookie} from './utils.mjs'\n\nclass Fetcher {\n /**\n * @param {*} config {hostname, port, force_hostname, silent_fail: false}\n */\n constructor(config) {\n this.config= config\n this.auth = undefined\n this.cookie = undefined\n }\n\n set_auth(auth) {\n if (auth) {\n const {username, password}= auth\n this.auth= {username, password}\n }\n }\n\n get_headers() {\n let headers = {}\n\n if (this.auth) {\n let {username, password}= this.auth\n username= username || ''\n password= password || ''\n\n let sauth\n try {\n sauth= 'Basic ' + Buffer.from(username + \":\" + password).toString('base64')\n } catch(_) {\n sauth= 'Basic ' + btoa(username + \":\" + password)\n }\n\n headers['Authorization']= sauth\n }\n\n if (this.cookie) {\n headers['Cookie']= this.cookie\n }\n\n return headers\n }\n\n _prepare_url (url) {\n const endpoint = '/' + trim_left(url, '/')\n \n const {hostname, port, force_hostname} = this.config || {}\n if (hostname && force_hostname) {\n return `http://${hostname}:${port}${endpoint}`\n }\n \n return endpoint\n }\n\n async _fetch (method, url, params, auth= undefined) {\n this.set_auth(auth)\n\n let request = {\n method,\n mode: 'cors',\n credentials: 'include',\n headers: {\n 'content-type': 'application/json',\n ...this.get_headers() || {}\n }\n }\n\n let wurl = this._prepare_url(url)\n \n if (method === 'POST') {\n request.body = JSON.stringify(params || {}, (k, v) => v === undefined ? null : v)\n } else if (method === 'GET') {\n if (params) {\n wurl+= json_to_query_string(params)\n }\n }\n \n const response = await fetch(wurl, request)\n \n if (response.redirected) {\n const isBrowser = typeof window == 'object'\n if (isBrowser) {\n // JSDOM does not support navigation, so lets skip it for tests\n const isTest = typeof navigator !== \"undefined\" &&\n navigator.userAgent.includes(\"Node.js\");\n if (!isTest) {\n window.location.replace(response.url)\n return Promise.resolve(response)\n } else {\n console.error(`Response for ${wurl} is a redirect to ${response.url}. But you are in a test environment, where redirects cannot be done. Unexpected results are coming...`)\n }\n }\n }\n \n if (response.headers.get('content-type').indexOf('json') >= 0) {\n const data= await response.json()\n \n return {\n data,\n status: response.status,\n response\n }\n }\n \n const data= await response.text()\n return {\n data,\n status: response.status,\n response\n }\n\n }\n \n async get(url, params, auth= undefined) {\n /* eslint no-unused-vars:0 */\n try {\n const resp = await this._fetch('GET', url, omit_nil(params), auth)\n return resp\n } catch(e) {\n if (this.config?.silent_fail !== true) {\n console.error(`Error on GET ${url}`)\n console.error(e)\n }\n\n return {\n data: e,\n status: -1,\n }\n }\n }\n\n async post(url, data, auth= undefined) {\n try {\n const resp = await this._fetch('POST', url, data, auth)\n return resp\n } catch(e) {\n if (this.config?.silent_fail !== true) {\n console.error(`Error on POST ${url}`)\n console.error(e)\n }\n\n return {\n data: e,\n status: -1\n }\n }\n } \n\n async login(url, {username, password}) {\n const res= await this._fetch('POST', url || '/login', {username, password})\n this.cookie= parse_login_cookie(res.response)\n return res\n }\n\n async logout(url) {\n this.cookie= undefined\n const res= await this._fetch('POST', url || '/logout', {})\n return res \n }\n\n async read(url, params, auth= undefined) {\n const result = await this.get(`${url}/read`, params, auth)\n return result.data\n }\n\n async key_list(url, params, auth= undefined) {\n const result = await this.get(`${url}/key_list`, params, auth)\n return result.data\n } \n\n async name_list(url, params, auth= undefined) {\n const result = await this.key_list(url, params, auth)\n return Object.values(result)\n }\n\n async find(url, id, auth= undefined) {\n const result = await this.get(`${url}/find`, { id: id }, auth)\n return result.data\n }\n\n async distinct(url, field, params, auth= undefined) {\n const nparams= {\n ...params,\n distinct_field: field\n }\n const result = await this.get(`${url}/distinct`, nparams, auth)\n return result.data \n }\n\n async upsave(url, data, auth= undefined) {\n let result\n if (data.id == undefined) {\n delete data.id\n result= await this.post(`${url}/save`, data, auth)\n } else {\n result= await this.post(`${url}/update`, data, auth)\n }\n \n return result.data\n } \n\n async remove(url, id, auth= undefined) {\n const data = { id: id }\n const result = await this.post(`${url}/delete`, data, auth)\n return result.data\n }\n}\n\nFetcher.keyList= Fetcher.key_list\nFetcher.nameList= Fetcher.name_list\n\nexport { Fetcher }\n\n","import {Fetcher} from './fetcher.mjs'\n\n\nexport function init_fetcher(config) {\n const fetcher= new Fetcher(config)\n return fetcher\n}\n","import {init_catcher} from './catcher/index.mjs'\nimport {init_fetcher} from './fetcher/index.mjs'\n// import {init_socket} from './socket/index.mjs'\n\nfunction miolo_client(context) {\n\n const {config} = context\n\n const fetcher = init_fetcher(config)\n\n if (config?.catcher_url) {\n init_catcher(config?.catcher_url, fetcher) \n }\n\n// let socket\n// if (config?.socket?.enabled===true) {\n// const domain = config?.socket?.domain\n// const options = config?.socket?.options\n// socket = init_socket(domain, options) \n// }\n\n const miolo_obj= {\n fetcher,\n //socket\n }\n\n return miolo_obj\n}\n\nexport {miolo_client}"],"names":["init_catcher","catcher_url","fetcher","window","miolo_listeners","addEventListener","event","params","msg","message","file","filename","line","lineno","col","colno","error","location","pathname","navigator","userAgent","post","e","console","reason","undefined","_parse_value","value","replace","json_to_query_string","obj","Object","keys","length","uparams","URLSearchParams","_loop","key","hasOwn","Array","isArray","forEach","item","append","concat","toString","trim_left","str","what","RegExp","omit_nil","reduce","acc","v","parse_login_cookie","response","raw","headers","map","entry","parts","split","cookiePart","join","log","Fetcher","constructor","config","auth","cookie","set_auth","username","password","get_headers","sauth","Buffer","from","_","btoa","_prepare_url","url","endpoint","hostname","port","force_hostname","_fetch","method","_arguments","arguments","_this","_asyncToGenerator","request","mode","credentials","_objectSpread","wurl","body","JSON","stringify","k","fetch","redirected","isBrowser","isTest","includes","Promise","resolve","get","indexOf","data","json","status","text","_arguments2","_this2","resp","_this2$config","silent_fail","_arguments3","_this3","_this3$config","login","_ref","_this4","res","logout","_this5","read","_arguments4","_this6","result","key_list","_arguments5","_this7","name_list","_arguments6","_this8","values","find","id","_arguments7","_this9","distinct","field","_arguments8","_this0","nparams","distinct_field","upsave","_arguments9","_this1","remove","_arguments0","_this10","keyList","nameList","init_fetcher","miolo_client","context","miolo_obj"],"mappings":"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"}
|