stream-chat-react-native-core 8.13.18 → 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.
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +4 -1
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/commonjs/components/Chat/Chat.js +10 -23
- package/lib/commonjs/components/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useInitializeOfflineDb.js +64 -0
- package/lib/commonjs/components/Chat/hooks/useInitializeOfflineDb.js.map +1 -0
- package/lib/commonjs/index.js +7 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/mock-builders/DB/mock.js +13 -1
- package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
- package/lib/commonjs/store/OfflineDB.js +15 -2
- package/lib/commonjs/store/OfflineDB.js.map +1 -1
- package/lib/commonjs/store/SqliteClient.js +94 -10
- package/lib/commonjs/store/SqliteClient.js.map +1 -1
- package/lib/commonjs/test-utils/BetterSqlite.js +3 -2
- package/lib/commonjs/test-utils/BetterSqlite.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +4 -1
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/module/components/Chat/Chat.js +10 -23
- package/lib/module/components/Chat/Chat.js.map +1 -1
- package/lib/module/components/Chat/hooks/useInitializeOfflineDb.js +64 -0
- package/lib/module/components/Chat/hooks/useInitializeOfflineDb.js.map +1 -0
- package/lib/module/index.js +7 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/mock-builders/DB/mock.js +13 -1
- package/lib/module/mock-builders/DB/mock.js.map +1 -1
- package/lib/module/store/OfflineDB.js +15 -2
- package/lib/module/store/OfflineDB.js.map +1 -1
- package/lib/module/store/SqliteClient.js +94 -10
- package/lib/module/store/SqliteClient.js.map +1 -1
- package/lib/module/test-utils/BetterSqlite.js +3 -2
- package/lib/module/test-utils/BetterSqlite.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +1 -1
- package/lib/typescript/components/Chat/Chat.d.ts +44 -0
- package/lib/typescript/components/Chat/Chat.d.ts.map +1 -1
- package/lib/typescript/components/Chat/hooks/useInitializeOfflineDb.d.ts +27 -0
- package/lib/typescript/components/Chat/hooks/useInitializeOfflineDb.d.ts.map +1 -0
- package/lib/typescript/hooks/useTranslatedMessage.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/store/OfflineDB.d.ts +16 -1
- package/lib/typescript/store/OfflineDB.d.ts.map +1 -1
- package/lib/typescript/store/SqliteClient.d.ts +61 -0
- package/lib/typescript/store/SqliteClient.d.ts.map +1 -1
- package/lib/typescript/test-utils/BetterSqlite.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/components/ChannelList/__tests__/ChannelList.test.js +87 -20
- package/src/components/ChannelList/hooks/usePaginatedChannels.ts +11 -6
- package/src/components/Chat/Chat.tsx +52 -18
- package/src/components/Chat/__tests__/ChatOfflineDbEncryption.test.tsx +248 -0
- package/src/components/Chat/hooks/useInitializeOfflineDb.ts +109 -0
- package/src/index.ts +1 -1
- package/src/mock-builders/DB/mock.ts +16 -1
- package/src/store/OfflineDB.ts +38 -3
- package/src/store/SqliteClient.ts +185 -1
- package/src/store/__tests__/SqliteClient.test.ts +258 -0
- package/src/test-utils/BetterSqlite.js +4 -1
- package/src/version.json +1 -1
|
@@ -4,11 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
exports.sqliteMock = void 0;
|
|
6
6
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
7
|
+
var _fs = require("fs");
|
|
7
8
|
var _betterSqlite = _interopRequireDefault(require("better-sqlite3"));
|
|
9
|
+
var _process$env$JEST_WOR;
|
|
8
10
|
var db;
|
|
11
|
+
var testDbName = `foobar-${(_process$env$JEST_WOR = process.env.JEST_WORKER_ID) != null ? _process$env$JEST_WOR : '0'}.db`;
|
|
9
12
|
var sqliteMock = exports.sqliteMock = {
|
|
13
|
+
isSQLCipher: function isSQLCipher() {
|
|
14
|
+
return true;
|
|
15
|
+
},
|
|
10
16
|
open: function open() {
|
|
11
|
-
db = new _betterSqlite.default(
|
|
17
|
+
db = new _betterSqlite.default(testDbName);
|
|
12
18
|
return {
|
|
13
19
|
close: function close() {
|
|
14
20
|
db.close();
|
|
@@ -17,6 +23,12 @@ var sqliteMock = exports.sqliteMock = {
|
|
|
17
23
|
status: 0
|
|
18
24
|
};
|
|
19
25
|
},
|
|
26
|
+
delete: function _delete() {
|
|
27
|
+
db.close();
|
|
28
|
+
(0, _fs.rmSync)(testDbName, {
|
|
29
|
+
force: true
|
|
30
|
+
});
|
|
31
|
+
},
|
|
20
32
|
execute: function () {
|
|
21
33
|
var _execute = (0, _asyncToGenerator2.default)(function* (queryInput, params) {
|
|
22
34
|
var query = queryInput.trim().toLowerCase();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_betterSqlite","_interopRequireDefault","
|
|
1
|
+
{"version":3,"names":["_fs","require","_betterSqlite","_interopRequireDefault","_process$env$JEST_WOR","db","testDbName","process","env","JEST_WORKER_ID","sqliteMock","exports","isSQLCipher","open","Sqlite3","close","message","status","delete","rmSync","force","execute","_execute","_asyncToGenerator2","default","queryInput","params","query","trim","toLowerCase","stmt","prepare","result","indexOf","modifiedParams","map","p","Number","Promise","resolve","all","rows","pragmaQueryTokens","split","pragma","run","undefined","_x","_x2","apply","arguments","executeBatch","_executeBatch","queriesArr","_loop","queryAndParams","staus","_x3"],"sourceRoot":"../../../../src","sources":["mock-builders/DB/mock.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
5
|
exports.OfflineDB = void 0;
|
|
6
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
6
7
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
7
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
8
9
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
@@ -18,7 +19,8 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
|
|
|
18
19
|
var OfflineDB = exports.OfflineDB = function (_AbstractOfflineDB) {
|
|
19
20
|
function OfflineDB(_ref) {
|
|
20
21
|
var _this;
|
|
21
|
-
var client = _ref.client
|
|
22
|
+
var client = _ref.client,
|
|
23
|
+
getEncryptionKey = _ref.getEncryptionKey;
|
|
22
24
|
(0, _classCallCheck2.default)(this, OfflineDB);
|
|
23
25
|
_this = _callSuper(this, OfflineDB, [{
|
|
24
26
|
client: client
|
|
@@ -106,7 +108,18 @@ var OfflineDB = exports.OfflineDB = function (_AbstractOfflineDB) {
|
|
|
106
108
|
_this.channelExists = api.channelExists;
|
|
107
109
|
_this.resetDB = _SqliteClient.SqliteClient.resetDB;
|
|
108
110
|
_this.executeSqlBatch = _SqliteClient.SqliteClient.executeSqlBatch;
|
|
109
|
-
_this.initializeDB =
|
|
111
|
+
_this.initializeDB = (0, _asyncToGenerator2.default)(function* () {
|
|
112
|
+
_this.initializationError = undefined;
|
|
113
|
+
try {
|
|
114
|
+
return yield _SqliteClient.SqliteClient.initializeDatabase();
|
|
115
|
+
} catch (error) {
|
|
116
|
+
if (error instanceof _SqliteClient.SqliteClientError) {
|
|
117
|
+
_this.initializationError = error;
|
|
118
|
+
}
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
_SqliteClient.SqliteClient.getEncryptionKey = getEncryptionKey;
|
|
110
123
|
return _this;
|
|
111
124
|
}
|
|
112
125
|
(0, _inherits2.default)(OfflineDB, _AbstractOfflineDB);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_streamChat","require","api","_interopRequireWildcard","_SqliteClient","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_callSuper","o","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","OfflineDB","exports","_AbstractOfflineDB","_ref","_this","client","_classCallCheck2","upsertCidsForQuery","upsertChannels","upsertUserSyncStatus","_ref2","userId","lastSyncedAt","execute","currentUserId","upsertAppSettings","_ref3","appSettings","upsertPoll","upsertDraft","getDraft","deleteDraft","upsertChannelData","upsertReads","upsertMessages","upsertMembers","updateMessage","getChannels","_ref4","cids","channelIds","getChannelsForQuery","_ref5","filters","sort","getChannelsForFilterSort","getAllChannelCids","getAllChannelIds","getLastSyncedAt","_ref6","getAppSettings","_ref7","getReactions","getReactionsForFilterSort","addPendingTask","updatePendingTask","Promise","resolve","deletePendingTask","deleteReaction","deleteMember","deleteChannel","deleteMessagesForChannel","dropPendingTasks","hardDeleteMessage","deleteMessage","softDeleteMessage","getPendingTasks","updateReaction","insertReaction","channelExists","resetDB","SqliteClient","executeSqlBatch","initializeDB","initializeDatabase","_inherits2","_createClass2","AbstractOfflineDB"],"sourceRoot":"../../../src","sources":["store/OfflineDB.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_streamChat","require","api","_interopRequireWildcard","_SqliteClient","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_callSuper","o","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","OfflineDB","exports","_AbstractOfflineDB","_ref","_this","client","getEncryptionKey","_classCallCheck2","upsertCidsForQuery","upsertChannels","upsertUserSyncStatus","_ref2","userId","lastSyncedAt","execute","currentUserId","upsertAppSettings","_ref3","appSettings","upsertPoll","upsertDraft","getDraft","deleteDraft","upsertChannelData","upsertReads","upsertMessages","upsertMembers","updateMessage","getChannels","_ref4","cids","channelIds","getChannelsForQuery","_ref5","filters","sort","getChannelsForFilterSort","getAllChannelCids","getAllChannelIds","getLastSyncedAt","_ref6","getAppSettings","_ref7","getReactions","getReactionsForFilterSort","addPendingTask","updatePendingTask","Promise","resolve","deletePendingTask","deleteReaction","deleteMember","deleteChannel","deleteMessagesForChannel","dropPendingTasks","hardDeleteMessage","deleteMessage","softDeleteMessage","getPendingTasks","updateReaction","insertReaction","channelExists","resetDB","SqliteClient","executeSqlBatch","initializeDB","_asyncToGenerator2","initializationError","undefined","initializeDatabase","error","SqliteClientError","_inherits2","_createClass2","AbstractOfflineDB"],"sourceRoot":"../../../src","sources":["store/OfflineDB.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -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
|
|
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
|
|
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
|
|
161
|
+
return _ref4.apply(this, arguments);
|
|
94
162
|
};
|
|
95
163
|
}();
|
|
96
164
|
SqliteClient.executeSql = function () {
|
|
97
|
-
var
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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;
|
|
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":[]}
|
package/lib/module/version.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePaginatedChannels.d.ts","sourceRoot":"","sources":["../../../../../src/components/ChannelList/hooks/usePaginatedChannels.ts"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,OAAO,EACL,cAAc,EACd,cAAc,EAEd,cAAc,EACd,WAAW,EACZ,MAAM,aAAa,CAAC;AAOrB,KAAK,UAAU,GAAG;IAChB,cAAc,EAAE,cAAc,CAAC;IAC/B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AAIF,KAAK,SAAS,GAAG,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,GAAG,mBAAmB,CAAC;AAE9F,MAAM,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAU1F,eAAO,MAAM,oBAAoB,GAAI,mEAMlC,UAAU;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"usePaginatedChannels.d.ts","sourceRoot":"","sources":["../../../../../src/components/ChannelList/hooks/usePaginatedChannels.ts"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,OAAO,EACL,cAAc,EACd,cAAc,EAEd,cAAc,EACd,WAAW,EACZ,MAAM,aAAa,CAAC;AAOrB,KAAK,UAAU,GAAG;IAChB,cAAc,EAAE,cAAc,CAAC;IAC/B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AAIF,KAAK,SAAS,GAAG,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,GAAG,mBAAmB,CAAC;AAE9F,MAAM,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAU1F,eAAO,MAAM,oBAAoB,GAAI,mEAMlC,UAAU;;;;;;;;;;;;CAqKZ,CAAC"}
|
|
@@ -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;
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTranslatedMessage.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTranslatedMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAMtE,eAAO,MAAM,oBAAoB,GAAI,UAAU,YAAY;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"useTranslatedMessage.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTranslatedMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAMtE,eAAO,MAAM,oBAAoB,GAAI,UAAU,YAAY;;;;;;;;;;;;;;;;;;;;;;;YAkB4/nB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aADvjoB,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;
|
|
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;
|
|
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"}
|