proto.io 0.0.168 → 0.0.169

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 +41 -81
  8. package/dist/adapters/storage/progres.js.map +1 -1
  9. package/dist/adapters/storage/progres.mjs +41 -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,34 @@ 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 populate = _selectRelationPopulate(compiler, { className: parent.className, name: parent.name }, relation.populate, `$${field}`, false);
2278
+ return sql `ARRAY(SELECT ${{ identifier: '_id' }} FROM (${populate})) ${{ literal: op }} ARRAY[${_.map(expr.value, (x) => sql `${{ value: x.objectId }}`)}]`;
2323
2279
  }
2324
2280
  if (!dataType) {
2325
- return sql `jsonb_typeof(${element}) ${nullSafeEqual()} 'array' AND ${element} && ${_encodeJsonValue(index._encodeValue(expr.value))}`;
2281
+ return sql `jsonb_typeof(${element}) ${nullSafeEqual()} 'array' AND ${element} ${{ literal: op }} ${_encodeJsonValue(index._encodeValue(expr.value))}`;
2326
2282
  }
2327
2283
  }
2284
+ break;
2328
2285
  case '$not':
2329
2286
  {
2330
2287
  if (!(expr.value instanceof index$1.FieldSelectorExpression))
@@ -2354,6 +2311,7 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2354
2311
  }
2355
2312
  }
2356
2313
  }
2314
+ break;
2357
2315
  case '$starts':
2358
2316
  {
2359
2317
  if (!_.isString(expr.value))
@@ -2365,6 +2323,7 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2365
2323
  return sql `jsonb_typeof(${element}) ${nullSafeEqual()} 'string' AND (${element} #>> '{}') LIKE ${{ value: `${expr.value.replace(/([\\_%])/g, '\\$1')}%` }}`;
2366
2324
  }
2367
2325
  }
2326
+ break;
2368
2327
  case '$ends':
2369
2328
  {
2370
2329
  if (!_.isString(expr.value))
@@ -2376,6 +2335,7 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2376
2335
  return sql `jsonb_typeof(${element}) ${nullSafeEqual()} 'string' AND (${element} #>> '{}') LIKE ${{ value: `%${expr.value.replace(/([\\_%])/g, '\\$1')}` }}`;
2377
2336
  }
2378
2337
  }
2338
+ break;
2379
2339
  case '$size':
2380
2340
  {
2381
2341
  if (!_.isNumber(expr.value) || !_.isSafeInteger(expr.value))
@@ -2396,6 +2356,7 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2396
2356
  )`;
2397
2357
  }
2398
2358
  }
2359
+ break;
2399
2360
  case '$empty':
2400
2361
  {
2401
2362
  if (!_.isBoolean(expr.value))
@@ -2416,11 +2377,12 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2416
2377
  )`;
2417
2378
  }
2418
2379
  }
2380
+ break;
2419
2381
  case '$every':
2420
2382
  {
2421
2383
  if (!(expr.value instanceof index$1.QuerySelector))
2422
2384
  break;
2423
- if (relation?.populate && parent.className) {
2385
+ if (relation && parent.className) {
2424
2386
  const tempName = `_populate_expr_$${compiler.nextIdx()}`;
2425
2387
  const filter = compiler._encodeFilter({
2426
2388
  name: tempName,
@@ -2429,11 +2391,9 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2429
2391
  }, expr.value);
2430
2392
  if (!filter)
2431
2393
  break;
2394
+ const populate = _selectRelationPopulate(compiler, { className: parent.className, name: parent.name }, relation.populate, `$${field}`, false);
2432
2395
  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 }}
2396
+ SELECT * FROM (${populate}) AS ${{ identifier: tempName }}
2437
2397
  WHERE NOT (${filter})
2438
2398
  )`;
2439
2399
  }
@@ -2454,11 +2414,12 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2454
2414
  )`;
2455
2415
  }
2456
2416
  }
2417
+ break;
2457
2418
  case '$some':
2458
2419
  {
2459
2420
  if (!(expr.value instanceof index$1.QuerySelector))
2460
2421
  break;
2461
- if (relation?.populate && parent.className) {
2422
+ if (relation && parent.className) {
2462
2423
  const tempName = `_populate_expr_$${compiler.nextIdx()}`;
2463
2424
  const filter = compiler._encodeFilter({
2464
2425
  name: tempName,
@@ -2467,11 +2428,9 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2467
2428
  }, expr.value);
2468
2429
  if (!filter)
2469
2430
  break;
2431
+ const populate = _selectRelationPopulate(compiler, { className: parent.className, name: parent.name }, relation.populate, `$${field}`, false);
2470
2432
  return sql `EXISTS(
2471
- SELECT * FROM (${_selectRelationPopulate(compiler, {
2472
- className: parent.className,
2473
- name: parent.name,
2474
- }, relation.populate, `$${field}`, false)}) AS ${{ identifier: tempName }}
2433
+ SELECT * FROM (${populate}) AS ${{ identifier: tempName }}
2475
2434
  WHERE ${filter}
2476
2435
  )`;
2477
2436
  }
@@ -2492,6 +2451,7 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
2492
2451
  )`;
2493
2452
  }
2494
2453
  }
2454
+ break;
2495
2455
  }
2496
2456
  throw Error('Invalid expression');
2497
2457
  };