objection 2.2.14 → 2.2.18
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/lib/utils/objectUtils.js
CHANGED
|
@@ -189,7 +189,6 @@ function once(func) {
|
|
|
189
189
|
|
|
190
190
|
function flatten(arrays) {
|
|
191
191
|
const out = [];
|
|
192
|
-
let outIdx = 0;
|
|
193
192
|
|
|
194
193
|
for (let i = 0, l = arrays.length; i < l; ++i) {
|
|
195
194
|
const value = arrays[i];
|
|
@@ -225,6 +224,11 @@ function set(obj, path, value) {
|
|
|
225
224
|
|
|
226
225
|
for (let i = 0, l = path.length - 1; i < l; ++i) {
|
|
227
226
|
const key = path[i];
|
|
227
|
+
|
|
228
|
+
if (!isSafeKey(key)) {
|
|
229
|
+
return inputObj;
|
|
230
|
+
}
|
|
231
|
+
|
|
228
232
|
let child = obj[key];
|
|
229
233
|
|
|
230
234
|
if (!isObject(child)) {
|
|
@@ -243,7 +247,11 @@ function set(obj, path, value) {
|
|
|
243
247
|
}
|
|
244
248
|
|
|
245
249
|
if (path.length > 0 && isObject(obj)) {
|
|
246
|
-
|
|
250
|
+
const key = path[path.length - 1];
|
|
251
|
+
|
|
252
|
+
if (isSafeKey(key)) {
|
|
253
|
+
obj[key] = value;
|
|
254
|
+
}
|
|
247
255
|
}
|
|
248
256
|
|
|
249
257
|
return inputObj;
|
|
@@ -253,7 +261,11 @@ function zipObject(keys, values) {
|
|
|
253
261
|
const out = {};
|
|
254
262
|
|
|
255
263
|
for (let i = 0, l = keys.length; i < l; ++i) {
|
|
256
|
-
|
|
264
|
+
const key = keys[i];
|
|
265
|
+
|
|
266
|
+
if (isSafeKey(key)) {
|
|
267
|
+
out[key] = values[i];
|
|
268
|
+
}
|
|
257
269
|
}
|
|
258
270
|
|
|
259
271
|
return out;
|
|
@@ -357,6 +369,10 @@ function compareStrict(val1, val2) {
|
|
|
357
369
|
return val1 === val2;
|
|
358
370
|
}
|
|
359
371
|
|
|
372
|
+
function isSafeKey(key) {
|
|
373
|
+
return isNumber(key) || (isString(key) && key !== '__proto__');
|
|
374
|
+
}
|
|
375
|
+
|
|
360
376
|
module.exports = {
|
|
361
377
|
isEmpty,
|
|
362
378
|
isString,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "objection",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.18",
|
|
4
4
|
"description": "An SQL-friendly ORM for Node.js",
|
|
5
5
|
"main": "lib/objection.js",
|
|
6
6
|
"license": "MIT",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"db-errors": "^0.2.3"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
|
-
"knex": "0.
|
|
68
|
+
"knex": "<0.95.0"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@types/node": "^14.14.13",
|
|
@@ -58,7 +58,9 @@ declare namespace Objection {
|
|
|
58
58
|
): ValueBuilder;
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
export interface ReferenceBuilder extends Castable {
|
|
61
|
+
export interface ReferenceBuilder extends Castable {
|
|
62
|
+
from(tableReference: string): this;
|
|
63
|
+
}
|
|
62
64
|
export interface ReferenceFunction {
|
|
63
65
|
(expression: string): ReferenceBuilder;
|
|
64
66
|
}
|
|
@@ -752,8 +754,8 @@ declare namespace Objection {
|
|
|
752
754
|
export interface GraphOptions {
|
|
753
755
|
minimize?: boolean;
|
|
754
756
|
separator?: string;
|
|
755
|
-
aliases?: string
|
|
756
|
-
joinOperation
|
|
757
|
+
aliases?: {[key: string]: string};
|
|
758
|
+
joinOperation?: string;
|
|
757
759
|
maxBatchSize?: number;
|
|
758
760
|
}
|
|
759
761
|
|
|
@@ -1080,11 +1082,6 @@ declare namespace Objection {
|
|
|
1080
1082
|
// Deprecated
|
|
1081
1083
|
omit(properties: string[]): this;
|
|
1082
1084
|
|
|
1083
|
-
traverse(filterConstructor: typeof Model, traverser: TraverserFunction): R;
|
|
1084
|
-
traverse(traverser: TraverserFunction): R;
|
|
1085
|
-
traverseAsync(filterConstructor: typeof Model, traverser: TraverserFunction): Promise<R>;
|
|
1086
|
-
traverseAsync(traverser: TraverserFunction): Promise<R>;
|
|
1087
|
-
|
|
1088
1085
|
page(page: number, pageSize: number): PageQueryBuilder<this>;
|
|
1089
1086
|
range(): PageQueryBuilder<this>;
|
|
1090
1087
|
range(start: number, end: number): PageQueryBuilder<this>;
|
|
@@ -1509,6 +1506,12 @@ declare namespace Objection {
|
|
|
1509
1506
|
models: Model | Model[],
|
|
1510
1507
|
traverser: TraverserFunction
|
|
1511
1508
|
): void;
|
|
1509
|
+
traverseAsync(models: Model | Model[], traverser: TraverserFunction): Promise<void>;
|
|
1510
|
+
traverseAsync(
|
|
1511
|
+
filterConstructor: ModelConstructor<Model>,
|
|
1512
|
+
models: Model | Model[],
|
|
1513
|
+
traverser: TraverserFunction
|
|
1514
|
+
): Promise<void>;
|
|
1512
1515
|
|
|
1513
1516
|
beforeFind(args: StaticHookArguments<any>): any;
|
|
1514
1517
|
afterFind(args: StaticHookArguments<any>): any;
|
|
@@ -1644,6 +1647,12 @@ declare namespace Objection {
|
|
|
1644
1647
|
models: Model | Model[],
|
|
1645
1648
|
traverser: TraverserFunction
|
|
1646
1649
|
): void;
|
|
1650
|
+
static traverseAsync(models: Model | Model[], traverser: TraverserFunction): Promise<void>;
|
|
1651
|
+
static traverseAsync(
|
|
1652
|
+
filterConstructor: typeof Model,
|
|
1653
|
+
models: Model | Model[],
|
|
1654
|
+
traverser: TraverserFunction
|
|
1655
|
+
): Promise<void>;
|
|
1647
1656
|
|
|
1648
1657
|
static beforeFind(args: StaticHookArguments<any>): any;
|
|
1649
1658
|
static afterFind(args: StaticHookArguments<any>): any;
|