proto.io 0.0.148 → 0.0.150
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/database.js +2 -2
- package/dist/adapters/file/database.mjs +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 +6 -1
- package/dist/adapters/storage/progres.js +13 -4
- package/dist/adapters/storage/progres.js.map +1 -1
- package/dist/adapters/storage/progres.mjs +13 -4
- package/dist/adapters/storage/progres.mjs.map +1 -1
- package/dist/client.d.ts +3 -5
- package/dist/client.js +2 -2
- package/dist/client.mjs +3 -3
- package/dist/index.d.ts +3 -5
- package/dist/index.js +53 -20
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +54 -21
- package/dist/index.mjs.map +1 -1
- package/dist/internals/{index-CvfRsxEZ.d.ts → index-013pxZ3P.d.ts} +5 -78
- package/dist/internals/index-013pxZ3P.d.ts.map +1 -0
- package/dist/internals/{index-EOtjV6U_.mjs → index-BmRuvHVZ.mjs} +11 -1
- package/dist/internals/index-BmRuvHVZ.mjs.map +1 -0
- package/dist/internals/index-BqFdBhFc.js.map +1 -1
- package/dist/internals/{index-DZS2c96L.js → index-CSNRyhjB.js} +2 -2
- package/dist/internals/{index-DZS2c96L.js.map → index-CSNRyhjB.js.map} +1 -1
- package/dist/internals/{index-C6zdNpc_.js → index-CVutVPmd.js} +11 -1
- package/dist/internals/{index-C6zdNpc_.js.map → index-CVutVPmd.js.map} +1 -1
- package/dist/internals/index-CsRN32Jf.d.ts +60 -0
- package/dist/internals/index-CsRN32Jf.d.ts.map +1 -0
- package/dist/internals/{index-D4VXQ1FB.d.ts → index-CyX8Lu9K.d.ts} +3 -2
- package/dist/internals/index-CyX8Lu9K.d.ts.map +1 -0
- package/dist/internals/{index-tNCIyuCp.js → index-D1YGwuNK.js} +8 -4
- package/dist/internals/index-D1YGwuNK.js.map +1 -0
- package/dist/internals/index-be1VYBY2.mjs.map +1 -1
- package/dist/internals/{index-DGau0Wqf.mjs → index-c-CaNuVY.mjs} +8 -4
- package/dist/internals/index-c-CaNuVY.mjs.map +1 -0
- package/dist/internals/{index-DTZ5uRgF.mjs → index-tU-lsQqj.mjs} +2 -2
- package/dist/internals/{index-DTZ5uRgF.mjs.map → index-tU-lsQqj.mjs.map} +1 -1
- package/dist/internals/{random-XGNkddOu.js → random-DBDmz54D.js} +3 -3
- package/dist/internals/{random-XGNkddOu.js.map → random-DBDmz54D.js.map} +1 -1
- package/dist/internals/{random-BjV_01xP.mjs → random-KZTFMK9-.mjs} +3 -3
- package/dist/internals/{random-BjV_01xP.mjs.map → random-KZTFMK9-.mjs.map} +1 -1
- package/package.json +2 -2
- package/dist/internals/index-BAB_APmb.d.ts +0 -116
- package/dist/internals/index-BAB_APmb.d.ts.map +0 -1
- package/dist/internals/index-CvfRsxEZ.d.ts.map +0 -1
- package/dist/internals/index-D4VXQ1FB.d.ts.map +0 -1
- package/dist/internals/index-DGau0Wqf.mjs.map +0 -1
- package/dist/internals/index-EOtjV6U_.mjs.map +0 -1
- package/dist/internals/index-tNCIyuCp.js.map +0 -1
package/dist/client.d.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import { P as ProtoClient } from './internals/index-
|
|
2
|
-
export { c as classExtends, e as isFile, a as isObject, i as isQuery, d as isRole, b as isUser } from './internals/index-
|
|
1
|
+
import { P as ProtoClient } from './internals/index-CsRN32Jf.js';
|
|
2
|
+
export { c as classExtends, e as isFile, a as isObject, i as isQuery, d as isRole, b as isUser } from './internals/index-CsRN32Jf.js';
|
|
3
3
|
export { Decimal } from 'decimal.js';
|
|
4
|
-
export { D as DeserializeOptions, S as SerializeOptions, d as TSerializable, e as deserialize, s as serialize } from './internals/index-
|
|
4
|
+
export { D as DeserializeOptions, S as SerializeOptions, d as TSerializable, e as deserialize, s as serialize } from './internals/index-013pxZ3P.js';
|
|
5
5
|
import '@o2ter/utils-js';
|
|
6
6
|
import 'socket.io-client';
|
|
7
7
|
import '@socket.io/component-emitter';
|
|
8
|
-
import 'stream';
|
|
9
|
-
import 'axios';
|
|
10
8
|
import 'jsonwebtoken';
|
|
11
9
|
import '@o2ter/server-js';
|
|
12
10
|
import 'lodash';
|
package/dist/client.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var index = require('./internals/index-
|
|
5
|
+
var index = require('./internals/index-D1YGwuNK.js');
|
|
6
6
|
var Decimal = require('decimal.js');
|
|
7
|
-
require('./internals/index-
|
|
7
|
+
require('./internals/index-CVutVPmd.js');
|
|
8
8
|
require('lodash');
|
|
9
9
|
require('./internals/private-CSB1Ep4g.js');
|
|
10
10
|
require('@o2ter/utils-js');
|
package/dist/client.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { c as ProtoClient } from './internals/index-
|
|
2
|
-
export { e as classExtends, d as deserialize, j as isFile, f as isObject, i as isQuery, h as isRole, g as isUser, s as serialize } from './internals/index-
|
|
1
|
+
import { c as ProtoClient } from './internals/index-c-CaNuVY.mjs';
|
|
2
|
+
export { e as classExtends, d as deserialize, j as isFile, f as isObject, i as isQuery, h as isRole, g as isUser, s as serialize } from './internals/index-c-CaNuVY.mjs';
|
|
3
3
|
export { Decimal } from 'decimal.js';
|
|
4
|
-
import './internals/index-
|
|
4
|
+
import './internals/index-BmRuvHVZ.mjs';
|
|
5
5
|
import 'lodash';
|
|
6
6
|
import './internals/private-BUpLAMZi.mjs';
|
|
7
7
|
import '@o2ter/utils-js';
|
package/dist/index.d.ts
CHANGED
|
@@ -2,19 +2,17 @@ import * as socket_io from 'socket.io';
|
|
|
2
2
|
import * as socket_io_dist_typed_events from 'socket.io/dist/typed-events';
|
|
3
3
|
import * as express_serve_static_core from 'express-serve-static-core';
|
|
4
4
|
import { Server, RequestHandler } from '@o2ter/server-js';
|
|
5
|
-
import { T as TSchema, _ as _TValue, P as ProtoService, a as ProtoServiceOptions, b as ProtoServiceKeyOptions } from './internals/index-
|
|
6
|
-
export { D as DeserializeOptions, S as SerializeOptions, c as TFileStorage, d as TSerializable, e as deserialize, s as serialize } from './internals/index-
|
|
5
|
+
import { T as TSchema, _ as _TValue, P as ProtoService, a as ProtoServiceOptions, b as ProtoServiceKeyOptions } from './internals/index-013pxZ3P.js';
|
|
6
|
+
export { D as DeserializeOptions, S as SerializeOptions, c as TFileStorage, d as TSerializable, e as deserialize, s as serialize } from './internals/index-013pxZ3P.js';
|
|
7
7
|
import Decimal from 'decimal.js';
|
|
8
8
|
export { Decimal } from 'decimal.js';
|
|
9
|
-
export { P as ProtoClient, c as classExtends, e as isFile, a as isObject, i as isQuery, d as isRole, b as isUser } from './internals/index-
|
|
9
|
+
export { P as ProtoClient, c as classExtends, e as isFile, a as isObject, i as isQuery, d as isRole, b as isUser } from './internals/index-CsRN32Jf.js';
|
|
10
10
|
import '@o2ter/utils-js';
|
|
11
11
|
import 'jsonwebtoken';
|
|
12
12
|
import 'lodash';
|
|
13
13
|
import 'node:stream';
|
|
14
14
|
import 'socket.io-client';
|
|
15
15
|
import '@socket.io/component-emitter';
|
|
16
|
-
import 'stream';
|
|
17
|
-
import 'axios';
|
|
18
16
|
|
|
19
17
|
declare const schema: ((x: Record<string, TSchema>) => Record<string, TSchema>) & {
|
|
20
18
|
boolean: (defaultValue?: boolean) => {
|
package/dist/index.js
CHANGED
|
@@ -4,18 +4,18 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var _ = require('lodash');
|
|
6
6
|
var serverJs = require('@o2ter/server-js');
|
|
7
|
-
var random = require('./internals/random-
|
|
7
|
+
var random = require('./internals/random-DBDmz54D.js');
|
|
8
8
|
var _private = require('./internals/private-CSB1Ep4g.js');
|
|
9
9
|
var utilsJs = require('@o2ter/utils-js');
|
|
10
|
-
var index = require('./internals/index-
|
|
11
|
-
var index$1 = require('./internals/index-
|
|
10
|
+
var index = require('./internals/index-D1YGwuNK.js');
|
|
11
|
+
var index$1 = require('./internals/index-CVutVPmd.js');
|
|
12
12
|
var jwt = require('jsonwebtoken');
|
|
13
13
|
var node_buffer = require('node:buffer');
|
|
14
14
|
var node_stream = require('node:stream');
|
|
15
15
|
var node_crypto = require('node:crypto');
|
|
16
16
|
var util = require('util');
|
|
17
17
|
var cryptoJs = require('@o2ter/crypto-js');
|
|
18
|
-
var index$2 = require('./internals/index-
|
|
18
|
+
var index$2 = require('./internals/index-CSNRyhjB.js');
|
|
19
19
|
var queryType = require('query-types');
|
|
20
20
|
var busboy = require('busboy');
|
|
21
21
|
var Decimal = require('decimal.js');
|
|
@@ -138,12 +138,22 @@ const dispatcher = (proto, options, disableSecurity) => {
|
|
|
138
138
|
const _matches = _validator.decodeMatches(options.className, options.matches ?? {}, _includes);
|
|
139
139
|
if (!_validator.validateCLPs(options.className, 'create'))
|
|
140
140
|
throw Error('No permission');
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
141
|
+
const _attrs = normalize(_validator.validateFields(options.className, attrs, 'create', random.QueryValidator.patterns.path));
|
|
142
|
+
while (true) {
|
|
143
|
+
try {
|
|
144
|
+
return await proto.storage.atomic((storage) => storage.insert({
|
|
145
|
+
className: options.className,
|
|
146
|
+
includes: _includes,
|
|
147
|
+
matches: _matches,
|
|
148
|
+
objectIdSize: proto[_private.PVK].options.objectIdSize
|
|
149
|
+
}, _attrs), { lockTable: options.className, retry: true });
|
|
150
|
+
}
|
|
151
|
+
catch (e) {
|
|
152
|
+
if (proto.storage.isDuplicateIdError(e))
|
|
153
|
+
continue;
|
|
154
|
+
throw e;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
147
157
|
},
|
|
148
158
|
async insertMany(options, values) {
|
|
149
159
|
random.QueryValidator.recursiveCheck(values);
|
|
@@ -152,12 +162,22 @@ const dispatcher = (proto, options, disableSecurity) => {
|
|
|
152
162
|
const _matches = _validator.decodeMatches(options.className, options.matches ?? {}, _includes);
|
|
153
163
|
if (!_validator.validateCLPs(options.className, 'create'))
|
|
154
164
|
throw Error('No permission');
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
165
|
+
const _attrs = normalize(_.map(values, attr => _validator.validateFields(options.className, attr, 'create', random.QueryValidator.patterns.path)));
|
|
166
|
+
while (true) {
|
|
167
|
+
try {
|
|
168
|
+
return await proto.storage.atomic((storage) => storage.insertMany({
|
|
169
|
+
className: options.className,
|
|
170
|
+
includes: _includes,
|
|
171
|
+
matches: _matches,
|
|
172
|
+
objectIdSize: proto[_private.PVK].options.objectIdSize
|
|
173
|
+
}, _attrs), { lockTable: options.className, retry: true });
|
|
174
|
+
}
|
|
175
|
+
catch (e) {
|
|
176
|
+
if (proto.storage.isDuplicateIdError(e))
|
|
177
|
+
continue;
|
|
178
|
+
throw e;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
161
181
|
},
|
|
162
182
|
async updateOne(query, update) {
|
|
163
183
|
random.QueryValidator.recursiveCheck(query, update);
|
|
@@ -171,7 +191,19 @@ const dispatcher = (proto, options, disableSecurity) => {
|
|
|
171
191
|
const _validator = await validator();
|
|
172
192
|
if (!_validator.validateCLPs(query.className, 'create', 'update'))
|
|
173
193
|
throw Error('No permission');
|
|
174
|
-
|
|
194
|
+
const _query = _validator.decodeQuery(normalize(query), 'update');
|
|
195
|
+
const _update = normalize(_validator.validateFields(query.className, update, 'update', random.QueryValidator.patterns.path));
|
|
196
|
+
const _setOnInsert = normalize(_validator.validateFields(query.className, setOnInsert, 'create', random.QueryValidator.patterns.name));
|
|
197
|
+
while (true) {
|
|
198
|
+
try {
|
|
199
|
+
return await proto.storage.atomic((storage) => storage.upsertOne(_query, _update, _setOnInsert), { lockTable: query.className, retry: true });
|
|
200
|
+
}
|
|
201
|
+
catch (e) {
|
|
202
|
+
if (proto.storage.isDuplicateIdError(e))
|
|
203
|
+
continue;
|
|
204
|
+
throw e;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
175
207
|
},
|
|
176
208
|
async deleteOne(query) {
|
|
177
209
|
random.QueryValidator.recursiveCheck(query);
|
|
@@ -333,7 +365,7 @@ class ProtoQuery extends index.TQuery {
|
|
|
333
365
|
className: this.className,
|
|
334
366
|
includes: this[_private.PVK].options.includes,
|
|
335
367
|
matches: this[_private.PVK].options.matches,
|
|
336
|
-
}, _.fromPairs([...object.
|
|
368
|
+
}, _.fromPairs([...object._set_entries()])));
|
|
337
369
|
if (!result)
|
|
338
370
|
throw Error('Unable to insert document');
|
|
339
371
|
if (_.isFunction(afterSave)) {
|
|
@@ -363,7 +395,7 @@ class ProtoQuery extends index.TQuery {
|
|
|
363
395
|
className: this.className,
|
|
364
396
|
includes: this[_private.PVK].options.includes,
|
|
365
397
|
matches: this[_private.PVK].options.matches,
|
|
366
|
-
}, _.map(objects, x => _.fromPairs([...x.
|
|
398
|
+
}, _.map(objects, x => _.fromPairs([...x._set_entries()])));
|
|
367
399
|
if (_.isFunction(afterSave)) {
|
|
368
400
|
await Promise.all(_.map(objects, object => afterSave(proxy(Object.setPrototypeOf({ object, context }, options?.session ?? this._proto)))));
|
|
369
401
|
}
|
|
@@ -920,7 +952,7 @@ class ProtoInternal {
|
|
|
920
952
|
object.set('nonce', nonce);
|
|
921
953
|
const created = await proto.Query('File')
|
|
922
954
|
.includes(...object.keys())
|
|
923
|
-
.insert(_.fromPairs([...object.
|
|
955
|
+
.insert(_.fromPairs([...object._set_entries()]), options);
|
|
924
956
|
if (created) {
|
|
925
957
|
object[_private.PVK].attributes = created.attributes;
|
|
926
958
|
object[_private.PVK].mutated = {};
|
|
@@ -1255,6 +1287,7 @@ const schedule = (proto) => {
|
|
|
1255
1287
|
// THE SOFTWARE.
|
|
1256
1288
|
//
|
|
1257
1289
|
class ProtoService extends index.ProtoType {
|
|
1290
|
+
/** @internal */
|
|
1258
1291
|
[_private.PVK];
|
|
1259
1292
|
_storage;
|
|
1260
1293
|
_schedule = schedule(this);
|