alasql 4.6.5 → 4.6.7
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/bin/alasql-cli.js +1 -1
- package/dist/alasql-worker.js +2 -2
- package/dist/alasql.fs.js +29 -19
- package/dist/alasql.js +29 -19
- package/dist/alasql.min.js +13 -13
- package/package.json +3 -3
package/bin/alasql-cli.js
CHANGED
package/dist/alasql-worker.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
//! AlaSQL v4.6.
|
|
1
|
+
//! AlaSQL v4.6.7 build: develop-f6e298b2 | © 2014-2024 Andrey Gershun & Mathias Wulff | License: MIT
|
|
2
2
|
/*
|
|
3
3
|
@module alasql
|
|
4
|
-
@version 4.6.
|
|
4
|
+
@version 4.6.7
|
|
5
5
|
|
|
6
6
|
AlaSQL - JavaScript SQL database
|
|
7
7
|
© 2014-2024 Andrey Gershun & Mathias Wulff
|
package/dist/alasql.fs.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
//! AlaSQL v4.6.
|
|
1
|
+
//! AlaSQL v4.6.7 build: develop-f6e298b2 | © 2014-2024 Andrey Gershun & Mathias Wulff | License: MIT
|
|
2
2
|
/*
|
|
3
3
|
@module alasql
|
|
4
|
-
@version 4.6.
|
|
4
|
+
@version 4.6.7
|
|
5
5
|
|
|
6
6
|
AlaSQL - JavaScript SQL database
|
|
7
7
|
© 2014-2024 Andrey Gershun & Mathias Wulff
|
|
@@ -141,8 +141,8 @@ SOFTWARE.
|
|
|
141
141
|
Current version of alasql
|
|
142
142
|
@constant {string}
|
|
143
143
|
*/
|
|
144
|
-
alasql.version = '4.6.
|
|
145
|
-
alasql.build = 'develop-
|
|
144
|
+
alasql.version = '4.6.7';
|
|
145
|
+
alasql.build = 'develop-f6e298b2';
|
|
146
146
|
|
|
147
147
|
/**
|
|
148
148
|
Debug flag
|
|
@@ -4048,11 +4048,11 @@ var cloneDeep = (utils.cloneDeep = function cloneDeep(obj) {
|
|
|
4048
4048
|
return +obj;
|
|
4049
4049
|
}
|
|
4050
4050
|
|
|
4051
|
-
var temp = new obj.constructor(); // changed
|
|
4051
|
+
var temp = new (Object.prototype.hasOwnProperty.call(obj, 'constructor') ? Object : obj.constructor)(); // changed
|
|
4052
4052
|
|
|
4053
4053
|
for (var key in obj) {
|
|
4054
4054
|
if (obj.hasOwnProperty(key)) {
|
|
4055
|
-
temp[key] = cloneDeep(obj[key]);
|
|
4055
|
+
/* A "__proto__" key from parsed data is copied as data, never as the prototype */ if (key === '__proto__') { Object.defineProperty(temp, key, {value: cloneDeep(obj[key]), writable: true, enumerable: true, configurable: true}); } else { temp[key] = cloneDeep(obj[key]); }
|
|
4056
4056
|
}
|
|
4057
4057
|
}
|
|
4058
4058
|
return temp;
|
|
@@ -4124,7 +4124,7 @@ var extend = (utils.extend = function extend(a, b) {
|
|
|
4124
4124
|
a = a || {};
|
|
4125
4125
|
for (var key in b) {
|
|
4126
4126
|
if (b.hasOwnProperty(key)) {
|
|
4127
|
-
a[key] = b[key];
|
|
4127
|
+
/* A "__proto__" key from parsed data is copied as data, never as the prototype */ if (key === '__proto__') { Object.defineProperty(a, key, {value: b[key], writable: true, enumerable: true, configurable: true}); } else { a[key] = b[key]; }
|
|
4128
4128
|
}
|
|
4129
4129
|
}
|
|
4130
4130
|
return a;
|
|
@@ -8411,7 +8411,7 @@ yy.Select.prototype.compileGroup = function (query) {
|
|
|
8411
8411
|
aft2 = '';
|
|
8412
8412
|
|
|
8413
8413
|
if (typeof query.groupStar !== 'undefined') {
|
|
8414
|
-
aft2 += "for(var f in p['" + query.groupStar + "']) {g[f]=p['" + query.groupStar + "'][f];};";
|
|
8414
|
+
aft2 += "for(var f in p['" + query.groupStar + "']) {if(/^__proto__$/.test(f))Object.defineProperty(g,f,{writable:true,enumerable:true,configurable:true});g[f]=p['" + query.groupStar + "'][f];};";
|
|
8415
8415
|
}
|
|
8416
8416
|
|
|
8417
8417
|
s += query.selectGroup
|
|
@@ -8853,7 +8853,7 @@ function compileSelectStar(query, aliases, joinstar) {
|
|
|
8853
8853
|
} else {
|
|
8854
8854
|
|
|
8855
8855
|
// if column not exist, then copy all
|
|
8856
|
-
sp += 'var w=p["' + alias + '"];for(var k in w){r[k]=w[k]};';
|
|
8856
|
+
sp += 'var w=p["' + alias + '"];for(var k in w){if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=w[k]};';
|
|
8857
8857
|
|
|
8858
8858
|
query.dirtyColumns = true;
|
|
8859
8859
|
}
|
|
@@ -9181,10 +9181,10 @@ yy.Select.prototype.compileSelectGroup1 = function (query) {
|
|
|
9181
9181
|
self.columns.forEach(function (col) {
|
|
9182
9182
|
|
|
9183
9183
|
if (col instanceof yy.Column && col.columnid === '*') {
|
|
9184
|
-
// s += 'for(var k in g){r[k]=g[k]};';
|
|
9184
|
+
// s += 'for(var k in g){if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=g[k]};';
|
|
9185
9185
|
// s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};';
|
|
9186
9186
|
|
|
9187
|
-
s += 'for(var k in g) {r[k]=g[k]};';
|
|
9187
|
+
s += 'for(var k in g) {if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=g[k]};';
|
|
9188
9188
|
return '';
|
|
9189
9189
|
|
|
9190
9190
|
} else {
|
|
@@ -9637,7 +9637,7 @@ yy.Select.prototype.compilePivot = function (query) {
|
|
|
9637
9637
|
}
|
|
9638
9638
|
}
|
|
9639
9639
|
// Provide a fallback if still not found
|
|
9640
|
-
aggColDef = aggColDef || {
|
|
9640
|
+
aggColDef = aggColDef || {columnid: exprcolid, dbtypeid: 'OBJECT'};
|
|
9641
9641
|
|
|
9642
9642
|
// Keep only the grouping columns initially
|
|
9643
9643
|
query.columns = query.columns.filter(function (col) {
|
|
@@ -10407,7 +10407,7 @@ yy.Over = class Over {
|
|
|
10407
10407
|
const allValues = this.right.map(value => value.value);
|
|
10408
10408
|
const allValuesStr = allValues.join(',');
|
|
10409
10409
|
alasql.sets[allValuesStr] = alasql.sets[allValuesStr] || new Set(allValues);
|
|
10410
|
-
s = `alasql.sets[
|
|
10410
|
+
s = `alasql.sets[${JSON.stringify(allValuesStr)}].has(alasql.utils.getValueOf(${leftJS()}))`;
|
|
10411
10411
|
}
|
|
10412
10412
|
} else {
|
|
10413
10413
|
s = `(${rightJS()}.indexOf(${leftJS()}) > -1)`;
|
|
@@ -10425,7 +10425,7 @@ yy.Over = class Over {
|
|
|
10425
10425
|
const allValues = this.right.map(value => value.value);
|
|
10426
10426
|
const allValuesStr = allValues.join(',');
|
|
10427
10427
|
alasql.sets[allValuesStr] = alasql.sets[allValuesStr] || new Set(allValues);
|
|
10428
|
-
s = `!alasql.sets[
|
|
10428
|
+
s = `!alasql.sets[${JSON.stringify(allValuesStr)}].has(alasql.utils.getValueOf(${leftJS()}))`;
|
|
10429
10429
|
}
|
|
10430
10430
|
} else {
|
|
10431
10431
|
s = `(${rightJS()}.indexOf(${leftJS()}) === -1)`;
|
|
@@ -12281,7 +12281,7 @@ yy.CreateTable.prototype.execute = function (databaseid, params, cb) {
|
|
|
12281
12281
|
|
|
12282
12282
|
table.update(
|
|
12283
12283
|
function (t) {
|
|
12284
|
-
for (var f in r) t[f] = r[f];
|
|
12284
|
+
for (var f in r) {if(/^__proto__$/.test(f))Object.defineProperty(t,f,{writable:true,enumerable:true,configurable:true});t[f] = r[f];}
|
|
12285
12285
|
},
|
|
12286
12286
|
table.data.indexOf(toreplace),
|
|
12287
12287
|
params
|
|
@@ -13795,7 +13795,7 @@ yy.Insert.prototype.compile = function (databaseid) {
|
|
|
13795
13795
|
});
|
|
13796
13796
|
} else {
|
|
13797
13797
|
|
|
13798
|
-
// sw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};';
|
|
13798
|
+
// sw = 'var w='+JSONtoJS(values)+';for(var k in w){if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=w[k]};';
|
|
13799
13799
|
sw = JSONtoJS(values);
|
|
13800
13800
|
}
|
|
13801
13801
|
}
|
|
@@ -16545,7 +16545,12 @@ alasql.from.JSON = function (filename, opts, cb, idx, query) {
|
|
|
16545
16545
|
}
|
|
16546
16546
|
}),
|
|
16547
16547
|
err => {
|
|
16548
|
-
|
|
16548
|
+
const error = err instanceof Error ? err : new Error(err);
|
|
16549
|
+
if(query && query.cb) {
|
|
16550
|
+
query.cb(null, error);
|
|
16551
|
+
return;
|
|
16552
|
+
}
|
|
16553
|
+
throw error;
|
|
16549
16554
|
};
|
|
16550
16555
|
return res;
|
|
16551
16556
|
};
|
|
@@ -16570,11 +16575,16 @@ const jsonl = ext => {
|
|
|
16570
16575
|
}
|
|
16571
16576
|
});
|
|
16572
16577
|
if (cb) {
|
|
16573
|
-
|
|
16578
|
+
out = cb(out, idx, query);
|
|
16574
16579
|
}
|
|
16575
16580
|
},
|
|
16576
16581
|
err => {
|
|
16577
|
-
|
|
16582
|
+
const error = err instanceof Error ? err : new Error(err);
|
|
16583
|
+
if(query && query.cb) {
|
|
16584
|
+
query.cb(null, error);
|
|
16585
|
+
return;
|
|
16586
|
+
}
|
|
16587
|
+
throw error;
|
|
16578
16588
|
}
|
|
16579
16589
|
);
|
|
16580
16590
|
return out;
|
package/dist/alasql.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
//! AlaSQL v4.6.
|
|
1
|
+
//! AlaSQL v4.6.7 build: develop-f6e298b2 | © 2014-2024 Andrey Gershun & Mathias Wulff | License: MIT
|
|
2
2
|
/*
|
|
3
3
|
@module alasql
|
|
4
|
-
@version 4.6.
|
|
4
|
+
@version 4.6.7
|
|
5
5
|
|
|
6
6
|
AlaSQL - JavaScript SQL database
|
|
7
7
|
© 2014-2024 Andrey Gershun & Mathias Wulff
|
|
@@ -141,8 +141,8 @@ SOFTWARE.
|
|
|
141
141
|
Current version of alasql
|
|
142
142
|
@constant {string}
|
|
143
143
|
*/
|
|
144
|
-
alasql.version = '4.6.
|
|
145
|
-
alasql.build = 'develop-
|
|
144
|
+
alasql.version = '4.6.7';
|
|
145
|
+
alasql.build = 'develop-f6e298b2';
|
|
146
146
|
|
|
147
147
|
/**
|
|
148
148
|
Debug flag
|
|
@@ -4048,11 +4048,11 @@ var cloneDeep = (utils.cloneDeep = function cloneDeep(obj) {
|
|
|
4048
4048
|
return +obj;
|
|
4049
4049
|
}
|
|
4050
4050
|
|
|
4051
|
-
var temp = new obj.constructor(); // changed
|
|
4051
|
+
var temp = new (Object.prototype.hasOwnProperty.call(obj, 'constructor') ? Object : obj.constructor)(); // changed
|
|
4052
4052
|
|
|
4053
4053
|
for (var key in obj) {
|
|
4054
4054
|
if (obj.hasOwnProperty(key)) {
|
|
4055
|
-
temp[key] = cloneDeep(obj[key]);
|
|
4055
|
+
/* A "__proto__" key from parsed data is copied as data, never as the prototype */ if (key === '__proto__') { Object.defineProperty(temp, key, {value: cloneDeep(obj[key]), writable: true, enumerable: true, configurable: true}); } else { temp[key] = cloneDeep(obj[key]); }
|
|
4056
4056
|
}
|
|
4057
4057
|
}
|
|
4058
4058
|
return temp;
|
|
@@ -4124,7 +4124,7 @@ var extend = (utils.extend = function extend(a, b) {
|
|
|
4124
4124
|
a = a || {};
|
|
4125
4125
|
for (var key in b) {
|
|
4126
4126
|
if (b.hasOwnProperty(key)) {
|
|
4127
|
-
a[key] = b[key];
|
|
4127
|
+
/* A "__proto__" key from parsed data is copied as data, never as the prototype */ if (key === '__proto__') { Object.defineProperty(a, key, {value: b[key], writable: true, enumerable: true, configurable: true}); } else { a[key] = b[key]; }
|
|
4128
4128
|
}
|
|
4129
4129
|
}
|
|
4130
4130
|
return a;
|
|
@@ -8411,7 +8411,7 @@ yy.Select.prototype.compileGroup = function (query) {
|
|
|
8411
8411
|
aft2 = '';
|
|
8412
8412
|
|
|
8413
8413
|
if (typeof query.groupStar !== 'undefined') {
|
|
8414
|
-
aft2 += "for(var f in p['" + query.groupStar + "']) {g[f]=p['" + query.groupStar + "'][f];};";
|
|
8414
|
+
aft2 += "for(var f in p['" + query.groupStar + "']) {if(/^__proto__$/.test(f))Object.defineProperty(g,f,{writable:true,enumerable:true,configurable:true});g[f]=p['" + query.groupStar + "'][f];};";
|
|
8415
8415
|
}
|
|
8416
8416
|
|
|
8417
8417
|
s += query.selectGroup
|
|
@@ -8853,7 +8853,7 @@ function compileSelectStar(query, aliases, joinstar) {
|
|
|
8853
8853
|
} else {
|
|
8854
8854
|
|
|
8855
8855
|
// if column not exist, then copy all
|
|
8856
|
-
sp += 'var w=p["' + alias + '"];for(var k in w){r[k]=w[k]};';
|
|
8856
|
+
sp += 'var w=p["' + alias + '"];for(var k in w){if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=w[k]};';
|
|
8857
8857
|
|
|
8858
8858
|
query.dirtyColumns = true;
|
|
8859
8859
|
}
|
|
@@ -9181,10 +9181,10 @@ yy.Select.prototype.compileSelectGroup1 = function (query) {
|
|
|
9181
9181
|
self.columns.forEach(function (col) {
|
|
9182
9182
|
|
|
9183
9183
|
if (col instanceof yy.Column && col.columnid === '*') {
|
|
9184
|
-
// s += 'for(var k in g){r[k]=g[k]};';
|
|
9184
|
+
// s += 'for(var k in g){if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=g[k]};';
|
|
9185
9185
|
// s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};';
|
|
9186
9186
|
|
|
9187
|
-
s += 'for(var k in g) {r[k]=g[k]};';
|
|
9187
|
+
s += 'for(var k in g) {if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=g[k]};';
|
|
9188
9188
|
return '';
|
|
9189
9189
|
|
|
9190
9190
|
} else {
|
|
@@ -9637,7 +9637,7 @@ yy.Select.prototype.compilePivot = function (query) {
|
|
|
9637
9637
|
}
|
|
9638
9638
|
}
|
|
9639
9639
|
// Provide a fallback if still not found
|
|
9640
|
-
aggColDef = aggColDef || {
|
|
9640
|
+
aggColDef = aggColDef || {columnid: exprcolid, dbtypeid: 'OBJECT'};
|
|
9641
9641
|
|
|
9642
9642
|
// Keep only the grouping columns initially
|
|
9643
9643
|
query.columns = query.columns.filter(function (col) {
|
|
@@ -10407,7 +10407,7 @@ yy.Over = class Over {
|
|
|
10407
10407
|
const allValues = this.right.map(value => value.value);
|
|
10408
10408
|
const allValuesStr = allValues.join(',');
|
|
10409
10409
|
alasql.sets[allValuesStr] = alasql.sets[allValuesStr] || new Set(allValues);
|
|
10410
|
-
s = `alasql.sets[
|
|
10410
|
+
s = `alasql.sets[${JSON.stringify(allValuesStr)}].has(alasql.utils.getValueOf(${leftJS()}))`;
|
|
10411
10411
|
}
|
|
10412
10412
|
} else {
|
|
10413
10413
|
s = `(${rightJS()}.indexOf(${leftJS()}) > -1)`;
|
|
@@ -10425,7 +10425,7 @@ yy.Over = class Over {
|
|
|
10425
10425
|
const allValues = this.right.map(value => value.value);
|
|
10426
10426
|
const allValuesStr = allValues.join(',');
|
|
10427
10427
|
alasql.sets[allValuesStr] = alasql.sets[allValuesStr] || new Set(allValues);
|
|
10428
|
-
s = `!alasql.sets[
|
|
10428
|
+
s = `!alasql.sets[${JSON.stringify(allValuesStr)}].has(alasql.utils.getValueOf(${leftJS()}))`;
|
|
10429
10429
|
}
|
|
10430
10430
|
} else {
|
|
10431
10431
|
s = `(${rightJS()}.indexOf(${leftJS()}) === -1)`;
|
|
@@ -12281,7 +12281,7 @@ yy.CreateTable.prototype.execute = function (databaseid, params, cb) {
|
|
|
12281
12281
|
|
|
12282
12282
|
table.update(
|
|
12283
12283
|
function (t) {
|
|
12284
|
-
for (var f in r) t[f] = r[f];
|
|
12284
|
+
for (var f in r) {if(/^__proto__$/.test(f))Object.defineProperty(t,f,{writable:true,enumerable:true,configurable:true});t[f] = r[f];}
|
|
12285
12285
|
},
|
|
12286
12286
|
table.data.indexOf(toreplace),
|
|
12287
12287
|
params
|
|
@@ -13795,7 +13795,7 @@ yy.Insert.prototype.compile = function (databaseid) {
|
|
|
13795
13795
|
});
|
|
13796
13796
|
} else {
|
|
13797
13797
|
|
|
13798
|
-
// sw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};';
|
|
13798
|
+
// sw = 'var w='+JSONtoJS(values)+';for(var k in w){if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=w[k]};';
|
|
13799
13799
|
sw = JSONtoJS(values);
|
|
13800
13800
|
}
|
|
13801
13801
|
}
|
|
@@ -16545,7 +16545,12 @@ alasql.from.JSON = function (filename, opts, cb, idx, query) {
|
|
|
16545
16545
|
}
|
|
16546
16546
|
}),
|
|
16547
16547
|
err => {
|
|
16548
|
-
|
|
16548
|
+
const error = err instanceof Error ? err : new Error(err);
|
|
16549
|
+
if(query && query.cb) {
|
|
16550
|
+
query.cb(null, error);
|
|
16551
|
+
return;
|
|
16552
|
+
}
|
|
16553
|
+
throw error;
|
|
16549
16554
|
};
|
|
16550
16555
|
return res;
|
|
16551
16556
|
};
|
|
@@ -16570,11 +16575,16 @@ const jsonl = ext => {
|
|
|
16570
16575
|
}
|
|
16571
16576
|
});
|
|
16572
16577
|
if (cb) {
|
|
16573
|
-
|
|
16578
|
+
out = cb(out, idx, query);
|
|
16574
16579
|
}
|
|
16575
16580
|
},
|
|
16576
16581
|
err => {
|
|
16577
|
-
|
|
16582
|
+
const error = err instanceof Error ? err : new Error(err);
|
|
16583
|
+
if(query && query.cb) {
|
|
16584
|
+
query.cb(null, error);
|
|
16585
|
+
return;
|
|
16586
|
+
}
|
|
16587
|
+
throw error;
|
|
16578
16588
|
}
|
|
16579
16589
|
);
|
|
16580
16590
|
return out;
|