diff --git a/en/cozy-home/package.json b/en/cozy-home/package.json
index 42a6b3542..41af20332 100644
--- a/en/cozy-home/package.json
+++ b/en/cozy-home/package.json
@@ -37,6 +37,7 @@
"@sentry/react": "7.119.0",
"comlink": "4.4.1",
"cozy-client": "^51.6.0",
+ "cozy-dataproxy-lib": "^1.9.0",
"cozy-device-helper": "2.7.0",
"cozy-devtools": "^1.2.1",
"cozy-doctypes": "1.83.8",
@@ -49,7 +50,7 @@
"cozy-minilog": "^3.3.1",
"cozy-realtime": "^5.0.4",
"cozy-sharing": "^16.0.0",
- "cozy-stack-client": "^51.0.0",
+ "cozy-stack-client": "^51.6.0",
"cozy-tsconfig": "1.2.0",
"cozy-ui": "^113.3.0",
"cozy-viewer": "^2.6.1",
@@ -70,7 +71,6 @@
"react-remove-scroll": "^2.5.5",
"react-router-dom": "6.28.0",
"react-swipeable-views": "0.14.0",
- "react-type-animation": "3.2.0",
"redux": "4.2.0",
"redux-logger": "3.0.6",
"redux-persist": "^6.0.0",
@@ -90,7 +90,7 @@
"babel-jest": "27.5.1",
"babel-preset-cozy-app": "2.0.2",
"bundlemon": "1.3.2",
- "cozy-scripts": "8.2.0",
+ "cozy-scripts": "8.4.0",
"eslint": "8.9.0",
"eslint-config-cozy-app": "4.0.0",
"eslint-import-resolver-alias": "^1.1.2",
diff --git a/en/cozy-home/src/assistant/AssistantProvider.jsx b/en/cozy-home/src/assistant/AssistantProvider.jsx
deleted file mode 100644
index 0ab25871b..000000000
--- a/en/cozy-home/src/assistant/AssistantProvider.jsx
+++ /dev/null
@@ -1,134 +0,0 @@
-import React, { useMemo, useContext, useState, useCallback } from 'react'
-import { useParams } from 'react-router-dom'
-import set from 'lodash/set'
-
-import { useClient } from 'cozy-client'
-import useRealtime from 'cozy-realtime/dist/useRealtime'
-
-import { CHAT_EVENTS_DOCTYPE, CHAT_CONVERSATIONS_DOCTYPE } from './queries'
-import { pushMessagesIdInState, isMessageForThisConversation } from './helpers'
-
-export const AssistantContext = React.createContext()
-
-export const useAssistant = () => {
- const context = useContext(AssistantContext)
-
- if (!context) {
- throw new Error('useAssistant must be used within a AssistantProvider')
- }
- return context
-}
-
-const AssistantProvider = ({ children }) => {
- const { conversationId } = useParams()
- const client = useClient()
- const [assistantState, setAssistantState] = useState({
- message: {},
- status: 'pending',
- messagesId: []
- })
-
- useRealtime(
- client,
- {
- [CHAT_CONVERSATIONS_DOCTYPE]: {
- created: res => {
- pushMessagesIdInState(conversationId, res, setAssistantState)
- },
- updated: res => {
- pushMessagesIdInState(conversationId, res, setAssistantState)
- }
- }
- },
- []
- )
-
- useRealtime(
- client,
- {
- [CHAT_EVENTS_DOCTYPE]: {
- created: res => {
- setAssistantState(prevState => {
- // to exclude realtime messages if not relevant to the actual conversation
- if (!isMessageForThisConversation(res, prevState.messagesId)) {
- return prevState
- }
-
- if (res.object === 'done') {
- if (prevState.status !== 'idle') {
- return {
- ...prevState,
- status: 'idle'
- }
- }
- }
-
- if (res.object === 'delta') {
- const message = set(prevState.message, res.position, res.content)
- return {
- ...prevState,
- message,
- status: 'writing'
- }
- }
-
- return prevState
- })
- }
- }
- },
- []
- )
-
- const clearAssistant = useCallback(
- () =>
- setAssistantState({
- message: {},
- status: 'pending',
- messagesId: []
- }),
- []
- )
-
- const onAssistantExecute = useCallback(
- async ({ value, conversationId }, callback) => {
- if (!value) return
-
- callback?.()
-
- clearAssistant()
-
- await client.stackClient.fetchJSON(
- 'POST',
- `/ai/chat/conversations/${conversationId}`,
- {
- q: value
- }
- )
-
- setAssistantState(v => ({
- ...v,
- status: 'pending'
- }))
- },
- [client, clearAssistant]
- )
-
- const value = useMemo(
- () => ({
- assistantState,
- setAssistantState,
- clearAssistant,
- onAssistantExecute
- }),
- [assistantState, clearAssistant, onAssistantExecute]
- )
-
- return (
-
- {children}
-
- )
-}
-
-export default React.memo(AssistantProvider)
diff --git a/en/cozy-home/src/assistant/AssistantWrapperDesktop.jsx b/en/cozy-home/src/assistant/AssistantWrapperDesktop.jsx
deleted file mode 100644
index 7794bc7f1..000000000
--- a/en/cozy-home/src/assistant/AssistantWrapperDesktop.jsx
+++ /dev/null
@@ -1,23 +0,0 @@
-import React from 'react'
-
-import CozyTheme from 'cozy-ui/transpiled/react/providers/CozyTheme'
-
-import SearchBar from './Search/SearchBar'
-import SearchProvider from './Search/SearchProvider'
-import AssistantProvider from './AssistantProvider'
-
-const AssistantWrapperDesktop = () => {
- return (
-
-
-
- )
-}
-
-export default AssistantWrapperDesktop
diff --git a/en/cozy-home/src/assistant/AssistantWrapperMobile.jsx b/en/cozy-home/src/assistant/AssistantWrapperMobile.jsx
deleted file mode 100644
index ad9407e21..000000000
--- a/en/cozy-home/src/assistant/AssistantWrapperMobile.jsx
+++ /dev/null
@@ -1,54 +0,0 @@
-import React from 'react'
-import { useNavigate } from 'react-router-dom'
-import flag from 'cozy-flags'
-import cx from 'classnames'
-
-import { getFlagshipMetadata } from 'cozy-device-helper'
-import CozyTheme, {
- useCozyTheme
-} from 'cozy-ui/transpiled/react/providers/CozyTheme'
-import SearchBar from 'cozy-ui/transpiled/react/SearchBar'
-import Icon from 'cozy-ui/transpiled/react/Icon'
-import { useI18n } from 'cozy-ui/transpiled/react/providers/I18n'
-
-import AssistantIcon from 'assets/images/icon-assistant.png'
-import { FLAG_FAB_BUTTON_ENABLED } from 'components/AddButton/helpers'
-import { useWallpaperContext } from 'hooks/useWallpaperContext'
-
-import styles from './styles.styl'
-
-export const AssistantWrapperMobile = () => {
- const { type } = useCozyTheme()
- const {
- data: { isCustomWallpaper }
- } = useWallpaperContext()
- const { t } = useI18n()
- const navigate = useNavigate()
-
- return (
-
-
-
- }
- type="button"
- label={t('assistant.search.placeholder')}
- onClick={() => navigate('connected/search')}
- />
-
-
- )
-}
-
-export default AssistantWrapperMobile
diff --git a/en/cozy-home/src/assistant/Conversations/ChatAssistantItem.jsx b/en/cozy-home/src/assistant/Conversations/ChatAssistantItem.jsx
deleted file mode 100644
index 7dfc4e8c9..000000000
--- a/en/cozy-home/src/assistant/Conversations/ChatAssistantItem.jsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import React, { useMemo } from 'react'
-
-import { useI18n } from 'cozy-ui/transpiled/react/providers/I18n'
-import Icon from 'cozy-ui/transpiled/react/Icon'
-
-import AssistantIcon from 'assets/images/icon-assistant.png'
-
-import Sources from './Sources/Sources'
-import ChatItem from './ChatItem'
-
-const ChatAssistantItem = ({ className, id, label, sources, ...props }) => {
- const { t } = useI18n()
- // need memo to avoid rendering it everytime
- const icon = useMemo(() => , [])
-
- return (
- <>
-
- {sources?.length > 0 && }
- >
- )
-}
-
-export default ChatAssistantItem
diff --git a/en/cozy-home/src/assistant/Conversations/ChatConversation.jsx b/en/cozy-home/src/assistant/Conversations/ChatConversation.jsx
deleted file mode 100644
index 35c051777..000000000
--- a/en/cozy-home/src/assistant/Conversations/ChatConversation.jsx
+++ /dev/null
@@ -1,97 +0,0 @@
-import React, { useRef, useEffect } from 'react'
-
-import { useQuery, isQueryLoading } from 'cozy-client'
-
-import { buildChatConversationQueryById } from '../queries'
-import { useAssistant } from '../AssistantProvider'
-import { getInstantMessage } from '../helpers'
-import ChatUserItem from './ChatUserItem'
-import ChatAssistantItem from './ChatAssistantItem'
-import ChatRealtimeAnswer from './ChatRealtimeAnswer'
-
-const ChatConversation = ({ conversation, myself }) => {
- const { assistantState } = useAssistant()
- const listRef = useRef()
- const instantMessageKeysCount = Object.keys(assistantState.message).length
-
- // test on role === user to be sure the last response is inside io.cozy.ai.chat.conversations
- const showRealtimeMessage =
- assistantState.status !== 'idle' ||
- conversation?.messages?.[conversation?.messages?.length - 1]?.role ===
- 'user'
-
- useEffect(() => {
- // force scroll down if new message of change in AI instant response
- listRef.current?.lastElementChild?.scrollIntoView(false)
- }, [
- conversation?.messages?.length,
- assistantState.status,
- instantMessageKeysCount
- ])
-
- return (
-
- {conversation?.messages.map((message, idx) => {
- if (message.role === 'user') {
- return (
-
- )
- }
-
- if (idx !== conversation?.messages.length - 1) {
- return (
-
- )
- }
-
- if (showRealtimeMessage) {
- return null
- }
-
- return (
-
- )
- })}
-
- {showRealtimeMessage && (
-
- )}
-
- )
-}
-
-const ChatConversationWithQuery = ({ id, myself }) => {
- const chatConversationQuery = buildChatConversationQueryById(id)
- const { data: chatConversation, ...queryResult } = useQuery(
- chatConversationQuery.definition,
- chatConversationQuery.options
- )
-
- const isLoading = isQueryLoading(queryResult)
-
- if (isLoading) return null
-
- return
-}
-
-export default ChatConversationWithQuery
diff --git a/en/cozy-home/src/assistant/Conversations/ChatItem.jsx b/en/cozy-home/src/assistant/Conversations/ChatItem.jsx
deleted file mode 100644
index a768d7d37..000000000
--- a/en/cozy-home/src/assistant/Conversations/ChatItem.jsx
+++ /dev/null
@@ -1,29 +0,0 @@
-import React from 'react'
-
-import Typography from 'cozy-ui/transpiled/react/Typography'
-import Box from 'cozy-ui/transpiled/react/Box'
-
-import ChatItemLabel from './ChatItemLabel'
-
-const ChatItem = ({ className, icon, name, label }) => {
- return (
- <>
-
- {icon}
-
- {name}
-
-
-
-
-
- >
- )
-}
-
-export default ChatItem
diff --git a/en/cozy-home/src/assistant/Conversations/ChatItemLabel.jsx b/en/cozy-home/src/assistant/Conversations/ChatItemLabel.jsx
deleted file mode 100644
index 29335d7db..000000000
--- a/en/cozy-home/src/assistant/Conversations/ChatItemLabel.jsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import React from 'react'
-
-import Markdown from 'cozy-ui/transpiled/react/Markdown'
-
-const ChatItemLabel = ({ label }) => {
- if (typeof label === 'string') {
- return
- }
-
- return label
-}
-
-// need memo to avoid rendering all label of all items
-export default React.memo(ChatItemLabel)
diff --git a/en/cozy-home/src/assistant/Conversations/ChatRealtimeAnswer.jsx b/en/cozy-home/src/assistant/Conversations/ChatRealtimeAnswer.jsx
deleted file mode 100644
index 515c3a263..000000000
--- a/en/cozy-home/src/assistant/Conversations/ChatRealtimeAnswer.jsx
+++ /dev/null
@@ -1,25 +0,0 @@
-import React from 'react'
-
-import Skeleton from 'cozy-ui/transpiled/react/Skeleton'
-
-import ChatAssistantItem from './ChatAssistantItem'
-
-const ChatRealtimeAnswer = ({ isLoading, label }) => {
- return (
-
-
-
-
- ) : (
- label
- )
- }
- />
- )
-}
-
-export default ChatRealtimeAnswer
diff --git a/en/cozy-home/src/assistant/Conversations/ChatUserItem.jsx b/en/cozy-home/src/assistant/Conversations/ChatUserItem.jsx
deleted file mode 100644
index 86caf86e6..000000000
--- a/en/cozy-home/src/assistant/Conversations/ChatUserItem.jsx
+++ /dev/null
@@ -1,20 +0,0 @@
-import React from 'react'
-
-import { getDisplayName, getInitials } from 'cozy-client/dist/models/contact'
-import Avatar from 'cozy-ui/transpiled/react/Avatar'
-
-import ChatItem from './ChatItem'
-
-const ChatUserItem = ({ className, label, myself, ...props }) => {
- return (
- }
- name={getDisplayName(myself)}
- label={label}
- />
- )
-}
-
-export default ChatUserItem
diff --git a/en/cozy-home/src/assistant/Conversations/Conversation.jsx b/en/cozy-home/src/assistant/Conversations/Conversation.jsx
deleted file mode 100644
index a1f64dc33..000000000
--- a/en/cozy-home/src/assistant/Conversations/Conversation.jsx
+++ /dev/null
@@ -1,26 +0,0 @@
-import React from 'react'
-
-import { useQuery, isQueryLoading } from 'cozy-client'
-
-import { buildMyselfQuery } from '../queries'
-import ChatConversation from './ChatConversation'
-
-const Conversation = ({ id }) => {
- const myselfQuery = buildMyselfQuery()
- const { data: myselves, ...queryMyselfResult } = useQuery(
- myselfQuery.definition,
- myselfQuery.options
- )
-
- const isLoading = isQueryLoading(queryMyselfResult)
-
- if (isLoading) return null
-
- return (
-
-
-
- )
-}
-
-export default Conversation
diff --git a/en/cozy-home/src/assistant/Conversations/ConversationBar.jsx b/en/cozy-home/src/assistant/Conversations/ConversationBar.jsx
deleted file mode 100644
index 8e6de4721..000000000
--- a/en/cozy-home/src/assistant/Conversations/ConversationBar.jsx
+++ /dev/null
@@ -1,115 +0,0 @@
-import React, { useState, useRef } from 'react'
-import { useParams } from 'react-router-dom'
-
-import Icon from 'cozy-ui/transpiled/react/Icon'
-import SearchBar from 'cozy-ui/transpiled/react/SearchBar'
-import PaperplaneIcon from 'cozy-ui/transpiled/react/Icons/Paperplane'
-import StopIcon from 'cozy-ui/transpiled/react/Icons/Stop'
-import IconButton from 'cozy-ui/transpiled/react/IconButton'
-import Button from 'cozy-ui/transpiled/react/Buttons'
-import useEventListener from 'cozy-ui/transpiled/react/hooks/useEventListener'
-import { useBreakpoints } from 'cozy-ui/transpiled/react/providers/Breakpoints'
-import { useI18n } from 'cozy-ui/transpiled/react/providers/I18n'
-
-import { useAssistant } from '../AssistantProvider'
-
-import styles from './styles.styl'
-
-const ConversationBar = ({ assistantStatus }) => {
- const { t } = useI18n()
- const { isMobile } = useBreakpoints()
- const { onAssistantExecute } = useAssistant()
- const [inputValue, setInputValue] = useState('')
- const inputRef = useRef()
- const { conversationId } = useParams()
-
- // to adjust input height for multiline when typing in it
- useEventListener(inputRef.current, 'input', () => {
- inputRef.current.style.height = 'auto' // to resize input when emptying it
- inputRef.current.style.height = `${inputRef.current.scrollHeight}px`
- })
-
- const handleClear = () => {
- setInputValue('')
- }
-
- const handleChange = ev => {
- setInputValue(ev.target.value)
- }
-
- const handleStop = () => {
- // not supported right now
- return
- }
-
- const handleClick = () =>
- onAssistantExecute({ value: inputValue, conversationId }, () => {
- handleClear()
- inputRef.current.style.height = 'auto'
- })
-
- return (
-
-
- }
- />
-
- ) : (
-
- }
- disabled={!inputValue}
- />
-
- ),
- onKeyDown: ev => {
- if (!isMobile) {
- if (ev.shiftKey && ev.key === 'Enter') {
- return ev
- }
-
- if (ev.key === 'Enter') {
- ev.preventDefault() // prevent form submit
- return handleClick()
- }
- }
- }
- }
- }}
- onChange={handleChange}
- />
-
- )
-}
-
-export default ConversationBar
diff --git a/en/cozy-home/src/assistant/Conversations/Sources/Sources.jsx b/en/cozy-home/src/assistant/Conversations/Sources/Sources.jsx
deleted file mode 100644
index dbb92d924..000000000
--- a/en/cozy-home/src/assistant/Conversations/Sources/Sources.jsx
+++ /dev/null
@@ -1,91 +0,0 @@
-import React, { useState, useRef, useEffect } from 'react'
-
-import { useQuery, isQueryLoading } from 'cozy-client'
-
-import { useI18n } from 'cozy-ui/transpiled/react/providers/I18n'
-import Icon from 'cozy-ui/transpiled/react/Icon'
-import Chip from 'cozy-ui/transpiled/react/Chips'
-import MultiFilesIcon from 'cozy-ui/transpiled/react/Icons/MultiFiles'
-import RightIcon from 'cozy-ui/transpiled/react/Icons/Right'
-import Box from 'cozy-ui/transpiled/react/Box'
-import Grow from 'cozy-ui/transpiled/react/Grow'
-
-import { buildFilesByIds } from 'assistant/queries'
-import SourcesItem from './SourcesItem'
-
-const Sources = ({ messageId, files }) => {
- const [showSources, setShowSources] = useState(false)
- const { t } = useI18n()
- const ref = useRef()
-
- const handleShowSources = () => {
- setShowSources(v => !v)
- }
-
- // we want to scroll down to the sources button when it is displayed
- useEffect(() => {
- ref.current?.scrollIntoView(false)
- }, [])
-
- useEffect(() => {
- if (showSources) {
- const sourcesBottom = ref.current.getBoundingClientRect().bottom
- const innerContainer =
- document.getElementsByClassName('cozyDialogContent')[0]
- const innerContainerBottom = innerContainer.getBoundingClientRect().bottom
- if (sourcesBottom > innerContainerBottom) {
- ref.current.scrollIntoView(false)
- }
- }
- }, [showSources])
-
- return (
-
- }
- label={t('assistant.sources', files.length)}
- deleteIcon={
-
- }
- clickable
- onClick={handleShowSources}
- onDelete={handleShowSources}
- />
-
-
- {files.map(file => (
-
- ))}
-
-
-
- )
-}
-
-const SourcesWithFilesQuery = ({ messageId, sources }) => {
- const fileIds = sources.map(source => source.id)
-
- const filesByIds = buildFilesByIds(fileIds)
- const { data: files, ...queryResult } = useQuery(
- filesByIds.definition,
- filesByIds.options
- )
-
- const isLoading = isQueryLoading(queryResult)
-
- if (isLoading || files.length === 0) return null
-
- return
-}
-
-export default SourcesWithFilesQuery
diff --git a/en/cozy-home/src/assistant/Conversations/Sources/SourcesItem.jsx b/en/cozy-home/src/assistant/Conversations/Sources/SourcesItem.jsx
deleted file mode 100644
index cc0e328a9..000000000
--- a/en/cozy-home/src/assistant/Conversations/Sources/SourcesItem.jsx
+++ /dev/null
@@ -1,48 +0,0 @@
-import React from 'react'
-
-import { useClient, generateWebLink } from 'cozy-client'
-import { isNote } from 'cozy-client/dist/models/file'
-import Icon from 'cozy-ui/transpiled/react/Icon'
-import ListItem from 'cozy-ui/transpiled/react/ListItem'
-import ListItemIcon from 'cozy-ui/transpiled/react/ListItemIcon'
-import ListItemText from 'cozy-ui/transpiled/react/ListItemText'
-
-import { getDriveMimeTypeIcon } from 'assistant/Search/getIconForSearchResult'
-
-import styles from './styles.styl'
-
-const SourcesItem = ({ file }) => {
- const client = useClient()
-
- const docUrl = generateWebLink({
- slug: isNote(file) ? 'notes' : 'drive',
- cozyUrl: client?.getStackClient().uri,
- subDomainType: client?.getInstanceOptions().subdomain,
- hash: isNote(file)
- ? `/n/${file._id}`
- : `/folder/${file.dir_id}/file/${file._id}`
- })
-
- return (
-
-
-
-
-
-
- )
-}
-
-export default SourcesItem
diff --git a/en/cozy-home/src/assistant/Conversations/Sources/styles.styl b/en/cozy-home/src/assistant/Conversations/Sources/styles.styl
deleted file mode 100644
index e6210102c..000000000
--- a/en/cozy-home/src/assistant/Conversations/Sources/styles.styl
+++ /dev/null
@@ -1,5 +0,0 @@
-.sourcesItem
- // !important here to override Mui styles
- margin-bottom 0.25rem !important
- border 1px solid var(--borderMainColor) !important
- border-radius 8px !important
\ No newline at end of file
diff --git a/en/cozy-home/src/assistant/Conversations/styles.styl b/en/cozy-home/src/assistant/Conversations/styles.styl
deleted file mode 100644
index e7fe239cc..000000000
--- a/en/cozy-home/src/assistant/Conversations/styles.styl
+++ /dev/null
@@ -1,15 +0,0 @@
-@require 'settings/breakpoints.styl'
-
-.conversationBar
- max-height 95px
- min-height 48px
- z-index calc(var(--zIndex-modal) + 15)
-
- +gt-mobile()
- max-height 178px
-
-.conversationBar-input
- max-height 80px
-
- +gt-mobile()
- max-height 155px
diff --git a/en/cozy-home/src/assistant/ResultMenu/ResultMenu.jsx b/en/cozy-home/src/assistant/ResultMenu/ResultMenu.jsx
deleted file mode 100644
index 459519064..000000000
--- a/en/cozy-home/src/assistant/ResultMenu/ResultMenu.jsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import React from 'react'
-
-import Paper from 'cozy-ui/transpiled/react/Paper'
-import Popper from 'cozy-ui/transpiled/react/Popper'
-
-import ResultMenuContent from './ResultMenuContent'
-
-import styles from './styles.styl'
-
-const ResultMenu = ({ anchorRef, listRef, onClick }) => {
- return (
-
-
-
-
-
-
-
- )
-}
-
-export default ResultMenu
diff --git a/en/cozy-home/src/assistant/ResultMenu/ResultMenuContent.jsx b/en/cozy-home/src/assistant/ResultMenu/ResultMenuContent.jsx
deleted file mode 100644
index e2b1856dc..000000000
--- a/en/cozy-home/src/assistant/ResultMenu/ResultMenuContent.jsx
+++ /dev/null
@@ -1,78 +0,0 @@
-import React, { forwardRef } from 'react'
-
-import flag from 'cozy-flags'
-import List from 'cozy-ui/transpiled/react/List'
-import Circle from 'cozy-ui/transpiled/react/Circle'
-import PaperplaneIcon from 'cozy-ui/transpiled/react/Icons/Paperplane'
-import Icon from 'cozy-ui/transpiled/react/Icon'
-import ListItemSkeleton from 'cozy-ui/transpiled/react/Skeletons/ListItemSkeleton'
-import { useI18n } from 'cozy-ui/transpiled/react/providers/I18n'
-import { useBreakpoints } from 'cozy-ui/transpiled/react/providers/Breakpoints'
-
-import { useDataProxy } from 'dataproxy/DataProxyProvider'
-
-import { useSearch } from '../Search/SearchProvider'
-import ResultMenuItem from './ResultMenuItem'
-
-const SearchResult = () => {
- const { isLoading, results, selectedIndex, searchValue } = useSearch()
-
- if (isLoading && !results?.length)
- return (
- <>
-
-
-
- >
- )
-
- return results.map((result, idx) => (
-
- ))
-}
-
-const ResultMenuContent = forwardRef(({ onClick }, ref) => {
- const { t } = useI18n()
- const { isMobile } = useBreakpoints()
- const { searchValue, selectedIndex } = useSearch()
- const { dataProxyServicesAvailable } = useDataProxy()
-
- return (
-
- {flag('cozy.assistant.enabled') && (
-
-
-
- }
- primaryText={searchValue}
- query={searchValue}
- secondaryText={t('assistant.search.result')}
- selected={selectedIndex === 0}
- onClick={onClick}
- />
- )}
- {dataProxyServicesAvailable && }
-
- )
-})
-
-ResultMenuContent.displayName = 'ResultMenuContent'
-
-export default ResultMenuContent
diff --git a/en/cozy-home/src/assistant/ResultMenu/ResultMenuItem.jsx b/en/cozy-home/src/assistant/ResultMenu/ResultMenuItem.jsx
deleted file mode 100644
index ec80cec23..000000000
--- a/en/cozy-home/src/assistant/ResultMenu/ResultMenuItem.jsx
+++ /dev/null
@@ -1,56 +0,0 @@
-import React from 'react'
-
-import AppIcon from 'cozy-ui/transpiled/react/AppIcon'
-import Icon from 'cozy-ui/transpiled/react/Icon'
-import ListItem from 'cozy-ui/transpiled/react/ListItem'
-import ListItemIcon from 'cozy-ui/transpiled/react/ListItemIcon'
-import ListItemText from 'cozy-ui/transpiled/react/ListItemText'
-import SuggestionItemTextHighlighted from './SuggestionItemTextHighlighted'
-import SuggestionItemTextSecondary from './SuggestionItemTextSecondary'
-
-const ResultMenuItem = ({
- icon,
- primaryText,
- secondaryText,
- secondaryUrl,
- slug,
- selected,
- onClick,
- query,
- highlightQuery = false
-}) => {
- const iconComponent =
- icon.type === 'component' ? (
-
- ) : icon.type === 'app' ? (
-
- ) : (
- icon
- )
-
- const primary = highlightQuery ? (
-
- ) : (
- primaryText
- )
-
- const secondary = highlightQuery ? (
-
- ) : (
- secondaryText
- )
-
- return (
-
- {iconComponent}
-
-
- )
-}
-
-export default ResultMenuItem
diff --git a/en/cozy-home/src/assistant/ResultMenu/SuggestionItemTextHighlighted.jsx b/en/cozy-home/src/assistant/ResultMenu/SuggestionItemTextHighlighted.jsx
deleted file mode 100644
index eca4b0075..000000000
--- a/en/cozy-home/src/assistant/ResultMenu/SuggestionItemTextHighlighted.jsx
+++ /dev/null
@@ -1,119 +0,0 @@
-/**
- * Code copied and adapted from cozy-drive
- *
- * See source: https://github.com/cozy/cozy-drive/blob/fbe2df67199683b23a40f476ccdacb00ee027459/src/modules/search/components/SuggestionItemTextHighlighted.jsx
- */
-
-import React from 'react'
-
-const normalizeString = str =>
- str
- .toString()
- .toLowerCase()
- .replace(/\//g, ' ')
- .normalize('NFD')
- .replace(/[\u0300-\u036f]/g, '')
- .split(' ')
-
-/**
- * Add on part that equlas query into each result
- *
- * @param {Array} searchResult - list of results
- * @param {string} query - search input
- * @returns list of results with the query highlighted
- */
-const highlightQueryTerms = (searchResult, query) => {
- const normalizedQueryTerms = normalizeString(query)
- const normalizedResultTerms = normalizeString(searchResult)
-
- const matchedIntervals = []
- const spacerLength = 1
- let currentIndex = 0
-
- normalizedResultTerms.forEach(resultTerm => {
- normalizedQueryTerms.forEach(queryTerm => {
- const index = resultTerm.indexOf(queryTerm)
- if (index >= 0) {
- matchedIntervals.push({
- from: currentIndex + index,
- to: currentIndex + index + queryTerm.length
- })
- }
- })
-
- currentIndex += resultTerm.length + spacerLength
- })
-
- // matchedIntervals can overlap, so we merge them.
- // - sort the intervals by starting index
- // - add the first interval to the stack
- // - for every interval,
- // - - add it to the stack if it doesn't overlap with the stack top
- // - - or extend the stack top if the start overlaps and the new interval's top is bigger
- const mergedIntervals = matchedIntervals
- .sort((intervalA, intervalB) => intervalA.from > intervalB.from)
- .reduce((computedIntervals, newInterval) => {
- if (
- computedIntervals.length === 0 ||
- computedIntervals[computedIntervals.length - 1].to < newInterval.from
- ) {
- computedIntervals.push(newInterval)
- } else if (
- computedIntervals[computedIntervals.length - 1].to < newInterval.to
- ) {
- computedIntervals[computedIntervals.length - 1].to = newInterval.to
- }
-
- return computedIntervals
- }, [])
-
- // create an array containing the entire search result, with special characters, and the intervals surrounded y `` tags
- const slicedOriginalResult =
- mergedIntervals.length > 0
- ? [{searchResult.slice(0, mergedIntervals[0].from)}]
- : searchResult
-
- for (let i = 0, l = mergedIntervals.length; i < l; ++i) {
- slicedOriginalResult.push(
-
- {searchResult.slice(mergedIntervals[i].from, mergedIntervals[i].to)}
-
- )
- if (i + 1 < l)
- slicedOriginalResult.push(
-
- {searchResult.slice(
- mergedIntervals[i].to,
- mergedIntervals[i + 1].from
- )}
-
- )
- }
-
- if (mergedIntervals.length > 0)
- slicedOriginalResult.push(
-
- {searchResult.slice(
- mergedIntervals[mergedIntervals.length - 1].to,
- searchResult.length
- )}
-
- )
-
- return slicedOriginalResult
-}
-
-const SuggestionItemTextHighlighted = ({ text, query }) => {
- if (!text) return null
-
- const textHighlighted = highlightQueryTerms(text, query)
- if (Array.isArray(textHighlighted)) {
- return textHighlighted.map((item, idx) => ({
- ...item,
- key: idx
- }))
- }
- return textHighlighted
-}
-
-export default SuggestionItemTextHighlighted
diff --git a/en/cozy-home/src/assistant/ResultMenu/SuggestionItemTextSecondary.jsx b/en/cozy-home/src/assistant/ResultMenu/SuggestionItemTextSecondary.jsx
deleted file mode 100644
index a2e5522aa..000000000
--- a/en/cozy-home/src/assistant/ResultMenu/SuggestionItemTextSecondary.jsx
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * Code copied and adapted from cozy-drive
- *
- * See source: https://github.com/cozy/cozy-drive/blob/fbe2df67199683b23a40f476ccdacb00ee027459/src/modules/search/components/SuggestionItemTextSecondary.jsx
- */
-import React from 'react'
-
-import AppLinker from 'cozy-ui/transpiled/react/AppLinker'
-import SuggestionItemTextHighlighted from './SuggestionItemTextHighlighted'
-import useBreakpoints from 'cozy-ui/transpiled/react/providers/Breakpoints'
-import Link from 'cozy-ui/transpiled/react/Link'
-
-const SuggestionItemTextSecondary = ({ text, query, url, slug }) => {
- const { isMobile } = useBreakpoints()
-
- if (isMobile || !url) {
- return
- }
-
- const app = { slug }
- return (
-
- {({ href, onClick }) => (
- {
- e.stopPropagation()
- if (typeof onClick == 'function') {
- onClick(e)
- }
- }}
- >
-
-
- )}
-
- )
-}
-
-export default SuggestionItemTextSecondary
diff --git a/en/cozy-home/src/assistant/ResultMenu/styles.styl b/en/cozy-home/src/assistant/ResultMenu/styles.styl
deleted file mode 100644
index 4c79c311e..000000000
--- a/en/cozy-home/src/assistant/ResultMenu/styles.styl
+++ /dev/null
@@ -1,10 +0,0 @@
-.resultMenu
- overflow hidden
- margin 0 auto
- max-width 50rem
- max-height 16.5rem
- border-radius 0 0 28px 28px
-
- &-inner
- max-height 16.5rem
- overflow auto
diff --git a/en/cozy-home/src/assistant/Search/EncryptedFolderIcon.jsx b/en/cozy-home/src/assistant/Search/EncryptedFolderIcon.jsx
deleted file mode 100644
index ac87226b8..000000000
--- a/en/cozy-home/src/assistant/Search/EncryptedFolderIcon.jsx
+++ /dev/null
@@ -1,28 +0,0 @@
-import React from 'react'
-
-const EncryptedFolderIcon = props => {
- return (
-
- )
-}
-
-export default EncryptedFolderIcon
diff --git a/en/cozy-home/src/assistant/Search/SearchBar.jsx b/en/cozy-home/src/assistant/Search/SearchBar.jsx
deleted file mode 100644
index 017c8817e..000000000
--- a/en/cozy-home/src/assistant/Search/SearchBar.jsx
+++ /dev/null
@@ -1,45 +0,0 @@
-import React, { useState } from 'react'
-
-import { useBreakpoints } from 'cozy-ui/transpiled/react/providers/Breakpoints'
-
-import { useSearch } from './SearchProvider'
-
-import SearchBarMobile from './SearchBarMobile'
-import SearchBarDesktop from './SearchBarDesktop'
-
-const SearchBar = () => {
- const { isMobile } = useBreakpoints()
- const [inputValue, setInputValue] = useState('')
- const { clearSearch, setSelectedIndex, delayedSetSearchValue } = useSearch()
-
- const handleClear = () => {
- setInputValue('')
- clearSearch()
- }
-
- const handleChange = ev => {
- setSelectedIndex(0)
- delayedSetSearchValue(ev.target.value)
- setInputValue(ev.target.value)
- }
-
- if (isMobile) {
- return (
-
- )
- }
-
- return (
-
- )
-}
-
-export default SearchBar
diff --git a/en/cozy-home/src/assistant/Search/SearchBarDesktop.jsx b/en/cozy-home/src/assistant/Search/SearchBarDesktop.jsx
deleted file mode 100644
index e22846ed6..000000000
--- a/en/cozy-home/src/assistant/Search/SearchBarDesktop.jsx
+++ /dev/null
@@ -1,108 +0,0 @@
-import React, { useRef } from 'react'
-import { useNavigate } from 'react-router-dom'
-
-import flag from 'cozy-flags'
-import ClickAwayListener from 'cozy-ui/transpiled/react/ClickAwayListener'
-import SearchBar from 'cozy-ui/transpiled/react/SearchBar'
-import Icon from 'cozy-ui/transpiled/react/Icon'
-import { useI18n } from 'cozy-ui/transpiled/react/providers/I18n'
-
-import AssistantIcon from 'assets/images/icon-assistant.png'
-
-import ResultMenu from '../ResultMenu/ResultMenu'
-import { useAssistant } from '../AssistantProvider'
-import { makeConversationId } from '../helpers'
-import { useSearch } from './SearchProvider'
-
-import styles from './styles.styl'
-
-const SearchBarDesktop = ({ value, onClear, onChange }) => {
- const { t } = useI18n()
- const { searchValue, results, selectedIndex, setSelectedIndex } = useSearch()
- const { onAssistantExecute } = useAssistant()
- const navigate = useNavigate()
- const searchRef = useRef()
- const listRef = useRef()
-
- const handleClick = () => {
- if (!flag('cozy.assistant.enabled')) return
-
- const conversationId = makeConversationId()
- onAssistantExecute({ value, conversationId })
- navigate(`assistant/${conversationId}`)
- // setTimeout usefull to prevent the field from emptying before the route is changed
- // works because the modal appears on top of the view that carries the input and not instead of it.
- setTimeout(() => {
- onClear()
- }, 100)
- }
-
- const handleKeyDown = ev => {
- const listElementCount = listRef.current?.childElementCount
-
- if (ev.key === 'ArrowDown') {
- ev.preventDefault()
-
- if (selectedIndex === listElementCount - 1) {
- setSelectedIndex(0)
- } else {
- setSelectedIndex(v => v + 1)
- }
- }
-
- if (ev.key === 'ArrowUp') {
- ev.preventDefault()
-
- if (selectedIndex === 0) {
- setSelectedIndex(listElementCount - 1)
- } else {
- setSelectedIndex(v => v - 1)
- }
- }
-
- if (ev.key === 'Escape') {
- ev.preventDefault()
- onClear()
- }
-
- if (ev.key === 'Enter') {
- ev.preventDefault()
- if (selectedIndex) {
- const onClickFn = results?.[selectedIndex - 1]?.onClick || handleClick
- onClickFn()
- } else if (value !== '') {
- handleClick()
- }
- }
- }
-
- return (
-
-
- }
- placeholder={t('assistant.search.placeholder')}
- value={value}
- componentsProps={{
- inputBase: { onKeyDown: handleKeyDown }
- }}
- disabledClear
- disabledFocus={value !== ''}
- onChange={onChange}
- />
- {searchValue && (
-
- )}
-
-
- )
-}
-
-export default SearchBarDesktop
diff --git a/en/cozy-home/src/assistant/Search/SearchBarMobile.jsx b/en/cozy-home/src/assistant/Search/SearchBarMobile.jsx
deleted file mode 100644
index e69f3989d..000000000
--- a/en/cozy-home/src/assistant/Search/SearchBarMobile.jsx
+++ /dev/null
@@ -1,49 +0,0 @@
-import React, { useRef } from 'react'
-
-import SearchBar from 'cozy-ui/transpiled/react/SearchBar'
-import useEventListener from 'cozy-ui/transpiled/react/hooks/useEventListener'
-
-import SuggestionsPlaceholder from './SuggestionsPlaceholder'
-
-import styles from '../Conversations/styles.styl'
-
-const SearchBarMobile = ({ value, onClear, onChange }) => {
- const inputRef = useRef()
-
- // to adjust input height for multiline when typing in it
- useEventListener(inputRef.current, 'input', () => {
- inputRef.current.style.height = 'auto' // to resize input when emptying it
- inputRef.current.style.height = `${inputRef.current.scrollHeight}px`
- })
-
- const handleClear = () => {
- onClear()
- inputRef.current.style.height = 'auto'
- }
-
- return (
-
- }
- }}
- onChange={onChange}
- onClear={handleClear}
- />
- )
-}
-
-export default SearchBarMobile
diff --git a/en/cozy-home/src/assistant/Search/SearchProvider.jsx b/en/cozy-home/src/assistant/Search/SearchProvider.jsx
deleted file mode 100644
index 680bb35c7..000000000
--- a/en/cozy-home/src/assistant/Search/SearchProvider.jsx
+++ /dev/null
@@ -1,58 +0,0 @@
-import React, { useMemo, useContext, useState, useCallback } from 'react'
-import debounce from 'lodash/debounce'
-
-import { useFetchResult } from './useFetchResult'
-
-export const SearchContext = React.createContext()
-
-export const useSearch = () => {
- const context = useContext(SearchContext)
-
- if (!context) {
- throw new Error('useSearch must be used within a SearchProvider')
- }
- return context
-}
-
-const SearchProvider = ({ children }) => {
- const [searchValue, setSearchValue] = useState('')
- const [selectedIndex, setSelectedIndex] = useState()
- const { isLoading, results } = useFetchResult(searchValue)
-
- const delayedSetSearchValue = useMemo(
- () => debounce(setSearchValue, 250),
- [setSearchValue]
- )
-
- const clearSearch = useCallback(() => {
- setSearchValue('')
- setSelectedIndex()
- }, [])
-
- const value = useMemo(
- () => ({
- searchValue,
- setSearchValue,
- delayedSetSearchValue,
- isLoading,
- clearSearch,
- selectedIndex,
- setSelectedIndex,
- results
- }),
- [
- searchValue,
- delayedSetSearchValue,
- isLoading,
- clearSearch,
- selectedIndex,
- results
- ]
- )
-
- return (
- {children}
- )
-}
-
-export default React.memo(SearchProvider)
diff --git a/en/cozy-home/src/assistant/Search/SearchSubmitFab.jsx b/en/cozy-home/src/assistant/Search/SearchSubmitFab.jsx
deleted file mode 100644
index e96e8eb66..000000000
--- a/en/cozy-home/src/assistant/Search/SearchSubmitFab.jsx
+++ /dev/null
@@ -1,38 +0,0 @@
-import React from 'react'
-
-import Fab from 'cozy-ui/transpiled/react/Fab'
-import Icon from 'cozy-ui/transpiled/react/Icon'
-import PaperplaneIcon from 'cozy-ui/transpiled/react/Icons/Paperplane'
-import { makeStyles } from 'cozy-ui/transpiled/react/styles'
-import { getFlagshipMetadata } from 'cozy-device-helper'
-import { useI18n } from 'cozy-ui/transpiled/react/providers/I18n'
-
-const useStyles = makeStyles({
- root: {
- right: '1rem',
- bottom: '1rem',
- position: 'fixed',
- marginBottom: ({ immersive }) =>
- immersive ? 'var(--flagship-bottom-height)' : 0
- }
-})
-
-const SearchSubmitFab = ({ searchValue, onClick }) => {
- const { t } = useI18n()
- const styles = useStyles({ immersive: getFlagshipMetadata().immersive })
-
- return (
-
-
-
- )
-}
-
-export default SearchSubmitFab
diff --git a/en/cozy-home/src/assistant/Search/SuggestionsPlaceholder.jsx b/en/cozy-home/src/assistant/Search/SuggestionsPlaceholder.jsx
deleted file mode 100644
index 29b336919..000000000
--- a/en/cozy-home/src/assistant/Search/SuggestionsPlaceholder.jsx
+++ /dev/null
@@ -1,42 +0,0 @@
-import React, { useState } from 'react'
-import { TypeAnimation } from 'react-type-animation'
-import { useTimeoutWhen } from 'rooks'
-
-import Typography from 'cozy-ui/transpiled/react/Typography'
-import { useI18n } from 'cozy-ui/transpiled/react/providers/I18n'
-
-import styles from './styles.styl'
-
-const SuggestionsPlaceholder = () => {
- const { t } = useI18n()
- const [showSuggestions, setShowSuggestions] = useState(false)
-
- useTimeoutWhen(() => setShowSuggestions(true), 2500)
-
- return (
-
-
- {showSuggestions ? (
-
- ) : (
- t('assistant.search.placeholder')
- )}
-
-
- )
-}
-
-export default SuggestionsPlaceholder
diff --git a/en/cozy-home/src/assistant/Search/getFileMimetype.js b/en/cozy-home/src/assistant/Search/getFileMimetype.js
deleted file mode 100644
index 7b36cb5de..000000000
--- a/en/cozy-home/src/assistant/Search/getFileMimetype.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import mime from 'mime-types'
-
-const getMimetypeFromFilename = name => {
- return mime.lookup(name) || 'application/octet-stream'
-}
-
-const mappingMimetypeSubtype = {
- word: 'text',
- text: 'text',
- zip: 'zip',
- pdf: 'pdf',
- spreadsheet: 'sheet',
- excel: 'sheet',
- sheet: 'sheet',
- presentation: 'slide',
- powerpoint: 'slide'
-}
-
-export const getFileMimetype =
- collection =>
- (mime = '', name = '') => {
- const mimetype =
- mime === 'application/octet-stream'
- ? getMimetypeFromFilename(name.toLowerCase())
- : mime
- const [type, subtype] = mimetype.split('/')
- if (collection[type]) {
- return type
- }
- if (type === 'application') {
- const existingType = subtype.match(
- Object.keys(mappingMimetypeSubtype).join('|')
- )
- return existingType ? mappingMimetypeSubtype[existingType[0]] : undefined
- }
- return undefined
- }
diff --git a/en/cozy-home/src/assistant/Search/getIconForSearchResult.js b/en/cozy-home/src/assistant/Search/getIconForSearchResult.js
deleted file mode 100644
index 4ddbaca60..000000000
--- a/en/cozy-home/src/assistant/Search/getIconForSearchResult.js
+++ /dev/null
@@ -1,103 +0,0 @@
-import get from 'lodash/get'
-
-import ContactsIcon from 'cozy-ui/transpiled/react/Icons/Contacts'
-import IconAudio from 'cozy-ui/transpiled/react/Icons/FileTypeAudio'
-import IconBin from 'cozy-ui/transpiled/react/Icons/FileTypeBin'
-import IconCode from 'cozy-ui/transpiled/react/Icons/FileTypeCode'
-import IconFiles from 'cozy-ui/transpiled/react/Icons/FileTypeFiles'
-import IconFolder from 'cozy-ui/transpiled/react/Icons/FileTypeFolder'
-import IconImage from 'cozy-ui/transpiled/react/Icons/FileTypeImage'
-import IconNote from 'cozy-ui/transpiled/react/Icons/FileTypeNote'
-import IconPdf from 'cozy-ui/transpiled/react/Icons/FileTypePdf'
-import IconSheet from 'cozy-ui/transpiled/react/Icons/FileTypeSheet'
-import IconSlide from 'cozy-ui/transpiled/react/Icons/FileTypeSlide'
-import IconText from 'cozy-ui/transpiled/react/Icons/FileTypeText'
-import IconVideo from 'cozy-ui/transpiled/react/Icons/FileTypeVideo'
-import IconZip from 'cozy-ui/transpiled/react/Icons/FileTypeZip'
-
-import EncryptedFolderIcon from './EncryptedFolderIcon'
-import { getFileMimetype } from './getFileMimetype'
-
-export const getIconForSearchResult = searchResult => {
- if (searchResult.doc._type === 'io.cozy.apps') {
- return {
- type: 'app',
- app: searchResult.doc
- }
- }
-
- if (searchResult.slug === 'notes') {
- return {
- type: 'component',
- component: IconNote
- }
- }
-
- if (searchResult.slug === 'drive') {
- return {
- type: 'component',
- component: getDriveMimeTypeIcon(
- searchResult.doc.type === 'directory',
- searchResult.doc.name,
- searchResult.doc.mime
- )
- }
- }
-
- if (searchResult.slug === 'contacts') {
- return {
- type: 'component',
- component: ContactsIcon
- }
- }
-
- return {
- type: 'component',
- component: IconFiles
- }
-}
-
-/**
- * Returns the appropriate icon for a given file based on its mime type and other properties.
- *
- * This method has been copied from cozy-drive
- *
- * See source: https://github.com/cozy/cozy-drive/blob/fbe2df67199683b23a40f476ccdacb00ee027459/src/lib/getMimeTypeIcon.js
- *
- * @param {boolean} isDirectory - Indicates whether the file is a directory.
- * @param {string} name - The name of the file.
- * @param {string} mime - The mime type of the file.
- * @param {Object} [options] - Additional options.
- * @param {boolean} [options.isEncrypted] - Indicates whether the file is encrypted. Default is false.
- * @returns {import('react').ReactNode} - The icon corresponding to the file's mime type.
- */
-export const getDriveMimeTypeIcon = (
- isDirectory,
- name,
- mime,
- { isEncrypted = false } = {}
-) => {
- if (isEncrypted) {
- return EncryptedFolderIcon
- }
- if (isDirectory) {
- return IconFolder
- } else if (/\.cozy-note$/.test(name)) {
- return IconNote
- } else {
- const iconsByMimeType = {
- audio: IconAudio,
- bin: IconBin,
- code: IconCode,
- image: IconImage,
- pdf: IconPdf,
- slide: IconSlide,
- sheet: IconSheet,
- text: IconText,
- video: IconVideo,
- zip: IconZip
- }
- const type = getFileMimetype(iconsByMimeType)(mime, name)
- return get(iconsByMimeType, type, IconFiles)
- }
-}
diff --git a/en/cozy-home/src/assistant/Search/styles.styl b/en/cozy-home/src/assistant/Search/styles.styl
deleted file mode 100644
index 09eeab688..000000000
--- a/en/cozy-home/src/assistant/Search/styles.styl
+++ /dev/null
@@ -1,7 +0,0 @@
-.searchBarDesktop--result
- border-radius 28px 28px 0 0 !important
-
-.suggestionsPlaceholder
- position absolute
- opacity 0.42
- pointer-events none
diff --git a/en/cozy-home/src/assistant/Search/useFetchResult.jsx b/en/cozy-home/src/assistant/Search/useFetchResult.jsx
deleted file mode 100644
index 9a8832579..000000000
--- a/en/cozy-home/src/assistant/Search/useFetchResult.jsx
+++ /dev/null
@@ -1,65 +0,0 @@
-import { useEffect, useState } from 'react'
-
-import Minilog from 'cozy-minilog'
-
-import { useDataProxy } from 'dataproxy/DataProxyProvider'
-
-import { getIconForSearchResult } from './getIconForSearchResult'
-
-const log = Minilog('🔍 [useFetchResult]')
-
-export const useFetchResult = searchValue => {
- const [state, setState] = useState({
- isLoading: true,
- results: null,
- searchValue: null
- })
- const dataProxy = useDataProxy()
-
- useEffect(() => {
- const fetch = async searchValue => {
- if (!dataProxy.dataProxyServicesAvailable) {
- log.log('DataProxy services are not available. Skipping search...')
- return
- }
-
- setState({ isLoading: true, results: null, searchValue })
-
- const searchResults = await dataProxy.search(searchValue)
-
- const results = searchResults.map(r => {
- // Begin Retrocompatibility code, to be removed when following PR is merged: https://github.com/cozy/cozy-web-data-proxy/pull/10
- r.slug = r.slug || r.type
- r.subTitle = r.subTitle || r.name
- // End Retrocompatibility code
- const icon = getIconForSearchResult(r)
- return {
- id: r.doc._id,
- icon: icon,
- slug: r.slug,
- secondaryUrl: r.secondaryUrl,
- primary: r.title,
- secondary: r.subTitle,
- onClick: () => {
- window.open(r.url)
- }
- }
- })
-
- setState({ isLoading: false, results, searchValue })
- }
-
- if (searchValue) {
- if (searchValue !== state.searchValue) {
- fetch(searchValue)
- }
- } else {
- setState({ isLoading: true, results: null, searchValue: null })
- }
- }, [dataProxy, searchValue, state.searchValue, setState])
-
- return {
- isLoading: state.isLoading,
- results: state.results
- }
-}
diff --git a/en/cozy-home/src/assistant/Views/AssistantDialog.jsx b/en/cozy-home/src/assistant/Views/AssistantDialog.jsx
deleted file mode 100644
index 7d6e0a069..000000000
--- a/en/cozy-home/src/assistant/Views/AssistantDialog.jsx
+++ /dev/null
@@ -1,50 +0,0 @@
-import React from 'react'
-import { useNavigate, useParams } from 'react-router-dom'
-
-import { FixedDialog } from 'cozy-ui/transpiled/react/CozyDialogs'
-import CozyTheme from 'cozy-ui/transpiled/react/providers/CozyTheme'
-import { useBreakpoints } from 'cozy-ui/transpiled/react/providers/Breakpoints'
-
-import Conversation from '../Conversations/Conversation'
-import ConversationBar from '../Conversations/ConversationBar'
-import AssistantProvider, { useAssistant } from '../AssistantProvider'
-
-const AssistantDialog = () => {
- const { assistantState } = useAssistant()
- const { isMobile } = useBreakpoints()
- const navigate = useNavigate()
- const { conversationId } = useParams()
-
- const onClose = () => {
- navigate('..')
- }
-
- return (
- }
- actions={}
- onClose={onClose}
- />
- )
-}
-
-const AssistantDialogWithProviders = () => {
- return (
-
-
-
-
-
- )
-}
-
-export default AssistantDialogWithProviders
diff --git a/en/cozy-home/src/assistant/Views/SearchDialog.jsx b/en/cozy-home/src/assistant/Views/SearchDialog.jsx
deleted file mode 100644
index 15bac1581..000000000
--- a/en/cozy-home/src/assistant/Views/SearchDialog.jsx
+++ /dev/null
@@ -1,68 +0,0 @@
-import React from 'react'
-import { useNavigate } from 'react-router-dom'
-
-import flag from 'cozy-flags'
-import { FixedDialog } from 'cozy-ui/transpiled/react/CozyDialogs'
-import CozyTheme from 'cozy-ui/transpiled/react/providers/CozyTheme'
-
-import SearchProvider from '../Search/SearchProvider'
-import AssistantProvider, { useAssistant } from '../AssistantProvider'
-import { makeConversationId } from '../helpers'
-import ResultMenuContent from '../ResultMenu/ResultMenuContent'
-import { useSearch } from '../Search/SearchProvider'
-import SearchBar from '../Search/SearchBar'
-import SearchSubmitFab from '../Search/SearchSubmitFab'
-
-const SearchDialog = () => {
- const { onAssistantExecute } = useAssistant()
- const navigate = useNavigate()
- const { searchValue } = useSearch()
-
- const handleClick = () => {
- const conversationId = makeConversationId()
- onAssistantExecute({ value: searchValue, conversationId })
- navigate(`../assistant/${conversationId}`, { replace: true })
- }
-
- const handleClose = () => {
- navigate('..')
- }
-
- return (
- }
- content={
- <>
- {searchValue && }
- {flag('cozy.assistant.enabled') && (
-
- )}
- >
- }
- onClose={handleClose}
- />
- )
-}
-
-const SearchDialogWithProviders = () => {
- return (
-
-
-
-
-
-
-
- )
-}
-
-export default SearchDialogWithProviders
diff --git a/en/cozy-home/src/assistant/helpers.js b/en/cozy-home/src/assistant/helpers.js
deleted file mode 100644
index 6d53d5458..000000000
--- a/en/cozy-home/src/assistant/helpers.js
+++ /dev/null
@@ -1,21 +0,0 @@
-export const getInstantMessage = assistantState =>
- Object.keys(assistantState.message)
- .sort((a, b) => a - b)
- .map(key => assistantState.message[key])
- .join('')
-
-export const makeConversationId = () =>
- `${Date.now()}-${Math.floor(Math.random() * 90000) + 10000}`
-
-export const pushMessagesIdInState = (id, res, setState) => {
- if (id !== res._id) return
-
- const messagesId = res.messages.map(message => message.id)
- setState(v => ({
- ...v,
- messagesId
- }))
-}
-
-export const isMessageForThisConversation = (res, messagesId) =>
- messagesId.includes(res._id)
diff --git a/en/cozy-home/src/assistant/queries.js b/en/cozy-home/src/assistant/queries.js
deleted file mode 100644
index cf24beaf1..000000000
--- a/en/cozy-home/src/assistant/queries.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import { Q, fetchPolicies } from 'cozy-client'
-
-const CONTACTS_DOCTYPE = 'io.cozy.contacts'
-export const CHAT_CONVERSATIONS_DOCTYPE = 'io.cozy.ai.chat.conversations'
-export const CHAT_EVENTS_DOCTYPE = 'io.cozy.ai.chat.events'
-export const FILES_DOCTYPE = 'io.cozy.files'
-
-const defaultFetchPolicy = fetchPolicies.olderThan(86_400_000) // 24 hours
-
-export const buildFilesByIds = ids => {
- return {
- definition: Q(FILES_DOCTYPE).getByIds(ids),
- options: {
- as: `${FILES_DOCTYPE}/${ids.join('')}`,
- fetchPolicy: defaultFetchPolicy
- }
- }
-}
-
-export const buildChatConversationQueryById = id => {
- return {
- definition: Q(CHAT_CONVERSATIONS_DOCTYPE).getById(id),
- options: {
- as: `${CHAT_CONVERSATIONS_DOCTYPE}/${id}`,
- fetchPolicy: defaultFetchPolicy,
- singleDocData: true
- }
- }
-}
-
-export const buildMyselfQuery = () => {
- return {
- definition: Q(CONTACTS_DOCTYPE).where({ me: true }),
- options: {
- as: `${CONTACTS_DOCTYPE}/myself`,
- fetchPolicy: defaultFetchPolicy
- }
- }
-}
diff --git a/en/cozy-home/src/components/AppWrapper.jsx b/en/cozy-home/src/components/AppWrapper.jsx
index e0bc2f989..36b42de31 100644
--- a/en/cozy-home/src/components/AppWrapper.jsx
+++ b/en/cozy-home/src/components/AppWrapper.jsx
@@ -16,7 +16,7 @@ import configureStore from 'store/configureStore'
import { RealtimePlugin } from 'cozy-realtime'
// import { isFlagshipApp } from 'cozy-device-helper'
-import { DataProxyProvider } from 'dataproxy/DataProxyProvider'
+import { DataProxyProvider } from 'cozy-dataproxy-lib'
import { useWallpaperContext } from 'hooks/useWallpaperContext'
import schema from '../schema'
diff --git a/en/cozy-home/src/components/Assistant/AssistantDesktopWrapper.jsx b/en/cozy-home/src/components/Assistant/AssistantDesktopWrapper.jsx
new file mode 100644
index 000000000..784344fb9
--- /dev/null
+++ b/en/cozy-home/src/components/Assistant/AssistantDesktopWrapper.jsx
@@ -0,0 +1,24 @@
+import React from 'react'
+
+import CozyTheme from 'cozy-ui/transpiled/react/providers/CozyTheme'
+
+import { AssistantDesktop } from 'cozy-dataproxy-lib'
+
+export const AssistantDesktopWrapper = () => {
+ return (
+
+
+
+ )
+}
+
+export default AssistantDesktopWrapper
diff --git a/en/cozy-home/src/components/Assistant/AssistantMobileWrapper.jsx b/en/cozy-home/src/components/Assistant/AssistantMobileWrapper.jsx
new file mode 100644
index 000000000..a11a88865
--- /dev/null
+++ b/en/cozy-home/src/components/Assistant/AssistantMobileWrapper.jsx
@@ -0,0 +1,39 @@
+import cx from 'classnames'
+import React from 'react'
+
+import { getFlagshipMetadata } from 'cozy-device-helper'
+import flag from 'cozy-flags'
+
+import CozyTheme, {
+ useCozyTheme
+} from 'cozy-ui/transpiled/react/providers/CozyTheme'
+
+import styles from './styles.styl'
+
+import { useWallpaperContext } from 'hooks/useWallpaperContext'
+import { AssistantMobile } from 'cozy-dataproxy-lib'
+
+export const AssistantMobileWrapper = () => {
+ const { type } = useCozyTheme()
+
+ const {
+ data: { isCustomWallpaper }
+ } = useWallpaperContext()
+
+ return (
+
+
+
+ )
+}
+
+export default AssistantMobileWrapper
diff --git a/en/cozy-home/src/assistant/styles.styl b/en/cozy-home/src/components/Assistant/styles.styl
similarity index 91%
rename from en/cozy-home/src/assistant/styles.styl
rename to en/cozy-home/src/components/Assistant/styles.styl
index 912289751..7fb5a8c07 100644
--- a/en/cozy-home/src/assistant/styles.styl
+++ b/en/cozy-home/src/components/Assistant/styles.styl
@@ -1,4 +1,4 @@
-.assistantWrapper-mobile
+.mobile-assistant
position fixed
bottom 0
right 0
diff --git a/en/cozy-home/src/components/Home.jsx b/en/cozy-home/src/components/Home.jsx
index ef8558f8f..9d77b1b04 100644
--- a/en/cozy-home/src/components/Home.jsx
+++ b/en/cozy-home/src/components/Home.jsx
@@ -7,8 +7,8 @@ import { CozyConfirmDialogProvider } from 'cozy-harvest-lib'
import { getFlagshipMetadata } from 'cozy-device-helper'
import { Main, Content } from 'cozy-ui/transpiled/react/Layout'
import { useBreakpoints } from 'cozy-ui/transpiled/react/providers/Breakpoints'
+import { AssistantDesktopWrapper } from 'components/Assistant/AssistantDesktopWrapper'
-import AssistantWrapperDesktop from 'assistant/AssistantWrapperDesktop'
import Applications from 'components/Applications'
import ScrollToTopOnMount from 'components/ScrollToTopOnMount'
import Services from 'components/Services'
@@ -28,7 +28,7 @@ const Home = ({ setAppsReady, wrapper }) => {
{pathname === '/connected' && }
{flag('cozy.searchbar.enabled') && !isMobile && (
-
+
)}
{
- {showAssistantForMobile && }
+ {showAssistantForMobile && }
{isFlagshipApp() && }
{flag(FLAG_FAB_BUTTON_ENABLED) && isMobile && }
>
diff --git a/en/cozy-home/src/locales/en.json b/en/cozy-home/src/locales/en.json
index 819d1240d..80202a9de 100644
--- a/en/cozy-home/src/locales/en.json
+++ b/en/cozy-home/src/locales/en.json
@@ -1,21 +1,4 @@
{
- "assistant": {
- "search": {
- "placeholder": "Any question?",
- "send": "Send",
- "result": "Ask the assistant"
- },
- "dialog": {
- "close": "Close"
- },
- "name":"Cozy Assistant",
- "sources":"%{smart_count} source |||| %{smart_count} sources",
- "suggestions": {
- "find_file": "Search a file",
- "reimbursements": "Check my repayments",
- "reorganise_files": "Reorganise my files"
- }
- },
"app": {
"logo": {
"alt": "%{name} logo"
diff --git a/en/cozy-home/src/locales/fr.json b/en/cozy-home/src/locales/fr.json
index 703de1321..ae8b4f6cc 100644
--- a/en/cozy-home/src/locales/fr.json
+++ b/en/cozy-home/src/locales/fr.json
@@ -1,21 +1,4 @@
{
- "assistant": {
- "search": {
- "placeholder": "Une question ?",
- "send": "Envoyer",
- "result": "Demander à l'assistant"
- },
- "dialog": {
- "close": "Fermer"
- },
- "name":"Assistant Cozy",
- "sources":"%{smart_count} source |||| %{smart_count} sources",
- "suggestions": {
- "find_file": "Rechercher un fichier",
- "reimbursements": "Vérifier mes remboursements",
- "reorganise_files": "Réorganiser mes fichiers"
- }
- },
"app": {
"logo": {
"alt": "Logo de %{name}"
diff --git a/en/cozy-home/src/targets/browser/renderApp.tsx b/en/cozy-home/src/targets/browser/renderApp.tsx
index 2a3725323..8b932fd28 100644
--- a/en/cozy-home/src/targets/browser/renderApp.tsx
+++ b/en/cozy-home/src/targets/browser/renderApp.tsx
@@ -1,5 +1,6 @@
import 'cozy-ui/transpiled/react/stylesheet.css'
import 'cozy-ui/dist/cozy-ui.utils.min.css'
+import 'cozy-dataproxy-lib/dist/stylesheet.css'
import 'styles/index.styl'
import 'url-search-params-polyfill'
diff --git a/en/cozy-home/test/jestLib/setup.js b/en/cozy-home/test/jestLib/setup.js
index abf8ab3cc..5c9977a08 100644
--- a/en/cozy-home/test/jestLib/setup.js
+++ b/en/cozy-home/test/jestLib/setup.js
@@ -1,4 +1,5 @@
import '@testing-library/jest-dom'
+import React from 'react'
import log from 'cozy-logger'
@@ -28,3 +29,11 @@ console.warn = function (msg, msg2) {
}
return originalWarn.apply(this, arguments)
}
+
+jest.mock('cozy-dataproxy-lib', () => ({
+ DataProxyProvider: ({ children }) => children,
+ SearchDialog: () => SearchDialog
,
+ AssistantDialog: () => AssistantDialog
,
+ AssistantDesktop: () => AssistantDesktop
,
+ AssistantMobile: () => AssistantMobile
+}))
diff --git a/en/cozy-home/yarn.lock b/en/cozy-home/yarn.lock
index 77b5091ea..019523289 100644
--- a/en/cozy-home/yarn.lock
+++ b/en/cozy-home/yarn.lock
@@ -4154,6 +4154,13 @@ abab@^2.0.6:
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
+abort-controller@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
+ integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==
+ dependencies:
+ event-target-shim "^5.0.0"
+
accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
version "1.3.7"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
@@ -4401,6 +4408,11 @@ argparse@^2.0.1:
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+argsarray@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/argsarray/-/argsarray-0.0.1.tgz#6e7207b4ecdb39b0af88303fa5ae22bda8df61cb"
+ integrity sha512-u96dg2GcAKtpTrBdDoFIM7PjcBA+6rSP0OR94MOReNRyUECL6MtQt5XXmRr4qrftYaef9+l5hcpO5te7sML1Cg==
+
aria-query@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.0.tgz#210c21aaf469613ee8c9a62c7f86525e058db52c"
@@ -5192,6 +5204,11 @@ btoa@^1.2.1:
resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73"
integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==
+buffer-from@1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
+ integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
+
buffer-from@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04"
@@ -5598,6 +5615,11 @@ class-utils@^0.3.5:
isobject "^3.0.0"
static-extend "^0.1.1"
+classnames@2.5.1:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b"
+ integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==
+
classnames@^2.2.5, classnames@^2.2.6:
version "2.2.6"
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce"
@@ -5671,6 +5693,11 @@ cliui@^7.0.2:
strip-ansi "^6.0.0"
wrap-ansi "^7.0.0"
+clone-buffer@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58"
+ integrity sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==
+
clone@^1.0.2:
version "1.0.4"
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
@@ -6002,10 +6029,35 @@ cozy-bi-auth@0.0.25:
lodash "^4.17.20"
node-jose "^1.1.4"
+cozy-client@^50.4.0:
+ version "50.4.0"
+ resolved "https://registry.yarnpkg.com/cozy-client/-/cozy-client-50.4.0.tgz#dc341e71b2acee90342cf86e17392e890e7e7093"
+ integrity sha512-DINi/YwDrzBkXzcm63hFj8Y09yzzLaRWhJqyCu1JT6bdIpV2jc9lJMJe1pcud8xfg29OzSQ5/8gDf5MaQLkzsQ==
+ dependencies:
+ "@cozy/minilog" "1.0.0"
+ "@types/jest" "^26.0.20"
+ "@types/lodash" "^4.14.170"
+ btoa "^1.2.1"
+ cozy-stack-client "^50.4.0"
+ date-fns "2.29.3"
+ json-stable-stringify "^1.0.1"
+ lodash "^4.17.13"
+ microee "^0.0.6"
+ node-fetch "^2.6.1"
+ node-polyglot "2.4.2"
+ open "7.4.2"
+ prop-types "^15.6.2"
+ react-redux "^7.2.0"
+ redux "3 || 4"
+ redux-thunk "^2.3.0"
+ server-destroy "^1.0.1"
+ sift "^6.0.0"
+ url-search-params-polyfill "^8.0.0"
+
cozy-client@^51.6.0:
- version "51.6.0"
- resolved "https://registry.yarnpkg.com/cozy-client/-/cozy-client-51.6.0.tgz#22f77a40f316011d8e8a298cc9d4cbc7cfdbbcc0"
- integrity sha512-H0jhhju5jhoQHCiPZB2tfoRZb4QrhxfArNTRwLs5Lsd3+5WmtaSnPgbQUTBHWPRCv7qxP89Spz7eSgDmpdzA5Q==
+ version "51.6.1"
+ resolved "https://registry.yarnpkg.com/cozy-client/-/cozy-client-51.6.1.tgz#55ba89c3ddedf47444ef2aa2799b5e6d12e04f76"
+ integrity sha512-++MbwaarzQWEpZIfbovWRNWcGWpWwhTC40S5CHjIDIZzSWKLe7mq2nhPw/cgeorj+JWSR7t6CoekJp9E2aOInQ==
dependencies:
"@cozy/minilog" "1.0.0"
"@types/jest" "^26.0.20"
@@ -6027,6 +6079,21 @@ cozy-client@^51.6.0:
sift "^6.0.0"
url-search-params-polyfill "^8.0.0"
+cozy-dataproxy-lib@^1.9.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/cozy-dataproxy-lib/-/cozy-dataproxy-lib-1.9.0.tgz#5e43d49f2ac86e5d6a96bb74260e2567392626eb"
+ integrity sha512-ij9a3x20THxCRjvqcG8yR3hJXZhidDWawaTsfQaCT/eQUS5vwGx4Ob2p6Fur4G8GqayMSmbMsrfkGXv4JlEb/g==
+ dependencies:
+ classnames "2.5.1"
+ comlink "4.4.1"
+ cozy-device-helper "^3.7.1"
+ cozy-pouch-link "^50.3.1"
+ flexsearch "0.7.43"
+ lodash "4.17.21"
+ mime-types "2.1.35"
+ react-type-animation "3.2.0"
+ rooks "7.14.1"
+
cozy-device-helper@2.7.0, cozy-device-helper@^2.1.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/cozy-device-helper/-/cozy-device-helper-2.7.0.tgz#573749997f18e5a1f11f720faec8c9bf2406beeb"
@@ -6048,6 +6115,13 @@ cozy-device-helper@^3.1.2:
dependencies:
lodash "^4.17.19"
+cozy-device-helper@^3.7.1:
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/cozy-device-helper/-/cozy-device-helper-3.7.1.tgz#59f11ab3ab92335525a767e78f983b07eeaf4eea"
+ integrity sha512-D0zkEFynUrICNhQixyyYGhRHTwgJL+pf7XtmTwjKePIn2pNHKw5V64IhGg9uLYf6tI9uivkUKvZvFYuKzEvlqA==
+ dependencies:
+ lodash "^4.17.19"
+
cozy-devtools@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/cozy-devtools/-/cozy-devtools-1.2.1.tgz#680976ab69ebdf2d2727cffc07243705794d1a83"
@@ -6212,6 +6286,15 @@ cozy-minilog@^3.9.1:
dependencies:
microee "0.0.6"
+cozy-pouch-link@^50.3.1:
+ version "50.4.0"
+ resolved "https://registry.yarnpkg.com/cozy-pouch-link/-/cozy-pouch-link-50.4.0.tgz#6cd18521a8652502783d35ec6735de40af47ce62"
+ integrity sha512-7CkyEpsjjxE/24oMsxOcrQT+FWi7LPK0kYKx/KoiD7VX1QxHcZSubjnPjREJJkECs1JwIiAH5z/h99qVO4hArQ==
+ dependencies:
+ cozy-client "^50.4.0"
+ pouchdb-browser "^7.2.2"
+ pouchdb-find "^7.2.2"
+
cozy-realtime@^5.0.4:
version "5.0.4"
resolved "https://registry.yarnpkg.com/cozy-realtime/-/cozy-realtime-5.0.4.tgz#17ebf7d82239a3df3b8ff588fc2356b55fbc48ff"
@@ -6227,10 +6310,10 @@ cozy-release@1.10.0:
dependencies:
exec-sh "0.3.2"
-cozy-scripts@8.2.0:
- version "8.2.0"
- resolved "https://registry.yarnpkg.com/cozy-scripts/-/cozy-scripts-8.2.0.tgz#a3286078ab331e55e24fcc41ef3d20b90a5c64cc"
- integrity sha512-kAHBOkPBP/2nkpP/EU9I54HrUEcTusxx2j745RWuTK+Ag/QtqVccLxYQdFo+Bf69akNXJ8cMfM3YQc24VpqFRQ==
+cozy-scripts@8.4.0:
+ version "8.4.0"
+ resolved "https://registry.yarnpkg.com/cozy-scripts/-/cozy-scripts-8.4.0.tgz#d1c5e531d3cf452e6fab896343d82a22452ece56"
+ integrity sha512-ol+UcsFW2fNixFGrVWTxCEOsLnmhqvTPggANvvkmLMqw4xMgpddiSetWVKdUrtnTnSqTzpL4My4V+BsQl73xuA==
dependencies:
"@babel/core" "7.10.0"
"@babel/polyfill" "^7.10.4"
@@ -6301,10 +6384,10 @@ cozy-sharing@^16.0.0:
react-tooltip "^3.11.1"
snarkdown "^2.0.0"
-cozy-stack-client@^51.0.0:
- version "51.0.0"
- resolved "https://registry.yarnpkg.com/cozy-stack-client/-/cozy-stack-client-51.0.0.tgz#73fbdb1cf8efc46cb89ad2266d04e1289a9ae355"
- integrity sha512-ToaheKT0cziulvAxUl+H8mqmSXQmblCp6a5TKNnrEHOS3ExTmzOHmIgNrRDgDKi4G8hK93CZTi8gj49ffk0HYw==
+cozy-stack-client@^50.4.0:
+ version "50.4.0"
+ resolved "https://registry.yarnpkg.com/cozy-stack-client/-/cozy-stack-client-50.4.0.tgz#3326a1299cacb06b95a484dc656cc301ce811ade"
+ integrity sha512-u8NXO6uUrcT0SggtOePpOXftGdwe1zCiOHQIzvUAeuZIt4mVruF1zYXaPz90/zI4pHzr8mHH2h6KXHgH1McjWA==
dependencies:
detect-node "^2.0.4"
mime "^2.4.0"
@@ -8037,6 +8120,11 @@ etag@~1.8.1:
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
+event-target-shim@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
+ integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
+
eventemitter3@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb"
@@ -8314,6 +8402,13 @@ fb-watchman@^2.0.0:
dependencies:
bser "2.1.1"
+fetch-cookie@0.11.0:
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/fetch-cookie/-/fetch-cookie-0.11.0.tgz#e046d2abadd0ded5804ce7e2cae06d4331c15407"
+ integrity sha512-BQm7iZLFhMWFy5CZ/162sAGjBfdNWb7a8LEqqnzsHFhxT/X/SVj/z2t2nu3aJvjlbQkrAlTUApplPRjWyH4mhA==
+ dependencies:
+ tough-cookie "^2.3.3 || ^3.0.1 || ^4.0.0"
+
figgy-pudding@^3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
@@ -8505,6 +8600,11 @@ flatted@^3.1.0:
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3"
integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==
+flexsearch@0.7.43:
+ version "0.7.43"
+ resolved "https://registry.yarnpkg.com/flexsearch/-/flexsearch-0.7.43.tgz#34f89b36278a466ce379c5bf6fb341965ed3f16c"
+ integrity sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==
+
fluids@^0.1.6:
version "0.1.10"
resolved "https://registry.yarnpkg.com/fluids/-/fluids-0.1.10.tgz#0517e7a53dbce1db011dddec301b75178518ba0e"
@@ -9507,6 +9607,11 @@ image-size@^0.5.1:
resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=
+immediate@3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266"
+ integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==
+
immediate@~3.0.5:
version "3.0.6"
resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
@@ -9614,7 +9719,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@2, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
+inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -13605,6 +13710,118 @@ posthtml@^0.9.2:
posthtml-parser "^0.2.0"
posthtml-render "^1.0.5"
+pouchdb-abstract-mapreduce@7.3.1:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/pouchdb-abstract-mapreduce/-/pouchdb-abstract-mapreduce-7.3.1.tgz#96ff4a0f41cbe273f3f52fde003b719005a2093c"
+ integrity sha512-0zKXVFBvrfc1KnN0ggrB762JDmZnUpePHywo9Bq3Jy+L1FnoG7fXM5luFfvv5/T0gEw+ZTIwoocZECMnESBI9w==
+ dependencies:
+ pouchdb-binary-utils "7.3.1"
+ pouchdb-collate "7.3.1"
+ pouchdb-collections "7.3.1"
+ pouchdb-errors "7.3.1"
+ pouchdb-fetch "7.3.1"
+ pouchdb-mapreduce-utils "7.3.1"
+ pouchdb-md5 "7.3.1"
+ pouchdb-utils "7.3.1"
+
+pouchdb-binary-utils@7.3.1:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/pouchdb-binary-utils/-/pouchdb-binary-utils-7.3.1.tgz#eea22d9a5f880fcd95062476f4f5484cdf61496f"
+ integrity sha512-crZJNfAEOnUoRk977Qtmk4cxEv6sNKllQ6vDDKgQrQLFjMUXma35EHzNyIJr1s76J77Q4sqKQAmxz9Y40yHGtw==
+ dependencies:
+ buffer-from "1.1.2"
+
+pouchdb-browser@^7.2.2:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/pouchdb-browser/-/pouchdb-browser-7.3.1.tgz#6b2f9f35f42d2c83fc205de5e0403c0aae7046aa"
+ integrity sha512-qZ8awkXl/woBHvEVqNHjDtwPDA7A9v4ItHtX1y1eVpKel4mlYqnIJ8K6pRcFUZmVaHinJW8K3uS32eHC1q0yOA==
+ dependencies:
+ argsarray "0.0.1"
+ immediate "3.3.0"
+ inherits "2.0.4"
+ spark-md5 "3.0.2"
+ uuid "8.3.2"
+ vuvuzela "1.0.3"
+
+pouchdb-collate@7.3.1:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/pouchdb-collate/-/pouchdb-collate-7.3.1.tgz#19d7b87dd173d1c765da8cc9987c5aa9eb24f11f"
+ integrity sha512-o4gyGqDMLMSNzf6EDTr3eHaH/JRMoqRhdc+eV+oA8u00nTBtr9wD+jypVe2LbgKLJ4NWqx2qVkXiTiQdUFtsLQ==
+
+pouchdb-collections@7.3.1:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/pouchdb-collections/-/pouchdb-collections-7.3.1.tgz#4f1819cf4dd6936a422c29f7fa26a9b5dca428f5"
+ integrity sha512-yUyDqR+OJmtwgExOSJegpBJXDLAEC84TWnbAYycyh+DZoA51Yw0+XVQF5Vh8Ii90/Ut2xo88fmrmp0t6kqom8w==
+
+pouchdb-errors@7.3.1:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/pouchdb-errors/-/pouchdb-errors-7.3.1.tgz#78be36721e2edc446fac158a236a9218c7bcdb14"
+ integrity sha512-Zktz4gnXEUcZcty8FmyvtYUYsHskoST05m6H5/E2gg/0mCfEXq/XeyyLkZHaZmqD0ZPS9yNmASB1VaFWEKEaDw==
+ dependencies:
+ inherits "2.0.4"
+
+pouchdb-fetch@7.3.1:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/pouchdb-fetch/-/pouchdb-fetch-7.3.1.tgz#d54b1807be0f0a5d4b6d06e416c7d54952bbc348"
+ integrity sha512-205xAtvdHRPQ4fp1h9+RmT9oQabo9gafuPmWsS9aEl3ER54WbY8Vaj1JHZGbU4KtMTYvW7H5088zLS7Nrusuag==
+ dependencies:
+ abort-controller "3.0.0"
+ fetch-cookie "0.11.0"
+ node-fetch "2.6.7"
+
+pouchdb-find@^7.2.2:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/pouchdb-find/-/pouchdb-find-7.3.1.tgz#07a633d5ee2bd731dae9f991281cd25212088d29"
+ integrity sha512-AeqUfAVY1c7IFaY36BRT0vIz9r4VTKq/YOWTmiqndOZUQ/pDGxyO2fNFal6NN3PyYww0JijlD377cPvhnrhJVA==
+ dependencies:
+ pouchdb-abstract-mapreduce "7.3.1"
+ pouchdb-collate "7.3.1"
+ pouchdb-errors "7.3.1"
+ pouchdb-fetch "7.3.1"
+ pouchdb-md5 "7.3.1"
+ pouchdb-selector-core "7.3.1"
+ pouchdb-utils "7.3.1"
+
+pouchdb-mapreduce-utils@7.3.1:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/pouchdb-mapreduce-utils/-/pouchdb-mapreduce-utils-7.3.1.tgz#f0ac2c8400fbedb705e9226082453ac7d3f2a066"
+ integrity sha512-oUMcq82+4pTGQ6dtrhgORHOVHZSr6w/5tFIUGlv7RABIDvJarL4snMawADjlpiEwPdiQ/ESG8Fqt8cxqvqsIgg==
+ dependencies:
+ argsarray "0.0.1"
+ inherits "2.0.4"
+ pouchdb-collections "7.3.1"
+ pouchdb-utils "7.3.1"
+
+pouchdb-md5@7.3.1:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/pouchdb-md5/-/pouchdb-md5-7.3.1.tgz#70fae44f9d27eb4c6a8e7106156b4593d31c1762"
+ integrity sha512-aDV8ui/mprnL3xmt0gT/81DFtTtJiKyn+OxIAbwKPMfz/rDFdPYvF0BmDC9QxMMzGfkV+JJUjU6at0PPs2mRLg==
+ dependencies:
+ pouchdb-binary-utils "7.3.1"
+ spark-md5 "3.0.2"
+
+pouchdb-selector-core@7.3.1:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/pouchdb-selector-core/-/pouchdb-selector-core-7.3.1.tgz#08245662de3d61f16ab8dae2b56ef622935b3fb3"
+ integrity sha512-HBX+nNGXcaL9z0uNpwSMRq2GNZd3EZXW+fe9rJHS0hvJohjZL7aRJLoaXfEdHPRTNW+CpjM3Rny60eGekQdI/w==
+ dependencies:
+ pouchdb-collate "7.3.1"
+ pouchdb-utils "7.3.1"
+
+pouchdb-utils@7.3.1:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/pouchdb-utils/-/pouchdb-utils-7.3.1.tgz#d25f0a034427f388ba5ae37d9ae3fbed210e8720"
+ integrity sha512-R3hHBo1zTdTu/NFs3iqkcaQAPwhIH0gMIdfVKd5lbDYlmP26rCG5pdS+v7NuoSSFLJ4xxnaGV+Gjf4duYsJ8wQ==
+ dependencies:
+ argsarray "0.0.1"
+ clone-buffer "1.0.0"
+ immediate "3.3.0"
+ inherits "2.0.4"
+ pouchdb-collections "7.3.1"
+ pouchdb-errors "7.3.1"
+ pouchdb-md5 "7.3.1"
+ uuid "8.3.2"
+
prelude-ls@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
@@ -15604,6 +15821,11 @@ source-map@^0.7.3:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+spark-md5@3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-3.0.2.tgz#7952c4a30784347abcee73268e473b9c0167e3fc"
+ integrity sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==
+
spdx-correct@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4"
@@ -16475,6 +16697,16 @@ toposort@^2.0.2:
resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330"
integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=
+"tough-cookie@^2.3.3 || ^3.0.1 || ^4.0.0":
+ version "4.1.4"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36"
+ integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==
+ dependencies:
+ psl "^1.1.33"
+ punycode "^2.1.1"
+ universalify "^0.2.0"
+ url-parse "^1.5.3"
+
tough-cookie@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4"
@@ -16893,6 +17125,11 @@ universalify@^0.1.0, universalify@^0.1.2:
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+universalify@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0"
+ integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==
+
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
@@ -16946,7 +17183,7 @@ url-join@^1.1.0:
resolved "https://registry.yarnpkg.com/url-join/-/url-join-1.1.0.tgz#741c6c2f4596c4830d6718460920d0c92202dc78"
integrity sha1-dBxsL0WWxIMNZxhGCSDQySIC3Hg=
-url-parse@^1.4.3:
+url-parse@^1.4.3, url-parse@^1.5.3:
version "1.5.10"
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1"
integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==
@@ -17081,16 +17318,16 @@ utils-merge@1.0.1:
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
+uuid@8.3.2, uuid@^8.3.0:
+ version "8.3.2"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
+ integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+
uuid@^3.0.1, uuid@^3.3.2, uuid@^3.3.3:
version "3.4.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
-uuid@^8.3.0:
- version "8.3.2"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
- integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
-
v8-compile-cache@^2.0.3:
version "2.3.0"
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
@@ -17200,6 +17437,11 @@ vue-eslint-parser@^8.0.1:
lodash "^4.17.21"
semver "^7.3.5"
+vuvuzela@1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/vuvuzela/-/vuvuzela-1.0.3.tgz#3be145e58271c73ca55279dd851f12a682114b0b"
+ integrity sha512-Tm7jR1xTzBbPW+6y1tknKiEhz04Wf/1iZkcTJjSFcpNko43+dFW6+OOeQe9taJIug3NdfUAjFKgUSyQrIKaDvQ==
+
w3c-hr-time@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
diff --git a/en/sitemap.xml b/en/sitemap.xml
index 55e98a496..cadbe801a 100644
--- a/en/sitemap.xml
+++ b/en/sitemap.xml
@@ -2,2277 +2,2277 @@
https://docs.cozy.io/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/privacy/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/ach/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/ach/DirectoriesToInject/testFile2/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/ach/DirectoriesToInject/Folder/testFile1/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/ach/data/bank/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/ach/e2e/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/ach/examples/data-from-csv/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/babel-preset-cozy-app/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/babel-preset-cozy-app/CHANGELOG/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/commitlint-config-cozy/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/commitlint-config-cozy/CHANGELOG/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-app-publish/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-app-publish/CHANGELOG/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-apps-registry/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-apps-registry/CONTRIBUTING/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/CHANGELOG/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/docs/account-types/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/docs/bills-matching/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/docs/brand-dictionary/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/docs/categorization/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/docs/category/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/docs/code-conventions/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/docs/credentials/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/docs/data-fetching/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/docs/demo/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/docs/dev/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/docs/notifications/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/docs/perfs/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/docs/services/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/docs/tracking/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/scripts/visualizer/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/src/components/DisplayError/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/src/components/Select/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/src/components/Switch/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/src/components/Chart/LineChart/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/src/components/KonnectorChip/readme/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/src/components/Loading/Loading/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/src/components/Select/Readme/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/src/components/SelectDates/Readme/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/src/components/SharingIcon/SharingIcon/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/src/components/Table/Readme/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/src/ducks/balance/AccountRow/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/src/ducks/balance/History/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/src/ducks/filters/Readme/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/src/targets/services/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/test/fixtures/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/test/fixtures/matching-service/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-banks/test/fixtures/notifications-service/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/architecture/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/dev/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/entrypoints/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/getting-started/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/hooks/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/link-authoring/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/logging/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/metadata/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/mobile-guide/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/node/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/react-integration/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/relationships/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/schema/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/timeseries/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-stack-client/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/Association/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/BlockedCozyError/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/BulkEditError/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/CozyClient/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/CozyLink/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/CozyProvider/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/HasMany/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/HasManyInPlace/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/HasManyTriggers/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/HasOne/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/HasOneInPlace/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/InvalidCozyUrlError/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/InvalidProtocolError/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/InvalidRedirectLinkError/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/Query/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/QueryDefinition/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/Registry/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/StackLink/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/WebFlagshipLink/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/classes/models.document.Qualification/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/interfaces/models.dacc.Params/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/interfaces/models.file.FileUploadOptions/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/interfaces/models.instance.DiskInfos/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/interfaces/models.instance.DiskInfosRaw/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/interfaces/models.instance.SettingsInfo/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/interfaces/models.permission.Document/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/interfaces/models.permission.Permission/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/interfaces/models.permission.PermissionItem/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/interfaces/models.timeseries.TimeSeries/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/interfaces/models.timeseries.TimeSeriesJSONAPI/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/manifest/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.account/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.applications/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.contact/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.dacc/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.document.helpers/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.document.locales/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.document/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.document.themes/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.file/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.folder/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.geo/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.instance/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.konnectorFolder/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.note/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.paper/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.permission/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.sharing/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.timeseries/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.trigger/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.user/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/models.utils/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-client/modules/useMutation/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-pouch-link/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/api/cozy-pouch-link/classes/PouchLink/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-client/offline/updateDoc/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-desktop/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-desktop/feedback/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-desktop/developer/api_doc/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-desktop/developer/coffeescript/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-desktop/developer/debug/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-desktop/developer/log_analysis/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-desktop/developer/requirements/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-desktop/developer/setup/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-desktop/developer/test/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-desktop/usage/build/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-desktop/usage/cli/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-desktop/usage/file_systems/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-desktop/usage/ignore_files/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-desktop/usage/inotify/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-desktop/usage/limitations/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-desktop/usage/linux/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-desktop/usage/macos/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-desktop/usage/windows/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-device-helper/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-device-helper/CHANGELOG/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/pull_request_template/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/cc.cozycloud.announcements/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/cc.cozycloud.autocategorization/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/com.bitwarden.ciphers/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/com.bitwarden.contacts/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/com.bitwarden.folders/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/com.bitwarden.organizations/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/com.ecoledirecte.notes/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/com.ecoledirecte.textbook.day/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/com.unibet.bets/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.account_types/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.accounts/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.ai.chat.conversations/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.apps/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.apps.suggestions/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.bank/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.bills/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.calendar/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.coachco2/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.contacts/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.docrules/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.exports/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.files/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.files_metadata/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.home.settings/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.identities/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.jobs/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.konnectors/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.notes/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.notifications/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.oauth.access_codes/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.oauth.clients/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.permissions/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.photos/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.procedures/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.remote.nextcloud.files/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.remote.requests/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.sessions.logins/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.sessions/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.settings/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.shared/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.sharings/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.tags/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.terms/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.timeseries/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.todos/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.triggers/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-doctypes/docs/io.cozy.triggers.state/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-flags/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-flags/CHANGELOG/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-home/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-home/CHANGELOG/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-home/CONTRIBUTING/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-home/docs/configuration/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-home/docs/connection-state/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-home/docs/develop/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-home/docs/intents/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-home/docs/services/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-konnector-libs/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-konnector-libs/api/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-konnector-libs/categorization-dashboard/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-konnector-libs/cli/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-konnector-libs/dev/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-konnector-libs/errors/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-konnector-libs/operation-linking/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-konnector-libs/synchronization/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-notifications/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-notifications/CHANGELOG/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-realtime/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-realtime/CHANGELOG/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-scripts/webpack-configs/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-scripts/webpack-merge-strategies/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/CONTRIBUTING/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/INSTALL/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/accept-from-flagship/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/admin/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/ai/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/apps/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/assets/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/auth/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/bitwarden/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/client-app-dev/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/config/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/connection-check/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/contacts/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/couchdb-quirks/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/data-system/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/delegated-auth/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/docker/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/doctype/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/files/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/flagship/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/http-api/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/important-changes/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/instance/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/intents/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/jobs/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/konnectors-dev/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/konnectors-workflow/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/konnectors/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/mango/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/move-design/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/move/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/nextcloud/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/not-synchronized-vfs/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/notes/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/notifications/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/office/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/permissions/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/pouchdb-quirks/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/public/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/realtime-internals/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/realtime/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/references-docs-in-vfs/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/registry-publish/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/registry/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/release/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/remote/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/security/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/settings/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/sharing-design/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/sharing/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/shortcuts/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/user-action-required/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/wellknown/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/workers/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/archives/architecture/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/archives/couchdb-plugins/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/archives/konnectors-design/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/archives/moving/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/archives/onboarding/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/archives/realtime/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/archives/replication/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_apps/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_apps_install/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_apps_ls/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_apps_show/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_apps_uninstall/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_apps_update/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_assets/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_assets_add/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_assets_ls/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_assets_rm/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_check/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_check_fs/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_check_shared/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_check_sharings/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_check_triggers/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_completion/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_config/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_config_decrypt-creds/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_config_decrypt-data/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_config_encrypt-creds/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_config_encrypt-data/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_config_gen-keys/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_config_insert-asset/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_config_ls-assets/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_config_ls-contexts/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_config_passwd/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_config_rm-asset/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_config_show-context/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_doc/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_doc_man/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_doc_markdown/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_features/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_features_config/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_features_defaults/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_features_flags/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_features_ratio/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_features_sets/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_features_show/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_files/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_files_exec/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_files_import/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_files_usage/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_fix/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_fix_contact-emails/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_fix_indexes/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_fix_jobs/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_fix_mime/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_fix_orphan-account/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_fix_password-defined/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_fix_redis/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_fix_service-triggers/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_fix_thumbnails/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_add/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_auth-mode/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_clean-sessions/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_client-oauth/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_count/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_debug/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_destroy/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_export/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_find-oauth-client/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_fsck/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_import/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_ls/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_modify/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_refresh-token-oauth/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_set-disk-quota/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_set-passphrase/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_show-app-version/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_show-db-prefix/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_show-swift-prefix/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_show/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_token-app/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_token-cli/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_token-konnector/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_instances_token-oauth/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_jobs/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_jobs_purge-old-jobs/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_jobs_run/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_konnectors/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_konnectors_deactivate-maintenance/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_konnectors_install/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_konnectors_ls-maintenances/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_konnectors_ls/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_konnectors_maintenance/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_konnectors_run/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_konnectors_show/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_konnectors_uninstall/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_konnectors_update/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_serve/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_settings/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_status/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_swift/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_swift_get/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_swift_ls-layouts/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_swift_ls/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_swift_put/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_swift_rm/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_tools/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_tools_bug/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_tools_encrypt-with-rsa/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_tools_heap/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_tools_unxor-document-id/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_triggers/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_triggers_launch/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_triggers_ls/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_triggers_show-from-app/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-stack/cli/cozy-stack_version/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-ui/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-ui/dev/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-ui/guidelines/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-ui/how-to-extract/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-ui/how-to-transpile/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-ui/components/Readme/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/cozy-ui/components/Readme/Readme/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/eslint-config-cozy-app/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/eslint-config-cozy-app/CHANGELOG/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/faq/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/faq/security/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/faq/start/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/howTos/dev/connect-mobile-app-local-stack/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/howTos/dev/cordova/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/howTos/dev/hmr/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/howTos/dev/run-connectors-on-local-cozy-stack/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/howTos/dev/runCozyDocker/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/howTos/dev/sendmail/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/howTos/dev/services/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/howTos/sync/linux/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/projects/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/references/auth/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/references/git-flow/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/references/tech-intro/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/app/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/readme/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/client-side-konnector/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/client-side-konnector/getting-started/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/client-side-konnector/scrape-data/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/cloudery/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/data/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/data/advanced/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/data/doctypes/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/data/pouchdb/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/data/qualification/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/data/queries/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/konnector/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/konnector/2fa/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/konnector/cozy-browser/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/konnector/faq/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/konnector/getting-started/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/konnector/going-further/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/konnector/how-does-it-work/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/konnector/oauth/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/konnector/packaging/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/konnector/save-data/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/konnector/scrape-data/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/selfhosting/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/selfhosting/administration/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/selfhosting/administration/mail/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/selfhosting/administration/more_instances/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/selfhosting/administration/office/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/selfhosting/administration/upgrade/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/selfhosting/docker/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/selfhosting/finalize/apache/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/selfhosting/finalize/create_instance/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/selfhosting/finalize/nginx/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/selfhosting/install/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/selfhosting/install/package/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/selfhosting/install/sources/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/selfhosting/requirements/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/selfhosting/requirements/couchdb-pkg/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/selfhosting/requirements/couchdb-snap/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/selfhosting/requirements/couchdb/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/selfhosting/requirements/nodejs/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/tutorials/translate/
- 2024-12-18
+ 2024-12-19
daily
https://docs.cozy.io/use/
- 2024-12-18
+ 2024-12-19
daily
\ No newline at end of file
diff --git a/en/sitemap.xml.gz b/en/sitemap.xml.gz
index 62f0d3520..28decf4e4 100644
Binary files a/en/sitemap.xml.gz and b/en/sitemap.xml.gz differ