alasql 4.8.0 → 4.8.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.8.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.7.0 build: develop-916ff64e | © 2014-2024 Andrey Gershun & Mathias Wulff | License: MIT
1
+ //! AlaSQL v4.8.1 build: develop-916ff64e | © 2014-2024 Andrey Gershun & Mathias Wulff | License: MIT
2
2
  /*
3
3
  @module alasql
4
- @version 4.7.0
4
+ @version 4.8.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.7.0 build: develop-916ff64e | © 2014-2024 Andrey Gershun & Mathias Wulff | License: MIT
1
+ //! AlaSQL v4.8.1 build: develop-916ff64e | © 2014-2024 Andrey Gershun & Mathias Wulff | License: MIT
2
2
  /*
3
3
  @module alasql
4
- @version 4.7.0
4
+ @version 4.8.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.7.0';
144
+ alasql.version = '4.8.1';
145
145
  alasql.build = 'develop-916ff64e';
146
146
 
147
147
  /**
@@ -4061,11 +4061,11 @@ var cloneDeep = (utils.cloneDeep = function cloneDeep(obj) {
4061
4061
  return +obj;
4062
4062
  }
4063
4063
 
4064
- var temp = new obj.constructor(); // changed
4064
+ var temp = new (Object.prototype.hasOwnProperty.call(obj, 'constructor') ? Object : obj.constructor)(); // changed
4065
4065
 
4066
4066
  for (var key in obj) {
4067
4067
  if (obj.hasOwnProperty(key)) {
4068
- temp[key] = cloneDeep(obj[key]);
4068
+ /* 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]); }
4069
4069
  }
4070
4070
  }
4071
4071
  return temp;
@@ -4137,7 +4137,7 @@ var extend = (utils.extend = function extend(a, b) {
4137
4137
  a = a || {};
4138
4138
  for (var key in b) {
4139
4139
  if (b.hasOwnProperty(key)) {
4140
- a[key] = b[key];
4140
+ /* 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]; }
4141
4141
  }
4142
4142
  }
4143
4143
  return a;
@@ -8424,7 +8424,7 @@ yy.Select.prototype.compileGroup = function (query) {
8424
8424
  aft2 = '';
8425
8425
 
8426
8426
  if (typeof query.groupStar !== 'undefined') {
8427
- aft2 += "for(var f in p['" + query.groupStar + "']) {g[f]=p['" + query.groupStar + "'][f];};";
8427
+ 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];};";
8428
8428
  }
8429
8429
 
8430
8430
  s += query.selectGroup
@@ -8873,7 +8873,7 @@ function compileSelectStar(query, aliases, joinstar) {
8873
8873
  } else {
8874
8874
 
8875
8875
  // if column not exist, then copy all
8876
- sp += 'var w=p["' + alias + '"];for(var k in w){r[k]=w[k]};';
8876
+ 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]};';
8877
8877
 
8878
8878
  query.dirtyColumns = true;
8879
8879
  }
@@ -9201,10 +9201,10 @@ yy.Select.prototype.compileSelectGroup1 = function (query) {
9201
9201
  self.columns.forEach(function (col) {
9202
9202
 
9203
9203
  if (col instanceof yy.Column && col.columnid === '*') {
9204
- // s += 'for(var k in g){r[k]=g[k]};';
9204
+ // s += 'for(var k in g){if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=g[k]};';
9205
9205
  // s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};';
9206
9206
 
9207
- s += 'for(var k in g) {r[k]=g[k]};';
9207
+ s += 'for(var k in g) {if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=g[k]};';
9208
9208
  return '';
9209
9209
 
9210
9210
  } else {
@@ -10427,7 +10427,7 @@ yy.Over = class Over {
10427
10427
  const allValues = this.right.map(value => value.value);
10428
10428
  const allValuesStr = allValues.join(',');
10429
10429
  alasql.sets[allValuesStr] = alasql.sets[allValuesStr] || new Set(allValues);
10430
- s = `alasql.sets["${allValuesStr}"].has(alasql.utils.getValueOf(${leftJS()}))`;
10430
+ s = `alasql.sets[${JSON.stringify(allValuesStr)}].has(alasql.utils.getValueOf(${leftJS()}))`;
10431
10431
  }
10432
10432
  } else {
10433
10433
  s = `(${rightJS()}.indexOf(${leftJS()}) > -1)`;
@@ -10445,7 +10445,7 @@ yy.Over = class Over {
10445
10445
  const allValues = this.right.map(value => value.value);
10446
10446
  const allValuesStr = allValues.join(',');
10447
10447
  alasql.sets[allValuesStr] = alasql.sets[allValuesStr] || new Set(allValues);
10448
- s = `!alasql.sets["${allValuesStr}"].has(alasql.utils.getValueOf(${leftJS()}))`;
10448
+ s = `!alasql.sets[${JSON.stringify(allValuesStr)}].has(alasql.utils.getValueOf(${leftJS()}))`;
10449
10449
  }
10450
10450
  } else {
10451
10451
  s = `(${rightJS()}.indexOf(${leftJS()}) === -1)`;
@@ -12313,7 +12313,7 @@ yy.CreateTable.prototype.execute = function (databaseid, params, cb) {
12313
12313
 
12314
12314
  table.update(
12315
12315
  function (t) {
12316
- for (var f in r) t[f] = r[f];
12316
+ for (var f in r) {if(/^__proto__$/.test(f))Object.defineProperty(t,f,{writable:true,enumerable:true,configurable:true});t[f] = r[f];}
12317
12317
  },
12318
12318
  table.data.indexOf(toreplace),
12319
12319
  params
@@ -13827,7 +13827,7 @@ yy.Insert.prototype.compile = function (databaseid) {
13827
13827
  });
13828
13828
  } else {
13829
13829
 
13830
- // sw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};';
13830
+ // 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]};';
13831
13831
  sw = JSONtoJS(values);
13832
13832
  }
13833
13833
  }
package/dist/alasql.js CHANGED
@@ -1,7 +1,7 @@
1
- //! AlaSQL v4.7.0 build: develop-916ff64e | © 2014-2024 Andrey Gershun & Mathias Wulff | License: MIT
1
+ //! AlaSQL v4.8.1 build: develop-916ff64e | © 2014-2024 Andrey Gershun & Mathias Wulff | License: MIT
2
2
  /*
3
3
  @module alasql
4
- @version 4.7.0
4
+ @version 4.8.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.7.0';
144
+ alasql.version = '4.8.1';
145
145
  alasql.build = 'develop-916ff64e';
146
146
 
147
147
  /**
@@ -4061,11 +4061,11 @@ var cloneDeep = (utils.cloneDeep = function cloneDeep(obj) {
4061
4061
  return +obj;
4062
4062
  }
4063
4063
 
4064
- var temp = new obj.constructor(); // changed
4064
+ var temp = new (Object.prototype.hasOwnProperty.call(obj, 'constructor') ? Object : obj.constructor)(); // changed
4065
4065
 
4066
4066
  for (var key in obj) {
4067
4067
  if (obj.hasOwnProperty(key)) {
4068
- temp[key] = cloneDeep(obj[key]);
4068
+ /* 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]); }
4069
4069
  }
4070
4070
  }
4071
4071
  return temp;
@@ -4137,7 +4137,7 @@ var extend = (utils.extend = function extend(a, b) {
4137
4137
  a = a || {};
4138
4138
  for (var key in b) {
4139
4139
  if (b.hasOwnProperty(key)) {
4140
- a[key] = b[key];
4140
+ /* 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]; }
4141
4141
  }
4142
4142
  }
4143
4143
  return a;
@@ -8424,7 +8424,7 @@ yy.Select.prototype.compileGroup = function (query) {
8424
8424
  aft2 = '';
8425
8425
 
8426
8426
  if (typeof query.groupStar !== 'undefined') {
8427
- aft2 += "for(var f in p['" + query.groupStar + "']) {g[f]=p['" + query.groupStar + "'][f];};";
8427
+ 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];};";
8428
8428
  }
8429
8429
 
8430
8430
  s += query.selectGroup
@@ -8873,7 +8873,7 @@ function compileSelectStar(query, aliases, joinstar) {
8873
8873
  } else {
8874
8874
 
8875
8875
  // if column not exist, then copy all
8876
- sp += 'var w=p["' + alias + '"];for(var k in w){r[k]=w[k]};';
8876
+ 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]};';
8877
8877
 
8878
8878
  query.dirtyColumns = true;
8879
8879
  }
@@ -9201,10 +9201,10 @@ yy.Select.prototype.compileSelectGroup1 = function (query) {
9201
9201
  self.columns.forEach(function (col) {
9202
9202
 
9203
9203
  if (col instanceof yy.Column && col.columnid === '*') {
9204
- // s += 'for(var k in g){r[k]=g[k]};';
9204
+ // s += 'for(var k in g){if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=g[k]};';
9205
9205
  // s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};';
9206
9206
 
9207
- s += 'for(var k in g) {r[k]=g[k]};';
9207
+ s += 'for(var k in g) {if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=g[k]};';
9208
9208
  return '';
9209
9209
 
9210
9210
  } else {
@@ -10427,7 +10427,7 @@ yy.Over = class Over {
10427
10427
  const allValues = this.right.map(value => value.value);
10428
10428
  const allValuesStr = allValues.join(',');
10429
10429
  alasql.sets[allValuesStr] = alasql.sets[allValuesStr] || new Set(allValues);
10430
- s = `alasql.sets["${allValuesStr}"].has(alasql.utils.getValueOf(${leftJS()}))`;
10430
+ s = `alasql.sets[${JSON.stringify(allValuesStr)}].has(alasql.utils.getValueOf(${leftJS()}))`;
10431
10431
  }
10432
10432
  } else {
10433
10433
  s = `(${rightJS()}.indexOf(${leftJS()}) > -1)`;
@@ -10445,7 +10445,7 @@ yy.Over = class Over {
10445
10445
  const allValues = this.right.map(value => value.value);
10446
10446
  const allValuesStr = allValues.join(',');
10447
10447
  alasql.sets[allValuesStr] = alasql.sets[allValuesStr] || new Set(allValues);
10448
- s = `!alasql.sets["${allValuesStr}"].has(alasql.utils.getValueOf(${leftJS()}))`;
10448
+ s = `!alasql.sets[${JSON.stringify(allValuesStr)}].has(alasql.utils.getValueOf(${leftJS()}))`;
10449
10449
  }
10450
10450
  } else {
10451
10451
  s = `(${rightJS()}.indexOf(${leftJS()}) === -1)`;
@@ -12313,7 +12313,7 @@ yy.CreateTable.prototype.execute = function (databaseid, params, cb) {
12313
12313
 
12314
12314
  table.update(
12315
12315
  function (t) {
12316
- for (var f in r) t[f] = r[f];
12316
+ for (var f in r) {if(/^__proto__$/.test(f))Object.defineProperty(t,f,{writable:true,enumerable:true,configurable:true});t[f] = r[f];}
12317
12317
  },
12318
12318
  table.data.indexOf(toreplace),
12319
12319
  params
@@ -13827,7 +13827,7 @@ yy.Insert.prototype.compile = function (databaseid) {
13827
13827
  });
13828
13828
  } else {
13829
13829
 
13830
- // sw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};';
13830
+ // 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]};';
13831
13831
  sw = JSONtoJS(values);
13832
13832
  }
13833
13833
  }