alasql 4.0.5 → 4.0.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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  //
4
4
  // Command line interface for Alasql
5
- // Version: 0.2.3
5
+ // Version: 4.0.7
6
6
  // Date: 28.07.2015
7
7
  // (c) 2014-2022, Andrey Gershun & Mathias Wulff
8
8
  //
@@ -1,7 +1,7 @@
1
- //! AlaSQL v4.0.4 build: develop-d4d5cdec | © 2014-2023 Andrey Gershun & Mathias Wulff | License: MIT
1
+ //! AlaSQL v4.0.7 build: develop-3024ae87 | © 2014-2023 Andrey Gershun & Mathias Wulff | License: MIT
2
2
  /*
3
3
  @module alasql
4
- @version 4.0.4
4
+ @version 4.0.7
5
5
 
6
6
  AlaSQL - JavaScript SQL database
7
7
  © 2014-2023 Andrey Gershun & Mathias Wulff
@@ -1,2 +1,2 @@
1
- //! AlaSQL v4.0.4 build: develop-d4d5cdec | © 2014-2023 Andrey Gershun & Mathias Wulff | License: MIT
1
+ //! AlaSQL v4.0.7 build: develop-3024ae87 | © 2014-2023 Andrey Gershun & Mathias Wulff | License: MIT
2
2
  !function(r,e){"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():r.alasql=e()}(this,function(){function i(r,e,o){"function"==typeof(e=e||[])&&(scope=o,o=e,e=[]),"object"!=typeof e&&(e=[e]);var t=i.lastid++;i.buffer[t]=o,i.webworker.postMessage({id:t,sql:r,params:e})}var a;if(i.options={},i.options.progress=function(){},isArray=function(r){return"[object Array]"===Object.prototype.toString.call(r)},i.promise=function(){throw new Error("Please include a Promise/A+ library")},"undefined"!=typeof Promise&&(a=function(r,e,n,s){return new Promise(function(o,t){i(r,e,function(r,e){e?t(e):(n&&s&&!1!==i.options.progress&&i.options.progress(n,s),o(r))})})},i.promise=function(r,e){if("undefined"==typeof Promise)throw new Error("Please include a Promise/A+ library");if("string"==typeof r)return a(r,e);if(!isArray(r)||r.length<1||void 0!==e)throw new Error("Error in .promise parameters");var o=r;if(!(o.length<1)){for(var t,n,s=[],i=0;i<o.length;i++){if("string"==typeof(n=o[i])&&(n=[n]),!isArray(n)||n.length<1||2<n.length)throw new Error("Error in .promise parameter");t=n[0],n=n[1]||void 0,s.push(a(t,n,i,o.length))}return Promise.all(s)}}),i=i||!1)return i.worker=function(){throw new Error("Can find webworker in this enviroment")},"undefined"!=typeof Worker&&(i.worker=function(r,e,o){if(void 0===(r=!0===r?void 0:r))for(var t=document.getElementsByTagName("script"),n=0;n<t.length;n++){if("alasql-worker.js"===t[n].src.substr(-16).toLowerCase()){r=t[n].src.substr(0,t[n].src.length-16)+"alasql.js";break}if("alasql-worker.min.js"===t[n].src.substr(-20).toLowerCase()){r=t[n].src.substr(0,t[n].src.length-20)+"alasql.min.js";break}if("alasql.js"===t[n].src.substr(-9).toLowerCase()){r=t[n].src;break}if("alasql.min.js"===t[n].src.substr(-13).toLowerCase()){r=t[n].src.substr(0,t[n].src.length-13)+"alasql.min.js";break}}if(void 0===r)throw new Error("Path to alasql.js is not specified");var s;!1!==r?(s=(s="importScripts('")+r+"');self.onmessage = function(event) {alasql(event.data.sql,event.data.params, function(data){postMessage({id:event.data.id, data:data});});}",s=new Blob([s],{type:"text/plain"}),i.webworker=new Worker(URL.createObjectURL(s)),i.webworker.onmessage=function(r){var e=r.data.id;i.buffer[e](r.data.data),delete i.buffer[e]},i.webworker.onerror=function(r){throw r},1<arguments.length&&i("REQUIRE "+e.map(function(r){return'"'+r+'"'}).join(","),[],o)):!1===r&&delete i.webworker}),i.lastid=0,i.buffer={},i.worker(),i;throw new Error("alasql was not found")});
package/dist/alasql.fs.js CHANGED
@@ -1,7 +1,7 @@
1
- //! AlaSQL v4.0.4 build: develop-d4d5cdec | © 2014-2023 Andrey Gershun & Mathias Wulff | License: MIT
1
+ //! AlaSQL v4.0.7 build: develop-3024ae87 | © 2014-2023 Andrey Gershun & Mathias Wulff | License: MIT
2
2
  /*
3
3
  @module alasql
4
- @version 4.0.4
4
+ @version 4.0.7
5
5
 
6
6
  AlaSQL - JavaScript SQL database
7
7
  © 2014-2023 Andrey Gershun & Mathias Wulff
@@ -142,8 +142,8 @@ var alasql = function(sql, params, cb, scope) {
142
142
  Current version of alasql
143
143
  @constant {string}
144
144
  */
145
- alasql.version = '4.0.4';
146
- alasql.build = 'develop-d4d5cdec';
145
+ alasql.version = '4.0.7';
146
+ alasql.build = 'develop-3024ae87';
147
147
 
148
148
  /**
149
149
  Debug flag
@@ -4022,11 +4022,11 @@ var cloneDeep = (utils.cloneDeep = function cloneDeep(obj) {
4022
4022
  return +obj;
4023
4023
  }
4024
4024
 
4025
- var temp = new obj.constructor(); // changed
4025
+ var temp = new (Object.prototype.hasOwnProperty.call(obj, 'constructor') ? Object : obj.constructor)(); // changed
4026
4026
 
4027
4027
  for (var key in obj) {
4028
4028
  if (obj.hasOwnProperty(key)) {
4029
- temp[key] = cloneDeep(obj[key]);
4029
+ /* 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]); }
4030
4030
  }
4031
4031
  }
4032
4032
  return temp;
@@ -4098,7 +4098,7 @@ var extend = (utils.extend = function extend(a, b) {
4098
4098
  a = a || {};
4099
4099
  for (var key in b) {
4100
4100
  if (b.hasOwnProperty(key)) {
4101
- a[key] = b[key];
4101
+ /* 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]; }
4102
4102
  }
4103
4103
  }
4104
4104
  return a;
@@ -8696,7 +8696,7 @@ yy.Select.prototype.compileGroup = function (query) {
8696
8696
  aft2 = '';
8697
8697
 
8698
8698
  if (typeof query.groupStar !== 'undefined') {
8699
- aft2 += "for(var f in p['" + query.groupStar + "']) {g[f]=p['" + query.groupStar + "'][f];};";
8699
+ 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];};";
8700
8700
  }
8701
8701
 
8702
8702
  /*
@@ -9138,7 +9138,7 @@ function compileSelectStar(query, aliases, joinstar) {
9138
9138
  } else {
9139
9139
 
9140
9140
  // if column not exist, then copy all
9141
- sp += 'var w=p["' + alias + '"];for(var k in w){r[k]=w[k]};';
9141
+ 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]};';
9142
9142
 
9143
9143
  query.dirtyColumns = true;
9144
9144
  }
@@ -9466,10 +9466,10 @@ yy.Select.prototype.compileSelectGroup1 = function (query) {
9466
9466
  self.columns.forEach(function (col) {
9467
9467
 
9468
9468
  if (col instanceof yy.Column && col.columnid === '*') {
9469
- // s += 'for(var k in g){r[k]=g[k]};';
9469
+ // s += 'for(var k in g){if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=g[k]};';
9470
9470
  // s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};';
9471
9471
 
9472
- s += 'for(var k in g) {r[k]=g[k]};';
9472
+ s += 'for(var k in g) {if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=g[k]};';
9473
9473
  return '';
9474
9474
 
9475
9475
  } else {
@@ -12745,7 +12745,7 @@ yy.CreateTable.prototype.execute = function (databaseid, params, cb) {
12745
12745
 
12746
12746
  table.update(
12747
12747
  function (t) {
12748
- for (var f in r) t[f] = r[f];
12748
+ for (var f in r) {if(/^__proto__$/.test(f))Object.defineProperty(t,f,{writable:true,enumerable:true,configurable:true});t[f] = r[f];}
12749
12749
  },
12750
12750
  table.data.indexOf(toreplace),
12751
12751
  params
@@ -14319,7 +14319,7 @@ yy.Insert.prototype.compile = function (databaseid) {
14319
14319
  });
14320
14320
  } else {
14321
14321
 
14322
- // sw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};';
14322
+ // 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]};';
14323
14323
  sw = JSONtoJS(values);
14324
14324
  }
14325
14325
  }
@@ -15156,8 +15156,9 @@ yy.Declare.prototype.toString = function () {
15156
15156
 
15157
15157
  yy.Declare.prototype.execute = function (databaseid, params, cb) {
15158
15158
  var res = 1;
15159
- if (this.declares && this.declares.length > 0) {
15160
- this.declares.map(function (declare) {
15159
+ var that = this; // without this assigned to a variable, inside the forEach, the reference to `this` is lost. It is needed for the Function statement for binding
15160
+ if (that.declares && that.declares.length > 0) {
15161
+ that.declares.forEach(function (declare) {
15161
15162
  var dbtypeid = declare.dbtypeid;
15162
15163
  if (!alasql.fn[dbtypeid]) {
15163
15164
  dbtypeid = dbtypeid.toUpperCase();
@@ -15174,7 +15175,7 @@ yy.Declare.prototype.execute = function (databaseid, params, cb) {
15174
15175
  alasql.vars[declare.variable] = new Function(
15175
15176
  'params,alasql',
15176
15177
  'return ' + declare.expression.toJS('({})', '', null)
15177
- )(params, alasql);
15178
+ ).bind(that)(params, alasql);
15178
15179
  if (alasql.declares[declare.variable]) {
15179
15180
  alasql.vars[declare.variable] = alasql.stdfn.CONVERT(
15180
15181
  alasql.vars[declare.variable],
package/dist/alasql.js CHANGED
@@ -1,7 +1,7 @@
1
- //! AlaSQL v4.0.4 build: develop-d4d5cdec | © 2014-2023 Andrey Gershun & Mathias Wulff | License: MIT
1
+ //! AlaSQL v4.0.7 build: develop-3024ae87 | © 2014-2023 Andrey Gershun & Mathias Wulff | License: MIT
2
2
  /*
3
3
  @module alasql
4
- @version 4.0.4
4
+ @version 4.0.7
5
5
 
6
6
  AlaSQL - JavaScript SQL database
7
7
  © 2014-2023 Andrey Gershun & Mathias Wulff
@@ -142,8 +142,8 @@ var alasql = function(sql, params, cb, scope) {
142
142
  Current version of alasql
143
143
  @constant {string}
144
144
  */
145
- alasql.version = '4.0.4';
146
- alasql.build = 'develop-d4d5cdec';
145
+ alasql.version = '4.0.7';
146
+ alasql.build = 'develop-3024ae87';
147
147
 
148
148
  /**
149
149
  Debug flag
@@ -4022,11 +4022,11 @@ var cloneDeep = (utils.cloneDeep = function cloneDeep(obj) {
4022
4022
  return +obj;
4023
4023
  }
4024
4024
 
4025
- var temp = new obj.constructor(); // changed
4025
+ var temp = new (Object.prototype.hasOwnProperty.call(obj, 'constructor') ? Object : obj.constructor)(); // changed
4026
4026
 
4027
4027
  for (var key in obj) {
4028
4028
  if (obj.hasOwnProperty(key)) {
4029
- temp[key] = cloneDeep(obj[key]);
4029
+ /* 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]); }
4030
4030
  }
4031
4031
  }
4032
4032
  return temp;
@@ -4098,7 +4098,7 @@ var extend = (utils.extend = function extend(a, b) {
4098
4098
  a = a || {};
4099
4099
  for (var key in b) {
4100
4100
  if (b.hasOwnProperty(key)) {
4101
- a[key] = b[key];
4101
+ /* 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]; }
4102
4102
  }
4103
4103
  }
4104
4104
  return a;
@@ -8696,7 +8696,7 @@ yy.Select.prototype.compileGroup = function (query) {
8696
8696
  aft2 = '';
8697
8697
 
8698
8698
  if (typeof query.groupStar !== 'undefined') {
8699
- aft2 += "for(var f in p['" + query.groupStar + "']) {g[f]=p['" + query.groupStar + "'][f];};";
8699
+ 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];};";
8700
8700
  }
8701
8701
 
8702
8702
  /*
@@ -9138,7 +9138,7 @@ function compileSelectStar(query, aliases, joinstar) {
9138
9138
  } else {
9139
9139
 
9140
9140
  // if column not exist, then copy all
9141
- sp += 'var w=p["' + alias + '"];for(var k in w){r[k]=w[k]};';
9141
+ 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]};';
9142
9142
 
9143
9143
  query.dirtyColumns = true;
9144
9144
  }
@@ -9466,10 +9466,10 @@ yy.Select.prototype.compileSelectGroup1 = function (query) {
9466
9466
  self.columns.forEach(function (col) {
9467
9467
 
9468
9468
  if (col instanceof yy.Column && col.columnid === '*') {
9469
- // s += 'for(var k in g){r[k]=g[k]};';
9469
+ // s += 'for(var k in g){if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=g[k]};';
9470
9470
  // s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};';
9471
9471
 
9472
- s += 'for(var k in g) {r[k]=g[k]};';
9472
+ s += 'for(var k in g) {if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=g[k]};';
9473
9473
  return '';
9474
9474
 
9475
9475
  } else {
@@ -12745,7 +12745,7 @@ yy.CreateTable.prototype.execute = function (databaseid, params, cb) {
12745
12745
 
12746
12746
  table.update(
12747
12747
  function (t) {
12748
- for (var f in r) t[f] = r[f];
12748
+ for (var f in r) {if(/^__proto__$/.test(f))Object.defineProperty(t,f,{writable:true,enumerable:true,configurable:true});t[f] = r[f];}
12749
12749
  },
12750
12750
  table.data.indexOf(toreplace),
12751
12751
  params
@@ -14319,7 +14319,7 @@ yy.Insert.prototype.compile = function (databaseid) {
14319
14319
  });
14320
14320
  } else {
14321
14321
 
14322
- // sw = 'var w='+JSONtoJS(values)+';for(var k in w){r[k]=w[k]};';
14322
+ // 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]};';
14323
14323
  sw = JSONtoJS(values);
14324
14324
  }
14325
14325
  }
@@ -15156,8 +15156,9 @@ yy.Declare.prototype.toString = function () {
15156
15156
 
15157
15157
  yy.Declare.prototype.execute = function (databaseid, params, cb) {
15158
15158
  var res = 1;
15159
- if (this.declares && this.declares.length > 0) {
15160
- this.declares.map(function (declare) {
15159
+ var that = this; // without this assigned to a variable, inside the forEach, the reference to `this` is lost. It is needed for the Function statement for binding
15160
+ if (that.declares && that.declares.length > 0) {
15161
+ that.declares.forEach(function (declare) {
15161
15162
  var dbtypeid = declare.dbtypeid;
15162
15163
  if (!alasql.fn[dbtypeid]) {
15163
15164
  dbtypeid = dbtypeid.toUpperCase();
@@ -15174,7 +15175,7 @@ yy.Declare.prototype.execute = function (databaseid, params, cb) {
15174
15175
  alasql.vars[declare.variable] = new Function(
15175
15176
  'params,alasql',
15176
15177
  'return ' + declare.expression.toJS('({})', '', null)
15177
- )(params, alasql);
15178
+ ).bind(that)(params, alasql);
15178
15179
  if (alasql.declares[declare.variable]) {
15179
15180
  alasql.vars[declare.variable] = alasql.stdfn.CONVERT(
15180
15181
  alasql.vars[declare.variable],