stream-chat-react-native-core 5.6.0-beta.0 → 5.6.0-beta.2
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/Attachment/Gallery.js +21 -16
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/GalleryImage.js +3 -3
- package/lib/commonjs/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +43 -33
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +5 -1
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/commonjs/components/Chat/Chat.js +1 -1
- package/lib/commonjs/components/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useAppSettings.js +51 -22
- package/lib/commonjs/components/Chat/hooks/useAppSettings.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useIsOnline.js +1 -1
- package/lib/commonjs/components/Chat/hooks/useIsOnline.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useMessageActions.js +2 -2
- package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +18 -21
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +7 -32
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/commonjs/components/index.js +1 -1
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +128 -89
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +1 -0
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/commonjs/store/QuickSqliteClient.js +46 -1
- package/lib/commonjs/store/QuickSqliteClient.js.map +1 -1
- package/lib/commonjs/store/QuickSqliteClient_v4.js +112 -0
- package/lib/commonjs/store/QuickSqliteClient_v4.js.map +1 -0
- package/lib/commonjs/store/apis/getAppSettings.js +23 -0
- package/lib/commonjs/store/apis/getAppSettings.js.map +1 -0
- package/lib/commonjs/store/apis/getPendingTasks.js.map +1 -1
- package/lib/commonjs/store/apis/index.js +26 -0
- package/lib/commonjs/store/apis/index.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectChannels.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectMembersForChannels.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectMessagesForChannels.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectReactionsForMessages.js.map +1 -1
- package/lib/commonjs/store/apis/queries/selectReadsForChannels.js.map +1 -1
- package/lib/commonjs/store/apis/upsertAppSettings.js +26 -0
- package/lib/commonjs/store/apis/upsertAppSettings.js.map +1 -0
- package/lib/commonjs/store/schema.js +1 -0
- package/lib/commonjs/store/schema.js.map +1 -1
- package/lib/commonjs/utils/DBSyncManager.js +16 -16
- package/lib/commonjs/utils/DBSyncManager.js.map +1 -1
- package/lib/commonjs/{components/Message/utils → utils}/removeReservedFields.js +1 -1
- package/lib/commonjs/utils/removeReservedFields.js.map +1 -0
- package/lib/commonjs/utils/utils.js +2 -2
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Gallery.js +21 -16
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Attachment/GalleryImage.js +3 -3
- package/lib/module/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +43 -33
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +5 -1
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/module/components/Chat/Chat.js +1 -1
- package/lib/module/components/Chat/Chat.js.map +1 -1
- package/lib/module/components/Chat/hooks/useAppSettings.js +51 -22
- package/lib/module/components/Chat/hooks/useAppSettings.js.map +1 -1
- package/lib/module/components/Chat/hooks/useIsOnline.js +1 -1
- package/lib/module/components/Chat/hooks/useIsOnline.js.map +1 -1
- package/lib/module/components/Message/hooks/useMessageActions.js +2 -2
- package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js +18 -21
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/ImageUploadPreview.js +7 -32
- package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/module/components/index.js +1 -1
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +128 -89
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +1 -0
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/module/store/QuickSqliteClient.js +46 -1
- package/lib/module/store/QuickSqliteClient.js.map +1 -1
- package/lib/module/store/QuickSqliteClient_v4.js +112 -0
- package/lib/module/store/QuickSqliteClient_v4.js.map +1 -0
- package/lib/module/store/apis/getAppSettings.js +23 -0
- package/lib/module/store/apis/getAppSettings.js.map +1 -0
- package/lib/module/store/apis/getPendingTasks.js.map +1 -1
- package/lib/module/store/apis/index.js +26 -0
- package/lib/module/store/apis/index.js.map +1 -1
- package/lib/module/store/apis/queries/selectChannels.js.map +1 -1
- package/lib/module/store/apis/queries/selectMembersForChannels.js.map +1 -1
- package/lib/module/store/apis/queries/selectMessagesForChannels.js.map +1 -1
- package/lib/module/store/apis/queries/selectReactionsForMessages.js.map +1 -1
- package/lib/module/store/apis/queries/selectReadsForChannels.js.map +1 -1
- package/lib/module/store/apis/upsertAppSettings.js +26 -0
- package/lib/module/store/apis/upsertAppSettings.js.map +1 -0
- package/lib/module/store/schema.js +1 -0
- package/lib/module/store/schema.js.map +1 -1
- package/lib/module/utils/DBSyncManager.js +16 -16
- package/lib/module/utils/DBSyncManager.js.map +1 -1
- package/lib/module/{components/Message/utils → utils}/removeReservedFields.js +1 -1
- package/lib/module/utils/removeReservedFields.js.map +1 -0
- package/lib/module/utils/utils.js +2 -2
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Chat/hooks/useAppSettings.d.ts +2 -2
- package/lib/typescript/components/Chat/hooks/useIsOnline.d.ts +1 -1
- package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +1 -1
- package/lib/typescript/components/MessageInput/ImageUploadPreview.d.ts +1 -1
- package/lib/typescript/components/index.d.ts +1 -1
- package/lib/typescript/contexts/chatContext/ChatContext.d.ts +1 -1
- package/lib/typescript/store/QuickSqliteClient.d.ts +4 -1
- package/lib/typescript/store/QuickSqliteClient_v4.d.ts +12 -0
- package/lib/typescript/store/apis/getAppSettings.d.ts +4 -0
- package/lib/typescript/store/apis/getPendingTasks.d.ts +1 -1
- package/lib/typescript/store/apis/index.d.ts +2 -0
- package/lib/typescript/store/apis/upsertAppSettings.d.ts +6 -0
- package/lib/typescript/store/mappers/mapTaskToStorable.d.ts +0 -8
- package/lib/typescript/store/schema.d.ts +1 -0
- package/lib/typescript/store/types.d.ts +0 -4
- package/lib/typescript/utils/DBSyncManager.d.ts +1 -1
- package/lib/typescript/{components/Message/utils → utils}/removeReservedFields.d.ts +2 -2
- package/lib/typescript/utils/utils.d.ts +1 -1
- package/package.json +1 -1
- package/src/components/Attachment/Gallery.tsx +5 -1
- package/src/components/Attachment/GalleryImage.tsx +2 -0
- package/src/components/Attachment/__tests__/Gallery.test.js +9 -2
- package/src/components/Attachment/__tests__/Giphy.test.js +9 -5
- package/src/components/Channel/Channel.tsx +20 -12
- package/src/components/ChannelList/hooks/usePaginatedChannels.ts +6 -4
- package/src/components/Chat/Chat.tsx +1 -1
- package/src/components/Chat/hooks/__tests__/useAppSettings.test.tsx +1 -0
- package/src/components/Chat/hooks/useAppSettings.ts +19 -6
- package/src/components/Chat/hooks/useIsOnline.ts +1 -1
- package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +29 -15
- package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +12 -6
- package/src/components/ImageGallery/__tests__/ImageGalleryHeader.test.tsx +9 -4
- package/src/components/Message/hooks/useMessageActions.tsx +1 -1
- package/src/components/MessageInput/FileUploadPreview.tsx +4 -5
- package/src/components/MessageInput/ImageUploadPreview.tsx +10 -35
- package/src/components/index.ts +1 -1
- package/src/contexts/chatContext/ChatContext.tsx +1 -1
- package/src/contexts/messageInputContext/MessageInputContext.tsx +94 -75
- package/src/contexts/messageInputContext/__tests__/MessageInputContext.test.tsx +8 -3
- package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +0 -3
- package/src/contexts/messageInputContext/__tests__/uploadFile.test.tsx +16 -6
- package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +1 -0
- package/src/store/QuickSqliteClient.ts +49 -5
- package/src/store/QuickSqliteClient_v4.ts +98 -0
- package/src/store/apis/getAppSettings.ts +19 -0
- package/src/store/apis/getPendingTasks.ts +2 -1
- package/src/store/apis/index.ts +2 -0
- package/src/store/apis/queries/selectChannels.ts +4 -1
- package/src/store/apis/queries/selectMembersForChannels.ts +1 -1
- package/src/store/apis/queries/selectMessagesForChannels.ts +1 -1
- package/src/store/apis/queries/selectReactionsForMessages.ts +1 -1
- package/src/store/apis/queries/selectReadsForChannels.ts +1 -1
- package/src/store/apis/upsertAppSettings.ts +23 -0
- package/src/store/schema.ts +2 -0
- package/src/store/types.ts +0 -5
- package/src/utils/DBSyncManager.ts +1 -1
- package/src/{components/Message/utils → utils}/removeReservedFields.ts +7 -3
- package/src/utils/utils.ts +7 -6
- package/src/version.json +1 -1
- package/lib/commonjs/components/Message/utils/removeReservedFields.js.map +0 -1
- package/lib/commonjs/utils/pendingTaskUtils.js +0 -302
- package/lib/commonjs/utils/pendingTaskUtils.js.map +0 -1
- package/lib/module/components/Message/utils/removeReservedFields.js.map +0 -1
- package/lib/module/utils/pendingTaskUtils.js +0 -302
- package/lib/module/utils/pendingTaskUtils.js.map +0 -1
- package/lib/typescript/utils/pendingTaskUtils.d.ts +0 -13
- package/src/utils/pendingTaskUtils.ts +0 -131
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.QuickSqliteClient_v4 = void 0;
|
|
7
|
+
|
|
8
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _constants = require("./constants");
|
|
13
|
+
|
|
14
|
+
var sqlite;
|
|
15
|
+
|
|
16
|
+
try {
|
|
17
|
+
sqlite = require('react-native-quick-sqlite').QuickSQLite;
|
|
18
|
+
} catch (e) {}
|
|
19
|
+
|
|
20
|
+
var QuickSqliteClient_v4 = (0, _createClass2["default"])(function QuickSqliteClient_v4() {
|
|
21
|
+
(0, _classCallCheck2["default"])(this, QuickSqliteClient_v4);
|
|
22
|
+
});
|
|
23
|
+
exports.QuickSqliteClient_v4 = QuickSqliteClient_v4;
|
|
24
|
+
QuickSqliteClient_v4.dbName = _constants.DB_NAME;
|
|
25
|
+
QuickSqliteClient_v4.dbLocation = _constants.DB_LOCATION;
|
|
26
|
+
|
|
27
|
+
QuickSqliteClient_v4.openDB = function () {
|
|
28
|
+
var _sqlite$open = sqlite.open(QuickSqliteClient_v4.dbName, QuickSqliteClient_v4.dbLocation),
|
|
29
|
+
message = _sqlite$open.message,
|
|
30
|
+
status = _sqlite$open.status;
|
|
31
|
+
|
|
32
|
+
sqlite.executeSql(QuickSqliteClient_v4.dbName, "PRAGMA foreign_keys = ON", []);
|
|
33
|
+
|
|
34
|
+
if (status === _constants.DB_STATUS_ERROR) {
|
|
35
|
+
console.error("Error opening database " + QuickSqliteClient_v4.dbName + ": " + message);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
QuickSqliteClient_v4.closeDB = function () {
|
|
40
|
+
var _sqlite$close = sqlite.close(QuickSqliteClient_v4.dbName),
|
|
41
|
+
message = _sqlite$close.message,
|
|
42
|
+
status = _sqlite$close.status;
|
|
43
|
+
|
|
44
|
+
if (status === _constants.DB_STATUS_ERROR) {
|
|
45
|
+
console.error("Error closing database " + QuickSqliteClient_v4.dbName + ": " + message);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
QuickSqliteClient_v4.executeSqlBatch = function (queries) {
|
|
50
|
+
QuickSqliteClient_v4.openDB();
|
|
51
|
+
var res = sqlite.executeSqlBatch(_constants.DB_NAME, queries);
|
|
52
|
+
|
|
53
|
+
if (res.status === 1) {
|
|
54
|
+
console.error("Query/queries failed: " + res.message + " " + JSON.stringify(res));
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
QuickSqliteClient_v4.closeDB();
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
QuickSqliteClient_v4.executeSql = function (query, params) {
|
|
61
|
+
QuickSqliteClient_v4.openDB();
|
|
62
|
+
|
|
63
|
+
var _sqlite$executeSql = sqlite.executeSql(_constants.DB_NAME, query, params),
|
|
64
|
+
message = _sqlite$executeSql.message,
|
|
65
|
+
rows = _sqlite$executeSql.rows,
|
|
66
|
+
status = _sqlite$executeSql.status;
|
|
67
|
+
|
|
68
|
+
QuickSqliteClient_v4.closeDB();
|
|
69
|
+
|
|
70
|
+
if (status === 1) {
|
|
71
|
+
console.error("Query/queries failed: " + message + ": ", query);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return rows ? rows._array : [];
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
QuickSqliteClient_v4.deleteDatabase = function () {
|
|
78
|
+
var _sqlite$delete = sqlite["delete"](QuickSqliteClient_v4.dbName, QuickSqliteClient_v4.dbLocation),
|
|
79
|
+
message = _sqlite$delete.message,
|
|
80
|
+
status = _sqlite$delete.status;
|
|
81
|
+
|
|
82
|
+
if (status === _constants.DB_STATUS_ERROR) {
|
|
83
|
+
throw new Error("Error deleting DB: " + message);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return true;
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
QuickSqliteClient_v4.updateUserPragmaVersion = function (version) {
|
|
90
|
+
QuickSqliteClient_v4.openDB();
|
|
91
|
+
sqlite.executeSql(_constants.DB_NAME, "PRAGMA user_version = " + version, []);
|
|
92
|
+
QuickSqliteClient_v4.closeDB();
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
QuickSqliteClient_v4.getUserPragmaVersion = function () {
|
|
96
|
+
QuickSqliteClient_v4.openDB();
|
|
97
|
+
|
|
98
|
+
var _sqlite$executeSql2 = sqlite.executeSql(_constants.DB_NAME, "PRAGMA user_version", []),
|
|
99
|
+
message = _sqlite$executeSql2.message,
|
|
100
|
+
rows = _sqlite$executeSql2.rows,
|
|
101
|
+
status = _sqlite$executeSql2.status;
|
|
102
|
+
|
|
103
|
+
QuickSqliteClient_v4.closeDB();
|
|
104
|
+
|
|
105
|
+
if (status === 1) {
|
|
106
|
+
console.error("Querying for user_version failed: " + message);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
var result = rows ? rows._array : [];
|
|
110
|
+
return result[0].user_version;
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=QuickSqliteClient_v4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["QuickSqliteClient_v4.ts"],"names":["sqlite","require","QuickSQLite","e","QuickSqliteClient_v4","dbName","DB_NAME","dbLocation","DB_LOCATION","openDB","open","message","status","executeSql","DB_STATUS_ERROR","console","error","closeDB","close","executeSqlBatch","queries","res","JSON","stringify","query","params","rows","_array","deleteDatabase","Error","updateUserPragmaVersion","version","getUserPragmaVersion","result","user_version"],"mappings":"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","sourcesContent":["// We are going to disable type checks for this file, since this QuickSqliteClient is for legacy version of sqlite but\n// dev-dependency \"react-native-quick-sqlite\" is not available for legacy version of sqlite.\n/* eslint-disable no-underscore-dangle */\n// @ts-nocheck\n\nimport type { QuickSQLite } from 'react-native-quick-sqlite';\nlet sqlite: typeof QuickSQLite;\n\ntry {\n sqlite = require('react-native-quick-sqlite').QuickSQLite;\n} catch (e) {\n // Failed for one of the reason\n // 1. Running on expo, where we don't support offline storage yet.\n // 2. Offline support is disabled, in which case this library is not installed.\n}\nimport { DB_LOCATION, DB_NAME, DB_STATUS_ERROR } from './constants';\nimport type { PreparedQueries } from './types';\n\n// QuickSqliteClient takes care of any direct interaction with sqlite for v4 of react-native-quick-sqlite.\n// This is to avoid any breaking changes for users using v4 of react-native-quick-sqlite.\nexport class QuickSqliteClient_v4 {\n static dbName = DB_NAME;\n static dbLocation = DB_LOCATION;\n\n static openDB = () => {\n const { message, status } = sqlite.open(this.dbName, this.dbLocation);\n sqlite.executeSql(this.dbName, `PRAGMA foreign_keys = ON`, []);\n\n if (status === DB_STATUS_ERROR) {\n console.error(`Error opening database ${this.dbName}: ${message}`);\n }\n };\n\n static closeDB = () => {\n const { message, status } = sqlite.close(this.dbName);\n\n if (status === DB_STATUS_ERROR) {\n console.error(`Error closing database ${this.dbName}: ${message}`);\n }\n };\n\n static executeSqlBatch = (queries: PreparedQueries[]) => {\n this.openDB();\n\n const res = sqlite.executeSqlBatch(DB_NAME, queries);\n\n if (res.status === 1) {\n console.error(`Query/queries failed: ${res.message} ${JSON.stringify(res)}`);\n }\n\n this.closeDB();\n };\n\n static executeSql = (query: string, params?: string[]) => {\n this.openDB();\n\n const { message, rows, status } = sqlite.executeSql(DB_NAME, query, params);\n\n this.closeDB();\n\n if (status === 1) {\n console.error(`Query/queries failed: ${message}: `, query);\n }\n\n return rows ? rows._array : [];\n };\n\n static deleteDatabase = () => {\n const { message, status } = sqlite.delete(this.dbName, this.dbLocation);\n if (status === DB_STATUS_ERROR) {\n throw new Error(`Error deleting DB: ${message}`);\n }\n\n return true;\n };\n\n static updateUserPragmaVersion = (version: number) => {\n this.openDB();\n\n sqlite.executeSql(DB_NAME, `PRAGMA user_version = ${version}`, []);\n\n this.closeDB();\n };\n\n static getUserPragmaVersion = () => {\n this.openDB();\n\n const { message, rows, status } = sqlite.executeSql(DB_NAME, `PRAGMA user_version`, []);\n\n this.closeDB();\n if (status === 1) {\n console.error(`Querying for user_version failed: ${message}`);\n }\n\n const result = rows ? rows._array : [];\n return result[0].user_version as number;\n };\n}\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", {
|
|
2
|
+
value: true
|
|
3
|
+
});
|
|
4
|
+
exports.getAppSettings = void 0;
|
|
5
|
+
|
|
6
|
+
var _QuickSqliteClient = require("../QuickSqliteClient");
|
|
7
|
+
|
|
8
|
+
var _createSelectQuery = require("../sqlite-utils/createSelectQuery");
|
|
9
|
+
|
|
10
|
+
var getAppSettings = function getAppSettings(_ref) {
|
|
11
|
+
var _result$;
|
|
12
|
+
|
|
13
|
+
var currentUserId = _ref.currentUserId;
|
|
14
|
+
|
|
15
|
+
var result = _QuickSqliteClient.QuickSqliteClient.executeSql.apply(null, (0, _createSelectQuery.createSelectQuery)('userSyncStatus', ['*'], {
|
|
16
|
+
userId: currentUserId
|
|
17
|
+
}));
|
|
18
|
+
|
|
19
|
+
return (_result$ = result[0]) != null && _result$.appSettings ? JSON.parse(result[0].appSettings) : null;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
exports.getAppSettings = getAppSettings;
|
|
23
|
+
//# sourceMappingURL=getAppSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["getAppSettings.ts"],"names":["getAppSettings","currentUserId","result","QuickSqliteClient","executeSql","apply","userId","appSettings","JSON","parse"],"mappings":";;;;;AAEA;;AACA;;AAEO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,OAIA;AAAA;;AAAA,MAH5BC,aAG4B,QAH5BA,aAG4B;;AAC5B,MAAMC,MAAM,GAAGC,qCAAkBC,UAAlB,CAA6BC,KAA7B,CACb,IADa,EAEb,0CAAkB,gBAAlB,EAAoC,CAAC,GAAD,CAApC,EAA2C;AACzCC,IAAAA,MAAM,EAAEL;AADiC,GAA3C,CAFa,CAAf;;AAOA,SAAO,YAAAC,MAAM,CAAC,CAAD,CAAN,sBAAWK,WAAX,GAAyBC,IAAI,CAACC,KAAL,CAAWP,MAAM,CAAC,CAAD,CAAN,CAAUK,WAArB,CAAzB,GAA6D,IAApE;AACD,CAbM","sourcesContent":["import type { AppSettingsAPIResponse } from 'stream-chat';\n\nimport { QuickSqliteClient } from '../QuickSqliteClient';\nimport { createSelectQuery } from '../sqlite-utils/createSelectQuery';\n\nexport const getAppSettings = ({\n currentUserId,\n}: {\n currentUserId: string;\n}): AppSettingsAPIResponse => {\n const result = QuickSqliteClient.executeSql.apply(\n null,\n createSelectQuery('userSyncStatus', ['*'], {\n userId: currentUserId,\n }),\n );\n\n return result[0]?.appSettings ? JSON.parse(result[0].appSettings) : null;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["getPendingTasks.ts"],"names":["getPendingTasks","conditions","query","createdAt","result","QuickSqliteClient","executeSql","apply","map","r"],"mappings":";;;;;AAAA;;AACA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["getPendingTasks.ts"],"names":["getPendingTasks","conditions","query","createdAt","result","QuickSqliteClient","executeSql","apply","map","r"],"mappings":";;;;;AAAA;;AACA;;AACA;;AAGO,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,GAA6C;AAAA,MAA5CC,UAA4C,uEAAP,EAAO;AAC1E,MAAMC,KAAK,GAAG,0CAAkB,cAAlB,EAAkC,CAAC,GAAD,CAAlC,EAAyCD,UAAzC,EAAqD;AACjEE,IAAAA,SAAS,EAAE;AADsD,GAArD,CAAd;;AAIA,MAAMC,MAAM,GAAGC,qCAAkBC,UAAlB,CAA6BC,KAA7B,CAAmC,IAAnC,EAAyCL,KAAzC,CAAf;;AAEA,SAAOE,MAAM,CAACI,GAAP,CAAW,UAACC,CAAD;AAAA,WAA2C,0CAAkBA,CAAlB,CAA3C;AAAA,GAAX,CAAP;AACD,CARM","sourcesContent":["import { mapStorableToTask } from '../mappers/mapStorableToTask';\nimport { QuickSqliteClient } from '../QuickSqliteClient';\nimport { createSelectQuery } from '../sqlite-utils/createSelectQuery';\nimport type { TableRowJoinedUser } from '../types';\n\nexport const getPendingTasks = (conditions: { messageId?: string } = {}) => {\n const query = createSelectQuery('pendingTasks', ['*'], conditions, {\n createdAt: 1,\n });\n\n const result = QuickSqliteClient.executeSql.apply(null, query);\n\n return result.map((r: TableRowJoinedUser<'pendingTasks'>) => mapStorableToTask(r));\n};\n"]}
|
|
@@ -80,6 +80,19 @@ Object.keys(_getAllChannelIds).forEach(function (key) {
|
|
|
80
80
|
});
|
|
81
81
|
});
|
|
82
82
|
|
|
83
|
+
var _getAppSettings = require("./getAppSettings");
|
|
84
|
+
|
|
85
|
+
Object.keys(_getAppSettings).forEach(function (key) {
|
|
86
|
+
if (key === "default" || key === "__esModule") return;
|
|
87
|
+
if (key in exports && exports[key] === _getAppSettings[key]) return;
|
|
88
|
+
Object.defineProperty(exports, key, {
|
|
89
|
+
enumerable: true,
|
|
90
|
+
get: function get() {
|
|
91
|
+
return _getAppSettings[key];
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
|
|
83
96
|
var _getChannelMessages = require("./getChannelMessages");
|
|
84
97
|
|
|
85
98
|
Object.keys(_getChannelMessages).forEach(function (key) {
|
|
@@ -184,6 +197,19 @@ Object.keys(_updateReaction).forEach(function (key) {
|
|
|
184
197
|
});
|
|
185
198
|
});
|
|
186
199
|
|
|
200
|
+
var _upsertAppSettings = require("./upsertAppSettings");
|
|
201
|
+
|
|
202
|
+
Object.keys(_upsertAppSettings).forEach(function (key) {
|
|
203
|
+
if (key === "default" || key === "__esModule") return;
|
|
204
|
+
if (key in exports && exports[key] === _upsertAppSettings[key]) return;
|
|
205
|
+
Object.defineProperty(exports, key, {
|
|
206
|
+
enumerable: true,
|
|
207
|
+
get: function get() {
|
|
208
|
+
return _upsertAppSettings[key];
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
});
|
|
212
|
+
|
|
187
213
|
var _upsertChannelData = require("./upsertChannelData");
|
|
188
214
|
|
|
189
215
|
Object.keys(_upsertChannelData).forEach(function (key) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './deleteChannel';\nexport * from './deleteMember';\nexport * from './deleteMessage';\nexport * from './deleteMessagesForChannel';\nexport * from './deleteReactions';\nexport * from './getAllChannelIds';\nexport * from './getChannelMessages';\nexport * from './getChannels';\nexport * from './getChannelsForFilterSort';\nexport * from './getLastSyncedAt';\nexport * from './getMembers';\nexport * from './getReads';\nexport * from './updateMessage';\nexport * from './updateReaction';\nexport * from './upsertChannelData';\nexport * from './upsertChannels';\nexport * from './upsertCidsForQuery';\nexport * from './upsertLastSyncedAt';\nexport * from './upsertMembers';\nexport * from './upsertMessages';\nexport * from './upsertReads';\n"]}
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './deleteChannel';\nexport * from './deleteMember';\nexport * from './deleteMessage';\nexport * from './deleteMessagesForChannel';\nexport * from './deleteReactions';\nexport * from './getAllChannelIds';\nexport * from './getAppSettings';\nexport * from './getChannelMessages';\nexport * from './getChannels';\nexport * from './getChannelsForFilterSort';\nexport * from './getLastSyncedAt';\nexport * from './getMembers';\nexport * from './getReads';\nexport * from './updateMessage';\nexport * from './updateReaction';\nexport * from './upsertAppSettings';\nexport * from './upsertChannelData';\nexport * from './upsertChannels';\nexport * from './upsertCidsForQuery';\nexport * from './upsertLastSyncedAt';\nexport * from './upsertMembers';\nexport * from './upsertMessages';\nexport * from './upsertReads';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["selectChannels.ts"],"names":["selectChannels","channelIds","query","cid","undefined","result","QuickSqliteClient","executeSql","apply","sort","a","b","indexOf"],"mappings":";;;;;AAAA;;AACA;;AAGO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,GAE0C;AAAA,iFAAzC,EAAyC;AAAA,MADtEC,UACsE,QADtEA,UACsE;;AACtE,MAAMC,KAAK,GAAG,0CACZ,UADY,EAEZ,CAAC,GAAD,CAFY,EAGZD,UAAU,GACN;AACEE,IAAAA,GAAG,EAAEF;AADP,GADM,GAING,SAPQ,CAAd;;AAUA,MAAMC,MAAM,GAAGC,qCAAkBC,UAAlB,CAA6BC,KAA7B,CAAmC,IAAnC,EAAyCN,KAAzC,CAAf;;AAEA,MAAID,UAAJ,EAAgB;AACd,WAAOI,MAAM,CAACI,IAAP,
|
|
1
|
+
{"version":3,"sources":["selectChannels.ts"],"names":["selectChannels","channelIds","query","cid","undefined","result","QuickSqliteClient","executeSql","apply","sort","a","b","indexOf"],"mappings":";;;;;AAAA;;AACA;;AAGO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,GAE0C;AAAA,iFAAzC,EAAyC;AAAA,MADtEC,UACsE,QADtEA,UACsE;;AACtE,MAAMC,KAAK,GAAG,0CACZ,UADY,EAEZ,CAAC,GAAD,CAFY,EAGZD,UAAU,GACN;AACEE,IAAAA,GAAG,EAAEF;AADP,GADM,GAING,SAPQ,CAAd;;AAUA,MAAMC,MAAM,GAAGC,qCAAkBC,UAAlB,CAA6BC,KAA7B,CAAmC,IAAnC,EAAyCN,KAAzC,CAAf;;AAEA,MAAID,UAAJ,EAAgB;AACd,WAAOI,MAAM,CAACI,IAAP,CACL,UAACC,CAAD,EAAqBC,CAArB;AAAA,aACEV,UAAU,CAACW,OAAX,CAAmBF,CAAC,CAACP,GAArB,IAA4BF,UAAU,CAACW,OAAX,CAAmBD,CAAC,CAACR,GAArB,CAD9B;AAAA,KADK,CAAP;AAID,GALD,MAKO;AACL,WAAOE,MAAP;AACD;AACF,CAvBM","sourcesContent":["import { QuickSqliteClient } from '../../QuickSqliteClient';\nimport { createSelectQuery } from '../../sqlite-utils/createSelectQuery';\nimport type { TableRowJoinedUser } from '../../types';\n\nexport const selectChannels = ({\n channelIds,\n}: { channelIds?: string[] } = {}): TableRowJoinedUser<'channels'>[] => {\n const query = createSelectQuery(\n 'channels',\n ['*'],\n channelIds\n ? {\n cid: channelIds,\n }\n : undefined,\n );\n\n const result = QuickSqliteClient.executeSql.apply(null, query);\n\n if (channelIds) {\n return result.sort(\n (a: { cid: string }, b: { cid: string }) =>\n channelIds.indexOf(a.cid) - channelIds.indexOf(b.cid),\n );\n } else {\n return result;\n }\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["selectMembersForChannels.ts"],"names":["selectMembersForChannels","cids","questionMarks","Array","length","fill","join","membersColumnNames","Object","keys","tables","members","columns","map","name","userColumnNames","users","result","QuickSqliteClient","executeSql","r","JSON","parse","value"],"mappings":";;;;;AAEA;;AACA;;AAEO,IAAMA,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,IAAD,EAAqD;AAC3F,MAAMC,aAAa,GAAGC,KAAK,CAACF,IAAI,CAACG,MAAN,CAAL,CAAmBC,IAAnB,CAAwB,GAAxB,EAA6BC,IAA7B,CAAkC,GAAlC,CAAtB;AACA,MAAMC,kBAAkB,GAAGC,MAAM,CAACC,IAAP,CAAYC,eAAOC,OAAP,CAAeC,OAA3B,EACxBC,GADwB,CACpB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADoB,EAExBR,IAFwB,CAEnB,IAFmB,CAA3B;AAGA,MAAMS,eAAe,GAAGP,MAAM,CAACC,IAAP,CAAYC,eAAOM,KAAP,CAAaJ,OAAzB,EACrBC,GADqB,CACjB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADiB,EAErBR,IAFqB,CAEhB,IAFgB,CAAxB;;AAIA,MAAMW,MAAM,GAAGC,qCAAkBC,UAAlB,0EAILJ,eAJK,8BAMPR,kBANO,yHAYGL,aAZH,4CAabD,IAba,CAAf;;AAgBA,SAAOgB,MAAM,CAACJ,GAAP,CAAW,UAACO,CAAD;AAAA,
|
|
1
|
+
{"version":3,"sources":["selectMembersForChannels.ts"],"names":["selectMembersForChannels","cids","questionMarks","Array","length","fill","join","membersColumnNames","Object","keys","tables","members","columns","map","name","userColumnNames","users","result","QuickSqliteClient","executeSql","r","JSON","parse","value"],"mappings":";;;;;AAEA;;AACA;;AAEO,IAAMA,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,IAAD,EAAqD;AAC3F,MAAMC,aAAa,GAAGC,KAAK,CAACF,IAAI,CAACG,MAAN,CAAL,CAAmBC,IAAnB,CAAwB,GAAxB,EAA6BC,IAA7B,CAAkC,GAAlC,CAAtB;AACA,MAAMC,kBAAkB,GAAGC,MAAM,CAACC,IAAP,CAAYC,eAAOC,OAAP,CAAeC,OAA3B,EACxBC,GADwB,CACpB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADoB,EAExBR,IAFwB,CAEnB,IAFmB,CAA3B;AAGA,MAAMS,eAAe,GAAGP,MAAM,CAACC,IAAP,CAAYC,eAAOM,KAAP,CAAaJ,OAAzB,EACrBC,GADqB,CACjB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADiB,EAErBR,IAFqB,CAEhB,IAFgB,CAAxB;;AAIA,MAAMW,MAAM,GAAGC,qCAAkBC,UAAlB,0EAILJ,eAJK,8BAMPR,kBANO,yHAYGL,aAZH,4CAabD,IAba,CAAf;;AAgBA,SAAOgB,MAAM,CAACJ,GAAP,CAAW,UAACO,CAAD;AAAA,WAA0BC,IAAI,CAACC,KAAL,CAAWF,CAAC,CAACG,KAAb,CAA1B;AAAA,GAAX,CAAP;AACD,CA1BM","sourcesContent":["import type { TableRowJoinedUser } from 'src/store/types';\n\nimport { QuickSqliteClient } from '../../QuickSqliteClient';\nimport { tables } from '../../schema';\n\nexport const selectMembersForChannels = (cids: string[]): TableRowJoinedUser<'members'>[] => {\n const questionMarks = Array(cids.length).fill('?').join(',');\n const membersColumnNames = Object.keys(tables.members.columns)\n .map((name) => `'${name}', a.${name}`)\n .join(', ');\n const userColumnNames = Object.keys(tables.users.columns)\n .map((name) => `'${name}', b.${name}`)\n .join(', ');\n\n const result = QuickSqliteClient.executeSql(\n `SELECT\n json_object(\n 'user', json_object(\n ${userColumnNames}\n ),\n ${membersColumnNames}\n ) as value\n FROM members a\n LEFT JOIN\n users b\n ON b.id = a.userId \n WHERE cid in (${questionMarks}) ORDER BY datetime(a.createdAt) DESC`,\n cids,\n );\n\n return result.map((r: { value: string }) => JSON.parse(r.value));\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["selectMessagesForChannels.ts"],"names":["selectMessagesForChannels","cids","questionMarks","Array","length","fill","join","messagesColumnNames","Object","keys","tables","messages","columns","map","name","userColumnNames","users","result","QuickSqliteClient","executeSql","r","JSON","parse","value"],"mappings":";;;;;AAAA;;AACA;;AAGO,IAAMA,yBAAyB,GAAG,SAA5BA,yBAA4B,CAACC,IAAD,EAAsD;AAC7F,MAAMC,aAAa,GAAGC,KAAK,CAACF,IAAI,CAACG,MAAN,CAAL,CAAmBC,IAAnB,CAAwB,GAAxB,EAA6BC,IAA7B,CAAkC,GAAlC,CAAtB;AACA,MAAMC,mBAAmB,GAAGC,MAAM,CAACC,IAAP,CAAYC,eAAOC,QAAP,CAAgBC,OAA5B,EACzBC,GADyB,CACrB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADqB,EAEzBR,IAFyB,CAEpB,IAFoB,CAA5B;AAGA,MAAMS,eAAe,GAAGP,MAAM,CAACC,IAAP,CAAYC,eAAOM,KAAP,CAAaJ,OAAzB,EACrBC,GADqB,CACjB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADiB,EAErBR,IAFqB,CAEhB,IAFgB,CAAxB;;AAIA,MAAMW,MAAM,GAAGC,qCAAkBC,UAAlB,0EAILJ,eAJK,8BAMPR,mBANO,mOAgBKL,aAhBL,gGAsBbD,IAtBa,CAAf;;AAyBA,SAAOgB,MAAM,CAACJ,GAAP,CAAW,UAACO,CAAD;AAAA,
|
|
1
|
+
{"version":3,"sources":["selectMessagesForChannels.ts"],"names":["selectMessagesForChannels","cids","questionMarks","Array","length","fill","join","messagesColumnNames","Object","keys","tables","messages","columns","map","name","userColumnNames","users","result","QuickSqliteClient","executeSql","r","JSON","parse","value"],"mappings":";;;;;AAAA;;AACA;;AAGO,IAAMA,yBAAyB,GAAG,SAA5BA,yBAA4B,CAACC,IAAD,EAAsD;AAC7F,MAAMC,aAAa,GAAGC,KAAK,CAACF,IAAI,CAACG,MAAN,CAAL,CAAmBC,IAAnB,CAAwB,GAAxB,EAA6BC,IAA7B,CAAkC,GAAlC,CAAtB;AACA,MAAMC,mBAAmB,GAAGC,MAAM,CAACC,IAAP,CAAYC,eAAOC,QAAP,CAAgBC,OAA5B,EACzBC,GADyB,CACrB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADqB,EAEzBR,IAFyB,CAEpB,IAFoB,CAA5B;AAGA,MAAMS,eAAe,GAAGP,MAAM,CAACC,IAAP,CAAYC,eAAOM,KAAP,CAAaJ,OAAzB,EACrBC,GADqB,CACjB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADiB,EAErBR,IAFqB,CAEhB,IAFgB,CAAxB;;AAIA,MAAMW,MAAM,GAAGC,qCAAkBC,UAAlB,0EAILJ,eAJK,8BAMPR,mBANO,mOAgBKL,aAhBL,gGAsBbD,IAtBa,CAAf;;AAyBA,SAAOgB,MAAM,CAACJ,GAAP,CAAW,UAACO,CAAD;AAAA,WAA0BC,IAAI,CAACC,KAAL,CAAWF,CAAC,CAACG,KAAb,CAA1B;AAAA,GAAX,CAAP;AACD,CAnCM","sourcesContent":["import { QuickSqliteClient } from '../../QuickSqliteClient';\nimport { tables } from '../../schema';\nimport type { TableRowJoinedUser } from '../../types';\n\nexport const selectMessagesForChannels = (cids: string[]): TableRowJoinedUser<'messages'>[] => {\n const questionMarks = Array(cids.length).fill('?').join(',');\n const messagesColumnNames = Object.keys(tables.messages.columns)\n .map((name) => `'${name}', a.${name}`)\n .join(', ');\n const userColumnNames = Object.keys(tables.users.columns)\n .map((name) => `'${name}', b.${name}`)\n .join(', ');\n\n const result = QuickSqliteClient.executeSql(\n `SELECT\n json_object(\n 'user', json_object(\n ${userColumnNames}\n ),\n ${messagesColumnNames}\n ) as value\n FROM (\n SELECT\n *,\n ROW_NUMBER() OVER (\n PARTITION BY cid\n ORDER BY datetime(createdAt) DESC\n ) RowNum\n FROM messages\n WHERE cid in (${questionMarks})\n ) a\n LEFT JOIN\n users b\n ON b.id = a.userId \n WHERE RowNum < 200`,\n cids,\n );\n\n return result.map((r: { value: string }) => JSON.parse(r.value));\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["selectReactionsForMessages.ts"],"names":["selectReactionsForMessages","messageIds","questionMarks","Array","length","fill","join","reactionsColumnNames","Object","keys","tables","reactions","columns","map","name","userColumnNames","users","result","QuickSqliteClient","executeSql","r","JSON","parse","value"],"mappings":";;;;;AAAA;;AACA;;AAGO,IAAMA,0BAA0B,GAAG,SAA7BA,0BAA6B,CACxCC,UADwC,EAEF;AACtC,MAAMC,aAAa,GAAGC,KAAK,CAACF,UAAU,CAACG,MAAZ,CAAL,CAAyBC,IAAzB,CAA8B,GAA9B,EAAmCC,IAAnC,CAAwC,GAAxC,CAAtB;AACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,IAAP,CAAYC,eAAOC,SAAP,CAAiBC,OAA7B,EAC1BC,GAD0B,CACtB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADsB,EAE1BR,IAF0B,CAErB,IAFqB,CAA7B;AAGA,MAAMS,eAAe,GAAGP,MAAM,CAACC,IAAP,CAAYC,eAAOM,KAAP,CAAaJ,OAAzB,EACrBC,GADqB,CACjB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADiB,EAErBR,IAFqB,CAEhB,IAFgB,CAAxB;;AAIA,MAAMW,MAAM,GAAGC,qCAAkBC,UAAlB,0EAILJ,eAJK,8BAMPR,oBANO,mIAYWL,aAZX,QAabD,UAba,CAAf;;AAgBA,SAAOgB,MAAM,CAACJ,GAAP,CAAW,UAACO,CAAD;AAAA,
|
|
1
|
+
{"version":3,"sources":["selectReactionsForMessages.ts"],"names":["selectReactionsForMessages","messageIds","questionMarks","Array","length","fill","join","reactionsColumnNames","Object","keys","tables","reactions","columns","map","name","userColumnNames","users","result","QuickSqliteClient","executeSql","r","JSON","parse","value"],"mappings":";;;;;AAAA;;AACA;;AAGO,IAAMA,0BAA0B,GAAG,SAA7BA,0BAA6B,CACxCC,UADwC,EAEF;AACtC,MAAMC,aAAa,GAAGC,KAAK,CAACF,UAAU,CAACG,MAAZ,CAAL,CAAyBC,IAAzB,CAA8B,GAA9B,EAAmCC,IAAnC,CAAwC,GAAxC,CAAtB;AACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,IAAP,CAAYC,eAAOC,SAAP,CAAiBC,OAA7B,EAC1BC,GAD0B,CACtB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADsB,EAE1BR,IAF0B,CAErB,IAFqB,CAA7B;AAGA,MAAMS,eAAe,GAAGP,MAAM,CAACC,IAAP,CAAYC,eAAOM,KAAP,CAAaJ,OAAzB,EACrBC,GADqB,CACjB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADiB,EAErBR,IAFqB,CAEhB,IAFgB,CAAxB;;AAIA,MAAMW,MAAM,GAAGC,qCAAkBC,UAAlB,0EAILJ,eAJK,8BAMPR,oBANO,mIAYWL,aAZX,QAabD,UAba,CAAf;;AAgBA,SAAOgB,MAAM,CAACJ,GAAP,CAAW,UAACO,CAAD;AAAA,WAA0BC,IAAI,CAACC,KAAL,CAAWF,CAAC,CAACG,KAAb,CAA1B;AAAA,GAAX,CAAP;AACD,CA5BM","sourcesContent":["import { QuickSqliteClient } from '../../QuickSqliteClient';\nimport { tables } from '../../schema';\nimport type { TableRowJoinedUser } from '../../types';\n\nexport const selectReactionsForMessages = (\n messageIds: string[],\n): TableRowJoinedUser<'reactions'>[] => {\n const questionMarks = Array(messageIds.length).fill('?').join(',');\n const reactionsColumnNames = Object.keys(tables.reactions.columns)\n .map((name) => `'${name}', a.${name}`)\n .join(', ');\n const userColumnNames = Object.keys(tables.users.columns)\n .map((name) => `'${name}', b.${name}`)\n .join(', ');\n\n const result = QuickSqliteClient.executeSql(\n `SELECT\n json_object(\n 'user', json_object(\n ${userColumnNames}\n ),\n ${reactionsColumnNames}\n ) as value\n FROM reactions a\n LEFT JOIN\n users b\n ON b.id = a.userId \n WHERE a.messageId in (${questionMarks})`,\n messageIds,\n );\n\n return result.map((r: { value: string }) => JSON.parse(r.value));\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["selectReadsForChannels.ts"],"names":["selectReadsForChannels","cids","questionMarks","Array","length","fill","join","readsColumnNames","Object","keys","tables","reads","columns","map","name","userColumnNames","users","result","QuickSqliteClient","executeSql","r","JSON","parse","value"],"mappings":";;;;;AAAA;;AACA;;AAGO,IAAMA,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACC,IAAD,EAAmD;AACvF,MAAMC,aAAa,GAAGC,KAAK,CAACF,IAAI,CAACG,MAAN,CAAL,CAAmBC,IAAnB,CAAwB,GAAxB,EAA6BC,IAA7B,CAAkC,GAAlC,CAAtB;AACA,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,IAAP,CAAYC,eAAOC,KAAP,CAAaC,OAAzB,EACtBC,GADsB,CAClB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADkB,EAEtBR,IAFsB,CAEjB,IAFiB,CAAzB;AAGA,MAAMS,eAAe,GAAGP,MAAM,CAACC,IAAP,CAAYC,eAAOM,KAAP,CAAaJ,OAAzB,EACrBC,GADqB,CACjB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADiB,EAErBR,IAFqB,CAEhB,IAFgB,CAAxB;;AAGA,MAAMW,MAAM,GAAGC,qCAAkBC,UAAlB,0EAILJ,eAJK,8BAMPR,gBANO,yHAYKL,aAZL,QAabD,IAba,CAAf;;AAgBA,SAAOgB,MAAM,CAACJ,GAAP,CAAW,UAACO,CAAD;AAAA,
|
|
1
|
+
{"version":3,"sources":["selectReadsForChannels.ts"],"names":["selectReadsForChannels","cids","questionMarks","Array","length","fill","join","readsColumnNames","Object","keys","tables","reads","columns","map","name","userColumnNames","users","result","QuickSqliteClient","executeSql","r","JSON","parse","value"],"mappings":";;;;;AAAA;;AACA;;AAGO,IAAMA,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACC,IAAD,EAAmD;AACvF,MAAMC,aAAa,GAAGC,KAAK,CAACF,IAAI,CAACG,MAAN,CAAL,CAAmBC,IAAnB,CAAwB,GAAxB,EAA6BC,IAA7B,CAAkC,GAAlC,CAAtB;AACA,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,IAAP,CAAYC,eAAOC,KAAP,CAAaC,OAAzB,EACtBC,GADsB,CAClB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADkB,EAEtBR,IAFsB,CAEjB,IAFiB,CAAzB;AAGA,MAAMS,eAAe,GAAGP,MAAM,CAACC,IAAP,CAAYC,eAAOM,KAAP,CAAaJ,OAAzB,EACrBC,GADqB,CACjB,UAACC,IAAD;AAAA,iBAAcA,IAAd,aAA0BA,IAA1B;AAAA,GADiB,EAErBR,IAFqB,CAEhB,IAFgB,CAAxB;;AAGA,MAAMW,MAAM,GAAGC,qCAAkBC,UAAlB,0EAILJ,eAJK,8BAMPR,gBANO,yHAYKL,aAZL,QAabD,IAba,CAAf;;AAgBA,SAAOgB,MAAM,CAACJ,GAAP,CAAW,UAACO,CAAD;AAAA,WAA0BC,IAAI,CAACC,KAAL,CAAWF,CAAC,CAACG,KAAb,CAA1B;AAAA,GAAX,CAAP;AACD,CAzBM","sourcesContent":["import { QuickSqliteClient } from '../../QuickSqliteClient';\nimport { tables } from '../../schema';\nimport type { TableRowJoinedUser } from '../../types';\n\nexport const selectReadsForChannels = (cids: string[]): TableRowJoinedUser<'reads'>[] => {\n const questionMarks = Array(cids.length).fill('?').join(',');\n const readsColumnNames = Object.keys(tables.reads.columns)\n .map((name) => `'${name}', a.${name}`)\n .join(', ');\n const userColumnNames = Object.keys(tables.users.columns)\n .map((name) => `'${name}', b.${name}`)\n .join(', ');\n const result = QuickSqliteClient.executeSql(\n `SELECT\n json_object(\n 'user', json_object(\n ${userColumnNames}\n ),\n ${readsColumnNames}\n ) as value\n FROM reads a\n LEFT JOIN\n users b\n ON b.id = a.userId \n WHERE a.cid in (${questionMarks})`,\n cids,\n );\n\n return result.map((r: { value: string }) => JSON.parse(r.value));\n};\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", {
|
|
2
|
+
value: true
|
|
3
|
+
});
|
|
4
|
+
exports.upsertAppSettings = void 0;
|
|
5
|
+
|
|
6
|
+
var _QuickSqliteClient = require("../QuickSqliteClient");
|
|
7
|
+
|
|
8
|
+
var _createUpsertQuery = require("../sqlite-utils/createUpsertQuery");
|
|
9
|
+
|
|
10
|
+
var upsertAppSettings = function upsertAppSettings(_ref) {
|
|
11
|
+
var appSettings = _ref.appSettings,
|
|
12
|
+
currentUserId = _ref.currentUserId,
|
|
13
|
+
_ref$flush = _ref.flush,
|
|
14
|
+
flush = _ref$flush === void 0 ? true : _ref$flush;
|
|
15
|
+
var query = (0, _createUpsertQuery.createUpsertQuery)('userSyncStatus', {
|
|
16
|
+
appSettings: JSON.stringify(appSettings),
|
|
17
|
+
userId: currentUserId
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
if (flush) {
|
|
21
|
+
_QuickSqliteClient.QuickSqliteClient.executeSql.apply(null, query);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
exports.upsertAppSettings = upsertAppSettings;
|
|
26
|
+
//# sourceMappingURL=upsertAppSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["upsertAppSettings.ts"],"names":["upsertAppSettings","appSettings","currentUserId","flush","query","JSON","stringify","userId","QuickSqliteClient","executeSql","apply"],"mappings":";;;;;AAEA;;AACA;;AAEO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,OAQ3B;AAAA,MAPJC,WAOI,QAPJA,WAOI;AAAA,MANJC,aAMI,QANJA,aAMI;AAAA,wBALJC,KAKI;AAAA,MALJA,KAKI,2BALI,IAKJ;AACJ,MAAMC,KAAK,GAAG,0CAAkB,gBAAlB,EAAoC;AAChDH,IAAAA,WAAW,EAAEI,IAAI,CAACC,SAAL,CAAeL,WAAf,CADmC;AAEhDM,IAAAA,MAAM,EAAEL;AAFwC,GAApC,CAAd;;AAKA,MAAIC,KAAJ,EAAW;AACTK,yCAAkBC,UAAlB,CAA6BC,KAA7B,CAAmC,IAAnC,EAAyCN,KAAzC;AACD;AACF,CAjBM","sourcesContent":["import type { AppSettingsAPIResponse } from 'stream-chat';\n\nimport { QuickSqliteClient } from '../QuickSqliteClient';\nimport { createUpsertQuery } from '../sqlite-utils/createUpsertQuery';\n\nexport const upsertAppSettings = ({\n appSettings,\n currentUserId,\n flush = true,\n}: {\n appSettings: AppSettingsAPIResponse;\n currentUserId: string;\n flush?: boolean;\n}) => {\n const query = createUpsertQuery('userSyncStatus', {\n appSettings: JSON.stringify(appSettings),\n userId: currentUserId,\n });\n\n if (flush) {\n QuickSqliteClient.executeSql.apply(null, query);\n }\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["schema.ts"],"names":["tables","channelQueries","columns","cids","id","primaryKey","channels","autoTranslationEnabled","autoTranslationLanguage","cid","config","cooldown","createdAt","createdById","deletedAt","disabled","extraData","frozen","hidden","invites","lastMessageAt","memberCount","muted","ownCapabilities","team","truncatedAt","truncatedBy","truncatedById","type","updatedAt","members","banned","channelRole","inviteAcceptedAt","invited","inviteRejectedAt","isModerator","role","shadowBanned","userId","foreignKeys","column","onDeleteAction","referenceTable","referenceTableColumn","indexes","name","unique","messages","attachments","reactionCounts","text","pendingTasks","channelId","channelType","messageId","payload","reactions","score","reads","lastRead","unreadMessages","users","lastActive","online","userSyncStatus","lastSyncedAt"],"mappings":"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","sourcesContent":["import type { MessageLabel, Role } from 'stream-chat';\n\nimport type { PendingTaskTypes } from './types';\n\nimport type { ValueOf } from '../types/types';\n\ntype Tables = {\n [P in keyof Schema]: {\n columns: {\n [K in keyof Schema[P]]: string;\n };\n foreignKeys?: Array<{\n column: `${Exclude<keyof Schema[P], symbol>}`;\n referenceTable: `${keyof Schema}`;\n referenceTableColumn: string;\n // https://www.sqlite.org/foreignkeys.html#fk_actions\n onDeleteAction?: 'NO ACTION' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT' | 'CASCADE';\n }>;\n indexes?: Array<{\n columns: Array<keyof Schema[P]>;\n name: string;\n unique: boolean;\n }>;\n primaryKey?: Array<keyof Schema[P]>;\n };\n};\n\nexport const tables: Tables = {\n channelQueries: {\n columns: {\n cids: 'TEXT',\n id: 'TEXT',\n },\n primaryKey: ['id'],\n },\n channels: {\n columns: {\n autoTranslationEnabled: 'BOOLEAN',\n autoTranslationLanguage: 'TEXT',\n cid: 'TEXT',\n config: 'TEXT',\n cooldown: 'BOOLEAN',\n createdAt: 'TEXT',\n createdById: 'TEXT',\n deletedAt: 'TEXT',\n disabled: 'BOOLEAN DEFAULT FALSE',\n extraData: 'TEXT',\n frozen: 'BOOLEAN',\n hidden: 'BOOLEAN',\n id: 'TEXT',\n invites: 'TEXT',\n lastMessageAt: 'TEXT',\n memberCount: 'INTEGER',\n muted: 'BOOLEAN DEFAULT FALSE',\n ownCapabilities: 'TEXT',\n team: 'TEXT',\n truncatedAt: 'TEXT',\n truncatedBy: 'TEXT',\n truncatedById: 'TEXT',\n type: 'TEXT',\n updatedAt: 'TEXT',\n },\n primaryKey: ['cid'],\n },\n members: {\n columns: {\n banned: 'BOOLEAN DEFAULT FALSE',\n channelRole: 'TEXT',\n cid: 'TEXT NOT NULL',\n createdAt: 'TEXT',\n inviteAcceptedAt: 'TEXT',\n invited: 'BOOLEAN',\n inviteRejectedAt: 'TEXT',\n isModerator: 'BOOLEAN',\n role: 'TEXT',\n shadowBanned: 'BOOLEAN DEFAULT FALSE',\n updatedAt: 'TEXT',\n userId: 'TEXT',\n },\n foreignKeys: [\n {\n column: 'cid',\n onDeleteAction: 'CASCADE',\n referenceTable: 'channels',\n referenceTableColumn: 'cid',\n },\n ],\n indexes: [\n {\n columns: ['cid', 'userId'],\n name: 'index_members',\n unique: false,\n },\n ],\n primaryKey: ['cid', 'userId'],\n },\n messages: {\n columns: {\n attachments: 'TEXT',\n cid: 'TEXT NOT NULL',\n createdAt: 'TEXT',\n deletedAt: 'TEXT',\n extraData: 'TEXT',\n id: 'TEXT',\n reactionCounts: 'TEXT',\n text: \"TEXT DEFAULT ''\",\n type: 'TEXT',\n updatedAt: 'TEXT',\n userId: 'TEXT',\n },\n foreignKeys: [\n {\n column: 'cid',\n onDeleteAction: 'CASCADE',\n referenceTable: 'channels',\n referenceTableColumn: 'cid',\n },\n ],\n indexes: [\n {\n columns: ['cid', 'userId'],\n name: 'index_messages',\n unique: false,\n },\n ],\n primaryKey: ['id'],\n },\n pendingTasks: {\n columns: {\n channelId: 'TEXT',\n channelType: 'TEXT',\n createdAt: 'TEXT',\n id: 'INTEGER PRIMARY KEY AUTOINCREMENT',\n messageId: 'TEXT',\n payload: 'TEXT',\n type: 'TEXT',\n },\n },\n reactions: {\n columns: {\n createdAt: 'TEXT',\n extraData: 'TEXT',\n messageId: 'TEXT',\n score: 'INTEGER DEFAULT 0',\n type: 'TEXT',\n updatedAt: 'TEXT',\n userId: 'TEXT',\n },\n foreignKeys: [\n {\n column: 'messageId',\n onDeleteAction: 'CASCADE',\n referenceTable: 'messages',\n referenceTableColumn: 'id',\n },\n ],\n indexes: [\n {\n columns: ['messageId', 'userId'],\n name: 'index_reaction',\n unique: false,\n },\n ],\n primaryKey: ['messageId', 'userId', 'type'],\n },\n reads: {\n columns: {\n cid: 'TEXT NOT NULL',\n lastRead: 'TEXT NOT NULL',\n unreadMessages: 'INTEGER DEFAULT 0',\n userId: 'TEXT',\n },\n indexes: [\n {\n columns: ['cid', 'userId'],\n name: 'index_reads_cid',\n unique: false,\n },\n ],\n primaryKey: ['userId', 'cid'],\n },\n users: {\n columns: {\n banned: 'BOOLEAN DEFAULT FALSE',\n createdAt: 'TEXT',\n extraData: 'TEXT',\n id: 'TEXT',\n lastActive: 'TEXT',\n online: 'INTEGER',\n role: 'TEXT',\n updatedAt: 'TEXT',\n },\n indexes: [\n {\n columns: ['id'],\n name: 'index_users_id',\n unique: true,\n },\n ],\n primaryKey: ['id'],\n },\n userSyncStatus: {\n columns: {\n lastSyncedAt: 'TEXT',\n userId: 'TEXT',\n },\n primaryKey: ['userId'],\n },\n};\n\n// TODO: Checking the optionality of columns\nexport type Schema = {\n channelQueries: {\n cids: string;\n id: string;\n };\n channels: {\n cid: string;\n extraData: string;\n id: string;\n type: string;\n autoTranslationEnabled?: boolean;\n autoTranslationLanguage?: string;\n config?: string;\n cooldown?: number;\n createdAt?: string;\n createdById?: string;\n deletedAt?: string;\n disabled?: boolean;\n frozen?: boolean;\n hidden?: boolean;\n invites?: string;\n lastMessageAt?: string;\n memberCount?: number;\n muted?: boolean;\n ownCapabilities?: string;\n team?: string;\n truncatedAt?: string;\n truncatedBy?: string;\n truncatedById?: string;\n updatedAt?: string;\n };\n members: {\n cid: string;\n banned?: boolean;\n channelRole?: Role;\n createdAt?: string;\n inviteAcceptedAt?: string;\n invited?: boolean;\n inviteRejectedAt?: string;\n isModerator?: boolean;\n role?: string;\n shadowBanned?: boolean;\n updatedAt?: string;\n userId?: string;\n };\n messages: {\n attachments: string;\n cid: string;\n createdAt: string;\n deletedAt: string;\n extraData: string;\n id: string;\n reactionCounts: string;\n type: MessageLabel;\n updatedAt: string;\n text?: string;\n userId?: string;\n };\n pendingTasks: {\n channelId: string;\n channelType: string;\n createdAt: string;\n id: number;\n messageId: string;\n payload: string;\n type: ValueOf<PendingTaskTypes>;\n };\n reactions: {\n createdAt: string;\n messageId: string;\n type: string;\n updatedAt: string;\n extraData?: string;\n score?: number;\n userId?: string;\n };\n reads: {\n cid: string;\n lastRead: string;\n unreadMessages?: number;\n userId?: string;\n };\n users: {\n id: string;\n banned?: boolean;\n createdAt?: string;\n extraData?: string;\n lastActive?: string;\n online?: boolean;\n role?: string;\n updatedAt?: string;\n };\n userSyncStatus: {\n lastSyncedAt: string;\n userId: string;\n };\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["schema.ts"],"names":["tables","channelQueries","columns","cids","id","primaryKey","channels","autoTranslationEnabled","autoTranslationLanguage","cid","config","cooldown","createdAt","createdById","deletedAt","disabled","extraData","frozen","hidden","invites","lastMessageAt","memberCount","muted","ownCapabilities","team","truncatedAt","truncatedBy","truncatedById","type","updatedAt","members","banned","channelRole","inviteAcceptedAt","invited","inviteRejectedAt","isModerator","role","shadowBanned","userId","foreignKeys","column","onDeleteAction","referenceTable","referenceTableColumn","indexes","name","unique","messages","attachments","reactionCounts","text","pendingTasks","channelId","channelType","messageId","payload","reactions","score","reads","lastRead","unreadMessages","users","lastActive","online","userSyncStatus","appSettings","lastSyncedAt"],"mappings":"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","sourcesContent":["import type { MessageLabel, Role } from 'stream-chat';\n\nimport type { PendingTaskTypes } from './types';\n\nimport type { ValueOf } from '../types/types';\n\ntype Tables = {\n [P in keyof Schema]: {\n columns: {\n [K in keyof Schema[P]]: string;\n };\n foreignKeys?: Array<{\n column: `${Exclude<keyof Schema[P], symbol>}`;\n referenceTable: `${keyof Schema}`;\n referenceTableColumn: string;\n // https://www.sqlite.org/foreignkeys.html#fk_actions\n onDeleteAction?: 'NO ACTION' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT' | 'CASCADE';\n }>;\n indexes?: Array<{\n columns: Array<keyof Schema[P]>;\n name: string;\n unique: boolean;\n }>;\n primaryKey?: Array<keyof Schema[P]>;\n };\n};\n\nexport const tables: Tables = {\n channelQueries: {\n columns: {\n cids: 'TEXT',\n id: 'TEXT',\n },\n primaryKey: ['id'],\n },\n channels: {\n columns: {\n autoTranslationEnabled: 'BOOLEAN',\n autoTranslationLanguage: 'TEXT',\n cid: 'TEXT',\n config: 'TEXT',\n cooldown: 'BOOLEAN',\n createdAt: 'TEXT',\n createdById: 'TEXT',\n deletedAt: 'TEXT',\n disabled: 'BOOLEAN DEFAULT FALSE',\n extraData: 'TEXT',\n frozen: 'BOOLEAN',\n hidden: 'BOOLEAN',\n id: 'TEXT',\n invites: 'TEXT',\n lastMessageAt: 'TEXT',\n memberCount: 'INTEGER',\n muted: 'BOOLEAN DEFAULT FALSE',\n ownCapabilities: 'TEXT',\n team: 'TEXT',\n truncatedAt: 'TEXT',\n truncatedBy: 'TEXT',\n truncatedById: 'TEXT',\n type: 'TEXT',\n updatedAt: 'TEXT',\n },\n primaryKey: ['cid'],\n },\n members: {\n columns: {\n banned: 'BOOLEAN DEFAULT FALSE',\n channelRole: 'TEXT',\n cid: 'TEXT NOT NULL',\n createdAt: 'TEXT',\n inviteAcceptedAt: 'TEXT',\n invited: 'BOOLEAN',\n inviteRejectedAt: 'TEXT',\n isModerator: 'BOOLEAN',\n role: 'TEXT',\n shadowBanned: 'BOOLEAN DEFAULT FALSE',\n updatedAt: 'TEXT',\n userId: 'TEXT',\n },\n foreignKeys: [\n {\n column: 'cid',\n onDeleteAction: 'CASCADE',\n referenceTable: 'channels',\n referenceTableColumn: 'cid',\n },\n ],\n indexes: [\n {\n columns: ['cid', 'userId'],\n name: 'index_members',\n unique: false,\n },\n ],\n primaryKey: ['cid', 'userId'],\n },\n messages: {\n columns: {\n attachments: 'TEXT',\n cid: 'TEXT NOT NULL',\n createdAt: 'TEXT',\n deletedAt: 'TEXT',\n extraData: 'TEXT',\n id: 'TEXT',\n reactionCounts: 'TEXT',\n text: \"TEXT DEFAULT ''\",\n type: 'TEXT',\n updatedAt: 'TEXT',\n userId: 'TEXT',\n },\n foreignKeys: [\n {\n column: 'cid',\n onDeleteAction: 'CASCADE',\n referenceTable: 'channels',\n referenceTableColumn: 'cid',\n },\n ],\n indexes: [\n {\n columns: ['cid', 'userId'],\n name: 'index_messages',\n unique: false,\n },\n ],\n primaryKey: ['id'],\n },\n pendingTasks: {\n columns: {\n channelId: 'TEXT',\n channelType: 'TEXT',\n createdAt: 'TEXT',\n id: 'INTEGER PRIMARY KEY AUTOINCREMENT',\n messageId: 'TEXT',\n payload: 'TEXT',\n type: 'TEXT',\n },\n },\n reactions: {\n columns: {\n createdAt: 'TEXT',\n extraData: 'TEXT',\n messageId: 'TEXT',\n score: 'INTEGER DEFAULT 0',\n type: 'TEXT',\n updatedAt: 'TEXT',\n userId: 'TEXT',\n },\n foreignKeys: [\n {\n column: 'messageId',\n onDeleteAction: 'CASCADE',\n referenceTable: 'messages',\n referenceTableColumn: 'id',\n },\n ],\n indexes: [\n {\n columns: ['messageId', 'userId'],\n name: 'index_reaction',\n unique: false,\n },\n ],\n primaryKey: ['messageId', 'userId', 'type'],\n },\n reads: {\n columns: {\n cid: 'TEXT NOT NULL',\n lastRead: 'TEXT NOT NULL',\n unreadMessages: 'INTEGER DEFAULT 0',\n userId: 'TEXT',\n },\n indexes: [\n {\n columns: ['cid', 'userId'],\n name: 'index_reads_cid',\n unique: false,\n },\n ],\n primaryKey: ['userId', 'cid'],\n },\n users: {\n columns: {\n banned: 'BOOLEAN DEFAULT FALSE',\n createdAt: 'TEXT',\n extraData: 'TEXT',\n id: 'TEXT',\n lastActive: 'TEXT',\n online: 'INTEGER',\n role: 'TEXT',\n updatedAt: 'TEXT',\n },\n indexes: [\n {\n columns: ['id'],\n name: 'index_users_id',\n unique: true,\n },\n ],\n primaryKey: ['id'],\n },\n userSyncStatus: {\n columns: {\n appSettings: 'TEXT',\n lastSyncedAt: 'TEXT',\n userId: 'TEXT',\n },\n primaryKey: ['userId'],\n },\n};\n\n// TODO: Checking the optionality of columns\nexport type Schema = {\n channelQueries: {\n cids: string;\n id: string;\n };\n channels: {\n cid: string;\n extraData: string;\n id: string;\n type: string;\n autoTranslationEnabled?: boolean;\n autoTranslationLanguage?: string;\n config?: string;\n cooldown?: number;\n createdAt?: string;\n createdById?: string;\n deletedAt?: string;\n disabled?: boolean;\n frozen?: boolean;\n hidden?: boolean;\n invites?: string;\n lastMessageAt?: string;\n memberCount?: number;\n muted?: boolean;\n ownCapabilities?: string;\n team?: string;\n truncatedAt?: string;\n truncatedBy?: string;\n truncatedById?: string;\n updatedAt?: string;\n };\n members: {\n cid: string;\n banned?: boolean;\n channelRole?: Role;\n createdAt?: string;\n inviteAcceptedAt?: string;\n invited?: boolean;\n inviteRejectedAt?: string;\n isModerator?: boolean;\n role?: string;\n shadowBanned?: boolean;\n updatedAt?: string;\n userId?: string;\n };\n messages: {\n attachments: string;\n cid: string;\n createdAt: string;\n deletedAt: string;\n extraData: string;\n id: string;\n reactionCounts: string;\n type: MessageLabel;\n updatedAt: string;\n text?: string;\n userId?: string;\n };\n pendingTasks: {\n channelId: string;\n channelType: string;\n createdAt: string;\n id: number;\n messageId: string;\n payload: string;\n type: ValueOf<PendingTaskTypes>;\n };\n reactions: {\n createdAt: string;\n messageId: string;\n type: string;\n updatedAt: string;\n extraData?: string;\n score?: number;\n userId?: string;\n };\n reads: {\n cid: string;\n lastRead: string;\n unreadMessages?: number;\n userId?: string;\n };\n users: {\n id: string;\n banned?: boolean;\n createdAt?: string;\n extraData?: string;\n lastActive?: string;\n online?: boolean;\n role?: string;\n updatedAt?: string;\n };\n userSyncStatus: {\n appSettings: string;\n lastSyncedAt: string;\n userId: string;\n };\n};\n"]}
|
|
@@ -41,18 +41,6 @@ var restBeforeNextTask = function restBeforeNextTask() {
|
|
|
41
41
|
|
|
42
42
|
var DBSyncManager = (0, _createClass2["default"])(function DBSyncManager() {
|
|
43
43
|
(0, _classCallCheck2["default"])(this, DBSyncManager);
|
|
44
|
-
|
|
45
|
-
this.dropPendingTasks = function (conditions) {
|
|
46
|
-
var tasks = (0, _getPendingTasks.getPendingTasks)(conditions);
|
|
47
|
-
|
|
48
|
-
for (var _iterator = _createForOfIteratorHelperLoose(tasks), _step; !(_step = _iterator()).done;) {
|
|
49
|
-
var task = _step.value;
|
|
50
|
-
if (!task.id) continue;
|
|
51
|
-
(0, _deletePendingTask.deletePendingTask)({
|
|
52
|
-
id: task.id
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
44
|
});
|
|
57
45
|
exports.DBSyncManager = DBSyncManager;
|
|
58
46
|
DBSyncManager.syncStatus = false;
|
|
@@ -359,22 +347,22 @@ DBSyncManager.executeTask = function () {
|
|
|
359
347
|
|
|
360
348
|
DBSyncManager.executePendingTasks = function () {
|
|
361
349
|
var _ref9 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7(client) {
|
|
362
|
-
var queue,
|
|
350
|
+
var queue, _iterator, _step, task, _response2, _response2$data;
|
|
363
351
|
|
|
364
352
|
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
365
353
|
while (1) {
|
|
366
354
|
switch (_context7.prev = _context7.next) {
|
|
367
355
|
case 0:
|
|
368
356
|
queue = (0, _getPendingTasks.getPendingTasks)();
|
|
369
|
-
|
|
357
|
+
_iterator = _createForOfIteratorHelperLoose(queue);
|
|
370
358
|
|
|
371
359
|
case 2:
|
|
372
|
-
if ((
|
|
360
|
+
if ((_step = _iterator()).done) {
|
|
373
361
|
_context7.next = 22;
|
|
374
362
|
break;
|
|
375
363
|
}
|
|
376
364
|
|
|
377
|
-
task =
|
|
365
|
+
task = _step.value;
|
|
378
366
|
|
|
379
367
|
if (task.id) {
|
|
380
368
|
_context7.next = 6;
|
|
@@ -433,4 +421,16 @@ DBSyncManager.executePendingTasks = function () {
|
|
|
433
421
|
return _ref9.apply(this, arguments);
|
|
434
422
|
};
|
|
435
423
|
}();
|
|
424
|
+
|
|
425
|
+
DBSyncManager.dropPendingTasks = function (conditions) {
|
|
426
|
+
var tasks = (0, _getPendingTasks.getPendingTasks)(conditions);
|
|
427
|
+
|
|
428
|
+
for (var _iterator2 = _createForOfIteratorHelperLoose(tasks), _step2; !(_step2 = _iterator2()).done;) {
|
|
429
|
+
var task = _step2.value;
|
|
430
|
+
if (!task.id) continue;
|
|
431
|
+
(0, _deletePendingTask.deletePendingTask)({
|
|
432
|
+
id: task.id
|
|
433
|
+
});
|
|
434
|
+
}
|
|
435
|
+
};
|
|
436
436
|
//# sourceMappingURL=DBSyncManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["DBSyncManager.ts"],"names":["restBeforeNextTask","Promise","resolve","setTimeout","DBSyncManager","dropPendingTasks","conditions","tasks","task","id","syncStatus","listeners","client","getSyncStatus","init","user","wsConnection","isHealthy","syncAndExecutePendingTasks","forEach","l","on","event","online","onSyncStatusChange","listener","push","unsubscribe","filter","el","sync","lastSyncedAt","currentUserId","cids","Date","toISOString","result","queries","events","reduce","concat","length","QuickSqliteClient","executeSqlBatch","resetDB","toString","executePendingTasks","queueTask","removeFromApi","executeTask","response","data","code","channel","channelType","channelId","type","sendReaction","payload","deleteReaction","deleteMessage","Error","queue"],"mappings":"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","sourcesContent":["import type { AxiosError } from 'axios';\nimport type { APIErrorResponse, StreamChat } from 'stream-chat';\n\nimport { handleEventToSyncDB } from '../components/Chat/hooks/handleEventToSyncDB';\nimport { getAllChannelIds, getLastSyncedAt, upsertLastSyncedAt } from '../store/apis';\n\nimport { addPendingTask } from '../store/apis/addPendingTask';\n\nimport { deletePendingTask } from '../store/apis/deletePendingTask';\nimport { getPendingTasks } from '../store/apis/getPendingTasks';\nimport { QuickSqliteClient } from '../store/QuickSqliteClient';\nimport type { PendingTask, PreparedQueries } from '../store/types';\nimport type { DefaultStreamChatGenerics } from '../types/types';\n/**\n * DBSyncManager has the responsibility to sync the channel states\n * within local database whenever possible.\n *\n * Components can get the current sync status using DBSyncManager.getCurrentStatus().\n * Or components can attach a listener for status change as following:\n *\n * ```tsx\n * useEffect(() => {\n * const unsubscribe = DBSyncManager.onSyncStatusChange((syncStatus) => {\n * if (syncStatus) {\n * doSomething();\n * }\n * })\n *\n * return () => unsubscribe();\n * })\n * ```\n */\nconst restBeforeNextTask = () => new Promise((resolve) => setTimeout(resolve, 500));\n\nexport class DBSyncManager {\n static syncStatus = false;\n static listeners: Array<(status: boolean) => void> = [];\n static client: StreamChat | null = null;\n\n /**\n * Returns weather channel states in local DB are synced with backend or not.\n * @returns boolean\n */\n static getSyncStatus = () => this.syncStatus;\n\n /**\n * Initializes the DBSyncManager. This function should be called only once\n * throughout the lifetime of SDK.\n *\n * @param client\n */\n static init = async (client: StreamChat) => {\n this.client = client;\n // If the websocket connection is already active, then straightaway\n // call the sync api and also execute pending api calls.\n // Otherwise wait for `connection.changed` event.\n if (client.user?.id && client.wsConnection?.isHealthy) {\n await this.syncAndExecutePendingTasks();\n this.syncStatus = true;\n this.listeners.forEach((l) => l(true));\n }\n\n this.client.on('connection.changed', async (event) => {\n if (event.online) {\n await this.syncAndExecutePendingTasks();\n this.listeners.forEach((l) => l(true));\n } else {\n this.listeners.forEach((l) => l(false));\n }\n });\n };\n\n /**\n * Subscribes a listener for sync status change.\n *\n * @param listener {function}\n * @returns {function} to unsubscribe the listener.\n */\n static onSyncStatusChange = (listener: (status: boolean) => void) => {\n this.listeners.push(listener);\n\n return {\n unsubscribe: () => {\n this.listeners = this.listeners.filter((el) => el !== listener);\n },\n };\n };\n\n static sync = async () => {\n if (!this.client?.user) return;\n\n const lastSyncedAt = getLastSyncedAt({\n currentUserId: this.client.user.id,\n });\n const cids = getAllChannelIds();\n\n if (lastSyncedAt) {\n try {\n const result = await this.client.sync(cids, new Date(lastSyncedAt).toISOString());\n const queries = result.events.reduce<PreparedQueries[]>((queries, event) => {\n queries = queries.concat(handleEventToSyncDB(event, false));\n return queries;\n }, []);\n\n if (queries.length) {\n QuickSqliteClient.executeSqlBatch(queries);\n }\n } catch (e) {\n // Error will be raised by the sync API if there are too many events.\n // In that case reset the entire DB and start fresh.\n QuickSqliteClient.resetDB();\n }\n }\n upsertLastSyncedAt({\n currentUserId: this.client.user.id,\n lastSyncedAt: new Date().toString(),\n });\n };\n\n static syncAndExecutePendingTasks = async () => {\n if (!this.client) return;\n\n await this.executePendingTasks(this.client);\n await this.sync();\n };\n\n static queueTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >({\n client,\n task,\n }: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n }) => {\n const removeFromApi = addPendingTask(task);\n\n let response;\n try {\n response = await this.executeTask<StreamChatGenerics>({ client, task });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n removeFromApi();\n\n return response;\n };\n\n static executeTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >({\n client,\n task,\n }: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n }) => {\n const channel = client.channel(task.channelType, task.channelId);\n\n if (task.type === 'send-reaction') {\n return await channel.sendReaction(...task.payload);\n }\n\n if (task.type === 'delete-reaction') {\n return await channel.deleteReaction(...task.payload);\n }\n\n if (task.type === 'delete-message') {\n return await client.deleteMessage(...task.payload);\n }\n\n throw new Error('Invalid task type');\n };\n\n static executePendingTasks = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >(\n client: StreamChat<StreamChatGenerics>,\n ) => {\n const queue = getPendingTasks();\n for (const task of queue) {\n if (!task.id) continue;\n\n try {\n await this.executeTask<StreamChatGenerics>({\n client,\n task,\n });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n deletePendingTask({\n id: task.id,\n });\n await restBeforeNextTask();\n }\n };\n\n dropPendingTasks = (conditions: { messageId: string }) => {\n const tasks = getPendingTasks(conditions);\n\n for (const task of tasks) {\n if (!task.id) continue;\n\n deletePendingTask({\n id: task.id,\n });\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["DBSyncManager.ts"],"names":["restBeforeNextTask","Promise","resolve","setTimeout","DBSyncManager","syncStatus","listeners","client","getSyncStatus","init","user","id","wsConnection","isHealthy","syncAndExecutePendingTasks","forEach","l","on","event","online","onSyncStatusChange","listener","push","unsubscribe","filter","el","sync","lastSyncedAt","currentUserId","cids","Date","toISOString","result","queries","events","reduce","concat","length","QuickSqliteClient","executeSqlBatch","resetDB","toString","executePendingTasks","queueTask","task","removeFromApi","executeTask","response","data","code","channel","channelType","channelId","type","sendReaction","payload","deleteReaction","deleteMessage","Error","queue","dropPendingTasks","conditions","tasks"],"mappings":";;;;;;;;;;;;;;;;;AAGA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;;;;;;;AAsBA,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB;AAAA,SAAM,IAAIC,OAAJ,CAAY,UAACC,OAAD;AAAA,WAAaC,UAAU,CAACD,OAAD,EAAU,GAAV,CAAvB;AAAA,GAAZ,CAAN;AAAA,CAA3B;;IAEaE,a;;;;AAAAA,a,CACJC,U,GAAa,K;AADTD,a,CAEJE,S,GAA8C,E;AAF1CF,a,CAGJG,M,GAA4B,I;;AAHxBH,a,CASJI,a,GAAgB;AAAA,SATZJ,aASkB,CAAKC,UAAX;AAAA,C;;AATZD,a,CAiBJK,I;6EAAO,kBAAOF,MAAP;AAAA;;AAAA;AAAA;AAAA;AAAA;AAjBHH,YAAAA,aAkBT,CAAKG,MAAL,GAAcA,MAAd;;AADY,kBAKR,gBAAAA,MAAM,CAACG,IAAP,0BAAaC,EAAb,4BAAmBJ,MAAM,CAACK,YAA1B,aAAmB,qBAAqBC,SALhC;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAjBHT,aAuBD,CAAKU,0BAAL,EANI;;AAAA;AAjBHV,YAAAA,aAwBP,CAAKC,UAAL,GAAkB,IAAlB;AAxBOD,YAAAA,aAyBP,CAAKE,SAAL,CAAeS,OAAf,CAAuB,UAACC,CAAD;AAAA,qBAAOA,CAAC,CAAC,IAAD,CAAR;AAAA,aAAvB;;AARU;AAjBHZ,YAAAA,aA4BT,CAAKG,MAAL,CAAYU,EAAZ,CAAe,oBAAf;AAAA,0FAAqC,iBAAOC,KAAP;AAAA;AAAA;AAAA;AAAA;AAAA,6BAC/BA,KAAK,CAACC,MADyB;AAAA;AAAA;AAAA;;AAAA;AAAA,+BA5B5Bf,aA8BC,CAAKU,0BAAL,EAF2B;;AAAA;AA5B5BV,wBAAAA,aA+BL,CAAKE,SAAL,CAAeS,OAAf,CAAuB,UAACC,CAAD;AAAA,iCAAOA,CAAC,CAAC,IAAD,CAAR;AAAA,yBAAvB;AAHiC;AAAA;;AAAA;AA5B5BZ,wBAAAA,aAiCL,CAAKE,SAAL,CAAeS,OAAf,CAAuB,UAACC,CAAD;AAAA,iCAAOA,CAAC,CAAC,KAAD,CAAR;AAAA,yBAAvB;;AALiC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAArC;;AAAA;AAAA;AAAA;AAAA;;AAXY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;;;;AAjBHZ,a,CA4CJgB,kB,GAAqB,UAACC,QAAD,EAAyC;AA5C1DjB,EAAAA,aA6CT,CAAKE,SAAL,CAAegB,IAAf,CAAoBD,QAApB;AAEA,SAAO;AACLE,IAAAA,WAAW,EAAE,uBAAM;AAhDZnB,MAAAA,aAiDL,CAAKE,SAAL,GAjDKF,aAiDY,CAAKE,SAAL,CAAekB,MAAf,CAAsB,UAACC,EAAD;AAAA,eAAQA,EAAE,KAAKJ,QAAf;AAAA,OAAtB,CAAjB;AACD;AAHI,GAAP;AAKD,C;;AApDUjB,a,CAsDJsB,I,mEAAO;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCAtDHtB,aAuDJ,CAAKG,MADE,aACP,sBAAaG,IADN;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAGNiB,UAAAA,YAHM,GAGS,2BAAgB;AACnCC,YAAAA,aAAa,EA1DNxB,aA0DQ,CAAKG,MAAL,CAAYG,IAAZ,CAAiBC;AADG,WAAhB,CAHT;AAMNkB,UAAAA,IANM,GAMC,6BAND;;AAAA,eAQRF,YARQ;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,iBAtDHvB,aAgEgB,CAAKG,MAAL,CAAYmB,IAAZ,CAAiBG,IAAjB,EAAuB,IAAIC,IAAJ,CAASH,YAAT,EAAuBI,WAAvB,EAAvB,CAVb;;AAAA;AAUFC,UAAAA,MAVE;AAWFC,UAAAA,OAXE,GAWQD,MAAM,CAACE,MAAP,CAAcC,MAAd,CAAwC,UAACF,OAAD,EAAUf,KAAV,EAAoB;AAC1Ee,YAAAA,OAAO,GAAGA,OAAO,CAACG,MAAR,CAAe,8CAAoBlB,KAApB,EAA2B,KAA3B,CAAf,CAAV;AACA,mBAAOe,OAAP;AACD,WAHe,EAGb,EAHa,CAXR;;AAgBR,cAAIA,OAAO,CAACI,MAAZ,EAAoB;AAClBC,iDAAkBC,eAAlB,CAAkCN,OAAlC;AACD;;AAlBO;AAAA;;AAAA;AAAA;AAAA;;AAsBRK,+CAAkBE,OAAlB;;AAtBQ;AAyBZ,wCAAmB;AACjBZ,YAAAA,aAAa,EAhFNxB,aAgFQ,CAAKG,MAAL,CAAYG,IAAZ,CAAiBC,EADf;AAEjBgB,YAAAA,YAAY,EAAE,IAAIG,IAAJ,GAAWW,QAAX;AAFG,WAAnB;;AAzBY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,C;AAtDHrC,a,CAqFJU,0B,mEAA6B;AAAA;AAAA;AAAA;AAAA;AAAA,cArFzBV,aAsFJ,CAAKG,MADwB;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA,iBArFzBH,aAwFH,CAAKsC,mBAAL,CAxFGtC,aAwFsB,CAAKG,MAA9B,CAH4B;;AAAA;AAAA;AAAA,iBArFzBH,aAyFH,CAAKsB,IAAL,EAJ4B;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,C;;AArFzBtB,a,CA4FJuC,S;8EAAY;AAAA;;AAAA;AAAA;AAAA;AAAA;AAGjBpC,YAAAA,MAHiB,SAGjBA,MAHiB,EAIjBqC,IAJiB,SAIjBA,IAJiB;AASXC,YAAAA,aATW,GASK,oCAAeD,IAAf,CATL;AAAA;AAAA;AAAA,mBA5FRxC,aAyGU,CAAK0C,WAAL,CAAqC;AAAEvC,cAAAA,MAAM,EAANA,MAAF;AAAUqC,cAAAA,IAAI,EAAJA;AAAV,aAArC,CAbF;;AAAA;AAafG,YAAAA,QAbe;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA,kBAeX,2DAAqCA,QAArC,iDAA+CC,IAA/C,oCAAqDC,IAArD,MAA8D,CAfnD;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAuBjBJ,YAAAA,aAAa;AAvBI,8CAyBVE,QAzBU;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;;;;AA5FR3C,a,CAwHJ0C,W;8EAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAGnBvC,YAAAA,MAHmB,SAGnBA,MAHmB,EAInBqC,IAJmB,SAInBA,IAJmB;AASbM,YAAAA,OATa,GASH3C,MAAM,CAAC2C,OAAP,CAAeN,IAAI,CAACO,WAApB,EAAiCP,IAAI,CAACQ,SAAtC,CATG;;AAAA,kBAWfR,IAAI,CAACS,IAAL,KAAc,eAXC;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAYJH,OAAO,CAACI,YAAR,OAAAJ,OAAO,sCAAiBN,IAAI,CAACW,OAAtB,EAZH;;AAAA;AAAA;;AAAA;AAAA,kBAefX,IAAI,CAACS,IAAL,KAAc,iBAfC;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAgBJH,OAAO,CAACM,cAAR,OAAAN,OAAO,sCAAmBN,IAAI,CAACW,OAAxB,EAhBH;;AAAA;AAAA;;AAAA;AAAA,kBAmBfX,IAAI,CAACS,IAAL,KAAc,gBAnBC;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAoBJ9C,MAAM,CAACkD,aAAP,OAAAlD,MAAM,sCAAkBqC,IAAI,CAACW,OAAvB,EApBF;;AAAA;AAAA;;AAAA;AAAA,kBAuBb,IAAIG,KAAJ,CAAU,mBAAV,CAvBa;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;;;;AAxHVtD,a,CAkJJsC,mB;8EAAsB,kBAG3BnC,MAH2B;AAAA;;AAAA;AAAA;AAAA;AAAA;AAKrBoD,YAAAA,KALqB,GAKb,uCALa;AAAA,wDAMRA,KANQ;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAMhBf,YAAAA,IANgB;;AAAA,gBAOpBA,IAAI,CAACjC,EAPe;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA,mBAlJlBP,aA4JC,CAAK0C,WAAL,CAAqC;AACzCvC,cAAAA,MAAM,EAANA,MADyC;AAEzCqC,cAAAA,IAAI,EAAJA;AAFyC,aAArC,CAViB;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA,kBAenB,4DAAqCG,QAArC,mDAA+CC,IAA/C,qCAAqDC,IAArD,MAA8D,CAf3C;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAuBzB,sDAAkB;AAChBtC,cAAAA,EAAE,EAAEiC,IAAI,CAACjC;AADO,aAAlB;AAvByB;AAAA,mBA0BnBX,kBAAkB,EA1BC;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;;;;AAlJlBI,a,CAgLJwD,gB,GAAmB,UAACC,UAAD,EAAuC;AAC/D,MAAMC,KAAK,GAAG,sCAAgBD,UAAhB,CAAd;;AAEA,wDAAmBC,KAAnB,2CAA0B;AAAA,QAAflB,IAAe;AACxB,QAAI,CAACA,IAAI,CAACjC,EAAV,EAAc;AAEd,8CAAkB;AAChBA,MAAAA,EAAE,EAAEiC,IAAI,CAACjC;AADO,KAAlB;AAGD;AACF,C","sourcesContent":["import type { AxiosError } from 'axios';\nimport type { APIErrorResponse, StreamChat } from 'stream-chat';\n\nimport { handleEventToSyncDB } from '../components/Chat/hooks/handleEventToSyncDB';\nimport { getAllChannelIds, getLastSyncedAt, upsertLastSyncedAt } from '../store/apis';\n\nimport { addPendingTask } from '../store/apis/addPendingTask';\n\nimport { deletePendingTask } from '../store/apis/deletePendingTask';\nimport { getPendingTasks } from '../store/apis/getPendingTasks';\nimport { QuickSqliteClient } from '../store/QuickSqliteClient';\nimport type { PendingTask, PreparedQueries } from '../store/types';\nimport type { DefaultStreamChatGenerics } from '../types/types';\n/**\n * DBSyncManager has the responsibility to sync the channel states\n * within local database whenever possible.\n *\n * Components can get the current sync status using DBSyncManager.getCurrentStatus().\n * Or components can attach a listener for status change as following:\n *\n * ```tsx\n * useEffect(() => {\n * const unsubscribe = DBSyncManager.onSyncStatusChange((syncStatus) => {\n * if (syncStatus) {\n * doSomething();\n * }\n * })\n *\n * return () => unsubscribe();\n * })\n * ```\n */\nconst restBeforeNextTask = () => new Promise((resolve) => setTimeout(resolve, 500));\n\nexport class DBSyncManager {\n static syncStatus = false;\n static listeners: Array<(status: boolean) => void> = [];\n static client: StreamChat | null = null;\n\n /**\n * Returns weather channel states in local DB are synced with backend or not.\n * @returns boolean\n */\n static getSyncStatus = () => this.syncStatus;\n\n /**\n * Initializes the DBSyncManager. This function should be called only once\n * throughout the lifetime of SDK.\n *\n * @param client\n */\n static init = async (client: StreamChat) => {\n this.client = client;\n // If the websocket connection is already active, then straightaway\n // call the sync api and also execute pending api calls.\n // Otherwise wait for `connection.changed` event.\n if (client.user?.id && client.wsConnection?.isHealthy) {\n await this.syncAndExecutePendingTasks();\n this.syncStatus = true;\n this.listeners.forEach((l) => l(true));\n }\n\n this.client.on('connection.changed', async (event) => {\n if (event.online) {\n await this.syncAndExecutePendingTasks();\n this.listeners.forEach((l) => l(true));\n } else {\n this.listeners.forEach((l) => l(false));\n }\n });\n };\n\n /**\n * Subscribes a listener for sync status change.\n *\n * @param listener {function}\n * @returns {function} to unsubscribe the listener.\n */\n static onSyncStatusChange = (listener: (status: boolean) => void) => {\n this.listeners.push(listener);\n\n return {\n unsubscribe: () => {\n this.listeners = this.listeners.filter((el) => el !== listener);\n },\n };\n };\n\n static sync = async () => {\n if (!this.client?.user) return;\n\n const lastSyncedAt = getLastSyncedAt({\n currentUserId: this.client.user.id,\n });\n const cids = getAllChannelIds();\n\n if (lastSyncedAt) {\n try {\n const result = await this.client.sync(cids, new Date(lastSyncedAt).toISOString());\n const queries = result.events.reduce<PreparedQueries[]>((queries, event) => {\n queries = queries.concat(handleEventToSyncDB(event, false));\n return queries;\n }, []);\n\n if (queries.length) {\n QuickSqliteClient.executeSqlBatch(queries);\n }\n } catch (e) {\n // Error will be raised by the sync API if there are too many events.\n // In that case reset the entire DB and start fresh.\n QuickSqliteClient.resetDB();\n }\n }\n upsertLastSyncedAt({\n currentUserId: this.client.user.id,\n lastSyncedAt: new Date().toString(),\n });\n };\n\n static syncAndExecutePendingTasks = async () => {\n if (!this.client) return;\n\n await this.executePendingTasks(this.client);\n await this.sync();\n };\n\n static queueTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >({\n client,\n task,\n }: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n }) => {\n const removeFromApi = addPendingTask(task);\n\n let response;\n try {\n response = await this.executeTask<StreamChatGenerics>({ client, task });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n removeFromApi();\n\n return response;\n };\n\n static executeTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >({\n client,\n task,\n }: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n }) => {\n const channel = client.channel(task.channelType, task.channelId);\n\n if (task.type === 'send-reaction') {\n return await channel.sendReaction(...task.payload);\n }\n\n if (task.type === 'delete-reaction') {\n return await channel.deleteReaction(...task.payload);\n }\n\n if (task.type === 'delete-message') {\n return await client.deleteMessage(...task.payload);\n }\n\n throw new Error('Invalid task type');\n };\n\n static executePendingTasks = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >(\n client: StreamChat<StreamChatGenerics>,\n ) => {\n const queue = getPendingTasks();\n for (const task of queue) {\n if (!task.id) continue;\n\n try {\n await this.executeTask<StreamChatGenerics>({\n client,\n task,\n });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n deletePendingTask({\n id: task.id,\n });\n await restBeforeNextTask();\n }\n };\n\n static dropPendingTasks = (conditions: { messageId: string }) => {\n const tasks = getPendingTasks(conditions);\n\n for (const task of tasks) {\n if (!task.id) continue;\n\n deletePendingTask({\n id: task.id,\n });\n }\n };\n}\n"]}
|
|
@@ -9,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
9
9
|
|
|
10
10
|
var removeReservedFields = function removeReservedFields(message) {
|
|
11
11
|
var retryMessage = (0, _extends2["default"])({}, message);
|
|
12
|
-
var reserved = ['cid', 'config', 'created_at', 'created_by', '
|
|
12
|
+
var reserved = ['cid', 'config', 'created_at', 'created_by', 'deleted_at', 'i18n', 'latest_reactions', 'own_reactions', 'reaction_counts', 'last_message_at', 'member_count', 'type', 'updated_at'];
|
|
13
13
|
reserved.forEach(function (key) {
|
|
14
14
|
delete retryMessage[key];
|
|
15
15
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["removeReservedFields.ts"],"names":["removeReservedFields","message","retryMessage","reserved","forEach","key"],"mappings":";;;;;;;;;AAGO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAGlCC,OAHkC,EAI/B;AACH,MAAMC,YAAY,iCAAQD,OAAR,CAAlB;AACA,MAAME,QAAQ,GAAG,CACf,KADe,EAEf,QAFe,EAGf,YAHe,EAIf,YAJe,EAKf,YALe,EAMf,MANe,EAOf,kBAPe,EAQf,eARe,EASf,iBATe,EAUf,iBAVe,EAWf,cAXe,EAYf,MAZe,EAaf,YAbe,CAAjB;AAeAA,EAAAA,QAAQ,CAACC,OAAT,CAAiB,UAACC,GAAD,EAAS;AACxB,WAAOH,YAAY,CAACG,GAAD,CAAnB;AACD,GAFD;AAIA,SAAOH,YAAP;AACD,CA1BM","sourcesContent":["import type { MessageType } from '../components/MessageList/hooks/useMessageList';\nimport type { DefaultStreamChatGenerics } from '../types/types';\n\nexport const removeReservedFields = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n message: MessageType<StreamChatGenerics>,\n) => {\n const retryMessage = { ...message };\n const reserved = [\n 'cid',\n 'config',\n 'created_at',\n 'created_by',\n 'deleted_at',\n 'i18n',\n 'latest_reactions',\n 'own_reactions',\n 'reaction_counts',\n 'last_message_at',\n 'member_count',\n 'type',\n 'updated_at',\n ];\n reserved.forEach((key) => {\n delete retryMessage[key];\n });\n\n return retryMessage;\n};\n"]}
|
|
@@ -43,10 +43,10 @@ var MessageStatusTypes = {
|
|
|
43
43
|
};
|
|
44
44
|
exports.MessageStatusTypes = MessageStatusTypes;
|
|
45
45
|
|
|
46
|
-
var getIndicatorTypeForFileState = function getIndicatorTypeForFileState(fileState,
|
|
46
|
+
var getIndicatorTypeForFileState = function getIndicatorTypeForFileState(fileState, enableOfflineSupport) {
|
|
47
47
|
var _indicatorMap;
|
|
48
48
|
|
|
49
|
-
var indicatorMap = (_indicatorMap = {}, (0, _defineProperty2["default"])(_indicatorMap, FileState.UPLOADING, ProgressIndicatorTypes.IN_PROGRESS), (0, _defineProperty2["default"])(_indicatorMap, FileState.UPLOAD_FAILED,
|
|
49
|
+
var indicatorMap = (_indicatorMap = {}, (0, _defineProperty2["default"])(_indicatorMap, FileState.UPLOADING, enableOfflineSupport ? ProgressIndicatorTypes.INACTIVE : ProgressIndicatorTypes.IN_PROGRESS), (0, _defineProperty2["default"])(_indicatorMap, FileState.UPLOAD_FAILED, enableOfflineSupport ? ProgressIndicatorTypes.INACTIVE : ProgressIndicatorTypes.RETRY), (0, _defineProperty2["default"])(_indicatorMap, FileState.NOT_SUPPORTED, ProgressIndicatorTypes.NOT_SUPPORTED), (0, _defineProperty2["default"])(_indicatorMap, FileState.UPLOADED, ProgressIndicatorTypes.INACTIVE), (0, _defineProperty2["default"])(_indicatorMap, FileState.FINISHED, ProgressIndicatorTypes.INACTIVE), _indicatorMap);
|
|
50
50
|
return indicatorMap[fileState];
|
|
51
51
|
};
|
|
52
52
|
|