proto.io 0.0.164 → 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.
- package/dist/adapters/file/database.d.ts +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 +2 -2
- package/dist/adapters/file/filesystem.js.map +1 -1
- package/dist/adapters/file/filesystem.mjs.map +1 -1
- package/dist/adapters/file/google-cloud-storage.d.ts +2 -2
- package/dist/adapters/file/google-cloud-storage.js.map +1 -1
- package/dist/adapters/file/google-cloud-storage.mjs.map +1 -1
- package/dist/adapters/storage/progres.d.ts +16 -13
- package/dist/adapters/storage/progres.js +136 -81
- package/dist/adapters/storage/progres.js.map +1 -1
- package/dist/adapters/storage/progres.mjs +138 -83
- package/dist/adapters/storage/progres.mjs.map +1 -1
- package/dist/client.d.ts +3 -3
- package/dist/client.mjs +3 -3
- package/dist/index.d.ts +7 -12
- package/dist/index.js +24 -23
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +28 -27
- package/dist/index.mjs.map +1 -1
- package/dist/internals/{index-ByfpVHca.mjs → index-BYbMU-Ao.mjs} +2 -2
- package/dist/internals/{index-ByfpVHca.mjs.map → index-BYbMU-Ao.mjs.map} +1 -1
- package/dist/internals/{index-S5Bq-KsU.mjs → index-BejQNqvC.mjs} +2 -2
- package/dist/internals/{index-S5Bq-KsU.mjs.map → index-BejQNqvC.mjs.map} +1 -1
- package/dist/internals/{index-BoP4kl2R.mjs → index-BibByOcU.mjs} +2 -2
- package/dist/internals/{index-BoP4kl2R.mjs.map → index-BibByOcU.mjs.map} +1 -1
- package/dist/internals/index-BqFdBhFc.js.map +1 -1
- package/dist/internals/index-CSNRyhjB.js.map +1 -1
- package/dist/internals/index-CVutVPmd.js.map +1 -1
- package/dist/internals/{index-BeV63sFw.d.ts → index-DaDfXlay.d.ts} +2 -2
- package/dist/internals/index-DaDfXlay.d.ts.map +1 -0
- package/dist/internals/index-Dz3jvqxZ.js.map +1 -1
- package/dist/internals/{index-YdOGTHp1.d.ts → index-RPh4TX0T.d.ts} +3 -2
- package/dist/internals/index-RPh4TX0T.d.ts.map +1 -0
- package/dist/internals/{index-BsuUdR0W.d.ts → index-bCACA0cS.d.ts} +2 -2
- package/dist/internals/index-bCACA0cS.d.ts.map +1 -0
- package/dist/internals/index-be1VYBY2.mjs.map +1 -1
- package/dist/internals/{random-w8WDYQEe.mjs → random-B1P0EZO5.mjs} +5 -10
- package/dist/internals/random-B1P0EZO5.mjs.map +1 -0
- package/dist/internals/{random-uT4D0y_q.js → random-q0PeamQE.js} +3 -8
- package/dist/internals/random-q0PeamQE.js.map +1 -0
- package/package.json +20 -20
- package/dist/internals/index-BeV63sFw.d.ts.map +0 -1
- package/dist/internals/index-BsuUdR0W.d.ts.map +0 -1
- package/dist/internals/index-YdOGTHp1.d.ts.map +0 -1
- package/dist/internals/random-uT4D0y_q.js.map +0 -1
- 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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
784
|
-
|
|
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
|
|
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),
|
|
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();
|