proto.io 0.0.168 → 0.0.170

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 (42) hide show
  1. package/dist/adapters/file/database.d.ts +2 -2
  2. package/dist/adapters/file/database.js +1 -1
  3. package/dist/adapters/file/database.mjs +1 -1
  4. package/dist/adapters/file/filesystem.d.ts +2 -2
  5. package/dist/adapters/file/google-cloud-storage.d.ts +2 -2
  6. package/dist/adapters/storage/progres.d.ts +1 -1
  7. package/dist/adapters/storage/progres.js +45 -81
  8. package/dist/adapters/storage/progres.js.map +1 -1
  9. package/dist/adapters/storage/progres.mjs +45 -81
  10. package/dist/adapters/storage/progres.mjs.map +1 -1
  11. package/dist/client.d.ts +3 -3
  12. package/dist/client.js +1 -1
  13. package/dist/client.mjs +2 -2
  14. package/dist/index.d.ts +3 -3
  15. package/dist/index.js +3 -3
  16. package/dist/index.mjs +4 -4
  17. package/dist/internals/{index-BejQNqvC.mjs → index-B1wqSio6.mjs} +1 -2
  18. package/dist/internals/index-B1wqSio6.mjs.map +1 -0
  19. package/dist/internals/{index-rkqvel7o.d.ts → index-B5u7VXjz.d.ts} +2 -2
  20. package/dist/internals/index-B5u7VXjz.d.ts.map +1 -0
  21. package/dist/internals/{index-y8EePsDY.d.ts → index-BB2vDnq0.d.ts} +2 -2
  22. package/dist/internals/index-BB2vDnq0.d.ts.map +1 -0
  23. package/dist/internals/{index-CyzpkgJB.js → index-BJP46VGq.js} +2 -2
  24. package/dist/internals/index-BJP46VGq.js.map +1 -0
  25. package/dist/internals/{index-CSNRyhjB.js → index-CzfsyXvb.js} +1 -2
  26. package/dist/internals/index-CzfsyXvb.js.map +1 -0
  27. package/dist/internals/{index-Dyfia5Om.mjs → index-D0hHgn2P.mjs} +2 -2
  28. package/dist/internals/index-D0hHgn2P.mjs.map +1 -0
  29. package/dist/internals/{index-BQggoDNX.d.ts → index-D_GYwO8X.d.ts} +2 -2
  30. package/dist/internals/index-D_GYwO8X.d.ts.map +1 -0
  31. package/dist/internals/{random-DrURPPxr.mjs → random-BCpwYpyw.mjs} +2 -2
  32. package/dist/internals/{random-DrURPPxr.mjs.map → random-BCpwYpyw.mjs.map} +1 -1
  33. package/dist/internals/{random-q0PeamQE.js → random-Dytum6Nh.js} +2 -2
  34. package/dist/internals/{random-q0PeamQE.js.map → random-Dytum6Nh.js.map} +1 -1
  35. package/package.json +1 -1
  36. package/dist/internals/index-BQggoDNX.d.ts.map +0 -1
  37. package/dist/internals/index-BejQNqvC.mjs.map +0 -1
  38. package/dist/internals/index-CSNRyhjB.js.map +0 -1
  39. package/dist/internals/index-CyzpkgJB.js.map +0 -1
  40. package/dist/internals/index-Dyfia5Om.mjs.map +0 -1
  41. package/dist/internals/index-rkqvel7o.d.ts.map +0 -1
  42. package/dist/internals/index-y8EePsDY.d.ts.map +0 -1
@@ -1,5 +1,5 @@
1
- import { T as TSchema, P as ProtoService } from '../../internals/index-y8EePsDY.js';
2
- import { F as FileStorageBase, a as FileStorageOptions } from '../../internals/index-rkqvel7o.js';
1
+ import { T as TSchema, P as ProtoService } from '../../internals/index-BB2vDnq0.js';
2
+ import { F as FileStorageBase, a as FileStorageOptions } from '../../internals/index-B5u7VXjz.js';
3
3
  import '@o2ter/utils-js';
4
4
  import 'jsonwebtoken';
5
5
  import '@o2ter/server-js';
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _ = require('lodash');
6
6
  var index = require('../../internals/index-BqFdBhFc.js');
7
- var index$1 = require('../../internals/index-CSNRyhjB.js');
7
+ var index$1 = require('../../internals/index-CzfsyXvb.js');
8
8
  var utilsJs = require('@o2ter/utils-js');
9
9
  require('util');
10
10
  require('zlib');
@@ -1,6 +1,6 @@
1
1
  import _ from 'lodash';
2
2
  import { F as FileStorageBase } from '../../internals/index-be1VYBY2.mjs';
3
- import { Q as QuerySelector } from '../../internals/index-BejQNqvC.mjs';
3
+ import { Q as QuerySelector } from '../../internals/index-B1wqSio6.mjs';
4
4
  import { bufferToBase64, base64ToBuffer } from '@o2ter/utils-js';
5
5
  import 'util';
6
6
  import 'zlib';
@@ -1,5 +1,5 @@
1
- import { P as ProtoService } from '../../internals/index-y8EePsDY.js';
2
- import { F as FileStorageBase, a as FileStorageOptions } from '../../internals/index-rkqvel7o.js';
1
+ import { P as ProtoService } from '../../internals/index-BB2vDnq0.js';
2
+ import { F as FileStorageBase, a as FileStorageOptions } from '../../internals/index-B5u7VXjz.js';
3
3
  import '@o2ter/utils-js';
4
4
  import 'jsonwebtoken';
5
5
  import '@o2ter/server-js';
@@ -1,7 +1,7 @@
1
1
  import * as _google_cloud_storage from '@google-cloud/storage';
2
2
  import { Storage } from '@google-cloud/storage';
3
- import { P as ProtoService } from '../../internals/index-y8EePsDY.js';
4
- import { F as FileStorageBase, a as FileStorageOptions } from '../../internals/index-rkqvel7o.js';
3
+ import { P as ProtoService } from '../../internals/index-BB2vDnq0.js';
4
+ import { F as FileStorageBase, a as FileStorageOptions } from '../../internals/index-B5u7VXjz.js';
5
5
  import '@o2ter/utils-js';
6
6
  import 'jsonwebtoken';
7
7
  import '@o2ter/server-js';
@@ -1,5 +1,5 @@
1
1
  import { Pool, PoolClient, PoolConfig } from 'pg';
2
- import { _ as _TValue, o as EventData, T as TSchema, Q as QuerySelector, p as DecodedQuery, F as FindOptions, R as RelationOptions, q as DecodedSortOption, I as InsertOptions, r as TValue, t as FindOneOptions, u as TUpdateOp, v as FieldSelectorExpression, w as QueryExpression, x as TStorage, y as TransactionOptions, h as TObject, z as TQueryRandomOptions, A as TPubSub } from '../../internals/index-y8EePsDY.js';
2
+ import { _ as _TValue, o as EventData, T as TSchema, Q as QuerySelector, p as DecodedQuery, F as FindOptions, R as RelationOptions, q as DecodedSortOption, I as InsertOptions, r as TValue, t as FindOneOptions, u as TUpdateOp, v as FieldSelectorExpression, w as QueryExpression, x as TStorage, y as TransactionOptions, h as TObject, z as TQueryRandomOptions, A as TPubSub } from '../../internals/index-BB2vDnq0.js';
3
3
  import * as _o2ter_utils_js from '@o2ter/utils-js';
4
4
  import { asyncStream } from '@o2ter/utils-js';
5
5
  import 'jsonwebtoken';
@@ -9,9 +9,9 @@ var QueryStream = require('pg-query-stream');
9
9
  var utilsJs = require('@o2ter/utils-js');
10
10
  var Decimal = require('decimal.js');
11
11
  var utils = require('pg/lib/utils');
12
- var index$1 = require('../../internals/index-CSNRyhjB.js');
12
+ var index$1 = require('../../internals/index-CzfsyXvb.js');
13
13
  require('@o2ter/crypto-js');
14
- var random$1 = require('../../internals/random-q0PeamQE.js');
14
+ var random$1 = require('../../internals/random-Dytum6Nh.js');
15
15
  var _private = require('../../internals/private-CSB1Ep4g.js');
16
16
 
17
17
  //
@@ -889,9 +889,6 @@ const fetchElement = (compiler, parent, field) => {
889
889
  relation: {
890
890
  target: dataType.target,
891
891
  populate,
892
- mapElem: (callback) => sql `SELECT
893
- ${callback(sql `${json ? sql `VALUE` : sql `UNNEST`}`)}
894
- FROM ${json ? sql `jsonb_array_elements(${element})` : sql `UNNEST(${element})`}`,
895
892
  },
896
893
  };
897
894
  }
@@ -2132,12 +2129,12 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2132
2129
  case '$lt':
2133
2130
  case '$lte':
2134
2131
  {
2135
- const operatorMap = {
2132
+ const op = {
2136
2133
  '$gt': '>',
2137
2134
  '$gte': '>=',
2138
2135
  '$lt': '<',
2139
2136
  '$lte': '<=',
2140
- };
2137
+ }[expr.type];
2141
2138
  if (_.isRegExp(expr.value) || expr.value instanceof index$1.QuerySelector || expr.value instanceof index$1.FieldSelectorExpression)
2142
2139
  break;
2143
2140
  if (dataType && index.isPrimitive(dataType)) {
@@ -2145,46 +2142,47 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2145
2142
  case 'boolean':
2146
2143
  if (!_.isBoolean(expr.value))
2147
2144
  break;
2148
- return sql `${element} ${{ literal: operatorMap[expr.type] }} ${encodeValue(expr.value)}`;
2145
+ return sql `${element} ${{ literal: op }} ${encodeValue(expr.value)}`;
2149
2146
  case 'number':
2150
2147
  case 'decimal':
2151
2148
  if (!(expr.value instanceof Decimal) && !_.isNumber(expr.value))
2152
2149
  break;
2153
- return sql `${element} ${{ literal: operatorMap[expr.type] }} ${encodeValue(expr.value)}`;
2150
+ return sql `${element} ${{ literal: op }} ${encodeValue(expr.value)}`;
2154
2151
  case 'string':
2155
2152
  if (!_.isString(expr.value))
2156
2153
  break;
2157
- return sql `${element} ${{ literal: operatorMap[expr.type] }} ${encodeValue(expr.value)}`;
2154
+ return sql `${element} ${{ literal: op }} ${encodeValue(expr.value)}`;
2158
2155
  case 'date':
2159
2156
  if (!_.isDate(expr.value))
2160
2157
  break;
2161
- return sql `${element} ${{ literal: operatorMap[expr.type] }} ${encodeValue(expr.value)}`;
2158
+ return sql `${element} ${{ literal: op }} ${encodeValue(expr.value)}`;
2162
2159
  }
2163
2160
  }
2164
2161
  else if (!_.isString(dataType) && dataType?.type === 'pointer' && expr.value instanceof index.TObject && expr.value.objectId) {
2165
- return sql `${element} ${{ literal: operatorMap[expr.type] }} ${{ value: expr.value.objectId }}`;
2162
+ return sql `${element} ${{ literal: op }} ${{ value: expr.value.objectId }}`;
2166
2163
  }
2167
2164
  else if (!dataType) {
2168
2165
  if (expr.value instanceof Decimal || _.isNumber(expr.value)) {
2169
2166
  return sql `(
2170
2167
  jsonb_typeof(${element}) ${nullSafeEqual()} 'number'
2171
- AND ${element}::NUMERIC ${{ literal: operatorMap[expr.type] }} ${{ value: expr.value instanceof Decimal ? expr.value.toNumber() : expr.value }}
2168
+ AND ${element}::NUMERIC ${{ literal: op }} ${{ value: expr.value instanceof Decimal ? expr.value.toNumber() : expr.value }}
2172
2169
  ) OR (
2173
2170
  jsonb_typeof(${element} -> '$decimal') ${nullSafeEqual()} 'string'
2174
- AND (${element} ->> '$decimal')::DECIMAL ${{ literal: operatorMap[expr.type] }} ${{ value: expr.value instanceof Decimal ? expr.value.toString() : expr.value }}::DECIMAL
2171
+ AND (${element} ->> '$decimal')::DECIMAL ${{ literal: op }} ${{ value: expr.value instanceof Decimal ? expr.value.toString() : expr.value }}::DECIMAL
2175
2172
  )`;
2176
2173
  }
2177
2174
  else if (_.isDate(expr.value)) {
2178
2175
  return sql `(
2179
2176
  jsonb_typeof(${element} -> '$date') ${nullSafeEqual()} 'string'
2180
- AND ${element} ${{ literal: operatorMap[expr.type] }} ${encodeValue(expr.value)}
2177
+ AND ${element} ${{ literal: op }} ${encodeValue(expr.value)}
2181
2178
  )`;
2182
2179
  }
2183
2180
  else {
2184
- return sql `${element} ${{ literal: operatorMap[expr.type] }} ${encodeValue(expr.value)}`;
2181
+ return sql `${element} ${{ literal: op }} ${encodeValue(expr.value)}`;
2185
2182
  }
2186
2183
  }
2187
2184
  }
2185
+ break;
2188
2186
  case '$in':
2189
2187
  {
2190
2188
  if (!_.isArray(expr.value))
@@ -2220,6 +2218,7 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2220
2218
  return sql `${element} IN (${_.map(values, x => encodeValue(x))})`;
2221
2219
  }
2222
2220
  }
2221
+ break;
2223
2222
  case '$nin':
2224
2223
  {
2225
2224
  if (!_.isArray(expr.value))
@@ -2255,76 +2254,38 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2255
2254
  return sql `${element} NOT IN (${_.map(values, x => encodeValue(x))})`;
2256
2255
  }
2257
2256
  }
2257
+ break;
2258
2258
  case '$subset':
2259
- {
2260
- if (!_.isArray(expr.value))
2261
- break;
2262
- if (dataType === 'array' || (!_.isString(dataType) && dataType?.type === 'array')) {
2263
- return sql `${element} <@ ${{ value: index._encodeValue(expr.value) }}`;
2264
- }
2265
- if (relation) {
2266
- if (!_.every(expr.value, x => x instanceof index.TObject && x.objectId))
2267
- break;
2268
- return sql `ARRAY(${relation.mapElem((v) => sql `${v} ->> '_id'`)}) <@ ARRAY[${_.map(expr.value, (x) => sql `${{ value: x.objectId }}`)}]`;
2269
- }
2270
- if (!dataType) {
2271
- return sql `jsonb_typeof(${element}) ${nullSafeEqual()} 'array' AND ${element} <@ ${_encodeJsonValue(index._encodeValue(expr.value))}`;
2272
- }
2273
- }
2274
2259
  case '$superset':
2275
- {
2276
- if (!_.isArray(expr.value))
2277
- break;
2278
- if (_.isEmpty(expr.value))
2279
- return sql `true`;
2280
- if (dataType === 'array' || (!_.isString(dataType) && dataType?.type === 'array')) {
2281
- return sql `${element} @> ${{ value: index._encodeValue(expr.value) }}`;
2282
- }
2283
- if (relation) {
2284
- if (!_.every(expr.value, x => x instanceof index.TObject && x.objectId))
2285
- break;
2286
- return sql `ARRAY(${relation.mapElem((v) => sql `${v} ->> '_id'`)}) @> ARRAY[${_.map(expr.value, (x) => sql `${{ value: x.objectId }}`)}]`;
2287
- }
2288
- if (!dataType) {
2289
- return sql `jsonb_typeof(${element}) ${nullSafeEqual()} 'array' AND ${element} @> ${_encodeJsonValue(index._encodeValue(expr.value))}`;
2290
- }
2291
- }
2292
- case '$disjoint':
2293
- {
2294
- if (!_.isArray(expr.value))
2295
- break;
2296
- if (_.isEmpty(expr.value))
2297
- return sql `true`;
2298
- if (dataType === 'array' || (!_.isString(dataType) && dataType?.type === 'array')) {
2299
- return sql `NOT ${element} && ${{ value: index._encodeValue(expr.value) }}`;
2300
- }
2301
- if (relation) {
2302
- if (!_.every(expr.value, x => x instanceof index.TObject && x.objectId))
2303
- break;
2304
- return sql `NOT ARRAY(${relation.mapElem((v) => sql `${v} ->> '_id'`)}) && ARRAY[${_.map(expr.value, (x) => sql `${{ value: x.objectId }}`)}]`;
2305
- }
2306
- if (!dataType) {
2307
- return sql `jsonb_typeof(${element}) ${nullSafeEqual()} 'array' AND NOT ${element} && ${_encodeJsonValue(index._encodeValue(expr.value))}`;
2308
- }
2309
- }
2310
2260
  case '$intersect':
2311
2261
  {
2262
+ const op = {
2263
+ '$subset': '<@',
2264
+ '$superset': '@>',
2265
+ '$intersect': '&&',
2266
+ }[expr.type];
2312
2267
  if (!_.isArray(expr.value))
2313
2268
  break;
2314
2269
  if (_.isEmpty(expr.value))
2315
- return sql `false`;
2270
+ return sql `true`;
2316
2271
  if (dataType === 'array' || (!_.isString(dataType) && dataType?.type === 'array')) {
2317
- return sql `${element} && ${{ value: index._encodeValue(expr.value) }}`;
2272
+ return sql `${element} ${{ literal: op }} ${{ value: index._encodeValue(expr.value) }}`;
2318
2273
  }
2319
- if (relation) {
2274
+ if (relation && parent.className) {
2320
2275
  if (!_.every(expr.value, x => x instanceof index.TObject && x.objectId))
2321
2276
  break;
2322
- return sql `ARRAY(${relation.mapElem((v) => sql `${v} ->> '_id'`)}) && ARRAY[${_.map(expr.value, (x) => sql `${{ value: x.objectId }}`)}]`;
2277
+ const tempName = `_populate_expr_$${compiler.nextIdx()}`;
2278
+ const populate = _selectRelationPopulate(compiler, { className: parent.className, name: parent.name }, relation.populate, `$${field}`, false);
2279
+ return sql `ARRAY(
2280
+ SELECT ${{ identifier: '_id' }}
2281
+ FROM (${populate}) AS ${{ identifier: tempName }}
2282
+ ) ${{ literal: op }} ARRAY[${_.map(expr.value, (x) => sql `${{ value: x.objectId }}`)}]`;
2323
2283
  }
2324
2284
  if (!dataType) {
2325
- return sql `jsonb_typeof(${element}) ${nullSafeEqual()} 'array' AND ${element} && ${_encodeJsonValue(index._encodeValue(expr.value))}`;
2285
+ return sql `jsonb_typeof(${element}) ${nullSafeEqual()} 'array' AND ${element} ${{ literal: op }} ${_encodeJsonValue(index._encodeValue(expr.value))}`;
2326
2286
  }
2327
2287
  }
2288
+ break;
2328
2289
  case '$not':
2329
2290
  {
2330
2291
  if (!(expr.value instanceof index$1.FieldSelectorExpression))
@@ -2354,6 +2315,7 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2354
2315
  }
2355
2316
  }
2356
2317
  }
2318
+ break;
2357
2319
  case '$starts':
2358
2320
  {
2359
2321
  if (!_.isString(expr.value))
@@ -2365,6 +2327,7 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2365
2327
  return sql `jsonb_typeof(${element}) ${nullSafeEqual()} 'string' AND (${element} #>> '{}') LIKE ${{ value: `${expr.value.replace(/([\\_%])/g, '\\$1')}%` }}`;
2366
2328
  }
2367
2329
  }
2330
+ break;
2368
2331
  case '$ends':
2369
2332
  {
2370
2333
  if (!_.isString(expr.value))
@@ -2376,6 +2339,7 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2376
2339
  return sql `jsonb_typeof(${element}) ${nullSafeEqual()} 'string' AND (${element} #>> '{}') LIKE ${{ value: `%${expr.value.replace(/([\\_%])/g, '\\$1')}` }}`;
2377
2340
  }
2378
2341
  }
2342
+ break;
2379
2343
  case '$size':
2380
2344
  {
2381
2345
  if (!_.isNumber(expr.value) || !_.isSafeInteger(expr.value))
@@ -2396,6 +2360,7 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2396
2360
  )`;
2397
2361
  }
2398
2362
  }
2363
+ break;
2399
2364
  case '$empty':
2400
2365
  {
2401
2366
  if (!_.isBoolean(expr.value))
@@ -2416,11 +2381,12 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2416
2381
  )`;
2417
2382
  }
2418
2383
  }
2384
+ break;
2419
2385
  case '$every':
2420
2386
  {
2421
2387
  if (!(expr.value instanceof index$1.QuerySelector))
2422
2388
  break;
2423
- if (relation?.populate && parent.className) {
2389
+ if (relation && parent.className) {
2424
2390
  const tempName = `_populate_expr_$${compiler.nextIdx()}`;
2425
2391
  const filter = compiler._encodeFilter({
2426
2392
  name: tempName,
@@ -2429,11 +2395,9 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2429
2395
  }, expr.value);
2430
2396
  if (!filter)
2431
2397
  break;
2398
+ const populate = _selectRelationPopulate(compiler, { className: parent.className, name: parent.name }, relation.populate, `$${field}`, false);
2432
2399
  return sql `NOT EXISTS(
2433
- SELECT * FROM (${_selectRelationPopulate(compiler, {
2434
- className: parent.className,
2435
- name: parent.name,
2436
- }, relation.populate, `$${field}`, false)}) AS ${{ identifier: tempName }}
2400
+ SELECT * FROM (${populate}) AS ${{ identifier: tempName }}
2437
2401
  WHERE NOT (${filter})
2438
2402
  )`;
2439
2403
  }
@@ -2454,11 +2418,12 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2454
2418
  )`;
2455
2419
  }
2456
2420
  }
2421
+ break;
2457
2422
  case '$some':
2458
2423
  {
2459
2424
  if (!(expr.value instanceof index$1.QuerySelector))
2460
2425
  break;
2461
- if (relation?.populate && parent.className) {
2426
+ if (relation && parent.className) {
2462
2427
  const tempName = `_populate_expr_$${compiler.nextIdx()}`;
2463
2428
  const filter = compiler._encodeFilter({
2464
2429
  name: tempName,
@@ -2467,11 +2432,9 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2467
2432
  }, expr.value);
2468
2433
  if (!filter)
2469
2434
  break;
2435
+ const populate = _selectRelationPopulate(compiler, { className: parent.className, name: parent.name }, relation.populate, `$${field}`, false);
2470
2436
  return sql `EXISTS(
2471
- SELECT * FROM (${_selectRelationPopulate(compiler, {
2472
- className: parent.className,
2473
- name: parent.name,
2474
- }, relation.populate, `$${field}`, false)}) AS ${{ identifier: tempName }}
2437
+ SELECT * FROM (${populate}) AS ${{ identifier: tempName }}
2475
2438
  WHERE ${filter}
2476
2439
  )`;
2477
2440
  }
@@ -2492,6 +2455,7 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2492
2455
  )`;
2493
2456
  }
2494
2457
  }
2458
+ break;
2495
2459
  }
2496
2460
  throw Error('Invalid expression');
2497
2461
  };