proto.io 0.0.215 → 0.0.216

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.
Files changed (43) hide show
  1. package/dist/adapters/file/aliyun-oss.d.ts +3 -3
  2. package/dist/adapters/file/database.d.ts +2 -2
  3. package/dist/adapters/file/database.js +1 -1
  4. package/dist/adapters/file/database.mjs +2 -2
  5. package/dist/adapters/file/filesystem.d.ts +3 -3
  6. package/dist/adapters/file/google-cloud-storage.d.ts +3 -3
  7. package/dist/adapters/storage/progres.d.ts +4 -8
  8. package/dist/adapters/storage/progres.js +444 -425
  9. package/dist/adapters/storage/progres.js.map +1 -1
  10. package/dist/adapters/storage/progres.mjs +445 -426
  11. package/dist/adapters/storage/progres.mjs.map +1 -1
  12. package/dist/client.d.ts +3 -3
  13. package/dist/client.mjs +3 -3
  14. package/dist/index.d.ts +3 -3
  15. package/dist/index.js +7 -8
  16. package/dist/index.js.map +1 -1
  17. package/dist/index.mjs +10 -11
  18. package/dist/index.mjs.map +1 -1
  19. package/dist/internals/{base-Cp5le5dC.d.ts → base-BO3ZP6EF.d.ts} +2 -2
  20. package/dist/internals/base-BO3ZP6EF.d.ts.map +1 -0
  21. package/dist/internals/{chunk--Vo2-p-z.d.ts → chunk-DDkLpKXp.d.ts} +3 -3
  22. package/dist/internals/chunk-DDkLpKXp.d.ts.map +1 -0
  23. package/dist/internals/{index-al1N-qi7.mjs → index-BzDsTt4R.mjs} +2 -2
  24. package/dist/internals/{index-al1N-qi7.mjs.map → index-BzDsTt4R.mjs.map} +1 -1
  25. package/dist/internals/{index-CZUGnb-y.d.ts → index-CYhA8SU8.d.ts} +2 -2
  26. package/dist/internals/index-CYhA8SU8.d.ts.map +1 -0
  27. package/dist/internals/{index-ZPbBr9Db.mjs → index-DF2AfSGK.mjs} +2 -2
  28. package/dist/internals/index-DF2AfSGK.mjs.map +1 -0
  29. package/dist/internals/index-DfnPpl1I.js.map +1 -1
  30. package/dist/internals/{index-YLrO0f2D.d.ts → index-HdMgLYtD.d.ts} +8 -5
  31. package/dist/internals/index-HdMgLYtD.d.ts.map +1 -0
  32. package/dist/internals/{validator-m6wY35c6.js → validator-BBjOdLiT.js} +4 -1
  33. package/dist/internals/validator-BBjOdLiT.js.map +1 -0
  34. package/dist/internals/{validator-ChrCrz_C.mjs → validator-LNgZGT_l.mjs} +5 -3
  35. package/dist/internals/validator-LNgZGT_l.mjs.map +1 -0
  36. package/package.json +1 -1
  37. package/dist/internals/base-Cp5le5dC.d.ts.map +0 -1
  38. package/dist/internals/chunk--Vo2-p-z.d.ts.map +0 -1
  39. package/dist/internals/index-CZUGnb-y.d.ts.map +0 -1
  40. package/dist/internals/index-YLrO0f2D.d.ts.map +0 -1
  41. package/dist/internals/index-ZPbBr9Db.mjs.map +0 -1
  42. package/dist/internals/validator-ChrCrz_C.mjs.map +0 -1
  43. package/dist/internals/validator-m6wY35c6.js.map +0 -1
package/dist/index.mjs CHANGED
@@ -1,11 +1,11 @@
1
1
  import _ from 'lodash';
2
2
  import { Server } from '@o2ter/server-js';
3
- import { Q as QueryValidator, r as resolveColumn, a as resolveDataType, b as QuerySelector } from './internals/validator-ChrCrz_C.mjs';
3
+ import { Q as QueryValidator, a as QueryExpression, r as resolveColumn, b as resolveDataType, c as QuerySelector } from './internals/validator-LNgZGT_l.mjs';
4
4
  import { P as PVK } from './internals/private-CNw40LZ7.mjs';
5
5
  import { prototypes, asyncStream, isBinaryData, base64ToBuffer } from '@o2ter/utils-js';
6
- import { L as LiveQuerySubscription, T as TQuery, d as deserialize, s as serialize, a as TUser, P as ProtoType, _ as _logLevels } from './internals/index-ZPbBr9Db.mjs';
7
- export { b as ProtoClient, c as classExtends, h as isFile, j as isJob, e as isObject, i as isQuery, g as isRole, f as isUser } from './internals/index-ZPbBr9Db.mjs';
8
- import { i as isPointer, a as isRelation, T as TObject, b as isShape, d as defaultObjectKeyTypes, c as isPrimitive } from './internals/index-al1N-qi7.mjs';
6
+ import { L as LiveQuerySubscription, T as TQuery, d as deserialize, s as serialize, a as TUser, P as ProtoType, _ as _logLevels } from './internals/index-DF2AfSGK.mjs';
7
+ export { b as ProtoClient, c as classExtends, h as isFile, j as isJob, e as isObject, i as isQuery, g as isRole, f as isUser } from './internals/index-DF2AfSGK.mjs';
8
+ import { i as isPointer, a as isRelation, T as TObject, b as isShape, d as defaultObjectKeyTypes, c as isPrimitive } from './internals/index-BzDsTt4R.mjs';
9
9
  import jwt from 'jsonwebtoken';
10
10
  import { Blob } from 'node:buffer';
11
11
  import { Readable } from 'node:stream';
@@ -129,9 +129,12 @@ const dispatcher = (proto, options) => {
129
129
  const isGet = _validator.isGetMethod(decoded.filter);
130
130
  if (!_validator.validateCLPs(query.className, isGet ? 'get' : 'find'))
131
131
  throw Error('No permission');
132
- if (opts?.weight && !_validator.validateKey(query.className, opts.weight, 'read', QueryValidator.patterns.path))
133
- throw Error('No permission');
134
- return proto.storage.random(decoded, opts);
132
+ const weight = opts?.weight ? QueryExpression.decode(opts.weight, false) : undefined;
133
+ for (const key of weight?.keyPaths() ?? []) {
134
+ if (!_validator.validateKey(query.className, key, 'read', QueryValidator.patterns.path))
135
+ throw Error('No permission');
136
+ }
137
+ return proto.storage.random(decoded, { weight });
135
138
  },
136
139
  async insert(options, values) {
137
140
  if (!createFile && options.className === 'File')
@@ -1998,16 +2001,12 @@ var classesRoute = (router, proto) => {
1998
2001
  return void res.sendStatus(404);
1999
2002
  const payload = proto.connect(req);
2000
2003
  const { weight } = req.query;
2001
- if (_.isEmpty(weight) || !_.isString(weight))
2002
- throw Error('Invalid operation');
2003
2004
  await response(res, async () => createQuery(payload, req, true).random({ weight }, { master: payload.isMaster }));
2004
2005
  });
2005
2006
  router.get('/relation/random', queryType.middleware(), async (req, res) => {
2006
2007
  res.setHeader('Cache-Control', ['no-cache', 'no-store']);
2007
2008
  const payload = proto.connect(req);
2008
2009
  const { weight } = req.query;
2009
- if (_.isEmpty(weight) || !_.isString(weight))
2010
- throw Error('Invalid operation');
2011
2010
  await response(res, async () => createQuery(payload, req, true).random({ weight }, { master: payload.isMaster }));
2012
2011
  });
2013
2012
  router.get('/classes/:name/nonrefs', queryType.middleware(), async (req, res) => {