stream-chat-react-native-core 8.13.19 → 8.14.0

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 (52) hide show
  1. package/lib/commonjs/components/Chat/Chat.js +10 -23
  2. package/lib/commonjs/components/Chat/Chat.js.map +1 -1
  3. package/lib/commonjs/components/Chat/hooks/useInitializeOfflineDb.js +64 -0
  4. package/lib/commonjs/components/Chat/hooks/useInitializeOfflineDb.js.map +1 -0
  5. package/lib/commonjs/index.js +7 -0
  6. package/lib/commonjs/index.js.map +1 -1
  7. package/lib/commonjs/mock-builders/DB/mock.js +13 -1
  8. package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
  9. package/lib/commonjs/store/OfflineDB.js +15 -2
  10. package/lib/commonjs/store/OfflineDB.js.map +1 -1
  11. package/lib/commonjs/store/SqliteClient.js +94 -10
  12. package/lib/commonjs/store/SqliteClient.js.map +1 -1
  13. package/lib/commonjs/test-utils/BetterSqlite.js +3 -2
  14. package/lib/commonjs/test-utils/BetterSqlite.js.map +1 -1
  15. package/lib/commonjs/version.json +1 -1
  16. package/lib/module/components/Chat/Chat.js +10 -23
  17. package/lib/module/components/Chat/Chat.js.map +1 -1
  18. package/lib/module/components/Chat/hooks/useInitializeOfflineDb.js +64 -0
  19. package/lib/module/components/Chat/hooks/useInitializeOfflineDb.js.map +1 -0
  20. package/lib/module/index.js +7 -0
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/module/mock-builders/DB/mock.js +13 -1
  23. package/lib/module/mock-builders/DB/mock.js.map +1 -1
  24. package/lib/module/store/OfflineDB.js +15 -2
  25. package/lib/module/store/OfflineDB.js.map +1 -1
  26. package/lib/module/store/SqliteClient.js +94 -10
  27. package/lib/module/store/SqliteClient.js.map +1 -1
  28. package/lib/module/test-utils/BetterSqlite.js +3 -2
  29. package/lib/module/test-utils/BetterSqlite.js.map +1 -1
  30. package/lib/module/version.json +1 -1
  31. package/lib/typescript/components/Chat/Chat.d.ts +44 -0
  32. package/lib/typescript/components/Chat/Chat.d.ts.map +1 -1
  33. package/lib/typescript/components/Chat/hooks/useInitializeOfflineDb.d.ts +27 -0
  34. package/lib/typescript/components/Chat/hooks/useInitializeOfflineDb.d.ts.map +1 -0
  35. package/lib/typescript/index.d.ts +1 -1
  36. package/lib/typescript/index.d.ts.map +1 -1
  37. package/lib/typescript/store/OfflineDB.d.ts +16 -1
  38. package/lib/typescript/store/OfflineDB.d.ts.map +1 -1
  39. package/lib/typescript/store/SqliteClient.d.ts +61 -0
  40. package/lib/typescript/store/SqliteClient.d.ts.map +1 -1
  41. package/lib/typescript/test-utils/BetterSqlite.d.ts.map +1 -1
  42. package/package.json +1 -1
  43. package/src/components/Chat/Chat.tsx +52 -18
  44. package/src/components/Chat/__tests__/ChatOfflineDbEncryption.test.tsx +248 -0
  45. package/src/components/Chat/hooks/useInitializeOfflineDb.ts +109 -0
  46. package/src/index.ts +1 -1
  47. package/src/mock-builders/DB/mock.ts +16 -1
  48. package/src/store/OfflineDB.ts +38 -3
  49. package/src/store/SqliteClient.ts +185 -1
  50. package/src/store/__tests__/SqliteClient.test.ts +258 -0
  51. package/src/test-utils/BetterSqlite.js +4 -1
  52. package/src/version.json +1 -1
@@ -2,15 +2,21 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.SqliteClient = void 0;
5
+ exports.SqliteClientError = exports.SqliteClient = void 0;
6
6
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
7
7
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
8
8
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
9
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
10
14
  var _constants = require("./constants");
11
15
  var _schema = require("./schema");
12
16
  var _createCreateTableQuery = require("./sqlite-utils/createCreateTableQuery");
13
17
  var _SqliteClient;
18
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
19
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
14
20
  var sqlite;
15
21
  try {
16
22
  sqlite = require('@op-engineering/op-sqlite');
@@ -20,6 +26,19 @@ try {
20
26
  throw e;
21
27
  }
22
28
  }
29
+ var SqliteClientError = exports.SqliteClientError = function (_Error) {
30
+ function SqliteClientError(code, message, options) {
31
+ var _this;
32
+ (0, _classCallCheck2.default)(this, SqliteClientError);
33
+ _this = _callSuper(this, SqliteClientError, [message]);
34
+ _this.name = 'SqliteClientError';
35
+ _this.code = code;
36
+ _this.cause = options == null ? void 0 : options.cause;
37
+ return _this;
38
+ }
39
+ (0, _inherits2.default)(SqliteClientError, _Error);
40
+ return (0, _createClass2.default)(SqliteClientError);
41
+ }((0, _wrapNativeSuper2.default)(Error));
23
42
  var SqliteClient = exports.SqliteClient = (0, _createClass2.default)(function SqliteClient() {
24
43
  (0, _classCallCheck2.default)(this, SqliteClient);
25
44
  });
@@ -27,24 +46,73 @@ _SqliteClient = SqliteClient;
27
46
  SqliteClient.dbVersion = 15;
28
47
  SqliteClient.dbName = _constants.DB_NAME;
29
48
  SqliteClient.dbLocation = _constants.DB_LOCATION;
49
+ SqliteClient.TRANSIENT_ERROR = /database is locked|SQLITE_BUSY|SQLITE_LOCKED|disk i\/o|SQLITE_IOERR|unable to open|SQLITE_CANTOPEN|out of memory|readonly/i;
50
+ SqliteClient.UNREADABLE_ERROR = /not a database|file is encrypted|malformed|disk image is malformed|SQLite (?:error )?code:?\s*(?:26|11)\b|NOTADB|SQLITE_CORRUPT/i;
30
51
  SqliteClient.getDbVersion = function () {
31
52
  return _SqliteClient.dbVersion;
32
53
  };
33
54
  SqliteClient.setDbVersion = function (version) {
34
55
  return _SqliteClient.dbVersion = version;
35
56
  };
57
+ SqliteClient.recordError = function (e) {
58
+ _SqliteClient.logger == null || _SqliteClient.logger('error', e.message, {
59
+ tag: e.code
60
+ });
61
+ throw e;
62
+ };
63
+ SqliteClient.preflightEncryption = (0, _asyncToGenerator2.default)(function* () {
64
+ try {
65
+ _SqliteClient.preflightedKey = yield _SqliteClient.resolveEncryptionKey();
66
+ } catch (e) {
67
+ if (e instanceof SqliteClientError) {
68
+ _SqliteClient.recordError(e);
69
+ }
70
+ throw e;
71
+ }
72
+ });
73
+ SqliteClient.resolveEncryptionKey = (0, _asyncToGenerator2.default)(function* () {
74
+ var getEncryptionKey = _SqliteClient.getEncryptionKey;
75
+ if (!getEncryptionKey) {
76
+ return undefined;
77
+ }
78
+ if (sqlite === undefined) {
79
+ throw new SqliteClientError('SQLCIPHER_BUILD_MISSING', 'An offline database encryption key was provided but "@op-engineering/op-sqlite" ' + 'is not installed.');
80
+ }
81
+ if (typeof sqlite.isSQLCipher !== 'function' || !sqlite.isSQLCipher()) {
82
+ throw new SqliteClientError('SQLCIPHER_BUILD_MISSING', 'An offline database encryption key was provided but @op-engineering/op-sqlite was ' + 'not built with SQLCipher, so the key would be silently ignored and the offline ' + 'database written in plaintext. Add { "op-sqlite": { "sqlcipher": true } } to your ' + "application's package.json and rebuild, or stop providing a key.");
83
+ }
84
+ var encryptionKey;
85
+ try {
86
+ encryptionKey = yield getEncryptionKey();
87
+ } catch (error) {
88
+ throw new SqliteClientError('ENCRYPTION_KEY_UNAVAILABLE', 'The offline database encryption key getter threw, so the database cannot be opened.', {
89
+ cause: error
90
+ });
91
+ }
92
+ if (!encryptionKey) {
93
+ throw new SqliteClientError('ENCRYPTION_KEY_UNAVAILABLE', 'The offline database encryption key getter resolved without a key, so the database ' + 'cannot be opened.');
94
+ }
95
+ return encryptionKey;
96
+ });
36
97
  SqliteClient.openDB = (0, _asyncToGenerator2.default)(function* () {
37
98
  try {
38
- var _SqliteClient$db;
99
+ var _SqliteClient$preflig, _SqliteClient$db;
39
100
  if (sqlite === undefined) {
40
101
  throw new Error('Please install "@op-engineering/op-sqlite" package to enable offline support');
41
102
  }
42
- _SqliteClient.db = sqlite.open({
103
+ var encryptionKey = (_SqliteClient$preflig = _SqliteClient.preflightedKey) != null ? _SqliteClient$preflig : yield _SqliteClient.resolveEncryptionKey();
104
+ _SqliteClient.preflightedKey = undefined;
105
+ _SqliteClient.db = sqlite.open(Object.assign({
43
106
  location: _SqliteClient.dbLocation,
44
107
  name: _SqliteClient.dbName
45
- });
108
+ }, encryptionKey ? {
109
+ encryptionKey: encryptionKey
110
+ } : {}));
46
111
  yield (_SqliteClient$db = _SqliteClient.db) == null ? void 0 : _SqliteClient$db.execute('PRAGMA foreign_keys = ON', []);
47
112
  } catch (e) {
113
+ if (e instanceof SqliteClientError) {
114
+ throw e;
115
+ }
48
116
  _SqliteClient.logger == null || _SqliteClient.logger('error', `Error opening database ${_SqliteClient.dbName}`, {
49
117
  error: e
50
118
  });
@@ -66,7 +134,7 @@ SqliteClient.closeDB = function () {
66
134
  }
67
135
  };
68
136
  SqliteClient.executeSqlBatch = function () {
69
- var _ref2 = (0, _asyncToGenerator2.default)(function* (queries) {
137
+ var _ref4 = (0, _asyncToGenerator2.default)(function* (queries) {
70
138
  if (!queries || !queries.length) {
71
139
  return;
72
140
  }
@@ -90,11 +158,11 @@ SqliteClient.executeSqlBatch = function () {
90
158
  }
91
159
  });
92
160
  return function (_x) {
93
- return _ref2.apply(this, arguments);
161
+ return _ref4.apply(this, arguments);
94
162
  };
95
163
  }();
96
164
  SqliteClient.executeSql = function () {
97
- var _ref3 = (0, _asyncToGenerator2.default)(function* (query, params) {
165
+ var _ref5 = (0, _asyncToGenerator2.default)(function* (query, params) {
98
166
  try {
99
167
  if (!_SqliteClient.db) {
100
168
  throw new Error('DB is not open or initialized.');
@@ -111,7 +179,7 @@ SqliteClient.executeSql = function () {
111
179
  }
112
180
  });
113
181
  return function (_x2, _x3) {
114
- return _ref3.apply(this, arguments);
182
+ return _ref5.apply(this, arguments);
115
183
  };
116
184
  }();
117
185
  SqliteClient.dropTables = (0, _asyncToGenerator2.default)(function* () {
@@ -143,6 +211,14 @@ SqliteClient.deleteDatabase = function () {
143
211
  }
144
212
  return true;
145
213
  };
214
+ SqliteClient.isUnreadableDbError = function (e) {
215
+ var _message;
216
+ var message = String((_message = e == null ? void 0 : e.message) != null ? _message : e);
217
+ if (_SqliteClient.TRANSIENT_ERROR.test(message)) {
218
+ return false;
219
+ }
220
+ return _SqliteClient.UNREADABLE_ERROR.test(message);
221
+ };
146
222
  SqliteClient.initializeDatabase = (0, _asyncToGenerator2.default)(function* () {
147
223
  try {
148
224
  yield _SqliteClient.openDB();
@@ -162,6 +238,14 @@ SqliteClient.initializeDatabase = (0, _asyncToGenerator2.default)(function* () {
162
238
  yield _SqliteClient.executeSqlBatch(q);
163
239
  return true;
164
240
  } catch (e) {
241
+ if (e instanceof SqliteClientError) {
242
+ _SqliteClient.recordError(e);
243
+ }
244
+ if (_SqliteClient.isUnreadableDbError(e)) {
245
+ _SqliteClient.recordError(new SqliteClientError('OFFLINE_DB_UNREADABLE', 'The offline database exists but could not be read. Usually the encryption ' + 'key changed, or encryption was turned on or off while a database from ' + 'the other mode was still on disk. Delete it with ' + 'SqliteClient.deleteDatabase() and re-mount to rebuild from the server - ' + 'everything in it is a cache, except queued offline actions, which are lost.', {
246
+ cause: e
247
+ }));
248
+ }
165
249
  console.log('Error initializing DB', e);
166
250
  _SqliteClient.logger == null || _SqliteClient.logger('error', 'Error initializing DB', {
167
251
  dbLocation: _SqliteClient.dbLocation,
@@ -172,7 +256,7 @@ SqliteClient.initializeDatabase = (0, _asyncToGenerator2.default)(function* () {
172
256
  }
173
257
  });
174
258
  SqliteClient.updateUserPragmaVersion = function () {
175
- var _ref6 = (0, _asyncToGenerator2.default)(function* (version) {
259
+ var _ref8 = (0, _asyncToGenerator2.default)(function* (version) {
176
260
  _SqliteClient.logger == null || _SqliteClient.logger('info', `updateUserPragmaVersion to ${version}`);
177
261
  if (!_SqliteClient.db) {
178
262
  throw new Error('DB is not open or initialized.');
@@ -180,7 +264,7 @@ SqliteClient.updateUserPragmaVersion = function () {
180
264
  yield _SqliteClient.db.execute(`PRAGMA user_version = ${version}`, []);
181
265
  });
182
266
  return function (_x4) {
183
- return _ref6.apply(this, arguments);
267
+ return _ref8.apply(this, arguments);
184
268
  };
185
269
  }();
186
270
  SqliteClient.getUserPragmaVersion = (0, _asyncToGenerator2.default)(function* () {
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_schema","_createCreateTableQuery","_SqliteClient","sqlite","e","isRemoteDebuggerError","Error","message","includes","SqliteClient","exports","_createClass2","default","_classCallCheck2","dbVersion","dbName","DB_NAME","dbLocation","DB_LOCATION","getDbVersion","setDbVersion","version","openDB","_asyncToGenerator2","_SqliteClient$db","undefined","db","open","location","name","execute","logger","error","console","closeDB","close","executeSqlBatch","_ref2","queries","length","finalQueries","map","query","push","executeBatch","_x","apply","arguments","executeSql","_ref3","params","_yield$_SqliteClient$","rows","_x2","_x3","dropTables","Object","keys","tables","table","deleteDatabase","dbname","delete","initializeDatabase","getUserPragmaVersion","updateUserPragmaVersion","q","reduce","queriesSoFar","tableName","_toConsumableArray2","createCreateTableQuery","log","_ref6","_x4","_yield$_SqliteClient$2","result","user_version","resetDB"],"sourceRoot":"../../../src","sources":["store/SqliteClient.ts"],"mappings":";;;;;;;;;AAoBA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,uBAAA,GAAAF,OAAA;AAA+E,IAAAG,aAAA;AArB/E,IAAIC,MAAqB;AAEzB,IAAI;EACFA,MAAM,GAAGJ,OAAO,CAAC,2BAA2B,CAAC;AAC/C,CAAC,CAAC,OAAOK,CAAC,EAAE;EAIV,IAAMC,qBAAqB,GAAGD,CAAC,YAAYE,KAAK,IAAIF,CAAC,CAACG,OAAO,CAACC,QAAQ,CAAC,mBAAmB,CAAC;EAC3F,IAAIH,qBAAqB,EAAE;IACzB,MAAMD,CAAC;EACT;AAIF;AAAC,IAaYK,YAAY,GAAAC,OAAA,CAAAD,YAAA,OAAAE,aAAA,CAAAC,OAAA,WAAAH,aAAA;EAAA,IAAAI,gBAAA,CAAAD,OAAA,QAAAH,YAAA;AAAA;AAAAP,aAAA,GAAZO,YAAY;AAAZA,YAAY,CAChBK,SAAS,GAAG,EAAE;AADVL,YAAY,CAGhBM,MAAM,GAAGC,kBAAO;AAHZP,YAAY,CAIhBQ,UAAU,GAAGC,sBAAW;AAJpBT,YAAY,CAQhBU,YAAY,GAAG;EAAA,OAAMV,aAAY,CAACK,SAAS;AAAA;AARvCL,YAAY,CAUhBW,YAAY,GAAG,UAACC,OAAe;EAAA,OAAMZ,aAAY,CAACK,SAAS,GAAGO,OAAO;AAAA,CAAC;AAVlEZ,YAAY,CAYhBa,MAAM,OAAAC,kBAAA,CAAAX,OAAA,EAAG,aAAY;EAC1B,IAAI;IAAA,IAAAY,gBAAA;IACF,IAAIrB,MAAM,KAAKsB,SAAS,EAAE;MACxB,MAAM,IAAInB,KAAK,CACb,8EACF,CAAC;IACH;IACAJ,aAAA,CAAKwB,EAAE,GAAGvB,MAAM,CAACwB,IAAI,CAAC;MACpBC,QAAQ,EAAEnB,aAAY,CAACQ,UAAU;MACjCY,IAAI,EAAEpB,aAAY,CAACM;IACrB,CAAC,CAAC;IAEF,OAAAS,gBAAA,GAAMtB,aAAA,CAAKwB,EAAE,qBAAPF,gBAAA,CAASM,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC;EACxD,CAAC,CAAC,OAAO1B,CAAC,EAAE;IACVF,aAAA,CAAK6B,MAAM,YAAX7B,aAAA,CAAK6B,MAAM,CAAG,OAAO,EAAE,0BAA0BtB,aAAY,CAACM,MAAM,EAAE,EAAE;MACtEiB,KAAK,EAAE5B;IACT,CAAC,CAAC;IACF6B,OAAO,CAACD,KAAK,CAAC,0BAA0BvB,aAAY,CAACM,MAAM,KAAKX,CAAC,EAAE,CAAC;EACtE;AACF,CAAC;AA/BUK,YAAY,CAiChByB,OAAO,GAAG,YAAM;EACrB,IAAI;IACF,IAAI,CAAChC,aAAA,CAAKwB,EAAE,EAAE;MACZ,MAAM,IAAIpB,KAAK,CAAC,gCAAgC,CAAC;IACnD;IACAJ,aAAA,CAAKwB,EAAE,CAACS,KAAK,CAAC,CAAC;IACfjC,aAAA,CAAKwB,EAAE,GAAGD,SAAS;EACrB,CAAC,CAAC,OAAOrB,CAAC,EAAE;IACVF,aAAA,CAAK6B,MAAM,YAAX7B,aAAA,CAAK6B,MAAM,CAAG,OAAO,EAAE,0BAA0BtB,aAAY,CAACM,MAAM,EAAE,EAAE;MACtEiB,KAAK,EAAE5B;IACT,CAAC,CAAC;IACF6B,OAAO,CAACD,KAAK,CAAC,0BAA0BvB,aAAY,CAACM,MAAM,KAAKX,CAAC,EAAE,CAAC;EACtE;AACF,CAAC;AA9CUK,YAAY,CAgDhB2B,eAAe;EAAA,IAAAC,KAAA,OAAAd,kBAAA,CAAAX,OAAA,EAAG,WAAO0B,OAA+B,EAAK;IAClE,IAAI,CAACA,OAAO,IAAI,CAACA,OAAO,CAACC,MAAM,EAAE;MAC/B;IACF;IAEA,IAAI;MACF,IAAI,CAACrC,aAAA,CAAKwB,EAAE,EAAE;QACZ,MAAM,IAAIpB,KAAK,CAAC,gCAAgC,CAAC;MACnD;MAIA,IAAMkC,YAAY,GAAGF,OAAO,CAACG,GAAG,CAAC,UAACC,KAAK,EAAK;QAC1C,IAAIA,KAAK,CAACH,MAAM,KAAK,CAAC,EAAE;UAEtBG,KAAK,CAACC,IAAI,CAAC,EAAE,CAAC;QAChB;QACA,OAAOD,KAAK;MACd,CAAC,CAAC;MACF,MAAMxC,aAAA,CAAKwB,EAAE,CAACkB,YAAY,CAACJ,YAAY,CAAC;IAC1C,CAAC,CAAC,OAAOpC,CAAC,EAAE;MACVF,aAAA,CAAK6B,MAAM,YAAX7B,aAAA,CAAK6B,MAAM,CAAG,OAAO,EAAE,yBAAyB,EAAE;QAChDC,KAAK,EAAE5B,CAAC;QACRkC,OAAO,EAAPA;MACF,CAAC,CAAC;MACF,MAAM,IAAIhC,KAAK,CAAC,mBAAmBF,CAAC,EAAE,CAAC;IACzC;EACF,CAAC;EAAA,iBAAAyC,EAAA;IAAA,OAAAR,KAAA,CAAAS,KAAA,OAAAC,SAAA;EAAA;AAAA;AA3EUtC,YAAY,CA6EhBuC,UAAU;EAAA,IAAAC,KAAA,OAAA1B,kBAAA,CAAAX,OAAA,EAAG,WAAO8B,KAAa,EAAEQ,MAAiB,EAAK;IAC9D,IAAI;MACF,IAAI,CAAChD,aAAA,CAAKwB,EAAE,EAAE;QACZ,MAAM,IAAIpB,KAAK,CAAC,gCAAgC,CAAC;MACnD;MACA,IAAA6C,qBAAA,SAAuBjD,aAAA,CAAKwB,EAAE,CAACI,OAAO,CAACY,KAAK,EAAEQ,MAAM,CAAC;QAA7CE,IAAI,GAAAD,qBAAA,CAAJC,IAAI;MAEZ,OAAOA,IAAI,GAAIA,IAAI,GAAgC,EAAE;IACvD,CAAC,CAAC,OAAOhD,CAAC,EAAE;MACVF,aAAA,CAAK6B,MAAM,YAAX7B,aAAA,CAAK6B,MAAM,CAAG,OAAO,EAAE,yBAAyB,EAAE;QAChDC,KAAK,EAAE5B,CAAC;QACRsC,KAAK,EAALA;MACF,CAAC,CAAC;MACF,MAAM,IAAIpC,KAAK,CAAC,iBAAiBF,CAAC,IAAI,CAAC;IACzC;EACF,CAAC;EAAA,iBAAAiD,GAAA,EAAAC,GAAA;IAAA,OAAAL,KAAA,CAAAH,KAAA,OAAAC,SAAA;EAAA;AAAA;AA5FUtC,YAAY,CA8FhB8C,UAAU,OAAAhC,kBAAA,CAAAX,OAAA,EAAG,aAAY;EAC9B,IAAM0B,OAA0B,GAAGkB,MAAM,CAACC,IAAI,CAACC,cAAM,CAAC,CAACjB,GAAG,CAAC,UAACkB,KAAK;IAAA,OAAK,CACpE,wBAAwBA,KAAK,EAAE,EAC/B,EAAE,CACH;EAAA,EAAC;EACFzD,aAAA,CAAK6B,MAAM,YAAX7B,aAAA,CAAK6B,MAAM,CAAG,MAAM,EAAE,iBAAiB,EAAE;IACvC2B,MAAM,EAAEF,MAAM,CAACC,IAAI,CAACC,cAAM;EAC5B,CAAC,CAAC;EACF,MAAMjD,aAAY,CAAC2B,eAAe,CAACE,OAAO,CAAC;AAC7C,CAAC;AAvGU7B,YAAY,CAyGhBmD,cAAc,GAAG,YAAM;EAC5B1D,aAAA,CAAK6B,MAAM,YAAX7B,aAAA,CAAK6B,MAAM,CAAG,MAAM,EAAE,gBAAgB,EAAE;IACtCd,UAAU,EAAER,aAAY,CAACQ,UAAU;IACnC4C,MAAM,EAAEpD,aAAY,CAACM;EACvB,CAAC,CAAC;EACF,IAAI;IACF,IAAI,CAACb,aAAA,CAAKwB,EAAE,EAAE;MACZ,MAAM,IAAIpB,KAAK,CAAC,gCAAgC,CAAC;IACnD;IACAJ,aAAA,CAAKwB,EAAE,CAACoC,MAAM,CAAC,CAAC;EAClB,CAAC,CAAC,OAAO1D,CAAC,EAAE;IACVF,aAAA,CAAK6B,MAAM,YAAX7B,aAAA,CAAK6B,MAAM,CAAG,OAAO,EAAE,mBAAmB,EAAE;MAC1Cd,UAAU,EAAER,aAAY,CAACQ,UAAU;MACnC4C,MAAM,EAAEpD,aAAY,CAACM,MAAM;MAC3BiB,KAAK,EAAE5B;IACT,CAAC,CAAC;IACF,MAAM,IAAIE,KAAK,CAAC,sBAAsBF,CAAC,EAAE,CAAC;EAC5C;EAEA,OAAO,IAAI;AACb,CAAC;AA7HUK,YAAY,CA+HhBsD,kBAAkB,OAAAxC,kBAAA,CAAAX,OAAA,EAAG,aAAY;EACtC,IAAI;IACF,MAAMH,aAAY,CAACa,MAAM,CAAC,CAAC;IAC3B,IAAMD,OAAO,SAASZ,aAAY,CAACuD,oBAAoB,CAAC,CAAC;IAEzD,IAAI3C,OAAO,KAAKZ,aAAY,CAACK,SAAS,EAAE;MACtCL,aAAY,CAACsB,MAAM,YAAnBtB,aAAY,CAACsB,MAAM,CAAG,MAAM,EAAE,qBAAqB,CAAC;MACpD,MAAMtB,aAAY,CAAC8C,UAAU,CAAC,CAAC;MAC/B,MAAM9C,aAAY,CAACwD,uBAAuB,CAACxD,aAAY,CAACK,SAAS,CAAC;IACpE;IAEAL,aAAY,CAACsB,MAAM,YAAnBtB,aAAY,CAACsB,MAAM,CAAG,MAAM,EAAE,6BAA6B,EAAE;MAC3D2B,MAAM,EAAEF,MAAM,CAACC,IAAI,CAACC,cAAM;IAC5B,CAAC,CAAC;IACF,IAAMQ,CAAC,GAAIV,MAAM,CAACC,IAAI,CAACC,cAAM,CAAC,CAAaS,MAAM,CAC/C,UAACC,YAAY,EAAEC,SAAS,EAAK;MAC3BD,YAAY,CAACzB,IAAI,CAAAG,KAAA,CAAjBsB,YAAY,MAAAE,mBAAA,CAAA1D,OAAA,EAAS,IAAA2D,8CAAsB,EAACF,SAAS,CAAC,EAAC;MACvD,OAAOD,YAAY;IACrB,CAAC,EACD,EACF,CAAC;IAED,MAAM3D,aAAY,CAAC2B,eAAe,CAAC8B,CAAC,CAAC;IAErC,OAAO,IAAI;EACb,CAAC,CAAC,OAAO9D,CAAC,EAAE;IACV6B,OAAO,CAACuC,GAAG,CAAC,uBAAuB,EAAEpE,CAAC,CAAC;IACvCF,aAAA,CAAK6B,MAAM,YAAX7B,aAAA,CAAK6B,MAAM,CAAG,OAAO,EAAE,uBAAuB,EAAE;MAC9Cd,UAAU,EAAER,aAAY,CAACQ,UAAU;MACnC4C,MAAM,EAAEpD,aAAY,CAACM,MAAM;MAC3BiB,KAAK,EAAE5B;IACT,CAAC,CAAC;IAEF,OAAO,KAAK;EACd;AACF,CAAC;AAlKUK,YAAY,CAoKhBwD,uBAAuB;EAAA,IAAAQ,KAAA,OAAAlD,kBAAA,CAAAX,OAAA,EAAG,WAAOS,OAAe,EAAK;IAC1DZ,aAAY,CAACsB,MAAM,YAAnBtB,aAAY,CAACsB,MAAM,CAAG,MAAM,EAAE,8BAA8BV,OAAO,EAAE,CAAC;IACtE,IAAI,CAACnB,aAAA,CAAKwB,EAAE,EAAE;MACZ,MAAM,IAAIpB,KAAK,CAAC,gCAAgC,CAAC;IACnD;IACA,MAAMJ,aAAA,CAAKwB,EAAE,CAACI,OAAO,CAAC,yBAAyBT,OAAO,EAAE,EAAE,EAAE,CAAC;EAC/D,CAAC;EAAA,iBAAAqD,GAAA;IAAA,OAAAD,KAAA,CAAA3B,KAAA,OAAAC,SAAA;EAAA;AAAA;AA1KUtC,YAAY,CA4KhBuD,oBAAoB,OAAAzC,kBAAA,CAAAX,OAAA,EAAG,aAAY;EACxC,IAAI;IACF,IAAI,CAACV,aAAA,CAAKwB,EAAE,EAAE;MACZ,MAAM,IAAIpB,KAAK,CAAC,gCAAgC,CAAC;IACnD;IACA,IAAAqE,sBAAA,SAAuBzE,aAAA,CAAKwB,EAAE,CAACI,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;MAAzDsB,IAAI,GAAAuB,sBAAA,CAAJvB,IAAI;IACZ,IAAMwB,MAAM,GAAGxB,IAAI,GAAGA,IAAI,GAAG,EAAE;IAC/BlD,aAAA,CAAK6B,MAAM,YAAX7B,aAAA,CAAK6B,MAAM,CAAG,MAAM,EAAE,sBAAsB,EAAE;MAC5C6C,MAAM,EAANA;IACF,CAAC,CAAC;IACF,OAAOA,MAAM,CAAC,CAAC,CAAC,CAACC,YAAY;EAC/B,CAAC,CAAC,OAAOzE,CAAC,EAAE;IACV6B,OAAO,CAACuC,GAAG,CAAC,4BAA4B,EAAEpE,CAAC,CAAC;IAC5C,MAAM,IAAIE,KAAK,CAAC,qCAAqCF,CAAC,EAAE,CAAC;EAC3D;AACF,CAAC;AA3LUK,YAAY,CA6LhBqE,OAAO,OAAAvD,kBAAA,CAAAX,OAAA,EAAG,aAAY;EAC3BV,aAAA,CAAK6B,MAAM,YAAX7B,aAAA,CAAK6B,MAAM,CAAG,MAAM,EAAE,SAAS,CAAC;EAChC,IAAI7B,aAAA,CAAKwB,EAAE,EAAE;IACX,MAAMjB,aAAY,CAAC8C,UAAU,CAAC,CAAC;IAC/B9C,aAAY,CAACyB,OAAO,CAAC,CAAC;EACxB;EACA,MAAMzB,aAAY,CAACsD,kBAAkB,CAAC,CAAC;AACzC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_constants","require","_schema","_createCreateTableQuery","_SqliteClient","_callSuper","t","o","e","_getPrototypeOf2","default","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","sqlite","isRemoteDebuggerError","Error","message","includes","SqliteClientError","exports","_Error","code","options","_this","_classCallCheck2","name","cause","_inherits2","_createClass2","_wrapNativeSuper2","SqliteClient","dbVersion","dbName","DB_NAME","dbLocation","DB_LOCATION","TRANSIENT_ERROR","UNREADABLE_ERROR","getDbVersion","setDbVersion","version","recordError","logger","tag","preflightEncryption","_asyncToGenerator2","preflightedKey","resolveEncryptionKey","getEncryptionKey","undefined","isSQLCipher","encryptionKey","error","openDB","_SqliteClient$preflig","_SqliteClient$db","db","open","Object","assign","location","execute","console","closeDB","close","executeSqlBatch","_ref4","queries","length","finalQueries","map","query","push","executeBatch","_x","arguments","executeSql","_ref5","params","_yield$_SqliteClient$","rows","_x2","_x3","dropTables","keys","tables","table","deleteDatabase","dbname","delete","isUnreadableDbError","_message","String","test","initializeDatabase","getUserPragmaVersion","updateUserPragmaVersion","q","reduce","queriesSoFar","tableName","_toConsumableArray2","createCreateTableQuery","log","_ref8","_x4","_yield$_SqliteClient$2","result","user_version","resetDB"],"sourceRoot":"../../../src","sources":["store/SqliteClient.ts"],"mappings":"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","ignoreList":[]}
@@ -8,14 +8,15 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
8
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
9
  var _betterSqlite = _interopRequireDefault(require("better-sqlite3"));
10
10
  var _schema = require("../store/schema");
11
- var _BetterSqlite;
11
+ var _process$env$JEST_WOR, _BetterSqlite;
12
+ var testDbName = `foobar-${(_process$env$JEST_WOR = process.env.JEST_WORKER_ID) != null ? _process$env$JEST_WOR : '0'}.db`;
12
13
  var BetterSqlite = exports.BetterSqlite = (0, _createClass2.default)(function BetterSqlite() {
13
14
  (0, _classCallCheck2.default)(this, BetterSqlite);
14
15
  this.db = null;
15
16
  });
16
17
  _BetterSqlite = BetterSqlite;
17
18
  BetterSqlite.openDB = function () {
18
- _BetterSqlite.db = new _betterSqlite.default('foobar.db');
19
+ _BetterSqlite.db = new _betterSqlite.default(testDbName);
19
20
  };
20
21
  BetterSqlite.closeDB = function () {
21
22
  _BetterSqlite.db.close();
@@ -1 +1 @@
1
- {"version":3,"names":["_betterSqlite","_interopRequireDefault","require","_schema","_BetterSqlite","BetterSqlite","exports","_createClass2","default","_classCallCheck2","db","openDB","Database","closeDB","close","getTables","_asyncToGenerator2","tablesInDb","pragma","dropAllTables","tableNames","Object","keys","tables","forEach","name","stmt","prepare","run","selectFromTable","_ref2","table","result","all","_x","apply","arguments"],"sourceRoot":"../../../src","sources":["test-utils/BetterSqlite.js"],"mappings":";;;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAAyC,IAAAE,aAAA;AAAA,IAE5BC,YAAY,GAAAC,OAAA,CAAAD,YAAA,OAAAE,aAAA,CAAAC,OAAA,WAAAH,aAAA;EAAA,IAAAI,gBAAA,CAAAD,OAAA,QAAAH,YAAA;EAAA,KACvBK,EAAE,GAAG,IAAI;AAAA;AAAAN,aAAA,GADEC,YAAY;AAAZA,YAAY,CAGhBM,MAAM,GAAG,YAAM;EACpBP,aAAA,CAAKM,EAAE,GAAG,IAAIE,qBAAQ,CAAC,WAAW,CAAC;AACrC,CAAC;AALUP,YAAY,CAOhBQ,OAAO,GAAG,YAAM;EACrBT,aAAA,CAAKM,EAAE,CAACI,KAAK,CAAC,CAAC;AACjB,CAAC;AATUT,YAAY,CAWhBU,SAAS,OAAAC,kBAAA,CAAAR,OAAA,EAAG,aAAY;EAC7B,IAAMS,UAAU,SAASb,aAAA,CAAKM,EAAE,CAACQ,MAAM,CAAC,aAAa,CAAC;EACtD,OAAOD,UAAU;AACnB,CAAC;AAdUZ,YAAY,CAgBhBc,aAAa,GAAG,YAAM;EAC3B,IAAMC,UAAU,GAAGC,MAAM,CAACC,IAAI,CAACC,cAAM,CAAC;EAEtCH,UAAU,CAACI,OAAO,CAAC,UAACC,IAAI,EAAK;IAC3B,IAAMC,IAAI,GAAGtB,aAAA,CAAKM,EAAE,CAACiB,OAAO,CAAC,wBAAwBF,IAAI,EAAE,CAAC;IAC5DC,IAAI,CAACE,GAAG,CAAC,CAAC;EACZ,CAAC,CAAC;AACJ,CAAC;AAvBUvB,YAAY,CAyBhBwB,eAAe;EAAA,IAAAC,KAAA,OAAAd,kBAAA,CAAAR,OAAA,EAAG,WAAOuB,KAAK,EAAK;IACxC,IAAML,IAAI,SAAStB,aAAA,CAAKM,EAAE,CAACiB,OAAO,CAAC,iBAAiBI,KAAK,EAAE,CAAC;IAC5D,IAAMC,MAAM,GAAGN,IAAI,CAACO,GAAG,CAAC,CAAC;IAEzB,OAAOD,MAAM;EACf,CAAC;EAAA,iBAAAE,EAAA;IAAA,OAAAJ,KAAA,CAAAK,KAAA,OAAAC,SAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_betterSqlite","_interopRequireDefault","require","_schema","_process$env$JEST_WOR","_BetterSqlite","testDbName","process","env","JEST_WORKER_ID","BetterSqlite","exports","_createClass2","default","_classCallCheck2","db","openDB","Database","closeDB","close","getTables","_asyncToGenerator2","tablesInDb","pragma","dropAllTables","tableNames","Object","keys","tables","forEach","name","stmt","prepare","run","selectFromTable","_ref2","table","result","all","_x","apply","arguments"],"sourceRoot":"../../../src","sources":["test-utils/BetterSqlite.js"],"mappings":";;;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAAyC,IAAAE,qBAAA,EAAAC,aAAA;AAGzC,IAAMC,UAAU,GAAG,WAAAF,qBAAA,GAAUG,OAAO,CAACC,GAAG,CAACC,cAAc,YAAAL,qBAAA,GAAI,GAAG,KAAK;AAAC,IAEvDM,YAAY,GAAAC,OAAA,CAAAD,YAAA,OAAAE,aAAA,CAAAC,OAAA,WAAAH,aAAA;EAAA,IAAAI,gBAAA,CAAAD,OAAA,QAAAH,YAAA;EAAA,KACvBK,EAAE,GAAG,IAAI;AAAA;AAAAV,aAAA,GADEK,YAAY;AAAZA,YAAY,CAGhBM,MAAM,GAAG,YAAM;EACpBX,aAAA,CAAKU,EAAE,GAAG,IAAIE,qBAAQ,CAACX,UAAU,CAAC;AACpC,CAAC;AALUI,YAAY,CAOhBQ,OAAO,GAAG,YAAM;EACrBb,aAAA,CAAKU,EAAE,CAACI,KAAK,CAAC,CAAC;AACjB,CAAC;AATUT,YAAY,CAWhBU,SAAS,OAAAC,kBAAA,CAAAR,OAAA,EAAG,aAAY;EAC7B,IAAMS,UAAU,SAASjB,aAAA,CAAKU,EAAE,CAACQ,MAAM,CAAC,aAAa,CAAC;EACtD,OAAOD,UAAU;AACnB,CAAC;AAdUZ,YAAY,CAgBhBc,aAAa,GAAG,YAAM;EAC3B,IAAMC,UAAU,GAAGC,MAAM,CAACC,IAAI,CAACC,cAAM,CAAC;EAEtCH,UAAU,CAACI,OAAO,CAAC,UAACC,IAAI,EAAK;IAC3B,IAAMC,IAAI,GAAG1B,aAAA,CAAKU,EAAE,CAACiB,OAAO,CAAC,wBAAwBF,IAAI,EAAE,CAAC;IAC5DC,IAAI,CAACE,GAAG,CAAC,CAAC;EACZ,CAAC,CAAC;AACJ,CAAC;AAvBUvB,YAAY,CAyBhBwB,eAAe;EAAA,IAAAC,KAAA,OAAAd,kBAAA,CAAAR,OAAA,EAAG,WAAOuB,KAAK,EAAK;IACxC,IAAML,IAAI,SAAS1B,aAAA,CAAKU,EAAE,CAACiB,OAAO,CAAC,iBAAiBI,KAAK,EAAE,CAAC;IAC5D,IAAMC,MAAM,GAAGN,IAAI,CAACO,GAAG,CAAC,CAAC;IAEzB,OAAOD,MAAM;EACf,CAAC;EAAA,iBAAAE,EAAA;IAAA,OAAAJ,KAAA,CAAAK,KAAA,OAAAC,SAAA;EAAA;AAAA","ignoreList":[]}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "8.13.19"
2
+ "version": "8.14.0"
3
3
  }
@@ -15,6 +15,50 @@ export type ChatProps = Pick<ChatContextValue, 'client'> & Partial<Pick<ChatCont
15
15
  * Enables offline storage and loading for chat data.
16
16
  */
17
17
  enableOfflineSupport?: boolean;
18
+ /**
19
+ * Encrypts the offline database at rest with SQLCipher, using the key this
20
+ * resolves to. Only relevant when `enableOfflineSupport` is enabled. Leaving it
21
+ * unset keeps the offline database unencrypted, which is the default.
22
+ *
23
+ * Requires a native build of `@op-engineering/op-sqlite` that includes SQLCipher.
24
+ * Add the following to your application's `package.json` and rebuild the native
25
+ * app - without the flag the key is accepted and then silently ignored:
26
+ *
27
+ * ```json
28
+ * { "op-sqlite": { "sqlcipher": true } }
29
+ * ```
30
+ *
31
+ * **Wrap `<Chat>` in an error boundary.** If the database cannot be opened with
32
+ * the encryption you asked for, `<Chat>` throws a {@link SqliteClientError}
33
+ * from render instead of continuing without it. The SDK deliberately takes no
34
+ * recovery action of its own - it never deletes data, and never silently falls
35
+ * back to an unencrypted or absent cache. Discriminate on `code`:
36
+ *
37
+ * - `OFFLINE_DB_UNREADABLE` - the file exists but this key cannot read it (the
38
+ * key changed, or the database predates encryption). **Recommended recovery:
39
+ * `SqliteClient.deleteDatabase()`, then re-mount `<Chat>`.** The contents are a
40
+ * cache and are refetched from the server; the exception is actions queued while
41
+ * offline, which are lost - prompt the user first if that matters to you.
42
+ * - `ENCRYPTION_KEY_UNAVAILABLE` - the key could not be read (a locked keychain, a
43
+ * launch before first unlock). The database is untouched. **Recommended
44
+ * recovery: re-mount to retry** once the key is readable - for example when the
45
+ * app next returns to the foreground.
46
+ * - `SQLCIPHER_BUILD_MISSING` - the native build has no SQLCipher, so the key
47
+ * would be ignored and the database written in plaintext. Not recoverable at
48
+ * runtime; it needs the build flag above and a new binary. **Recommended
49
+ * recovery: re-mount with `enableOfflineSupport={false}`** so nothing is
50
+ * persisted unencrypted.
51
+ *
52
+ * The key must be **stable for the lifetime of the database file**. There is no
53
+ * rekey path, so a key that changes costs one `OFFLINE_DB_UNREADABLE` and a
54
+ * rebuild. To rotate without paying that, rotate a key-encryption key and keep the
55
+ * database key it protects unchanged (envelope encryption).
56
+ *
57
+ * Switching encryption on, or back off, leaves a database from the other mode on
58
+ * disk and so raises `OFFLINE_DB_UNREADABLE` once in each direction. Deleting it
59
+ * from your boundary is all that is needed.
60
+ */
61
+ getOfflineDbEncryptionKey?: () => Promise<string | undefined>;
18
62
  /**
19
63
  * Instance of Streami18n class should be provided to Chat component to enable internationalization.
20
64
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/Chat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAgC,MAAM,OAAO,CAAC;AAW/E,OAAO,EAAE,gBAAgB,EAAgB,MAAM,wCAAwC,CAAC;AAExF,OAAO,EAAE,WAAW,EAA2B,MAAM,0CAA0C,CAAC;AAChG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yCAAyC,CAAC;AAYrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAK9D,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GACtD,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,sBAAsB,CAAC,CAAC,GAAG;IAC3E;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkDG;IACH,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9C;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;CAC5B,CAAC;AAuJJ;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,IAAI,GAAI,OAAO,iBAAiB,CAAC,SAAS,CAAC,sBAIvD,CAAC"}
1
+ {"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/Chat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAgC,MAAM,OAAO,CAAC;AAY/E,OAAO,EAAE,gBAAgB,EAAgB,MAAM,wCAAwC,CAAC;AAExF,OAAO,EAAE,WAAW,EAA2B,MAAM,0CAA0C,CAAC;AAChG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yCAAyC,CAAC;AAWrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAK9D,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GACtD,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,sBAAsB,CAAC,CAAC,GAAG;IAC3E;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,yBAAyB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkDG;IACH,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9C;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;CAC5B,CAAC;AA6IJ;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,IAAI,GAAI,OAAO,iBAAiB,CAAC,SAAS,CAAC,sBAIvD,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { StreamChat } from 'stream-chat';
2
+ export type InitializeOfflineDbOptions = {
3
+ /**
4
+ * Encrypts the offline database at rest with SQLCipher, using the key this resolves
5
+ * to. Leaving it unset opens the database unencrypted, which is the default. See
6
+ * `ChatProps.getOfflineDbEncryptionKey` for the build flag it requires, the stability
7
+ * requirement, and how failures are surfaced.
8
+ */
9
+ getEncryptionKey?: () => Promise<string | undefined>;
10
+ };
11
+ export type UseInitializeOfflineDbParams = {
12
+ client: StreamChat;
13
+ /** Whether offline support is enabled at all. */
14
+ enabled: boolean;
15
+ options?: InitializeOfflineDbOptions;
16
+ userID?: string;
17
+ };
18
+ /**
19
+ * Attaches an offline database to the client and initializes it for a user.
20
+ *
21
+ * **Raises** whatever prevented the database from opening, from render, so an error
22
+ * boundary above the caller can decide what to do. The offline database is never
23
+ * silently downgraded, because an integration that asked for encryption must not end
24
+ * up with an unencrypted cache.
25
+ */
26
+ export declare const useInitializeOfflineDb: ({ client, enabled, options, userID, }: UseInitializeOfflineDbParams) => void;
27
+ //# sourceMappingURL=useInitializeOfflineDb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInitializeOfflineDb.d.ts","sourceRoot":"","sources":["../../../../../src/components/Chat/hooks/useInitializeOfflineDb.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9C,MAAM,MAAM,0BAA0B,GAAG;IACvC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,UAAU,CAAC;IACnB,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,uCAKpC,4BAA4B,SAqE9B,CAAC"}
@@ -25,7 +25,7 @@ export { default as ptBRTranslations } from './i18n/pt-br.json';
25
25
  export { default as ruTranslations } from './i18n/ru.json';
26
26
  export { default as trTranslations } from './i18n/tr.json';
27
27
  export * from './state-store';
28
- export { SqliteClient } from './store/SqliteClient';
28
+ export { SqliteClient, SqliteClientError, type SqliteClientErrorCode } from './store/SqliteClient';
29
29
  export { OfflineDB } from './store/OfflineDB';
30
30
  export { version } from './version.json';
31
31
  import * as OfflineStoreApis from './store/apis';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,6IAA6I;AAC7I,OAAO,kBAAkB,CAAC;AAC1B,OAAO,aAAa,CAAC;AAErB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACpG,cAAc,YAAY,CAAC;AAE3B,cAAc,SAAS,CAAC;AAExB,cAAc,eAAe,CAAC;AAE9B,cAAc,eAAe,CAAC;AAE9B,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,mCAAmC,CAAC;AAClD,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3D,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGzC,OAAO,KAAK,gBAAgB,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,eAAO,MAAM,4BAA4B,qBAA8C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,6IAA6I;AAC7I,OAAO,kBAAkB,CAAC;AAC1B,OAAO,aAAa,CAAC;AAErB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACpG,cAAc,YAAY,CAAC;AAE3B,cAAc,SAAS,CAAC;AAExB,cAAc,eAAe,CAAC;AAE9B,cAAc,eAAe,CAAC;AAE9B,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,mCAAmC,CAAC;AAClD,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3D,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGzC,OAAO,KAAK,gBAAgB,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,eAAO,MAAM,4BAA4B,qBAA8C,CAAC"}
@@ -1,8 +1,14 @@
1
1
  import { AbstractOfflineDB, ExecuteBatchDBQueriesType, StreamChat } from 'stream-chat';
2
2
  import type { DBGetAppSettingsType, DBGetChannelsForQueryType, DBGetChannelsType, DBGetLastSyncedAtType, DBUpsertAppSettingsType, DBUpsertUserSyncStatusType } from 'stream-chat';
3
+ import { SqliteClientError } from './SqliteClient';
3
4
  export declare class OfflineDB extends AbstractOfflineDB {
4
- constructor({ client }: {
5
+ constructor({ client, getEncryptionKey, }: {
5
6
  client: StreamChat;
7
+ /**
8
+ * Supplies the SQLCipher key the offline database is opened with. See
9
+ * {@link SqliteClient.getEncryptionKey} for the stability requirement.
10
+ */
11
+ getEncryptionKey?: () => Promise<string | undefined>;
6
12
  });
7
13
  upsertCidsForQuery: ({ cids, filters, execute, sort, }: {
8
14
  cids: string[];
@@ -119,6 +125,15 @@ export declare class OfflineDB extends AbstractOfflineDB {
119
125
  }) => Promise<boolean>;
120
126
  resetDB: () => Promise<void>;
121
127
  executeSqlBatch: (queries: import("./types").PreparedBatchQueries[]) => Promise<void>;
128
+ /**
129
+ * Why the most recent {@link initializeDB} failed, if it did.
130
+ *
131
+ * `AbstractOfflineDB.init` catches whatever `initializeDB` throws and does not
132
+ * re-throw it, so a caller has no way to see the reason. Recording it here on the
133
+ * way out gives the caller something to read back once `init` has settled. Kept on
134
+ * the instance rather than a static so two clients cannot overwrite each other.
135
+ */
136
+ initializationError: SqliteClientError | undefined;
122
137
  initializeDB: () => Promise<boolean>;
123
138
  }
124
139
  //# sourceMappingURL=OfflineDB.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OfflineDB.d.ts","sourceRoot":"","sources":["../../../src/store/OfflineDB.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,aAAa,CAAC;AAKrB,qBAAa,SAAU,SAAQ,iBAAiB;gBAClC,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,UAAU,CAAA;KAAE;IAI9C,kBAAkB;;eALG,CAAC;eACtB,CAAD;YAAiB,CAAC;uDAI2B;IAE5C,cAAc;;eAGiB,CAAC;2BAAgC,CAAC;uDAH7B;IAGpC,oBAAoB,GAAI,mCAAmC,0BAA0B,kDACR;IAG7E,iBAAiB,GAAI,kCAAkC,uBAAuB,kDACL;IAEzE,UAAU;;eAjBK,CAAC;uDAiBY;IAE5B,WAAW;;eAVF,CAAA;uDAUqB;IAE9B,QAAQ;;;iBAhBR,CADF;8DAiB0B;IAExB,WAAW;;iBA9BW,CAAC;eACR,CAAC;uDA6Bc;IAE9B,iBAAiB;;eAzBZ,CAAA;uDAyBqC;IAE1C,WAAW;;;eAzBD,CAAC;uDAyBmB;IAE9B,cAAc;;eAnB8D,CAAC;uDAmBzC;IAEpC,aAAa;;;eA1BH,CAAC;uDA0BuB;IAElC,aAAa;;eAvBqB,CAAC;uDAuBD;IAGlC,WAAW,GAAI,kBAAkB,iBAAiB,2EACa;IAG/D,mBAAmB,GAAI,2BAA2B,yBAAyB,kFACF;IAEzE,iBAAiB,0BAAwB;IAGzC,eAAe,GAAI,YAAY,qBAAqB,iCACH;IAEjD,cAAc,GAAI,YAAY,oBAAoB,kEACF;IAEhD,YAAY;;eAzCT,CAAC;YAAwC,CAAA;aAAuB,CAAC;mEAyCvB;IAE7C,cAAc,4EAAsB;IAGpC,iBAAiB,QAAO,OAAO,CAAC,yBAAyB,CAAC,CAIxD;IAEF,iBAAiB;;uDAAyB;IAE1C,cAAc;;eAhEqB,CAAC;eAI5B,CAAC;uDA4D2B;IAEpC,YAAY;;;eArEb,CAAC;uDAqEgC;IAEhC,aAAa;;eA5EJ,CAAC;uDA4EwB;IAElC,wBAAwB;;oBAhFR,CAAC;eACF,CAAC;mDA+EwC;IAExD,gBAAgB;;eA9DQ,CAAC;uDA8De;IAExC,iBAAiB;;eAlFjB,CAAD;kDAkFuC;IAEtC,iBAAiB,6HAAyB;IAE1C,eAAe;iBAlFJ,CAAC;uDAkF0B;IAEtC,cAAc;;;eAtEX,CAAC;uDAsEgC;IAEpC,cAAc;;;eA5EW,CAAC;uDA4EU;IAEpC,aAAa;;2BAAqB;IAElC,OAAO,sBAAwB;IAE/B,eAAe,uEAAgC;IAE/C,YAAY,yBAAmC;CAChD"}
1
+ {"version":3,"file":"OfflineDB.d.ts","sourceRoot":"","sources":["../../../src/store/OfflineDB.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAgB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEjE,qBAAa,SAAU,SAAQ,iBAAiB;gBAClC,EACV,MAAM,EACN,gBAAgB,GACjB,EAAE;QACD,MAAM,EAAE,UAAU,CAAC;QACnB;;;WAGG;QACH,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;KACtD;IAQD,kBAAkB;;eAnBhB,CAAC;eAA2B,CAAC;YAC/B,CAAF;uDAkB8C;IAE5C,cAAc;;eAXiB,CAAC;2BAE9B,CAAF;uDASoC;IAGpC,oBAAoB,GAAI,mCAAmC,0BAA0B,kDACR;IAG7E,iBAAiB,GAAI,kCAAkC,uBAAuB,kDACL;IAEzE,UAAU;;eA/BZ,CADA;uDAgC8B;IAE5B,WAAW;;eA1B0D,CAAA;uDA0BvC;IAE9B,QAAQ;;;iBA9BN,CAAD;8DA8BuB;IAExB,WAAW;;iBA5CW,CAAC;eACR,CAAC;uDA2Cc;IAE9B,iBAAiB;;eAzCmC,CAAC;uDAyCX;IAE1C,WAAW;;;eAtCI,CAAC;uDAsCc;IAE9B,cAAc;;eA/BH,CAAC;uDA+BwB;IAEpC,aAAa;;;eAxCC,CAAC;uDAwCmB;IAElC,aAAa;;eArCqB,CAAC;uDAqCD;IAGlC,WAAW,GAAI,kBAAkB,iBAAiB,2EACa;IAG/D,mBAAmB,GAAI,2BAA2B,yBAAyB,kFACF;IAEzE,iBAAiB,0BAAwB;IAGzC,eAAe,GAAI,YAAY,qBAAqB,iCACH;IAEjD,cAAc,GAAI,YAAY,oBAAoB,kEACF;IAEhD,YAAY;;eArDL,CAAC;YAAuC,CAAC;aAAuB,CAAC;mEAqD3B;IAE7C,cAAc,4EAAsB;IAGpC,iBAAiB,QAAO,OAAO,CAAC,yBAAyB,CAAC,CAIxD;IAEF,iBAAiB;;uDAAyB;IAE1C,cAAc;;eA7EZ,CAAD;eAGW,CAAC;uDA0EuB;IAEpC,YAAY;;;eAnFb,CAAC;uDAmFgC;IAEhC,aAAa;;eA1FJ,CAAC;uDA0FwB;IAElC,wBAAwB;;oBA9FR,CAAC;eACF,CAAC;mDA6FwC;IAExD,gBAAgB;;eA1EY,CAAC;uDA0EW;IAExC,iBAAiB;;eAhGjB,CAAD;kDAgGuC;IAEtC,iBAAiB,6HAAyB;IAE1C,eAAe;iBAhGJ,CAAC;uDAgG0B;IAEtC,cAAc;;;eAlFP,CAAC;uDAkF4B;IAEpC,cAAc;;;eA1F+B,CAAC;uDA0FV;IAEpC,aAAa;;2BAAqB;IAElC,OAAO,sBAAwB;IAE/B,eAAe,uEAAgC;IAE/C;;;;;;;OAOG;IACH,mBAAmB,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAEnD,YAAY,yBAWV;CACH"}
@@ -1,6 +1,18 @@
1
1
  import type { DB } from '@op-engineering/op-sqlite';
2
2
  import { Logger } from 'stream-chat';
3
3
  import type { PreparedBatchQueries, Scalar } from './types';
4
+ /**
5
+ * Why the offline database could not be opened. The first two only arise when
6
+ * {@link SqliteClient.getEncryptionKey} is set; `OFFLINE_DB_UNREADABLE` can also mean
7
+ * plain corruption, or a database left behind from the other encryption mode.
8
+ */
9
+ export type SqliteClientErrorCode = 'SQLCIPHER_BUILD_MISSING' | 'ENCRYPTION_KEY_UNAVAILABLE' | 'OFFLINE_DB_UNREADABLE';
10
+ export declare class SqliteClientError extends Error {
11
+ readonly code: SqliteClientErrorCode;
12
+ constructor(code: SqliteClientErrorCode, message: string, options?: {
13
+ cause?: unknown;
14
+ });
15
+ }
4
16
  /**
5
17
  * SqliteClient takes care of any direct interaction with sqlite.
6
18
  * This way usage @op-engineering/op-sqlite package is scoped to a single class/file.
@@ -11,14 +23,63 @@ export declare class SqliteClient {
11
23
  static dbLocation: string;
12
24
  static logger: Logger | undefined;
13
25
  static db: DB | undefined;
26
+ /**
27
+ * Supplies the SQLCipher key the offline database is opened with; `undefined`
28
+ * opens it unencrypted, which is the default. The key must be stable for the
29
+ * lifetime of the database file - there is no rekey path, so a database this key
30
+ * cannot read raises `OFFLINE_DB_UNREADABLE` on the first page read. The file is
31
+ * left untouched; recovery is `SqliteClient.deleteDatabase()` and a re-mount.
32
+ */
33
+ static getEncryptionKey: (() => Promise<string | undefined>) | undefined;
34
+ /** Key resolved by {@link preflightEncryption}, consumed by the next {@link openDB}. */
35
+ private static preflightedKey;
36
+ /** Busy/disk/memory failures. Checked first: wiping over these destroys a good db. */
37
+ private static TRANSIENT_ERROR;
38
+ /**
39
+ * The bytes on disk cannot be read with the key we have: wrong/rotated key,
40
+ * plaintext-encrypted mismatch or corruption. SQLCipher has no decrypt specific
41
+ * code and overloads NOTADB (26), occasionally CORRUPT (11).
42
+ */
43
+ private static UNREADABLE_ERROR;
14
44
  static getDbVersion: () => number;
15
45
  static setDbVersion: (version: number) => number;
46
+ /**
47
+ * Records and re-throws. Deliberately does not write to the console: the error is
48
+ * thrown, so logging it here would duplicate whatever the caller's error boundary
49
+ * reports - and in dev React already logs every boundary-caught error, which is what
50
+ * LogBox turns red.
51
+ */
52
+ private static recordError;
53
+ /**
54
+ * Resolves the encryption key without opening the database, so callers can decide
55
+ * whether to attach an `OfflineDB` at all. Parts of the client write through
56
+ * `client.offlineDb` without checking that it initialized (`queryChannels` upserts
57
+ * into it), so attaching one we cannot open turns those writes into rejections.
58
+ *
59
+ * Throws {@link SqliteClientError}. The key is handed to the next
60
+ * {@link openDB} rather than read from `getEncryptionKey` twice.
61
+ */
62
+ static preflightEncryption: () => Promise<void>;
63
+ /**
64
+ * The key to open with, or `undefined` when the database is meant to be
65
+ * unencrypted. Throws rather than silently falling back to an unencrypted
66
+ * database, which would hand an integration that asked for encryption a plaintext
67
+ * cache of its users' messages.
68
+ */
69
+ private static resolveEncryptionKey;
16
70
  static openDB: () => Promise<void>;
17
71
  static closeDB: () => void;
18
72
  static executeSqlBatch: (queries: PreparedBatchQueries[]) => Promise<void>;
19
73
  static executeSql: (query: string, params?: Scalar[]) => Promise<Record<string, string>[]>;
20
74
  static dropTables: () => Promise<void>;
21
75
  static deleteDatabase: () => boolean;
76
+ /**
77
+ * Whether the file cannot be read with the key we have, as opposed to being
78
+ * temporarily unavailable (busy, locked, disk). Works off message text because
79
+ * op-sqlite rejects with a plain Error and this class re-wraps those messages, so
80
+ * no numeric code survives. Drives `OFFLINE_DB_UNREADABLE`.
81
+ */
82
+ static isUnreadableDbError: (e: unknown) => boolean;
22
83
  static initializeDatabase: () => Promise<boolean>;
23
84
  static updateUserPragmaVersion: (version: number) => Promise<void>;
24
85
  static getUserPragmaVersion: () => Promise<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../../../src/store/SqliteClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAiB,MAAM,2BAA2B,CAAC;AAkBnE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAKrC,OAAO,KAAK,EAAE,oBAAoB,EAAmB,MAAM,EAAS,MAAM,SAAS,CAAC;AAEpF;;;GAGG;AACH,qBAAa,YAAY;IACvB,MAAM,CAAC,SAAS,SAAM;IAEtB,MAAM,CAAC,MAAM,SAAW;IACxB,MAAM,CAAC,UAAU,SAAe;IAChC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC;IAE1B,MAAM,CAAC,YAAY,eAAgC;IAEnD,MAAM,CAAC,YAAY,GAAI,SAAS,MAAM,YAAwC;IAE9E,MAAM,CAAC,MAAM,sBAmBX;IAEF,MAAM,CAAC,OAAO,aAaZ;IAEF,MAAM,CAAC,eAAe,GAAU,SAAS,oBAAoB,EAAE,mBA2B7D;IAEF,MAAM,CAAC,UAAU,GAAU,OAAO,MAAM,EAAE,SAAS,MAAM,EAAE,uCAezD;IAEF,MAAM,CAAC,UAAU,sBASf;IAEF,MAAM,CAAC,cAAc,gBAoBnB;IAEF,MAAM,CAAC,kBAAkB,yBAmCvB;IAEF,MAAM,CAAC,uBAAuB,GAAU,SAAS,MAAM,mBAMrD;IAEF,MAAM,CAAC,oBAAoB,wBAezB;IAEF,MAAM,CAAC,OAAO,sBAOZ;CACH"}
1
+ {"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../../../src/store/SqliteClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAiB,MAAM,2BAA2B,CAAC;AAkBnE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAKrC,OAAO,KAAK,EAAE,oBAAoB,EAAmB,MAAM,EAAS,MAAM,SAAS,CAAC;AAEpF;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAC7B,yBAAyB,GACzB,4BAA4B,GAC5B,uBAAuB,CAAC;AAE5B,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,SAAgB,IAAI,EAAE,qBAAqB,CAAC;gBAEhC,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAQxF;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,MAAM,CAAC,SAAS,SAAM;IAEtB,MAAM,CAAC,MAAM,SAAW;IACxB,MAAM,CAAC,UAAU,SAAe;IAChC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC;IAE1B;;;;;;OAMG;IACH,MAAM,CAAC,gBAAgB,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC;IAEzE,wFAAwF;IACxF,OAAO,CAAC,MAAM,CAAC,cAAc,CAAqB;IAElD,sFAAsF;IACtF,OAAO,CAAC,MAAM,CAAC,eAAe,CACiG;IAE/H;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB,CACsG;IAErI,MAAM,CAAC,YAAY,eAAgC;IAEnD,MAAM,CAAC,YAAY,GAAI,SAAS,MAAM,YAAwC;IAE9E;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW,CAIxB;IAEF;;;;;;;;OAQG;IACH,MAAM,CAAC,mBAAmB,sBASxB;IAEF;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAoDjC;IAEF,MAAM,CAAC,MAAM,sBA8BX;IAEF,MAAM,CAAC,OAAO,aAaZ;IAEF,MAAM,CAAC,eAAe,GAAU,SAAS,oBAAoB,EAAE,mBA2B7D;IAEF,MAAM,CAAC,UAAU,GAAU,OAAO,MAAM,EAAE,SAAS,MAAM,EAAE,uCAezD;IAEF,MAAM,CAAC,UAAU,sBASf;IAEF,MAAM,CAAC,cAAc,gBAoBnB;IAEF;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,GAAI,GAAG,OAAO,aAQtC;IAEF,MAAM,CAAC,kBAAkB,QAAa,OAAO,CAAC,OAAO,CAAC,CAqDpD;IAEF,MAAM,CAAC,uBAAuB,GAAU,SAAS,MAAM,mBAMrD;IAEF,MAAM,CAAC,oBAAoB,wBAezB;IAEF,MAAM,CAAC,OAAO,sBAOZ;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"BetterSqlite.d.ts","sourceRoot":"","sources":["../../../src/test-utils/BetterSqlite.js"],"names":[],"mappings":"AAIA;IAGE,0BAEE;IAEF,2BAEE;IAEF,yCAGE;IAEF,iCAOE;IAEF,yBAAgC,UAAK,wBAKnC;IA7BF,SAAU;CA8BX"}
1
+ {"version":3,"file":"BetterSqlite.d.ts","sourceRoot":"","sources":["../../../src/test-utils/BetterSqlite.js"],"names":[],"mappings":"AAOA;IAGE,0BAEE;IAEF,2BAEE;IAEF,yCAGE;IAEF,iCAOE;IAEF,yBAAgC,UAAK,wBAKnC;IA7BF,SAAU;CA8BX"}
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": "8.13.19",
4
+ "version": "8.14.0",
5
5
  "author": {
6
6
  "company": "Stream.io Inc",
7
7
  "name": "Stream.io Inc"