miolo-cli 3.0.0-beta.15 → 3.0.0-beta.151
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 +67 -69
- package/dist/miolo-cli.mjs.map +1 -1
- package/dist/miolo-cli.umd.js +83 -91
- package/dist/miolo-cli.umd.js.map +1 -1
- package/package.json +6 -10
- package/src/fetcher/fetcher.mjs +23 -28
- package/src/fetcher/utils.mjs +41 -39
package/dist/miolo-cli.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* miolo-cli v3.0.0-beta.
|
|
2
|
+
* miolo-cli v3.0.0-beta.151
|
|
3
3
|
*
|
|
4
4
|
* https://www.afialapis.com/os/miolo
|
|
5
5
|
*
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
* @license MIT
|
|
12
12
|
*/
|
|
13
13
|
/* eslint-disable */
|
|
14
|
+
import qs from 'qs';
|
|
15
|
+
|
|
14
16
|
function init_catcher(catcher_url, fetcher) {
|
|
15
17
|
if (typeof window == "undefined") {
|
|
16
18
|
return;
|
|
@@ -150,32 +152,37 @@ function _toPropertyKey(t) {
|
|
|
150
152
|
/**
|
|
151
153
|
* Transform an JSON object to a query string
|
|
152
154
|
*/
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
}
|
|
155
|
+
// const _parse_value= (value) => {
|
|
156
|
+
// try {
|
|
157
|
+
// return value.replace(/\+/g, '%2B')
|
|
158
|
+
// } catch(e) {
|
|
159
|
+
// return value
|
|
160
|
+
// }
|
|
161
|
+
// }
|
|
162
|
+
//
|
|
163
|
+
// export function json_to_query_string(obj) {
|
|
164
|
+
// if (obj && (Object.keys(obj).length>0)) {
|
|
165
|
+
// const uparams = new URLSearchParams()
|
|
166
|
+
// for (const key in obj) {
|
|
167
|
+
// if (Object.hasOwn(obj, key)) {
|
|
168
|
+
// const value = obj[key];
|
|
169
|
+
// if (Array.isArray(value)) {
|
|
170
|
+
// value.forEach(item => uparams.append(key, _parse_value(item)))
|
|
171
|
+
// } else if (value !== undefined && value !== null) {
|
|
172
|
+
// uparams.append(key, _parse_value(value))
|
|
173
|
+
// }
|
|
174
|
+
// }
|
|
175
|
+
// }
|
|
176
|
+
// return `?${uparams.toString()}`
|
|
177
|
+
// }
|
|
178
|
+
// return ''
|
|
179
|
+
// }
|
|
180
|
+
|
|
160
181
|
function json_to_query_string(obj) {
|
|
161
|
-
if (obj
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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 '';
|
|
182
|
+
if (!obj || Object.keys(obj).length === 0) return '';
|
|
183
|
+
return "?".concat(qs.stringify(obj, {
|
|
184
|
+
arrayFormat: 'repeat'
|
|
185
|
+
}));
|
|
179
186
|
}
|
|
180
187
|
function trim_left(str, what) {
|
|
181
188
|
return str.replace(new RegExp("^".concat(what, "+")), '');
|
|
@@ -183,25 +190,21 @@ function trim_left(str, what) {
|
|
|
183
190
|
function omit_nil(obj) {
|
|
184
191
|
if (typeof obj !== 'object') return obj;
|
|
185
192
|
return Object.keys(obj).reduce((acc, v) => {
|
|
186
|
-
if (obj[v] !== undefined) acc[v] = obj[v];
|
|
193
|
+
if (obj[v] !== undefined) acc[v] = omit_nil(obj[v]);
|
|
187
194
|
return acc;
|
|
188
195
|
}, {});
|
|
189
196
|
}
|
|
190
|
-
function
|
|
191
|
-
if (
|
|
192
|
-
return
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
var
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
return cookiePart;
|
|
200
|
-
}).join(';');
|
|
201
|
-
} catch (e) {
|
|
202
|
-
console.log('[miolo-cli] Could not get the set-cookie after login');
|
|
203
|
-
return undefined;
|
|
197
|
+
function null_to_undefined(value) {
|
|
198
|
+
if (Array.isArray(value)) {
|
|
199
|
+
return value.map(null_to_undefined);
|
|
200
|
+
} else if (value && typeof value === 'object') {
|
|
201
|
+
var data = {};
|
|
202
|
+
for (var [key, val] of Object.entries(value)) {
|
|
203
|
+
data[key] = val === null ? undefined : null_to_undefined(val);
|
|
204
|
+
}
|
|
205
|
+
return data;
|
|
204
206
|
}
|
|
207
|
+
return value;
|
|
205
208
|
}
|
|
206
209
|
|
|
207
210
|
class Fetcher {
|
|
@@ -211,7 +214,6 @@ class Fetcher {
|
|
|
211
214
|
constructor(config) {
|
|
212
215
|
this.config = config;
|
|
213
216
|
this.auth = undefined;
|
|
214
|
-
this.cookie = undefined;
|
|
215
217
|
}
|
|
216
218
|
set_auth(auth) {
|
|
217
219
|
if (auth) {
|
|
@@ -242,9 +244,6 @@ class Fetcher {
|
|
|
242
244
|
}
|
|
243
245
|
headers['Authorization'] = sauth;
|
|
244
246
|
}
|
|
245
|
-
if (this.cookie) {
|
|
246
|
-
headers['Cookie'] = this.cookie;
|
|
247
|
-
}
|
|
248
247
|
return headers;
|
|
249
248
|
}
|
|
250
249
|
_prepare_url(url) {
|
|
@@ -296,15 +295,16 @@ class Fetcher {
|
|
|
296
295
|
}
|
|
297
296
|
}
|
|
298
297
|
if (response.headers.get('content-type').indexOf('json') >= 0) {
|
|
299
|
-
var
|
|
300
|
-
|
|
301
|
-
|
|
298
|
+
var resp = yield response.json();
|
|
299
|
+
resp = null_to_undefined(resp);
|
|
300
|
+
return _objectSpread2(_objectSpread2({}, resp), {}, {
|
|
302
301
|
status: response.status,
|
|
303
302
|
response
|
|
304
|
-
};
|
|
303
|
+
});
|
|
305
304
|
}
|
|
306
305
|
var data = yield response.text();
|
|
307
306
|
return {
|
|
307
|
+
ok: true,
|
|
308
308
|
data,
|
|
309
309
|
status: response.status,
|
|
310
310
|
response
|
|
@@ -327,7 +327,8 @@ class Fetcher {
|
|
|
327
327
|
console.error(e);
|
|
328
328
|
}
|
|
329
329
|
return {
|
|
330
|
-
|
|
330
|
+
ok: false,
|
|
331
|
+
error: e,
|
|
331
332
|
status: -1
|
|
332
333
|
};
|
|
333
334
|
}
|
|
@@ -348,7 +349,8 @@ class Fetcher {
|
|
|
348
349
|
console.error(e);
|
|
349
350
|
}
|
|
350
351
|
return {
|
|
351
|
-
|
|
352
|
+
ok: false,
|
|
353
|
+
error: e,
|
|
352
354
|
status: -1
|
|
353
355
|
};
|
|
354
356
|
}
|
|
@@ -365,14 +367,12 @@ class Fetcher {
|
|
|
365
367
|
username,
|
|
366
368
|
password
|
|
367
369
|
});
|
|
368
|
-
_this4.cookie = parse_login_cookie(res.response);
|
|
369
370
|
return res;
|
|
370
371
|
})();
|
|
371
372
|
}
|
|
372
373
|
logout(url) {
|
|
373
374
|
var _this5 = this;
|
|
374
375
|
return _asyncToGenerator(function* () {
|
|
375
|
-
_this5.cookie = undefined;
|
|
376
376
|
var res = yield _this5._fetch('POST', url || '/logout', {});
|
|
377
377
|
return res;
|
|
378
378
|
})();
|
|
@@ -382,8 +382,7 @@ class Fetcher {
|
|
|
382
382
|
_this6 = this;
|
|
383
383
|
return _asyncToGenerator(function* () {
|
|
384
384
|
var auth = _arguments4.length > 2 && _arguments4[2] !== undefined ? _arguments4[2] : undefined;
|
|
385
|
-
|
|
386
|
-
return result.data;
|
|
385
|
+
return yield _this6.get("".concat(url, "/read"), params, auth);
|
|
387
386
|
})();
|
|
388
387
|
}
|
|
389
388
|
key_list(url, params) {
|
|
@@ -391,8 +390,7 @@ class Fetcher {
|
|
|
391
390
|
_this7 = this;
|
|
392
391
|
return _asyncToGenerator(function* () {
|
|
393
392
|
var auth = _arguments5.length > 2 && _arguments5[2] !== undefined ? _arguments5[2] : undefined;
|
|
394
|
-
|
|
395
|
-
return result.data;
|
|
393
|
+
return yield _this7.get("".concat(url, "/key_list"), params, auth);
|
|
396
394
|
})();
|
|
397
395
|
}
|
|
398
396
|
name_list(url, params) {
|
|
@@ -400,8 +398,11 @@ class Fetcher {
|
|
|
400
398
|
_this8 = this;
|
|
401
399
|
return _asyncToGenerator(function* () {
|
|
402
400
|
var auth = _arguments6.length > 2 && _arguments6[2] !== undefined ? _arguments6[2] : undefined;
|
|
403
|
-
var
|
|
404
|
-
|
|
401
|
+
var resp = yield _this8.key_list(url, params, auth);
|
|
402
|
+
if (resp !== null && resp !== void 0 && resp.data) {
|
|
403
|
+
resp.data = Object.values(resp.data);
|
|
404
|
+
}
|
|
405
|
+
return resp;
|
|
405
406
|
})();
|
|
406
407
|
}
|
|
407
408
|
find(url, id) {
|
|
@@ -409,10 +410,9 @@ class Fetcher {
|
|
|
409
410
|
_this9 = this;
|
|
410
411
|
return _asyncToGenerator(function* () {
|
|
411
412
|
var auth = _arguments7.length > 2 && _arguments7[2] !== undefined ? _arguments7[2] : undefined;
|
|
412
|
-
|
|
413
|
+
return yield _this9.get("".concat(url, "/find"), {
|
|
413
414
|
id: id
|
|
414
415
|
}, auth);
|
|
415
|
-
return result.data;
|
|
416
416
|
})();
|
|
417
417
|
}
|
|
418
418
|
distinct(url, field, params) {
|
|
@@ -423,8 +423,7 @@ class Fetcher {
|
|
|
423
423
|
var nparams = _objectSpread2(_objectSpread2({}, params), {}, {
|
|
424
424
|
distinct_field: field
|
|
425
425
|
});
|
|
426
|
-
|
|
427
|
-
return result.data;
|
|
426
|
+
return yield _this0.get("".concat(url, "/distinct"), nparams, auth);
|
|
428
427
|
})();
|
|
429
428
|
}
|
|
430
429
|
upsave(url, data) {
|
|
@@ -432,14 +431,14 @@ class Fetcher {
|
|
|
432
431
|
_this1 = this;
|
|
433
432
|
return _asyncToGenerator(function* () {
|
|
434
433
|
var auth = _arguments9.length > 2 && _arguments9[2] !== undefined ? _arguments9[2] : undefined;
|
|
435
|
-
var
|
|
434
|
+
var resp;
|
|
436
435
|
if (data.id == undefined) {
|
|
437
436
|
delete data.id;
|
|
438
|
-
|
|
437
|
+
resp = yield _this1.post("".concat(url, "/save"), data, auth);
|
|
439
438
|
} else {
|
|
440
|
-
|
|
439
|
+
resp = yield _this1.post("".concat(url, "/update"), data, auth);
|
|
441
440
|
}
|
|
442
|
-
return
|
|
441
|
+
return resp;
|
|
443
442
|
})();
|
|
444
443
|
}
|
|
445
444
|
remove(url, id) {
|
|
@@ -450,8 +449,7 @@ class Fetcher {
|
|
|
450
449
|
var data = {
|
|
451
450
|
id: id
|
|
452
451
|
};
|
|
453
|
-
|
|
454
|
-
return result.data;
|
|
452
|
+
return yield _this10.post("".concat(url, "/delete"), data, auth);
|
|
455
453
|
})();
|
|
456
454
|
}
|
|
457
455
|
}
|
package/dist/miolo-cli.mjs.map
CHANGED
|
@@ -1 +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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"}
|
|
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}","import qs from 'qs'\n\n/**\n * Transform an JSON object to a query string\n */\n// const _parse_value= (value) => {\n// try {\n// return value.replace(/\\+/g, '%2B')\n// } catch(e) {\n// return value\n// }\n// }\n// \n// export 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 json_to_query_string(obj) {\n if (!obj || Object.keys(obj).length === 0) return '';\n return `?${qs.stringify(obj, { arrayFormat: 'repeat' })}`;\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] = omit_nil(obj[v])\n return acc\n }, {})\n}\n\nexport function null_to_undefined(value) {\n if (Array.isArray(value)) {\n return value.map(null_to_undefined)\n } else if (value && typeof value === 'object') {\n const data = {}\n for (const [key, val] of Object.entries(value)) {\n data[key] = val === null ? undefined : null_to_undefined(val)\n }\n return data\n }\n return value\n}\n","import {omit_nil, trim_left, json_to_query_string, null_to_undefined} 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 }\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 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 let resp= await response.json()\n resp = null_to_undefined(resp)\n \n return {\n ...resp,\n status: response.status,\n response\n }\n }\n \n const data= await response.text()\n return {\n ok: true,\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 ok: false,\n error: 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 ok: false,\n error: 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 return res\n }\n\n async logout(url) {\n const res= await this._fetch('POST', url || '/logout', {})\n return res \n }\n\n async read(url, params, auth= undefined) {\n return await this.get(`${url}/read`, params, auth)\n }\n\n async key_list(url, params, auth= undefined) {\n return await this.get(`${url}/key_list`, params, auth)\n } \n\n async name_list(url, params, auth= undefined) {\n const resp = await this.key_list(url, params, auth)\n if (resp?.data) {\n resp.data = Object.values(resp.data)\n }\n return resp\n }\n\n async find(url, id, auth= undefined) {\n return await this.get(`${url}/find`, { id: id }, auth)\n }\n\n async distinct(url, field, params, auth= undefined) {\n const nparams= {\n ...params,\n distinct_field: field\n }\n return await this.get(`${url}/distinct`, nparams, auth) \n }\n\n async upsave(url, data, auth= undefined) {\n let resp\n if (data.id == undefined) {\n delete data.id\n resp= await this.post(`${url}/save`, data, auth)\n } else {\n resp= await this.post(`${url}/update`, data, auth)\n }\n \n return resp\n } \n\n async remove(url, id, auth= undefined) {\n const data = { id: id }\n return await this.post(`${url}/delete`, data, auth)\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","json_to_query_string","obj","Object","keys","length","concat","qs","stringify","arrayFormat","trim_left","str","what","replace","RegExp","omit_nil","reduce","acc","v","null_to_undefined","value","Array","isArray","map","data","key","val","entries","Fetcher","constructor","config","auth","set_auth","username","password","get_headers","headers","sauth","Buffer","from","toString","_","btoa","_prepare_url","url","endpoint","hostname","port","force_hostname","_fetch","method","_arguments","arguments","_this","_asyncToGenerator","request","mode","credentials","_objectSpread","wurl","body","JSON","k","response","fetch","redirected","isBrowser","isTest","includes","Promise","resolve","get","indexOf","resp","json","status","text","ok","_arguments2","_this2","_this2$config","silent_fail","_arguments3","_this3","_this3$config","login","_ref","_this4","res","logout","_this5","read","_arguments4","_this6","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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"}
|
package/dist/miolo-cli.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* miolo-cli v3.0.0-beta.
|
|
2
|
+
* miolo-cli v3.0.0-beta.151
|
|
3
3
|
*
|
|
4
4
|
* https://www.afialapis.com/os/miolo
|
|
5
5
|
*
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
*/
|
|
13
13
|
/* eslint-disable */
|
|
14
14
|
(function (global, factory) {
|
|
15
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
|
16
|
-
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
|
17
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.mioloCli = {}));
|
|
18
|
-
})(this, (function (exports) { 'use strict';
|
|
15
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('qs')) :
|
|
16
|
+
typeof define === 'function' && define.amd ? define(['exports', 'qs'], factory) :
|
|
17
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.mioloCli = {}, global.qs));
|
|
18
|
+
})(this, (function (exports, qs) { 'use strict';
|
|
19
19
|
|
|
20
20
|
function init_catcher(catcher_url, fetcher) {
|
|
21
21
|
if (typeof window == "undefined") {
|
|
@@ -213,53 +213,54 @@
|
|
|
213
213
|
i = 0;
|
|
214
214
|
}
|
|
215
215
|
_regeneratorDefine = function (e, r, n, t) {
|
|
216
|
-
|
|
216
|
+
function o(r, n) {
|
|
217
|
+
_regeneratorDefine(e, r, function (e) {
|
|
218
|
+
return this._invoke(r, n, e);
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
r ? i ? i(e, r, {
|
|
217
222
|
value: n,
|
|
218
223
|
enumerable: !t,
|
|
219
224
|
configurable: !t,
|
|
220
225
|
writable: !t
|
|
221
|
-
}) : e[r] = n;
|
|
222
|
-
function o(r, n) {
|
|
223
|
-
_regeneratorDefine(e, r, function (e) {
|
|
224
|
-
return this._invoke(r, n, e);
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
o("next", 0), o("throw", 1), o("return", 2);
|
|
228
|
-
}
|
|
226
|
+
}) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
|
|
229
227
|
}, _regeneratorDefine(e, r, n, t);
|
|
230
228
|
}
|
|
231
229
|
|
|
232
230
|
/**
|
|
233
231
|
* Transform an JSON object to a query string
|
|
234
232
|
*/
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
}
|
|
233
|
+
// const _parse_value= (value) => {
|
|
234
|
+
// try {
|
|
235
|
+
// return value.replace(/\+/g, '%2B')
|
|
236
|
+
// } catch(e) {
|
|
237
|
+
// return value
|
|
238
|
+
// }
|
|
239
|
+
// }
|
|
240
|
+
//
|
|
241
|
+
// export function json_to_query_string(obj) {
|
|
242
|
+
// if (obj && (Object.keys(obj).length>0)) {
|
|
243
|
+
// const uparams = new URLSearchParams()
|
|
244
|
+
// for (const key in obj) {
|
|
245
|
+
// if (Object.hasOwn(obj, key)) {
|
|
246
|
+
// const value = obj[key];
|
|
247
|
+
// if (Array.isArray(value)) {
|
|
248
|
+
// value.forEach(item => uparams.append(key, _parse_value(item)))
|
|
249
|
+
// } else if (value !== undefined && value !== null) {
|
|
250
|
+
// uparams.append(key, _parse_value(value))
|
|
251
|
+
// }
|
|
252
|
+
// }
|
|
253
|
+
// }
|
|
254
|
+
// return `?${uparams.toString()}`
|
|
255
|
+
// }
|
|
256
|
+
// return ''
|
|
257
|
+
// }
|
|
258
|
+
|
|
242
259
|
function json_to_query_string(obj) {
|
|
243
|
-
if (obj
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
var value = obj[key];
|
|
248
|
-
if (Array.isArray(value)) {
|
|
249
|
-
value.forEach(function (item) {
|
|
250
|
-
return uparams.append(key, _parse_value(item));
|
|
251
|
-
});
|
|
252
|
-
} else if (value !== undefined && value !== null) {
|
|
253
|
-
uparams.append(key, _parse_value(value));
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
};
|
|
257
|
-
for (var key in obj) {
|
|
258
|
-
_loop(key);
|
|
259
|
-
}
|
|
260
|
-
return "?" + uparams.toString();
|
|
261
|
-
}
|
|
262
|
-
return '';
|
|
260
|
+
if (!obj || Object.keys(obj).length === 0) return '';
|
|
261
|
+
return "?" + qs.stringify(obj, {
|
|
262
|
+
arrayFormat: 'repeat'
|
|
263
|
+
});
|
|
263
264
|
}
|
|
264
265
|
function trim_left(str, what) {
|
|
265
266
|
return str.replace(new RegExp("^" + (what) + "+"), '');
|
|
@@ -267,25 +268,24 @@
|
|
|
267
268
|
function omit_nil(obj) {
|
|
268
269
|
if (typeof obj !== 'object') return obj;
|
|
269
270
|
return Object.keys(obj).reduce(function (acc, v) {
|
|
270
|
-
if (obj[v] !== undefined) acc[v] = obj[v];
|
|
271
|
+
if (obj[v] !== undefined) acc[v] = omit_nil(obj[v]);
|
|
271
272
|
return acc;
|
|
272
273
|
}, {});
|
|
273
274
|
}
|
|
274
|
-
function
|
|
275
|
-
if (
|
|
276
|
-
return
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
var
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
console.log('[miolo-cli] Could not get the set-cookie after login');
|
|
287
|
-
return undefined;
|
|
275
|
+
function null_to_undefined(value) {
|
|
276
|
+
if (Array.isArray(value)) {
|
|
277
|
+
return value.map(null_to_undefined);
|
|
278
|
+
} else if (value && typeof value === 'object') {
|
|
279
|
+
var data = {};
|
|
280
|
+
for (var _i = 0, _Object$entries = Object.entries(value); _i < _Object$entries.length; _i++) {
|
|
281
|
+
var _Object$entries$_i = _Object$entries[_i],
|
|
282
|
+
key = _Object$entries$_i[0],
|
|
283
|
+
val = _Object$entries$_i[1];
|
|
284
|
+
data[key] = val === null ? undefined : null_to_undefined(val);
|
|
285
|
+
}
|
|
286
|
+
return data;
|
|
288
287
|
}
|
|
288
|
+
return value;
|
|
289
289
|
}
|
|
290
290
|
|
|
291
291
|
var Fetcher = /*#__PURE__*/function () {
|
|
@@ -295,7 +295,6 @@
|
|
|
295
295
|
function Fetcher(config) {
|
|
296
296
|
this.config = config;
|
|
297
297
|
this.auth = undefined;
|
|
298
|
-
this.cookie = undefined;
|
|
299
298
|
}
|
|
300
299
|
var _proto = Fetcher.prototype;
|
|
301
300
|
_proto.set_auth = function set_auth(auth) {
|
|
@@ -324,9 +323,6 @@
|
|
|
324
323
|
}
|
|
325
324
|
headers['Authorization'] = sauth;
|
|
326
325
|
}
|
|
327
|
-
if (this.cookie) {
|
|
328
|
-
headers['Cookie'] = this.cookie;
|
|
329
|
-
}
|
|
330
326
|
return headers;
|
|
331
327
|
};
|
|
332
328
|
_proto._prepare_url = function _prepare_url(url) {
|
|
@@ -342,7 +338,7 @@
|
|
|
342
338
|
};
|
|
343
339
|
_proto._fetch = /*#__PURE__*/function () {
|
|
344
340
|
var _fetch2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(method, url, params, auth) {
|
|
345
|
-
var request, wurl, response, isBrowser, isTest,
|
|
341
|
+
var request, wurl, response, isBrowser, isTest, resp, data;
|
|
346
342
|
return _regenerator().w(function (_context) {
|
|
347
343
|
while (1) switch (_context.n) {
|
|
348
344
|
case 0:
|
|
@@ -399,18 +395,19 @@
|
|
|
399
395
|
_context.n = 4;
|
|
400
396
|
return response.json();
|
|
401
397
|
case 4:
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
398
|
+
resp = _context.v;
|
|
399
|
+
resp = null_to_undefined(resp);
|
|
400
|
+
return _context.a(2, _extends({}, resp, {
|
|
405
401
|
status: response.status,
|
|
406
402
|
response: response
|
|
407
|
-
});
|
|
403
|
+
}));
|
|
408
404
|
case 5:
|
|
409
405
|
_context.n = 6;
|
|
410
406
|
return response.text();
|
|
411
407
|
case 6:
|
|
412
408
|
data = _context.v;
|
|
413
409
|
return _context.a(2, {
|
|
410
|
+
ok: true,
|
|
414
411
|
data: data,
|
|
415
412
|
status: response.status,
|
|
416
413
|
response: response
|
|
@@ -446,7 +443,8 @@
|
|
|
446
443
|
console.error(_t);
|
|
447
444
|
}
|
|
448
445
|
return _context2.a(2, {
|
|
449
|
-
|
|
446
|
+
ok: false,
|
|
447
|
+
error: _t,
|
|
450
448
|
status: -1
|
|
451
449
|
});
|
|
452
450
|
}
|
|
@@ -480,7 +478,8 @@
|
|
|
480
478
|
console.error(_t2);
|
|
481
479
|
}
|
|
482
480
|
return _context3.a(2, {
|
|
483
|
-
|
|
481
|
+
ok: false,
|
|
482
|
+
error: _t2,
|
|
484
483
|
status: -1
|
|
485
484
|
});
|
|
486
485
|
}
|
|
@@ -505,7 +504,6 @@
|
|
|
505
504
|
});
|
|
506
505
|
case 1:
|
|
507
506
|
res = _context4.v;
|
|
508
|
-
this.cookie = parse_login_cookie(res.response);
|
|
509
507
|
return _context4.a(2, res);
|
|
510
508
|
}
|
|
511
509
|
}, _callee4, this);
|
|
@@ -521,7 +519,6 @@
|
|
|
521
519
|
return _regenerator().w(function (_context5) {
|
|
522
520
|
while (1) switch (_context5.n) {
|
|
523
521
|
case 0:
|
|
524
|
-
this.cookie = undefined;
|
|
525
522
|
_context5.n = 1;
|
|
526
523
|
return this._fetch('POST', url || '/logout', {});
|
|
527
524
|
case 1:
|
|
@@ -537,7 +534,6 @@
|
|
|
537
534
|
}();
|
|
538
535
|
_proto.read = /*#__PURE__*/function () {
|
|
539
536
|
var _read = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(url, params, auth) {
|
|
540
|
-
var result;
|
|
541
537
|
return _regenerator().w(function (_context6) {
|
|
542
538
|
while (1) switch (_context6.n) {
|
|
543
539
|
case 0:
|
|
@@ -547,8 +543,7 @@
|
|
|
547
543
|
_context6.n = 1;
|
|
548
544
|
return this.get(url + "/read", params, auth);
|
|
549
545
|
case 1:
|
|
550
|
-
|
|
551
|
-
return _context6.a(2, result.data);
|
|
546
|
+
return _context6.a(2, _context6.v);
|
|
552
547
|
}
|
|
553
548
|
}, _callee6, this);
|
|
554
549
|
}));
|
|
@@ -559,7 +554,6 @@
|
|
|
559
554
|
}();
|
|
560
555
|
_proto.key_list = /*#__PURE__*/function () {
|
|
561
556
|
var _key_list = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7(url, params, auth) {
|
|
562
|
-
var result;
|
|
563
557
|
return _regenerator().w(function (_context7) {
|
|
564
558
|
while (1) switch (_context7.n) {
|
|
565
559
|
case 0:
|
|
@@ -569,8 +563,7 @@
|
|
|
569
563
|
_context7.n = 1;
|
|
570
564
|
return this.get(url + "/key_list", params, auth);
|
|
571
565
|
case 1:
|
|
572
|
-
|
|
573
|
-
return _context7.a(2, result.data);
|
|
566
|
+
return _context7.a(2, _context7.v);
|
|
574
567
|
}
|
|
575
568
|
}, _callee7, this);
|
|
576
569
|
}));
|
|
@@ -581,7 +574,7 @@
|
|
|
581
574
|
}();
|
|
582
575
|
_proto.name_list = /*#__PURE__*/function () {
|
|
583
576
|
var _name_list = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee8(url, params, auth) {
|
|
584
|
-
var
|
|
577
|
+
var resp;
|
|
585
578
|
return _regenerator().w(function (_context8) {
|
|
586
579
|
while (1) switch (_context8.n) {
|
|
587
580
|
case 0:
|
|
@@ -591,8 +584,11 @@
|
|
|
591
584
|
_context8.n = 1;
|
|
592
585
|
return this.key_list(url, params, auth);
|
|
593
586
|
case 1:
|
|
594
|
-
|
|
595
|
-
|
|
587
|
+
resp = _context8.v;
|
|
588
|
+
if (resp != null && resp.data) {
|
|
589
|
+
resp.data = Object.values(resp.data);
|
|
590
|
+
}
|
|
591
|
+
return _context8.a(2, resp);
|
|
596
592
|
}
|
|
597
593
|
}, _callee8, this);
|
|
598
594
|
}));
|
|
@@ -603,7 +599,6 @@
|
|
|
603
599
|
}();
|
|
604
600
|
_proto.find = /*#__PURE__*/function () {
|
|
605
601
|
var _find = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee9(url, id, auth) {
|
|
606
|
-
var result;
|
|
607
602
|
return _regenerator().w(function (_context9) {
|
|
608
603
|
while (1) switch (_context9.n) {
|
|
609
604
|
case 0:
|
|
@@ -615,8 +610,7 @@
|
|
|
615
610
|
id: id
|
|
616
611
|
}, auth);
|
|
617
612
|
case 1:
|
|
618
|
-
|
|
619
|
-
return _context9.a(2, result.data);
|
|
613
|
+
return _context9.a(2, _context9.v);
|
|
620
614
|
}
|
|
621
615
|
}, _callee9, this);
|
|
622
616
|
}));
|
|
@@ -627,7 +621,7 @@
|
|
|
627
621
|
}();
|
|
628
622
|
_proto.distinct = /*#__PURE__*/function () {
|
|
629
623
|
var _distinct = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee0(url, field, params, auth) {
|
|
630
|
-
var nparams
|
|
624
|
+
var nparams;
|
|
631
625
|
return _regenerator().w(function (_context0) {
|
|
632
626
|
while (1) switch (_context0.n) {
|
|
633
627
|
case 0:
|
|
@@ -640,8 +634,7 @@
|
|
|
640
634
|
_context0.n = 1;
|
|
641
635
|
return this.get(url + "/distinct", nparams, auth);
|
|
642
636
|
case 1:
|
|
643
|
-
|
|
644
|
-
return _context0.a(2, result.data);
|
|
637
|
+
return _context0.a(2, _context0.v);
|
|
645
638
|
}
|
|
646
639
|
}, _callee0, this);
|
|
647
640
|
}));
|
|
@@ -652,7 +645,7 @@
|
|
|
652
645
|
}();
|
|
653
646
|
_proto.upsave = /*#__PURE__*/function () {
|
|
654
647
|
var _upsave = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee1(url, data, auth) {
|
|
655
|
-
var
|
|
648
|
+
var resp;
|
|
656
649
|
return _regenerator().w(function (_context1) {
|
|
657
650
|
while (1) switch (_context1.n) {
|
|
658
651
|
case 0:
|
|
@@ -667,16 +660,16 @@
|
|
|
667
660
|
_context1.n = 1;
|
|
668
661
|
return this.post(url + "/save", data, auth);
|
|
669
662
|
case 1:
|
|
670
|
-
|
|
663
|
+
resp = _context1.v;
|
|
671
664
|
_context1.n = 4;
|
|
672
665
|
break;
|
|
673
666
|
case 2:
|
|
674
667
|
_context1.n = 3;
|
|
675
668
|
return this.post(url + "/update", data, auth);
|
|
676
669
|
case 3:
|
|
677
|
-
|
|
670
|
+
resp = _context1.v;
|
|
678
671
|
case 4:
|
|
679
|
-
return _context1.a(2,
|
|
672
|
+
return _context1.a(2, resp);
|
|
680
673
|
}
|
|
681
674
|
}, _callee1, this);
|
|
682
675
|
}));
|
|
@@ -687,7 +680,7 @@
|
|
|
687
680
|
}();
|
|
688
681
|
_proto.remove = /*#__PURE__*/function () {
|
|
689
682
|
var _remove = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee10(url, id, auth) {
|
|
690
|
-
var data
|
|
683
|
+
var data;
|
|
691
684
|
return _regenerator().w(function (_context10) {
|
|
692
685
|
while (1) switch (_context10.n) {
|
|
693
686
|
case 0:
|
|
@@ -700,8 +693,7 @@
|
|
|
700
693
|
_context10.n = 1;
|
|
701
694
|
return this.post(url + "/delete", data, auth);
|
|
702
695
|
case 1:
|
|
703
|
-
|
|
704
|
-
return _context10.a(2, result.data);
|
|
696
|
+
return _context10.a(2, _context10.v);
|
|
705
697
|
}
|
|
706
698
|
}, _callee10, this);
|
|
707
699
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"miolo-cli.umd.js","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","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","config","auth","cookie","_proto","prototype","set_auth","username","password","get_headers","_this$auth","sauth","Buffer","from","_","btoa","_prepare_url","url","endpoint","_ref","hostname","port","force_hostname","_fetch","_fetch2","_asyncToGenerator","_regenerator","m","_callee","method","request","wurl","isBrowser","isTest","_data","data","w","_context","n","mode","credentials","_extends","body","JSON","stringify","k","fetch","redirected","includes","a","Promise","resolve","get","indexOf","json","status","text","_x","_x2","_x3","_x4","apply","arguments","_get","_callee2","resp","_this$config","_t","_context2","p","silent_fail","_x5","_x6","_x7","_post","_callee3","_this$config2","_t2","_context3","_x8","_x9","_x0","login","_login","_callee4","_ref2","res","_context4","_x1","_x10","logout","_logout","_callee5","_context5","_x11","read","_read","_callee6","result","_context6","_x12","_x13","_x14","key_list","_key_list","_callee7","_context7","_x15","_x16","_x17","name_list","_name_list","_callee8","_context8","values","_x18","_x19","_x20","find","_find","_callee9","id","_context9","_x21","_x22","_x23","distinct","_distinct","_callee0","field","nparams","_context0","distinct_field","_x24","_x25","_x26","_x27","upsave","_upsave","_callee1","_context1","_x28","_x29","_x30","remove","_remove","_callee10","_context10","_x31","_x32","_x33","keyList","nameList","init_fetcher","miolo_client","context","miolo_obj"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"miolo-cli.umd.js","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}","import qs from 'qs'\n\n/**\n * Transform an JSON object to a query string\n */\n// const _parse_value= (value) => {\n// try {\n// return value.replace(/\\+/g, '%2B')\n// } catch(e) {\n// return value\n// }\n// }\n// \n// export 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 json_to_query_string(obj) {\n if (!obj || Object.keys(obj).length === 0) return '';\n return `?${qs.stringify(obj, { arrayFormat: 'repeat' })}`;\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] = omit_nil(obj[v])\n return acc\n }, {})\n}\n\nexport function null_to_undefined(value) {\n if (Array.isArray(value)) {\n return value.map(null_to_undefined)\n } else if (value && typeof value === 'object') {\n const data = {}\n for (const [key, val] of Object.entries(value)) {\n data[key] = val === null ? undefined : null_to_undefined(val)\n }\n return data\n }\n return value\n}\n","import {omit_nil, trim_left, json_to_query_string, null_to_undefined} 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 }\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 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 let resp= await response.json()\n resp = null_to_undefined(resp)\n \n return {\n ...resp,\n status: response.status,\n response\n }\n }\n \n const data= await response.text()\n return {\n ok: true,\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 ok: false,\n error: 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 ok: false,\n error: 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 return res\n }\n\n async logout(url) {\n const res= await this._fetch('POST', url || '/logout', {})\n return res \n }\n\n async read(url, params, auth= undefined) {\n return await this.get(`${url}/read`, params, auth)\n }\n\n async key_list(url, params, auth= undefined) {\n return await this.get(`${url}/key_list`, params, auth)\n } \n\n async name_list(url, params, auth= undefined) {\n const resp = await this.key_list(url, params, auth)\n if (resp?.data) {\n resp.data = Object.values(resp.data)\n }\n return resp\n }\n\n async find(url, id, auth= undefined) {\n return await this.get(`${url}/find`, { id: id }, auth)\n }\n\n async distinct(url, field, params, auth= undefined) {\n const nparams= {\n ...params,\n distinct_field: field\n }\n return await this.get(`${url}/distinct`, nparams, auth) \n }\n\n async upsave(url, data, auth= undefined) {\n let resp\n if (data.id == undefined) {\n delete data.id\n resp= await this.post(`${url}/save`, data, auth)\n } else {\n resp= await this.post(`${url}/update`, data, auth)\n }\n \n return resp\n } \n\n async remove(url, id, auth= undefined) {\n const data = { id: id }\n return await this.post(`${url}/delete`, data, auth)\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","json_to_query_string","obj","Object","keys","length","qs","stringify","arrayFormat","trim_left","str","what","replace","RegExp","omit_nil","reduce","acc","v","null_to_undefined","value","Array","isArray","map","data","_i","_Object$entries","entries","_Object$entries$_i","key","val","Fetcher","config","auth","_proto","prototype","set_auth","username","password","get_headers","headers","_this$auth","sauth","Buffer","from","toString","_","btoa","_prepare_url","url","endpoint","_ref","hostname","port","force_hostname","_fetch","_fetch2","_asyncToGenerator","_regenerator","m","_callee","method","request","wurl","response","isBrowser","isTest","resp","w","_context","n","mode","credentials","_extends","body","JSON","k","fetch","redirected","includes","a","Promise","resolve","get","indexOf","json","status","text","ok","_x","_x2","_x3","_x4","apply","arguments","_get","_callee2","_this$config","_t","_context2","p","silent_fail","_x5","_x6","_x7","_post","_callee3","_this$config2","_t2","_context3","_x8","_x9","_x0","login","_login","_callee4","_ref2","res","_context4","_x1","_x10","logout","_logout","_callee5","_context5","_x11","read","_read","_callee6","_context6","_x12","_x13","_x14","key_list","_key_list","_callee7","_context7","_x15","_x16","_x17","name_list","_name_list","_callee8","_context8","values","_x18","_x19","_x20","find","_find","_callee9","id","_context9","_x21","_x22","_x23","distinct","_distinct","_callee0","field","nparams","_context0","distinct_field","_x24","_x25","_x26","_x27","upsave","_upsave","_callee1","_context1","_x28","_x29","_x30","remove","_remove","_callee10","_context10","_x31","_x32","_x33","keyList","nameList","init_fetcher","miolo_client","context","miolo_obj"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "miolo-cli",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.151",
|
|
4
4
|
"description": "cli utils for miolo",
|
|
5
5
|
"author": "Donato Lorenzo <donato@afialapis.com>",
|
|
6
6
|
"contributors": [
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"type": "module",
|
|
19
19
|
"exports": {
|
|
20
20
|
".": {
|
|
21
|
-
"development": "./src/index.mjs",
|
|
21
|
+
"development": "./src/index.mjs",
|
|
22
22
|
"import": "./dist/miolo-cli.mjs",
|
|
23
23
|
"default": "./dist/miolo-cli.umd.js"
|
|
24
24
|
}
|
|
@@ -28,21 +28,17 @@
|
|
|
28
28
|
"src"
|
|
29
29
|
],
|
|
30
30
|
"scripts": {
|
|
31
|
+
"lint": "npx xeira lint ./src",
|
|
31
32
|
"reset": "rm -fr package-lock.json npm-lock.yaml dist/* && npm i",
|
|
32
33
|
"clean": "rm -fr ./dist/*",
|
|
33
34
|
"bundle": "npx xeira bundle --target=browser --source_index=./src/index.mjs --bundle_folder=./dist --bundle_name=miolo-cli --bundle_extension=umd,mjs",
|
|
34
35
|
"dist": "npm run clean && npm run bundle"
|
|
35
36
|
},
|
|
36
37
|
"dependencies": {
|
|
37
|
-
"
|
|
38
|
+
"qs": "^6.14.1",
|
|
39
|
+
"socket.io-client": "^4.8.3"
|
|
38
40
|
},
|
|
39
41
|
"devDependencies": {
|
|
40
|
-
"
|
|
41
|
-
"xeira": "^1.2.3"
|
|
42
|
-
},
|
|
43
|
-
"eslintConfig": {
|
|
44
|
-
"extends": [
|
|
45
|
-
"../../node_modules/xeira/configs/eslint.cjs"
|
|
46
|
-
]
|
|
42
|
+
"xeira": "^2.0.0-beta.10"
|
|
47
43
|
}
|
|
48
44
|
}
|
package/src/fetcher/fetcher.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {omit_nil, trim_left, json_to_query_string,
|
|
1
|
+
import {omit_nil, trim_left, json_to_query_string, null_to_undefined} from './utils.mjs'
|
|
2
2
|
|
|
3
3
|
class Fetcher {
|
|
4
4
|
/**
|
|
@@ -7,7 +7,6 @@ class Fetcher {
|
|
|
7
7
|
constructor(config) {
|
|
8
8
|
this.config= config
|
|
9
9
|
this.auth = undefined
|
|
10
|
-
this.cookie = undefined
|
|
11
10
|
}
|
|
12
11
|
|
|
13
12
|
set_auth(auth) {
|
|
@@ -35,10 +34,6 @@ class Fetcher {
|
|
|
35
34
|
headers['Authorization']= sauth
|
|
36
35
|
}
|
|
37
36
|
|
|
38
|
-
if (this.cookie) {
|
|
39
|
-
headers['Cookie']= this.cookie
|
|
40
|
-
}
|
|
41
|
-
|
|
42
37
|
return headers
|
|
43
38
|
}
|
|
44
39
|
|
|
@@ -94,10 +89,11 @@ class Fetcher {
|
|
|
94
89
|
}
|
|
95
90
|
|
|
96
91
|
if (response.headers.get('content-type').indexOf('json') >= 0) {
|
|
97
|
-
|
|
92
|
+
let resp= await response.json()
|
|
93
|
+
resp = null_to_undefined(resp)
|
|
98
94
|
|
|
99
95
|
return {
|
|
100
|
-
|
|
96
|
+
...resp,
|
|
101
97
|
status: response.status,
|
|
102
98
|
response
|
|
103
99
|
}
|
|
@@ -105,6 +101,7 @@ class Fetcher {
|
|
|
105
101
|
|
|
106
102
|
const data= await response.text()
|
|
107
103
|
return {
|
|
104
|
+
ok: true,
|
|
108
105
|
data,
|
|
109
106
|
status: response.status,
|
|
110
107
|
response
|
|
@@ -124,7 +121,8 @@ class Fetcher {
|
|
|
124
121
|
}
|
|
125
122
|
|
|
126
123
|
return {
|
|
127
|
-
|
|
124
|
+
ok: false,
|
|
125
|
+
error: e,
|
|
128
126
|
status: -1,
|
|
129
127
|
}
|
|
130
128
|
}
|
|
@@ -141,7 +139,8 @@ class Fetcher {
|
|
|
141
139
|
}
|
|
142
140
|
|
|
143
141
|
return {
|
|
144
|
-
|
|
142
|
+
ok: false,
|
|
143
|
+
error: e,
|
|
145
144
|
status: -1
|
|
146
145
|
}
|
|
147
146
|
}
|
|
@@ -149,34 +148,32 @@ class Fetcher {
|
|
|
149
148
|
|
|
150
149
|
async login(url, {username, password}) {
|
|
151
150
|
const res= await this._fetch('POST', url || '/login', {username, password})
|
|
152
|
-
this.cookie= parse_login_cookie(res.response)
|
|
153
151
|
return res
|
|
154
152
|
}
|
|
155
153
|
|
|
156
154
|
async logout(url) {
|
|
157
|
-
this.cookie= undefined
|
|
158
155
|
const res= await this._fetch('POST', url || '/logout', {})
|
|
159
156
|
return res
|
|
160
157
|
}
|
|
161
158
|
|
|
162
159
|
async read(url, params, auth= undefined) {
|
|
163
|
-
|
|
164
|
-
return result.data
|
|
160
|
+
return await this.get(`${url}/read`, params, auth)
|
|
165
161
|
}
|
|
166
162
|
|
|
167
163
|
async key_list(url, params, auth= undefined) {
|
|
168
|
-
|
|
169
|
-
return result.data
|
|
164
|
+
return await this.get(`${url}/key_list`, params, auth)
|
|
170
165
|
}
|
|
171
166
|
|
|
172
167
|
async name_list(url, params, auth= undefined) {
|
|
173
|
-
const
|
|
174
|
-
|
|
168
|
+
const resp = await this.key_list(url, params, auth)
|
|
169
|
+
if (resp?.data) {
|
|
170
|
+
resp.data = Object.values(resp.data)
|
|
171
|
+
}
|
|
172
|
+
return resp
|
|
175
173
|
}
|
|
176
174
|
|
|
177
175
|
async find(url, id, auth= undefined) {
|
|
178
|
-
|
|
179
|
-
return result.data
|
|
176
|
+
return await this.get(`${url}/find`, { id: id }, auth)
|
|
180
177
|
}
|
|
181
178
|
|
|
182
179
|
async distinct(url, field, params, auth= undefined) {
|
|
@@ -184,26 +181,24 @@ class Fetcher {
|
|
|
184
181
|
...params,
|
|
185
182
|
distinct_field: field
|
|
186
183
|
}
|
|
187
|
-
|
|
188
|
-
return result.data
|
|
184
|
+
return await this.get(`${url}/distinct`, nparams, auth)
|
|
189
185
|
}
|
|
190
186
|
|
|
191
187
|
async upsave(url, data, auth= undefined) {
|
|
192
|
-
let
|
|
188
|
+
let resp
|
|
193
189
|
if (data.id == undefined) {
|
|
194
190
|
delete data.id
|
|
195
|
-
|
|
191
|
+
resp= await this.post(`${url}/save`, data, auth)
|
|
196
192
|
} else {
|
|
197
|
-
|
|
193
|
+
resp= await this.post(`${url}/update`, data, auth)
|
|
198
194
|
}
|
|
199
195
|
|
|
200
|
-
return
|
|
196
|
+
return resp
|
|
201
197
|
}
|
|
202
198
|
|
|
203
199
|
async remove(url, id, auth= undefined) {
|
|
204
200
|
const data = { id: id }
|
|
205
|
-
|
|
206
|
-
return result.data
|
|
201
|
+
return await this.post(`${url}/delete`, data, auth)
|
|
207
202
|
}
|
|
208
203
|
}
|
|
209
204
|
|
package/src/fetcher/utils.mjs
CHANGED
|
@@ -1,30 +1,37 @@
|
|
|
1
|
+
import qs from 'qs'
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Transform an JSON object to a query string
|
|
3
5
|
*/
|
|
4
|
-
const _parse_value= (value) => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
6
|
+
// const _parse_value= (value) => {
|
|
7
|
+
// try {
|
|
8
|
+
// return value.replace(/\+/g, '%2B')
|
|
9
|
+
// } catch(e) {
|
|
10
|
+
// return value
|
|
11
|
+
// }
|
|
12
|
+
// }
|
|
13
|
+
//
|
|
14
|
+
// export function json_to_query_string(obj) {
|
|
15
|
+
// if (obj && (Object.keys(obj).length>0)) {
|
|
16
|
+
// const uparams = new URLSearchParams()
|
|
17
|
+
// for (const key in obj) {
|
|
18
|
+
// if (Object.hasOwn(obj, key)) {
|
|
19
|
+
// const value = obj[key];
|
|
20
|
+
// if (Array.isArray(value)) {
|
|
21
|
+
// value.forEach(item => uparams.append(key, _parse_value(item)))
|
|
22
|
+
// } else if (value !== undefined && value !== null) {
|
|
23
|
+
// uparams.append(key, _parse_value(value))
|
|
24
|
+
// }
|
|
25
|
+
// }
|
|
26
|
+
// }
|
|
27
|
+
// return `?${uparams.toString()}`
|
|
28
|
+
// }
|
|
29
|
+
// return ''
|
|
30
|
+
// }
|
|
11
31
|
|
|
12
32
|
export function json_to_query_string(obj) {
|
|
13
|
-
if (obj
|
|
14
|
-
|
|
15
|
-
for (const key in obj) {
|
|
16
|
-
if (Object.hasOwn(obj, key)) {
|
|
17
|
-
const value = obj[key];
|
|
18
|
-
if (Array.isArray(value)) {
|
|
19
|
-
value.forEach(item => uparams.append(key, _parse_value(item)))
|
|
20
|
-
} else if (value !== undefined && value !== null) {
|
|
21
|
-
uparams.append(key, _parse_value(value))
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return `?${uparams.toString()}`
|
|
26
|
-
}
|
|
27
|
-
return ''
|
|
33
|
+
if (!obj || Object.keys(obj).length === 0) return '';
|
|
34
|
+
return `?${qs.stringify(obj, { arrayFormat: 'repeat' })}`;
|
|
28
35
|
}
|
|
29
36
|
|
|
30
37
|
export function trim_left(str, what) {
|
|
@@ -35,25 +42,20 @@ export function trim_left(str, what) {
|
|
|
35
42
|
export function omit_nil(obj) {
|
|
36
43
|
if (typeof obj !== 'object') return obj
|
|
37
44
|
return Object.keys(obj).reduce((acc, v) => {
|
|
38
|
-
if (obj[v] !== undefined) acc[v] = obj[v]
|
|
45
|
+
if (obj[v] !== undefined) acc[v] = omit_nil(obj[v])
|
|
39
46
|
return acc
|
|
40
47
|
}, {})
|
|
41
48
|
}
|
|
42
49
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const cookiePart = parts[0];
|
|
53
|
-
return cookiePart;
|
|
54
|
-
}).join(';');
|
|
55
|
-
} catch(e) {
|
|
56
|
-
console.log('[miolo-cli] Could not get the set-cookie after login')
|
|
57
|
-
return undefined
|
|
50
|
+
export function null_to_undefined(value) {
|
|
51
|
+
if (Array.isArray(value)) {
|
|
52
|
+
return value.map(null_to_undefined)
|
|
53
|
+
} else if (value && typeof value === 'object') {
|
|
54
|
+
const data = {}
|
|
55
|
+
for (const [key, val] of Object.entries(value)) {
|
|
56
|
+
data[key] = val === null ? undefined : null_to_undefined(val)
|
|
57
|
+
}
|
|
58
|
+
return data
|
|
58
59
|
}
|
|
59
|
-
|
|
60
|
+
return value
|
|
61
|
+
}
|