proto.io 0.0.147 → 0.0.148
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/database.d.ts +2 -2
- package/dist/adapters/file/filesystem.d.ts +2 -2
- package/dist/adapters/file/google-cloud-storage.d.ts +2 -2
- package/dist/adapters/storage/progres.d.ts +1 -1
- package/dist/client.d.ts +3 -3
- package/dist/client.js +1 -1
- package/dist/client.mjs +2 -2
- package/dist/index.d.ts +3 -3
- package/dist/index.js +21 -45
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +22 -46
- package/dist/index.mjs.map +1 -1
- package/dist/internals/{index-bbPCIbir.d.ts → index-BAB_APmb.d.ts} +2 -2
- package/dist/internals/index-BAB_APmb.d.ts.map +1 -0
- package/dist/internals/{index-BWztjrw_.d.ts → index-CvfRsxEZ.d.ts} +6 -13
- package/dist/internals/index-CvfRsxEZ.d.ts.map +1 -0
- package/dist/internals/{index-BDB4idmt.d.ts → index-D4VXQ1FB.d.ts} +2 -2
- package/dist/internals/index-D4VXQ1FB.d.ts.map +1 -0
- package/dist/internals/{index-Do-zNOpD.mjs → index-DGau0Wqf.mjs} +19 -1
- package/dist/internals/index-DGau0Wqf.mjs.map +1 -0
- package/dist/internals/{index-CT01T3qs.js → index-tNCIyuCp.js} +19 -1
- package/dist/internals/index-tNCIyuCp.js.map +1 -0
- package/package.json +3 -3
- package/dist/internals/index-BDB4idmt.d.ts.map +0 -1
- package/dist/internals/index-BWztjrw_.d.ts.map +0 -1
- package/dist/internals/index-CT01T3qs.js.map +0 -1
- package/dist/internals/index-Do-zNOpD.mjs.map +0 -1
- package/dist/internals/index-bbPCIbir.d.ts.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -3,8 +3,8 @@ import { Server } from '@o2ter/server-js';
|
|
|
3
3
|
import { Q as QueryValidator, g as generateId } from './internals/random-BjV_01xP.mjs';
|
|
4
4
|
import { P as PVK } from './internals/private-BUpLAMZi.mjs';
|
|
5
5
|
import { asyncStream, asyncIterableToArray, isBinaryData, base64ToBuffer } from '@o2ter/utils-js';
|
|
6
|
-
import { T as TQuery, M as MASTER_USER_HEADER_NAME, a as MASTER_PASS_HEADER_NAME, A as AUTH_COOKIE_KEY, b as TUser, P as ProtoType, s as serialize, d as deserialize, U as UPLOAD_TOKEN_HEADER_NAME } from './internals/index-
|
|
7
|
-
export { c as ProtoClient, e as classExtends, j as isFile, f as isObject, i as isQuery, h as isRole, g as isUser } from './internals/index-
|
|
6
|
+
import { T as TQuery, M as MASTER_USER_HEADER_NAME, a as MASTER_PASS_HEADER_NAME, A as AUTH_COOKIE_KEY, b as TUser, P as ProtoType, s as serialize, d as deserialize, U as UPLOAD_TOKEN_HEADER_NAME } from './internals/index-DGau0Wqf.mjs';
|
|
7
|
+
export { c as ProtoClient, e as classExtends, j as isFile, f as isObject, i as isQuery, h as isRole, g as isUser } from './internals/index-DGau0Wqf.mjs';
|
|
8
8
|
import { d as decodeUpdateOp, T as TObject, i as isShape, a as isPointer, b as isRelation, c as defaultObjectKeyTypes, e as isPrimitive } from './internals/index-EOtjV6U_.mjs';
|
|
9
9
|
import jwt from 'jsonwebtoken';
|
|
10
10
|
import { Blob } from 'node:buffer';
|
|
@@ -316,9 +316,10 @@ class ProtoQuery extends TQuery {
|
|
|
316
316
|
});
|
|
317
317
|
}
|
|
318
318
|
async insert(attrs, options) {
|
|
319
|
-
const beforeSave = this._proto[PVK].triggers?.beforeSave?.[this.className];
|
|
320
|
-
const afterSave = this._proto[PVK].triggers?.afterSave?.[this.className];
|
|
321
319
|
const context = options?.context ?? {};
|
|
320
|
+
const silent = _.castArray(options?.silent ?? []);
|
|
321
|
+
const beforeSave = _.includes(silent, 'beforeSave') ? null : this._proto[PVK].triggers?.beforeSave?.[this.className];
|
|
322
|
+
const afterSave = _.includes(silent, 'afterSave') ? null : this._proto[PVK].triggers?.afterSave?.[this.className];
|
|
322
323
|
const object = this._proto.Object(this.className);
|
|
323
324
|
for (const [key, value] of _.toPairs(attrs)) {
|
|
324
325
|
object[PVK].mutated[key] = { $set: value };
|
|
@@ -338,9 +339,10 @@ class ProtoQuery extends TQuery {
|
|
|
338
339
|
return result;
|
|
339
340
|
}
|
|
340
341
|
async insertMany(values, options) {
|
|
341
|
-
const beforeSave = this._proto[PVK].triggers?.beforeSave?.[this.className];
|
|
342
|
-
const afterSave = this._proto[PVK].triggers?.afterSave?.[this.className];
|
|
343
342
|
const context = options?.context ?? {};
|
|
343
|
+
const silent = _.castArray(options?.silent ?? []);
|
|
344
|
+
const beforeSave = _.includes(silent, 'beforeSave') ? null : this._proto[PVK].triggers?.beforeSave?.[this.className];
|
|
345
|
+
const afterSave = _.includes(silent, 'afterSave') ? null : this._proto[PVK].triggers?.afterSave?.[this.className];
|
|
344
346
|
if (_.isFunction(beforeSave) || _.isFunction(afterSave)) {
|
|
345
347
|
const objects = _.map(values, attr => {
|
|
346
348
|
const object = this._proto.Object(this.className);
|
|
@@ -371,9 +373,10 @@ class ProtoQuery extends TQuery {
|
|
|
371
373
|
}, values);
|
|
372
374
|
}
|
|
373
375
|
async updateOne(update, options) {
|
|
374
|
-
const beforeSave = this._proto[PVK].triggers?.beforeSave?.[this.className];
|
|
375
|
-
const afterSave = this._proto[PVK].triggers?.afterSave?.[this.className];
|
|
376
376
|
const context = options?.context ?? {};
|
|
377
|
+
const silent = _.castArray(options?.silent ?? []);
|
|
378
|
+
const beforeSave = _.includes(silent, 'beforeSave') ? null : this._proto[PVK].triggers?.beforeSave?.[this.className];
|
|
379
|
+
const afterSave = _.includes(silent, 'afterSave') ? null : this._proto[PVK].triggers?.afterSave?.[this.className];
|
|
377
380
|
if (_.isFunction(beforeSave)) {
|
|
378
381
|
const object = this._objectMethods(_.first(await asyncIterableToArray(this._dispatcher(options).find({ ...this._queryOptions, limit: 1 }))));
|
|
379
382
|
if (!object)
|
|
@@ -389,9 +392,10 @@ class ProtoQuery extends TQuery {
|
|
|
389
392
|
return result;
|
|
390
393
|
}
|
|
391
394
|
async upsertOne(update, setOnInsert, options) {
|
|
392
|
-
const beforeSave = this._proto[PVK].triggers?.beforeSave?.[this.className];
|
|
393
|
-
const afterSave = this._proto[PVK].triggers?.afterSave?.[this.className];
|
|
394
395
|
const context = options?.context ?? {};
|
|
396
|
+
const silent = _.castArray(options?.silent ?? []);
|
|
397
|
+
const beforeSave = _.includes(silent, 'beforeSave') ? null : this._proto[PVK].triggers?.beforeSave?.[this.className];
|
|
398
|
+
const afterSave = _.includes(silent, 'afterSave') ? null : this._proto[PVK].triggers?.afterSave?.[this.className];
|
|
395
399
|
if (_.isFunction(beforeSave)) {
|
|
396
400
|
let object = this._objectMethods(_.first(await asyncIterableToArray(this._dispatcher(options).find({ ...this._queryOptions, limit: 1 }))));
|
|
397
401
|
if (object) {
|
|
@@ -426,9 +430,10 @@ class ProtoQuery extends TQuery {
|
|
|
426
430
|
return result;
|
|
427
431
|
}
|
|
428
432
|
async deleteOne(options) {
|
|
429
|
-
const beforeDelete = this._proto[PVK].triggers?.beforeDelete?.[this.className];
|
|
430
|
-
const afterDelete = this._proto[PVK].triggers?.afterDelete?.[this.className];
|
|
431
433
|
const context = options?.context ?? {};
|
|
434
|
+
const silent = _.castArray(options?.silent ?? []);
|
|
435
|
+
const beforeDelete = _.includes(silent, 'beforeDelete') ? null : this._proto[PVK].triggers?.beforeDelete?.[this.className];
|
|
436
|
+
const afterDelete = _.includes(silent, 'afterDelete') ? null : this._proto[PVK].triggers?.afterDelete?.[this.className];
|
|
432
437
|
let result;
|
|
433
438
|
if (_.isFunction(beforeDelete)) {
|
|
434
439
|
const object = this._objectMethods(_.first(await asyncIterableToArray(this._dispatcher(options).find({ ...this._queryOptions, limit: 1 }))));
|
|
@@ -449,9 +454,10 @@ class ProtoQuery extends TQuery {
|
|
|
449
454
|
return result;
|
|
450
455
|
}
|
|
451
456
|
async deleteMany(options) {
|
|
452
|
-
const beforeDelete = this._proto[PVK].triggers?.beforeDelete?.[this.className];
|
|
453
|
-
const afterDelete = this._proto[PVK].triggers?.afterDelete?.[this.className];
|
|
454
457
|
const context = options?.context ?? {};
|
|
458
|
+
const silent = _.castArray(options?.silent ?? []);
|
|
459
|
+
const beforeDelete = _.includes(silent, 'beforeDelete') ? null : this._proto[PVK].triggers?.beforeDelete?.[this.className];
|
|
460
|
+
const afterDelete = _.includes(silent, 'afterDelete') ? null : this._proto[PVK].triggers?.afterDelete?.[this.className];
|
|
455
461
|
if (_.isFunction(beforeDelete) || _.isFunction(afterDelete)) {
|
|
456
462
|
const objects = this._objectMethods(await asyncIterableToArray(this._dispatcher(options).find(this._queryOptions)));
|
|
457
463
|
if (_.isEmpty(objects))
|
|
@@ -925,31 +931,16 @@ class ProtoInternal {
|
|
|
925
931
|
}
|
|
926
932
|
}
|
|
927
933
|
async saveFile(proto, object, options) {
|
|
928
|
-
const beforeSave = this.triggers?.beforeSaveFile;
|
|
929
|
-
const afterSave = this.triggers?.afterSaveFile;
|
|
930
|
-
const context = options?.context ?? {};
|
|
931
|
-
if (_.isFunction(beforeSave)) {
|
|
932
|
-
await beforeSave(proxy(Object.setPrototypeOf({ object, context }, proto)));
|
|
933
|
-
}
|
|
934
934
|
if (object.objectId) {
|
|
935
935
|
object = await this.updateFile(proto, object, options);
|
|
936
936
|
}
|
|
937
937
|
else {
|
|
938
938
|
object = await this.createFile(proto, object, options);
|
|
939
939
|
}
|
|
940
|
-
if (_.isFunction(afterSave)) {
|
|
941
|
-
await afterSave(proxy(Object.setPrototypeOf({ object, context }, proto)));
|
|
942
|
-
}
|
|
943
940
|
return object;
|
|
944
941
|
}
|
|
945
942
|
async deleteFile(proto, object, options) {
|
|
946
|
-
const beforeDelete = this.triggers?.beforeDeleteFile;
|
|
947
|
-
const afterDelete = this.triggers?.afterDeleteFile;
|
|
948
943
|
object = await object.fetchIfNeeded(['token'], options);
|
|
949
|
-
const context = options?.context ?? {};
|
|
950
|
-
if (_.isFunction(beforeDelete)) {
|
|
951
|
-
await beforeDelete(proxy(Object.setPrototypeOf({ object, context }, proto)));
|
|
952
|
-
}
|
|
953
944
|
const deleted = await proto.Query('File')
|
|
954
945
|
.equalTo('_id', object.objectId)
|
|
955
946
|
.deleteOne(options);
|
|
@@ -959,9 +950,6 @@ class ProtoInternal {
|
|
|
959
950
|
object[PVK].extra = {};
|
|
960
951
|
}
|
|
961
952
|
this.destroyFileData(proto, object.token);
|
|
962
|
-
if (_.isFunction(afterDelete)) {
|
|
963
|
-
await afterDelete(proxy(Object.setPrototypeOf({ object, context }, proto)));
|
|
964
|
-
}
|
|
965
953
|
return object;
|
|
966
954
|
}
|
|
967
955
|
fileData(proto, object, options) {
|
|
@@ -1409,18 +1397,6 @@ class ProtoService extends ProtoType {
|
|
|
1409
1397
|
this[PVK].triggers.afterDelete = {};
|
|
1410
1398
|
this[PVK].triggers.afterDelete[name] = callback;
|
|
1411
1399
|
}
|
|
1412
|
-
beforeSaveFile(callback) {
|
|
1413
|
-
this[PVK].triggers.beforeSaveFile = callback;
|
|
1414
|
-
}
|
|
1415
|
-
afterSaveFile(callback) {
|
|
1416
|
-
this[PVK].triggers.afterSaveFile = callback;
|
|
1417
|
-
}
|
|
1418
|
-
beforeDeleteFile(callback) {
|
|
1419
|
-
this[PVK].triggers.beforeDeleteFile = callback;
|
|
1420
|
-
}
|
|
1421
|
-
afterDeleteFile(callback) {
|
|
1422
|
-
this[PVK].triggers.afterDeleteFile = callback;
|
|
1423
|
-
}
|
|
1424
1400
|
lockTable(className, update) {
|
|
1425
1401
|
return this.storage.lockTable(className, update);
|
|
1426
1402
|
}
|
|
@@ -1587,11 +1563,11 @@ var classesRoute = (router, proto) => {
|
|
|
1587
1563
|
if (!_.includes(classes, name))
|
|
1588
1564
|
return res.sendStatus(404);
|
|
1589
1565
|
await response(res, async () => {
|
|
1590
|
-
const { operation, context, random, attributes, update, setOnInsert, ...options } = deserialize(req.body);
|
|
1566
|
+
const { operation, context, silent, random, attributes, update, setOnInsert, ...options } = deserialize(req.body);
|
|
1591
1567
|
const payload = proto.connect(req);
|
|
1592
1568
|
const query = payload.Query(name);
|
|
1593
1569
|
query[PVK].options = options;
|
|
1594
|
-
const opts = { master: payload.isMaster, context };
|
|
1570
|
+
const opts = { master: payload.isMaster, context, silent };
|
|
1595
1571
|
switch (operation) {
|
|
1596
1572
|
case 'explain':
|
|
1597
1573
|
if (!payload.isMaster)
|