proto.io 0.0.217 → 0.0.219
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/aliyun-oss.d.ts +3 -3
- package/dist/adapters/file/database.d.ts +2 -2
- package/dist/adapters/file/database.js +2 -2
- package/dist/adapters/file/database.mjs +2 -2
- package/dist/adapters/file/filesystem.d.ts +3 -3
- package/dist/adapters/file/google-cloud-storage.d.ts +3 -3
- package/dist/adapters/storage/progres.d.ts +1 -1
- package/dist/adapters/storage/progres.js +38 -38
- package/dist/adapters/storage/progres.js.map +1 -1
- package/dist/adapters/storage/progres.mjs +38 -38
- package/dist/adapters/storage/progres.mjs.map +1 -1
- package/dist/client.d.ts +3 -3
- package/dist/client.js +2 -2
- package/dist/client.mjs +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +27 -27
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +28 -28
- package/dist/index.mjs.map +1 -1
- package/dist/internals/{base-CWnOBKD5.d.ts → base-C1uAg1dD.d.ts} +2 -2
- package/dist/internals/base-C1uAg1dD.d.ts.map +1 -0
- package/dist/internals/{chunk-CNNSQpRF.d.ts → chunk-CpgqvFNO.d.ts} +3 -3
- package/dist/internals/chunk-CpgqvFNO.d.ts.map +1 -0
- package/dist/internals/{index-Bs8n7Q8f.d.ts → index-82GLvDiN.d.ts} +18 -18
- package/dist/internals/index-82GLvDiN.d.ts.map +1 -0
- package/dist/internals/{index-B8TESzd9.js → index-CLKTEIj0.js} +2 -2
- package/dist/internals/index-CLKTEIj0.js.map +1 -0
- package/dist/internals/{index-BRIlS3mY.d.ts → index-CWhqANZM.d.ts} +3 -3
- package/dist/internals/index-CWhqANZM.d.ts.map +1 -0
- package/dist/internals/{index-DfqABzjr.mjs → index-CZ5fKgiJ.mjs} +26 -26
- package/dist/internals/index-CZ5fKgiJ.mjs.map +1 -0
- package/dist/internals/{index-BzDsTt4R.mjs → index-gWcE22mf.mjs} +2 -2
- package/dist/internals/index-gWcE22mf.mjs.map +1 -0
- package/dist/internals/{index-DylUjD_1.js → index-xHeu-AjT.js} +26 -26
- package/dist/internals/index-xHeu-AjT.js.map +1 -0
- package/dist/internals/{validator-mcBCJP4P.js → validator-B5yHpyvb.js} +10 -10
- package/dist/internals/validator-B5yHpyvb.js.map +1 -0
- package/dist/internals/{validator-CEcBF4Cn.mjs → validator-DX2nXeQo.mjs} +10 -10
- package/dist/internals/validator-DX2nXeQo.mjs.map +1 -0
- package/package.json +2 -2
- package/dist/internals/base-CWnOBKD5.d.ts.map +0 -1
- package/dist/internals/chunk-CNNSQpRF.d.ts.map +0 -1
- package/dist/internals/index-B8TESzd9.js.map +0 -1
- package/dist/internals/index-BRIlS3mY.d.ts.map +0 -1
- package/dist/internals/index-Bs8n7Q8f.d.ts.map +0 -1
- package/dist/internals/index-BzDsTt4R.mjs.map +0 -1
- package/dist/internals/index-DfqABzjr.mjs.map +0 -1
- package/dist/internals/index-DylUjD_1.js.map +0 -1
- package/dist/internals/validator-CEcBF4Cn.mjs.map +0 -1
- package/dist/internals/validator-mcBCJP4P.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { P as ProtoService } from '../../internals/index-
|
|
1
|
+
import { P as ProtoService } from '../../internals/index-82GLvDiN.js';
|
|
2
2
|
import OSS from 'ali-oss';
|
|
3
|
-
import { a as FileStorageOptions } from '../../internals/base-
|
|
4
|
-
import { F as FileChunkStorageBase } from '../../internals/chunk-
|
|
3
|
+
import { a as FileStorageOptions } from '../../internals/base-C1uAg1dD.js';
|
|
4
|
+
import { F as FileChunkStorageBase } from '../../internals/chunk-CpgqvFNO.js';
|
|
5
5
|
import '@o2ter/utils-js';
|
|
6
6
|
import 'jsonwebtoken';
|
|
7
7
|
import '@o2ter/server-js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { T as TSchema, P as ProtoService } from '../../internals/index-
|
|
2
|
-
import { F as FileStorageBase, a as FileStorageOptions } from '../../internals/base-
|
|
1
|
+
import { T as TSchema, P as ProtoService } from '../../internals/index-82GLvDiN.js';
|
|
2
|
+
import { F as FileStorageBase, a as FileStorageOptions } from '../../internals/base-C1uAg1dD.js';
|
|
3
3
|
import '@o2ter/utils-js';
|
|
4
4
|
import 'jsonwebtoken';
|
|
5
5
|
import '@o2ter/server-js';
|
|
@@ -5,11 +5,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var _ = require('lodash');
|
|
6
6
|
var base = require('../../internals/base-NsJYo2MG.js');
|
|
7
7
|
var utilsJs = require('@o2ter/utils-js');
|
|
8
|
-
var validator = require('../../internals/validator-
|
|
8
|
+
var validator = require('../../internals/validator-B5yHpyvb.js');
|
|
9
9
|
require('util');
|
|
10
10
|
require('zlib');
|
|
11
11
|
require('../../internals/private-Ciddhure.js');
|
|
12
|
-
require('../../internals/index-
|
|
12
|
+
require('../../internals/index-CLKTEIj0.js');
|
|
13
13
|
require('decimal.js');
|
|
14
14
|
|
|
15
15
|
//
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import _ from 'lodash';
|
|
2
2
|
import { F as FileStorageBase } from '../../internals/base-DYc1_peK.mjs';
|
|
3
3
|
import { bufferToBase64, base64ToBuffer } from '@o2ter/utils-js';
|
|
4
|
-
import { c as QuerySelector } from '../../internals/validator-
|
|
4
|
+
import { c as QuerySelector } from '../../internals/validator-DX2nXeQo.mjs';
|
|
5
5
|
import 'util';
|
|
6
6
|
import 'zlib';
|
|
7
7
|
import '../../internals/private-CNw40LZ7.mjs';
|
|
8
|
-
import '../../internals/index-
|
|
8
|
+
import '../../internals/index-gWcE22mf.mjs';
|
|
9
9
|
import 'decimal.js';
|
|
10
10
|
|
|
11
11
|
//
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { P as ProtoService } from '../../internals/index-
|
|
2
|
-
import { a as FileStorageOptions } from '../../internals/base-
|
|
3
|
-
import { F as FileChunkStorageBase } from '../../internals/chunk-
|
|
1
|
+
import { P as ProtoService } from '../../internals/index-82GLvDiN.js';
|
|
2
|
+
import { a as FileStorageOptions } from '../../internals/base-C1uAg1dD.js';
|
|
3
|
+
import { F as FileChunkStorageBase } from '../../internals/chunk-CpgqvFNO.js';
|
|
4
4
|
import '@o2ter/utils-js';
|
|
5
5
|
import 'jsonwebtoken';
|
|
6
6
|
import '@o2ter/server-js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as _google_cloud_storage from '@google-cloud/storage';
|
|
2
2
|
import { File, Storage } from '@google-cloud/storage';
|
|
3
|
-
import { P as ProtoService } from '../../internals/index-
|
|
4
|
-
import { a as FileStorageOptions } from '../../internals/base-
|
|
5
|
-
import { F as FileChunkStorageBase } from '../../internals/chunk-
|
|
3
|
+
import { P as ProtoService } from '../../internals/index-82GLvDiN.js';
|
|
4
|
+
import { a as FileStorageOptions } from '../../internals/base-C1uAg1dD.js';
|
|
5
|
+
import { F as FileChunkStorageBase } from '../../internals/chunk-CpgqvFNO.js';
|
|
6
6
|
import '@o2ter/utils-js';
|
|
7
7
|
import 'jsonwebtoken';
|
|
8
8
|
import '@o2ter/server-js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Pool, PoolClient, PoolConfig } from 'pg';
|
|
2
|
-
import { a as TValueWithoutObject, T as TSchema, q as TValueWithUndefined, r as TValue, t as TUpdateOp, F as FieldSelectorExpression, Q as QueryExpression, R as RelationOptions, u as QueryAccumulator, v as QuerySelector, w as DecodedSortOption, x as DecodedQuery, y as FindOptions, I as InsertOptions, z as TStorage, A as TransactionOptions, k as TObject, B as QueryRandomOptions, C as TPubSub } from '../../internals/index-
|
|
2
|
+
import { a as TValueWithoutObject, T as TSchema, q as TValueWithUndefined, r as TValue, t as TUpdateOp, F as FieldSelectorExpression, Q as QueryExpression, R as RelationOptions, u as QueryAccumulator, v as QuerySelector, w as DecodedSortOption, x as DecodedQuery, y as FindOptions, I as InsertOptions, z as TStorage, A as TransactionOptions, k as TObject, B as QueryRandomOptions, C as TPubSub } from '../../internals/index-82GLvDiN.js';
|
|
3
3
|
import * as _o2ter_utils_js from '@o2ter/utils-js';
|
|
4
4
|
import { asyncStream } from '@o2ter/utils-js';
|
|
5
5
|
import 'jsonwebtoken';
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var _ = require('lodash');
|
|
6
|
-
var index = require('../../internals/index-
|
|
6
|
+
var index = require('../../internals/index-CLKTEIj0.js');
|
|
7
7
|
var pg = require('pg');
|
|
8
8
|
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 validator = require('../../internals/validator-
|
|
12
|
+
var validator = require('../../internals/validator-B5yHpyvb.js');
|
|
13
13
|
require('@o2ter/crypto-js');
|
|
14
14
|
var _const = require('../../internals/const-C3I6cfav.js');
|
|
15
15
|
var random$1 = require('../../internals/random-nkOQ9U6S.js');
|
|
@@ -189,12 +189,12 @@ const _encodeSorting = (includes, populates, sort) => {
|
|
|
189
189
|
return sorting;
|
|
190
190
|
};
|
|
191
191
|
const _defaultInsertOpts = (options) => {
|
|
192
|
-
const
|
|
192
|
+
const id = random$1.generateId(options.objectIdSize);
|
|
193
193
|
return {
|
|
194
|
-
_id: sql `${{ value:
|
|
194
|
+
_id: sql `${{ value: id }}`,
|
|
195
195
|
...options.className === 'User' ? {
|
|
196
|
-
_rperm: sql `${{ value: [
|
|
197
|
-
_wperm: sql `${{ value: [
|
|
196
|
+
_rperm: sql `${{ value: [id] }}`,
|
|
197
|
+
_wperm: sql `${{ value: [id] }}`,
|
|
198
198
|
} : {},
|
|
199
199
|
};
|
|
200
200
|
};
|
|
@@ -632,12 +632,12 @@ const encodeType = (colname, dataType, value) => {
|
|
|
632
632
|
break;
|
|
633
633
|
return sql `ARRAY[${_.map(value, x => _encodeJsonValue(index._encodeValue(x)))}]::JSONB[]`;
|
|
634
634
|
case 'pointer':
|
|
635
|
-
if (value instanceof index.TObject && value.
|
|
636
|
-
return sql `${{ value: `${value.className}$${value.
|
|
635
|
+
if (value instanceof index.TObject && value.id)
|
|
636
|
+
return sql `${{ value: `${value.className}$${value.id}` }}`;
|
|
637
637
|
break;
|
|
638
638
|
case 'relation':
|
|
639
|
-
if (_.isArray(value) && _.every(value, x => x instanceof index.TObject && x.
|
|
640
|
-
return sql `${{ value: _.uniq(_.map(value, (x) => `${x.className}$${x.
|
|
639
|
+
if (_.isArray(value) && _.every(value, x => x instanceof index.TObject && x.id)) {
|
|
640
|
+
return sql `${{ value: _.uniq(_.map(value, (x) => `${x.className}$${x.id}`)) }}`;
|
|
641
641
|
}
|
|
642
642
|
break;
|
|
643
643
|
}
|
|
@@ -1317,7 +1317,7 @@ class SqlStorage {
|
|
|
1317
1317
|
const _value = _.get(value, path);
|
|
1318
1318
|
if (_.isPlainObject(_value)) {
|
|
1319
1319
|
const decoded = this._decodeObject(type.target, _value, matchType);
|
|
1320
|
-
if (decoded.
|
|
1320
|
+
if (decoded.id)
|
|
1321
1321
|
_.set(result, path, decoded);
|
|
1322
1322
|
}
|
|
1323
1323
|
}
|
|
@@ -1357,7 +1357,7 @@ class SqlStorage {
|
|
|
1357
1357
|
else if (index.isPointer(dataType)) {
|
|
1358
1358
|
if (_.isPlainObject(value)) {
|
|
1359
1359
|
const decoded = this._decodeObject(dataType.target, value, matchType);
|
|
1360
|
-
if (decoded.
|
|
1360
|
+
if (decoded.id)
|
|
1361
1361
|
obj[_private.PVK].attributes[key] = decoded;
|
|
1362
1362
|
}
|
|
1363
1363
|
}
|
|
@@ -1450,7 +1450,7 @@ class SqlStorage {
|
|
|
1450
1450
|
const self = this;
|
|
1451
1451
|
const query = sql `
|
|
1452
1452
|
SELECT *
|
|
1453
|
-
FROM (${this._refs(_.pick(this.schema, classNames), object.className, index.TObject.defaultKeys, sql `${{ value: `${object.className}$${object.
|
|
1453
|
+
FROM (${this._refs(_.pick(this.schema, classNames), object.className, index.TObject.defaultKeys, sql `${{ value: `${object.className}$${object.id}` }}`)}) AS "$"
|
|
1454
1454
|
${_.isNil(roles) ? sql `` : sql `WHERE ${{ identifier: '$' }}.${{ identifier: '_rperm' }} && ${{ value: roles }}`}
|
|
1455
1455
|
`;
|
|
1456
1456
|
return (async function* () {
|
|
@@ -2041,25 +2041,25 @@ const updateOperation = (paths, dataType, operation) => {
|
|
|
2041
2041
|
case '$addToSet':
|
|
2042
2042
|
case '$push':
|
|
2043
2043
|
{
|
|
2044
|
-
if (!_.isArray(value) || !_.every(value, x => x instanceof index.TObject && x.
|
|
2044
|
+
if (!_.isArray(value) || !_.every(value, x => x instanceof index.TObject && x.id))
|
|
2045
2045
|
break;
|
|
2046
|
-
const
|
|
2046
|
+
const ids = _.uniq(_.map(value, (x) => `${x.className}$${x.id}`));
|
|
2047
2047
|
return sql `ARRAY(
|
|
2048
2048
|
SELECT DISTINCT "$"
|
|
2049
|
-
FROM UNNEST(${{ identifier: column }} || ARRAY[${_.map(
|
|
2049
|
+
FROM UNNEST(${{ identifier: column }} || ARRAY[${_.map(ids, (x) => sql `${{ value: x }}`)}]) "$"
|
|
2050
2050
|
RIGHT JOIN ${{ identifier: dataType.target }} ON "$" = (${{ quote: dataType.target + '$' }} || ${{ identifier: dataType.target }}._id)
|
|
2051
2051
|
)`;
|
|
2052
2052
|
}
|
|
2053
2053
|
case '$removeAll':
|
|
2054
2054
|
{
|
|
2055
|
-
if (!_.isArray(value) || !_.every(value, x => x instanceof index.TObject && x.
|
|
2055
|
+
if (!_.isArray(value) || !_.every(value, x => x instanceof index.TObject && x.id))
|
|
2056
2056
|
break;
|
|
2057
|
-
const
|
|
2057
|
+
const ids = _.uniq(_.map(value, (x) => `${x.className}$${x.id}`));
|
|
2058
2058
|
return sql `ARRAY(
|
|
2059
2059
|
SELECT "$"
|
|
2060
2060
|
FROM UNNEST(${{ identifier: column }}) "$"
|
|
2061
2061
|
RIGHT JOIN ${{ identifier: dataType.target }} ON "$" = (${{ quote: dataType.target + '$' }} || ${{ identifier: dataType.target }}._id)
|
|
2062
|
-
WHERE "$" NOT IN (${_.map(
|
|
2062
|
+
WHERE "$" NOT IN (${_.map(ids, (x) => sql `${{ value: x }}`)})
|
|
2063
2063
|
)`;
|
|
2064
2064
|
}
|
|
2065
2065
|
}
|
|
@@ -2559,9 +2559,9 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
|
|
|
2559
2559
|
if (_.isNil(expr.value))
|
|
2560
2560
|
return sql `${element} IS NULL`;
|
|
2561
2561
|
if (!_.isString(dataType) && dataType?.type === 'pointer') {
|
|
2562
|
-
if (!(expr.value instanceof index.TObject) || dataType.target !== expr.value.className || !expr.value.
|
|
2562
|
+
if (!(expr.value instanceof index.TObject) || dataType.target !== expr.value.className || !expr.value.id)
|
|
2563
2563
|
break;
|
|
2564
|
-
return sql `${element} ${nullSafeEqual()} ${{ value: expr.value.
|
|
2564
|
+
return sql `${element} ${nullSafeEqual()} ${{ value: expr.value.id }}`;
|
|
2565
2565
|
}
|
|
2566
2566
|
return sql `${element} ${nullSafeEqual()} ${encodeValue(expr.value)}`;
|
|
2567
2567
|
}
|
|
@@ -2572,9 +2572,9 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
|
|
|
2572
2572
|
if (_.isNil(expr.value))
|
|
2573
2573
|
return sql `${element} IS NOT NULL`;
|
|
2574
2574
|
if (!_.isString(dataType) && dataType?.type === 'pointer') {
|
|
2575
|
-
if (!(expr.value instanceof index.TObject) || dataType.target !== expr.value.className || !expr.value.
|
|
2575
|
+
if (!(expr.value instanceof index.TObject) || dataType.target !== expr.value.className || !expr.value.id)
|
|
2576
2576
|
break;
|
|
2577
|
-
return sql `${element} ${nullSafeNotEqual()} ${{ value: expr.value.
|
|
2577
|
+
return sql `${element} ${nullSafeNotEqual()} ${{ value: expr.value.id }}`;
|
|
2578
2578
|
}
|
|
2579
2579
|
return sql `${element} ${nullSafeNotEqual()} ${encodeValue(expr.value)}`;
|
|
2580
2580
|
}
|
|
@@ -2616,8 +2616,8 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
|
|
|
2616
2616
|
return sql `${element} ${{ literal: op }} ${encodeValue(expr.value)}`;
|
|
2617
2617
|
}
|
|
2618
2618
|
}
|
|
2619
|
-
else if (!_.isString(dataType) && dataType?.type === 'pointer' && expr.value instanceof index.TObject && expr.value.
|
|
2620
|
-
return sql `${element} ${{ literal: op }} ${{ value: expr.value.
|
|
2619
|
+
else if (!_.isString(dataType) && dataType?.type === 'pointer' && expr.value instanceof index.TObject && expr.value.id) {
|
|
2620
|
+
return sql `${element} ${{ literal: op }} ${{ value: expr.value.id }}`;
|
|
2621
2621
|
}
|
|
2622
2622
|
else if (!dataType) {
|
|
2623
2623
|
if (expr.value instanceof Decimal || _.isNumber(expr.value)) {
|
|
@@ -2653,9 +2653,9 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
|
|
|
2653
2653
|
if (!_.isString(dataType) && dataType?.type === 'pointer') {
|
|
2654
2654
|
if (_.isNil(value))
|
|
2655
2655
|
return sql `${element} IS NULL`;
|
|
2656
|
-
if (!(value instanceof index.TObject) || dataType.target !== value.className || !value.
|
|
2656
|
+
if (!(value instanceof index.TObject) || dataType.target !== value.className || !value.id)
|
|
2657
2657
|
break;
|
|
2658
|
-
return sql `${element} ${nullSafeEqual()} ${{ value: value.
|
|
2658
|
+
return sql `${element} ${nullSafeEqual()} ${{ value: value.id }}`;
|
|
2659
2659
|
}
|
|
2660
2660
|
return sql `${element} ${nullSafeEqual()} ${encodeValue(value)}`;
|
|
2661
2661
|
}
|
|
@@ -2663,12 +2663,12 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
|
|
|
2663
2663
|
const containsNil = _.some(expr.value, x => _.isNil(x));
|
|
2664
2664
|
const values = _.filter(expr.value, x => !_.isNil(x));
|
|
2665
2665
|
if (!_.isString(dataType) && dataType?.type === 'pointer') {
|
|
2666
|
-
if (!_.every(values, x => x instanceof index.TObject && dataType.target === x.className && x.
|
|
2666
|
+
if (!_.every(values, x => x instanceof index.TObject && dataType.target === x.className && x.id))
|
|
2667
2667
|
break;
|
|
2668
2668
|
if (containsNil) {
|
|
2669
|
-
return sql `${element} IS NULL OR ${element} IN (${_.map(values, (x) => sql `${{ value: x.
|
|
2669
|
+
return sql `${element} IS NULL OR ${element} IN (${_.map(values, (x) => sql `${{ value: x.id }}`)})`;
|
|
2670
2670
|
}
|
|
2671
|
-
return sql `${element} IN (${_.map(values, (x) => sql `${{ value: x.
|
|
2671
|
+
return sql `${element} IN (${_.map(values, (x) => sql `${{ value: x.id }}`)})`;
|
|
2672
2672
|
}
|
|
2673
2673
|
if (containsNil) {
|
|
2674
2674
|
return sql `${element} IS NULL OR ${element} IN (${_.map(values, x => encodeValue(x))})`;
|
|
@@ -2689,9 +2689,9 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
|
|
|
2689
2689
|
if (!_.isString(dataType) && dataType?.type === 'pointer') {
|
|
2690
2690
|
if (_.isNil(value))
|
|
2691
2691
|
return sql `${element} IS NOT NULL`;
|
|
2692
|
-
if (!(value instanceof index.TObject) || dataType.target !== value.className || !value.
|
|
2692
|
+
if (!(value instanceof index.TObject) || dataType.target !== value.className || !value.id)
|
|
2693
2693
|
break;
|
|
2694
|
-
return sql `${element} ${nullSafeNotEqual()} ${{ value: value.
|
|
2694
|
+
return sql `${element} ${nullSafeNotEqual()} ${{ value: value.id }}`;
|
|
2695
2695
|
}
|
|
2696
2696
|
return sql `${element} ${nullSafeNotEqual()} ${encodeValue(value)}`;
|
|
2697
2697
|
}
|
|
@@ -2699,12 +2699,12 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
|
|
|
2699
2699
|
const containsNil = _.some(expr.value, x => _.isNil(x));
|
|
2700
2700
|
const values = _.filter(expr.value, x => !_.isNil(x));
|
|
2701
2701
|
if (!_.isString(dataType) && dataType?.type === 'pointer') {
|
|
2702
|
-
if (!_.every(values, x => x instanceof index.TObject && dataType.target === x.className && x.
|
|
2702
|
+
if (!_.every(values, x => x instanceof index.TObject && dataType.target === x.className && x.id))
|
|
2703
2703
|
break;
|
|
2704
2704
|
if (containsNil) {
|
|
2705
|
-
return sql `${element} IS NOT NULL AND ${element} NOT IN (${_.map(values, (x) => sql `${{ value: x.
|
|
2705
|
+
return sql `${element} IS NOT NULL AND ${element} NOT IN (${_.map(values, (x) => sql `${{ value: x.id }}`)})`;
|
|
2706
2706
|
}
|
|
2707
|
-
return sql `${element} NOT IN (${_.map(values, (x) => sql `${{ value: x.
|
|
2707
|
+
return sql `${element} NOT IN (${_.map(values, (x) => sql `${{ value: x.id }}`)})`;
|
|
2708
2708
|
}
|
|
2709
2709
|
if (containsNil) {
|
|
2710
2710
|
return sql `${element} IS NOT NULL AND ${element} NOT IN (${_.map(values, x => encodeValue(x))})`;
|
|
@@ -2734,14 +2734,14 @@ const encodeFieldExpression = (compiler, parent, field, expr) => {
|
|
|
2734
2734
|
return sql `${element} ${{ literal: op }} ${{ value: index._encodeValue(expr.value) }}`;
|
|
2735
2735
|
}
|
|
2736
2736
|
if (relation && parent.className) {
|
|
2737
|
-
if (!_.every(expr.value, x => x instanceof index.TObject && relation.target === x.className && x.
|
|
2737
|
+
if (!_.every(expr.value, x => x instanceof index.TObject && relation.target === x.className && x.id))
|
|
2738
2738
|
break;
|
|
2739
2739
|
const tempName = `_populate_expr_$${compiler.nextIdx()}`;
|
|
2740
2740
|
const populate = _selectRelationPopulate(compiler, { className: parent.className, name: parent.name }, relation.populate, `$${field}`, false);
|
|
2741
2741
|
return sql `ARRAY(
|
|
2742
2742
|
SELECT ${{ identifier: '_id' }}
|
|
2743
2743
|
FROM (${populate}) AS ${{ identifier: tempName }}
|
|
2744
|
-
) ${{ literal: op }} ARRAY[${_.map(expr.value, (x) => sql `${{ value: x.
|
|
2744
|
+
) ${{ literal: op }} ARRAY[${_.map(expr.value, (x) => sql `${{ value: x.id }}`)}]::TEXT[]`;
|
|
2745
2745
|
}
|
|
2746
2746
|
if (!dataType) {
|
|
2747
2747
|
return sql `jsonb_typeof(${element}) ${nullSafeEqual()} 'array' AND ${element} ${{ literal: op }} ${_encodeJsonValue(index._encodeValue(expr.value))}`;
|
|
@@ -3027,7 +3027,7 @@ const encodeRelation = (compiler, parent, relatedBy) => {
|
|
|
3027
3027
|
SELECT 1
|
|
3028
3028
|
FROM ${{ identifier: relatedBy.className }} AS ${{ identifier: name }}
|
|
3029
3029
|
${!_.isEmpty(joins) ? { literal: joins, separator: '\n' } : sql ``}
|
|
3030
|
-
WHERE ${_foreign('_id')} = ${{ value: relatedBy.
|
|
3030
|
+
WHERE ${_foreign('_id')} = ${{ value: relatedBy.id }} AND ${sql `(${{ quote: parent.className + '$' }} || ${_local('_id')})`} = ANY(${field})
|
|
3031
3031
|
)`;
|
|
3032
3032
|
};
|
|
3033
3033
|
|