proto.io 0.0.163 → 0.0.165

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 (49) hide show
  1. package/dist/adapters/file/database.d.ts +2 -2
  2. package/dist/adapters/file/database.js.map +1 -1
  3. package/dist/adapters/file/database.mjs +2 -2
  4. package/dist/adapters/file/database.mjs.map +1 -1
  5. package/dist/adapters/file/filesystem.d.ts +2 -2
  6. package/dist/adapters/file/filesystem.js.map +1 -1
  7. package/dist/adapters/file/filesystem.mjs.map +1 -1
  8. package/dist/adapters/file/google-cloud-storage.d.ts +2 -2
  9. package/dist/adapters/file/google-cloud-storage.js.map +1 -1
  10. package/dist/adapters/file/google-cloud-storage.mjs.map +1 -1
  11. package/dist/adapters/storage/progres.d.ts +16 -13
  12. package/dist/adapters/storage/progres.js +138 -82
  13. package/dist/adapters/storage/progres.js.map +1 -1
  14. package/dist/adapters/storage/progres.mjs +140 -84
  15. package/dist/adapters/storage/progres.mjs.map +1 -1
  16. package/dist/client.d.ts +3 -3
  17. package/dist/client.mjs +3 -3
  18. package/dist/index.d.ts +7 -12
  19. package/dist/index.js +24 -23
  20. package/dist/index.js.map +1 -1
  21. package/dist/index.mjs +28 -27
  22. package/dist/index.mjs.map +1 -1
  23. package/dist/internals/{index-ByfpVHca.mjs → index-BYbMU-Ao.mjs} +2 -2
  24. package/dist/internals/{index-ByfpVHca.mjs.map → index-BYbMU-Ao.mjs.map} +1 -1
  25. package/dist/internals/{index-S5Bq-KsU.mjs → index-BejQNqvC.mjs} +2 -2
  26. package/dist/internals/{index-S5Bq-KsU.mjs.map → index-BejQNqvC.mjs.map} +1 -1
  27. package/dist/internals/{index-BoP4kl2R.mjs → index-BibByOcU.mjs} +2 -2
  28. package/dist/internals/{index-BoP4kl2R.mjs.map → index-BibByOcU.mjs.map} +1 -1
  29. package/dist/internals/index-BqFdBhFc.js.map +1 -1
  30. package/dist/internals/index-CSNRyhjB.js.map +1 -1
  31. package/dist/internals/index-CVutVPmd.js.map +1 -1
  32. package/dist/internals/{index-BeV63sFw.d.ts → index-DaDfXlay.d.ts} +2 -2
  33. package/dist/internals/index-DaDfXlay.d.ts.map +1 -0
  34. package/dist/internals/index-Dz3jvqxZ.js.map +1 -1
  35. package/dist/internals/{index-YdOGTHp1.d.ts → index-RPh4TX0T.d.ts} +3 -2
  36. package/dist/internals/index-RPh4TX0T.d.ts.map +1 -0
  37. package/dist/internals/{index-BsuUdR0W.d.ts → index-bCACA0cS.d.ts} +2 -2
  38. package/dist/internals/index-bCACA0cS.d.ts.map +1 -0
  39. package/dist/internals/index-be1VYBY2.mjs.map +1 -1
  40. package/dist/internals/{random-w8WDYQEe.mjs → random-B1P0EZO5.mjs} +5 -10
  41. package/dist/internals/random-B1P0EZO5.mjs.map +1 -0
  42. package/dist/internals/{random-uT4D0y_q.js → random-q0PeamQE.js} +3 -8
  43. package/dist/internals/random-q0PeamQE.js.map +1 -0
  44. package/package.json +20 -20
  45. package/dist/internals/index-BeV63sFw.d.ts.map +0 -1
  46. package/dist/internals/index-BsuUdR0W.d.ts.map +0 -1
  47. package/dist/internals/index-YdOGTHp1.d.ts.map +0 -1
  48. package/dist/internals/random-uT4D0y_q.js.map +0 -1
  49. package/dist/internals/random-w8WDYQEe.mjs.map +0 -1
package/dist/index.mjs CHANGED
@@ -1,18 +1,18 @@
1
1
  import _ from 'lodash';
2
2
  import { Server } from '@o2ter/server-js';
3
- import { Q as QueryValidator, r as resolveColumn, g as generateId, a as resolveDataType } from './internals/random-w8WDYQEe.mjs';
3
+ import { Q as QueryValidator, r as resolveColumn, g as generateId, a as resolveDataType } from './internals/random-B1P0EZO5.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-BoP4kl2R.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-BoP4kl2R.mjs';
8
- import { i as isPointer, a as isRelation, d as decodeUpdateOp, T as TObject, b as isShape, c as defaultObjectKeyTypes, e as isPrimitive } from './internals/index-ByfpVHca.mjs';
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-BibByOcU.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-BibByOcU.mjs';
8
+ import { i as isPointer, a as isRelation, d as decodeUpdateOp, T as TObject, b as isShape, c as defaultObjectKeyTypes, e as isPrimitive } from './internals/index-BYbMU-Ao.mjs';
9
9
  import jwt from 'jsonwebtoken';
10
10
  import { Blob } from 'node:buffer';
11
11
  import { Readable } from 'node:stream';
12
12
  import { scrypt } from 'node:crypto';
13
13
  import { promisify } from 'util';
14
14
  import { randomBytes, randomUUID } from '@o2ter/crypto-js';
15
- import { Q as QuerySelector } from './internals/index-S5Bq-KsU.mjs';
15
+ import { Q as QuerySelector } from './internals/index-BejQNqvC.mjs';
16
16
  import queryType from 'query-types';
17
17
  import busboy from 'busboy';
18
18
  export { Decimal } from 'decimal.js';
@@ -780,8 +780,10 @@ const validateShapedObject = (schema, dataType) => {
780
780
  }
781
781
  };
782
782
  const validateSchemaName = (schema) => {
783
- if (!_.isNil(schema['_Schema']) || !_.isNil(schema['_Config']))
784
- throw Error('Reserved name of class');
783
+ for (const name of ['_Schema', '_Config']) {
784
+ if (!_.isNil(schema[name]))
785
+ throw Error('Reserved name of class');
786
+ }
785
787
  for (const [, _schema] of _.toPairs(schema)) {
786
788
  for (const [key] of _.toPairs(_schema.fields)) {
787
789
  if (_.includes(TObject.defaultKeys, key))
@@ -1749,7 +1751,7 @@ var classesRoute = (router, proto) => {
1749
1751
  const { name } = req.params;
1750
1752
  const classes = proto.classes();
1751
1753
  if (!_.includes(classes, name))
1752
- return res.sendStatus(404);
1754
+ return void res.sendStatus(404);
1753
1755
  await response(res, () => defaultHandler(req));
1754
1756
  });
1755
1757
  router.post('/relation', Server.text({ type: '*/*' }), async (req, res) => {
@@ -1781,7 +1783,7 @@ var classesRoute = (router, proto) => {
1781
1783
  const { name } = req.params;
1782
1784
  const classes = proto.classes();
1783
1785
  if (!_.includes(classes, name))
1784
- return res.sendStatus(404);
1786
+ return void res.sendStatus(404);
1785
1787
  const payload = proto.connect(req);
1786
1788
  await response(res, async () => createQuery(payload, req, true).find({ master: payload.isMaster }));
1787
1789
  });
@@ -1795,7 +1797,7 @@ var classesRoute = (router, proto) => {
1795
1797
  const { name } = req.params;
1796
1798
  const classes = proto.classes();
1797
1799
  if (!_.includes(classes, name))
1798
- return res.sendStatus(404);
1800
+ return void res.sendStatus(404);
1799
1801
  const payload = proto.connect(req);
1800
1802
  const { weight } = req.query;
1801
1803
  if (_.isEmpty(weight) || !_.isString(weight))
@@ -1815,7 +1817,7 @@ var classesRoute = (router, proto) => {
1815
1817
  const { name } = req.params;
1816
1818
  const classes = proto.classes();
1817
1819
  if (!_.includes(classes, name))
1818
- return res.sendStatus(404);
1820
+ return void res.sendStatus(404);
1819
1821
  const payload = proto.connect(req);
1820
1822
  await response(res, async () => createQuery(payload, req, true).nonrefs({ master: payload.isMaster }));
1821
1823
  });
@@ -1829,7 +1831,7 @@ var classesRoute = (router, proto) => {
1829
1831
  const { name, id } = req.params;
1830
1832
  const classes = proto.classes();
1831
1833
  if (!_.includes(classes, name))
1832
- return res.sendStatus(404);
1834
+ return void res.sendStatus(404);
1833
1835
  const payload = proto.connect(req);
1834
1836
  await response(res, () => payload.Query(name).get(id, { master: payload.isMaster }));
1835
1837
  });
@@ -1838,7 +1840,7 @@ var classesRoute = (router, proto) => {
1838
1840
  const { name, id } = req.params;
1839
1841
  const classes = proto.classes();
1840
1842
  if (!_.includes(classes, name))
1841
- return res.sendStatus(404);
1843
+ return void res.sendStatus(404);
1842
1844
  const payload = proto.connect(req);
1843
1845
  await response(res, async () => payload.refs(payload.Object(name, id), { master: payload.isMaster }));
1844
1846
  });
@@ -1847,7 +1849,7 @@ var classesRoute = (router, proto) => {
1847
1849
  const { name, id } = req.params;
1848
1850
  const classes = proto.classes();
1849
1851
  if (!_.includes(classes, name))
1850
- return res.sendStatus(404);
1852
+ return void res.sendStatus(404);
1851
1853
  const payload = proto.connect(req);
1852
1854
  const query = payload.Query(name).equalTo('_id', id);
1853
1855
  const update = _.mapValues(deserialize(req.body), v => ({ $set: v }));
@@ -1856,29 +1858,29 @@ var classesRoute = (router, proto) => {
1856
1858
  router.delete('/classes/:name', Server.text({ type: '*/*' }), async (req, res) => {
1857
1859
  res.setHeader('Cache-Control', ['no-cache', 'no-store']);
1858
1860
  if (!_.isEmpty(req.body))
1859
- return res.sendStatus(400);
1861
+ return void res.sendStatus(400);
1860
1862
  const { name } = req.params;
1861
1863
  const classes = proto.classes();
1862
1864
  if (!_.includes(classes, name))
1863
- return res.sendStatus(404);
1865
+ return void res.sendStatus(404);
1864
1866
  const payload = proto.connect(req);
1865
1867
  await response(res, () => createQuery(payload, req, false).deleteMany({ master: payload.isMaster }));
1866
1868
  });
1867
1869
  router.delete('/relation', Server.text({ type: '*/*' }), async (req, res) => {
1868
1870
  res.setHeader('Cache-Control', ['no-cache', 'no-store']);
1869
1871
  if (!_.isEmpty(req.body))
1870
- return res.sendStatus(400);
1872
+ return void res.sendStatus(400);
1871
1873
  const payload = proto.connect(req);
1872
1874
  await response(res, () => createQuery(payload, req, false).deleteMany({ master: payload.isMaster }));
1873
1875
  });
1874
1876
  router.delete('/classes/:name/:id', Server.text({ type: '*/*' }), async (req, res) => {
1875
1877
  res.setHeader('Cache-Control', ['no-cache', 'no-store']);
1876
1878
  if (!_.isEmpty(req.body))
1877
- return res.sendStatus(400);
1879
+ return void res.sendStatus(400);
1878
1880
  const { name, id } = req.params;
1879
1881
  const classes = proto.classes();
1880
1882
  if (!_.includes(classes, name))
1881
- return res.sendStatus(404);
1883
+ return void res.sendStatus(404);
1882
1884
  const payload = proto.connect(req);
1883
1885
  const query = payload.Query(name).equalTo('_id', id);
1884
1886
  await response(res, () => query.deleteOne({ master: payload.isMaster }));
@@ -1915,7 +1917,7 @@ var functionRoute = (router, proto) => {
1915
1917
  res.setHeader('Cache-Control', ['no-cache', 'no-store']);
1916
1918
  const { name } = req.params;
1917
1919
  if (_.isNil(proto[PVK].functions[name]))
1918
- return res.sendStatus(404);
1920
+ return void res.sendStatus(404);
1919
1921
  await response(res, () => {
1920
1922
  const payload = proto.connect(req, x => ({
1921
1923
  params: null,
@@ -1927,7 +1929,7 @@ var functionRoute = (router, proto) => {
1927
1929
  res.setHeader('Cache-Control', ['no-cache', 'no-store']);
1928
1930
  const { name } = req.params;
1929
1931
  if (_.isNil(proto[PVK].functions[name]))
1930
- return res.sendStatus(404);
1932
+ return void res.sendStatus(404);
1931
1933
  await response(res, () => {
1932
1934
  const payload = proto.connect(req, x => ({
1933
1935
  params: x.rebind(deserialize(req.body, { objAttrs: TObject.defaultReadonlyKeys })),
@@ -1989,9 +1991,9 @@ var filesRoute = (router, proto) => {
1989
1991
  const query = payload.Query('File').equalTo('_id', id);
1990
1992
  const file = await query.first({ master: payload.isMaster });
1991
1993
  if (!file || file.filename !== name)
1992
- return res.sendStatus(404);
1994
+ return void res.sendStatus(404);
1993
1995
  if (_.isNil(file.token) || _.isNil(file.size) || _.isNil(file.type))
1994
- return res.sendStatus(404);
1996
+ return void res.sendStatus(404);
1995
1997
  const ranges = req.range(file.size);
1996
1998
  const match = req.headers['if-none-match'];
1997
1999
  if (match === `"${id}"`) {
@@ -2146,7 +2148,7 @@ var schemaRoute = (router, proto) => {
2146
2148
  res.setHeader('Cache-Control', ['no-cache', 'no-store']);
2147
2149
  const { name } = req.params;
2148
2150
  if (_.isNil(proto.schema[name]))
2149
- return res.sendStatus(404);
2151
+ return void res.sendStatus(404);
2150
2152
  const payload = proto.connect(req);
2151
2153
  await response(res, () => {
2152
2154
  if (!payload.isMaster)
@@ -2247,10 +2249,9 @@ const schema = _.assign((x) => x, {
2247
2249
  relation: (target, foreignField) => ({ type: 'relation', target, foreignField }),
2248
2250
  });
2249
2251
  const ProtoRoute = async (options) => {
2250
- const { adapters, proto: _proto, } = options;
2251
- const proto = _proto instanceof ProtoService ? _proto : new ProtoService(_proto);
2252
+ const proto = options.proto instanceof ProtoService ? options.proto : new ProtoService(options.proto);
2252
2253
  await proto[PVK].prepare();
2253
- const router = Server.Router().use(authHandler(proto), ..._.map(adapters, x => ((req, res, next) => x(proto.connect(req), res, next))), (req, res, next) => {
2254
+ const router = Server.Router().use(authHandler(proto), (req, res, next) => {
2254
2255
  const payload = proto.connect(req);
2255
2256
  if (!payload.isInvalidMasterToken)
2256
2257
  return next();