alasql 4.4.0 → 4.4.1

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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  //
4
4
  // Command line interface for Alasql
5
- // Version: 0.2.3
5
+ // Version: 4.4.1
6
6
  // Date: 28.07.2015
7
7
  // (c) 2014-2022, Andrey Gershun & Mathias Wulff
8
8
  //
@@ -1,7 +1,7 @@
1
- //! AlaSQL v4.3.3 build: develop-b9447ae3 | © 2014-2024 Andrey Gershun & Mathias Wulff | License: MIT
1
+ //! AlaSQL v4.4.1 build: develop-b9447ae3 | © 2014-2024 Andrey Gershun & Mathias Wulff | License: MIT
2
2
  /*
3
3
  @module alasql
4
- @version 4.3.3
4
+ @version 4.4.1
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.3.3 build: develop-b9447ae3 | © 2014-2024 Andrey Gershun & Mathias Wulff | License: MIT
1
+ //! AlaSQL v4.4.1 build: develop-b9447ae3 | © 2014-2024 Andrey Gershun & Mathias Wulff | License: MIT
2
2
  /*
3
3
  @module alasql
4
- @version 4.3.3
4
+ @version 4.4.1
5
5
 
6
6
  AlaSQL - JavaScript SQL database
7
7
  © 2014-2024 Andrey Gershun & Mathias Wulff
@@ -141,7 +141,7 @@ SOFTWARE.
141
141
  Current version of alasql
142
142
  @constant {string}
143
143
  */
144
- alasql.version = '4.3.3';
144
+ alasql.version = '4.4.1';
145
145
  alasql.build = 'develop-b9447ae3';
146
146
 
147
147
  /**
@@ -4039,11 +4039,11 @@ var cloneDeep = (utils.cloneDeep = function cloneDeep(obj) {
4039
4039
  return +obj;
4040
4040
  }
4041
4041
 
4042
- var temp = new obj.constructor(); // changed
4042
+ var temp = new (Object.prototype.hasOwnProperty.call(obj, 'constructor') ? Object : obj.constructor)(); // changed
4043
4043
 
4044
4044
  for (var key in obj) {
4045
4045
  if (obj.hasOwnProperty(key)) {
4046
- temp[key] = cloneDeep(obj[key]);
4046
+ /* 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]); }
4047
4047
  }
4048
4048
  }
4049
4049
  return temp;
@@ -4115,7 +4115,7 @@ var extend = (utils.extend = function extend(a, b) {
4115
4115
  a = a || {};
4116
4116
  for (var key in b) {
4117
4117
  if (b.hasOwnProperty(key)) {
4118
- a[key] = b[key];
4118
+ /* 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]; }
4119
4119
  }
4120
4120
  }
4121
4121
  return a;
@@ -8369,7 +8369,7 @@ yy.Select.prototype.compileGroup = function (query) {
8369
8369
  aft2 = '';
8370
8370
 
8371
8371
  if (typeof query.groupStar !== 'undefined') {
8372
- aft2 += "for(var f in p['" + query.groupStar + "']) {g[f]=p['" + query.groupStar + "'][f];};";
8372
+ 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];};";
8373
8373
  }
8374
8374
 
8375
8375
  s += query.selectGroup
@@ -8758,7 +8758,7 @@ function compileSelectStar(query, aliases, joinstar) {
8758
8758
  } else {
8759
8759
 
8760
8760
  // if column not exist, then copy all
8761
- sp += 'var w=p["' + alias + '"];for(var k in w){r[k]=w[k]};';
8761
+ 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]};';
8762
8762
 
8763
8763
  query.dirtyColumns = true;
8764
8764
  }
@@ -9086,10 +9086,10 @@ yy.Select.prototype.compileSelectGroup1 = function (query) {
9086
9086
  self.columns.forEach(function (col) {
9087
9087
 
9088
9088
  if (col instanceof yy.Column && col.columnid === '*') {
9089
- // s += 'for(var k in g){r[k]=g[k]};';
9089
+ // s += 'for(var k in g){if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=g[k]};';
9090
9090
  // s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};';
9091
9091
 
9092
- s += 'for(var k in g) {r[k]=g[k]};';
9092
+ s += 'for(var k in g) {if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=g[k]};';
9093
9093
  return '';
9094
9094
 
9095
9095
  } else {
@@ -10196,7 +10196,7 @@ yy.Over = class Over {
10196
10196
  const allValues = this.right.map(value => value.value);
10197
10197
  const allValuesStr = allValues.join(',');
10198
10198
  alasql.sets[allValuesStr] = alasql.sets[allValuesStr] || new Set(allValues);
10199
- s = `alasql.sets["${allValuesStr}"].has(alasql.utils.getValueOf(${leftJS()}))`;
10199
+ s = `alasql.sets[${JSON.stringify(allValuesStr)}].has(alasql.utils.getValueOf(${leftJS()}))`;
10200
10200
  }
10201
10201
  } else {
10202
10202
  s = `(${rightJS()}.indexOf(${leftJS()}) > -1)`;
@@ -10214,7 +10214,7 @@ yy.Over = class Over {
10214
10214
  const allValues = this.right.map(value => value.value);
10215
10215
  const allValuesStr = allValues.join(',');
10216
10216
  alasql.sets[allValuesStr] = alasql.sets[allValuesStr] || new Set(allValues);
10217
- s = `!alasql.sets["${allValuesStr}"].has(alasql.utils.getValueOf(${leftJS()}))`;
10217
+ s = `!alasql.sets[${JSON.stringify(allValuesStr)}].has(alasql.utils.getValueOf(${leftJS()}))`;
10218
10218
  }
10219
10219
  } else {
10220
10220
  s = `(${rightJS()}.indexOf(${leftJS()}) === -1)`;
@@ -12068,7 +12068,7 @@ yy.CreateTable.prototype.execute = function (databaseid, params, cb) {
12068
12068
 
12069
12069
  table.update(
12070
12070
  function (t) {
12071
- for (var f in r) t[f] = r[f];
12071
+ for (var f in r) {if(/^__proto__$/.test(f))Object.defineProperty(t,f,{writable:true,enumerable:true,configurable:true});t[f] = r[f];}
12072
12072
  },
12073
12073
  table.data.indexOf(toreplace),
12074
12074
  params
@@ -13563,7 +13563,7 @@ yy.Insert.prototype.compile = function (databaseid) {
13563
13563
  });
13564
13564
  } else {
13565
13565
 
13566
- // sw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};';
13566
+ // 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]};';
13567
13567
  sw = JSONtoJS(values);
13568
13568
  }
13569
13569
  }
package/dist/alasql.js CHANGED
@@ -1,7 +1,7 @@
1
- //! AlaSQL v4.3.3 build: develop-b9447ae3 | © 2014-2024 Andrey Gershun & Mathias Wulff | License: MIT
1
+ //! AlaSQL v4.4.1 build: develop-b9447ae3 | © 2014-2024 Andrey Gershun & Mathias Wulff | License: MIT
2
2
  /*
3
3
  @module alasql
4
- @version 4.3.3
4
+ @version 4.4.1
5
5
 
6
6
  AlaSQL - JavaScript SQL database
7
7
  © 2014-2024 Andrey Gershun & Mathias Wulff
@@ -141,7 +141,7 @@ SOFTWARE.
141
141
  Current version of alasql
142
142
  @constant {string}
143
143
  */
144
- alasql.version = '4.3.3';
144
+ alasql.version = '4.4.1';
145
145
  alasql.build = 'develop-b9447ae3';
146
146
 
147
147
  /**
@@ -4039,11 +4039,11 @@ var cloneDeep = (utils.cloneDeep = function cloneDeep(obj) {
4039
4039
  return +obj;
4040
4040
  }
4041
4041
 
4042
- var temp = new obj.constructor(); // changed
4042
+ var temp = new (Object.prototype.hasOwnProperty.call(obj, 'constructor') ? Object : obj.constructor)(); // changed
4043
4043
 
4044
4044
  for (var key in obj) {
4045
4045
  if (obj.hasOwnProperty(key)) {
4046
- temp[key] = cloneDeep(obj[key]);
4046
+ /* 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]); }
4047
4047
  }
4048
4048
  }
4049
4049
  return temp;
@@ -4115,7 +4115,7 @@ var extend = (utils.extend = function extend(a, b) {
4115
4115
  a = a || {};
4116
4116
  for (var key in b) {
4117
4117
  if (b.hasOwnProperty(key)) {
4118
- a[key] = b[key];
4118
+ /* 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]; }
4119
4119
  }
4120
4120
  }
4121
4121
  return a;
@@ -8369,7 +8369,7 @@ yy.Select.prototype.compileGroup = function (query) {
8369
8369
  aft2 = '';
8370
8370
 
8371
8371
  if (typeof query.groupStar !== 'undefined') {
8372
- aft2 += "for(var f in p['" + query.groupStar + "']) {g[f]=p['" + query.groupStar + "'][f];};";
8372
+ 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];};";
8373
8373
  }
8374
8374
 
8375
8375
  s += query.selectGroup
@@ -8758,7 +8758,7 @@ function compileSelectStar(query, aliases, joinstar) {
8758
8758
  } else {
8759
8759
 
8760
8760
  // if column not exist, then copy all
8761
- sp += 'var w=p["' + alias + '"];for(var k in w){r[k]=w[k]};';
8761
+ 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]};';
8762
8762
 
8763
8763
  query.dirtyColumns = true;
8764
8764
  }
@@ -9086,10 +9086,10 @@ yy.Select.prototype.compileSelectGroup1 = function (query) {
9086
9086
  self.columns.forEach(function (col) {
9087
9087
 
9088
9088
  if (col instanceof yy.Column && col.columnid === '*') {
9089
- // s += 'for(var k in g){r[k]=g[k]};';
9089
+ // s += 'for(var k in g){if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=g[k]};';
9090
9090
  // s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};';
9091
9091
 
9092
- s += 'for(var k in g) {r[k]=g[k]};';
9092
+ s += 'for(var k in g) {if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=g[k]};';
9093
9093
  return '';
9094
9094
 
9095
9095
  } else {
@@ -10196,7 +10196,7 @@ yy.Over = class Over {
10196
10196
  const allValues = this.right.map(value => value.value);
10197
10197
  const allValuesStr = allValues.join(',');
10198
10198
  alasql.sets[allValuesStr] = alasql.sets[allValuesStr] || new Set(allValues);
10199
- s = `alasql.sets["${allValuesStr}"].has(alasql.utils.getValueOf(${leftJS()}))`;
10199
+ s = `alasql.sets[${JSON.stringify(allValuesStr)}].has(alasql.utils.getValueOf(${leftJS()}))`;
10200
10200
  }
10201
10201
  } else {
10202
10202
  s = `(${rightJS()}.indexOf(${leftJS()}) > -1)`;
@@ -10214,7 +10214,7 @@ yy.Over = class Over {
10214
10214
  const allValues = this.right.map(value => value.value);
10215
10215
  const allValuesStr = allValues.join(',');
10216
10216
  alasql.sets[allValuesStr] = alasql.sets[allValuesStr] || new Set(allValues);
10217
- s = `!alasql.sets["${allValuesStr}"].has(alasql.utils.getValueOf(${leftJS()}))`;
10217
+ s = `!alasql.sets[${JSON.stringify(allValuesStr)}].has(alasql.utils.getValueOf(${leftJS()}))`;
10218
10218
  }
10219
10219
  } else {
10220
10220
  s = `(${rightJS()}.indexOf(${leftJS()}) === -1)`;
@@ -12068,7 +12068,7 @@ yy.CreateTable.prototype.execute = function (databaseid, params, cb) {
12068
12068
 
12069
12069
  table.update(
12070
12070
  function (t) {
12071
- for (var f in r) t[f] = r[f];
12071
+ for (var f in r) {if(/^__proto__$/.test(f))Object.defineProperty(t,f,{writable:true,enumerable:true,configurable:true});t[f] = r[f];}
12072
12072
  },
12073
12073
  table.data.indexOf(toreplace),
12074
12074
  params
@@ -13563,7 +13563,7 @@ yy.Insert.prototype.compile = function (databaseid) {
13563
13563
  });
13564
13564
  } else {
13565
13565
 
13566
- // sw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};';
13566
+ // 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]};';
13567
13567
  sw = JSONtoJS(values);
13568
13568
  }
13569
13569
  }