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.
- 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/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/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/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 +1 -1
- 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
|
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
5
|
exports.Chat = void 0;
|
|
6
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
7
6
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
8
|
var _reactNative = require("react-native");
|
|
10
9
|
var _useAppSettings = require("./hooks/useAppSettings");
|
|
11
10
|
var _useCreateChatContext = require("./hooks/useCreateChatContext");
|
|
11
|
+
var _useInitializeOfflineDb = require("./hooks/useInitializeOfflineDb");
|
|
12
12
|
var _useIsOnline2 = require("./hooks/useIsOnline");
|
|
13
13
|
var _useMutedUsers = require("./hooks/useMutedUsers");
|
|
14
14
|
var _ChannelsStateContext = require("../../contexts/channelsStateContext/ChannelsStateContext");
|
|
@@ -20,7 +20,6 @@ var _hooks = require("../../hooks");
|
|
|
20
20
|
var _useStreami18n = require("../../hooks/useStreami18n");
|
|
21
21
|
var _init = _interopRequireDefault(require("../../init"));
|
|
22
22
|
var _native = require("../../native");
|
|
23
|
-
var _OfflineDB = require("../../store/OfflineDB");
|
|
24
23
|
var _version = require("../../version.json");
|
|
25
24
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
26
25
|
var _this = this,
|
|
@@ -42,6 +41,7 @@ var ChatWithContext = function ChatWithContext(props) {
|
|
|
42
41
|
closeConnectionOnBackground = _props$closeConnectio === void 0 ? true : _props$closeConnectio,
|
|
43
42
|
_props$enableOfflineS = props.enableOfflineSupport,
|
|
44
43
|
enableOfflineSupport = _props$enableOfflineS === void 0 ? false : _props$enableOfflineS,
|
|
44
|
+
getOfflineDbEncryptionKey = props.getOfflineDbEncryptionKey,
|
|
45
45
|
i18nInstance = props.i18nInstance,
|
|
46
46
|
_props$ImageComponent = props.ImageComponent,
|
|
47
47
|
ImageComponent = _props$ImageComponent === void 0 ? _reactNative.Image : _props$ImageComponent,
|
|
@@ -99,27 +99,14 @@ var ChatWithContext = function ChatWithContext(props) {
|
|
|
99
99
|
var setActiveChannel = function setActiveChannel(newChannel) {
|
|
100
100
|
return setChannel(newChannel);
|
|
101
101
|
};
|
|
102
|
-
(0,
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
client: client
|
|
111
|
-
}));
|
|
112
|
-
}
|
|
113
|
-
if (client.offlineDb) {
|
|
114
|
-
yield client.offlineDb.init(userID);
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
return function initializeDatabase() {
|
|
118
|
-
return _ref2.apply(this, arguments);
|
|
119
|
-
};
|
|
120
|
-
}();
|
|
121
|
-
initializeDatabase();
|
|
122
|
-
}, [userID, enableOfflineSupport, client]);
|
|
102
|
+
(0, _useInitializeOfflineDb.useInitializeOfflineDb)({
|
|
103
|
+
client: client,
|
|
104
|
+
enabled: enableOfflineSupport,
|
|
105
|
+
options: {
|
|
106
|
+
getEncryptionKey: getOfflineDbEncryptionKey
|
|
107
|
+
},
|
|
108
|
+
userID: userID
|
|
109
|
+
});
|
|
123
110
|
(0, _react.useEffect)(function () {
|
|
124
111
|
if (!client) {
|
|
125
112
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useAppSettings","_useCreateChatContext","_useIsOnline2","_useMutedUsers","_ChannelsStateContext","_ChatContext","_DebugContext","_ThemeContext","_TranslationContext","_hooks","_useStreami18n","_init","_interopRequireDefault","_native","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useAppSettings","_useCreateChatContext","_useInitializeOfflineDb","_useIsOnline2","_useMutedUsers","_ChannelsStateContext","_ChatContext","_DebugContext","_ThemeContext","_TranslationContext","_hooks","_useStreami18n","_init","_interopRequireDefault","_native","_version","_jsxRuntime","_this","_jsxFileName","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","init","selector","nextValue","initialized","userId","ChatWithContext","props","_client$user2","_useStateStore","_client$offlineDb","children","client","_props$closeConnectio","closeConnectionOnBackground","_props$enableOfflineS","enableOfflineSupport","getOfflineDbEncryptionKey","i18nInstance","_props$ImageComponent","ImageComponent","Image","isMessageAIGenerated","_props$LoadingIndicat","LoadingIndicator","style","_useState","useState","_useState2","_slicedToArray2","channel","setChannel","translators","useStreami18n","translationContextValue","useMemo","_client$user","assign","userLanguage","user","language","DEFAULT_USER_LANGUAGE","_useIsOnline","useIsOnline","connectionRecovering","isOnline","_ref","useStateStore","offlineDb","state","offlineDbInitialized","offlineDbUserId","mutedUsers","useMutedUsers","debugRef","useDebugContext","isDebugModeEnabled","__DEV__","current","userID","useEffect","sdkName","NativeHandlers","SDK","replace","sdkIdentifier","name","version","deviceIdentifier","os","Platform","OS","Version","recoverStateOnReconnect","preventThreadCleanup","persistUserOnConnectionFailure","setEventType","setSendEventParams","action","data","setActiveChannel","newChannel","useInitializeOfflineDb","enabled","options","getEncryptionKey","threads","registerSubscriptions","polls","reminders","initTimers","unregisterSubscriptions","clearTimers","initialisedDatabase","appSettings","useAppSettings","chatContext","useCreateChatContext","jsx","ChatProvider","value","TranslationProvider","ThemeProvider","ChannelsStateProvider","Chat","exports","_useTheme","useTheme","theme"],"sourceRoot":"../../../../src","sources":["components/Chat/Chat.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAIA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAH,OAAA;AACA,IAAAI,uBAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AAEA,IAAAO,qBAAA,GAAAP,OAAA;AACA,IAAAQ,YAAA,GAAAR,OAAA;AACA,IAAAS,aAAA,GAAAT,OAAA;AACA,IAAAU,aAAA,GAAAV,OAAA;AAEA,IAAAW,mBAAA,GAAAX,OAAA;AAIA,IAAAY,MAAA,GAAAZ,OAAA;AACA,IAAAa,cAAA,GAAAb,OAAA;AACA,IAAAc,KAAA,GAAAC,sBAAA,CAAAf,OAAA;AAEA,IAAAgB,OAAA,GAAAhB,OAAA;AAGA,IAAAiB,QAAA,GAAAjB,OAAA;AAA6C,IAAAkB,WAAA,GAAAlB,OAAA;AAAA,IAAAmB,KAAA;EAAAC,YAAA;AAAA,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAvB,wBAAAuB,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAE7C,IAAAW,aAAI,EAAC,CAAC;AAoJN,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAIC,SAAyB;EAAA,OACxC;IACCC,WAAW,EAAED,SAAS,CAACC,WAAW;IAClCC,MAAM,EAAEF,SAAS,CAACE;EACpB,CAAC;AAAA,CAAU;AAEb,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,KAAmC,EAAK;EAAA,IAAAC,aAAA,EAAAC,cAAA,EAAAC,iBAAA;EAC/D,IACEC,QAAQ,GAUNJ,KAAK,CAVPI,QAAQ;IACRC,MAAM,GASJL,KAAK,CATPK,MAAM;IAAAC,qBAAA,GASJN,KAAK,CARPO,2BAA2B;IAA3BA,2BAA2B,GAAAD,qBAAA,cAAG,IAAI,GAAAA,qBAAA;IAAAE,qBAAA,GAQhCR,KAAK,CAPPS,oBAAoB;IAApBA,oBAAoB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA;IAC5BE,yBAAyB,GAMvBV,KAAK,CANPU,yBAAyB;IACzBC,YAAY,GAKVX,KAAK,CALPW,YAAY;IAAAC,qBAAA,GAKVZ,KAAK,CAJPa,cAAc;IAAdA,cAAc,GAAAD,qBAAA,cAAGE,kBAAK,GAAAF,qBAAA;IACtBG,oBAAoB,GAGlBf,KAAK,CAHPe,oBAAoB;IAAAC,qBAAA,GAGlBhB,KAAK,CAFPiB,gBAAgB;IAAhBA,gBAAgB,GAAAD,qBAAA,cAAG,IAAI,GAAAA,qBAAA;IACvBE,KAAK,GACHlB,KAAK,CADPkB,KAAK;EAGP,IAAAC,SAAA,GAA8B,IAAAC,eAAQ,EAAU,CAAC;IAAAC,UAAA,OAAAC,eAAA,CAAA1C,OAAA,EAAAuC,SAAA;IAA1CI,OAAO,GAAAF,UAAA;IAAEG,UAAU,GAAAH,UAAA;EAG1B,IAAMI,WAAW,GAAG,IAAAC,4BAAa,EAACf,YAAY,CAAC;EAE/C,IAAMgB,uBAAuB,GAAG,IAAAC,cAAO,EACrC;IAAA,IAAAC,YAAA;IAAA,OAAA3C,MAAA,CAAA4C,MAAA,KAAYL,WAAW;MAAEM,YAAY,EAAE,EAAAF,YAAA,GAAAxB,MAAM,CAAC2B,IAAI,qBAAXH,YAAA,CAAaI,QAAQ,KAAIC;IAAqB;EAAA,CAAG,EACxF,EAAAjC,aAAA,GAACI,MAAM,CAAC2B,IAAI,qBAAX/B,aAAA,CAAagC,QAAQ,EAAER,WAAW,CACrC,CAAC;EAKD,IAAAU,YAAA,GAA2C,IAAAC,yBAAW,EAAC/B,MAAM,EAAEE,2BAA2B,CAAC;IAAnF8B,oBAAoB,GAAAF,YAAA,CAApBE,oBAAoB;IAAEC,QAAQ,GAAAH,YAAA,CAARG,QAAQ;EAEtC,IAAAC,IAAA,IAAArC,cAAA,GACE,IAAAsC,oBAAa,GAAArC,iBAAA,GAACE,MAAM,CAACoC,SAAS,qBAAhBtC,iBAAA,CAAkBuC,KAAK,EAAE/C,QAAQ,CAAC,YAAAO,cAAA,GAAI,CAAC,CAAC;IADnCyC,oBAAoB,GAAAJ,IAAA,CAAjC1C,WAAW;IAAgC+C,eAAe,GAAAL,IAAA,CAAvBzC,MAAM;EAOjD,IAAM+C,UAAU,GAAG,IAAAC,4BAAa,EAACzC,MAAM,CAAC;EAExC,IAAM0C,QAAQ,GAAG,IAAAC,6BAAe,EAAC,CAAC;EAClC,IAAMC,kBAAkB,GAAGC,OAAO,IAAIH,QAAQ,IAAIA,QAAQ,CAACI,OAAO;EAElE,IAAMC,MAAM,GAAG/C,MAAM,CAAC+C,MAAM;EAE5B,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAIhD,MAAM,EAAE;MACV,IAAMiD,OAAO,GACXC,sBAAc,CAACC,GAAG,GAAGD,sBAAc,CAACC,GAAG,CAACC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,GAAG,cAC5C;MAC5BpD,MAAM,CAACqD,aAAa,GAAG;QACrBC,IAAI,EAAEL,OAAO;QACbM,OAAO,EAAPA;MACF,CAAC;MACDvD,MAAM,CAACwD,gBAAgB,GAAG;QAAEC,EAAE,EAAE,GAAGC,qBAAQ,CAACC,EAAE,IAAID,qBAAQ,CAACE,OAAO;MAAG,CAAC;MAEtE5D,MAAM,CAAC6D,uBAAuB,GAAG,KAAK;MACtC7D,MAAM,CAAC8D,oBAAoB,GAAG,IAAI;MAClC9D,MAAM,CAAC+D,8BAA8B,GAAG3D,oBAAoB;IAC9D;IAEA,IAAIwC,kBAAkB,EAAE;MACtB,IAAIF,QAAQ,CAACI,OAAO,CAACkB,YAAY,EAAE;QACjCtB,QAAQ,CAACI,OAAO,CAACkB,YAAY,CAAC,MAAM,CAAC;MACvC;MACA,IAAItB,QAAQ,CAACI,OAAO,CAACmB,kBAAkB,EAAE;QACvCvB,QAAQ,CAACI,OAAO,CAACmB,kBAAkB,CAAC;UAClCC,MAAM,EAAE,QAAQ;UAChBC,IAAI,EAAEnE,MAAM,CAAC2B;QACf,CAAC,CAAC;MACJ;IACF;EAEF,CAAC,EAAE,CAAC3B,MAAM,EAAEI,oBAAoB,CAAC,CAAC;EAElC,IAAMgE,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,UAAoB;IAAA,OAAKlD,UAAU,CAACkD,UAAU,CAAC;EAAA;EAEzE,IAAAC,8CAAsB,EAAC;IACrBtE,MAAM,EAANA,MAAM;IACNuE,OAAO,EAAEnE,oBAAoB;IAC7BoE,OAAO,EAAE;MAAEC,gBAAgB,EAAEpE;IAA0B,CAAC;IACxD0C,MAAM,EAANA;EACF,CAAC,CAAC;EAEF,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAI,CAAChD,MAAM,EAAE;MACX;IACF;IAEAA,MAAM,CAAC0E,OAAO,CAACC,qBAAqB,CAAC,CAAC;IACtC3E,MAAM,CAAC4E,KAAK,CAACD,qBAAqB,CAAC,CAAC;IACpC3E,MAAM,CAAC6E,SAAS,CAACF,qBAAqB,CAAC,CAAC;IACxC3E,MAAM,CAAC6E,SAAS,CAACC,UAAU,CAAC,CAAC;IAE7B,OAAO,YAAM;MACX9E,MAAM,CAAC0E,OAAO,CAACK,uBAAuB,CAAC,CAAC;MACxC/E,MAAM,CAAC4E,KAAK,CAACG,uBAAuB,CAAC,CAAC;MACtC/E,MAAM,CAAC6E,SAAS,CAACE,uBAAuB,CAAC,CAAC;MAC1C/E,MAAM,CAAC6E,SAAS,CAACG,WAAW,CAAC,CAAC;IAChC,CAAC;EACH,CAAC,EAAE,CAAChF,MAAM,CAAC,CAAC;EAEZ,IAAMiF,mBAAmB,GAAG,CAAC,CAAC3C,oBAAoB,IAAIS,MAAM,KAAKR,eAAe;EAEhF,IAAM2C,WAAW,GAAG,IAAAC,8BAAc,EAACnF,MAAM,EAAEiC,QAAQ,EAAE7B,oBAAoB,EAAE6E,mBAAmB,CAAC;EAE/F,IAAMG,WAAW,GAAG,IAAAC,0CAAoB,EAAC;IACvCH,WAAW,EAAXA,WAAW;IACXhE,OAAO,EAAPA,OAAO;IACPlB,MAAM,EAANA,MAAM;IACNgC,oBAAoB,EAApBA,oBAAoB;IACpB5B,oBAAoB,EAApBA,oBAAoB;IACpBI,cAAc,EAAdA,cAAc;IACdE,oBAAoB,EAApBA,oBAAoB;IACpBuB,QAAQ,EAARA,QAAQ;IACRO,UAAU,EAAVA,UAAU;IACV4B,gBAAgB,EAAhBA;EACF,CAAC,CAAC;EAEF,IAAIrB,MAAM,IAAI3C,oBAAoB,IAAI,CAAC6E,mBAAmB,EAAE;IAE1D,OAAOrE,gBAAgB,GAAG,IAAA9C,WAAA,CAAAwH,GAAA,EAAC1E,gBAAgB,IAAE,CAAC,GAAG,IAAI;EACvD;EAEA,OACE,IAAA9C,WAAA,CAAAwH,GAAA,EAAClI,YAAA,CAAAmI,YAAY;IAACC,KAAK,EAAEJ,WAAY;IAAArF,QAAA,EAC/B,IAAAjC,WAAA,CAAAwH,GAAA,EAAC/H,mBAAA,CAAAkI,mBAAmB;MAACD,KAAK,EAAElE,uBAAwB;MAAAvB,QAAA,EAClD,IAAAjC,WAAA,CAAAwH,GAAA,EAAChI,aAAA,CAAAoI,aAAa;QAAC7E,KAAK,EAAEA,KAAM;QAAAd,QAAA,EAC1B,IAAAjC,WAAA,CAAAwH,GAAA,EAACnI,qBAAA,CAAAwI,qBAAqB;UAAA5F,QAAA,EAAEA;QAAQ,CAAwB;MAAC,CAC5C;IAAC,CACG;EAAC,CACV,CAAC;AAEnB,CAAC;AAcM,IAAM6F,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG,SAAPA,IAAIA,CAAIjG,KAAmC,EAAK;EAC3D,IAAAmG,SAAA,GAAkB,IAAAC,sBAAQ,EAAC,CAAC;IAApBC,KAAK,GAAAF,SAAA,CAALE,KAAK;EAEb,OAAO,IAAAlI,WAAA,CAAAwH,GAAA,EAAC5F,eAAe,EAAAb,MAAA,CAAA4C,MAAA;IAACZ,KAAK,EAAEmF;EAA4B,GAAKrG,KAAK,CAAG,CAAC;AAC3E,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.useInitializeOfflineDb = void 0;
|
|
6
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
7
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _useStableCallback = require("../../../hooks/useStableCallback");
|
|
10
|
+
var _OfflineDB = require("../../../store/OfflineDB");
|
|
11
|
+
var _SqliteClient = require("../../../store/SqliteClient");
|
|
12
|
+
var useInitializeOfflineDb = exports.useInitializeOfflineDb = function useInitializeOfflineDb(_ref) {
|
|
13
|
+
var client = _ref.client,
|
|
14
|
+
enabled = _ref.enabled,
|
|
15
|
+
options = _ref.options,
|
|
16
|
+
userID = _ref.userID;
|
|
17
|
+
var _useState = (0, _react.useState)(),
|
|
18
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
19
|
+
initializationError = _useState2[0],
|
|
20
|
+
setInitializationError = _useState2[1];
|
|
21
|
+
var _ref2 = options != null ? options : {},
|
|
22
|
+
getEncryptionKey = _ref2.getEncryptionKey;
|
|
23
|
+
var resolveEncryptionKey = (0, _useStableCallback.useStableCallback)(function () {
|
|
24
|
+
var _getEncryptionKey;
|
|
25
|
+
return (_getEncryptionKey = getEncryptionKey == null ? void 0 : getEncryptionKey()) != null ? _getEncryptionKey : Promise.resolve(undefined);
|
|
26
|
+
});
|
|
27
|
+
var isEncryptionEnabled = !!getEncryptionKey;
|
|
28
|
+
var initialize = (0, _react.useCallback)((0, _asyncToGenerator2.default)(function* () {
|
|
29
|
+
if (!(userID && enabled)) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (!client.offlineDb) {
|
|
33
|
+
var keyGetter = isEncryptionEnabled ? resolveEncryptionKey : undefined;
|
|
34
|
+
if (keyGetter) {
|
|
35
|
+
_SqliteClient.SqliteClient.getEncryptionKey = keyGetter;
|
|
36
|
+
try {
|
|
37
|
+
yield _SqliteClient.SqliteClient.preflightEncryption();
|
|
38
|
+
} catch (error) {
|
|
39
|
+
if (error instanceof _SqliteClient.SqliteClientError) {
|
|
40
|
+
setInitializationError(error);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
throw error;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
client.setOfflineDBApi(new _OfflineDB.OfflineDB({
|
|
47
|
+
client: client,
|
|
48
|
+
getEncryptionKey: keyGetter
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
var offlineDb = client.offlineDb;
|
|
52
|
+
if (offlineDb) {
|
|
53
|
+
yield offlineDb.init(userID);
|
|
54
|
+
setInitializationError(offlineDb instanceof _OfflineDB.OfflineDB ? offlineDb.initializationError : undefined);
|
|
55
|
+
}
|
|
56
|
+
}), [client, enabled, isEncryptionEnabled, resolveEncryptionKey, userID]);
|
|
57
|
+
(0, _react.useEffect)(function () {
|
|
58
|
+
initialize();
|
|
59
|
+
}, [initialize]);
|
|
60
|
+
if (initializationError) {
|
|
61
|
+
throw initializationError;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=useInitializeOfflineDb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_useStableCallback","_OfflineDB","_SqliteClient","useInitializeOfflineDb","exports","_ref","client","enabled","options","userID","_useState","useState","_useState2","_slicedToArray2","default","initializationError","setInitializationError","_ref2","getEncryptionKey","resolveEncryptionKey","useStableCallback","_getEncryptionKey","Promise","resolve","undefined","isEncryptionEnabled","initialize","useCallback","_asyncToGenerator2","offlineDb","keyGetter","SqliteClient","preflightEncryption","error","SqliteClientError","setOfflineDBApi","OfflineDB","init","useEffect"],"sourceRoot":"../../../../../src","sources":["components/Chat/hooks/useInitializeOfflineDb.ts"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AA4BO,IAAMI,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG,SAAzBA,sBAAsBA,CAAAE,IAAA,EAKC;EAAA,IAJlCC,MAAM,GAAAD,IAAA,CAANC,MAAM;IACNC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IACPC,OAAO,GAAAH,IAAA,CAAPG,OAAO;IACPC,MAAM,GAAAJ,IAAA,CAANI,MAAM;EAUN,IAAAC,SAAA,GAAsD,IAAAC,eAAQ,EAAoB,CAAC;IAAAC,UAAA,OAAAC,eAAA,CAAAC,OAAA,EAAAJ,SAAA;IAA5EK,mBAAmB,GAAAH,UAAA;IAAEI,sBAAsB,GAAAJ,UAAA;EAElD,IAAAK,KAAA,GAA6BT,OAAO,WAAPA,OAAO,GAAI,CAAC,CAAC;IAAlCU,gBAAgB,GAAAD,KAAA,CAAhBC,gBAAgB;EAKxB,IAAMC,oBAAoB,GAAG,IAAAC,oCAAiB,EAC5C;IAAA,IAAAC,iBAAA;IAAA,QAAAA,iBAAA,GAAMH,gBAAgB,oBAAhBA,gBAAgB,CAAG,CAAC,YAAAG,iBAAA,GAAIC,OAAO,CAACC,OAAO,CAACC,SAAS,CAAC;EAAA,CAC1D,CAAC;EACD,IAAMC,mBAAmB,GAAG,CAAC,CAACP,gBAAgB;EAE9C,IAAMQ,UAAU,GAAG,IAAAC,kBAAW,MAAAC,kBAAA,CAAAd,OAAA,EAAC,aAAY;IACzC,IAAI,EAAEL,MAAM,IAAIF,OAAO,CAAC,EAAE;MACxB;IACF;IAEA,IAAI,CAACD,MAAM,CAACuB,SAAS,EAAE;MACrB,IAAMC,SAAS,GAAGL,mBAAmB,GAAGN,oBAAoB,GAAGK,SAAS;MAKxE,IAAIM,SAAS,EAAE;QACbC,0BAAY,CAACb,gBAAgB,GAAGY,SAAS;QACzC,IAAI;UACF,MAAMC,0BAAY,CAACC,mBAAmB,CAAC,CAAC;QAC1C,CAAC,CAAC,OAAOC,KAAK,EAAE;UACd,IAAIA,KAAK,YAAYC,+BAAiB,EAAE;YACtClB,sBAAsB,CAACiB,KAAK,CAAC;YAC7B;UACF;UACA,MAAMA,KAAK;QACb;MACF;MAEA3B,MAAM,CAAC6B,eAAe,CAAC,IAAIC,oBAAS,CAAC;QAAE9B,MAAM,EAANA,MAAM;QAAEY,gBAAgB,EAAEY;MAAU,CAAC,CAAC,CAAC;IAChF;IAEA,IAAQD,SAAS,GAAKvB,MAAM,CAApBuB,SAAS;IACjB,IAAIA,SAAS,EAAE;MACb,MAAMA,SAAS,CAACQ,IAAI,CAAC5B,MAAM,CAAC;MAM5BO,sBAAsB,CACpBa,SAAS,YAAYO,oBAAS,GAAGP,SAAS,CAACd,mBAAmB,GAAGS,SACnE,CAAC;IACH;EACF,CAAC,GAAE,CAAClB,MAAM,EAAEC,OAAO,EAAEkB,mBAAmB,EAAEN,oBAAoB,EAAEV,MAAM,CAAC,CAAC;EAExE,IAAA6B,gBAAS,EAAC,YAAM;IACdZ,UAAU,CAAC,CAAC;EACd,CAAC,EAAE,CAACA,UAAU,CAAC,CAAC;EAEhB,IAAIX,mBAAmB,EAAE;IACvB,MAAMA,mBAAmB;EAC3B;AACF,CAAC","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -21,6 +21,7 @@ var _exportNames = {
|
|
|
21
21
|
ruTranslations: true,
|
|
22
22
|
trTranslations: true,
|
|
23
23
|
SqliteClient: true,
|
|
24
|
+
SqliteClientError: true,
|
|
24
25
|
OfflineDB: true,
|
|
25
26
|
version: true,
|
|
26
27
|
OfflineStoreApis: true
|
|
@@ -56,6 +57,12 @@ Object.defineProperty(exports, "SqliteClient", {
|
|
|
56
57
|
return _SqliteClient.SqliteClient;
|
|
57
58
|
}
|
|
58
59
|
});
|
|
60
|
+
Object.defineProperty(exports, "SqliteClientError", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function get() {
|
|
63
|
+
return _SqliteClient.SqliteClientError;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
59
66
|
Object.defineProperty(exports, "enTranslations", {
|
|
60
67
|
enumerable: true,
|
|
61
68
|
get: function get() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","_components","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_hooks","_native","_contexts","_icons","_middlewares","_types","_patchMessageTextCommand","_Streami18n","_setupCommandUIMiddlewares","_utils","_en","_interopRequireDefault","_es","_fr","_he","_hi","_it","_ja","_ko","_nl","_ptBr","_ru","_tr","_stateStore","_SqliteClient","_OfflineDB","_version","OfflineStoreApis","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set","iOS14RefreshGallerySelection","NativeHandlers"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["require","_components","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_hooks","_native","_contexts","_icons","_middlewares","_types","_patchMessageTextCommand","_Streami18n","_setupCommandUIMiddlewares","_utils","_en","_interopRequireDefault","_es","_fr","_he","_hi","_it","_ja","_ko","_nl","_ptBr","_ru","_tr","_stateStore","_SqliteClient","_OfflineDB","_version","OfflineStoreApis","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set","iOS14RefreshGallerySelection","NativeHandlers"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -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* () {
|