stream-chat-react-native-core 5.0.0-offline-support.11 → 5.0.0-offline-support.12

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.
Files changed (40) hide show
  1. package/lib/commonjs/index.js +0 -2
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
  4. package/lib/commonjs/store/QuickSqliteClient.js +8 -0
  5. package/lib/commonjs/store/QuickSqliteClient.js.map +1 -1
  6. package/lib/commonjs/store/sqlite-utils/appendWhereCluase.js.map +1 -1
  7. package/lib/commonjs/store/sqlite-utils/createDeleteQuery.js.map +1 -1
  8. package/lib/commonjs/store/sqlite-utils/createSelectQuery.js.map +1 -1
  9. package/lib/commonjs/store/sqlite-utils/createUpdateQuery.js.map +1 -1
  10. package/lib/commonjs/store/sqlite-utils/printRow.js.map +1 -1
  11. package/lib/commonjs/version.json +1 -1
  12. package/lib/module/index.js +0 -2
  13. package/lib/module/index.js.map +1 -1
  14. package/lib/module/mock-builders/DB/mock.js.map +1 -1
  15. package/lib/module/store/QuickSqliteClient.js +8 -0
  16. package/lib/module/store/QuickSqliteClient.js.map +1 -1
  17. package/lib/module/store/sqlite-utils/appendWhereCluase.js.map +1 -1
  18. package/lib/module/store/sqlite-utils/createDeleteQuery.js.map +1 -1
  19. package/lib/module/store/sqlite-utils/createSelectQuery.js.map +1 -1
  20. package/lib/module/store/sqlite-utils/createUpdateQuery.js.map +1 -1
  21. package/lib/module/store/sqlite-utils/printRow.js.map +1 -1
  22. package/lib/module/version.json +1 -1
  23. package/lib/typescript/index.d.ts +0 -1
  24. package/lib/typescript/store/sqlite-utils/appendWhereCluase.d.ts +2 -2
  25. package/lib/typescript/store/sqlite-utils/createDeleteQuery.d.ts +2 -2
  26. package/lib/typescript/store/sqlite-utils/createSelectQuery.d.ts +2 -2
  27. package/lib/typescript/store/sqlite-utils/createUpdateQuery.d.ts +2 -2
  28. package/lib/typescript/store/types.d.ts +1 -0
  29. package/package.json +1 -1
  30. package/src/__tests__/offline-feature.test.js +0 -2
  31. package/src/index.ts +0 -2
  32. package/src/mock-builders/DB/mock.ts +1 -3
  33. package/src/store/QuickSqliteClient.ts +20 -0
  34. package/src/store/sqlite-utils/appendWhereCluase.ts +4 -4
  35. package/src/store/sqlite-utils/createDeleteQuery.ts +2 -2
  36. package/src/store/sqlite-utils/createSelectQuery.ts +2 -2
  37. package/src/store/sqlite-utils/createUpdateQuery.ts +3 -3
  38. package/src/store/sqlite-utils/printRow.ts +2 -0
  39. package/src/store/types.ts +1 -0
  40. package/src/version.json +1 -1
@@ -90,8 +90,6 @@ Object.defineProperty(exports, "version", {
90
90
  }
91
91
  });
92
92
 
93
- require("react-native-quick-sqlite");
94
-
95
93
  var _components = require("./components");
96
94
 
97
95
  Object.keys(_components).forEach(function (key) {
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA","sourcesContent":["import 'react-native-quick-sqlite';\n\nexport * from './components';\nexport * from './hooks';\nexport { registerNativeHandlers, NetInfo } from './native';\nexport * from './contexts';\nexport * from './emoji-data/compiled';\n\nexport * from './icons';\n\nexport * from './types/types';\n\nexport * from './utils/Streami18n';\nexport * from './utils/utils';\n\nexport { default as enTranslations } from './i18n/en.json';\nexport { default as frTranslations } from './i18n/fr.json';\nexport { default as hiTranslations } from './i18n/hi.json';\nexport { default as itTranslations } from './i18n/it.json';\nexport { default as nlTranslations } from './i18n/nl.json';\nexport { default as ruTranslations } from './i18n/ru.json';\nexport { default as trTranslations } from './i18n/tr.json';\nexport { default as heTranslations } from './i18n/he.json';\n\nexport { QuickSqliteClient } from './store/QuickSqliteClient';\nexport { version } from './version.json';\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA","sourcesContent":["export * from './components';\nexport * from './hooks';\nexport { registerNativeHandlers, NetInfo } from './native';\nexport * from './contexts';\nexport * from './emoji-data/compiled';\n\nexport * from './icons';\n\nexport * from './types/types';\n\nexport * from './utils/Streami18n';\nexport * from './utils/utils';\n\nexport { default as enTranslations } from './i18n/en.json';\nexport { default as frTranslations } from './i18n/fr.json';\nexport { default as hiTranslations } from './i18n/hi.json';\nexport { default as itTranslations } from './i18n/it.json';\nexport { default as nlTranslations } from './i18n/nl.json';\nexport { default as ruTranslations } from './i18n/ru.json';\nexport { default as trTranslations } from './i18n/tr.json';\nexport { default as heTranslations } from './i18n/he.json';\n\nexport { QuickSqliteClient } from './store/QuickSqliteClient';\nexport { version } from './version.json';\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["mock.ts"],"names":["db","sqliteMock","close","message","status","executeSql","dbName","queryInput","params","query","trim","toLowerCase","stmt","prepare","result","indexOf","modifiedParams","map","p","Number","all","rows","_array","pragmaQueryTokens","split","pragma","run","executeSqlBatch","queriesArr","forEach","queryAndParams","staus","open","Database","initializeDBMocking","global","sqlite","resetDBMocking","undefined"],"mappings":";;;;;;;AAAA;;AAMO,IAAIA,EAAJ;;AAEA,IAAMC,UAAU,GAAG;AACxBC,EAAAA,KAAK,EAAE,iBAAM;AACXF,IAAAA,EAAE,CAACE,KAAH;AACA,WAAO;AACLC,MAAAA,OAAO,EAAE,EADJ;AAELC,MAAAA,MAAM,EAAE;AAFH,KAAP;AAID,GAPuB;AAQxBC,EAAAA,UAAU,EAAE,oBAACC,MAAD,EAAiBC,UAAjB,EAAqCC,MAArC,EAAuD;AACjE,QAAMC,KAAK,GAAGF,UAAU,CAACG,IAAX,GAAkBC,WAAlB,EAAd;AACA,QAAMC,IAAI,GAAGZ,EAAE,CAACa,OAAH,CAAWJ,KAAX,CAAb;AACA,QAAIK,MAAM,GAAG,EAAb;;AAEA,QAAIL,KAAK,CAACM,OAAN,CAAc,QAAd,MAA4B,CAAhC,EAAmC;AACjC,UAAIP,MAAJ,EAAY;AACV,YAAMQ,cAAc,GAAGR,MAAM,CAACS,GAAP,CAAW,UAACC,CAAD,EAAO;AACvC,cAAI,OAAOA,CAAP,IAAY,SAAhB,EAA2B;AACzB,mBAAOC,MAAM,CAACD,CAAD,CAAb;AACD,WAFD,MAEO;AACL,mBAAOA,CAAP;AACD;AACF,SANsB,CAAvB;AAOAJ,QAAAA,MAAM,GAAGF,IAAI,CAACQ,GAAL,CAASJ,cAAT,CAAT;AACD,OATD,MASO;AACLF,QAAAA,MAAM,GAAGF,IAAI,CAACQ,GAAL,EAAT;AACD;;AAED,aAAO;AACLjB,QAAAA,OAAO,EAAE,EADJ;AAELkB,QAAAA,IAAI,EAAE;AACJC,UAAAA,MAAM,EAAER;AADJ,SAFD;AAKLV,QAAAA,MAAM,EAAE;AALH,OAAP;AAOD;;AAED,QAAIK,KAAK,CAACM,OAAN,CAAc,QAAd,MAA4B,CAAhC,EAAmC;AACjC,UAAMQ,iBAAiB,GAAGd,KAAK,CAACe,KAAN,CAAY,GAAZ,CAA1B;;AACA,UAAID,iBAAiB,CAAC,CAAD,CAAjB,KAAyB,GAA7B,EAAkC;AAChCvB,QAAAA,EAAE,CAACyB,MAAH,CAAaF,iBAAiB,CAAC,CAAD,CAA9B,WAAuCA,iBAAiB,CAAC,CAAD,CAAxD;AACD,OAFD,MAEO;AACLT,QAAAA,MAAM,GAAGd,EAAE,CAACyB,MAAH,MAAaF,iBAAiB,CAAC,CAAD,CAA9B,CAAT;AACD;;AAED,aAAO;AACLpB,QAAAA,OAAO,EAAE,EADJ;AAELkB,QAAAA,IAAI,EAAE;AACJC,UAAAA,MAAM,EAAER;AADJ,SAFD;AAKLV,QAAAA,MAAM,EAAE;AALH,OAAP;AAOD;;AAGD,QAAII,MAAJ,EAAY;AACVI,MAAAA,IAAI,CAACc,GAAL,CAASlB,MAAT;AACD,KAFD,MAEO;AACLI,MAAAA,IAAI,CAACc,GAAL;AACD;;AAED,WAAO;AACLvB,MAAAA,OAAO,EAAE,EADJ;AAELkB,MAAAA,IAAI,EAAE;AACJC,QAAAA,MAAM,EAAER;AADJ,OAFD;AAKLV,MAAAA,MAAM,EAAE;AALH,KAAP;AAOD,GAnEuB;AAoExBuB,EAAAA,eAAe,EAAE,yBAACrB,MAAD,EAAiBsB,UAAjB,EAAmD;AAClEA,IAAAA,UAAU,CAACC,OAAX,CAAmB,UAACC,cAAD,EAAoB;AACrC,UAAMrB,KAAK,GAAGqB,cAAc,CAAC,CAAD,CAA5B;AACA,UAAMtB,MAAM,GAAGsB,cAAc,CAAC,CAAD,CAA7B;AACA,UAAMlB,IAAI,GAAGZ,EAAE,CAACa,OAAH,CAAWJ,KAAX,CAAb;;AACA,UAAID,MAAJ,EAAY;AACV,YAAMQ,cAAc,GAAGR,MAAM,CAACS,GAAP,CAAW,UAACC,CAAD,EAAO;AACvC,cAAI,OAAOA,CAAP,IAAY,SAAhB,EAA2B;AACzB,mBAAOC,MAAM,CAACD,CAAD,CAAb;AACD,WAFD,MAEO;AACL,mBAAOA,CAAP;AACD;AACF,SANsB,CAAvB;AAQAN,QAAAA,IAAI,CAACc,GAAL,CAASV,cAAT;AACD,OAVD,MAUO;AACLJ,QAAAA,IAAI,CAACc,GAAL;AACD;AACF,KAjBD;AAmBA,WAAO;AACLvB,MAAAA,OAAO,EAAE,EADJ;AAEL4B,MAAAA,KAAK,EAAE;AAFF,KAAP;AAID,GA5FuB;AA6FxBC,EAAAA,IAAI,EAAE,gBAAM;AACV,iBAAAhC,EAAE,GAAG,IAAIiC,wBAAJ,CAAa,WAAb,CAAL;AACA,WAAO;AACL9B,MAAAA,OAAO,EAAE,EADJ;AAELC,MAAAA,MAAM,EAAE;AAFH,KAAP;AAID;AAnGuB,CAAnB;;;AAsGA,IAAM8B,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AACvCC,EAAAA,MAAM,CAACC,MAAP,GAAgBnC,UAAhB;AACD,CAFM;;;;AAGA,IAAMoC,cAAc,GAAG,SAAjBA,cAAiB;AAAA,SAAOF,MAAM,CAACC,MAAP,GAAgBE,SAAvB;AAAA,CAAvB","sourcesContent":["import Database from 'better-sqlite3';\n\nimport { SUCCESSFUL_QUERY_RESULT } from './consts';\n\nimport type { PreparedQueries } from '../../store/types';\n\nexport let db: Database;\n\nexport const sqliteMock = {\n close: () => {\n db.close();\n return {\n message: '',\n status: 0,\n };\n },\n executeSql: (dbName: string, queryInput: string, params: any[]) => {\n const query = queryInput.trim().toLowerCase();\n const stmt = db.prepare(query);\n let result = [];\n\n if (query.indexOf('select') === 0) {\n if (params) {\n const modifiedParams = params.map((p) => {\n if (typeof p == 'boolean') {\n return Number(p);\n } else {\n return p;\n }\n });\n result = stmt.all(modifiedParams);\n } else {\n result = stmt.all();\n }\n\n return {\n message: '',\n rows: {\n _array: result,\n },\n status: 0,\n };\n }\n\n if (query.indexOf('pragma') === 0) {\n const pragmaQueryTokens = query.split(' ');\n if (pragmaQueryTokens[2] === '=') {\n db.pragma(`${pragmaQueryTokens[1]} = ${pragmaQueryTokens[3]}`);\n } else {\n result = db.pragma(`${pragmaQueryTokens[1]}`);\n }\n\n return {\n message: '',\n rows: {\n _array: result,\n },\n status: 0,\n };\n }\n\n // insert or create table query\n if (params) {\n stmt.run(params);\n } else {\n stmt.run();\n }\n\n return {\n message: '',\n rows: {\n _array: result,\n },\n status: 0,\n };\n },\n executeSqlBatch: (dbName: string, queriesArr: PreparedQueries[]) => {\n queriesArr.forEach((queryAndParams) => {\n const query = queryAndParams[0];\n const params = queryAndParams[1];\n const stmt = db.prepare(query);\n if (params) {\n const modifiedParams = params.map((p) => {\n if (typeof p == 'boolean') {\n return Number(p);\n } else {\n return p;\n }\n });\n\n stmt.run(modifiedParams);\n } else {\n stmt.run();\n }\n });\n\n return {\n message: '',\n staus: 0,\n };\n },\n open: () => {\n db = new Database('foobar.db');\n return {\n message: '',\n status: 0,\n };\n },\n};\n\nexport const initializeDBMocking = () => {\n global.sqlite = sqliteMock;\n};\nexport const resetDBMocking = () => (global.sqlite = undefined);\n"]}
1
+ {"version":3,"sources":["mock.ts"],"names":["db","sqliteMock","close","message","status","executeSql","dbName","queryInput","params","query","trim","toLowerCase","stmt","prepare","result","indexOf","modifiedParams","map","p","Number","all","rows","_array","pragmaQueryTokens","split","pragma","run","executeSqlBatch","queriesArr","forEach","queryAndParams","staus","open","Database","initializeDBMocking","global","sqlite","resetDBMocking","undefined"],"mappings":"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","sourcesContent":["import Database from 'better-sqlite3';\n\nimport type { PreparedQueries } from '../../store/types';\n\nexport let db: Database;\n\nexport const sqliteMock = {\n close: () => {\n db.close();\n return {\n message: '',\n status: 0,\n };\n },\n executeSql: (dbName: string, queryInput: string, params: unknown[]) => {\n const query = queryInput.trim().toLowerCase();\n const stmt = db.prepare(query);\n let result = [];\n\n if (query.indexOf('select') === 0) {\n if (params) {\n const modifiedParams = params.map((p) => {\n if (typeof p == 'boolean') {\n return Number(p);\n } else {\n return p;\n }\n });\n result = stmt.all(modifiedParams);\n } else {\n result = stmt.all();\n }\n\n return {\n message: '',\n rows: {\n _array: result,\n },\n status: 0,\n };\n }\n\n if (query.indexOf('pragma') === 0) {\n const pragmaQueryTokens = query.split(' ');\n if (pragmaQueryTokens[2] === '=') {\n db.pragma(`${pragmaQueryTokens[1]} = ${pragmaQueryTokens[3]}`);\n } else {\n result = db.pragma(`${pragmaQueryTokens[1]}`);\n }\n\n return {\n message: '',\n rows: {\n _array: result,\n },\n status: 0,\n };\n }\n\n // insert or create table query\n if (params) {\n stmt.run(params);\n } else {\n stmt.run();\n }\n\n return {\n message: '',\n rows: {\n _array: result,\n },\n status: 0,\n };\n },\n executeSqlBatch: (dbName: string, queriesArr: PreparedQueries[]) => {\n queriesArr.forEach((queryAndParams) => {\n const query = queryAndParams[0];\n const params = queryAndParams[1];\n const stmt = db.prepare(query);\n if (params) {\n const modifiedParams = params.map((p) => {\n if (typeof p == 'boolean') {\n return Number(p);\n } else {\n return p;\n }\n });\n\n stmt.run(modifiedParams);\n } else {\n stmt.run();\n }\n });\n\n return {\n message: '',\n staus: 0,\n };\n },\n open: () => {\n db = new Database('foobar.db');\n return {\n message: '',\n status: 0,\n };\n },\n};\n\nexport const initializeDBMocking = () => {\n global.sqlite = sqliteMock;\n};\nexport const resetDBMocking = () => (global.sqlite = undefined);\n"]}
@@ -17,6 +17,10 @@ var _schema = require("./schema");
17
17
 
18
18
  var _createCreateTableQuery = require("./sqlite-utils/createCreateTableQuery");
19
19
 
20
+ try {
21
+ require('react-native-quick-sqlite');
22
+ } catch (e) {}
23
+
20
24
  var QuickSqliteClient = (0, _createClass2["default"])(function QuickSqliteClient() {
21
25
  (0, _classCallCheck2["default"])(this, QuickSqliteClient);
22
26
  });
@@ -103,6 +107,10 @@ QuickSqliteClient.deleteDatabase = function () {
103
107
  };
104
108
 
105
109
  QuickSqliteClient.initializeDatabase = function () {
110
+ if (window.sqlite === undefined) {
111
+ throw new Error('Please install "react-native-quick-sqlite" package to enable offline support');
112
+ }
113
+
106
114
  var version = QuickSqliteClient.getUserPragmaVersion();
107
115
 
108
116
  if (version !== QuickSqliteClient.dbVersion) {
@@ -1 +1 @@
1
- {"version":3,"sources":["QuickSqliteClient.ts"],"names":["QuickSqliteClient","dbVersion","dbName","DB_NAME","dbLocation","DB_LOCATION","getDbVersion","setDbVersion","version","openDB","sqlite","open","message","status","executeSql","DB_STATUS_ERROR","console","error","closeDB","executeSqlBatch","queries","res","JSON","stringify","query","params","rows","_array","dropTables","Object","keys","tables","map","table","deleteDatabase","Error","initializeDatabase","getUserPragmaVersion","updateUserPragmaVersion","q","reduce","queriesSoFar","tableName","push","result","user_version","resetDB"],"mappings":"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","sourcesContent":["/* eslint-disable no-underscore-dangle */\nimport { DB_LOCATION, DB_NAME, DB_STATUS_ERROR } from './constants';\nimport { tables } from './schema';\nimport { createCreateTableQuery } from './sqlite-utils/createCreateTableQuery';\nimport type { PreparedQueries, Table } from './types';\n\nexport class QuickSqliteClient {\n static dbVersion = 0;\n\n static dbName = DB_NAME;\n static dbLocation = DB_LOCATION;\n\n static getDbVersion = () => this.dbVersion;\n static setDbVersion = (version: number) => (this.dbVersion = version);\n\n static openDB = () => {\n const { message, status } = sqlite.open(this.dbName, this.dbLocation);\n sqlite.executeSql(this.dbName, `PRAGMA foreign_keys = ON`, []);\n\n if (status === DB_STATUS_ERROR) {\n console.error(`Error opening database ${this.dbName}: ${message}`);\n }\n };\n\n static closeDB = () => {\n const { message, status } = sqlite.open(this.dbName, this.dbLocation);\n\n if (status === DB_STATUS_ERROR) {\n console.error(`Error opening database ${this.dbName}: ${message}`);\n }\n };\n\n static executeSqlBatch = (queries: PreparedQueries[]) => {\n this.openDB();\n\n const res = sqlite.executeSqlBatch(DB_NAME, queries);\n\n if (res.status === 1) {\n console.error(`Query/queries failed: ${res.message} ${JSON.stringify(res)}`);\n }\n\n this.closeDB();\n };\n\n static executeSql = (query: string, params?: string[]) => {\n this.openDB();\n\n const { message, rows, status } = sqlite.executeSql(DB_NAME, query, params);\n\n this.closeDB();\n\n if (status === 1) {\n console.error(`Query/queries failed: ${message}: `, query);\n }\n\n return rows ? rows._array : [];\n };\n\n static dropTables = () => {\n const queries: PreparedQueries[] = Object.keys(tables).map((table) => [\n `DROP TABLE IF EXISTS ${table}`,\n [],\n ]);\n\n this.executeSqlBatch(queries);\n };\n\n static deleteDatabase = () => {\n const { message, status } = sqlite.delete(this.dbName, this.dbLocation);\n if (status === DB_STATUS_ERROR) {\n throw new Error(`Error deleting DB: ${message}`);\n }\n\n return true;\n };\n\n static initializeDatabase = () => {\n const version = this.getUserPragmaVersion();\n if (version !== this.dbVersion) {\n this.dropTables();\n this.updateUserPragmaVersion(this.dbVersion);\n }\n const q = (Object.keys(tables) as Table[]).reduce<PreparedQueries[]>(\n (queriesSoFar, tableName) => {\n queriesSoFar.push(...createCreateTableQuery(tableName));\n return queriesSoFar;\n },\n [],\n );\n\n this.executeSqlBatch(q);\n };\n\n static updateUserPragmaVersion = (version: number) => {\n this.openDB();\n\n sqlite.executeSql(DB_NAME, `PRAGMA user_version = ${version}`, []);\n\n this.closeDB();\n };\n\n static getUserPragmaVersion = () => {\n this.openDB();\n\n const { message, rows, status } = sqlite.executeSql(DB_NAME, `PRAGMA user_version`, []);\n\n this.closeDB();\n if (status === 1) {\n console.error(`Querying for user_version failed: ${message}`);\n }\n\n const result = rows ? rows._array : [];\n return result[0].user_version as number;\n };\n\n static resetDB = () => {\n this.dropTables();\n this.initializeDatabase();\n };\n}\n"]}
1
+ {"version":3,"sources":["QuickSqliteClient.ts"],"names":["require","e","QuickSqliteClient","dbVersion","dbName","DB_NAME","dbLocation","DB_LOCATION","getDbVersion","setDbVersion","version","openDB","sqlite","open","message","status","executeSql","DB_STATUS_ERROR","console","error","closeDB","executeSqlBatch","queries","res","JSON","stringify","query","params","rows","_array","dropTables","Object","keys","tables","map","table","deleteDatabase","Error","initializeDatabase","window","undefined","getUserPragmaVersion","updateUserPragmaVersion","q","reduce","queriesSoFar","tableName","push","result","user_version","resetDB"],"mappings":"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","sourcesContent":["/* eslint-disable no-underscore-dangle */\n// Importing following package just to avoid errors using sqlite global.\n// @ts-ignore\n// eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\nimport types from 'react-native-quick-sqlite';\n\ntry {\n require('react-native-quick-sqlite');\n} catch (e) {\n // Failed for one of the reason\n // 1. Running on expo, where we don't support offline storage yet.\n // 2. Offline support is disabled, in which case this library is not installed.\n}\n\nimport { DB_LOCATION, DB_NAME, DB_STATUS_ERROR } from './constants';\nimport { tables } from './schema';\nimport { createCreateTableQuery } from './sqlite-utils/createCreateTableQuery';\nimport type { PreparedQueries, Table } from './types';\n\nexport class QuickSqliteClient {\n static dbVersion = 0;\n\n static dbName = DB_NAME;\n static dbLocation = DB_LOCATION;\n\n static getDbVersion = () => this.dbVersion;\n static setDbVersion = (version: number) => (this.dbVersion = version);\n\n static openDB = () => {\n const { message, status } = sqlite.open(this.dbName, this.dbLocation);\n sqlite.executeSql(this.dbName, `PRAGMA foreign_keys = ON`, []);\n\n if (status === DB_STATUS_ERROR) {\n console.error(`Error opening database ${this.dbName}: ${message}`);\n }\n };\n\n static closeDB = () => {\n const { message, status } = sqlite.open(this.dbName, this.dbLocation);\n\n if (status === DB_STATUS_ERROR) {\n console.error(`Error opening database ${this.dbName}: ${message}`);\n }\n };\n\n static executeSqlBatch = (queries: PreparedQueries[]) => {\n this.openDB();\n\n const res = sqlite.executeSqlBatch(DB_NAME, queries);\n\n if (res.status === 1) {\n console.error(`Query/queries failed: ${res.message} ${JSON.stringify(res)}`);\n }\n\n this.closeDB();\n };\n\n static executeSql = (query: string, params?: string[]) => {\n this.openDB();\n\n const { message, rows, status } = sqlite.executeSql(DB_NAME, query, params);\n\n this.closeDB();\n\n if (status === 1) {\n console.error(`Query/queries failed: ${message}: `, query);\n }\n\n return rows ? rows._array : [];\n };\n\n static dropTables = () => {\n const queries: PreparedQueries[] = Object.keys(tables).map((table) => [\n `DROP TABLE IF EXISTS ${table}`,\n [],\n ]);\n\n this.executeSqlBatch(queries);\n };\n\n static deleteDatabase = () => {\n const { message, status } = sqlite.delete(this.dbName, this.dbLocation);\n if (status === DB_STATUS_ERROR) {\n throw new Error(`Error deleting DB: ${message}`);\n }\n\n return true;\n };\n\n static initializeDatabase = () => {\n // @ts-ignore\n if (window.sqlite === undefined) {\n throw new Error(\n 'Please install \"react-native-quick-sqlite\" package to enable offline support',\n );\n }\n\n const version = this.getUserPragmaVersion();\n if (version !== this.dbVersion) {\n this.dropTables();\n this.updateUserPragmaVersion(this.dbVersion);\n }\n const q = (Object.keys(tables) as Table[]).reduce<PreparedQueries[]>(\n (queriesSoFar, tableName) => {\n queriesSoFar.push(...createCreateTableQuery(tableName));\n return queriesSoFar;\n },\n [],\n );\n\n this.executeSqlBatch(q);\n };\n\n static updateUserPragmaVersion = (version: number) => {\n this.openDB();\n\n sqlite.executeSql(DB_NAME, `PRAGMA user_version = ${version}`, []);\n\n this.closeDB();\n };\n\n static getUserPragmaVersion = () => {\n this.openDB();\n\n const { message, rows, status } = sqlite.executeSql(DB_NAME, `PRAGMA user_version`, []);\n\n this.closeDB();\n if (status === 1) {\n console.error(`Querying for user_version failed: ${message}`);\n }\n\n const result = rows ? rows._array : [];\n return result[0].user_version as number;\n };\n\n static resetDB = () => {\n this.dropTables();\n this.initializeDatabase();\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["appendWhereCluase.ts"],"names":["appendWhereClause","selectQuery","whereCondition","whereClause","whereParams","key","value","undefined","Array","isArray","length","questionMarks","Object","keys","fill","join","push"],"mappings":";;;;;;;;;AAGO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,WAD+B,EAE/BC,cAF+B,EAGX;AACpB,MAAI,CAACA,cAAL,EAAqB,OAAO,CAACD,WAAD,EAAc,EAAd,CAAP;AAErB,MAAME,WAAW,GAAG,EAApB;AACA,MAAMC,WAAkB,GAAG,EAA3B;;AAEA,OAAK,IAAMC,GAAX,IAAkBH,cAAlB,EAAkC;AAChC,QAAMI,KAAc,GAAGJ,cAAc,CAACG,GAAD,CAArC;AACA,QAAIC,KAAK,KAAKC,SAAd,EAAyB;;AAEzB,QAAIC,KAAK,CAACC,OAAN,CAAcH,KAAd,CAAJ,EAA0B;AACxB,UAAIA,KAAK,CAACI,MAAN,KAAiB,CAArB,EAAwB;AACxB,UAAMC,aAAa,GAAGH,KAAK,CAACI,MAAM,CAACC,IAAP,CAAYP,KAAZ,EAAmBI,MAApB,CAAL,CAAiCI,IAAjC,CAAsC,GAAtC,EAA2CC,IAA3C,CAAgD,GAAhD,CAAtB;AACAZ,MAAAA,WAAW,CAACa,IAAZ,CAAoBX,GAApB,aAA+BM,aAA/B;AACAP,MAAAA,WAAW,CAACY,IAAZ,OAAAZ,WAAW,sCAASE,KAAT,EAAX;AACD,KALD,MAKO;AACLH,MAAAA,WAAW,CAACa,IAAZ,CAAoBX,GAApB;AACAD,MAAAA,WAAW,CAACY,IAAZ,CAAiBV,KAAjB;AACD;AACF;;AAED,MAAI,CAACF,WAAW,CAACM,MAAjB,EAAyB;AACvB,WAAO,CAACT,WAAD,EAAc,EAAd,CAAP;AACD;;AAED,SAAO,CAAIA,WAAJ,eAAyBE,WAAW,CAACY,IAAZ,CAAiB,OAAjB,CAAzB,EAAsDX,WAAtD,CAAP;AACD,CA7BM","sourcesContent":["import type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames } from '../types';\n\nexport const appendWhereClause = <T extends keyof Schema>(\n selectQuery: string,\n whereCondition?: Partial<{ [k in TableColumnNames<T>]: any }>,\n): PreparedQueries => {\n if (!whereCondition) return [selectQuery, []];\n\n const whereClause = [];\n const whereParams: any[] = [];\n\n for (const key in whereCondition) {\n const value: unknown = whereCondition[key];\n if (value === undefined) continue;\n\n if (Array.isArray(value)) {\n if (value.length === 0) continue;\n const questionMarks = Array(Object.keys(value).length).fill('?').join(',');\n whereClause.push(`${key} in (${questionMarks})`);\n whereParams.push(...value);\n } else {\n whereClause.push(`${key} = ?`);\n whereParams.push(value);\n }\n }\n\n if (!whereParams.length) {\n return [selectQuery, []];\n }\n\n return [`${selectQuery} WHERE ${whereClause.join(' AND ')}`, whereParams];\n};\n"]}
1
+ {"version":3,"sources":["appendWhereCluase.ts"],"names":["appendWhereClause","selectQuery","whereCondition","whereClause","whereParams","key","value","undefined","Array","isArray","length","questionMarks","Object","keys","fill","join","push"],"mappings":";;;;;;;;;AAGO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,WAD+B,EAE/BC,cAF+B,EAGX;AACpB,MAAI,CAACA,cAAL,EAAqB,OAAO,CAACD,WAAD,EAAc,EAAd,CAAP;AAErB,MAAME,WAAW,GAAG,EAApB;AACA,MAAMC,WAA+B,GAAG,EAAxC;;AAEA,OAAK,IAAMC,GAAX,IAAkBH,cAAlB,EAAkC;AAChC,QAAMI,KAAK,GAAGJ,cAAc,CAACG,GAAD,CAA5B;AACA,QAAIC,KAAK,KAAKC,SAAd,EAAyB;;AAEzB,QAAIC,KAAK,CAACC,OAAN,CAAcH,KAAd,CAAJ,EAA0B;AACxB,UAAIA,KAAK,CAACI,MAAN,KAAiB,CAArB,EAAwB;AACxB,UAAMC,aAAa,GAAGH,KAAK,CAACI,MAAM,CAACC,IAAP,CAAYP,KAAZ,EAAmBI,MAApB,CAAL,CAAiCI,IAAjC,CAAsC,GAAtC,EAA2CC,IAA3C,CAAgD,GAAhD,CAAtB;AACAZ,MAAAA,WAAW,CAACa,IAAZ,CAAoBX,GAApB,aAA+BM,aAA/B;AACAP,MAAAA,WAAW,CAACY,IAAZ,OAAAZ,WAAW,sCAASE,KAAT,EAAX;AACD,KALD,MAKO;AACLH,MAAAA,WAAW,CAACa,IAAZ,CAAoBX,GAApB;AACAD,MAAAA,WAAW,CAACY,IAAZ,CAAiBV,KAAjB;AACD;AACF;;AAED,MAAI,CAACF,WAAW,CAACM,MAAjB,EAAyB;AACvB,WAAO,CAACT,WAAD,EAAc,EAAd,CAAP;AACD;;AAED,SAAO,CAAIA,WAAJ,eAAyBE,WAAW,CAACY,IAAZ,CAAiB,OAAjB,CAAzB,EAAsDX,WAAtD,CAAP;AACD,CA7BM","sourcesContent":["import type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';\n\nexport const appendWhereClause = <T extends keyof Schema>(\n selectQuery: string,\n whereCondition?: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n if (!whereCondition) return [selectQuery, []];\n\n const whereClause = [];\n const whereParams: TableColumnValue[] = [];\n\n for (const key in whereCondition) {\n const value = whereCondition[key];\n if (value === undefined) continue;\n\n if (Array.isArray(value)) {\n if (value.length === 0) continue;\n const questionMarks = Array(Object.keys(value).length).fill('?').join(',');\n whereClause.push(`${key} in (${questionMarks})`);\n whereParams.push(...value);\n } else {\n whereClause.push(`${key} = ?`);\n whereParams.push(value);\n }\n }\n\n if (!whereParams.length) {\n return [selectQuery, []];\n }\n\n return [`${selectQuery} WHERE ${whereClause.join(' AND ')}`, whereParams];\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["createDeleteQuery.ts"],"names":["createDeleteQuery","table","whereCondition","deleteQuery"],"mappings":";;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,cAF+B,EAGX;AACpB,MAAMC,WAAW,oBAAkBF,KAAnC;AAEA,SAAO,0CAAkBE,WAAlB,EAA+BD,cAA/B,CAAP;AACD,CAPM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames } from '../types';\n\n/**\n * Creates a simple delete query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final select query\n */\n\nexport const createDeleteQuery = <T extends keyof Schema>(\n table: T,\n whereCondition: Partial<{ [k in TableColumnNames<T>]: any }>,\n): PreparedQueries => {\n const deleteQuery = `DELETE FROM ${table}`;\n\n return appendWhereClause(deleteQuery, whereCondition);\n};\n"]}
1
+ {"version":3,"sources":["createDeleteQuery.ts"],"names":["createDeleteQuery","table","whereCondition","deleteQuery"],"mappings":";;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,cAF+B,EAGX;AACpB,MAAMC,WAAW,oBAAkBF,KAAnC;AAEA,SAAO,0CAAkBE,WAAlB,EAA+BD,cAA/B,CAAP;AACD,CAPM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';\n\n/**\n * Creates a simple delete query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final select query\n */\n\nexport const createDeleteQuery = <T extends keyof Schema>(\n table: T,\n whereCondition: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n const deleteQuery = `DELETE FROM ${table}`;\n\n return appendWhereClause(deleteQuery, whereCondition);\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["createSelectQuery.ts"],"names":["createSelectQuery","table","fields","whereCondition","selectQuery","join","selectQueryWithWhere","whereParams"],"mappings":";;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAIX;AAAA,MAFpBC,MAEoB,uEAF8B,CAAC,GAAD,CAE9B;AAAA,MADpBC,cACoB;AACpB,MAAMC,WAAW,eAAaF,MAAM,CAACG,IAAP,CAAY,IAAZ,CAAb,cAAuCJ,KAAxD;;AACA,2BAA4C,0CAAkBG,WAAlB,EAA+BD,cAA/B,CAA5C;AAAA;AAAA,MAAOG,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,MAAID,oBAAJ,EAA4BC,WAAW,IAAI,EAA3C,CAAP;AACD,CATM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames } from '../types';\n\n/**\n * Creates a simple select query for sqlite.\n *\n * @param {string} table Table name\n * @param {Array} fields Array of columns which need to be selected e.g., ['*'] or ['id', 'name']\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final select query\n */\nexport const createSelectQuery = <T extends keyof Schema>(\n table: T,\n fields: Array<'*'> | Array<TableColumnNames<T>> = ['*'],\n whereCondition?: Partial<{ [k in TableColumnNames<T>]: any }>,\n): PreparedQueries => {\n const selectQuery = `SELECT ${fields.join(', ')} FROM ${table}`;\n const [selectQueryWithWhere, whereParams] = appendWhereClause(selectQuery, whereCondition);\n\n return [`${selectQueryWithWhere}`, whereParams || []];\n};\n"]}
1
+ {"version":3,"sources":["createSelectQuery.ts"],"names":["createSelectQuery","table","fields","whereCondition","selectQuery","join","selectQueryWithWhere","whereParams"],"mappings":";;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAIX;AAAA,MAFpBC,MAEoB,uEAF8B,CAAC,GAAD,CAE9B;AAAA,MADpBC,cACoB;AACpB,MAAMC,WAAW,eAAaF,MAAM,CAACG,IAAP,CAAY,IAAZ,CAAb,cAAuCJ,KAAxD;;AACA,2BAA4C,0CAAkBG,WAAlB,EAA+BD,cAA/B,CAA5C;AAAA;AAAA,MAAOG,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,MAAID,oBAAJ,EAA4BC,WAAW,IAAI,EAA3C,CAAP;AACD,CATM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';\n\n/**\n * Creates a simple select query for sqlite.\n *\n * @param {string} table Table name\n * @param {Array} fields Array of columns which need to be selected e.g., ['*'] or ['id', 'name']\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final select query\n */\nexport const createSelectQuery = <T extends keyof Schema>(\n table: T,\n fields: Array<'*'> | Array<TableColumnNames<T>> = ['*'],\n whereCondition?: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n const selectQuery = `SELECT ${fields.join(', ')} FROM ${table}`;\n const [selectQueryWithWhere, whereParams] = appendWhereClause(selectQuery, whereCondition);\n\n return [`${selectQueryWithWhere}`, whereParams || []];\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["createUpdateQuery.ts"],"names":["createUpdateQuery","table","set","whereCondition","fields","Object","keys","map","key","updateQuery","join","updateQueryWithWhere","whereParams","values"],"mappings":";;;;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,GAF+B,EAG/BC,cAH+B,EAIX;AACpB,MAAMC,MAAM,GAAGC,MAAM,CAACC,IAAP,CAAYJ,GAAZ,EAAiBK,GAAjB,CAAqB,UAACC,GAAD;AAAA,WAAYA,GAAZ;AAAA,GAArB,CAAf;AACA,MAAMC,WAAW,eAAaR,KAAb,aAA0BG,MAAM,CAACM,IAAP,CAAY,GAAZ,CAA3C;;AAEA,2BAA4C,0CAAkBD,WAAlB,EAA+BN,cAA/B,CAA5C;AAAA;AAAA,MAAOQ,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,CAACD,oBAAD,gDAA2BN,MAAM,CAACQ,MAAP,CAAcX,GAAd,CAA3B,uCAAmDU,WAAW,IAAI,EAAlE,GAAP;AACD,CAXM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames } from '../types';\n\n/**\n * Creates a simple update query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} set Set conditions for update query.\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final update query for sqlite\n */\nexport const createUpdateQuery = <T extends keyof Schema>(\n table: T,\n set: Partial<{ [k in TableColumnNames<T>]: any }>,\n whereCondition: Partial<{ [k in TableColumnNames<T>]: any }>,\n): PreparedQueries => {\n const fields = Object.keys(set).map((key) => `${key} = ?`);\n const updateQuery = `UPDATE ${table} SET ${fields.join(',')}`;\n\n const [updateQueryWithWhere, whereParams] = appendWhereClause(updateQuery, whereCondition);\n\n return [updateQueryWithWhere, [...Object.values(set), ...(whereParams || [])]];\n};\n"]}
1
+ {"version":3,"sources":["createUpdateQuery.ts"],"names":["createUpdateQuery","table","set","whereCondition","fields","Object","keys","map","key","updateQuery","join","updateQueryWithWhere","whereParams","values"],"mappings":";;;;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,GAF+B,EAG/BC,cAH+B,EAIX;AACpB,MAAMC,MAAM,GAAGC,MAAM,CAACC,IAAP,CAAYJ,GAAZ,EAAiBK,GAAjB,CAAqB,UAACC,GAAD;AAAA,WAAYA,GAAZ;AAAA,GAArB,CAAf;AACA,MAAMC,WAAW,eAAaR,KAAb,aAA0BG,MAAM,CAACM,IAAP,CAAY,GAAZ,CAA3C;;AAEA,2BAA4C,0CAAkBD,WAAlB,EAA+BN,cAA/B,CAA5C;AAAA;AAAA,MAAOQ,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,CAACD,oBAAD,gDAA2BN,MAAM,CAACQ,MAAP,CAAcX,GAAd,CAA3B,uCAAmDU,WAAW,IAAI,EAAlE,GAAP;AACD,CAXM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue, TableRow } from '../types';\n\n/**\n * Creates a simple update query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} set Set conditions for update query.\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final update query for sqlite\n */\nexport const createUpdateQuery = <T extends keyof Schema>(\n table: T,\n set: Partial<TableRow<T>>,\n whereCondition: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n const fields = Object.keys(set).map((key) => `${key} = ?`);\n const updateQuery = `UPDATE ${table} SET ${fields.join(',')}`;\n\n const [updateQueryWithWhere, whereParams] = appendWhereClause(updateQuery, whereCondition);\n\n return [updateQueryWithWhere, [...Object.values(set), ...(whereParams || [])]];\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["printRow.ts"],"names":["printRow","row","prettyRow","key","value","JSON","parse","e","console","log","stringify"],"mappings":";;;;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAACC,GAAD,EAAwB;AAC9C,MAAMC,SAA8B,GAAG,EAAvC;;AACA,OAAK,IAAMC,GAAX,IAAkBF,GAAlB,EAAuB;AAErB,QAAMG,KAAK,GAAGH,GAAG,CAACE,GAAD,CAAjB;;AAEA,QAAI;AACFD,MAAAA,SAAS,CAACC,GAAD,CAAT,GAAiBE,IAAI,CAACC,KAAL,CAAWF,KAAX,CAAjB;AACD,KAFD,CAEE,OAAOG,CAAP,EAAU;AACVL,MAAAA,SAAS,CAACC,GAAD,CAAT,GAAiBC,KAAjB;AACD;AACF;;AAEDI,EAAAA,OAAO,CAACC,GAAR,CAAYJ,IAAI,CAACK,SAAL,CAAeR,SAAf,EAA0B,IAA1B,EAAgC,CAAhC,CAAZ;AACD,CAdM","sourcesContent":["import type { TableRow } from '../types';\n\nexport const printRow = (row: TableRow<any>) => {\n const prettyRow: Record<string, any> = {};\n for (const key in row) {\n // @ts-ignore\n const value = row[key];\n\n try {\n prettyRow[key] = JSON.parse(value);\n } catch (e) {\n prettyRow[key] = value;\n }\n }\n\n console.log(JSON.stringify(prettyRow, null, 2));\n};\n"]}
1
+ {"version":3,"sources":["printRow.ts"],"names":["printRow","row","prettyRow","key","value","JSON","parse","e","console","log","stringify"],"mappings":";;;;;AAGO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAACC,GAAD,EAAwB;AAE9C,MAAMC,SAA8B,GAAG,EAAvC;;AACA,OAAK,IAAMC,GAAX,IAAkBF,GAAlB,EAAuB;AAErB,QAAMG,KAAK,GAAGH,GAAG,CAACE,GAAD,CAAjB;;AAEA,QAAI;AACFD,MAAAA,SAAS,CAACC,GAAD,CAAT,GAAiBE,IAAI,CAACC,KAAL,CAAWF,KAAX,CAAjB;AACD,KAFD,CAEE,OAAOG,CAAP,EAAU;AACVL,MAAAA,SAAS,CAACC,GAAD,CAAT,GAAiBC,KAAjB;AACD;AACF;;AAEDI,EAAAA,OAAO,CAACC,GAAR,CAAYJ,IAAI,CAACK,SAAL,CAAeR,SAAf,EAA0B,IAA1B,EAAgC,CAAhC,CAAZ;AACD,CAfM","sourcesContent":["import type { TableRow } from '../types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const printRow = (row: TableRow<any>) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const prettyRow: Record<string, any> = {};\n for (const key in row) {\n // @ts-ignore\n const value = row[key];\n\n try {\n prettyRow[key] = JSON.parse(value);\n } catch (e) {\n prettyRow[key] = value;\n }\n }\n\n console.log(JSON.stringify(prettyRow, null, 2));\n};\n"]}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.0.0-offline-support.11"
2
+ "version": "5.0.0-offline-support.12"
3
3
  }
@@ -90,8 +90,6 @@ Object.defineProperty(exports, "version", {
90
90
  }
91
91
  });
92
92
 
93
- require("react-native-quick-sqlite");
94
-
95
93
  var _components = require("./components");
96
94
 
97
95
  Object.keys(_components).forEach(function (key) {
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA","sourcesContent":["import 'react-native-quick-sqlite';\n\nexport * from './components';\nexport * from './hooks';\nexport { registerNativeHandlers, NetInfo } from './native';\nexport * from './contexts';\nexport * from './emoji-data/compiled';\n\nexport * from './icons';\n\nexport * from './types/types';\n\nexport * from './utils/Streami18n';\nexport * from './utils/utils';\n\nexport { default as enTranslations } from './i18n/en.json';\nexport { default as frTranslations } from './i18n/fr.json';\nexport { default as hiTranslations } from './i18n/hi.json';\nexport { default as itTranslations } from './i18n/it.json';\nexport { default as nlTranslations } from './i18n/nl.json';\nexport { default as ruTranslations } from './i18n/ru.json';\nexport { default as trTranslations } from './i18n/tr.json';\nexport { default as heTranslations } from './i18n/he.json';\n\nexport { QuickSqliteClient } from './store/QuickSqliteClient';\nexport { version } from './version.json';\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA","sourcesContent":["export * from './components';\nexport * from './hooks';\nexport { registerNativeHandlers, NetInfo } from './native';\nexport * from './contexts';\nexport * from './emoji-data/compiled';\n\nexport * from './icons';\n\nexport * from './types/types';\n\nexport * from './utils/Streami18n';\nexport * from './utils/utils';\n\nexport { default as enTranslations } from './i18n/en.json';\nexport { default as frTranslations } from './i18n/fr.json';\nexport { default as hiTranslations } from './i18n/hi.json';\nexport { default as itTranslations } from './i18n/it.json';\nexport { default as nlTranslations } from './i18n/nl.json';\nexport { default as ruTranslations } from './i18n/ru.json';\nexport { default as trTranslations } from './i18n/tr.json';\nexport { default as heTranslations } from './i18n/he.json';\n\nexport { QuickSqliteClient } from './store/QuickSqliteClient';\nexport { version } from './version.json';\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["mock.ts"],"names":["db","sqliteMock","close","message","status","executeSql","dbName","queryInput","params","query","trim","toLowerCase","stmt","prepare","result","indexOf","modifiedParams","map","p","Number","all","rows","_array","pragmaQueryTokens","split","pragma","run","executeSqlBatch","queriesArr","forEach","queryAndParams","staus","open","Database","initializeDBMocking","global","sqlite","resetDBMocking","undefined"],"mappings":"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","sourcesContent":["import Database from 'better-sqlite3';\n\nimport { SUCCESSFUL_QUERY_RESULT } from './consts';\n\nimport type { PreparedQueries } from '../../store/types';\n\nexport let db: Database;\n\nexport const sqliteMock = {\n close: () => {\n db.close();\n return {\n message: '',\n status: 0,\n };\n },\n executeSql: (dbName: string, queryInput: string, params: any[]) => {\n const query = queryInput.trim().toLowerCase();\n const stmt = db.prepare(query);\n let result = [];\n\n if (query.indexOf('select') === 0) {\n if (params) {\n const modifiedParams = params.map((p) => {\n if (typeof p == 'boolean') {\n return Number(p);\n } else {\n return p;\n }\n });\n result = stmt.all(modifiedParams);\n } else {\n result = stmt.all();\n }\n\n return {\n message: '',\n rows: {\n _array: result,\n },\n status: 0,\n };\n }\n\n if (query.indexOf('pragma') === 0) {\n const pragmaQueryTokens = query.split(' ');\n if (pragmaQueryTokens[2] === '=') {\n db.pragma(`${pragmaQueryTokens[1]} = ${pragmaQueryTokens[3]}`);\n } else {\n result = db.pragma(`${pragmaQueryTokens[1]}`);\n }\n\n return {\n message: '',\n rows: {\n _array: result,\n },\n status: 0,\n };\n }\n\n // insert or create table query\n if (params) {\n stmt.run(params);\n } else {\n stmt.run();\n }\n\n return {\n message: '',\n rows: {\n _array: result,\n },\n status: 0,\n };\n },\n executeSqlBatch: (dbName: string, queriesArr: PreparedQueries[]) => {\n queriesArr.forEach((queryAndParams) => {\n const query = queryAndParams[0];\n const params = queryAndParams[1];\n const stmt = db.prepare(query);\n if (params) {\n const modifiedParams = params.map((p) => {\n if (typeof p == 'boolean') {\n return Number(p);\n } else {\n return p;\n }\n });\n\n stmt.run(modifiedParams);\n } else {\n stmt.run();\n }\n });\n\n return {\n message: '',\n staus: 0,\n };\n },\n open: () => {\n db = new Database('foobar.db');\n return {\n message: '',\n status: 0,\n };\n },\n};\n\nexport const initializeDBMocking = () => {\n global.sqlite = sqliteMock;\n};\nexport const resetDBMocking = () => (global.sqlite = undefined);\n"]}
1
+ {"version":3,"sources":["mock.ts"],"names":["db","sqliteMock","close","message","status","executeSql","dbName","queryInput","params","query","trim","toLowerCase","stmt","prepare","result","indexOf","modifiedParams","map","p","Number","all","rows","_array","pragmaQueryTokens","split","pragma","run","executeSqlBatch","queriesArr","forEach","queryAndParams","staus","open","Database","initializeDBMocking","global","sqlite","resetDBMocking","undefined"],"mappings":"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","sourcesContent":["import Database from 'better-sqlite3';\n\nimport type { PreparedQueries } from '../../store/types';\n\nexport let db: Database;\n\nexport const sqliteMock = {\n close: () => {\n db.close();\n return {\n message: '',\n status: 0,\n };\n },\n executeSql: (dbName: string, queryInput: string, params: unknown[]) => {\n const query = queryInput.trim().toLowerCase();\n const stmt = db.prepare(query);\n let result = [];\n\n if (query.indexOf('select') === 0) {\n if (params) {\n const modifiedParams = params.map((p) => {\n if (typeof p == 'boolean') {\n return Number(p);\n } else {\n return p;\n }\n });\n result = stmt.all(modifiedParams);\n } else {\n result = stmt.all();\n }\n\n return {\n message: '',\n rows: {\n _array: result,\n },\n status: 0,\n };\n }\n\n if (query.indexOf('pragma') === 0) {\n const pragmaQueryTokens = query.split(' ');\n if (pragmaQueryTokens[2] === '=') {\n db.pragma(`${pragmaQueryTokens[1]} = ${pragmaQueryTokens[3]}`);\n } else {\n result = db.pragma(`${pragmaQueryTokens[1]}`);\n }\n\n return {\n message: '',\n rows: {\n _array: result,\n },\n status: 0,\n };\n }\n\n // insert or create table query\n if (params) {\n stmt.run(params);\n } else {\n stmt.run();\n }\n\n return {\n message: '',\n rows: {\n _array: result,\n },\n status: 0,\n };\n },\n executeSqlBatch: (dbName: string, queriesArr: PreparedQueries[]) => {\n queriesArr.forEach((queryAndParams) => {\n const query = queryAndParams[0];\n const params = queryAndParams[1];\n const stmt = db.prepare(query);\n if (params) {\n const modifiedParams = params.map((p) => {\n if (typeof p == 'boolean') {\n return Number(p);\n } else {\n return p;\n }\n });\n\n stmt.run(modifiedParams);\n } else {\n stmt.run();\n }\n });\n\n return {\n message: '',\n staus: 0,\n };\n },\n open: () => {\n db = new Database('foobar.db');\n return {\n message: '',\n status: 0,\n };\n },\n};\n\nexport const initializeDBMocking = () => {\n global.sqlite = sqliteMock;\n};\nexport const resetDBMocking = () => (global.sqlite = undefined);\n"]}
@@ -17,6 +17,10 @@ var _schema = require("./schema");
17
17
 
18
18
  var _createCreateTableQuery = require("./sqlite-utils/createCreateTableQuery");
19
19
 
20
+ try {
21
+ require('react-native-quick-sqlite');
22
+ } catch (e) {}
23
+
20
24
  var QuickSqliteClient = (0, _createClass2["default"])(function QuickSqliteClient() {
21
25
  (0, _classCallCheck2["default"])(this, QuickSqliteClient);
22
26
  });
@@ -103,6 +107,10 @@ QuickSqliteClient.deleteDatabase = function () {
103
107
  };
104
108
 
105
109
  QuickSqliteClient.initializeDatabase = function () {
110
+ if (window.sqlite === undefined) {
111
+ throw new Error('Please install "react-native-quick-sqlite" package to enable offline support');
112
+ }
113
+
106
114
  var version = QuickSqliteClient.getUserPragmaVersion();
107
115
 
108
116
  if (version !== QuickSqliteClient.dbVersion) {
@@ -1 +1 @@
1
- {"version":3,"sources":["QuickSqliteClient.ts"],"names":["QuickSqliteClient","dbVersion","dbName","DB_NAME","dbLocation","DB_LOCATION","getDbVersion","setDbVersion","version","openDB","sqlite","open","message","status","executeSql","DB_STATUS_ERROR","console","error","closeDB","executeSqlBatch","queries","res","JSON","stringify","query","params","rows","_array","dropTables","Object","keys","tables","map","table","deleteDatabase","Error","initializeDatabase","getUserPragmaVersion","updateUserPragmaVersion","q","reduce","queriesSoFar","tableName","push","result","user_version","resetDB"],"mappings":"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","sourcesContent":["/* eslint-disable no-underscore-dangle */\nimport { DB_LOCATION, DB_NAME, DB_STATUS_ERROR } from './constants';\nimport { tables } from './schema';\nimport { createCreateTableQuery } from './sqlite-utils/createCreateTableQuery';\nimport type { PreparedQueries, Table } from './types';\n\nexport class QuickSqliteClient {\n static dbVersion = 0;\n\n static dbName = DB_NAME;\n static dbLocation = DB_LOCATION;\n\n static getDbVersion = () => this.dbVersion;\n static setDbVersion = (version: number) => (this.dbVersion = version);\n\n static openDB = () => {\n const { message, status } = sqlite.open(this.dbName, this.dbLocation);\n sqlite.executeSql(this.dbName, `PRAGMA foreign_keys = ON`, []);\n\n if (status === DB_STATUS_ERROR) {\n console.error(`Error opening database ${this.dbName}: ${message}`);\n }\n };\n\n static closeDB = () => {\n const { message, status } = sqlite.open(this.dbName, this.dbLocation);\n\n if (status === DB_STATUS_ERROR) {\n console.error(`Error opening database ${this.dbName}: ${message}`);\n }\n };\n\n static executeSqlBatch = (queries: PreparedQueries[]) => {\n this.openDB();\n\n const res = sqlite.executeSqlBatch(DB_NAME, queries);\n\n if (res.status === 1) {\n console.error(`Query/queries failed: ${res.message} ${JSON.stringify(res)}`);\n }\n\n this.closeDB();\n };\n\n static executeSql = (query: string, params?: string[]) => {\n this.openDB();\n\n const { message, rows, status } = sqlite.executeSql(DB_NAME, query, params);\n\n this.closeDB();\n\n if (status === 1) {\n console.error(`Query/queries failed: ${message}: `, query);\n }\n\n return rows ? rows._array : [];\n };\n\n static dropTables = () => {\n const queries: PreparedQueries[] = Object.keys(tables).map((table) => [\n `DROP TABLE IF EXISTS ${table}`,\n [],\n ]);\n\n this.executeSqlBatch(queries);\n };\n\n static deleteDatabase = () => {\n const { message, status } = sqlite.delete(this.dbName, this.dbLocation);\n if (status === DB_STATUS_ERROR) {\n throw new Error(`Error deleting DB: ${message}`);\n }\n\n return true;\n };\n\n static initializeDatabase = () => {\n const version = this.getUserPragmaVersion();\n if (version !== this.dbVersion) {\n this.dropTables();\n this.updateUserPragmaVersion(this.dbVersion);\n }\n const q = (Object.keys(tables) as Table[]).reduce<PreparedQueries[]>(\n (queriesSoFar, tableName) => {\n queriesSoFar.push(...createCreateTableQuery(tableName));\n return queriesSoFar;\n },\n [],\n );\n\n this.executeSqlBatch(q);\n };\n\n static updateUserPragmaVersion = (version: number) => {\n this.openDB();\n\n sqlite.executeSql(DB_NAME, `PRAGMA user_version = ${version}`, []);\n\n this.closeDB();\n };\n\n static getUserPragmaVersion = () => {\n this.openDB();\n\n const { message, rows, status } = sqlite.executeSql(DB_NAME, `PRAGMA user_version`, []);\n\n this.closeDB();\n if (status === 1) {\n console.error(`Querying for user_version failed: ${message}`);\n }\n\n const result = rows ? rows._array : [];\n return result[0].user_version as number;\n };\n\n static resetDB = () => {\n this.dropTables();\n this.initializeDatabase();\n };\n}\n"]}
1
+ {"version":3,"sources":["QuickSqliteClient.ts"],"names":["require","e","QuickSqliteClient","dbVersion","dbName","DB_NAME","dbLocation","DB_LOCATION","getDbVersion","setDbVersion","version","openDB","sqlite","open","message","status","executeSql","DB_STATUS_ERROR","console","error","closeDB","executeSqlBatch","queries","res","JSON","stringify","query","params","rows","_array","dropTables","Object","keys","tables","map","table","deleteDatabase","Error","initializeDatabase","window","undefined","getUserPragmaVersion","updateUserPragmaVersion","q","reduce","queriesSoFar","tableName","push","result","user_version","resetDB"],"mappings":";;;;;;;;;;;;;AAcA;;AACA;;AACA;;AAVA,IAAI;AACFA,EAAAA,OAAO,CAAC,2BAAD,CAAP;AACD,CAFD,CAEE,OAAOC,CAAP,EAAU,CAIX;;IAOYC,iB;;;;AAAAA,iB,CACJC,S,GAAY,C;AADRD,iB,CAGJE,M,GAASC,kB;AAHLH,iB,CAIJI,U,GAAaC,sB;;AAJTL,iB,CAMJM,Y,GAAe;AAAA,SANXN,iBAMiB,CAAKC,SAAX;AAAA,C;;AANXD,iB,CAOJO,Y,GAAe,UAACC,OAAD;AAAA,SAPXR,iBAOiC,CAAKC,SAAL,GAAiBO,OAAvC;AAAA,C;;AAPXR,iB,CASJS,M,GAAS,YAAM;AACpB,qBAA4BC,MAAM,CAACC,IAAP,CAVnBX,iBAU+B,CAAKE,MAAjB,EAVnBF,iBAU4C,CAAKI,UAA9B,CAA5B;AAAA,MAAQQ,OAAR,gBAAQA,OAAR;AAAA,MAAiBC,MAAjB,gBAAiBA,MAAjB;;AACAH,EAAAA,MAAM,CAACI,UAAP,CAXSd,iBAWS,CAAKE,MAAvB,8BAA2D,EAA3D;;AAEA,MAAIW,MAAM,KAAKE,0BAAf,EAAgC;AAC9BC,IAAAA,OAAO,CAACC,KAAR,6BAdOjB,iBAciC,CAAKE,MAA7C,UAAwDU,OAAxD;AACD;AACF,C;;AAhBUZ,iB,CAkBJkB,O,GAAU,YAAM;AACrB,sBAA4BR,MAAM,CAACC,IAAP,CAnBnBX,iBAmB+B,CAAKE,MAAjB,EAnBnBF,iBAmB4C,CAAKI,UAA9B,CAA5B;AAAA,MAAQQ,OAAR,iBAAQA,OAAR;AAAA,MAAiBC,MAAjB,iBAAiBA,MAAjB;;AAEA,MAAIA,MAAM,KAAKE,0BAAf,EAAgC;AAC9BC,IAAAA,OAAO,CAACC,KAAR,6BAtBOjB,iBAsBiC,CAAKE,MAA7C,UAAwDU,OAAxD;AACD;AACF,C;;AAxBUZ,iB,CA0BJmB,e,GAAkB,UAACC,OAAD,EAAgC;AA1B9CpB,EAAAA,iBA2BT,CAAKS,MAAL;AAEA,MAAMY,GAAG,GAAGX,MAAM,CAACS,eAAP,CAAuBhB,kBAAvB,EAAgCiB,OAAhC,CAAZ;;AAEA,MAAIC,GAAG,CAACR,MAAJ,KAAe,CAAnB,EAAsB;AACpBG,IAAAA,OAAO,CAACC,KAAR,4BAAuCI,GAAG,CAACT,OAA3C,SAAsDU,IAAI,CAACC,SAAL,CAAeF,GAAf,CAAtD;AACD;;AAjCQrB,EAAAA,iBAmCT,CAAKkB,OAAL;AACD,C;;AApCUlB,iB,CAsCJc,U,GAAa,UAACU,KAAD,EAAgBC,MAAhB,EAAsC;AAtC/CzB,EAAAA,iBAuCT,CAAKS,MAAL;;AAEA,2BAAkCC,MAAM,CAACI,UAAP,CAAkBX,kBAAlB,EAA2BqB,KAA3B,EAAkCC,MAAlC,CAAlC;AAAA,MAAQb,OAAR,sBAAQA,OAAR;AAAA,MAAiBc,IAAjB,sBAAiBA,IAAjB;AAAA,MAAuBb,MAAvB,sBAAuBA,MAAvB;;AAzCSb,EAAAA,iBA2CT,CAAKkB,OAAL;;AAEA,MAAIL,MAAM,KAAK,CAAf,EAAkB;AAChBG,IAAAA,OAAO,CAACC,KAAR,4BAAuCL,OAAvC,SAAoDY,KAApD;AACD;;AAED,SAAOE,IAAI,GAAGA,IAAI,CAACC,MAAR,GAAiB,EAA5B;AACD,C;;AAlDU3B,iB,CAoDJ4B,U,GAAa,YAAM;AACxB,MAAMR,OAA0B,GAAGS,MAAM,CAACC,IAAP,CAAYC,cAAZ,EAAoBC,GAApB,CAAwB,UAACC,KAAD;AAAA,WAAW,2BAC5CA,KAD4C,EAEpE,EAFoE,CAAX;AAAA,GAAxB,CAAnC;AArDSjC,EAAAA,iBA0DT,CAAKmB,eAAL,CAAqBC,OAArB;AACD,C;;AA3DUpB,iB,CA6DJkC,c,GAAiB,YAAM;AAC5B,uBAA4BxB,MAAM,UAAN,CA9DnBV,iBA8DiC,CAAKE,MAAnB,EA9DnBF,iBA8D8C,CAAKI,UAAhC,CAA5B;AAAA,MAAQQ,OAAR,kBAAQA,OAAR;AAAA,MAAiBC,MAAjB,kBAAiBA,MAAjB;;AACA,MAAIA,MAAM,KAAKE,0BAAf,EAAgC;AAC9B,UAAM,IAAIoB,KAAJ,yBAAgCvB,OAAhC,CAAN;AACD;;AAED,SAAO,IAAP;AACD,C;;AApEUZ,iB,CAsEJoC,kB,GAAqB,YAAM;AAEhC,MAAIC,MAAM,CAAC3B,MAAP,KAAkB4B,SAAtB,EAAiC;AAC/B,UAAM,IAAIH,KAAJ,CACJ,8EADI,CAAN;AAGD;;AAED,MAAM3B,OAAO,GA9EJR,iBA8EO,CAAKuC,oBAAL,EAAhB;;AACA,MAAI/B,OAAO,KA/EFR,iBA+EO,CAAKC,SAArB,EAAgC;AA/EvBD,IAAAA,iBAgFP,CAAK4B,UAAL;AAhFO5B,IAAAA,iBAiFP,CAAKwC,uBAAL,CAjFOxC,iBAiFsB,CAAKC,SAAlC;AACD;;AACD,MAAMwC,CAAC,GAAIZ,MAAM,CAACC,IAAP,CAAYC,cAAZ,CAAD,CAAiCW,MAAjC,CACR,UAACC,YAAD,EAAeC,SAAf,EAA6B;AAC3BD,IAAAA,YAAY,CAACE,IAAb,OAAAF,YAAY,sCAAS,oDAAuBC,SAAvB,CAAT,EAAZ;AACA,WAAOD,YAAP;AACD,GAJO,EAKR,EALQ,CAAV;AAnFS3C,EAAAA,iBA2FT,CAAKmB,eAAL,CAAqBsB,CAArB;AACD,C;;AA5FUzC,iB,CA8FJwC,uB,GAA0B,UAAChC,OAAD,EAAqB;AA9F3CR,EAAAA,iBA+FT,CAAKS,MAAL;AAEAC,EAAAA,MAAM,CAACI,UAAP,CAAkBX,kBAAlB,6BAAoDK,OAApD,EAA+D,EAA/D;AAjGSR,EAAAA,iBAmGT,CAAKkB,OAAL;AACD,C;;AApGUlB,iB,CAsGJuC,oB,GAAuB,YAAM;AAtGzBvC,EAAAA,iBAuGT,CAAKS,MAAL;;AAEA,4BAAkCC,MAAM,CAACI,UAAP,CAAkBX,kBAAlB,yBAAkD,EAAlD,CAAlC;AAAA,MAAQS,OAAR,uBAAQA,OAAR;AAAA,MAAiBc,IAAjB,uBAAiBA,IAAjB;AAAA,MAAuBb,MAAvB,uBAAuBA,MAAvB;;AAzGSb,EAAAA,iBA2GT,CAAKkB,OAAL;;AACA,MAAIL,MAAM,KAAK,CAAf,EAAkB;AAChBG,IAAAA,OAAO,CAACC,KAAR,wCAAmDL,OAAnD;AACD;;AAED,MAAMkC,MAAM,GAAGpB,IAAI,GAAGA,IAAI,CAACC,MAAR,GAAiB,EAApC;AACA,SAAOmB,MAAM,CAAC,CAAD,CAAN,CAAUC,YAAjB;AACD,C;;AAlHU/C,iB,CAoHJgD,O,GAAU,YAAM;AApHZhD,EAAAA,iBAqHT,CAAK4B,UAAL;AArHS5B,EAAAA,iBAsHT,CAAKoC,kBAAL;AACD,C","sourcesContent":["/* eslint-disable no-underscore-dangle */\n// Importing following package just to avoid errors using sqlite global.\n// @ts-ignore\n// eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\nimport types from 'react-native-quick-sqlite';\n\ntry {\n require('react-native-quick-sqlite');\n} catch (e) {\n // Failed for one of the reason\n // 1. Running on expo, where we don't support offline storage yet.\n // 2. Offline support is disabled, in which case this library is not installed.\n}\n\nimport { DB_LOCATION, DB_NAME, DB_STATUS_ERROR } from './constants';\nimport { tables } from './schema';\nimport { createCreateTableQuery } from './sqlite-utils/createCreateTableQuery';\nimport type { PreparedQueries, Table } from './types';\n\nexport class QuickSqliteClient {\n static dbVersion = 0;\n\n static dbName = DB_NAME;\n static dbLocation = DB_LOCATION;\n\n static getDbVersion = () => this.dbVersion;\n static setDbVersion = (version: number) => (this.dbVersion = version);\n\n static openDB = () => {\n const { message, status } = sqlite.open(this.dbName, this.dbLocation);\n sqlite.executeSql(this.dbName, `PRAGMA foreign_keys = ON`, []);\n\n if (status === DB_STATUS_ERROR) {\n console.error(`Error opening database ${this.dbName}: ${message}`);\n }\n };\n\n static closeDB = () => {\n const { message, status } = sqlite.open(this.dbName, this.dbLocation);\n\n if (status === DB_STATUS_ERROR) {\n console.error(`Error opening database ${this.dbName}: ${message}`);\n }\n };\n\n static executeSqlBatch = (queries: PreparedQueries[]) => {\n this.openDB();\n\n const res = sqlite.executeSqlBatch(DB_NAME, queries);\n\n if (res.status === 1) {\n console.error(`Query/queries failed: ${res.message} ${JSON.stringify(res)}`);\n }\n\n this.closeDB();\n };\n\n static executeSql = (query: string, params?: string[]) => {\n this.openDB();\n\n const { message, rows, status } = sqlite.executeSql(DB_NAME, query, params);\n\n this.closeDB();\n\n if (status === 1) {\n console.error(`Query/queries failed: ${message}: `, query);\n }\n\n return rows ? rows._array : [];\n };\n\n static dropTables = () => {\n const queries: PreparedQueries[] = Object.keys(tables).map((table) => [\n `DROP TABLE IF EXISTS ${table}`,\n [],\n ]);\n\n this.executeSqlBatch(queries);\n };\n\n static deleteDatabase = () => {\n const { message, status } = sqlite.delete(this.dbName, this.dbLocation);\n if (status === DB_STATUS_ERROR) {\n throw new Error(`Error deleting DB: ${message}`);\n }\n\n return true;\n };\n\n static initializeDatabase = () => {\n // @ts-ignore\n if (window.sqlite === undefined) {\n throw new Error(\n 'Please install \"react-native-quick-sqlite\" package to enable offline support',\n );\n }\n\n const version = this.getUserPragmaVersion();\n if (version !== this.dbVersion) {\n this.dropTables();\n this.updateUserPragmaVersion(this.dbVersion);\n }\n const q = (Object.keys(tables) as Table[]).reduce<PreparedQueries[]>(\n (queriesSoFar, tableName) => {\n queriesSoFar.push(...createCreateTableQuery(tableName));\n return queriesSoFar;\n },\n [],\n );\n\n this.executeSqlBatch(q);\n };\n\n static updateUserPragmaVersion = (version: number) => {\n this.openDB();\n\n sqlite.executeSql(DB_NAME, `PRAGMA user_version = ${version}`, []);\n\n this.closeDB();\n };\n\n static getUserPragmaVersion = () => {\n this.openDB();\n\n const { message, rows, status } = sqlite.executeSql(DB_NAME, `PRAGMA user_version`, []);\n\n this.closeDB();\n if (status === 1) {\n console.error(`Querying for user_version failed: ${message}`);\n }\n\n const result = rows ? rows._array : [];\n return result[0].user_version as number;\n };\n\n static resetDB = () => {\n this.dropTables();\n this.initializeDatabase();\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["appendWhereCluase.ts"],"names":["appendWhereClause","selectQuery","whereCondition","whereClause","whereParams","key","value","undefined","Array","isArray","length","questionMarks","Object","keys","fill","join","push"],"mappings":";;;;;;;;;AAGO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,WAD+B,EAE/BC,cAF+B,EAGX;AACpB,MAAI,CAACA,cAAL,EAAqB,OAAO,CAACD,WAAD,EAAc,EAAd,CAAP;AAErB,MAAME,WAAW,GAAG,EAApB;AACA,MAAMC,WAAkB,GAAG,EAA3B;;AAEA,OAAK,IAAMC,GAAX,IAAkBH,cAAlB,EAAkC;AAChC,QAAMI,KAAc,GAAGJ,cAAc,CAACG,GAAD,CAArC;AACA,QAAIC,KAAK,KAAKC,SAAd,EAAyB;;AAEzB,QAAIC,KAAK,CAACC,OAAN,CAAcH,KAAd,CAAJ,EAA0B;AACxB,UAAIA,KAAK,CAACI,MAAN,KAAiB,CAArB,EAAwB;AACxB,UAAMC,aAAa,GAAGH,KAAK,CAACI,MAAM,CAACC,IAAP,CAAYP,KAAZ,EAAmBI,MAApB,CAAL,CAAiCI,IAAjC,CAAsC,GAAtC,EAA2CC,IAA3C,CAAgD,GAAhD,CAAtB;AACAZ,MAAAA,WAAW,CAACa,IAAZ,CAAoBX,GAApB,aAA+BM,aAA/B;AACAP,MAAAA,WAAW,CAACY,IAAZ,OAAAZ,WAAW,sCAASE,KAAT,EAAX;AACD,KALD,MAKO;AACLH,MAAAA,WAAW,CAACa,IAAZ,CAAoBX,GAApB;AACAD,MAAAA,WAAW,CAACY,IAAZ,CAAiBV,KAAjB;AACD;AACF;;AAED,MAAI,CAACF,WAAW,CAACM,MAAjB,EAAyB;AACvB,WAAO,CAACT,WAAD,EAAc,EAAd,CAAP;AACD;;AAED,SAAO,CAAIA,WAAJ,eAAyBE,WAAW,CAACY,IAAZ,CAAiB,OAAjB,CAAzB,EAAsDX,WAAtD,CAAP;AACD,CA7BM","sourcesContent":["import type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames } from '../types';\n\nexport const appendWhereClause = <T extends keyof Schema>(\n selectQuery: string,\n whereCondition?: Partial<{ [k in TableColumnNames<T>]: any }>,\n): PreparedQueries => {\n if (!whereCondition) return [selectQuery, []];\n\n const whereClause = [];\n const whereParams: any[] = [];\n\n for (const key in whereCondition) {\n const value: unknown = whereCondition[key];\n if (value === undefined) continue;\n\n if (Array.isArray(value)) {\n if (value.length === 0) continue;\n const questionMarks = Array(Object.keys(value).length).fill('?').join(',');\n whereClause.push(`${key} in (${questionMarks})`);\n whereParams.push(...value);\n } else {\n whereClause.push(`${key} = ?`);\n whereParams.push(value);\n }\n }\n\n if (!whereParams.length) {\n return [selectQuery, []];\n }\n\n return [`${selectQuery} WHERE ${whereClause.join(' AND ')}`, whereParams];\n};\n"]}
1
+ {"version":3,"sources":["appendWhereCluase.ts"],"names":["appendWhereClause","selectQuery","whereCondition","whereClause","whereParams","key","value","undefined","Array","isArray","length","questionMarks","Object","keys","fill","join","push"],"mappings":";;;;;;;;;AAGO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,WAD+B,EAE/BC,cAF+B,EAGX;AACpB,MAAI,CAACA,cAAL,EAAqB,OAAO,CAACD,WAAD,EAAc,EAAd,CAAP;AAErB,MAAME,WAAW,GAAG,EAApB;AACA,MAAMC,WAA+B,GAAG,EAAxC;;AAEA,OAAK,IAAMC,GAAX,IAAkBH,cAAlB,EAAkC;AAChC,QAAMI,KAAK,GAAGJ,cAAc,CAACG,GAAD,CAA5B;AACA,QAAIC,KAAK,KAAKC,SAAd,EAAyB;;AAEzB,QAAIC,KAAK,CAACC,OAAN,CAAcH,KAAd,CAAJ,EAA0B;AACxB,UAAIA,KAAK,CAACI,MAAN,KAAiB,CAArB,EAAwB;AACxB,UAAMC,aAAa,GAAGH,KAAK,CAACI,MAAM,CAACC,IAAP,CAAYP,KAAZ,EAAmBI,MAApB,CAAL,CAAiCI,IAAjC,CAAsC,GAAtC,EAA2CC,IAA3C,CAAgD,GAAhD,CAAtB;AACAZ,MAAAA,WAAW,CAACa,IAAZ,CAAoBX,GAApB,aAA+BM,aAA/B;AACAP,MAAAA,WAAW,CAACY,IAAZ,OAAAZ,WAAW,sCAASE,KAAT,EAAX;AACD,KALD,MAKO;AACLH,MAAAA,WAAW,CAACa,IAAZ,CAAoBX,GAApB;AACAD,MAAAA,WAAW,CAACY,IAAZ,CAAiBV,KAAjB;AACD;AACF;;AAED,MAAI,CAACF,WAAW,CAACM,MAAjB,EAAyB;AACvB,WAAO,CAACT,WAAD,EAAc,EAAd,CAAP;AACD;;AAED,SAAO,CAAIA,WAAJ,eAAyBE,WAAW,CAACY,IAAZ,CAAiB,OAAjB,CAAzB,EAAsDX,WAAtD,CAAP;AACD,CA7BM","sourcesContent":["import type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';\n\nexport const appendWhereClause = <T extends keyof Schema>(\n selectQuery: string,\n whereCondition?: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n if (!whereCondition) return [selectQuery, []];\n\n const whereClause = [];\n const whereParams: TableColumnValue[] = [];\n\n for (const key in whereCondition) {\n const value = whereCondition[key];\n if (value === undefined) continue;\n\n if (Array.isArray(value)) {\n if (value.length === 0) continue;\n const questionMarks = Array(Object.keys(value).length).fill('?').join(',');\n whereClause.push(`${key} in (${questionMarks})`);\n whereParams.push(...value);\n } else {\n whereClause.push(`${key} = ?`);\n whereParams.push(value);\n }\n }\n\n if (!whereParams.length) {\n return [selectQuery, []];\n }\n\n return [`${selectQuery} WHERE ${whereClause.join(' AND ')}`, whereParams];\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["createDeleteQuery.ts"],"names":["createDeleteQuery","table","whereCondition","deleteQuery"],"mappings":";;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,cAF+B,EAGX;AACpB,MAAMC,WAAW,oBAAkBF,KAAnC;AAEA,SAAO,0CAAkBE,WAAlB,EAA+BD,cAA/B,CAAP;AACD,CAPM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames } from '../types';\n\n/**\n * Creates a simple delete query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final select query\n */\n\nexport const createDeleteQuery = <T extends keyof Schema>(\n table: T,\n whereCondition: Partial<{ [k in TableColumnNames<T>]: any }>,\n): PreparedQueries => {\n const deleteQuery = `DELETE FROM ${table}`;\n\n return appendWhereClause(deleteQuery, whereCondition);\n};\n"]}
1
+ {"version":3,"sources":["createDeleteQuery.ts"],"names":["createDeleteQuery","table","whereCondition","deleteQuery"],"mappings":";;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,cAF+B,EAGX;AACpB,MAAMC,WAAW,oBAAkBF,KAAnC;AAEA,SAAO,0CAAkBE,WAAlB,EAA+BD,cAA/B,CAAP;AACD,CAPM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';\n\n/**\n * Creates a simple delete query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final select query\n */\n\nexport const createDeleteQuery = <T extends keyof Schema>(\n table: T,\n whereCondition: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n const deleteQuery = `DELETE FROM ${table}`;\n\n return appendWhereClause(deleteQuery, whereCondition);\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["createSelectQuery.ts"],"names":["createSelectQuery","table","fields","whereCondition","selectQuery","join","selectQueryWithWhere","whereParams"],"mappings":";;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAIX;AAAA,MAFpBC,MAEoB,uEAF8B,CAAC,GAAD,CAE9B;AAAA,MADpBC,cACoB;AACpB,MAAMC,WAAW,eAAaF,MAAM,CAACG,IAAP,CAAY,IAAZ,CAAb,cAAuCJ,KAAxD;;AACA,2BAA4C,0CAAkBG,WAAlB,EAA+BD,cAA/B,CAA5C;AAAA;AAAA,MAAOG,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,MAAID,oBAAJ,EAA4BC,WAAW,IAAI,EAA3C,CAAP;AACD,CATM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames } from '../types';\n\n/**\n * Creates a simple select query for sqlite.\n *\n * @param {string} table Table name\n * @param {Array} fields Array of columns which need to be selected e.g., ['*'] or ['id', 'name']\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final select query\n */\nexport const createSelectQuery = <T extends keyof Schema>(\n table: T,\n fields: Array<'*'> | Array<TableColumnNames<T>> = ['*'],\n whereCondition?: Partial<{ [k in TableColumnNames<T>]: any }>,\n): PreparedQueries => {\n const selectQuery = `SELECT ${fields.join(', ')} FROM ${table}`;\n const [selectQueryWithWhere, whereParams] = appendWhereClause(selectQuery, whereCondition);\n\n return [`${selectQueryWithWhere}`, whereParams || []];\n};\n"]}
1
+ {"version":3,"sources":["createSelectQuery.ts"],"names":["createSelectQuery","table","fields","whereCondition","selectQuery","join","selectQueryWithWhere","whereParams"],"mappings":";;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAIX;AAAA,MAFpBC,MAEoB,uEAF8B,CAAC,GAAD,CAE9B;AAAA,MADpBC,cACoB;AACpB,MAAMC,WAAW,eAAaF,MAAM,CAACG,IAAP,CAAY,IAAZ,CAAb,cAAuCJ,KAAxD;;AACA,2BAA4C,0CAAkBG,WAAlB,EAA+BD,cAA/B,CAA5C;AAAA;AAAA,MAAOG,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,MAAID,oBAAJ,EAA4BC,WAAW,IAAI,EAA3C,CAAP;AACD,CATM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';\n\n/**\n * Creates a simple select query for sqlite.\n *\n * @param {string} table Table name\n * @param {Array} fields Array of columns which need to be selected e.g., ['*'] or ['id', 'name']\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final select query\n */\nexport const createSelectQuery = <T extends keyof Schema>(\n table: T,\n fields: Array<'*'> | Array<TableColumnNames<T>> = ['*'],\n whereCondition?: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n const selectQuery = `SELECT ${fields.join(', ')} FROM ${table}`;\n const [selectQueryWithWhere, whereParams] = appendWhereClause(selectQuery, whereCondition);\n\n return [`${selectQueryWithWhere}`, whereParams || []];\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["createUpdateQuery.ts"],"names":["createUpdateQuery","table","set","whereCondition","fields","Object","keys","map","key","updateQuery","join","updateQueryWithWhere","whereParams","values"],"mappings":";;;;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,GAF+B,EAG/BC,cAH+B,EAIX;AACpB,MAAMC,MAAM,GAAGC,MAAM,CAACC,IAAP,CAAYJ,GAAZ,EAAiBK,GAAjB,CAAqB,UAACC,GAAD;AAAA,WAAYA,GAAZ;AAAA,GAArB,CAAf;AACA,MAAMC,WAAW,eAAaR,KAAb,aAA0BG,MAAM,CAACM,IAAP,CAAY,GAAZ,CAA3C;;AAEA,2BAA4C,0CAAkBD,WAAlB,EAA+BN,cAA/B,CAA5C;AAAA;AAAA,MAAOQ,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,CAACD,oBAAD,gDAA2BN,MAAM,CAACQ,MAAP,CAAcX,GAAd,CAA3B,uCAAmDU,WAAW,IAAI,EAAlE,GAAP;AACD,CAXM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames } from '../types';\n\n/**\n * Creates a simple update query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} set Set conditions for update query.\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final update query for sqlite\n */\nexport const createUpdateQuery = <T extends keyof Schema>(\n table: T,\n set: Partial<{ [k in TableColumnNames<T>]: any }>,\n whereCondition: Partial<{ [k in TableColumnNames<T>]: any }>,\n): PreparedQueries => {\n const fields = Object.keys(set).map((key) => `${key} = ?`);\n const updateQuery = `UPDATE ${table} SET ${fields.join(',')}`;\n\n const [updateQueryWithWhere, whereParams] = appendWhereClause(updateQuery, whereCondition);\n\n return [updateQueryWithWhere, [...Object.values(set), ...(whereParams || [])]];\n};\n"]}
1
+ {"version":3,"sources":["createUpdateQuery.ts"],"names":["createUpdateQuery","table","set","whereCondition","fields","Object","keys","map","key","updateQuery","join","updateQueryWithWhere","whereParams","values"],"mappings":";;;;;;;;;;;AAAA;;AAeO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,KAD+B,EAE/BC,GAF+B,EAG/BC,cAH+B,EAIX;AACpB,MAAMC,MAAM,GAAGC,MAAM,CAACC,IAAP,CAAYJ,GAAZ,EAAiBK,GAAjB,CAAqB,UAACC,GAAD;AAAA,WAAYA,GAAZ;AAAA,GAArB,CAAf;AACA,MAAMC,WAAW,eAAaR,KAAb,aAA0BG,MAAM,CAACM,IAAP,CAAY,GAAZ,CAA3C;;AAEA,2BAA4C,0CAAkBD,WAAlB,EAA+BN,cAA/B,CAA5C;AAAA;AAAA,MAAOQ,oBAAP;AAAA,MAA6BC,WAA7B;;AAEA,SAAO,CAACD,oBAAD,gDAA2BN,MAAM,CAACQ,MAAP,CAAcX,GAAd,CAA3B,uCAAmDU,WAAW,IAAI,EAAlE,GAAP;AACD,CAXM","sourcesContent":["import { appendWhereClause } from './appendWhereCluase';\n\nimport type { Schema } from '../schema';\nimport type { PreparedQueries, TableColumnNames, TableColumnValue, TableRow } from '../types';\n\n/**\n * Creates a simple update query for sqlite.\n *\n * @param {string} table Table name\n * @param {Object} set Set conditions for update query.\n * @param {Object} whereCondition Where condition for select query.\n * e.g., { id: 'vishal', cid: ['messaging:id1', 'messaging:id2'] }.\n * All the conditions will be joined with AND in final query.\n * @returns {string} Final update query for sqlite\n */\nexport const createUpdateQuery = <T extends keyof Schema>(\n table: T,\n set: Partial<TableRow<T>>,\n whereCondition: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,\n): PreparedQueries => {\n const fields = Object.keys(set).map((key) => `${key} = ?`);\n const updateQuery = `UPDATE ${table} SET ${fields.join(',')}`;\n\n const [updateQueryWithWhere, whereParams] = appendWhereClause(updateQuery, whereCondition);\n\n return [updateQueryWithWhere, [...Object.values(set), ...(whereParams || [])]];\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["printRow.ts"],"names":["printRow","row","prettyRow","key","value","JSON","parse","e","console","log","stringify"],"mappings":";;;;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAACC,GAAD,EAAwB;AAC9C,MAAMC,SAA8B,GAAG,EAAvC;;AACA,OAAK,IAAMC,GAAX,IAAkBF,GAAlB,EAAuB;AAErB,QAAMG,KAAK,GAAGH,GAAG,CAACE,GAAD,CAAjB;;AAEA,QAAI;AACFD,MAAAA,SAAS,CAACC,GAAD,CAAT,GAAiBE,IAAI,CAACC,KAAL,CAAWF,KAAX,CAAjB;AACD,KAFD,CAEE,OAAOG,CAAP,EAAU;AACVL,MAAAA,SAAS,CAACC,GAAD,CAAT,GAAiBC,KAAjB;AACD;AACF;;AAEDI,EAAAA,OAAO,CAACC,GAAR,CAAYJ,IAAI,CAACK,SAAL,CAAeR,SAAf,EAA0B,IAA1B,EAAgC,CAAhC,CAAZ;AACD,CAdM","sourcesContent":["import type { TableRow } from '../types';\n\nexport const printRow = (row: TableRow<any>) => {\n const prettyRow: Record<string, any> = {};\n for (const key in row) {\n // @ts-ignore\n const value = row[key];\n\n try {\n prettyRow[key] = JSON.parse(value);\n } catch (e) {\n prettyRow[key] = value;\n }\n }\n\n console.log(JSON.stringify(prettyRow, null, 2));\n};\n"]}
1
+ {"version":3,"sources":["printRow.ts"],"names":["printRow","row","prettyRow","key","value","JSON","parse","e","console","log","stringify"],"mappings":";;;;;AAGO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAACC,GAAD,EAAwB;AAE9C,MAAMC,SAA8B,GAAG,EAAvC;;AACA,OAAK,IAAMC,GAAX,IAAkBF,GAAlB,EAAuB;AAErB,QAAMG,KAAK,GAAGH,GAAG,CAACE,GAAD,CAAjB;;AAEA,QAAI;AACFD,MAAAA,SAAS,CAACC,GAAD,CAAT,GAAiBE,IAAI,CAACC,KAAL,CAAWF,KAAX,CAAjB;AACD,KAFD,CAEE,OAAOG,CAAP,EAAU;AACVL,MAAAA,SAAS,CAACC,GAAD,CAAT,GAAiBC,KAAjB;AACD;AACF;;AAEDI,EAAAA,OAAO,CAACC,GAAR,CAAYJ,IAAI,CAACK,SAAL,CAAeR,SAAf,EAA0B,IAA1B,EAAgC,CAAhC,CAAZ;AACD,CAfM","sourcesContent":["import type { TableRow } from '../types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const printRow = (row: TableRow<any>) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const prettyRow: Record<string, any> = {};\n for (const key in row) {\n // @ts-ignore\n const value = row[key];\n\n try {\n prettyRow[key] = JSON.parse(value);\n } catch (e) {\n prettyRow[key] = value;\n }\n }\n\n console.log(JSON.stringify(prettyRow, null, 2));\n};\n"]}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.0.0-offline-support.11"
2
+ "version": "5.0.0-offline-support.12"
3
3
  }
@@ -1,4 +1,3 @@
1
- import 'react-native-quick-sqlite';
2
1
  export * from './components';
3
2
  export * from './hooks';
4
3
  export { registerNativeHandlers, NetInfo } from './native';
@@ -1,3 +1,3 @@
1
1
  import type { Schema } from '../schema';
2
- import type { PreparedQueries } from '../types';
3
- export declare const appendWhereClause: <T extends keyof Schema>(selectQuery: string, whereCondition?: Partial<{ [k in keyof Schema[T]]: any; }> | undefined) => PreparedQueries;
2
+ import type { PreparedQueries, TableColumnValue } from '../types';
3
+ export declare const appendWhereClause: <T extends keyof Schema>(selectQuery: string, whereCondition?: Partial<{ [k in keyof Schema[T]]: TableColumnValue | TableColumnValue[]; }> | undefined) => PreparedQueries;
@@ -1,5 +1,5 @@
1
1
  import type { Schema } from '../schema';
2
- import type { PreparedQueries, TableColumnNames } from '../types';
2
+ import type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';
3
3
  /**
4
4
  * Creates a simple delete query for sqlite.
5
5
  *
@@ -9,4 +9,4 @@ import type { PreparedQueries, TableColumnNames } from '../types';
9
9
  * All the conditions will be joined with AND in final query.
10
10
  * @returns {string} Final select query
11
11
  */
12
- export declare const createDeleteQuery: <T extends keyof Schema>(table: T, whereCondition: Partial<{ [k in keyof Schema[T]]: any; }>) => PreparedQueries;
12
+ export declare const createDeleteQuery: <T extends keyof Schema>(table: T, whereCondition: Partial<{ [k in keyof Schema[T]]: TableColumnValue | TableColumnValue[]; }>) => PreparedQueries;
@@ -1,5 +1,5 @@
1
1
  import type { Schema } from '../schema';
2
- import type { PreparedQueries, TableColumnNames } from '../types';
2
+ import type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';
3
3
  /**
4
4
  * Creates a simple select query for sqlite.
5
5
  *
@@ -10,4 +10,4 @@ import type { PreparedQueries, TableColumnNames } from '../types';
10
10
  * All the conditions will be joined with AND in final query.
11
11
  * @returns {string} Final select query
12
12
  */
13
- export declare const createSelectQuery: <T extends keyof Schema>(table: T, fields?: "*"[] | (keyof Schema[T])[], whereCondition?: Partial<{ [k in keyof Schema[T]]: any; }> | undefined) => PreparedQueries;
13
+ export declare const createSelectQuery: <T extends keyof Schema>(table: T, fields?: "*"[] | (keyof Schema[T])[], whereCondition?: Partial<{ [k in keyof Schema[T]]: TableColumnValue | TableColumnValue[]; }> | undefined) => PreparedQueries;
@@ -1,5 +1,5 @@
1
1
  import type { Schema } from '../schema';
2
- import type { PreparedQueries, TableColumnNames } from '../types';
2
+ import type { PreparedQueries, TableColumnNames, TableColumnValue, TableRow } from '../types';
3
3
  /**
4
4
  * Creates a simple update query for sqlite.
5
5
  *
@@ -10,4 +10,4 @@ import type { PreparedQueries, TableColumnNames } from '../types';
10
10
  * All the conditions will be joined with AND in final query.
11
11
  * @returns {string} Final update query for sqlite
12
12
  */
13
- export declare const createUpdateQuery: <T extends keyof Schema>(table: T, set: Partial<{ [k in keyof Schema[T]]: any; }>, whereCondition: Partial<{ [k_1 in keyof Schema[T]]: any; }>) => PreparedQueries;
13
+ export declare const createUpdateQuery: <T extends keyof Schema>(table: T, set: Partial<TableRow<T>>, whereCondition: Partial<{ [k in keyof Schema[T]]: TableColumnValue | TableColumnValue[]; }>) => PreparedQueries;
@@ -5,4 +5,5 @@ export declare type TableRowJoinedUser<T extends Table> = Schema[T] & {
5
5
  user: TableRow<'users'>;
6
6
  };
7
7
  export declare type TableColumnNames<T extends Table> = keyof Schema[T];
8
+ export declare type TableColumnValue = string | boolean | number | undefined;
8
9
  export declare type PreparedQueries = [string] | [string, Array<any>];
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "stream-chat-react-native-core",
3
3
  "description": "The official React Native and Expo components for Stream Chat, a service for building chat applications",
4
- "version": "5.0.0-offline-support.11",
4
+ "version": "5.0.0-offline-support.12",
5
5
  "author": {
6
6
  "company": "Stream.io Inc",
7
7
  "name": "Stream.io Inc"
@@ -66,8 +66,6 @@ const ChannelListComponent = (props) => {
66
66
  );
67
67
  };
68
68
 
69
- const waitTill = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
70
-
71
69
  describe('Offline support is disabled', () => {
72
70
  let chatClient;
73
71
 
package/src/index.ts CHANGED
@@ -1,5 +1,3 @@
1
- import 'react-native-quick-sqlite';
2
-
3
1
  export * from './components';
4
2
  export * from './hooks';
5
3
  export { registerNativeHandlers, NetInfo } from './native';
@@ -1,7 +1,5 @@
1
1
  import Database from 'better-sqlite3';
2
2
 
3
- import { SUCCESSFUL_QUERY_RESULT } from './consts';
4
-
5
3
  import type { PreparedQueries } from '../../store/types';
6
4
 
7
5
  export let db: Database;
@@ -14,7 +12,7 @@ export const sqliteMock = {
14
12
  status: 0,
15
13
  };
16
14
  },
17
- executeSql: (dbName: string, queryInput: string, params: any[]) => {
15
+ executeSql: (dbName: string, queryInput: string, params: unknown[]) => {
18
16
  const query = queryInput.trim().toLowerCase();
19
17
  const stmt = db.prepare(query);
20
18
  let result = [];
@@ -1,4 +1,17 @@
1
1
  /* eslint-disable no-underscore-dangle */
2
+ // Importing following package just to avoid errors using sqlite global.
3
+ // @ts-ignore
4
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
5
+ import types from 'react-native-quick-sqlite';
6
+
7
+ try {
8
+ require('react-native-quick-sqlite');
9
+ } catch (e) {
10
+ // Failed for one of the reason
11
+ // 1. Running on expo, where we don't support offline storage yet.
12
+ // 2. Offline support is disabled, in which case this library is not installed.
13
+ }
14
+
2
15
  import { DB_LOCATION, DB_NAME, DB_STATUS_ERROR } from './constants';
3
16
  import { tables } from './schema';
4
17
  import { createCreateTableQuery } from './sqlite-utils/createCreateTableQuery';
@@ -75,6 +88,13 @@ export class QuickSqliteClient {
75
88
  };
76
89
 
77
90
  static initializeDatabase = () => {
91
+ // @ts-ignore
92
+ if (window.sqlite === undefined) {
93
+ throw new Error(
94
+ 'Please install "react-native-quick-sqlite" package to enable offline support',
95
+ );
96
+ }
97
+
78
98
  const version = this.getUserPragmaVersion();
79
99
  if (version !== this.dbVersion) {
80
100
  this.dropTables();
@@ -1,17 +1,17 @@
1
1
  import type { Schema } from '../schema';
2
- import type { PreparedQueries, TableColumnNames } from '../types';
2
+ import type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';
3
3
 
4
4
  export const appendWhereClause = <T extends keyof Schema>(
5
5
  selectQuery: string,
6
- whereCondition?: Partial<{ [k in TableColumnNames<T>]: any }>,
6
+ whereCondition?: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,
7
7
  ): PreparedQueries => {
8
8
  if (!whereCondition) return [selectQuery, []];
9
9
 
10
10
  const whereClause = [];
11
- const whereParams: any[] = [];
11
+ const whereParams: TableColumnValue[] = [];
12
12
 
13
13
  for (const key in whereCondition) {
14
- const value: unknown = whereCondition[key];
14
+ const value = whereCondition[key];
15
15
  if (value === undefined) continue;
16
16
 
17
17
  if (Array.isArray(value)) {
@@ -1,7 +1,7 @@
1
1
  import { appendWhereClause } from './appendWhereCluase';
2
2
 
3
3
  import type { Schema } from '../schema';
4
- import type { PreparedQueries, TableColumnNames } from '../types';
4
+ import type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';
5
5
 
6
6
  /**
7
7
  * Creates a simple delete query for sqlite.
@@ -15,7 +15,7 @@ import type { PreparedQueries, TableColumnNames } from '../types';
15
15
 
16
16
  export const createDeleteQuery = <T extends keyof Schema>(
17
17
  table: T,
18
- whereCondition: Partial<{ [k in TableColumnNames<T>]: any }>,
18
+ whereCondition: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,
19
19
  ): PreparedQueries => {
20
20
  const deleteQuery = `DELETE FROM ${table}`;
21
21
 
@@ -1,7 +1,7 @@
1
1
  import { appendWhereClause } from './appendWhereCluase';
2
2
 
3
3
  import type { Schema } from '../schema';
4
- import type { PreparedQueries, TableColumnNames } from '../types';
4
+ import type { PreparedQueries, TableColumnNames, TableColumnValue } from '../types';
5
5
 
6
6
  /**
7
7
  * Creates a simple select query for sqlite.
@@ -16,7 +16,7 @@ import type { PreparedQueries, TableColumnNames } from '../types';
16
16
  export const createSelectQuery = <T extends keyof Schema>(
17
17
  table: T,
18
18
  fields: Array<'*'> | Array<TableColumnNames<T>> = ['*'],
19
- whereCondition?: Partial<{ [k in TableColumnNames<T>]: any }>,
19
+ whereCondition?: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,
20
20
  ): PreparedQueries => {
21
21
  const selectQuery = `SELECT ${fields.join(', ')} FROM ${table}`;
22
22
  const [selectQueryWithWhere, whereParams] = appendWhereClause(selectQuery, whereCondition);
@@ -1,7 +1,7 @@
1
1
  import { appendWhereClause } from './appendWhereCluase';
2
2
 
3
3
  import type { Schema } from '../schema';
4
- import type { PreparedQueries, TableColumnNames } from '../types';
4
+ import type { PreparedQueries, TableColumnNames, TableColumnValue, TableRow } from '../types';
5
5
 
6
6
  /**
7
7
  * Creates a simple update query for sqlite.
@@ -15,8 +15,8 @@ import type { PreparedQueries, TableColumnNames } from '../types';
15
15
  */
16
16
  export const createUpdateQuery = <T extends keyof Schema>(
17
17
  table: T,
18
- set: Partial<{ [k in TableColumnNames<T>]: any }>,
19
- whereCondition: Partial<{ [k in TableColumnNames<T>]: any }>,
18
+ set: Partial<TableRow<T>>,
19
+ whereCondition: Partial<{ [k in TableColumnNames<T>]: TableColumnValue | TableColumnValue[] }>,
20
20
  ): PreparedQueries => {
21
21
  const fields = Object.keys(set).map((key) => `${key} = ?`);
22
22
  const updateQuery = `UPDATE ${table} SET ${fields.join(',')}`;
@@ -1,6 +1,8 @@
1
1
  import type { TableRow } from '../types';
2
2
 
3
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3
4
  export const printRow = (row: TableRow<any>) => {
5
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
6
  const prettyRow: Record<string, any> = {};
5
7
  for (const key in row) {
6
8
  // @ts-ignore
@@ -7,5 +7,6 @@ export type TableRowJoinedUser<T extends Table> = Schema[T] & {
7
7
  };
8
8
 
9
9
  export type TableColumnNames<T extends Table> = keyof Schema[T];
10
+ export type TableColumnValue = string | boolean | number | undefined;
10
11
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
12
  export type PreparedQueries = [string] | [string, Array<any>];
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.0.0-offline-support.11"
2
+ "version": "5.0.0-offline-support.12"
3
3
  }