jaydata
Version:
Cross-platform HTML5 data-management, JavaScript Language Query (JSLQ) support for OData, SQLite, WebSQL, IndexedDB, YQL and Facebook (packaged for Node.JS)
15 lines • 58.4 kB
JavaScript
// JayData 1.5.10
// Dual licensed under MIT and GPL v2
// Copyright JayStack Technologies (http://jaydata.org/licensing)
//
// JayData is a standards-based, cross-platform Javascript library and a set of
// practices to access and manipulate data from various online and offline sources.
//
// Credits:
// Hajnalka Battancs, Dániel József, János Roden, László Horváth, Péter Nochta
// Péter Zentai, Róbert Bónay, Szabolcs Czinege, Viktor Borza, Viktor Lázár,
// Zoltán Gyebrovszki, Gábor Dolla
//
// More info: http://jaydata.org
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define("jaydata/sqlite",["jaydata/core"],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.$data=e()}}(function(){return function e(t,i,n){function r(o,s){if(!i[o]){if(!t[o]){var d="function"==typeof require&&require;if(!s&&d)return d(o,!0);if(a)return a(o,!0);var l=new Error("Cannot find module '"+o+"'");throw l.code="MODULE_NOT_FOUND",l}var u=i[o]={exports:{}};t[o][0].call(u.exports,function(e){var i=t[o][1][e];return r(i?i:e)},u,u.exports,e,t,i,n)}return i[o].exports}for(var a="function"==typeof require&&require,o=0;o<n.length;o++)r(n[o]);return r}({1:[function(e,t,i){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var r=e("jaydata/core"),a=n(r);a["default"].Class.define("$data.dbClient.DbCommand",null,null,{connection:{},parameters:{},execute:function(e){r.Guard.raise("Pure class")}},null)},{"jaydata/core":"jaydata/core"}],2:[function(e,t,i){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var r=e("jaydata/core"),a=n(r);a["default"].Class.define("$data.dbClient.DbConnection",null,null,{connectionParams:{},database:{},isOpen:function(){r.Guard.raise("Pure class")},open:function(){r.Guard.raise("Pure class")},close:function(){r.Guard.raise("Pure class")},createCommand:function(){r.Guard.raise("Pure class")}},null)},{"jaydata/core":"jaydata/core"}],3:[function(e,t,i){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var r=e("jaydata/core"),a=n(r);a["default"].Class.define("$data.dbClient.jayStorageClient.JayStorageCommand",a["default"].dbClient.DbCommand,null,{constructor:function(e,t,i){this.query=t,this.connection=e,this.parameters=i},executeNonQuery:function(e){e=a["default"].PromiseHandlerBase.createCallbackSettings(e),this.exec(this.query,this.parameters,e.success,e.error)},executeQuery:function(e){e=a["default"].PromiseHandlerBase.createCallbackSettings(e),this.exec(this.query,this.parameters,e.success,e.error)},exec:function(e,t,i,n){null!=t&&void 0!=t||(t={});var r=!1;e instanceof Array||(r=!0,e=[e],t=[t]);var o=[],s=e.length,d=function(){0==--s&&i(r?o[0]:o)};e.forEach(function(e,i){e?a["default"].ajax({url:"http"+(this.connection.connectionParams.storage.ssl?"s":"")+"://"+this.connection.connectionParams.storage.src.replace("http://","").replace("https://","")+"?db="+this.connection.connectionParams.storage.key,type:"POST",headers:{"X-PINGOTHER":"pingpong"},data:{query:e,parameters:t[i]},dataType:"json",contentType:"application/json;charset=UTF-8",success:function(e){return e&&e.error?(console.log("JayStorage error",e.error),void n(e.error)):(this.lastID?o[i]={insertId:this.lastID,rows:(e||{rows:[]}).rows}:o[i]={rows:(e||{rows:[]}).rows},void d())}}):(o[i]=null,d())},this)}},null)},{"jaydata/core":"jaydata/core"}],4:[function(e,t,i){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var r=e("jaydata/core"),a=n(r);a["default"].Class.define("$data.dbClient.jayStorageClient.JayStorageConnection",a["default"].dbClient.DbConnection,null,{constructor:function(e){this.connectionParams=e},isOpen:function(){return!0},open:function(){},close:function(){},createCommand:function(e,t){var i=new a["default"].dbClient.jayStorageClient.JayStorageCommand(this,e,t);return i}},null)},{"jaydata/core":"jaydata/core"}],5:[function(e,t,i){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var r=e("jaydata/core"),a=n(r);a["default"].Class.define("$data.dbClient.openDatabaseClient.OpenDbCommand",a["default"].dbClient.DbCommand,null,{constructor:function(e,t,i){this.query=t,this.connection=e,this.parameters=i},executeNonQuery:function(e,t,i){e=a["default"].PromiseHandlerBase.createCallbackSettings(e),this.exec(this.query,this.parameters,e.success,e.error,t,i)},executeQuery:function(e,t,i){e=a["default"].PromiseHandlerBase.createCallbackSettings(e),this.exec(this.query,this.parameters,e.success,e.error,t,i)},exec:function(e,t,i,n,r,a){this.connection.open({error:n,success:function(a){function o(){0==--l&&i(s?d[0]:d,r)}var s=!1;e instanceof Array||(s=!0,e=[e],t=[t]);var d=[],l=0;e.forEach(function(i,r){l++,i?a.executeSql(e[r],t[r],function(e,t){var i={rows:[]};try{i.insertId=t.insertId}catch(n){}if("number"!=typeof i.insertId){i.rowsAffected=t.rowsAffected;for(var a=t.rows.length,s=0;a>s;s++)i.rows.push(t.rows.item(s))}d[r]=i,o(e)},function(e,t){return n&&n(t),!0}):(d[r]=null,o())})}},r,a)}},null)},{"jaydata/core":"jaydata/core"}],6:[function(e,t,i){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var r=e("jaydata/core"),a=n(r);a["default"].Class.define("$data.dbClient.openDatabaseClient.OpenDbConnection",a["default"].dbClient.DbConnection,null,{constructor:function(e){this.connectionParams=e},isOpen:function(){return null!==this.database&&void 0!==this.database&&null!==this.transaction&&void 0!==this.transaction},open:function(e,t,i){if(void 0===i&&(i=!0),e.oncomplete=e.oncomplete||function(){},t)e.success(t.transaction);else if(this.database)i?this.database.transaction(function(t){e.success(t)},e.error,e.oncomplete):this.database.readTransaction(function(t){e.success(t)},e.error,e.oncomplete);else{var n=this.connectionParams,r=this;this.database=openDatabase(n.fileName,n.version,n.displayName,n.maxSize),this.database.readTransaction||(this.database.readTransaction=function(){r.database.transaction.apply(r.database,arguments)}),i?this.database.transaction(function(t){e.success(t)},e.error,e.oncomplete):this.database.readTransaction(function(t){e.success(t)},e.error,e.oncomplete)}},close:function(){this.transaction=void 0,this.database=void 0},createCommand:function(e,t){var i=new a["default"].dbClient.openDatabaseClient.OpenDbCommand(this,e,t);return i}},null)},{"jaydata/core":"jaydata/core"}],7:[function(e,t,i){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var r=e("jaydata/core"),a=n(r);a["default"].Class.define("$data.dbClient.sqLiteNJClient.SqLiteNjCommand",a["default"].dbClient.DbCommand,null,{constructor:function(e,t,i){this.query=t,this.connection=e,this.parameters=i},executeNonQuery:function(e){e=a["default"].PromiseHandlerBase.createCallbackSettings(e),this.exec(this.query,this.parameters,e.success,e.error)},executeQuery:function(e){e=a["default"].PromiseHandlerBase.createCallbackSettings(e),this.exec(this.query,this.parameters,e.success,e.error)},exec:function(e,t,i,n){this.connection.isOpen()||this.connection.open(),null!=t&&void 0!=t||(t={});var r=!1;e instanceof Array||(r=!0,e=[e],t=[t]);var a=this,o=[],s=0,d=function(){0==--s&&(a.connection.database.exec("COMMIT"),i(r?o[0]:o))};a.connection.database.exec("BEGIN"),e.forEach(function(e,i){if(s++,e){var r=function(e,t){return null!=e?void n(e):(this.lastID?o[i]={insertId:this.lastID,rows:[]}:o[i]={rows:t},void d())},l=a.connection.database.prepare(e,t[i]);0==e.indexOf("SELECT")?l.all(r):l.run(r),l.finalize()}else o[i]=null,d()},this)}},null)},{"jaydata/core":"jaydata/core"}],8:[function(e,t,i){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var r=e("jaydata/core"),a=n(r);a["default"].Class.define("$data.dbClient.sqLiteNJClient.SqLiteNjConnection",a["default"].dbClient.DbConnection,null,{constructor:function(e){this.connectionParams=e},isOpen:function(){return null!==this.database&&void 0!==this.database},open:function(){if(null==this.database){var e=this.connectionParams;this.database=new sqLiteModule.Database(e.fileName)}},close:function(){},createCommand:function(e,t){var i=new a["default"].dbClient.sqLiteNJClient.SqLiteNjCommand(this,e,t);return i}},null)},{"jaydata/core":"jaydata/core"}],9:[function(e,t,i){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var r=e("jaydata/core"),a=n(r);(0,r.$C)("$data.sqLite.sqLite_ModelBinderCompiler",a["default"].Expressions.EntityExpressionVisitor,null,{constructor:function(e,t){this._query=e,this.sqlContext=t,this._sqlBuilder=a["default"].sqLite.SqlBuilder.create(t.sets,t.entityContext)},VisitSingleExpression:function(e){this._defaultModelBinder(e)},VisitSomeExpression:function(e){this._defaultModelBinder(e)},VisitFindExpression:function(e){this._defaultModelBinder(e)},VisitEveryExpression:function(e){this._defaultModelBinder(e)},VisitToArrayExpression:function(e){this._defaultModelBinder(e)},VisitFirstExpression:function(e){this._defaultModelBinder(e)},VisitForEachExpression:function(e){this._defaultModelBinder(e)},VisitCountExpression:function(e){var t=r.Container.createqueryBuilder();t.modelBinderConfig.$type=a["default"].Array,t.selectModelBinderProperty("$item"),t.modelBinderConfig.$type=a["default"].Integer,t.modelBinderConfig.$source="cnt",t.resetModelBinderProperty(),this._query.modelBinderConfig=t.modelBinderConfig},VisitExpression:function(e,t){var i=r.Container.createFindProjectionVisitor();i.Visit(e),i.projectionExpression?this.Visit(i.projectionExpression,t):this.DefaultSelection(t)},_defaultModelBinder:function(e){var t=r.Container.createqueryBuilder();t.modelBinderConfig.$type=a["default"].Array,t.modelBinderConfig.$item={},t.selectModelBinderProperty("$item"),this.VisitExpression(e,t),t.resetModelBinderProperty(),this._query.modelBinderConfig=t.modelBinderConfig},_addPropertyToModelBinderConfig:function(e,t){var i=this._query.context._storageModel.getStorageModel(e);e.memberDefinitions.getPublicMappedProperties().forEach(function(e){i&&(!i||i.Associations[e.name]||i.ComplexTypes[e.name])||(e.key&&(this.currentObjectFieldName?t.addKeyField(this.currentObjectFieldName+"__"+e.name):t.addKeyField(e.name)),this.currentObjectFieldName?t.modelBinderConfig[e.name]=this.currentObjectFieldName+"__"+e.name:t.modelBinderConfig[e.name]=e.name)},this),i&&this._addComplexTypeProperties(i.ComplexTypes,t)},_addComplexTypeProperties:function(e,t){e.forEach(function(e){t.selectModelBinderProperty(e.FromPropertyName),t.modelBinderConfig.$type=e.ToType;var i=this.currentObjectFieldName;this.currentObjectFieldName?this.currentObjectFieldName+="__":this.currentObjectFieldName="",this.currentObjectFieldName+=e.FromPropertyName,this._addPropertyToModelBinderConfig(e.ToType,t),t.popModelBinderProperty(),this.currentObjectFieldName=i},this)},DefaultSelection:function(e){e.modelBinderConfig.$type=this._query.defaultType;var t=(this._query.context._storageModel.getStorageModel(this._query.defaultType),this.sqlContext.infos.filter(function(e){return e.IsMapped}).length>1);t&&(this.currentObjectFieldName=this._sqlBuilder.getExpressionAlias(this.sqlContext.sets[0])),this._addPropertyToModelBinderConfig(this._query.defaultType,e),this.sqlContext.infos.forEach(function(t,i){if(i>0&&t.IsMapped){var n=t.NavigationPath.split(".");n.shift(),n.forEach(function(r,o){if(r)if(e.modelBinderConfig[r])e.selectModelBinderProperty(r);else{e.selectModelBinderProperty(r);var s=!1;"*"===t.Association.associationInfo.ToMultiplicity&&n.length-1===o&&(e.modelBinderConfig.$type=a["default"].Array,e.selectModelBinderProperty("$item"),s=!0),e.modelBinderConfig.$type=this.sqlContext.sets[i].elementType,this.currentObjectFieldName=this._sqlBuilder.getExpressionAlias(this.sqlContext.sets[i]),this._addPropertyToModelBinderConfig(this.sqlContext.sets[i].elementType,e),s&&e.popModelBinderProperty()}},this);for(var r=0;r<n.length;r++)e.popModelBinderProperty()}},this)},VisitProjectionExpression:function(e,t){this.hasProjection=!0,this.Visit(e.selector,t),e.selector&&e.selector.expression instanceof a["default"].Expressions.ObjectLiteralExpression&&(t.modelBinderConfig.$type=e.projectionAs||t.modelBinderConfig.$type||a["default"].Object)},VisitParametricQueryExpression:function(e,t){e.expression instanceof a["default"].Expressions.EntityExpression?(this.VisitEntityAsProjection(e.expression,t),t.modelBinderConfig.$keys.unshift("rowid$$")):e.expression instanceof a["default"].Expressions.EntitySetExpression?(this.currentObjectFieldName=this._sqlBuilder.getExpressionAlias(e.expression),this.VisitEntitySetAsProjection(e.expression,t),t.modelBinderConfig.$keys=["rowid$$"]):e.expression instanceof a["default"].Expressions.ComplexTypeExpression?this.VisitEntityAsProjection(e.expression,t):(t.modelBinderConfig.$keys=["rowid$$"],this.Visit(e.expression,t),e.expression instanceof a["default"].Expressions.EntityFieldExpression&&(t.modelBinderConfig.$source="d"))},VisitConstantExpression:function(e,t){t.modelBinderConfig.$type=e.type,t.modelBinderConfig.$source=this.currentObjectFieldName},VisitEntityAsProjection:function(e,t){this.Visit(e.source,t),t.modelBinderConfig.$type=e.entityType,this._addPropertyToModelBinderConfig(e.entityType,t)},VisitEntitySetAsProjection:function(e,t){t.modelBinderConfig.$type=a["default"].Array,t.selectModelBinderProperty("$item"),t.modelBinderConfig.$type=e.elementType,this._addPropertyToModelBinderConfig(e.elementType,t),t.popModelBinderProperty()},VisitComplexTypeExpression:function(e,t){return e},VisitEntityFieldExpression:function(e,t){this.Visit(e.source,t),this.Visit(e.selector,t)},VisitMemberInfoExpression:function(e,t){e.memberDefinition instanceof a["default"].MemberDefinition&&(t.modelBinderConfig.$type=e.memberDefinition.type,e.memberDefinition.storageModel&&e.memberName in e.memberDefinition.storageModel.ComplexTypes?this._addPropertyToModelBinderConfig(r.Container.resolveType(e.memberDefinition.type),t):t.modelBinderConfig.$source=this.currentObjectFieldName)},VisitEntitySetExpression:function(e,t){e.source instanceof a["default"].Expressions.EntityExpression&&(this.Visit(e.source,t),this.Visit(e.selector,t))},VisitEntityExpression:function(e,t){this.Visit(e.source,t)},VisitAssociationInfoExpression:function(e,t){"$selector"in t.modelBinderConfig&&t.modelBinderConfig.$selector.length>0?t.modelBinderConfig.$selector+=".":t.modelBinderConfig.$selector="json:",t.modelBinderConfig.$selector+=e.associationInfo.FromPropertyName},VisitSimpleBinaryExpression:function(e,t){this.Visit(e.left,t),this.Visit(e.right,t),t.modelBinderConfig.$type=void 0},VisitObjectLiteralExpression:function(e,t){t.modelBinderConfig.$type=a["default"].Object,e.members.forEach(function(e){this.Visit(e,t)},this)},VisitObjectFieldExpression:function(e,t){var i=this.currentObjectFieldName;t.selectModelBinderProperty(e.fieldName),this.currentObjectFieldName?this.currentObjectFieldName+="__":this.currentObjectFieldName="",this.currentObjectFieldName+=e.fieldName,e.expression instanceof a["default"].Expressions.EntityExpression||e.expression instanceof a["default"].Expressions.ComplexTypeExpression?this.VisitEntityAsProjection(e.expression,t):e.expression instanceof a["default"].Expressions.EntitySetExpression?this.VisitEntitySetAsProjection(e.expression,t):this.Visit(e.expression,t),this.currentObjectFieldName=i,t.popModelBinderProperty()}})},{"jaydata/core":"jaydata/core"}],10:[function(e,t,i){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(i,"__esModule",{value:!0}),i.SqlStatementBlocks=void 0;var r=e("jaydata/core"),a=n(r),o=i.SqlStatementBlocks={beginGroup:"(",endGroup:")",nameSeparator:".",valueSeparator:", ",select:"SELECT ",where:" WHERE ",from:" FROM ",skip:" OFFSET ",take:" LIMIT ",parameter:"?",order:" ORDER BY ",as:" AS ",scalarFieldName:"d",rowIdName:"rowid$$",count:"select count(*) cnt from ("};(0,r.$C)("$data.sqLite.SqlBuilder",a["default"].queryBuilder,null,{constructor:function(e,t){this.sets=e,this.entityContext=t},getExpressionAlias:function(e){var t=this.sets.indexOf(e);return-1==t&&(t=this.sets.push(e)-1),"T"+t}}),(0,r.$C)("$data.sqLite.SqlCompiler",a["default"].Expressions.EntityExpressionVisitor,null,{constructor:function(e,t){this.queryExpression=e,this.sets=t.sets,this.infos=t.infos,this.entityContext=t.entityContext,this.associations=[],this.filters=[],this.newFilters={},this.sortedFilterPart=["projection","from","filter","order","take","skip"]},compile:function(){var e=a["default"].sqLite.SqlBuilder.create(this.sets,this.entityContext);this.Visit(this.queryExpression,e),void 0===e.getTextPart("projection")&&this.VisitDefaultProjection(e),e.selectTextPart("result"),this.sortedFilterPart.forEach(function(t){var t=e.getTextPart(t);t&&(e.addText(t.text),e.selectedFragment.params=e.selectedFragment.params.concat(t.params))},this);var t=e.getTextPart("count");void 0!==t&&(e.selectedFragment.text=t.text+e.selectedFragment.text,e.addText(o.endGroup),e.selectedFragment.params=e.selectedFragment.params.concat(t.params)),e.resetModelBinderProperty(),this.filters.push(e)},VisitToArrayExpression:function(e,t){this.Visit(e.source,t)},VisitCountExpression:function(e,t){this.Visit(e.source,t),t.selectTextPart("count"),t.addText(o.count)},VisitFilterExpression:function(e,t){this.Visit(e.source,t),t.selectTextPart("filter"),t.addText(o.where);var i=a["default"].sqLite.SqlFilterCompiler.create();return i.Visit(e.selector,t),e},VisitOrderExpression:function(e,t){this.Visit(e.source,t),t.selectTextPart("order"),this.addOrders?t.addText(o.valueSeparator):(this.addOrders=!0,t.addText(o.order));var i=a["default"].sqLite.SqlOrderCompiler.create();return i.Visit(e,t),e},VisitPagingExpression:function(e,t){switch(this.Visit(e.source,t),e.nodeType){case a["default"].Expressions.ExpressionType.Skip:t.selectTextPart("skip"),t.addText(o.skip);break;case a["default"].Expressions.ExpressionType.Take:t.selectTextPart("take"),t.addText(o.take);break;default:r.Guard.raise("Not supported nodeType")}var i=a["default"].sqLite.SqlPagingCompiler.create();return i.Visit(e,t),e},VisitProjectionExpression:function(e,t){this.Visit(e.source,t),t.selectTextPart("projection"),this.hasProjection=!0,t.addText(o.select);var i=a["default"].sqLite.SqlProjectionCompiler.create();i.Visit(e,t)},VisitEntitySetExpression:function(e,t){t.selectTextPart("from"),t.addText(o.from),t.sets.forEach(function(e,i){i>0&&t.addText(" \n LEFT OUTER JOIN ");var n=t.getExpressionAlias(e);if(t.addText(e.instance.tableName+" "),t.addText(n),i>0){t.addText(" ON (");var r=this.infos[i],a="T"+r.AliasNumber,o=r.NavigationPath.substring(0,r.NavigationPath.lastIndexOf(".")),s=this.infos.filter(function(e){return e.NavigationPath==o},this),d="T0";s.length>0&&(d="T"+s[0].AliasNumber),r.Association.associationInfo.ReferentialConstraint.forEach(function(e,i){i>0&&t.addText(" AND "),t.addText(d+"."+e[r.Association.associationInfo.From]),t.addText(" = "),t.addText(a+"."+e[r.Association.associationInfo.To])},this),t.addText(")")}},this)},VisitDefaultProjection:function(e){e.selectTextPart("projection");var t=this.infos.filter(function(e){return e.IsMapped}).length>1;e.sets.length>1?(e.addText(o.select),e.sets.forEach(function(i,n){if(this.infos[n].IsMapped){var r=e.getExpressionAlias(i);i.storageModel.PhysicalType.memberDefinitions.getPublicMappedProperties().forEach(function(i,a){(a>0||n>0)&&e.addText(o.valueSeparator),e.addText(r+"."),e.addText(i.name),t&&(e.addText(o.as),e.addText(r+"__"+i.name))},this)}},this)):e.addText("SELECT *")}}),a["default"].Expressions.ExpressionNode.prototype.monitor=function(e,t){var i=a["default"].sqLite.SqlExpressionMonitor.create(e);return i.Visit(this,t)},(0,r.$C)("$data.storageProviders.sqLite.SQLiteCompiler",null,null,{compile:function(e){var t=e.expression,i={sets:[],infos:[],entityContext:e.context},n=t.monitor({MonitorEntitySetExpression:function(e,t){e.source instanceof a["default"].Expressions.EntityContextExpression&&-1==t.sets.indexOf(e)&&(this.backupEntitySetExpression=e)},VisitCountExpression:function(e,t){return t.hasCountFrameOperator=!0,e},MutateIncludeExpression:function(e,t){var i=null;if(t.hasCountFrameOperator)i=e.source;else{var n=e.selector.value;r.Container.createCodeExpression("function(it){return it."+n+";}",null);var a=r.Container.createCodeParser(this.backupEntitySetExpression.source.instance).createExpression("function(it){return it."+n+";}"),o=r.Container.createCodeToEntityConverter(this.backupEntitySetExpression.source.instance),s=o.Visit(a,{queryParameters:void 0,lambdaParameters:[this.backupEntitySetExpression]});i=r.Container.createIncludeExpression(e.source,s)}return i}},i),o=n.monitor({MonitorEntitySetExpression:function(e,t){e.source instanceof a["default"].Expressions.EntityContextExpression&&-1==t.sets.indexOf(e)&&(t.sets.push(e),t.infos.push({AliasNumber:0,Association:null,FromType:null,FromPropertyName:null,IsMapped:!0}))},MutateEntitySetExpression:function(e,t){if(e.source instanceof a["default"].Expressions.EntityContextExpression)return this.backupContextExpression=e.source,this.path="",e;"0..1"==e.selector.associationInfo.FromMultiplicity&&"*"==e.selector.associationInfo.FromMultiplicity&&r.Guard.raise("Not supported query on this navigation property: "+e.selector.associationInfo.From+" "+e.selector.associationInfo.FromPropertyName),this.path+="."+e.selector.associationInfo.FromPropertyName;var i=t.infos.filter(function(e){return e.NavigationPath==this.path},this);if(i.length>0)return t.sets[i[0].AliasNumber];var n=this.backupContextExpression.instance.getType().memberDefinitions.getMember(e.storageModel.ItemName);n||r.Guard.raise("Context schema error");var o=r.Container.createMemberInfoExpression(n),s=r.Container.createEntitySetExpression(this.backupContextExpression,o);s.instance=this.backupContextExpression.instance[e.storageModel.ItemName];var d=t.sets.push(s);return t.infos.push({AliasNumber:d-1,Association:e.selector,NavigationPath:this.path,IsMapped:this.isMapped}),s}},i),s=a["default"].sqLite.SqlCompiler.create(o,i);s.compile();a["default"].sqLite.SqlBuilder.create(this.sets,this.entityContext);e.modelBinderConfig={};var d=a["default"].sqLite.sqLite_ModelBinderCompiler.create(e,i);d.Visit(o);var l={sqlText:s.filters[0].selectedFragment.text,params:s.filters[0].selectedFragment.params,modelBinderConfig:e.modelBinderConfig};return l}},null)},{"jaydata/core":"jaydata/core"}],11:[function(e,t,i){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var r=e("jaydata/core"),a=n(r);a["default"].SqLiteConverter={fromDb:{"$data.Enum":function(e,t){return a["default"].Container.convertTo(e,t)},"$data.Duration":a["default"].Container.proxyConverter,"$data.Day":a["default"].Container.proxyConverter,"$data.Byte":a["default"].Container.proxyConverter,"$data.SByte":a["default"].Container.proxyConverter,"$data.Decimal":a["default"].Container.proxyConverter,"$data.Float":a["default"].Container.proxyConverter,"$data.Int16":a["default"].Container.proxyConverter,"$data.Int64":a["default"].Container.proxyConverter,"$data.Integer":a["default"].Container.proxyConverter,"$data.Int32":a["default"].Container.proxyConverter,"$data.Number":a["default"].Container.proxyConverter,"$data.Date":function(e){return null!=e?new Date(e):e},"$data.DateTimeOffset":function(e){return null!=e?new Date(e):e},"$data.Time":a["default"].Container.proxyConverter,"$data.String":a["default"].Container.proxyConverter,"$data.Boolean":function(e){return r.Guard.isNullOrUndefined(e)?e:1===e},"$data.Blob":function(e){return e?a["default"].Container.convertTo(atob(e),a["default"].Blob):e},"$data.Array":function(){return 0==arguments.length?[]:arguments[0]?JSON.parse(arguments[0]):void 0},"$data.Object":function(e){try{return JSON.parse(e)}catch(t){return e}},"$data.Guid":function(e){return e?a["default"].parseGuid(e).toString():e},"$data.GeographyPoint":function(e){return e?new a["default"].GeographyPoint(JSON.parse(e)):e},"$data.GeographyLineString":function(e){return e?new a["default"].GeographyLineString(JSON.parse(e)):e},"$data.GeographyPolygon":function(e){return e?new a["default"].GeographyPolygon(JSON.parse(e)):e},"$data.GeographyMultiPoint":function(e){return e?new a["default"].GeographyMultiPoint(JSON.parse(e)):e},"$data.GeographyMultiLineString":function(e){return e?new a["default"].GeographyMultiLineString(JSON.parse(e)):e},"$data.GeographyMultiPolygon":function(e){return e?new a["default"].GeographyMultiPolygon(JSON.parse(e)):e},"$data.GeographyCollection":function(e){return e?new a["default"].GeographyCollection(JSON.parse(e)):e},"$data.GeometryPoint":function(e){return e?new a["default"].GeometryPoint(JSON.parse(e)):e},"$data.GeometryLineString":function(e){return e?new a["default"].GeometryLineString(JSON.parse(e)):e},"$data.GeometryPolygon":function(e){return e?new a["default"].GeometryPolygon(JSON.parse(e)):e},"$data.GeometryMultiPoint":function(e){return e?new a["default"].GeometryMultiPoint(JSON.parse(e)):e},"$data.GeometryMultiLineString":function(e){return e?new a["default"].GeometryMultiLineString(JSON.parse(e)):e},"$data.GeometryMultiPolygon":function(e){return e?new a["default"].GeometryMultiPolygon(JSON.parse(e)):e},"$data.GeometryCollection":function(e){return e?new a["default"].GeometryCollection(JSON.parse(e)):e}},toDb:{"$data.Enum":a["default"].Container.proxyConverter,"$data.Duration":a["default"].Container.proxyConverter,"$data.Day":a["default"].Container.proxyConverter,"$data.Byte":a["default"].Container.proxyConverter,"$data.SByte":a["default"].Container.proxyConverter,"$data.Decimal":a["default"].Container.proxyConverter,"$data.Float":a["default"].Container.proxyConverter,"$data.Int16":a["default"].Container.proxyConverter,"$data.Int64":a["default"].Container.proxyConverter,"$data.Integer":a["default"].Container.proxyConverter,"$data.Int32":a["default"].Container.proxyConverter,"$data.Number":a["default"].Container.proxyConverter,"$data.Date":function(e){return e?e.valueOf():null},"$data.DateTimeOffset":function(e){return e?e.valueOf():null},"$data.Time":a["default"].Container.proxyConverter,"$data.String":a["default"].Container.proxyConverter,"$data.Boolean":function(e){return r.Guard.isNullOrUndefined(e)?e:e?1:0},"$data.Blob":function(e){return e?a["default"].Blob.toBase64(e):e},"$data.Array":function(e){return e?JSON.stringify(e):e},"$data.Guid":function(e){return e?e.toString():e},"$data.Object":function(e){return null===e?null:void JSON.stringify(e)},"$data.GeographyPoint":function(e){return e?JSON.stringify(e):e},"$data.GeographyLineString":function(e){return e?JSON.stringify(e):e},"$data.GeographyPolygon":function(e){return e?JSON.stringify(e):e},"$data.GeographyMultiPoint":function(e){return e?JSON.stringify(e):e},"$data.GeographyMultiLineString":function(e){return e?JSON.stringify(e):e},"$data.GeographyMultiPolygon":function(e){return e?JSON.stringify(e):e},"$data.GeographyCollection":function(e){return e?JSON.stringify(e):e},"$data.GeometryPoint":function(e){return e?JSON.stringify(e):e},"$data.GeometryLineString":function(e){return e?JSON.stringify(e):e},"$data.GeometryPolygon":function(e){return e?JSON.stringify(e):e},"$data.GeometryMultiPoint":function(e){return e?JSON.stringify(e):e},"$data.GeometryMultiLineString":function(e){return e?JSON.stringify(e):e},"$data.GeometryMultiPolygon":function(e){return e?JSON.stringify(e):e},"$data.GeometryCollection":function(e){return e?JSON.stringify(e):e}}},a["default"].SqLiteFieldMapping={"$data.Byte":"INTEGER","$data.SByte":"INTEGER","$data.Decimal":"TEXT","$data.Float":"REAL","$data.Int16":"INTEGER","$data.Int64":"TEXT","$data.Integer":"INTEGER","$data.Int32":"INTEGER","$data.Number":"REAL","$data.Date":"REAL","$data.Duration":"TEXT","$data.Time":"TEXT","$data.Day":"TEXT","$data.DateTimeOffset":"REAL","$data.String":"TEXT","$data.Boolean":"INTEGER","$data.Blob":"BLOB","$data.Array":"TEXT","$data.Guid":"TEXT","$data.Object":"TEXT","$data.GeographyPoint":"TEXT","$data.GeographyLineString":"TEXT","$data.GeographyPolygon":"TEXT","$data.GeographyMultiPoint":"TEXT","$data.GeographyMultiLineString":"TEXT","$data.GeographyMultiPolygon":"TEXT","$data.GeographyCollection":"TEXT","$data.GeometryPoint":"TEXT","$data.GeometryLineString":"TEXT","$data.GeometryPolygon":"TEXT","$data.GeometryMultiPoint":"TEXT","$data.GeometryMultiLineString":"TEXT","$data.GeometryMultiPolygon":"TEXT","$data.GeometryCollection":"TEXT"}},{"jaydata/core":"jaydata/core"}],12:[function(e,t,i){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var r=e("jaydata/core"),a=n(r);a["default"].Class.define("$data.storageProviders.sqLite.SqLiteStorageProvider",a["default"].StorageProviderBase,null,{constructor:function(e,t){this.SqlCommands=[],this.context=t,this.providerConfiguration=a["default"].typeSystem.extend({databaseName:a["default"].defaults.defaultDatabaseName,version:"",displayName:"JayData default db",maxSize:1048576,dbCreation:a["default"].storageProviders.DbCreationType.DropTableIfChanged},e),this.providerName="";for(var i in a["default"].RegisteredStorageProviders)a["default"].RegisteredStorageProviders[i]===this.getType()&&(this.providerName=i);this.context&&this.context._buildDbType_generateConvertToFunction&&this.buildDbType_generateConvertToFunction&&(this.context._buildDbType_generateConvertToFunction=this.buildDbType_generateConvertToFunction),this.context&&this.context._buildDbType_modifyInstanceDefinition&&this.buildDbType_modifyInstanceDefinition&&(this.context._buildDbType_modifyInstanceDefinition=this.buildDbType_modifyInstanceDefinition)},_createSqlConnection:function(){var e={fileName:this.providerConfiguration.databaseName,version:"",displayName:this.providerConfiguration.displayName,maxSize:this.providerConfiguration.maxSize,storage:this.providerConfiguration.storage};if(this.connection)return this.connection;var t=null;return t=this.providerConfiguration.storage?new a["default"].dbClient.jayStorageClient.JayStorageConnection(e):"undefined"!=typeof sqLiteModule?new a["default"].dbClient.sqLiteNJClient.SqLiteNjConnection(e):new a["default"].dbClient.openDatabaseClient.OpenDbConnection(e),this.connection=t,t},supportedDataTypes:{value:[a["default"].Array,a["default"].Integer,a["default"].String,a["default"].Number,a["default"].Blob,a["default"].Array,a["default"].Object,a["default"].Boolean,a["default"].Date,a["default"].Guid,a["default"].GeographyPoint,a["default"].GeographyLineString,a["default"].GeographyPolygon,a["default"].GeographyMultiPoint,a["default"].GeographyMultiLineString,a["default"].GeographyMultiPolygon,a["default"].GeographyCollection,a["default"].GeometryPoint,a["default"].GeometryLineString,a["default"].GeometryPolygon,a["default"].GeometryMultiPoint,a["default"].GeometryMultiLineString,a["default"].GeometryMultiPolygon,a["default"].GeometryCollection,a["default"].Byte,a["default"].SByte,a["default"].Decimal,a["default"].Float,a["default"].Int16,a["default"].Int32,a["default"].Int64,a["default"].Time,a["default"].DateTimeOffset,a["default"].Duration,a["default"].Day],writable:!1},fieldConverter:{value:a["default"].SqLiteConverter},supportedFieldOperations:{value:{length:{dataType:"number",allowedIn:[a["default"].Expressions.FilterExpression,a["default"].Expressions.ProjectionExpression]},substr:{dataType:"string",allowedIn:a["default"].Expressions.FilterExpression,parameters:[{name:"startFrom",dataType:"number"},{name:"length",dataType:"number"}]},toLowerCase:{dataType:"string",mapTo:"lower"},toUpperCase:{dataType:"string",mapTo:"upper"},contains:{mapTo:"like",dataType:"boolean",allowedIn:a["default"].Expressions.FilterExpression,parameters:[{name:"strFragment",dataType:"string",prefix:"%",suffix:"%"}]},startsWith:{mapTo:"like",dataType:"boolean",allowedIn:[a["default"].Expressions.FilterExpression,a["default"].Expressions.ProjectionExpression],parameters:[{name:"strFragment",dataType:"string",suffix:"%"}]},endsWith:{mapTo:"like",dataType:"boolean",allowedIn:[a["default"].Expressions.FilterExpression,a["default"].Expressions.ProjectionExpression],parameters:[{name:"strFragment",dataType:"string",prefix:"%"}]},trim:{dataType:a["default"].String,allowedIn:[a["default"].Expressions.FilterExpression,a["default"].Expressions.ProjectionExpression],mapTo:"trim",parameters:[{name:"@expression",dataType:a["default"].String},{name:"chars",dataType:a["default"].String}]},ltrim:{dataType:a["default"].String,allowedIn:[a["default"].Expressions.FilterExpression,a["default"].Expressions.ProjectionExpression],mapTo:"ltrim",parameters:[{name:"@expression",dataType:a["default"].String},{name:"chars",
dataType:a["default"].String}]},rtrim:{dataType:a["default"].String,allowedIn:[a["default"].Expressions.FilterExpression,a["default"].Expressions.ProjectionExpression],mapTo:"rtrim",parameters:[{name:"@expression",dataType:a["default"].String},{name:"chars",dataType:a["default"].String}]}},enumerable:!0,writable:!0},supportedBinaryOperators:{value:{equal:{mapTo:"=",dataType:"boolean",nullMap:" is null"},notEqual:{mapTo:"!=",dataType:"boolean",nullMap:" is not null"},equalTyped:{mapTo:"=",dataType:"boolean"},notEqualTyped:{mapTo:"!=",dataType:"boolean"},greaterThan:{mapTo:">",dataType:"boolean"},greaterThanOrEqual:{mapTo:">=",dataType:"boolean"},lessThan:{mapTo:"<",dataType:"boolean"},lessThenOrEqual:{mapTo:"<=",dataType:"boolean"},or:{mapTo:"OR",dataType:"boolean"},and:{mapTo:"AND",dataType:"boolean"},add:{mapTo:"+",dataType:"number"},divide:{mapTo:"/"},multiply:{mapTo:"*"},subtract:{mapTo:"-"},modulo:{mapTo:"%"},orBitwise:{maptTo:"|"},andBitwsise:{mapTo:"&"},"in":{mapTo:"in",dataType:"boolean"}}},supportedUnaryOperators:{value:{not:{mapTo:"not"},positive:{mapTo:"+"},negative:{maptTo:"-"}}},supportedSetOperations:{value:{filter:{},map:{},length:{},forEach:{},toArray:{},single:{},take:{},skip:{},orderBy:{},orderByDescending:{},first:{},include:{}},enumerable:!0,writable:!0},supportedAutoincrementKeys:{value:{"$data.Integer":!0,"$data.Int32":!0,"$data.Guid":function(){return a["default"].createGuid()}}},initializeStore:function(e){e=a["default"].PromiseHandlerBase.createCallbackSettings(e),this.context._storageModel.forEach(function(e,t){this.SqlCommands.push(this.createSqlFromStorageModel(e)+" ")},this);var t=this._createSqlConnection(),i=t.createCommand("SELECT * FROM sqlite_master WHERE type = 'table'",null),n=this;i.executeQuery({success:function(i){for(var o={},s=0;s<i.rows.length;s++){var d=i.rows[s];o[d.tbl_name]=d}switch(n.providerConfiguration.dbCreation){case a["default"].storageProviders.DbCreationType.Merge:r.Guard.raise(new r.Exception("Not supported db creation type"));break;case a["default"].storageProviders.DbCreationType.DropTableIfChanged:for(var l=[],s=0;s<n.SqlCommands.length;s++)if(""!=n.SqlCommands[s]){var u=new RegExp("^CREATE TABLE IF NOT EXISTS ([^ ]*) (\\(.*\\))","g"),c=u.exec(n.SqlCommands[s]);if(c){var p=c[1],f=c[2];if(o[p.slice(1,p.length-1)]){var m=new RegExp("\\(.*\\)","g"),y=o[p.slice(1,p.length-1)].sql.match(m);y&&f.toLowerCase()==y[0].toLowerCase()||l.push("DROP TABLE IF EXISTS ["+o[p.slice(1,p.length-1)].tbl_name+"];")}}}n.SqlCommands=n.SqlCommands.concat(l);break;case a["default"].storageProviders.DbCreationType.DropAllExistingTables:for(var h in o)!h||h.match("^__")||h.match("^sqlite_")||n.SqlCommands.push("DROP TABLE IF EXISTS ["+o[h].tbl_name+"];")}n._runSqlCommands(t,{success:e.success,error:e.error})},error:e.error})},executeQuery:function(e,t){t=a["default"].PromiseHandlerBase.createCallbackSettings(t);var i=this._createSqlConnection(),n=this._compile(e);e.actionPack=n.actions,e.sqlConvertMetadata=n.converter,e.modelBinderConfig=n.modelBinderConfig;var r=i.createCommand(n.sqlText,n.params);r.executeQuery({success:function(i){t.success&&(e.rawDataList=i.rows,t.success(e))},error:t.error})},_compile:function(e,t){var i=new a["default"].storageProviders.sqLite.SQLiteCompiler,n=i.compile(e);return n.hasSelect=null!=i.select,n},getTraceString:function(e){var t=this._compile(e);return t},_runSqlCommands:function(e,t){if(this.SqlCommands&&this.SqlCommands.length>0){var i=this.SqlCommands.pop(),n=e.createCommand(i,null),r=this,a=function(i){r._runSqlCommands.apply(r,[e,t])};n.executeQuery({success:a,error:t.error})}else t.success(this.context)},setContext:function(e){this.context=e},saveChanges:function(e,t){var i=this._createSqlConnection(),n=this.buildIndependentBlocks(t);this.saveIndependentBlocks(t,n,i,e)},saveIndependentBlocks:function(e,t,i,n){function r(){if(0===o.length)return void n.success();var e=o.shift(),t=e.map(function(e){var t=a.context._storageModel.getStorageModel(e.data.getType()).PhysicalType;return e.physicalData=t.convertTo(e.data),e},this);try{a.saveIndependentItems(t,i,{success:function(){a.postProcessItems(t),r()},error:n.error})}catch(s){n.error(s)}}var a=this,o=[].concat(t);r()},saveIndependentItems:function(e,t,i){function n(e,t){var i={query:[],param:[]};return t.forEach(function(e,t){e&&(e.query&&(i.query[t]=e.query),e.param&&(i.param[t]=e.param))}),e.createCommand(i.query,i.param)}var r=this,a=e.map(function(e){return r.saveEntitySet(e)});if(a=a.filter(function(e){return e}),0===a.length)return void i.success(e);var o=n(t,a);o.executeQuery({success:function(a){var o=a.map(function(i,n){return i&&i.insertId?r.save_reloadSavedEntity(i.insertId,e[n].entitySet.tableName,t):null}),s=n(t,o);s.query.length>0?s.executeQuery(function(t){t.forEach(function(t,i){t&&t.rows&&(e[i].physicalData.initData=t.rows[0])}),i.success(e)}):i.success(0)},error:i.error})},postProcessItems:function(e){function t(e){var t=e.name;if(i.hasOwnProperty(t))return i[t];var n=e.memberDefinitions.getPublicMappedProperties().filter(function(e){return e.computed});return i[t]=n}var i={};e.forEach(function(e){e.physicalData&&t(e.data.getType()).forEach(function(t){e.data[t.name]=e.physicalData[t.name]},this)},this)},saveEntitySet:function(e){switch(e.data.entityState){case a["default"].EntityState.Added:return this.save_NewEntity(e);case a["default"].EntityState.Deleted:return this.save_DeleteEntity(e);case a["default"].EntityState.Modified:return this.save_UpdateEntity(e);case a["default"].EntityState.Unchanged:return;default:r.Guard.raise(new r.Exception("Not supported entity state"))}},save_DeleteEntity:function(e){for(var t="DELETE FROM ["+e.entitySet.tableName+"] WHERE(",i=!1,n=!1,a=[];!i;)e.physicalData.constructor.memberDefinitions.getPublicMappedProperties().forEach(function(o,s){if(i&&!t.match(" AND $")&&(t+=" AND "),o.key||n){t+="(["+o.name+"] == ?)";var d=e.data.getType().memberDefinitions.getMember(o.name);d&&d.converter&&d.converter[this.providerName]&&"function"==typeof d.converter[this.providerName].toDb?a.push(d.converter[this.providerName].toDb(e.data[d.name],d,this.context,d.dataType)):a.push(this.fieldConverter.toDb[r.Container.resolveName(o.dataType)](e.data[o.name])),i=!0}},this),i||(n=!0);return t.match(" AND $")&&(t=t.slice(0,t.length-5)),t+=");",{query:t,param:a}},save_UpdateEntity:function(e){var t=" SET ",i="WHERE(",n=(e.entitySet.createNew.memberDefinitions.length,!1),a=[],o=[];e.physicalData.constructor.memberDefinitions.getPublicMappedProperties().forEach(function(s,d){if(void 0!==e.physicalData[s.name])if(n&&!i.match(" AND $")&&(i+=" AND "),t.length>5&&!t.match(",$")&&(t+=","),s.key){i+="(["+s.name+"] == ?)";var l=e.data.getType().memberDefinitions.getMember(s.name);l&&l.converter&&l.converter[this.providerName]&&"function"==typeof l.converter[this.providerName].toDb?a.push(l.converter[this.providerName].toDb(e.physicalData[l.name],s,this.context,l.dataType)):a.push(this.fieldConverter.toDb[r.Container.resolveName(s.dataType)](e.physicalData[s.name])),n=!0}else{t+="["+s.name+"] = ?";var l=e.data.getType().memberDefinitions.getMember(s.name);l&&l.converter&&l.converter[this.providerName]&&"function"==typeof l.converter[this.providerName].toDb?o.push(s.converter[this.providerName].toDb(e.physicalData[l.name],l,this.context,l.dataType)):o.push(this.fieldConverter.toDb[r.Container.resolveName(s.dataType)](e.physicalData[s.name]))}},this),n||r.Guard.raise(new r.Exception("Not supported UPDATE function without primary key!")),i.match(" AND $")&&(i=i.slice(0,i.length-5)),t.match(",$")&&(t=t.slice(0,t.length-1));var s="UPDATE ["+e.entitySet.tableName+"]"+t+" "+i+");";return{query:s,param:o.concat(a)}},save_NewEntity:function(e){var t="INSERT INTO ["+e.entitySet.tableName+"](",i="",n="",o=[];return e.physicalData.constructor.memberDefinitions.getPublicMappedProperties().forEach(function(t,s){if(t.key&&!t.computed&&r.Guard.isNullOrUndefined(e.physicalData[t.name]))return void r.Guard.raise(new r.Exception("Key is not set","Value exception",e));if(t.key&&t.computed&&r.Guard.isNullOrUndefined(e.physicalData[t.name])){var d=r.Container.resolveName(t.type);"function"==typeof this.supportedAutoincrementKeys[d]&&(e.physicalData[t.name]=this.supportedAutoincrementKeys[d]())}i.length>0&&","!=i[i.length-1]&&(i+=",",n+=",");var l=t.name;if(void 0!==e.physicalData[l]&&t.dataType&&(!t.dataType.isAssignableTo||t.dataType.isAssignableTo&&!t.dataType.isAssignableTo(a["default"].EntitySet))){n+="?",i+="["+l+"]";var u=e.data.getType().memberDefinitions.getMember(t.name);u&&u.converter&&u.converter[this.providerName]&&"function"==typeof u.converter[this.providerName].toDb?o.push(u.converter[this.providerName].toDb(e.physicalData[l],u,this.context,u.dataType)):o.push(this.fieldConverter.toDb[r.Container.resolveName(t.dataType)](e.physicalData[l]))}},this),o.length<1?t="INSERT INTO ["+e.entitySet.tableName+"] Default values":(","==i[i.length-1]&&(i=i.slice(0,i.length-1)),","==n[n.length-1]&&(n=n.slice(0,n.length-1)),t+=i+") VALUES("+n+");"),{query:t,param:o}},save_reloadSavedEntity:function(e,t){return{query:"SELECT * FROM "+t+" WHERE rowid=?",param:[e]}},createSqlFromStorageModel:function(e){void 0!==e&&null!==e&&void 0!==e.PhysicalType||r.Guard.raise("StorageModel not contains physical entity definition");var t=0,i=0;e.PhysicalType.memberDefinitions.getPublicMappedProperties().forEach(function(e,n){e.key&&t++,e.computed&&i++},this),1===i&&t>1&&r.Guard.raise(new r.Exception("Do not use computed field with multiple primary key!")),i>1&&t>1&&r.Guard.raise(new r.Exception("Do not use multiple computed field!")),e.PhysicalType.memberDefinitions.getKeyProperties().forEach(function(e,t){var i=r.Container.resolveName(e.type);!e.computed||i in this.supportedAutoincrementKeys||console.log("WARRNING! '"+i+"' not supported as computed Key!")},this);var n="CREATE TABLE IF NOT EXISTS ["+e.TableName+"] (",a=",PRIMARY KEY (";return e.PhysicalType.memberDefinitions.getPublicMappedProperties().forEach(function(t,r){r>0&&!n.match(", $")&&!n.match("\\($")&&(n+=", "),n+=this.createSqlFragmentFromField(t,1===i,e),0===i&&t.key&&(a.length>14&&!a.match(", $")&&(a+=", "),a+="["+t.name+"]")},this),n.match(", $")&&(n=n.substr(0,n.length-2)),0===i&&a.length>14&&(n+=a+")"),n+=");"},createSqlFragmentFromField:function(e,t,i){if("schemaCreate"in e&&e.schemaCreate)return e.schemaCreate(e);var n=new this.FieldTypeBuilder(e,this,t,i);return n.build()},FieldTypeBuilder:function(e,t,i,n){this.fieldDef="",this.fld=e,this.provider=t,this.parsePk=i,this.entitySet=n,this.build=function(){var e=r.Container.resolveName(this.fld.dataType),t=a["default"].SqLiteFieldMapping[e];return t?this.buildFieldNameAndType(t):this.buildRelations(),this.fieldDef},this.buildFieldNameAndType=function(e){this.fieldDef="["+this.fld.name+"] "+e,this.parsePk?this.buildPrimaryKey():this.buildNotNull()},this.buildPrimaryKey=function(){if(this.fld.key){this.fieldDef+=" PRIMARY KEY";var e=r.Container.resolveName(this.fld.dataType);this.provider.supportedAutoincrementKeys[e]===!0&&this.buildAutoIncrement()}else this.buildNotNull()},this.buildNotNull=function(){this.fld.required&&(this.fieldDef+=" NOT NULL")},this.buildAutoIncrement=function(){this.fld.computed&&(this.fieldDef+=" AUTOINCREMENT")}}},{isSupported:{get:function(){return"openDatabase"in a["default"].__global},set:function(){}}}),a["default"].storageProviders.sqLite.SqLiteStorageProvider.isSupported&&(a["default"].StorageProviderBase.registerProvider("webSql",a["default"].storageProviders.sqLite.SqLiteStorageProvider),a["default"].StorageProviderBase.registerProvider("sqLite",a["default"].storageProviders.sqLite.SqLiteStorageProvider),a["default"].webSqlProvider=a["default"].storageProviders.sqLite.SqLiteStorageProvider)},{"jaydata/core":"jaydata/core"}],13:[function(e,t,i){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var r=e("jaydata/core"),a=n(r);(0,r.$C)("$data.sqLite.SqlExpressionMonitor",a["default"].Expressions.ExpressionMonitor,null,{constructor:function(e){this.VisitIncludeExpression=function(t,i){var n=this.Visit(t.source,i);e.isMapped=!0;var a=this.Visit(t.selector,i);return e.isMapped=!1,n!==t.source||a!==t.selector?r.Container.createIncludeExpression(n,a):t},this.VisitProjectionExpression=function(t,i){var n=this.Visit(t.source,i);e.isMapped=!0;var a=this.Visit(t.selector,i);if(e.isMapped=!1,n!==t.source||a!==t.selector){var o=r.Container.createProjectionExpression(n,a,t.params,t.instance);return o.projectionAs=t.projectionAs,o}return t}}})},{"jaydata/core":"jaydata/core"}],14:[function(e,t,i){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var r=e("jaydata/core"),a=n(r),o=e("./SqLiteCompiler.js");(0,r.$C)("$data.sqLite.SqlFilterCompiler",a["default"].Expressions.EntityExpressionVisitor,null,{VisitParametricQueryExpression:function(e,t){this.Visit(e.expression,t)},VisitUnaryExpression:function(e,t){t.addText(e.resolution.mapTo),t.addText(o.SqlStatementBlocks.beginGroup),this.Visit(e.operand,t),t.addText(o.SqlStatementBlocks.endGroup)},VisitSimpleBinaryExpression:function(e,t){var i=this;if("arrayIndex"==e.nodeType)this.Visit(e.left,t);else{if(t.addText(o.SqlStatementBlocks.beginGroup),e.left instanceof a["default"].Expressions.EntityFieldExpression&&e.right instanceof a["default"].Expressions.ConstantExpression&&null===e.right.value)this.Visit(e.left,t),t.addText(e.resolution.nullMap);else if(e.right instanceof a["default"].Expressions.EntityFieldExpression&&e.left instanceof a["default"].Expressions.ConstantExpression&&null===e.left.value)this.Visit(e.right,t),t.addText(e.resolution.nullMap);else if(this.Visit(e.left,t),t.addText(" "+e.resolution.mapTo+" "),"in"==e.nodeType){r.Guard.requireType("expression.right",e.right,a["default"].Expressions.ConstantExpression);var n=e.right.value;n instanceof Array?(t.addText(o.SqlStatementBlocks.beginGroup),n.forEach(function(e,n){n>0&&t.addText(o.SqlStatementBlocks.valueSeparator),i.Visit(e,t)}),t.addText(o.SqlStatementBlocks.endGroup)):n instanceof a["default"].Queryable?t.addText("(SELECT d FROM ("+n.toTraceString().sqlText+"))"):r.Guard.raise(new r.Exception("Only constant arrays and Queryables can be on the right side of 'in' operator","UnsupportedType"))}else this.Visit(e.right,t);t.addText(o.SqlStatementBlocks.endGroup)}},VisitEntitySetExpression:function(e,t){var i=t.getExpressionAlias(e);t.addText(i),t.addText(o.SqlStatementBlocks.nameSeparator)},VisitEntityFieldOperationExpression:function(e,t){r.Guard.requireType("expression.operation",e.operation,a["default"].Expressions.MemberInfoExpression);var i=e.operation.memberDefinition,n=i.mapTo||i.name;if(t.addText(n),t.addText(o.SqlStatementBlocks.beginGroup),"like"===n){var s=a["default"].sqLite.SqlBuilder.create([],t.entityContext);s.selectTextPart("fragment"),this.Visit(e.parameters[0],s);var d=s.getTextPart("fragment");d.params.forEach(function(e){var n=e,r=i.parameters[0],n=r.prefix?r.prefix+n:n;n=r.suffix?n+r.suffix:n,t.addParameter(n)}),t.addText(d.text),t.addText(" , "),this.Visit(e.source,t)}else this.Visit(e.source,t),e.parameters.forEach(function(e){t.addText(" , "),this.Visit(e,t)},this);t.addText(o.SqlStatementBlocks.endGroup)},VisitMemberInfoExpression:function(e,t){t.addText(e.memberName)},VisitQueryParameterExpression:function(e,t){var i=null;i="array"==e.type?e.value[e.index]:e.value,t.addParameter(i),t.addText(o.SqlStatementBlocks.parameter)},VisitConstantExpression:function(e,t){var i=t.entityContext.storageProvider.fieldConverter.toDb[r.Container.resolveName(r.Container.resolveType(e.type))](e.value);t.addParameter(i),t.addText(o.SqlStatementBlocks.parameter)},VisitEntityFieldExpression:function(e,t){this.Visit(e.source,t),this.Visit(e.selector,t)},VisitComplexTypeExpression:function(e,t){this.Visit(e.source,t),this.Visit(e.selector,t),t.addText("__")}})},{"./SqLiteCompiler.js":10,"jaydata/core":"jaydata/core"}],15:[function(e,t,i){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var r=e("jaydata/core"),a=n(r),o=e("./SqLiteCompiler.js");(0,r.$C)("$data.sqLite.SqlOrderCompiler",a["default"].Expressions.EntityExpressionVisitor,null,{constructor:function(e){this.provider=e},compile:function(e,t){this.Visit(e,t)},VisitEntitySetExpression:function(e,t){var i=t.getExpressionAlias(e);t.addText(i),t.addText(o.SqlStatementBlocks.nameSeparator)},VisitOrderExpression:function(e,t){this.Visit(e.selector,t),e.nodeType==a["default"].Expressions.ExpressionType.OrderByDescending?t.addText(" DESC"):t.addText(" ASC")},VisitParametricQueryExpression:function(e,t){this.Visit(e.expression,t)},VisitEntityFieldExpression:function(e,t){this.Visit(e.source,t),this.Visit(e.selector,t)},VisitMemberInfoExpression:function(e,t){t.addText(e.memberName)},VisitComplexTypeExpression:function(e,t){this.Visit(e.source,t),this.Visit(e.selector,t),t.addText("__")}})},{"./SqLiteCompiler.js":10,"jaydata/core":"jaydata/core"}],16:[function(e,t,i){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var r=e("jaydata/core"),a=n(r),o=e("./SqLiteCompiler.js");(0,r.$C)("$data.sqLite.SqlPagingCompiler",a["default"].Expressions.EntityExpressionVisitor,null,{constructor:function(e){this.provider=e},compile:function(e,t){this.Visit(e,t)},VisitPagingExpression:function(e,t){this.Visit(e.amount,t)},VisitConstantExpression:function(e,t){t.addParameter(e.value),t.addText(o.SqlStatementBlocks.parameter)}})},{"./SqLiteCompiler.js":10