stream-chat-react-native-core 5.6.0-beta.1 → 5.6.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/lib/commonjs/components/Channel/Channel.js +23 -17
  2. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  3. package/lib/commonjs/components/Chat/Chat.js +1 -1
  4. package/lib/commonjs/components/Chat/Chat.js.map +1 -1
  5. package/lib/commonjs/components/Chat/hooks/useAppSettings.js +51 -22
  6. package/lib/commonjs/components/Chat/hooks/useAppSettings.js.map +1 -1
  7. package/lib/commonjs/components/Chat/hooks/useIsOnline.js +1 -1
  8. package/lib/commonjs/components/Chat/hooks/useIsOnline.js.map +1 -1
  9. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +4 -1
  10. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
  11. package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js +2 -2
  12. package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
  13. package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
  14. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +16 -7
  15. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  16. package/lib/commonjs/contexts/themeContext/utils/theme.js +1 -0
  17. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  18. package/lib/commonjs/native.js +1 -1
  19. package/lib/commonjs/native.js.map +1 -1
  20. package/lib/commonjs/store/QuickSqliteClient.js +46 -1
  21. package/lib/commonjs/store/QuickSqliteClient.js.map +1 -1
  22. package/lib/commonjs/store/QuickSqliteClient_v4.js +112 -0
  23. package/lib/commonjs/store/QuickSqliteClient_v4.js.map +1 -0
  24. package/lib/commonjs/store/apis/getAppSettings.js +23 -0
  25. package/lib/commonjs/store/apis/getAppSettings.js.map +1 -0
  26. package/lib/commonjs/store/apis/getPendingTasks.js.map +1 -1
  27. package/lib/commonjs/store/apis/index.js +26 -0
  28. package/lib/commonjs/store/apis/index.js.map +1 -1
  29. package/lib/commonjs/store/apis/queries/selectChannels.js.map +1 -1
  30. package/lib/commonjs/store/apis/queries/selectMembersForChannels.js.map +1 -1
  31. package/lib/commonjs/store/apis/queries/selectMessagesForChannels.js.map +1 -1
  32. package/lib/commonjs/store/apis/queries/selectReactionsForMessages.js.map +1 -1
  33. package/lib/commonjs/store/apis/queries/selectReadsForChannels.js.map +1 -1
  34. package/lib/commonjs/store/apis/upsertAppSettings.js +26 -0
  35. package/lib/commonjs/store/apis/upsertAppSettings.js.map +1 -0
  36. package/lib/commonjs/store/schema.js +1 -0
  37. package/lib/commonjs/store/schema.js.map +1 -1
  38. package/lib/commonjs/version.json +1 -1
  39. package/lib/module/components/Channel/Channel.js +23 -17
  40. package/lib/module/components/Channel/Channel.js.map +1 -1
  41. package/lib/module/components/Chat/Chat.js +1 -1
  42. package/lib/module/components/Chat/Chat.js.map +1 -1
  43. package/lib/module/components/Chat/hooks/useAppSettings.js +51 -22
  44. package/lib/module/components/Chat/hooks/useAppSettings.js.map +1 -1
  45. package/lib/module/components/Chat/hooks/useIsOnline.js +1 -1
  46. package/lib/module/components/Chat/hooks/useIsOnline.js.map +1 -1
  47. package/lib/module/components/ImageGallery/components/ImageGrid.js +4 -1
  48. package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
  49. package/lib/module/components/ImageGallery/components/ImageGridHandle.js +2 -2
  50. package/lib/module/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
  51. package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
  52. package/lib/module/contexts/messageInputContext/MessageInputContext.js +16 -7
  53. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  54. package/lib/module/contexts/themeContext/utils/theme.js +1 -0
  55. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  56. package/lib/module/native.js +1 -1
  57. package/lib/module/native.js.map +1 -1
  58. package/lib/module/store/QuickSqliteClient.js +46 -1
  59. package/lib/module/store/QuickSqliteClient.js.map +1 -1
  60. package/lib/module/store/QuickSqliteClient_v4.js +112 -0
  61. package/lib/module/store/QuickSqliteClient_v4.js.map +1 -0
  62. package/lib/module/store/apis/getAppSettings.js +23 -0
  63. package/lib/module/store/apis/getAppSettings.js.map +1 -0
  64. package/lib/module/store/apis/getPendingTasks.js.map +1 -1
  65. package/lib/module/store/apis/index.js +26 -0
  66. package/lib/module/store/apis/index.js.map +1 -1
  67. package/lib/module/store/apis/queries/selectChannels.js.map +1 -1
  68. package/lib/module/store/apis/queries/selectMembersForChannels.js.map +1 -1
  69. package/lib/module/store/apis/queries/selectMessagesForChannels.js.map +1 -1
  70. package/lib/module/store/apis/queries/selectReactionsForMessages.js.map +1 -1
  71. package/lib/module/store/apis/queries/selectReadsForChannels.js.map +1 -1
  72. package/lib/module/store/apis/upsertAppSettings.js +26 -0
  73. package/lib/module/store/apis/upsertAppSettings.js.map +1 -0
  74. package/lib/module/store/schema.js +1 -0
  75. package/lib/module/store/schema.js.map +1 -1
  76. package/lib/module/version.json +1 -1
  77. package/lib/typescript/components/Chat/hooks/useAppSettings.d.ts +2 -2
  78. package/lib/typescript/components/Chat/hooks/useIsOnline.d.ts +1 -1
  79. package/lib/typescript/contexts/chatContext/ChatContext.d.ts +1 -1
  80. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -0
  81. package/lib/typescript/store/QuickSqliteClient.d.ts +4 -1
  82. package/lib/typescript/store/QuickSqliteClient_v4.d.ts +12 -0
  83. package/lib/typescript/store/apis/getAppSettings.d.ts +4 -0
  84. package/lib/typescript/store/apis/getPendingTasks.d.ts +1 -1
  85. package/lib/typescript/store/apis/index.d.ts +2 -0
  86. package/lib/typescript/store/apis/upsertAppSettings.d.ts +6 -0
  87. package/lib/typescript/store/schema.d.ts +1 -0
  88. package/package.json +2 -2
  89. package/src/components/Attachment/__tests__/Gallery.test.js +9 -2
  90. package/src/components/Attachment/__tests__/Giphy.test.js +9 -5
  91. package/src/components/Channel/Channel.tsx +11 -3
  92. package/src/components/Chat/Chat.tsx +1 -1
  93. package/src/components/Chat/hooks/__tests__/useAppSettings.test.tsx +1 -0
  94. package/src/components/Chat/hooks/useAppSettings.ts +19 -6
  95. package/src/components/Chat/hooks/useIsOnline.ts +1 -1
  96. package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +29 -15
  97. package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +12 -6
  98. package/src/components/ImageGallery/__tests__/ImageGalleryHeader.test.tsx +9 -4
  99. package/src/components/ImageGallery/components/ImageGrid.tsx +2 -1
  100. package/src/components/ImageGallery/components/ImageGridHandle.tsx +2 -2
  101. package/src/contexts/chatContext/ChatContext.tsx +1 -1
  102. package/src/contexts/messageInputContext/MessageInputContext.tsx +7 -0
  103. package/src/contexts/messageInputContext/__tests__/MessageInputContext.test.tsx +8 -3
  104. package/src/contexts/messageInputContext/__tests__/uploadFile.test.tsx +16 -6
  105. package/src/contexts/themeContext/utils/theme.ts +2 -0
  106. package/src/native.ts +1 -1
  107. package/src/store/QuickSqliteClient.ts +49 -5
  108. package/src/store/QuickSqliteClient_v4.ts +98 -0
  109. package/src/store/apis/getAppSettings.ts +19 -0
  110. package/src/store/apis/getPendingTasks.ts +2 -1
  111. package/src/store/apis/index.ts +2 -0
  112. package/src/store/apis/queries/selectChannels.ts +4 -1
  113. package/src/store/apis/queries/selectMembersForChannels.ts +1 -1
  114. package/src/store/apis/queries/selectMessagesForChannels.ts +1 -1
  115. package/src/store/apis/queries/selectReactionsForMessages.ts +1 -1
  116. package/src/store/apis/queries/selectReadsForChannels.ts +1 -1
  117. package/src/store/apis/upsertAppSettings.ts +23 -0
  118. package/src/store/schema.ts +2 -0
  119. package/src/version.json +1 -1
@@ -68,7 +68,7 @@ var registerNativeHandlers = function registerNativeHandlers(handlers) {
68
68
  exports.getPhotos = getPhotos = handlers.getPhotos;
69
69
  }
70
70
 
71
- if (handlers.pickDocument) {
71
+ if (handlers.pickDocument !== undefined) {
72
72
  exports.pickDocument = pickDocument = handlers.pickDocument;
73
73
  }
74
74
 
@@ -1 +1 @@
1
- {"version":3,"sources":["native.ts"],"names":["fail","Error","compressImage","deleteFile","getLocalAssetUri","getPhotos","FlatList","DefaultFlatList","NetInfo","addEventListener","fetch","pickDocument","saveFile","setClipboardString","shareImage","takePhoto","triggerHaptic","SDK","Sound","Video","registerNativeHandlers","handlers","undefined","isVideoPackageAvailable","isAudioPackageAvailable","Player","initializeSound"],"mappings":"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","sourcesContent":["import type React from 'react';\nimport { FlatList as DefaultFlatList, StyleProp, ViewStyle } from 'react-native';\n\nimport type { NetInfoSubscription } from '@react-native-community/netinfo';\n\nimport type { Asset, File } from './types/types';\n\nconst fail = () => {\n throw Error(\n 'Native handler was not registered, you should import stream-chat-expo or stream-chat-react-native',\n );\n};\n\ntype CompressImage = ({\n compressImageQuality,\n height,\n uri,\n width,\n}: {\n compressImageQuality: number;\n height: number;\n uri: string;\n width: number;\n}) => Promise<string> | never;\nexport let compressImage: CompressImage = fail;\n\ntype DeleteFile = ({ uri }: { uri: string }) => Promise<boolean> | never;\nexport let deleteFile: DeleteFile = fail;\n\ntype GetLocalAssetUri = (uriOrAssetId: string) => Promise<string> | never;\nexport let getLocalAssetUri: GetLocalAssetUri = fail;\n\ntype GetPhotos = ({ after, first }: { first: number; after?: string }) =>\n | Promise<{\n assets: Array<Omit<Asset, 'source'> & { source: 'picker' }>;\n endCursor: string;\n hasNextPage: boolean;\n }>\n | never;\nexport let getPhotos: GetPhotos = fail;\n\ntype NetInfo = {\n addEventListener: (listener: (isConnected: boolean) => void) => NetInfoSubscription | never;\n fetch: (requestedInterface?: string | undefined) => Promise<boolean> | never;\n};\n\nexport let FlatList = DefaultFlatList;\n\nexport let NetInfo: NetInfo = {\n addEventListener: fail,\n fetch: fail,\n};\n\ntype PickDocument = ({ maxNumberOfFiles }: { maxNumberOfFiles?: number }) =>\n | Promise<{\n cancelled: boolean;\n docs?: File[];\n }>\n | never;\nexport let pickDocument: PickDocument = fail;\n\ntype SaveFileOptions = {\n fileName: string;\n fromUrl: string;\n};\ntype SaveFile = (options: SaveFileOptions) => Promise<string> | never;\nexport let saveFile: SaveFile = fail;\n\ntype SetClipboardString = (text: string) => Promise<void> | never;\nexport let setClipboardString: SetClipboardString = fail;\n\ntype ShareOptions = {\n type?: string;\n url?: string;\n};\ntype ShareImage = (options: ShareOptions) => Promise<boolean> | never;\nexport let shareImage: ShareImage = fail;\n\ntype Photo =\n | (Omit<Asset, 'source'> & {\n cancelled: false;\n source: 'camera';\n })\n | { cancelled: true };\ntype TakePhoto = (options: { compressImageQuality?: number }) => Promise<Photo> | never;\nexport let takePhoto: TakePhoto = fail;\n\ntype HapticFeedbackMethod =\n | 'impactHeavy'\n | 'impactLight'\n | 'impactMedium'\n | 'notificationError'\n | 'notificationSuccess'\n | 'notificationWarning'\n | 'selection';\ntype TriggerHaptic = (method: HapticFeedbackMethod) => void | never;\nexport let triggerHaptic: TriggerHaptic = fail;\n\nexport type PlaybackStatus = {\n didJustFinish: boolean;\n durationMillis: number;\n error: string;\n isBuffering: boolean;\n isLoaded: boolean;\n isLooping: boolean;\n isPlaying: boolean;\n positionMillis: number;\n};\n\nexport type AVPlaybackStatusToSet = {\n isLooping: boolean;\n isMuted: boolean;\n positionMillis: number;\n progressUpdateIntervalMillis: number;\n rate: number;\n shouldCorrectPitch: boolean;\n shouldPlay: boolean;\n volume: number;\n};\n\nexport let SDK: string;\n\nexport type SoundOptions = {\n basePathOrCallback?: string;\n callback?: () => void;\n filenameOrFile?: string;\n initialStatus?: Partial<AVPlaybackStatusToSet>;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n source?: { uri: string };\n};\n\nexport type SoundReturnType = {\n paused: boolean;\n testID: string;\n getDuration?: () => number;\n isPlaying?: () => boolean;\n onBuffer?: (props: { isBuffering: boolean }) => void;\n onEnd?: () => void;\n onLoad?: (payload: VideoPayloadData) => void;\n onLoadStart?: () => void;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n onProgress?: (data: VideoProgressData) => void;\n onReadyForDisplay?: () => void;\n pauseAsync?: () => void;\n play?: () => void;\n playAsync?: () => void;\n replayAsync?: () => void;\n resizeMode?: string;\n seek?: (progress: number) => void;\n setPositionAsync?: (millis: number) => void;\n soundRef?: React.RefObject<SoundReturnType>;\n stopAsync?: () => void;\n style?: StyleProp<ViewStyle>;\n unloadAsync?: () => void;\n uri?: string;\n};\n\nexport type SoundType = {\n initializeSound: (\n source?: { uri: string },\n initialStatus?: Partial<AVPlaybackStatusToSet>,\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void,\n ) => Promise<SoundReturnType | null>;\n Player: React.ComponentType<SoundReturnType> | null;\n};\n\nexport let Sound: SoundType;\n\nexport type VideoProgressData = {\n currentTime: number;\n seekableDuration: number;\n playableDuration?: number;\n};\n\nexport type VideoPayloadData = {\n duration: number;\n audioTracks?: { index: number; language: string; title: string; type: string }[];\n currentPosition?: number;\n naturalSize?: { height: number; orientation: 'portrait' | 'landscape'; width: number };\n textTracks?: { index: number; language: string; title: string; type: string }[];\n videoTracks?: {\n bitrate: number;\n codecs: string;\n height: number;\n trackId: number;\n width: number;\n }[];\n};\n\nexport type VideoType = {\n paused: boolean;\n testID: string;\n uri: string;\n videoRef: React.RefObject<VideoType>;\n onBuffer?: (props: { isBuffering: boolean }) => void;\n onEnd?: () => void;\n onLoad?: (payload: VideoPayloadData) => void;\n onLoadStart?: () => void;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n onProgress?: (data: VideoProgressData) => void;\n onReadyForDisplay?: () => void;\n repeat?: boolean;\n replayAsync?: () => void;\n resizeMode?: string;\n seek?: (progress: number) => void;\n setPositionAsync?: (position: number) => void;\n style?: StyleProp<ViewStyle>;\n};\n\nexport let Video: React.ComponentType<VideoType>;\n\ntype Handlers = {\n compressImage?: CompressImage;\n deleteFile?: DeleteFile;\n FlatList?: typeof DefaultFlatList;\n getLocalAssetUri?: GetLocalAssetUri;\n getPhotos?: GetPhotos;\n NetInfo?: NetInfo;\n pickDocument?: PickDocument;\n saveFile?: SaveFile;\n SDK?: string;\n setClipboardString?: SetClipboardString;\n shareImage?: ShareImage;\n Sound?: SoundType;\n takePhoto?: TakePhoto;\n triggerHaptic?: TriggerHaptic;\n Video?: React.ComponentType<VideoType>;\n};\n\nexport const registerNativeHandlers = (handlers: Handlers) => {\n if (handlers.compressImage) {\n compressImage = handlers.compressImage;\n }\n\n if (handlers.deleteFile) {\n deleteFile = handlers.deleteFile;\n }\n\n if (handlers.FlatList) {\n FlatList = handlers.FlatList;\n }\n if (handlers.NetInfo) {\n NetInfo = handlers.NetInfo;\n }\n\n if (handlers.getLocalAssetUri) {\n getLocalAssetUri = handlers.getLocalAssetUri;\n }\n\n if (handlers.getPhotos) {\n getPhotos = handlers.getPhotos;\n }\n\n if (handlers.pickDocument) {\n pickDocument = handlers.pickDocument;\n }\n\n if (handlers.saveFile) {\n saveFile = handlers.saveFile;\n }\n\n if (handlers.SDK) {\n SDK = handlers.SDK;\n }\n\n if (handlers.shareImage !== undefined) {\n shareImage = handlers.shareImage;\n }\n\n if (handlers.Sound) {\n Sound = handlers.Sound;\n }\n\n if (handlers.takePhoto) {\n takePhoto = handlers.takePhoto;\n }\n\n if (handlers.triggerHaptic) {\n triggerHaptic = handlers.triggerHaptic;\n }\n\n if (handlers.Video) {\n Video = handlers.Video;\n }\n\n if (handlers.setClipboardString !== undefined) {\n setClipboardString = handlers.setClipboardString;\n }\n};\n\nexport const isVideoPackageAvailable = () => !!Video;\nexport const isAudioPackageAvailable = () => !!Sound.Player || !!Sound.initializeSound;\n"]}
1
+ {"version":3,"sources":["native.ts"],"names":["fail","Error","compressImage","deleteFile","getLocalAssetUri","getPhotos","FlatList","DefaultFlatList","NetInfo","addEventListener","fetch","pickDocument","saveFile","setClipboardString","shareImage","takePhoto","triggerHaptic","SDK","Sound","Video","registerNativeHandlers","handlers","undefined","isVideoPackageAvailable","isAudioPackageAvailable","Player","initializeSound"],"mappings":"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","sourcesContent":["import type React from 'react';\nimport { FlatList as DefaultFlatList, StyleProp, ViewStyle } from 'react-native';\n\nimport type { NetInfoSubscription } from '@react-native-community/netinfo';\n\nimport type { Asset, File } from './types/types';\n\nconst fail = () => {\n throw Error(\n 'Native handler was not registered, you should import stream-chat-expo or stream-chat-react-native',\n );\n};\n\ntype CompressImage = ({\n compressImageQuality,\n height,\n uri,\n width,\n}: {\n compressImageQuality: number;\n height: number;\n uri: string;\n width: number;\n}) => Promise<string> | never;\nexport let compressImage: CompressImage = fail;\n\ntype DeleteFile = ({ uri }: { uri: string }) => Promise<boolean> | never;\nexport let deleteFile: DeleteFile = fail;\n\ntype GetLocalAssetUri = (uriOrAssetId: string) => Promise<string> | never;\nexport let getLocalAssetUri: GetLocalAssetUri = fail;\n\ntype GetPhotos = ({ after, first }: { first: number; after?: string }) =>\n | Promise<{\n assets: Array<Omit<Asset, 'source'> & { source: 'picker' }>;\n endCursor: string;\n hasNextPage: boolean;\n }>\n | never;\nexport let getPhotos: GetPhotos = fail;\n\ntype NetInfo = {\n addEventListener: (listener: (isConnected: boolean) => void) => NetInfoSubscription | never;\n fetch: (requestedInterface?: string | undefined) => Promise<boolean> | never;\n};\n\nexport let FlatList = DefaultFlatList;\n\nexport let NetInfo: NetInfo = {\n addEventListener: fail,\n fetch: fail,\n};\n\ntype PickDocument = ({ maxNumberOfFiles }: { maxNumberOfFiles?: number }) =>\n | Promise<{\n cancelled: boolean;\n docs?: File[];\n }>\n | never;\nexport let pickDocument: PickDocument = fail;\n\ntype SaveFileOptions = {\n fileName: string;\n fromUrl: string;\n};\ntype SaveFile = (options: SaveFileOptions) => Promise<string> | never;\nexport let saveFile: SaveFile = fail;\n\ntype SetClipboardString = (text: string) => Promise<void> | never;\nexport let setClipboardString: SetClipboardString = fail;\n\ntype ShareOptions = {\n type?: string;\n url?: string;\n};\ntype ShareImage = (options: ShareOptions) => Promise<boolean> | never;\nexport let shareImage: ShareImage = fail;\n\ntype Photo =\n | (Omit<Asset, 'source'> & {\n cancelled: false;\n source: 'camera';\n })\n | { cancelled: true };\ntype TakePhoto = (options: { compressImageQuality?: number }) => Promise<Photo> | never;\nexport let takePhoto: TakePhoto = fail;\n\ntype HapticFeedbackMethod =\n | 'impactHeavy'\n | 'impactLight'\n | 'impactMedium'\n | 'notificationError'\n | 'notificationSuccess'\n | 'notificationWarning'\n | 'selection';\ntype TriggerHaptic = (method: HapticFeedbackMethod) => void | never;\nexport let triggerHaptic: TriggerHaptic = fail;\n\nexport type PlaybackStatus = {\n didJustFinish: boolean;\n durationMillis: number;\n error: string;\n isBuffering: boolean;\n isLoaded: boolean;\n isLooping: boolean;\n isPlaying: boolean;\n positionMillis: number;\n};\n\nexport type AVPlaybackStatusToSet = {\n isLooping: boolean;\n isMuted: boolean;\n positionMillis: number;\n progressUpdateIntervalMillis: number;\n rate: number;\n shouldCorrectPitch: boolean;\n shouldPlay: boolean;\n volume: number;\n};\n\nexport let SDK: string;\n\nexport type SoundOptions = {\n basePathOrCallback?: string;\n callback?: () => void;\n filenameOrFile?: string;\n initialStatus?: Partial<AVPlaybackStatusToSet>;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n source?: { uri: string };\n};\n\nexport type SoundReturnType = {\n paused: boolean;\n testID: string;\n getDuration?: () => number;\n isPlaying?: () => boolean;\n onBuffer?: (props: { isBuffering: boolean }) => void;\n onEnd?: () => void;\n onLoad?: (payload: VideoPayloadData) => void;\n onLoadStart?: () => void;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n onProgress?: (data: VideoProgressData) => void;\n onReadyForDisplay?: () => void;\n pauseAsync?: () => void;\n play?: () => void;\n playAsync?: () => void;\n replayAsync?: () => void;\n resizeMode?: string;\n seek?: (progress: number) => void;\n setPositionAsync?: (millis: number) => void;\n soundRef?: React.RefObject<SoundReturnType>;\n stopAsync?: () => void;\n style?: StyleProp<ViewStyle>;\n unloadAsync?: () => void;\n uri?: string;\n};\n\nexport type SoundType = {\n initializeSound: (\n source?: { uri: string },\n initialStatus?: Partial<AVPlaybackStatusToSet>,\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void,\n ) => Promise<SoundReturnType | null>;\n Player: React.ComponentType<SoundReturnType> | null;\n};\n\nexport let Sound: SoundType;\n\nexport type VideoProgressData = {\n currentTime: number;\n seekableDuration: number;\n playableDuration?: number;\n};\n\nexport type VideoPayloadData = {\n duration: number;\n audioTracks?: { index: number; language: string; title: string; type: string }[];\n currentPosition?: number;\n naturalSize?: { height: number; orientation: 'portrait' | 'landscape'; width: number };\n textTracks?: { index: number; language: string; title: string; type: string }[];\n videoTracks?: {\n bitrate: number;\n codecs: string;\n height: number;\n trackId: number;\n width: number;\n }[];\n};\n\nexport type VideoType = {\n paused: boolean;\n testID: string;\n uri: string;\n videoRef: React.RefObject<VideoType>;\n onBuffer?: (props: { isBuffering: boolean }) => void;\n onEnd?: () => void;\n onLoad?: (payload: VideoPayloadData) => void;\n onLoadStart?: () => void;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n onProgress?: (data: VideoProgressData) => void;\n onReadyForDisplay?: () => void;\n repeat?: boolean;\n replayAsync?: () => void;\n resizeMode?: string;\n seek?: (progress: number) => void;\n setPositionAsync?: (position: number) => void;\n style?: StyleProp<ViewStyle>;\n};\n\nexport let Video: React.ComponentType<VideoType>;\n\ntype Handlers = {\n compressImage?: CompressImage;\n deleteFile?: DeleteFile;\n FlatList?: typeof DefaultFlatList;\n getLocalAssetUri?: GetLocalAssetUri;\n getPhotos?: GetPhotos;\n NetInfo?: NetInfo;\n pickDocument?: PickDocument;\n saveFile?: SaveFile;\n SDK?: string;\n setClipboardString?: SetClipboardString;\n shareImage?: ShareImage;\n Sound?: SoundType;\n takePhoto?: TakePhoto;\n triggerHaptic?: TriggerHaptic;\n Video?: React.ComponentType<VideoType>;\n};\n\nexport const registerNativeHandlers = (handlers: Handlers) => {\n if (handlers.compressImage) {\n compressImage = handlers.compressImage;\n }\n\n if (handlers.deleteFile) {\n deleteFile = handlers.deleteFile;\n }\n\n if (handlers.FlatList) {\n FlatList = handlers.FlatList;\n }\n if (handlers.NetInfo) {\n NetInfo = handlers.NetInfo;\n }\n\n if (handlers.getLocalAssetUri) {\n getLocalAssetUri = handlers.getLocalAssetUri;\n }\n\n if (handlers.getPhotos) {\n getPhotos = handlers.getPhotos;\n }\n\n if (handlers.pickDocument !== undefined) {\n pickDocument = handlers.pickDocument;\n }\n\n if (handlers.saveFile) {\n saveFile = handlers.saveFile;\n }\n\n if (handlers.SDK) {\n SDK = handlers.SDK;\n }\n\n if (handlers.shareImage !== undefined) {\n shareImage = handlers.shareImage;\n }\n\n if (handlers.Sound) {\n Sound = handlers.Sound;\n }\n\n if (handlers.takePhoto) {\n takePhoto = handlers.takePhoto;\n }\n\n if (handlers.triggerHaptic) {\n triggerHaptic = handlers.triggerHaptic;\n }\n\n if (handlers.Video) {\n Video = handlers.Video;\n }\n\n if (handlers.setClipboardString !== undefined) {\n setClipboardString = handlers.setClipboardString;\n }\n};\n\nexport const isVideoPackageAvailable = () => !!Video;\nexport const isAudioPackageAvailable = () => !!Sound.Player || !!Sound.initializeSound;\n"]}
@@ -13,6 +13,8 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
13
13
 
14
14
  var _constants = require("./constants");
15
15
 
16
+ var _QuickSqliteClient_v = require("./QuickSqliteClient_v4");
17
+
16
18
  var _schema = require("./schema");
17
19
 
18
20
  var _createCreateTableQuery = require("./sqlite-utils/createCreateTableQuery");
@@ -39,7 +41,15 @@ QuickSqliteClient.setDbVersion = function (version) {
39
41
  return QuickSqliteClient.dbVersion = version;
40
42
  };
41
43
 
44
+ QuickSqliteClient.isQuickSqliteV4 = sqlite.executeSql ? true : false;
45
+
42
46
  QuickSqliteClient.openDB = function () {
47
+ if (QuickSqliteClient.isQuickSqliteV4) {
48
+ _QuickSqliteClient_v.QuickSqliteClient_v4.openDB();
49
+
50
+ return;
51
+ }
52
+
43
53
  try {
44
54
  sqlite.open(QuickSqliteClient.dbName, QuickSqliteClient.dbLocation);
45
55
  sqlite.execute(QuickSqliteClient.dbName, "PRAGMA foreign_keys = ON", []);
@@ -49,6 +59,12 @@ QuickSqliteClient.openDB = function () {
49
59
  };
50
60
 
51
61
  QuickSqliteClient.closeDB = function () {
62
+ if (QuickSqliteClient.isQuickSqliteV4) {
63
+ _QuickSqliteClient_v.QuickSqliteClient_v4.closeDB();
64
+
65
+ return;
66
+ }
67
+
52
68
  try {
53
69
  sqlite.close(QuickSqliteClient.dbName);
54
70
  } catch (e) {
@@ -58,6 +74,13 @@ QuickSqliteClient.closeDB = function () {
58
74
 
59
75
  QuickSqliteClient.executeSqlBatch = function (queries) {
60
76
  if (!queries || !queries.length) return;
77
+
78
+ if (QuickSqliteClient.isQuickSqliteV4) {
79
+ _QuickSqliteClient_v.QuickSqliteClient_v4.executeSqlBatch(queries);
80
+
81
+ return;
82
+ }
83
+
61
84
  QuickSqliteClient.openDB();
62
85
 
63
86
  try {
@@ -70,9 +93,13 @@ QuickSqliteClient.executeSqlBatch = function (queries) {
70
93
  };
71
94
 
72
95
  QuickSqliteClient.executeSql = function (query, params) {
73
- QuickSqliteClient.openDB();
96
+ if (QuickSqliteClient.isQuickSqliteV4) {
97
+ return _QuickSqliteClient_v.QuickSqliteClient_v4.executeSql(query, params);
98
+ }
74
99
 
75
100
  try {
101
+ QuickSqliteClient.openDB();
102
+
76
103
  var _sqlite$execute = sqlite.execute(_constants.DB_NAME, query, params),
77
104
  rows = _sqlite$execute.rows;
78
105
 
@@ -92,6 +119,10 @@ QuickSqliteClient.dropTables = function () {
92
119
  };
93
120
 
94
121
  QuickSqliteClient.deleteDatabase = function () {
122
+ if (QuickSqliteClient.isQuickSqliteV4) {
123
+ return _QuickSqliteClient_v.QuickSqliteClient_v4.deleteDatabase();
124
+ }
125
+
95
126
  try {
96
127
  sqlite["delete"](QuickSqliteClient.dbName, QuickSqliteClient.dbLocation);
97
128
  } catch (e) {
@@ -106,6 +137,10 @@ QuickSqliteClient.initializeDatabase = function () {
106
137
  throw new Error('Please install "react-native-quick-sqlite" package to enable offline support');
107
138
  }
108
139
 
140
+ if (QuickSqliteClient.isQuickSqliteV4) {
141
+ console.warn('You seem to be using an older version of "react-native-quick-sqlite" dependency,', 'and we are going to drop support for it in the next major release.', 'Please upgrade to the version v5 of "react-native-quick-sqlite" to avoid any issues.');
142
+ }
143
+
109
144
  var version = QuickSqliteClient.getUserPragmaVersion();
110
145
 
111
146
  if (version !== QuickSqliteClient.dbVersion) {
@@ -121,12 +156,22 @@ QuickSqliteClient.initializeDatabase = function () {
121
156
  };
122
157
 
123
158
  QuickSqliteClient.updateUserPragmaVersion = function (version) {
159
+ if (QuickSqliteClient.isQuickSqliteV4) {
160
+ _QuickSqliteClient_v.QuickSqliteClient_v4.updateUserPragmaVersion(version);
161
+
162
+ return;
163
+ }
164
+
124
165
  QuickSqliteClient.openDB();
125
166
  sqlite.execute(_constants.DB_NAME, "PRAGMA user_version = " + version, []);
126
167
  QuickSqliteClient.closeDB();
127
168
  };
128
169
 
129
170
  QuickSqliteClient.getUserPragmaVersion = function () {
171
+ if (QuickSqliteClient.isQuickSqliteV4) {
172
+ return _QuickSqliteClient_v.QuickSqliteClient_v4.getUserPragmaVersion();
173
+ }
174
+
130
175
  QuickSqliteClient.openDB();
131
176
 
132
177
  try {
@@ -1 +1 @@
1
- {"version":3,"sources":["QuickSqliteClient.ts"],"names":["sqlite","require","QuickSQLite","e","QuickSqliteClient","dbVersion","dbName","DB_NAME","dbLocation","DB_LOCATION","getDbVersion","setDbVersion","version","openDB","open","execute","console","error","closeDB","close","executeSqlBatch","queries","length","executeBatch","Error","executeSql","query","params","rows","_array","dropTables","Object","keys","tables","map","table","deleteDatabase","initializeDatabase","undefined","getUserPragmaVersion","updateUserPragmaVersion","q","reduce","queriesSoFar","tableName","push","result","user_version","resetDB"],"mappings":"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","sourcesContent":["/* eslint-disable no-underscore-dangle */\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}\n\nimport { DB_LOCATION, DB_NAME } from './constants';\nimport { tables } from './schema';\nimport { createCreateTableQuery } from './sqlite-utils/createCreateTableQuery';\nimport type { PreparedQueries, Table } from './types';\n\n/**\n * QuickSqliteClient takes care of any direct interaction with sqlite.\n * This way usage react-native-quick-sqlite package is scoped to a single class/file.\n */\nexport class QuickSqliteClient {\n static dbVersion = 3;\n\n static dbName = DB_NAME;\n static dbLocation = DB_LOCATION;\n\n static getDbVersion = () => this.dbVersion;\n // Force a specific db version. This is mainly useful for testsuit.\n static setDbVersion = (version: number) => (this.dbVersion = version);\n\n static openDB = () => {\n try {\n sqlite.open(this.dbName, this.dbLocation);\n sqlite.execute(this.dbName, `PRAGMA foreign_keys = ON`, []);\n } catch (e) {\n console.error(`Error opening database ${this.dbName}: ${e}`);\n }\n };\n\n static closeDB = () => {\n try {\n sqlite.close(this.dbName);\n } catch (e) {\n console.error(`Error closing database ${this.dbName}: ${e}`);\n }\n };\n\n static executeSqlBatch = (queries: PreparedQueries[]) => {\n if (!queries || !queries.length) return;\n this.openDB();\n\n try {\n sqlite.executeBatch(DB_NAME, queries);\n this.closeDB();\n } catch (e) {\n this.closeDB();\n throw new Error(`Query/queries failed: ${e}`);\n }\n };\n\n static executeSql = (query: string, params?: string[]) => {\n this.openDB();\n\n try {\n const { rows } = sqlite.execute(DB_NAME, query, params);\n this.closeDB();\n\n return rows ? rows._array : [];\n } catch (e) {\n this.closeDB();\n throw new Error(`Query/queries failed: ${e}: `);\n }\n };\n\n static dropTables = () => {\n const queries: PreparedQueries[] = Object.keys(tables).map((table) => [\n `DROP TABLE IF EXISTS ${table}`,\n [],\n ]);\n\n this.executeSqlBatch(queries);\n };\n\n static deleteDatabase = () => {\n try {\n sqlite.delete(this.dbName, this.dbLocation);\n } catch (e) {\n throw new Error(`Error deleting DB: ${e}`);\n }\n\n return true;\n };\n\n static initializeDatabase = () => {\n // @ts-ignore\n if (sqlite === undefined) {\n throw new Error(\n 'Please install \"react-native-quick-sqlite\" package to enable offline support',\n );\n }\n\n const version = this.getUserPragmaVersion();\n\n if (version !== this.dbVersion) {\n this.dropTables();\n this.updateUserPragmaVersion(this.dbVersion);\n }\n const q = (Object.keys(tables) as Table[]).reduce<PreparedQueries[]>(\n (queriesSoFar, tableName) => {\n queriesSoFar.push(...createCreateTableQuery(tableName));\n return queriesSoFar;\n },\n [],\n );\n\n this.executeSqlBatch(q);\n };\n\n static updateUserPragmaVersion = (version: number) => {\n this.openDB();\n\n sqlite.execute(DB_NAME, `PRAGMA user_version = ${version}`, []);\n\n this.closeDB();\n };\n\n static getUserPragmaVersion = () => {\n this.openDB();\n\n try {\n const { rows } = sqlite.execute(DB_NAME, `PRAGMA user_version`, []);\n const result = rows ? rows._array : [];\n this.closeDB();\n return result[0].user_version as number;\n } catch (e) {\n this.closeDB();\n throw new Error(`Querying for user_version failed: ${e}`);\n }\n };\n\n static resetDB = () => {\n this.dropTables();\n this.initializeDatabase();\n };\n}\n"]}
1
+ {"version":3,"sources":["QuickSqliteClient.ts"],"names":["sqlite","require","QuickSQLite","e","QuickSqliteClient","dbVersion","dbName","DB_NAME","dbLocation","DB_LOCATION","getDbVersion","setDbVersion","version","isQuickSqliteV4","executeSql","openDB","QuickSqliteClient_v4","open","execute","console","error","closeDB","close","executeSqlBatch","queries","length","executeBatch","Error","query","params","rows","_array","dropTables","Object","keys","tables","map","table","deleteDatabase","initializeDatabase","undefined","warn","getUserPragmaVersion","updateUserPragmaVersion","q","reduce","queriesSoFar","tableName","push","result","user_version","resetDB"],"mappings":"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","sourcesContent":["/* eslint-disable no-underscore-dangle */\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}\n\nimport { DB_LOCATION, DB_NAME } from './constants';\nimport { QuickSqliteClient_v4 } from './QuickSqliteClient_v4';\nimport { tables } from './schema';\nimport { createCreateTableQuery } from './sqlite-utils/createCreateTableQuery';\nimport type { PreparedQueries, Table } from './types';\n\n/**\n * QuickSqliteClient takes care of any direct interaction with sqlite.\n * This way usage react-native-quick-sqlite package is scoped to a single class/file.\n *\n * TODO: Drop the support for v4 of react-native-quick-sqlite in the next major release.\n */\nexport class QuickSqliteClient {\n static dbVersion = 3;\n\n static dbName = DB_NAME;\n static dbLocation = DB_LOCATION;\n\n static getDbVersion = () => this.dbVersion;\n // Force a specific db version. This is mainly useful for testsuit.\n static setDbVersion = (version: number) => (this.dbVersion = version);\n\n // @ts-ignore\n static isQuickSqliteV4 = sqlite.executeSql ? true : false;\n\n // print if legacy version\n static openDB = () => {\n if (this.isQuickSqliteV4) {\n QuickSqliteClient_v4.openDB();\n return;\n }\n\n try {\n sqlite.open(this.dbName, this.dbLocation);\n sqlite.execute(this.dbName, `PRAGMA foreign_keys = ON`, []);\n } catch (e) {\n console.error(`Error opening database ${this.dbName}: ${e}`);\n }\n };\n\n static closeDB = () => {\n if (this.isQuickSqliteV4) {\n QuickSqliteClient_v4.closeDB();\n return;\n }\n\n try {\n sqlite.close(this.dbName);\n } catch (e) {\n console.error(`Error closing database ${this.dbName}: ${e}`);\n }\n };\n\n static executeSqlBatch = (queries: PreparedQueries[]) => {\n if (!queries || !queries.length) return;\n\n if (this.isQuickSqliteV4) {\n QuickSqliteClient_v4.executeSqlBatch(queries);\n return;\n }\n\n this.openDB();\n try {\n sqlite.executeBatch(DB_NAME, queries);\n\n this.closeDB();\n } catch (e) {\n this.closeDB();\n throw new Error(`Query/queries failed: ${e}`);\n }\n };\n\n static executeSql = (query: string, params?: string[]) => {\n if (this.isQuickSqliteV4) {\n return QuickSqliteClient_v4.executeSql(query, params);\n }\n\n try {\n this.openDB();\n const { rows } = sqlite.execute(DB_NAME, query, params);\n this.closeDB();\n\n return rows ? rows._array : [];\n } catch (e) {\n this.closeDB();\n throw new Error(`Query/queries failed: ${e}: `);\n }\n };\n\n static dropTables = () => {\n const queries: PreparedQueries[] = Object.keys(tables).map((table) => [\n `DROP TABLE IF EXISTS ${table}`,\n [],\n ]);\n\n this.executeSqlBatch(queries);\n };\n\n static deleteDatabase = () => {\n if (this.isQuickSqliteV4) {\n return QuickSqliteClient_v4.deleteDatabase();\n }\n\n try {\n sqlite.delete(this.dbName, this.dbLocation);\n } catch (e) {\n throw new Error(`Error deleting DB: ${e}`);\n }\n\n return true;\n };\n\n static initializeDatabase = () => {\n // @ts-ignore\n if (sqlite === undefined) {\n throw new Error(\n 'Please install \"react-native-quick-sqlite\" package to enable offline support',\n );\n }\n\n if (this.isQuickSqliteV4) {\n console.warn(\n 'You seem to be using an older version of \"react-native-quick-sqlite\" dependency,',\n 'and we are going to drop support for it in the next major release.',\n 'Please upgrade to the version v5 of \"react-native-quick-sqlite\" to avoid any issues.',\n );\n }\n\n const version = this.getUserPragmaVersion();\n\n if (version !== this.dbVersion) {\n this.dropTables();\n this.updateUserPragmaVersion(this.dbVersion);\n }\n const q = (Object.keys(tables) as Table[]).reduce<PreparedQueries[]>(\n (queriesSoFar, tableName) => {\n queriesSoFar.push(...createCreateTableQuery(tableName));\n return queriesSoFar;\n },\n [],\n );\n\n this.executeSqlBatch(q);\n };\n\n static updateUserPragmaVersion = (version: number) => {\n if (this.isQuickSqliteV4) {\n QuickSqliteClient_v4.updateUserPragmaVersion(version);\n return;\n }\n\n this.openDB();\n sqlite.execute(DB_NAME, `PRAGMA user_version = ${version}`, []);\n this.closeDB();\n };\n\n static getUserPragmaVersion = () => {\n if (this.isQuickSqliteV4) {\n return QuickSqliteClient_v4.getUserPragmaVersion();\n }\n\n this.openDB();\n try {\n const { rows } = sqlite.execute(DB_NAME, `PRAGMA user_version`, []);\n const result = rows ? rows._array : [];\n this.closeDB();\n return result[0].user_version as number;\n } catch (e) {\n this.closeDB();\n throw new Error(`Querying for user_version failed: ${e}`);\n }\n };\n\n static resetDB = () => {\n this.dropTables();\n this.initializeDatabase();\n };\n}\n"]}
@@ -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;;AAEO,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,WAAO,0CAAkBA,CAAlB,CAAP;AAAA,GAAX,CAAP;AACD,CARM","sourcesContent":["import { mapStorableToTask } from '../mappers/mapStorableToTask';\nimport { QuickSqliteClient } from '../QuickSqliteClient';\nimport { createSelectQuery } from '../sqlite-utils/createSelectQuery';\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) => mapStorableToTask(r));\n};\n"]}
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,CAAY,UAACC,CAAD,EAAIC,CAAJ;AAAA,aAAUV,UAAU,CAACW,OAAX,CAAmBF,CAAC,CAACP,GAArB,IAA4BF,UAAU,CAACW,OAAX,CAAmBD,CAAC,CAACR,GAArB,CAAtC;AAAA,KAAZ,CAAP;AACD,GAFD,MAEO;AACL,WAAOE,MAAP;AACD;AACF,CApBM","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((a, b) => channelIds.indexOf(a.cid) - channelIds.indexOf(b.cid));\n } else {\n return result;\n }\n};\n"]}
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,WAAOC,IAAI,CAACC,KAAL,CAAWF,CAAC,CAACG,KAAb,CAAP;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) => JSON.parse(r.value));\n};\n"]}
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,WAAOC,IAAI,CAACC,KAAL,CAAWF,CAAC,CAACG,KAAb,CAAP;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) => JSON.parse(r.value));\n};\n"]}
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,WAAOC,IAAI,CAACC,KAAL,CAAWF,CAAC,CAACG,KAAb,CAAP;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) => JSON.parse(r.value));\n};\n"]}
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,WAAOC,IAAI,CAACC,KAAL,CAAWF,CAAC,CAACG,KAAb,CAAP;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) => JSON.parse(r.value));\n};\n"]}
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"]}
@@ -162,6 +162,7 @@ var tables = {
162
162
  },
163
163
  userSyncStatus: {
164
164
  columns: {
165
+ appSettings: 'TEXT',
165
166
  lastSyncedAt: 'TEXT',
166
167
  userId: 'TEXT'
167
168
  },
@@ -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":";;;;AA2BO,IAAMA,MAAc,GAAG;AAC5BC,EAAAA,cAAc,EAAE;AACdC,IAAAA,OAAO,EAAE;AACPC,MAAAA,IAAI,EAAE,MADC;AAEPC,MAAAA,EAAE,EAAE;AAFG,KADK;AAKdC,IAAAA,UAAU,EAAE,CAAC,IAAD;AALE,GADY;AAQ5BC,EAAAA,QAAQ,EAAE;AACRJ,IAAAA,OAAO,EAAE;AACPK,MAAAA,sBAAsB,EAAE,SADjB;AAEPC,MAAAA,uBAAuB,EAAE,MAFlB;AAGPC,MAAAA,GAAG,EAAE,MAHE;AAIPC,MAAAA,MAAM,EAAE,MAJD;AAKPC,MAAAA,QAAQ,EAAE,SALH;AAMPC,MAAAA,SAAS,EAAE,MANJ;AAOPC,MAAAA,WAAW,EAAE,MAPN;AAQPC,MAAAA,SAAS,EAAE,MARJ;AASPC,MAAAA,QAAQ,EAAE,uBATH;AAUPC,MAAAA,SAAS,EAAE,MAVJ;AAWPC,MAAAA,MAAM,EAAE,SAXD;AAYPC,MAAAA,MAAM,EAAE,SAZD;AAaPd,MAAAA,EAAE,EAAE,MAbG;AAcPe,MAAAA,OAAO,EAAE,MAdF;AAePC,MAAAA,aAAa,EAAE,MAfR;AAgBPC,MAAAA,WAAW,EAAE,SAhBN;AAiBPC,MAAAA,KAAK,EAAE,uBAjBA;AAkBPC,MAAAA,eAAe,EAAE,MAlBV;AAmBPC,MAAAA,IAAI,EAAE,MAnBC;AAoBPC,MAAAA,WAAW,EAAE,MApBN;AAqBPC,MAAAA,WAAW,EAAE,MArBN;AAsBPC,MAAAA,aAAa,EAAE,MAtBR;AAuBPC,MAAAA,IAAI,EAAE,MAvBC;AAwBPC,MAAAA,SAAS,EAAE;AAxBJ,KADD;AA2BRxB,IAAAA,UAAU,EAAE,CAAC,KAAD;AA3BJ,GARkB;AAqC5ByB,EAAAA,OAAO,EAAE;AACP5B,IAAAA,OAAO,EAAE;AACP6B,MAAAA,MAAM,EAAE,uBADD;AAEPC,MAAAA,WAAW,EAAE,MAFN;AAGPvB,MAAAA,GAAG,EAAE,eAHE;AAIPG,MAAAA,SAAS,EAAE,MAJJ;AAKPqB,MAAAA,gBAAgB,EAAE,MALX;AAMPC,MAAAA,OAAO,EAAE,SANF;AAOPC,MAAAA,gBAAgB,EAAE,MAPX;AAQPC,MAAAA,WAAW,EAAE,SARN;AASPC,MAAAA,IAAI,EAAE,MATC;AAUPC,MAAAA,YAAY,EAAE,uBAVP;AAWPT,MAAAA,SAAS,EAAE,MAXJ;AAYPU,MAAAA,MAAM,EAAE;AAZD,KADF;AAePC,IAAAA,WAAW,EAAE,CACX;AACEC,MAAAA,MAAM,EAAE,KADV;AAEEC,MAAAA,cAAc,EAAE,SAFlB;AAGEC,MAAAA,cAAc,EAAE,UAHlB;AAIEC,MAAAA,oBAAoB,EAAE;AAJxB,KADW,CAfN;AAuBPC,IAAAA,OAAO,EAAE,CACP;AACE3C,MAAAA,OAAO,EAAE,CAAC,KAAD,EAAQ,QAAR,CADX;AAEE4C,MAAAA,IAAI,EAAE,eAFR;AAGEC,MAAAA,MAAM,EAAE;AAHV,KADO,CAvBF;AA8BP1C,IAAAA,UAAU,EAAE,CAAC,KAAD,EAAQ,QAAR;AA9BL,GArCmB;AAqE5B2C,EAAAA,QAAQ,EAAE;AACR9C,IAAAA,OAAO,EAAE;AACP+C,MAAAA,WAAW,EAAE,MADN;AAEPxC,MAAAA,GAAG,EAAE,eAFE;AAGPG,MAAAA,SAAS,EAAE,MAHJ;AAIPE,MAAAA,SAAS,EAAE,MAJJ;AAKPE,MAAAA,SAAS,EAAE,MALJ;AAMPZ,MAAAA,EAAE,EAAE,MANG;AAOP8C,MAAAA,cAAc,EAAE,MAPT;AAQPC,MAAAA,IAAI,EAAE,iBARC;AASPvB,MAAAA,IAAI,EAAE,MATC;AAUPC,MAAAA,SAAS,EAAE,MAVJ;AAWPU,MAAAA,MAAM,EAAE;AAXD,KADD;AAcRC,IAAAA,WAAW,EAAE,CACX;AACEC,MAAAA,MAAM,EAAE,KADV;AAEEC,MAAAA,cAAc,EAAE,SAFlB;AAGEC,MAAAA,cAAc,EAAE,UAHlB;AAIEC,MAAAA,oBAAoB,EAAE;AAJxB,KADW,CAdL;AAsBRC,IAAAA,OAAO,EAAE,CACP;AACE3C,MAAAA,OAAO,EAAE,CAAC,KAAD,EAAQ,QAAR,CADX;AAEE4C,MAAAA,IAAI,EAAE,gBAFR;AAGEC,MAAAA,MAAM,EAAE;AAHV,KADO,CAtBD;AA6BR1C,IAAAA,UAAU,EAAE,CAAC,IAAD;AA7BJ,GArEkB;AAoG5B+C,EAAAA,YAAY,EAAE;AACZlD,IAAAA,OAAO,EAAE;AACPmD,MAAAA,SAAS,EAAE,MADJ;AAEPC,MAAAA,WAAW,EAAE,MAFN;AAGP1C,MAAAA,SAAS,EAAE,MAHJ;AAIPR,MAAAA,EAAE,EAAE,mCAJG;AAKPmD,MAAAA,SAAS,EAAE,MALJ;AAMPC,MAAAA,OAAO,EAAE,MANF;AAOP5B,MAAAA,IAAI,EAAE;AAPC;AADG,GApGc;AA+G5B6B,EAAAA,SAAS,EAAE;AACTvD,IAAAA,OAAO,EAAE;AACPU,MAAAA,SAAS,EAAE,MADJ;AAEPI,MAAAA,SAAS,EAAE,MAFJ;AAGPuC,MAAAA,SAAS,EAAE,MAHJ;AAIPG,MAAAA,KAAK,EAAE,mBAJA;AAKP9B,MAAAA,IAAI,EAAE,MALC;AAMPC,MAAAA,SAAS,EAAE,MANJ;AAOPU,MAAAA,MAAM,EAAE;AAPD,KADA;AAUTC,IAAAA,WAAW,EAAE,CACX;AACEC,MAAAA,MAAM,EAAE,WADV;AAEEC,MAAAA,cAAc,EAAE,SAFlB;AAGEC,MAAAA,cAAc,EAAE,UAHlB;AAIEC,MAAAA,oBAAoB,EAAE;AAJxB,KADW,CAVJ;AAkBTC,IAAAA,OAAO,EAAE,CACP;AACE3C,MAAAA,OAAO,EAAE,CAAC,WAAD,EAAc,QAAd,CADX;AAEE4C,MAAAA,IAAI,EAAE,gBAFR;AAGEC,MAAAA,MAAM,EAAE;AAHV,KADO,CAlBA;AAyBT1C,IAAAA,UAAU,EAAE,CAAC,WAAD,EAAc,QAAd,EAAwB,MAAxB;AAzBH,GA/GiB;AA0I5BsD,EAAAA,KAAK,EAAE;AACLzD,IAAAA,OAAO,EAAE;AACPO,MAAAA,GAAG,EAAE,eADE;AAEPmD,MAAAA,QAAQ,EAAE,eAFH;AAGPC,MAAAA,cAAc,EAAE,mBAHT;AAIPtB,MAAAA,MAAM,EAAE;AAJD,KADJ;AAOLM,IAAAA,OAAO,EAAE,CACP;AACE3C,MAAAA,OAAO,EAAE,CAAC,KAAD,EAAQ,QAAR,CADX;AAEE4C,MAAAA,IAAI,EAAE,iBAFR;AAGEC,MAAAA,MAAM,EAAE;AAHV,KADO,CAPJ;AAcL1C,IAAAA,UAAU,EAAE,CAAC,QAAD,EAAW,KAAX;AAdP,GA1IqB;AA0J5ByD,EAAAA,KAAK,EAAE;AACL5D,IAAAA,OAAO,EAAE;AACP6B,MAAAA,MAAM,EAAE,uBADD;AAEPnB,MAAAA,SAAS,EAAE,MAFJ;AAGPI,MAAAA,SAAS,EAAE,MAHJ;AAIPZ,MAAAA,EAAE,EAAE,MAJG;AAKP2D,MAAAA,UAAU,EAAE,MALL;AAMPC,MAAAA,MAAM,EAAE,SAND;AAOP3B,MAAAA,IAAI,EAAE,MAPC;AAQPR,MAAAA,SAAS,EAAE;AARJ,KADJ;AAWLgB,IAAAA,OAAO,EAAE,CACP;AACE3C,MAAAA,OAAO,EAAE,CAAC,IAAD,CADX;AAEE4C,MAAAA,IAAI,EAAE,gBAFR;AAGEC,MAAAA,MAAM,EAAE;AAHV,KADO,CAXJ;AAkBL1C,IAAAA,UAAU,EAAE,CAAC,IAAD;AAlBP,GA1JqB;AA8K5B4D,EAAAA,cAAc,EAAE;AACd/D,IAAAA,OAAO,EAAE;AACPgE,MAAAA,WAAW,EAAE,MADN;AAEPC,MAAAA,YAAY,EAAE,MAFP;AAGP5B,MAAAA,MAAM,EAAE;AAHD,KADK;AAMdlC,IAAAA,UAAU,EAAE,CAAC,QAAD;AANE;AA9KY,CAAvB","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"]}