proto.io 0.0.208 → 0.0.210
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/adapters/file/aliyun-oss.d.ts +6 -6
- package/dist/adapters/file/aliyun-oss.js +14 -13
- package/dist/adapters/file/aliyun-oss.js.map +1 -1
- package/dist/adapters/file/aliyun-oss.mjs +14 -13
- package/dist/adapters/file/aliyun-oss.mjs.map +1 -1
- package/dist/adapters/file/database.d.ts +3 -3
- package/dist/adapters/file/database.js +2 -2
- package/dist/adapters/file/database.js.map +1 -1
- package/dist/adapters/file/database.mjs +2 -2
- package/dist/adapters/file/database.mjs.map +1 -1
- package/dist/adapters/file/filesystem.d.ts +5 -5
- package/dist/adapters/file/filesystem.js +11 -7
- package/dist/adapters/file/filesystem.js.map +1 -1
- package/dist/adapters/file/filesystem.mjs +11 -7
- package/dist/adapters/file/filesystem.mjs.map +1 -1
- package/dist/adapters/file/google-cloud-storage.d.ts +6 -6
- package/dist/adapters/file/google-cloud-storage.js +23 -13
- package/dist/adapters/file/google-cloud-storage.js.map +1 -1
- package/dist/adapters/file/google-cloud-storage.mjs +23 -13
- package/dist/adapters/file/google-cloud-storage.mjs.map +1 -1
- package/dist/adapters/storage/progres.d.ts +1 -1
- package/dist/adapters/storage/progres.js +22 -28
- package/dist/adapters/storage/progres.js.map +1 -1
- package/dist/adapters/storage/progres.mjs +22 -28
- package/dist/adapters/storage/progres.mjs.map +1 -1
- package/dist/client.d.ts +3 -3
- package/dist/client.js +2 -1
- package/dist/client.js.map +1 -1
- package/dist/client.mjs +3 -2
- package/dist/client.mjs.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +159 -31
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +152 -24
- package/dist/index.mjs.map +1 -1
- package/dist/internals/{base-wSknxBv7.d.ts → base-C1ndp06_.d.ts} +2 -2
- package/dist/internals/base-C1ndp06_.d.ts.map +1 -0
- package/dist/internals/{base-CfQi0T0I.mjs → base-DYc1_peK.mjs} +3 -3
- package/dist/internals/{base-CfQi0T0I.mjs.map → base-DYc1_peK.mjs.map} +1 -1
- package/dist/internals/{base-BFKQpiws.js → base-NsJYo2MG.js} +3 -3
- package/dist/internals/{base-BFKQpiws.js.map → base-NsJYo2MG.js.map} +1 -1
- package/dist/internals/{chunk-BuMQw4dz.js → chunk-BuKmyceG.js} +5 -3
- package/dist/internals/chunk-BuKmyceG.js.map +1 -0
- package/dist/internals/{chunk-C_BXf1Er.d.ts → chunk-DF4KyvgB.d.ts} +6 -6
- package/dist/internals/chunk-DF4KyvgB.d.ts.map +1 -0
- package/dist/internals/{chunk-DxYhYVky.mjs → chunk-bpt1C6W4.mjs} +5 -3
- package/dist/internals/chunk-bpt1C6W4.mjs.map +1 -0
- package/dist/internals/const-C3I6cfav.js +42 -0
- package/dist/internals/const-C3I6cfav.js.map +1 -0
- package/dist/internals/const-Dkp7Nsv5.mjs +34 -0
- package/dist/internals/const-Dkp7Nsv5.mjs.map +1 -0
- package/dist/internals/index-B8TESzd9.js.map +1 -1
- package/dist/internals/{index-BvwYz4Yp.mjs → index-BgSBzm-K.mjs} +95 -20
- package/dist/internals/index-BgSBzm-K.mjs.map +1 -0
- package/dist/internals/{index-DVUiXLfI.js → index-Clo9hepf.js} +101 -29
- package/dist/internals/index-Clo9hepf.js.map +1 -0
- package/dist/internals/{index-CkAvNaAe.js → index-D8O7SinR.js} +50 -3
- package/dist/internals/index-D8O7SinR.js.map +1 -0
- package/dist/internals/{index-A-hoMfDO.d.ts → index-DIRjiWPh.d.ts} +32 -1
- package/dist/internals/index-DIRjiWPh.d.ts.map +1 -0
- package/dist/internals/{index-DlY33lfO.mjs → index-DPPLcZx8.mjs} +51 -4
- package/dist/internals/index-DPPLcZx8.mjs.map +1 -0
- package/dist/internals/index-al1N-qi7.mjs.map +1 -1
- package/dist/internals/{index-iqOd-Wdg.d.ts → index-l-Mk0lCc.d.ts} +2 -2
- package/dist/internals/index-l-Mk0lCc.d.ts.map +1 -0
- package/dist/internals/{random-B0V0EnjP.js → random-CyU_Y2Ay.js} +2 -2
- package/dist/internals/{random-B0V0EnjP.js.map → random-CyU_Y2Ay.js.map} +1 -1
- package/dist/internals/{random-ZgzzM5v_.mjs → random-ycCeBd0S.mjs} +2 -2
- package/dist/internals/{random-ZgzzM5v_.mjs.map → random-ycCeBd0S.mjs.map} +1 -1
- package/package.json +1 -1
- package/dist/internals/base-wSknxBv7.d.ts.map +0 -1
- package/dist/internals/chunk-BuMQw4dz.js.map +0 -1
- package/dist/internals/chunk-C_BXf1Er.d.ts.map +0 -1
- package/dist/internals/chunk-DxYhYVky.mjs.map +0 -1
- package/dist/internals/index-A-hoMfDO.d.ts.map +0 -1
- package/dist/internals/index-BvwYz4Yp.mjs.map +0 -1
- package/dist/internals/index-CkAvNaAe.js.map +0 -1
- package/dist/internals/index-DVUiXLfI.js.map +0 -1
- package/dist/internals/index-DlY33lfO.mjs.map +0 -1
- package/dist/internals/index-iqOd-Wdg.d.ts.map +0 -1
|
@@ -5,6 +5,7 @@ var _private = require('./private-Ciddhure.js');
|
|
|
5
5
|
var _ = require('lodash');
|
|
6
6
|
var index = require('./index-B8TESzd9.js');
|
|
7
7
|
var axios = require('axios');
|
|
8
|
+
var _const$1 = require('./const-C3I6cfav.js');
|
|
8
9
|
var _const = require('@o2ter/server-js/dist/const');
|
|
9
10
|
var socket_ioClient = require('socket.io-client');
|
|
10
11
|
var cryptoJs = require('@o2ter/crypto-js');
|
|
@@ -577,11 +578,22 @@ class TQuery extends TQueryBase {
|
|
|
577
578
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
578
579
|
// THE SOFTWARE.
|
|
579
580
|
//
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
581
|
+
class LiveQuerySubscription {
|
|
582
|
+
_className;
|
|
583
|
+
_proto;
|
|
584
|
+
_filter;
|
|
585
|
+
constructor(className, proto, filter) {
|
|
586
|
+
this._className = className;
|
|
587
|
+
this._proto = proto;
|
|
588
|
+
this._filter = _.isArray(filter) ? filter : [filter];
|
|
589
|
+
}
|
|
590
|
+
get className() {
|
|
591
|
+
return this._className;
|
|
592
|
+
}
|
|
593
|
+
on(event, callback) {
|
|
594
|
+
return this._proto[_private.PVK].liveQuery(this._proto, event, this.className, this._filter, (object) => callback(object));
|
|
595
|
+
}
|
|
596
|
+
}
|
|
585
597
|
|
|
586
598
|
//
|
|
587
599
|
// file.ts
|
|
@@ -1178,6 +1190,7 @@ const applyObjectMethods = (object, proto) => {
|
|
|
1178
1190
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
1179
1191
|
// THE SOFTWARE.
|
|
1180
1192
|
//
|
|
1193
|
+
const _logLevels = ['error', 'warn', 'info', 'debug', 'trace'];
|
|
1181
1194
|
class ProtoType {
|
|
1182
1195
|
isQuery = isQuery;
|
|
1183
1196
|
isObject = isObject;
|
|
@@ -1395,6 +1408,9 @@ class ProtoClientQuery extends _ProtoClientQuery {
|
|
|
1395
1408
|
clone[_private.PVK].options = options ?? { ...this[_private.PVK].options };
|
|
1396
1409
|
return clone;
|
|
1397
1410
|
}
|
|
1411
|
+
subscribe() {
|
|
1412
|
+
return new LiveQuerySubscription(this.className, this._proto, this[_private.PVK].options.filter ?? []);
|
|
1413
|
+
}
|
|
1398
1414
|
}
|
|
1399
1415
|
class ProtoClientRelationQuery extends _ProtoClientQuery {
|
|
1400
1416
|
constructor(proto, opts) {
|
|
@@ -1411,6 +1427,9 @@ class ProtoClientRelationQuery extends _ProtoClientQuery {
|
|
|
1411
1427
|
clone[_private.PVK].options = options ?? { ...this[_private.PVK].options };
|
|
1412
1428
|
return clone;
|
|
1413
1429
|
}
|
|
1430
|
+
subscribe() {
|
|
1431
|
+
throw Error('Unable to subscribe to relationship query');
|
|
1432
|
+
}
|
|
1414
1433
|
}
|
|
1415
1434
|
|
|
1416
1435
|
//
|
|
@@ -1457,7 +1476,7 @@ class Service {
|
|
|
1457
1476
|
setSessionToken(token) {
|
|
1458
1477
|
this.token = token;
|
|
1459
1478
|
if (typeof window === 'undefined') {
|
|
1460
|
-
this.service.defaults.headers.Cookie = token ? `${AUTH_COOKIE_KEY}=${token}` : null;
|
|
1479
|
+
this.service.defaults.headers.Cookie = token ? `${_const$1.AUTH_COOKIE_KEY}=${token}` : null;
|
|
1461
1480
|
}
|
|
1462
1481
|
for (const socket of this.sockets) {
|
|
1463
1482
|
socket.emit('auth', token);
|
|
@@ -1470,8 +1489,8 @@ class Service {
|
|
|
1470
1489
|
headers: {
|
|
1471
1490
|
'Content-Type': 'application/json; charset=utf-8',
|
|
1472
1491
|
...master ? {
|
|
1473
|
-
[MASTER_USER_HEADER_NAME]: this.proto.options.masterUser?.user,
|
|
1474
|
-
[MASTER_PASS_HEADER_NAME]: this.proto.options.masterUser?.pass,
|
|
1492
|
+
[_const$1.MASTER_USER_HEADER_NAME]: this.proto.options.masterUser?.user,
|
|
1493
|
+
[_const$1.MASTER_PASS_HEADER_NAME]: this.proto.options.masterUser?.pass,
|
|
1475
1494
|
} : {},
|
|
1476
1495
|
...headers,
|
|
1477
1496
|
},
|
|
@@ -1479,7 +1498,7 @@ class Service {
|
|
|
1479
1498
|
});
|
|
1480
1499
|
if (res.headers['set-cookie']) {
|
|
1481
1500
|
const cookies = res.headers['set-cookie'];
|
|
1482
|
-
const pattern = `${AUTH_COOKIE_KEY}=`;
|
|
1501
|
+
const pattern = `${_const$1.AUTH_COOKIE_KEY}=`;
|
|
1483
1502
|
const token = _.findLast(_.flatMap(cookies, x => x.split(';')), x => _.startsWith(x.trim(), pattern));
|
|
1484
1503
|
this.setSessionToken(token?.trim().slice(pattern.length));
|
|
1485
1504
|
}
|
|
@@ -1508,15 +1527,31 @@ class Service {
|
|
|
1508
1527
|
const options = { auth: { token: this.token } };
|
|
1509
1528
|
const socket = endpoint ? socket_ioClient.io(endpoint, options) : socket_ioClient.io(options);
|
|
1510
1529
|
this.sockets.push(socket);
|
|
1511
|
-
let
|
|
1530
|
+
let events = {};
|
|
1531
|
+
let queries = {};
|
|
1512
1532
|
let destroyCallbacks = [];
|
|
1533
|
+
const register_event = () => {
|
|
1534
|
+
socket.emit('EV_NOTIFY', _.mapValues(events, x => x.selector ?? true));
|
|
1535
|
+
};
|
|
1536
|
+
const register_query = () => {
|
|
1537
|
+
socket.emit('EV_LIVEQUERY', _.mapValues(queries, x => x.options));
|
|
1538
|
+
};
|
|
1513
1539
|
const register = () => {
|
|
1514
|
-
|
|
1540
|
+
register_event();
|
|
1541
|
+
register_query();
|
|
1515
1542
|
};
|
|
1516
|
-
socket.on('
|
|
1517
|
-
|
|
1543
|
+
socket.on('ON_EV_NOTIFY', ({ ids, data }) => {
|
|
1544
|
+
const payload = deserialize(JSON.stringify(data));
|
|
1545
|
+
for (const [id, { callback }] of _.entries(events)) {
|
|
1518
1546
|
if (_.includes(ids, id))
|
|
1519
|
-
callback(
|
|
1547
|
+
callback(payload);
|
|
1548
|
+
}
|
|
1549
|
+
});
|
|
1550
|
+
socket.on('ON_EV_LIVEQUERY', ({ ids, data }) => {
|
|
1551
|
+
const objects = deserialize(JSON.stringify(data));
|
|
1552
|
+
for (const [id, { callback }] of _.entries(queries)) {
|
|
1553
|
+
const keys = _.keys(_.pickBy(ids, v => _.includes(v, id)));
|
|
1554
|
+
callback(_.filter(objects, x => _.includes(keys, x.objectId)));
|
|
1520
1555
|
}
|
|
1521
1556
|
});
|
|
1522
1557
|
socket.on('connect', register);
|
|
@@ -1528,17 +1563,33 @@ class Service {
|
|
|
1528
1563
|
callback();
|
|
1529
1564
|
}
|
|
1530
1565
|
};
|
|
1566
|
+
const destroyIfNeed = () => {
|
|
1567
|
+
if (!_.isEmpty(events))
|
|
1568
|
+
return;
|
|
1569
|
+
if (!_.isEmpty(queries))
|
|
1570
|
+
return;
|
|
1571
|
+
destroy();
|
|
1572
|
+
};
|
|
1531
1573
|
return {
|
|
1532
1574
|
socket,
|
|
1533
1575
|
listen: (callback, selector) => {
|
|
1534
1576
|
const id = cryptoJs.randomUUID();
|
|
1535
|
-
|
|
1536
|
-
|
|
1577
|
+
events[id] = { callback, selector };
|
|
1578
|
+
register_event();
|
|
1579
|
+
return () => {
|
|
1580
|
+
events = _.omit(events, id);
|
|
1581
|
+
register_event();
|
|
1582
|
+
destroyIfNeed();
|
|
1583
|
+
};
|
|
1584
|
+
},
|
|
1585
|
+
liveQuery: (callback, options) => {
|
|
1586
|
+
const id = cryptoJs.randomUUID();
|
|
1587
|
+
queries[id] = { callback, options };
|
|
1588
|
+
register_query();
|
|
1537
1589
|
return () => {
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
destroy();
|
|
1590
|
+
queries = _.omit(queries, id);
|
|
1591
|
+
register_query();
|
|
1592
|
+
destroyIfNeed();
|
|
1542
1593
|
};
|
|
1543
1594
|
},
|
|
1544
1595
|
onDestroy: (callback) => {
|
|
@@ -1737,7 +1788,7 @@ class ProtoClientInternal {
|
|
|
1737
1788
|
},
|
|
1738
1789
|
headers: {
|
|
1739
1790
|
'Content-Type': 'multipart/form-data',
|
|
1740
|
-
[UPLOAD_TOKEN_HEADER_NAME]: uploadToken,
|
|
1791
|
+
[_const$1.UPLOAD_TOKEN_HEADER_NAME]: uploadToken,
|
|
1741
1792
|
},
|
|
1742
1793
|
...opts,
|
|
1743
1794
|
});
|
|
@@ -1801,9 +1852,10 @@ class ProtoClientInternal {
|
|
|
1801
1852
|
});
|
|
1802
1853
|
}
|
|
1803
1854
|
listen(proto, callback, selector) {
|
|
1804
|
-
const
|
|
1855
|
+
const _socket = this.socket ?? this.service.socket();
|
|
1856
|
+
const { socket, listen, onDestroy } = _socket;
|
|
1805
1857
|
if (_.isNil(this.socket)) {
|
|
1806
|
-
this.socket =
|
|
1858
|
+
this.socket = _socket;
|
|
1807
1859
|
onDestroy(() => { this.socket = undefined; });
|
|
1808
1860
|
}
|
|
1809
1861
|
return {
|
|
@@ -1813,6 +1865,29 @@ class ProtoClientInternal {
|
|
|
1813
1865
|
}, selector),
|
|
1814
1866
|
};
|
|
1815
1867
|
}
|
|
1868
|
+
liveQuery(proto, event, className, filter, callback) {
|
|
1869
|
+
const _socket = this.socket ?? this.service.socket();
|
|
1870
|
+
const { socket, liveQuery, onDestroy } = _socket;
|
|
1871
|
+
if (_.isNil(this.socket)) {
|
|
1872
|
+
this.socket = _socket;
|
|
1873
|
+
onDestroy(() => { this.socket = undefined; });
|
|
1874
|
+
}
|
|
1875
|
+
return {
|
|
1876
|
+
socket,
|
|
1877
|
+
remove: liveQuery((objects) => {
|
|
1878
|
+
for (const object of proto.rebind(objects)) {
|
|
1879
|
+
(async () => {
|
|
1880
|
+
try {
|
|
1881
|
+
await callback(object);
|
|
1882
|
+
}
|
|
1883
|
+
catch (e) {
|
|
1884
|
+
proto.logger.error(e);
|
|
1885
|
+
}
|
|
1886
|
+
})();
|
|
1887
|
+
}
|
|
1888
|
+
}, { event, className, filter }),
|
|
1889
|
+
};
|
|
1890
|
+
}
|
|
1816
1891
|
refs(proto, object, options) {
|
|
1817
1892
|
if (!object.objectId)
|
|
1818
1893
|
throw Error('Invalid object');
|
|
@@ -1939,15 +2014,12 @@ class ProtoClient extends ProtoType {
|
|
|
1939
2014
|
}
|
|
1940
2015
|
}
|
|
1941
2016
|
|
|
1942
|
-
exports.
|
|
1943
|
-
exports.MASTER_PASS_HEADER_NAME = MASTER_PASS_HEADER_NAME;
|
|
1944
|
-
exports.MASTER_USER_HEADER_NAME = MASTER_USER_HEADER_NAME;
|
|
1945
|
-
exports.PROTO_NOTY_MSG = PROTO_NOTY_MSG;
|
|
2017
|
+
exports.LiveQuerySubscription = LiveQuerySubscription;
|
|
1946
2018
|
exports.ProtoClient = ProtoClient;
|
|
1947
2019
|
exports.ProtoType = ProtoType;
|
|
1948
2020
|
exports.TQuery = TQuery;
|
|
1949
2021
|
exports.TUser = TUser;
|
|
1950
|
-
exports.
|
|
2022
|
+
exports._logLevels = _logLevels;
|
|
1951
2023
|
exports.classExtends = classExtends;
|
|
1952
2024
|
exports.deserialize = deserialize;
|
|
1953
2025
|
exports.isFile = isFile;
|
|
@@ -1957,4 +2029,4 @@ exports.isQuery = isQuery;
|
|
|
1957
2029
|
exports.isRole = isRole;
|
|
1958
2030
|
exports.isUser = isUser;
|
|
1959
2031
|
exports.serialize = serialize;
|
|
1960
|
-
//# sourceMappingURL=index-
|
|
2032
|
+
//# sourceMappingURL=index-Clo9hepf.js.map
|