diff --git a/.github/workflows/ci-chrome-extension.yaml b/.github/workflows/ci-chrome-extension.yaml deleted file mode 100644 index 411d6a429be..00000000000 --- a/.github/workflows/ci-chrome-extension.yaml +++ /dev/null @@ -1,48 +0,0 @@ -name: CI Chrome Extension -on: - push: - branches: - - main - - pull_request: - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - changed-files-check: - uses: ./.github/workflows/changed-files.yaml - with: - files: | - package.json - packages/twenty-chrome-extension/** - chrome-extension-build: - needs: changed-files-check - if: needs.changed-files-check.outputs.any_changed == 'true' - timeout-minutes: 15 - runs-on: ubuntu-latest - env: - VITE_SERVER_BASE_URL: http://localhost:3000 - VITE_FRONT_BASE_URL: http://localhost:3001 - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.11.0 - with: - access_token: ${{ github.token }} - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Install dependencies - uses: ./.github/workflows/actions/yarn-install - - name: Chrome Extension / Run build - run: npx nx build twenty-chrome-extension - ci-chrome-extension-status-check: - if: always() && !cancelled() - timeout-minutes: 5 - runs-on: ubuntu-latest - needs: [changed-files-check, chrome-extension-build] - steps: - - name: Fail job if any needs failed - if: contains(needs.*.result, 'failure') - run: exit 1 diff --git a/.vscode/twenty.code-workspace b/.vscode/twenty.code-workspace index ef9fafba968..43a21c44658 100644 --- a/.vscode/twenty.code-workspace +++ b/.vscode/twenty.code-workspace @@ -4,10 +4,6 @@ "name": "ROOT", "path": "../" }, - { - "name": "packages/twenty-chrome-extension", - "path": "../packages/twenty-chrome-extension" - }, { "name": "packages/twenty-docker", "path": "../packages/twenty-docker" diff --git a/CLAUDE.md b/CLAUDE.md index 78d23cf7eb5..fb3c24606f2 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -89,7 +89,6 @@ packages/ ├── twenty-ui/ # Shared UI components library ├── twenty-shared/ # Common types and utilities ├── twenty-emails/ # Email templates with React Email -├── twenty-chrome-extension/ # Chrome extension ├── twenty-website/ # Next.js documentation website ├── twenty-zapier/ # Zapier integration └── twenty-e2e-testing/ # Playwright E2E tests diff --git a/package.json b/package.json index e0acd379c5d..d4482843aa4 100644 --- a/package.json +++ b/package.json @@ -349,7 +349,6 @@ }, "workspaces": { "packages": [ - "packages/twenty-chrome-extension", "packages/twenty-front", "packages/twenty-server", "packages/twenty-emails", diff --git a/packages/twenty-chrome-extension/.env.example b/packages/twenty-chrome-extension/.env.example deleted file mode 100644 index 6871e9e33c8..00000000000 --- a/packages/twenty-chrome-extension/.env.example +++ /dev/null @@ -1,6 +0,0 @@ -VITE_SERVER_BASE_URL=https://api.twenty.com -VITE_FRONT_BASE_URL=https://app.twenty.com -VITE_MODE=production - -# Used to generate packages/twenty-chrome-extension/src/generated/graphql.tsx -AUTH_TOKEN= diff --git a/packages/twenty-chrome-extension/.eslintrc-ci.cjs b/packages/twenty-chrome-extension/.eslintrc-ci.cjs deleted file mode 100644 index a0b8a80632e..00000000000 --- a/packages/twenty-chrome-extension/.eslintrc-ci.cjs +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - extends: ['./.eslintrc.cjs'], - rules: { - 'no-console': 'error', - }, -}; diff --git a/packages/twenty-chrome-extension/.eslintrc.cjs b/packages/twenty-chrome-extension/.eslintrc.cjs deleted file mode 100644 index 836a34a41da..00000000000 --- a/packages/twenty-chrome-extension/.eslintrc.cjs +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = { - root: true, - extends: ['../../.eslintrc.global.cjs', '../../.eslintrc.react.cjs'], - ignorePatterns: [ - 'node_modules', - 'dist', - '**/generated/*', - ], - overrides: [ - { - files: ['**/*.ts', '**/*.tsx'], - parserOptions: { - project: ['packages/twenty-chrome-extension/tsconfig.*.json'], - }, - rules: { - '@nx/workspace-explicit-boolean-predicates-in-if': 'warn', - }, - }, - ], -}; diff --git a/packages/twenty-chrome-extension/.gitignore b/packages/twenty-chrome-extension/.gitignore deleted file mode 100644 index a547bf36d8d..00000000000 --- a/packages/twenty-chrome-extension/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/packages/twenty-chrome-extension/.prettierignore b/packages/twenty-chrome-extension/.prettierignore deleted file mode 100644 index 80697f2272d..00000000000 --- a/packages/twenty-chrome-extension/.prettierignore +++ /dev/null @@ -1 +0,0 @@ -src/generated \ No newline at end of file diff --git a/packages/twenty-chrome-extension/README.md b/packages/twenty-chrome-extension/README.md deleted file mode 100644 index 64e92e4130b..00000000000 --- a/packages/twenty-chrome-extension/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# Twenty Chrome Extension. - -This extension allows you to save `company` and `people` information to your twenty workspace directly from LinkedIn. - -To install the extension in development mode with hmr (hot module reload), follow these steps. - -- STEP 1: Clone the repository and run `yarn install` in the root directory. - -- STEP 2: Once the dependencies installation succeeds, create a file with env variables by executing the following command in the root directory. - -``` -cp ./packages/twenty-chrome-extension/.env.example ./packages/twenty-chrome-extension/.env -``` - -- STEP 3 (optional): Update values of the environment variables to match those of your instance for `twenty-front` and `twenty-server`. If you want to work on your local machine with the default setup from `Twenty Docs`, replace everything in the .env file with the following. - -``` -VITE_SERVER_BASE_URL=http://localhost:3000 -VITE_FRONT_BASE_URL=http://localhost:3001 -``` - -- STEP 4: Now, execute the following command in the root directory to start up the development server on Port 3002. This will create a `dist` folder in `twenty-chrome-extension`. - -``` -npx nx start twenty-chrome-extension -``` - -- STEP 5: Open Google Chrome and head to the extensions page by typing `chrome://extensions` in the address bar. - -

- -

- -- STEP 6: Turn on the `Developer mode` from the top-right corner and click `Load unpacked`. - -

- -

- -- STEP 7: Select the `dist` folder from `twenty-chrome-extension`. - -

- -

- -- STEP 8: This opens up the `options` page, where you must enter your API key. - -

- -

- -- STEP 9: Reload any LinkedIn page that you opened before installing the extension for seamless experience. - -- STEP 10: Visit any individual or company profile on LinkedIn and click the `Add to Twenty` button to test. - -

- -

- -To install the extension in production mode without hmr (hot module reload), replace the command in STEP FOUR with `npx nx build twenty-chrome-extension`. You may or may not want to execute STEP THREE based on your requirements. \ No newline at end of file diff --git a/packages/twenty-chrome-extension/codegen.ts b/packages/twenty-chrome-extension/codegen.ts deleted file mode 100644 index fef2e0e8ef4..00000000000 --- a/packages/twenty-chrome-extension/codegen.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { CodegenConfig } from '@graphql-codegen/cli'; - -const config: CodegenConfig = { - schema: [ - { - [`${import.meta.env.VITE_SERVER_BASE_URL}/graphql`]: { - // some of the mutations and queries require authorization (people or companies) - // so to regenerate the schema with types we need to pass an auth token - headers: { - Authorization: `Bearer ${import.meta.env.AUTH_TOKEN}`, - }, - }, - }, - ], - overwrite: true, - documents: ['./src/**/*.ts', '!src/generated/**/*.*'], - generates: { - './src/generated/graphql.tsx': { - plugins: [ - 'typescript', - 'typescript-operations', - 'typescript-react-apollo', - ], - config: { - skipTypename: true, - withHooks: true, - withHOC: false, - withComponent: false, - }, - }, - }, -}; - -export default config; diff --git a/packages/twenty-chrome-extension/loading.html b/packages/twenty-chrome-extension/loading.html deleted file mode 100644 index b8bc0e0aa8e..00000000000 --- a/packages/twenty-chrome-extension/loading.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Twenty - - -
- - - diff --git a/packages/twenty-chrome-extension/package.json b/packages/twenty-chrome-extension/package.json deleted file mode 100644 index 935a06e8d68..00000000000 --- a/packages/twenty-chrome-extension/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "twenty-chrome-extension", - "description": "", - "private": true, - "version": "0.0.1", - "type": "module", - "scripts": { - "build": "npx vite build" - }, - "dependencies": { - "twenty-shared": "workspace:*" - } -} diff --git a/packages/twenty-chrome-extension/page-inaccessible.html b/packages/twenty-chrome-extension/page-inaccessible.html deleted file mode 100644 index c418bf7884e..00000000000 --- a/packages/twenty-chrome-extension/page-inaccessible.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Twenty - - -
- - - \ No newline at end of file diff --git a/packages/twenty-chrome-extension/project.json b/packages/twenty-chrome-extension/project.json deleted file mode 100644 index eb42f1ef6be..00000000000 --- a/packages/twenty-chrome-extension/project.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "name": "twenty-chrome-extension", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "projectType": "application", - "tags": ["scope:frontend"], - "targets": { - "build": { - "outputs": ["{options.outputPath}"], - "options": { - "outputPath": "{projectRoot}/dist" - }, - "dependsOn": ["^build"] - }, - "start": { - "executor": "nx:run-commands", - "dependsOn": ["build"], - "options": { - "cwd": "packages/twenty-chrome-extension", - "command": "VITE_MODE=development vite" - } - }, - "preview": { - "executor": "@nx/vite:preview-server", - "options": { - "buildTarget": "twenty-chrome-extension:build", - "port": 3002, - "open": true - } - }, - "reset:env": { - "executor": "nx:run-commands", - "inputs": ["{projectRoot}/.env.example"], - "outputs": ["{projectRoot}/.env"], - "cache": true, - "options": { - "cwd": "{projectRoot}", - "command": "cp .env.example .env" - } - }, - "typecheck": {}, - "lint": { - "options": { - "lintFilePatterns": [ - "{projectRoot}/src/**/*.{ts,tsx,json}", - "{projectRoot}/package.json" - ], - "maxWarnings": 0, - "reportUnusedDisableDirectives": "error" - }, - "configurations": { - "ci": { "eslintConfig": "{projectRoot}/.eslintrc-ci.cjs" }, - "fix": {} - } - }, - "fmt": { - "options": { - "files": "src" - }, - "configurations": { - "fix": {} - } - }, - "graphql:generate": { - "executor": "nx:run-commands", - "options": { - "cwd": "{projectRoot}", - "command": "graphql-codegen" - } - } - } -} diff --git a/packages/twenty-chrome-extension/public/light-noise.png b/packages/twenty-chrome-extension/public/light-noise.png deleted file mode 100644 index d7b3bc2c064..00000000000 Binary files a/packages/twenty-chrome-extension/public/light-noise.png and /dev/null differ diff --git a/packages/twenty-chrome-extension/public/logo/32-32.png b/packages/twenty-chrome-extension/public/logo/32-32.png deleted file mode 100644 index b3733570810..00000000000 Binary files a/packages/twenty-chrome-extension/public/logo/32-32.png and /dev/null differ diff --git a/packages/twenty-chrome-extension/public/logo/32-32.svg b/packages/twenty-chrome-extension/public/logo/32-32.svg deleted file mode 100644 index b5f1e311f5b..00000000000 Binary files a/packages/twenty-chrome-extension/public/logo/32-32.svg and /dev/null differ diff --git a/packages/twenty-chrome-extension/public/readme-images/01-img-one.png b/packages/twenty-chrome-extension/public/readme-images/01-img-one.png deleted file mode 100644 index 220d400ad54..00000000000 Binary files a/packages/twenty-chrome-extension/public/readme-images/01-img-one.png and /dev/null differ diff --git a/packages/twenty-chrome-extension/public/readme-images/02-img-two.png b/packages/twenty-chrome-extension/public/readme-images/02-img-two.png deleted file mode 100644 index a80e7adc1e9..00000000000 Binary files a/packages/twenty-chrome-extension/public/readme-images/02-img-two.png and /dev/null differ diff --git a/packages/twenty-chrome-extension/public/readme-images/03-img-three.png b/packages/twenty-chrome-extension/public/readme-images/03-img-three.png deleted file mode 100644 index 2bcc5ec06d8..00000000000 Binary files a/packages/twenty-chrome-extension/public/readme-images/03-img-three.png and /dev/null differ diff --git a/packages/twenty-chrome-extension/public/readme-images/04-img-four.png b/packages/twenty-chrome-extension/public/readme-images/04-img-four.png deleted file mode 100644 index eaea637fb96..00000000000 Binary files a/packages/twenty-chrome-extension/public/readme-images/04-img-four.png and /dev/null differ diff --git a/packages/twenty-chrome-extension/public/readme-images/05-img-five.png b/packages/twenty-chrome-extension/public/readme-images/05-img-five.png deleted file mode 100644 index ab88203cde4..00000000000 Binary files a/packages/twenty-chrome-extension/public/readme-images/05-img-five.png and /dev/null differ diff --git a/packages/twenty-chrome-extension/public/vite.svg b/packages/twenty-chrome-extension/public/vite.svg deleted file mode 100644 index e7b8dfb1b2a..00000000000 Binary files a/packages/twenty-chrome-extension/public/vite.svg and /dev/null differ diff --git a/packages/twenty-chrome-extension/sidepanel.html b/packages/twenty-chrome-extension/sidepanel.html deleted file mode 100644 index d167383f9cb..00000000000 --- a/packages/twenty-chrome-extension/sidepanel.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Twenty - - - - -
- - - \ No newline at end of file diff --git a/packages/twenty-chrome-extension/src/background/index.ts b/packages/twenty-chrome-extension/src/background/index.ts deleted file mode 100644 index d4d284753c3..00000000000 --- a/packages/twenty-chrome-extension/src/background/index.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { isDefined } from 'twenty-shared/utils'; -// Open options page programmatically in a new tab. -// chrome.runtime.onInstalled.addListener((details) => { -// if (details.reason === 'install') { -// openOptionsPage(); -// } -// }); - -chrome.sidePanel.setPanelBehavior({ openPanelOnActionClick: true }); - -// This listens for an event from other parts of the extension, such as the content script, and performs the required tasks. -// The cases themselves are labelled such that their operations are reflected by their names. -chrome.runtime.onMessage.addListener((message, _, sendResponse) => { - switch (message.action) { - case 'getActiveTab': { - // e.g. "https://linkedin.com/company/twenty/" - chrome.tabs.query({ active: true, currentWindow: true }, ([tab]) => { - if (isDefined(tab) && isDefined(tab.id)) { - sendResponse({ tab }); - } - }); - break; - } - case 'openSidepanel': { - chrome.tabs.query({ active: true, currentWindow: true }, ([tab]) => { - if (isDefined(tab) && isDefined(tab.id)) { - chrome.sidePanel.open({ tabId: tab.id }); - } - }); - break; - } - default: - break; - } - - return true; -}); - -chrome.tabs.onUpdated.addListener(async (tabId, _, tab) => { - const isDesiredRoute = - tab.url?.match(/^https?:\/\/(?:www\.)?linkedin\.com\/company(?:\/\S+)?/) || - tab.url?.match(/^https?:\/\/(?:www\.)?linkedin\.com\/in(?:\/\S+)?/); - - if (tab.active === true) { - if (isDefined(isDesiredRoute)) { - chrome.tabs.sendMessage(tabId, { action: 'executeContentScript' }); - } - } - - await chrome.sidePanel.setOptions({ - tabId, - path: tab.url?.match(/^https?:\/\/(?:www\.)?linkedin\.com/) - ? 'sidepanel.html' - : 'page-inaccessible.html', - enabled: true, - }); -}); - -const setTokenStateFromCookie = (cookie: string) => { - const decodedValue = decodeURIComponent(cookie); - const tokenPair = JSON.parse(decodedValue); - if (isDefined(tokenPair)) { - chrome.storage.local.set({ - isAuthenticated: true, - accessToken: tokenPair.accessOrWorkspaceAgnosticToken, - refreshToken: tokenPair.refreshToken, - }); - } -}; - -chrome.cookies.onChanged.addListener(async ({ cookie }) => { - if (cookie.name === 'tokenPair') { - const store = await chrome.storage.local.get(['clientUrl']); - const clientUrl = isDefined(store.clientUrl) - ? store.clientUrl - : import.meta.env.VITE_FRONT_BASE_URL; - chrome.cookies.get({ name: 'tokenPair', url: `${clientUrl}` }, (cookie) => { - if (isDefined(cookie)) { - setTokenStateFromCookie(cookie.value); - } - }); - } -}); - -// This will only run the very first time the extension loads, after we have stored the -// cookiesRead variable to true, this will not allow to change the token state everytime background script runs -chrome.cookies.get( - { name: 'tokenPair', url: `${import.meta.env.VITE_FRONT_BASE_URL}` }, - async (cookie) => { - const store = await chrome.storage.local.get(['cookiesRead']); - if (isDefined(cookie) && !isDefined(store.cookiesRead)) { - setTokenStateFromCookie(cookie.value); - chrome.storage.local.set({ cookiesRead: true }); - } - }, -); diff --git a/packages/twenty-chrome-extension/src/contentScript/createButton.ts b/packages/twenty-chrome-extension/src/contentScript/createButton.ts deleted file mode 100644 index f75737e88c3..00000000000 --- a/packages/twenty-chrome-extension/src/contentScript/createButton.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { isDefined } from 'twenty-shared/utils'; -interface CustomDiv extends HTMLDivElement { - onClickHandler: (newHandler: () => void) => void; -} - -export const createDefaultButton = ( - buttonId: string, - buttonText = '', -): CustomDiv => { - const btn = document.getElementById(buttonId) as CustomDiv; - if (isDefined(btn)) return btn; - const div = document.createElement('div') as CustomDiv; - const img = document.createElement('img'); - const span = document.createElement('span'); - - span.textContent = buttonText; - img.src = - 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACb0lEQVR4nO2VO4taQRTHr3AblbjxEVlwCwVhg7BoqqCIjy/gAyyFWNlYBOxsfH0KuxgQGwXRUkGuL2S7i1barGAgiwbdW93SnGOc4BonPiKahf3DwXFmuP/fPM4ZlvmlTxAhCBdzHnEQWYiv7Mr4C3NeuVYhQYDPzOUUQgDLBQGcLHNhvQK8DACPx8PTxiqVyvISG43GbyaT6Qfpn06n0m63e/tPAPF4vJ1MJu8kEsnWTCkWi1yr1RKGw+GDRqPBOTfr44vFQvD7/Q/lcpmaaVQAr9fLp1IpO22c47hGOBz+MB6PH+Vy+VYDAL8qlUoGtVotzOfzq4MAgsHgE/6KojiQyWR/bKVSqbSszHFM8Pl8z1YK48JsNltCOBwOnrYLO+8AAIjb+nHbycoTiUQfDJ7tFq4YAHiVSmXBxcD41u8flQU8z7fhzO0r83atVns3Go3u9Xr9x0O/RQXo9/tsIBBg6vX606a52Wz+bZ7P5/WwG29gxSJzhKgA6XTaDoFNF+krFAocmC//4yWEcSf2wTm7mCO19xFgSsKOLI16vV7b7XY7mRNoLwA0JymJ5uQIzgIAuX5PzDElT2m+E8BqtQ4ymcx7Yq7T6a6ZE4sKgOadTucaCwkxp1UzlEKh0GDxIXOwDWHAdi6Xe3swQDQa/Q7mywoolUpvsaptymazDWKxmBHTlWXZm405BFZoNpuGgwEmk4mE2SGtVivii4f1AO7J3ZopkQCQj7Ar1FeRChCJRJzVapX6DKNIfSc1Ax+wtQWQ55h6bH8FWDfYV4fO3wlwDr0C/BcADYiTPCxHqIEA2QsCZAkAKnRGkMbKN/sTX5YHPQ1e7SkAAAAASUVORK5CYII='; - img.height = 16; - img.width = 16; - img.alt = 'Twenty logo'; - - // Write universal styles for the button - const divStyles = { - border: '1px solid black', - borderRadius: '20px', - backgroundColor: 'black', - color: 'white', - fontWeight: '600', - fontSize: '1.5rem', - display: 'flex', - alignItems: 'center', - gap: '5px', - justifyContent: 'center', - padding: '0 1rem', - cursor: 'pointer', - height: '32px', - width: 'max-content', - }; - - Object.assign(div.style, divStyles); - - // Apply common styles to specifc states of a button. - div.addEventListener('mouseenter', () => { - const hoverStyles = { - //eslint-disable-next-line @nx/workspace-no-hardcoded-colors - backgroundColor: '#5e5e5e', - //eslint-disable-next-line @nx/workspace-no-hardcoded-colors - borderColor: '#5e5e5e', - }; - Object.assign(div.style, hoverStyles); - }); - - div.addEventListener('mouseleave', () => { - Object.assign(div.style, divStyles); - }); - - div.onClickHandler = (newHandler) => { - div.onclick = async () => { - const store = await chrome.storage.local.get(); - - // If an api key is not set, the options page opens up to allow the user to configure an api key. - if (!store.accessToken) { - chrome.runtime.sendMessage({ action: 'openSidepanel' }); - return; - } - newHandler(); - }; - }; - - div.id = buttonId; - - div.appendChild(img); - div.appendChild(span); - - return div; -}; diff --git a/packages/twenty-chrome-extension/src/contentScript/extractCompanyProfile.ts b/packages/twenty-chrome-extension/src/contentScript/extractCompanyProfile.ts deleted file mode 100644 index 7122668796f..00000000000 --- a/packages/twenty-chrome-extension/src/contentScript/extractCompanyProfile.ts +++ /dev/null @@ -1,126 +0,0 @@ -import { createDefaultButton } from '~/contentScript/createButton'; -import changeSidePanelUrl from '~/contentScript/utils/changeSidepanelUrl'; -import extractCompanyLinkedinLink from '~/contentScript/utils/extractCompanyLinkedinLink'; -import extractDomain from '~/contentScript/utils/extractDomain'; -import { createCompany, fetchCompany } from '~/db/company.db'; -import { CompanyInput } from '~/db/types/company.types'; -import { isDefined } from 'twenty-shared/utils'; - -export const checkIfCompanyExists = async () => { - const { tab: activeTab } = await chrome.runtime.sendMessage({ - action: 'getActiveTab', - }); - - const companyURL = extractCompanyLinkedinLink(activeTab.url); - - return await fetchCompany({ - linkedinLink: { - url: { eq: companyURL }, - label: { eq: companyURL }, - }, - }); -}; - -export const addCompany = async () => { - // Extract company-specific data from the DOM - const companyNameElement = document.querySelector( - '.org-top-card-summary__title', - ); - const domainNameElement = document.querySelector( - '.org-top-card-primary-actions__inner a', - ); - const addressElement = document.querySelectorAll( - '.org-top-card-summary-info-list__info-item', - )[1]; - const employeesNumberElement = document.querySelectorAll( - '.org-top-card-summary-info-list__info-item', - )[3]; - - // Get the text content or other necessary data from the DOM elements - const companyName = companyNameElement - ? companyNameElement.getAttribute('title') - : ''; - const domainName = extractDomain( - domainNameElement && domainNameElement.getAttribute('href'), - ); - const address = addressElement - ? addressElement.textContent?.trim().replace(/\s+/g, ' ') - : ''; - const employees = employeesNumberElement - ? Number( - employeesNumberElement.textContent - ?.trim() - .replace(/\s+/g, ' ') - .split('-')[0], - ) - : 0; - - // Prepare company data to send to the backend - const companyInputData: CompanyInput = { - name: companyName ?? '', - domainName: domainName, - address: address ?? '', - employees: employees, - }; - - // Extract active tab url using chrome API - an event is triggered here and is caught by background script. - const { tab: activeTab } = await chrome.runtime.sendMessage({ - action: 'getActiveTab', - }); - - // Convert URLs like https://www.linkedin.com/company/twenty/about/ to https://www.linkedin.com/company/twenty - const companyURL = extractCompanyLinkedinLink(activeTab.url); - companyInputData.linkedinLink = { url: companyURL, label: companyURL }; - - const companyId = await createCompany(companyInputData); - - if (isDefined(companyId)) { - await changeSidePanelUrl(`/object/company/${companyId}`); - } - - return companyId; -}; - -export const insertButtonForCompany = async () => { - const companyButtonDiv = createDefaultButton('twenty-company-btn'); - - const companyDiv: HTMLDivElement | null = document.querySelector( - '.org-top-card__primary-content', - ); - - if (isDefined(companyDiv)) { - Object.assign(companyButtonDiv.style, { - marginTop: '.8rem', - }); - companyDiv.parentElement?.append(companyButtonDiv); - } - - const companyButtonSpan = companyButtonDiv.getElementsByTagName('span')[0]; - const company = await checkIfCompanyExists(); - - const openCompanyOnSidePanel = (companyId: string) => { - companyButtonSpan.textContent = 'View in Twenty'; - companyButtonDiv.onClickHandler(async () => { - await changeSidePanelUrl(`/object/company/${companyId}`); - chrome.runtime.sendMessage({ action: 'openSidepanel' }); - }); - }; - - if (isDefined(company)) { - await changeSidePanelUrl(`/object/company/${company.id}`); - if (isDefined(company.id)) openCompanyOnSidePanel(company.id); - } else { - await changeSidePanelUrl(`/objects/companies`); - companyButtonSpan.textContent = 'Add to Twenty'; - - companyButtonDiv.onClickHandler(async () => { - companyButtonSpan.textContent = 'Saving...'; - const companyId = await addCompany(); - if (isDefined(companyId)) { - openCompanyOnSidePanel(companyId); - } else { - companyButtonSpan.textContent = 'Try again'; - } - }); - } -}; diff --git a/packages/twenty-chrome-extension/src/contentScript/extractPersonProfile.ts b/packages/twenty-chrome-extension/src/contentScript/extractPersonProfile.ts deleted file mode 100644 index 487f2dd367b..00000000000 --- a/packages/twenty-chrome-extension/src/contentScript/extractPersonProfile.ts +++ /dev/null @@ -1,133 +0,0 @@ -import { createDefaultButton } from '~/contentScript/createButton'; -import changeSidePanelUrl from '~/contentScript/utils/changeSidepanelUrl'; -import extractFirstAndLastName from '~/contentScript/utils/extractFirstAndLastName'; -import { createPerson, fetchPerson } from '~/db/person.db'; -import { PersonInput } from '~/db/types/person.types'; -import { isDefined } from 'twenty-shared/utils'; - -export const checkIfPersonExists = async () => { - const { tab: activeTab } = await chrome.runtime.sendMessage({ - action: 'getActiveTab', - }); - - let activeTabUrl = ''; - if (isDefined(activeTab.url.endsWith('/'))) { - activeTabUrl = activeTab.url.slice(0, -1); - } - - const personNameElement = document.querySelector('.text-heading-xlarge'); - const personName = personNameElement ? personNameElement.textContent : ''; - - const { firstName, lastName } = extractFirstAndLastName(String(personName)); - const person = await fetchPerson({ - name: { - firstName: { eq: firstName }, - lastName: { eq: lastName }, - }, - linkedinLink: { url: { eq: activeTabUrl }, label: { eq: activeTabUrl } }, - }); - return person; -}; - -export const addPerson = async () => { - const personNameElement = document.querySelector('.text-heading-xlarge'); - - const separatorElement = document.querySelector( - '.pv-text-details__separator', - ); - const personCityElement = separatorElement?.previousElementSibling; - - const profilePictureElement = document.querySelector( - '.pv-top-card-profile-picture__image', - ); - - const firstListItem = document.querySelector( - 'div[data-view-name="profile-component-entity"]', - ); - const secondDivElement = firstListItem?.querySelector('div:nth-child(2)'); - const ariaHiddenSpan = secondDivElement?.querySelector( - 'span[aria-hidden="true"]', - ); - - // Get the text content or other necessary data from the DOM elements. - const personName = personNameElement ? personNameElement.textContent : ''; - const personCity = personCityElement - ? personCityElement.textContent?.trim().replace(/\s+/g, ' ').split(',')[0] - : ''; - const profilePicture = profilePictureElement - ? profilePictureElement?.getAttribute('src') - : ''; - const jobTitle = ariaHiddenSpan ? ariaHiddenSpan.textContent?.trim() : ''; - - const { firstName, lastName } = extractFirstAndLastName(String(personName)); - - // Prepare person data to send to the backend. - const personData: PersonInput = { - name: { firstName, lastName }, - city: personCity ?? '', - avatarUrl: profilePicture ?? '', - jobTitle: jobTitle ?? '', - linkedinLink: { url: '', label: '' }, - }; - - // Extract active tab url using chrome API - an event is triggered here and is caught by background script. - const { tab: activeTab } = await chrome.runtime.sendMessage({ - action: 'getActiveTab', - }); - - let activeTabUrl = ''; - - // Remove last slash from the URL for consistency when saving usernames. - if (isDefined(activeTab.url.endsWith('/'))) { - activeTabUrl = activeTab.url.slice(0, -1); - } - - personData.linkedinLink = { url: activeTabUrl, label: activeTabUrl }; - const personId = await createPerson(personData); - - if (isDefined(personId)) { - await changeSidePanelUrl(`/object/person/${personId}`); - } - - return personId; -}; - -export const insertButtonForPerson = async () => { - const personButtonDiv = createDefaultButton('twenty-person-btn'); - - if (isDefined(personButtonDiv)) { - const addedProfileDiv = document.querySelector('.artdeco-card > .ph5'); - - if (isDefined(addedProfileDiv)) { - Object.assign(personButtonDiv.style, { - marginTop: '.8rem', - }); - addedProfileDiv.append(personButtonDiv); - } - - const personButtonSpan = personButtonDiv.getElementsByTagName('span')[0]; - const person = await checkIfPersonExists(); - - const openPersonOnSidePanel = (personId: string) => { - personButtonSpan.textContent = 'View in Twenty'; - personButtonDiv.onClickHandler(async () => { - await changeSidePanelUrl(`/object/person/${personId}`); - chrome.runtime.sendMessage({ action: 'openSidepanel' }); - }); - }; - - if (isDefined(person)) { - await changeSidePanelUrl(`/object/person/${person.id}`); - if (isDefined(person.id)) openPersonOnSidePanel(person.id); - } else { - await changeSidePanelUrl(`/objects/people`); - personButtonSpan.textContent = 'Add to Twenty'; - personButtonDiv.onClickHandler(async () => { - personButtonSpan.textContent = 'Saving...'; - const personId = await addPerson(); - if (isDefined(personId)) openPersonOnSidePanel(personId); - else personButtonSpan.textContent = 'Try again'; - }); - } - } -}; diff --git a/packages/twenty-chrome-extension/src/contentScript/index.ts b/packages/twenty-chrome-extension/src/contentScript/index.ts deleted file mode 100644 index 79110dbc435..00000000000 --- a/packages/twenty-chrome-extension/src/contentScript/index.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { insertButtonForCompany } from '~/contentScript/extractCompanyProfile'; -import { insertButtonForPerson } from '~/contentScript/extractPersonProfile'; -import { isDefined } from 'twenty-shared/utils'; - -// Inject buttons into the DOM when SPA is reloaded on the resource url. -// e.g. reload the page when on https://www.linkedin.com/in/mabdullahabaid/ -// await insertButtonForCompany(); - -const companyRoute = /^https?:\/\/(?:www\.)?linkedin\.com\/company(?:\/\S+)?/; -const personRoute = /^https?:\/\/(?:www\.)?linkedin\.com\/in(?:\/\S+)?/; - -const executeScript = async () => { - const loc = window.location.href; - switch (true) { - case companyRoute.test(loc): - await insertButtonForCompany(); - break; - case personRoute.test(loc): - await insertButtonForPerson(); - break; - default: - break; - } -}; - -// The content script gets executed upon load, so the the content script is executed when a user visits https://www.linkedin.com/feed/. -// However, there would never be another reload in a single page application unless triggered manually. -// Therefore, if the user navigates to a person or a company page, we must manually re-execute the content script to create the "Add to Twenty" button. -// e.g. create "Add to Twenty" button when a user navigates to https://www.linkedin.com/in/mabdullahabaid/ from https://www.linkedin.com/feed/ -chrome.runtime.onMessage.addListener(async (message, _, sendResponse) => { - if (message.action === 'executeContentScript') { - await executeScript(); - } - - sendResponse('Executing!'); -}); - -chrome.storage.local.onChanged.addListener(async (store) => { - if (isDefined(store.accessToken)) { - if (isDefined(store.accessToken.newValue)) { - await executeScript(); - } - } -}); diff --git a/packages/twenty-chrome-extension/src/contentScript/insertSettingsButton.ts b/packages/twenty-chrome-extension/src/contentScript/insertSettingsButton.ts deleted file mode 100644 index f0669edcb94..00000000000 --- a/packages/twenty-chrome-extension/src/contentScript/insertSettingsButton.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { isDefined } from 'twenty-shared/utils'; -const btn = document.getElementById('twenty-settings-btn'); -if (!isDefined(btn)) { - const div = document.createElement('div'); - const img = document.createElement('img'); - img.src = - 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACb0lEQVR4nO2VO4taQRTHr3AblbjxEVlwCwVhg7BoqqCIjy/gAyyFWNlYBOxsfH0KuxgQGwXRUkGuL2S7i1barGAgiwbdW93SnGOc4BonPiKahf3DwXFmuP/fPM4ZlvmlTxAhCBdzHnEQWYiv7Mr4C3NeuVYhQYDPzOUUQgDLBQGcLHNhvQK8DACPx8PTxiqVyvISG43GbyaT6Qfpn06n0m63e/tPAPF4vJ1MJu8kEsnWTCkWi1yr1RKGw+GDRqPBOTfr44vFQvD7/Q/lcpmaaVQAr9fLp1IpO22c47hGOBz+MB6PH+Vy+VYDAL8qlUoGtVotzOfzq4MAgsHgE/6KojiQyWR/bKVSqbSszHFM8Pl8z1YK48JsNltCOBwOnrYLO+8AAIjb+nHbycoTiUQfDJ7tFq4YAHiVSmXBxcD41u8flQU8z7fhzO0r83atVns3Go3u9Xr9x0O/RQXo9/tsIBBg6vX606a52Wz+bZ7P5/WwG29gxSJzhKgA6XTaDoFNF+krFAocmC//4yWEcSf2wTm7mCO19xFgSsKOLI16vV7b7XY7mRNoLwA0JymJ5uQIzgIAuX5PzDElT2m+E8BqtQ4ymcx7Yq7T6a6ZE4sKgOadTucaCwkxp1UzlEKh0GDxIXOwDWHAdi6Xe3swQDQa/Q7mywoolUpvsaptymazDWKxmBHTlWXZm405BFZoNpuGgwEmk4mE2SGtVivii4f1AO7J3ZopkQCQj7Ar1FeRChCJRJzVapX6DKNIfSc1Ax+wtQWQ55h6bH8FWDfYV4fO3wlwDr0C/BcADYiTPCxHqIEA2QsCZAkAKnRGkMbKN/sTX5YHPQ1e7SkAAAAASUVORK5CYII='; - img.height = 20; - img.width = 20; - img.alt = 'Twenty logo'; - - // Write universal styles for the button - const divStyles = { - border: '1px solid black', - borderRadius: '50%', - backgroundColor: 'black', - color: 'white', - fontWeight: '600', - fontSize: '1.5rem', - display: 'flex', - alignItems: 'center', - gap: '5px', - justifyContent: 'center', - padding: '0 1rem', - cursor: 'pointer', - height: '50px', - width: '50px', - position: 'fixed', - bottom: '80px', - right: '20px', - zIndex: '9999999999999999999999999', - }; - - div.addEventListener('mouseenter', () => { - const hoverStyles = { - //eslint-disable-next-line @nx/workspace-no-hardcoded-colors - backgroundColor: '#5e5e5e', - //eslint-disable-next-line @nx/workspace-no-hardcoded-colors - borderColor: '#5e5e5e', - }; - Object.assign(div.style, hoverStyles); - }); - - div.addEventListener('mouseleave', () => { - Object.assign(div.style, divStyles); - }); - - div.onclick = async () => { - chrome.runtime.sendMessage({ action: 'openSidepanel' }); - chrome.storage.local.set({ navigateSidepanel: 'settings' }); - }; - - div.appendChild(img); - - Object.assign(div.style, divStyles); - - document.body.appendChild(div); -} diff --git a/packages/twenty-chrome-extension/src/contentScript/utils/changeSidepanelUrl.ts b/packages/twenty-chrome-extension/src/contentScript/utils/changeSidepanelUrl.ts deleted file mode 100644 index c55a3cac8a8..00000000000 --- a/packages/twenty-chrome-extension/src/contentScript/utils/changeSidepanelUrl.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { isDefined } from 'twenty-shared/utils'; -const changeSidePanelUrl = async (url: string) => { - if (isDefined(url)) { - chrome.storage.local.set({ navigateSidepanel: 'sidepanel' }); - // we first clear the sidepanelUrl to trigger the onchange listener on sidepanel - // which will pass the post meessage to handle internal navigation of iframe - chrome.storage.local.set({ sidepanelUrl: '' }); - chrome.storage.local.set({ sidepanelUrl: url }); - } -}; - -export default changeSidePanelUrl; diff --git a/packages/twenty-chrome-extension/src/contentScript/utils/extractCompanyLinkedinLink.ts b/packages/twenty-chrome-extension/src/contentScript/utils/extractCompanyLinkedinLink.ts deleted file mode 100644 index 3f696f81e16..00000000000 --- a/packages/twenty-chrome-extension/src/contentScript/utils/extractCompanyLinkedinLink.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { isDefined } from 'twenty-shared/utils'; -// "https://www.linkedin.com/company/twenty/" "https://www.linkedin.com/company/twenty/about/" "https://www.linkedin.com/company/twenty/people/". -const extractCompanyLinkedinLink = (activeTabUrl: string) => { - // Regular expression to match the company ID - const regex = /\/company\/([^/]*)/; - - // Extract the company ID using the regex - const match = activeTabUrl.match(regex); - - if (isDefined(match) && isDefined(match[1])) { - const companyID = match[1]; - const cleanCompanyURL = `https://www.linkedin.com/company/${companyID}`; - return cleanCompanyURL; - } - - return ''; -}; - -export default extractCompanyLinkedinLink; diff --git a/packages/twenty-chrome-extension/src/contentScript/utils/extractDomain.ts b/packages/twenty-chrome-extension/src/contentScript/utils/extractDomain.ts deleted file mode 100644 index 82cce7853ba..00000000000 --- a/packages/twenty-chrome-extension/src/contentScript/utils/extractDomain.ts +++ /dev/null @@ -1,15 +0,0 @@ -const extractDomain = (url: string | null) => { - if (!url) return ''; - - const hostname = new URL(url).hostname; - let domain = hostname.replace('www.', ''); - - const parts = domain.split('.'); - if (parts.length > 2) { - domain = parts.slice(1).join('.'); - } - - return domain; -}; - -export default extractDomain; diff --git a/packages/twenty-chrome-extension/src/contentScript/utils/extractFirstAndLastName.ts b/packages/twenty-chrome-extension/src/contentScript/utils/extractFirstAndLastName.ts deleted file mode 100644 index 5074609e919..00000000000 --- a/packages/twenty-chrome-extension/src/contentScript/utils/extractFirstAndLastName.ts +++ /dev/null @@ -1,9 +0,0 @@ -// Separate first name and last name from a full name. -const extractFirstAndLastName = (fullName: string) => { - const spaceIndex = fullName.lastIndexOf(' '); - const firstName = fullName.substring(0, spaceIndex); - const lastName = fullName.substring(spaceIndex + 1); - return { firstName, lastName }; -}; - -export default extractFirstAndLastName; diff --git a/packages/twenty-chrome-extension/src/db/auth.db.ts b/packages/twenty-chrome-extension/src/db/auth.db.ts deleted file mode 100644 index ea01554f111..00000000000 --- a/packages/twenty-chrome-extension/src/db/auth.db.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { - ExchangeAuthCodeInput, - ExchangeAuthCodeResponse, - Tokens, -} from '~/db/types/auth.types'; -import { EXCHANGE_AUTHORIZATION_CODE } from '~/graphql/auth/mutations'; -import { callMutation } from '~/utils/requestDb'; -import { isDefined } from 'twenty-shared/utils'; - -export const exchangeAuthorizationCode = async ( - exchangeAuthCodeInput: ExchangeAuthCodeInput, -): Promise => { - const data = await callMutation( - EXCHANGE_AUTHORIZATION_CODE, - exchangeAuthCodeInput, - ); - if (isDefined(data?.exchangeAuthorizationCode)) - return data.exchangeAuthorizationCode; - else return null; -}; diff --git a/packages/twenty-chrome-extension/src/db/company.db.ts b/packages/twenty-chrome-extension/src/db/company.db.ts deleted file mode 100644 index 39c27430015..00000000000 --- a/packages/twenty-chrome-extension/src/db/company.db.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { - CompanyInput, - CreateCompanyResponse, - FindCompanyResponse, -} from '~/db/types/company.types'; -import { Company, CompanyFilterInput } from '~/generated/graphql'; -import { CREATE_COMPANY } from '~/graphql/company/mutations'; -import { FIND_COMPANY } from '~/graphql/company/queries'; - -import { callMutation, callQuery } from '../utils/requestDb'; -import { isDefined } from 'twenty-shared/utils'; - -export const fetchCompany = async ( - companyfilerInput: CompanyFilterInput, -): Promise => { - const data = await callQuery(FIND_COMPANY, { - filter: { - ...companyfilerInput, - }, - }); - if (isDefined(data?.companies.edges)) { - return data.companies.edges.length > 0 - ? isDefined(data.companies.edges[0].node) - ? data.companies.edges[0].node - : null - : null; - } - return null; -}; - -export const createCompany = async ( - company: CompanyInput, -): Promise => { - const data = await callMutation(CREATE_COMPANY, { - input: company, - }); - if (isDefined(data)) { - return data.createCompany.id; - } - return null; -}; diff --git a/packages/twenty-chrome-extension/src/db/person.db.ts b/packages/twenty-chrome-extension/src/db/person.db.ts deleted file mode 100644 index 9680c6a52ac..00000000000 --- a/packages/twenty-chrome-extension/src/db/person.db.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { - CreatePersonResponse, - FindPersonResponse, - PersonInput, -} from '~/db/types/person.types'; -import { Person, PersonFilterInput } from '~/generated/graphql'; -import { CREATE_PERSON } from '~/graphql/person/mutations'; -import { FIND_PERSON } from '~/graphql/person/queries'; - -import { callMutation, callQuery } from '../utils/requestDb'; -import { isDefined } from 'twenty-shared/utils'; - -export const fetchPerson = async ( - personFilterData: PersonFilterInput, -): Promise => { - const data = await callQuery(FIND_PERSON, { - filter: { - ...personFilterData, - }, - }); - if (isDefined(data?.people.edges)) { - return data.people.edges.length > 0 - ? isDefined(data.people.edges[0].node) - ? data.people.edges[0].node - : null - : null; - } - return null; -}; - -export const createPerson = async ( - person: PersonInput, -): Promise => { - const data = await callMutation(CREATE_PERSON, { - input: person, - }); - if (isDefined(data?.createPerson)) { - return data.createPerson.id; - } - return null; -}; diff --git a/packages/twenty-chrome-extension/src/db/token.db.ts b/packages/twenty-chrome-extension/src/db/token.db.ts deleted file mode 100644 index d3d25d75e8f..00000000000 --- a/packages/twenty-chrome-extension/src/db/token.db.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { ApolloClient, InMemoryCache } from '@apollo/client'; -import { Tokens } from '~/db/types/auth.types'; -import { RENEW_TOKEN } from '~/graphql/auth/mutations'; -import { isDefined } from 'twenty-shared/utils'; - -export const renewToken = async ( - appToken: string, -): Promise<{ renewToken: { tokens: Tokens } } | null> => { - const store = await chrome.storage.local.get(); - const serverUrl = `${ - isDefined(store.serverBaseUrl) - ? store.serverBaseUrl - : import.meta.env.VITE_SERVER_BASE_URL - }/graphql`; - - // Create new client to call refresh token graphql mutation - const client = new ApolloClient({ - uri: serverUrl, - cache: new InMemoryCache({}), - }); - - const { data } = await client.mutate({ - mutation: RENEW_TOKEN, - variables: { - appToken, - }, - fetchPolicy: 'network-only', - }); - - if (isDefined(data)) { - return data; - } else { - return null; - } -}; diff --git a/packages/twenty-chrome-extension/src/db/types/auth.types.ts b/packages/twenty-chrome-extension/src/db/types/auth.types.ts deleted file mode 100644 index 82853ac5e33..00000000000 --- a/packages/twenty-chrome-extension/src/db/types/auth.types.ts +++ /dev/null @@ -1,20 +0,0 @@ -export type AuthToken = { - token: string; - expiresAt: Date; -}; - -export type ExchangeAuthCodeInput = { - authorizationCode: string; - codeVerifier?: string; - clientSecret?: string; -}; - -export type Tokens = { - loginToken: AuthToken; - accessOrWorkspaceAgnosticToken: AuthToken; - refreshToken: AuthToken; -}; - -export type ExchangeAuthCodeResponse = { - exchangeAuthorizationCode: Tokens; -}; diff --git a/packages/twenty-chrome-extension/src/db/types/company.types.ts b/packages/twenty-chrome-extension/src/db/types/company.types.ts deleted file mode 100644 index f6c1241652f..00000000000 --- a/packages/twenty-chrome-extension/src/db/types/company.types.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Company, CompanyConnection } from '~/generated/graphql'; - -export type CompanyInput = Pick< - Company, - 'name' | 'domainName' | 'address' | 'employees' | 'linkedinLink' ->; -export type FindCompanyResponse = { - companies: Pick; -}; -export type CreateCompanyResponse = { createCompany: { id: string } }; diff --git a/packages/twenty-chrome-extension/src/db/types/person.types.ts b/packages/twenty-chrome-extension/src/db/types/person.types.ts deleted file mode 100644 index 914240eb144..00000000000 --- a/packages/twenty-chrome-extension/src/db/types/person.types.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Person, PersonConnection } from '~/generated/graphql'; - -export type PersonInput = Pick< - Person, - 'name' | 'city' | 'avatarUrl' | 'jobTitle' | 'linkedinLink' ->; -export type FindPersonResponse = { people: Pick }; -export type CreatePersonResponse = { createPerson: { id: string } }; diff --git a/packages/twenty-chrome-extension/src/generated/graphql.tsx b/packages/twenty-chrome-extension/src/generated/graphql.tsx deleted file mode 100644 index 64ebea47f5b..00000000000 --- a/packages/twenty-chrome-extension/src/generated/graphql.tsx +++ /dev/null @@ -1,8172 +0,0 @@ -import * as Apollo from '@apollo/client'; -import { gql } from '@apollo/client'; -export type Maybe = T | null; -export type InputMaybe = Maybe; -export type Exact = { [K in keyof T]: T[K] }; -export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; -export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; -const defaultOptions = {} as const; -/** All built-in and custom scalars, mapped to their actual values */ -export type Scalars = { - ID: string; - String: string; - Boolean: boolean; - Int: number; - Float: number; - BigFloat: any; - ConnectionCursor: any; - Cursor: any; - Date: any; - DateTime: any; - JSON: any; - Position: any; - RawJSONScalar: any; - UUID: any; - Upload: any; -}; - -export type ActivateWorkspaceInput = { - displayName?: InputMaybe; -}; - -/** An activity */ -export type Activity = { - /** Activity targets */ - activityTargets?: Maybe; - /** Activity assignee */ - assignee?: Maybe; - /** Activity assignee id foreign key */ - assigneeId?: Maybe; - /** Activity attachments */ - attachments?: Maybe; - /** Activity author */ - author?: Maybe; - /** Activity author id foreign key */ - authorId?: Maybe; - /** Activity body */ - body?: Maybe; - /** Activity comments */ - comments?: Maybe; - /** Activity completion date */ - completedAt?: Maybe; - /** Creation date */ - createdAt?: Maybe; - /** Activity due date */ - dueAt?: Maybe; - /** Id */ - id?: Maybe; - /** Activity reminder date */ - reminderAt?: Maybe; - /** Activity title */ - title?: Maybe; - /** Activity type */ - type?: Maybe; - /** Update date */ - updatedAt?: Maybe; -}; - - -/** An activity */ -export type ActivityActivityTargetsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** An activity */ -export type ActivityAttachmentsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** An activity */ -export type ActivityCommentsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - -/** An activity */ -export type ActivityConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** An activity */ -export type ActivityCreateInput = { - /** Activity assignee id foreign key */ - assigneeId?: InputMaybe; - /** Activity author id foreign key */ - authorId?: InputMaybe; - /** Activity body */ - body?: InputMaybe; - /** Activity completion date */ - completedAt?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Activity due date */ - dueAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Activity reminder date */ - reminderAt?: InputMaybe; - /** Activity title */ - title?: InputMaybe; - /** Activity type */ - type?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** An activity */ -export type ActivityEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** An activity */ -export type ActivityFilterInput = { - and?: InputMaybe>>; - /** Activity assignee id foreign key */ - assigneeId?: InputMaybe; - /** Activity author id foreign key */ - authorId?: InputMaybe; - /** Activity body */ - body?: InputMaybe; - /** Activity completion date */ - completedAt?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Activity due date */ - dueAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** Activity reminder date */ - reminderAt?: InputMaybe; - /** Activity title */ - title?: InputMaybe; - /** Activity type */ - type?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** An activity */ -export type ActivityOrderByInput = { - /** Activity assignee id foreign key */ - assigneeId?: InputMaybe; - /** Activity author id foreign key */ - authorId?: InputMaybe; - /** Activity body */ - body?: InputMaybe; - /** Activity completion date */ - completedAt?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Activity due date */ - dueAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Activity reminder date */ - reminderAt?: InputMaybe; - /** Activity title */ - title?: InputMaybe; - /** Activity type */ - type?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** An activity target */ -export type ActivityTarget = { - /** ActivityTarget activity */ - activity?: Maybe; - /** ActivityTarget activity id foreign key */ - activityId?: Maybe; - /** ActivityTarget company */ - company?: Maybe; - /** ActivityTarget company id foreign key */ - companyId?: Maybe; - /** Creation date */ - createdAt?: Maybe; - /** Id */ - id?: Maybe; - /** ActivityTarget opportunity */ - opportunity?: Maybe; - /** ActivityTarget opportunity id foreign key */ - opportunityId?: Maybe; - /** ActivityTarget person */ - person?: Maybe; - /** ActivityTarget person id foreign key */ - personId?: Maybe; - /** Update date */ - updatedAt?: Maybe; -}; - -/** An activity target */ -export type ActivityTargetConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** An activity target */ -export type ActivityTargetCreateInput = { - /** ActivityTarget activity id foreign key */ - activityId?: InputMaybe; - /** ActivityTarget company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** ActivityTarget opportunity id foreign key */ - opportunityId?: InputMaybe; - /** ActivityTarget person id foreign key */ - personId?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** An activity target */ -export type ActivityTargetEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** An activity target */ -export type ActivityTargetFilterInput = { - /** ActivityTarget activity id foreign key */ - activityId?: InputMaybe; - and?: InputMaybe>>; - /** ActivityTarget company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - not?: InputMaybe; - /** ActivityTarget opportunity id foreign key */ - opportunityId?: InputMaybe; - or?: InputMaybe>>; - /** ActivityTarget person id foreign key */ - personId?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** An activity target */ -export type ActivityTargetOrderByInput = { - /** ActivityTarget activity id foreign key */ - activityId?: InputMaybe; - /** ActivityTarget company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** ActivityTarget opportunity id foreign key */ - opportunityId?: InputMaybe; - /** ActivityTarget person id foreign key */ - personId?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** An activity target */ -export type ActivityTargetUpdateInput = { - /** ActivityTarget activity id foreign key */ - activityId?: InputMaybe; - /** ActivityTarget company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** ActivityTarget opportunity id foreign key */ - opportunityId?: InputMaybe; - /** ActivityTarget person id foreign key */ - personId?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** An activity */ -export type ActivityUpdateInput = { - /** Activity assignee id foreign key */ - assigneeId?: InputMaybe; - /** Activity author id foreign key */ - authorId?: InputMaybe; - /** Activity body */ - body?: InputMaybe; - /** Activity completion date */ - completedAt?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Activity due date */ - dueAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Activity reminder date */ - reminderAt?: InputMaybe; - /** Activity title */ - title?: InputMaybe; - /** Activity type */ - type?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -export type Address = { - addressCity?: Maybe; - addressCountry?: Maybe; - addressLat?: Maybe; - addressLng?: Maybe; - addressPostcode?: Maybe; - addressState?: Maybe; - addressStreet1?: Maybe; - addressStreet2?: Maybe; -}; - -export type AddressCreateInput = { - addressCity?: InputMaybe; - addressCountry?: InputMaybe; - addressLat?: InputMaybe; - addressLng?: InputMaybe; - addressPostcode?: InputMaybe; - addressState?: InputMaybe; - addressStreet1?: InputMaybe; - addressStreet2?: InputMaybe; -}; - -export type AddressFilterInput = { - addressCity?: InputMaybe; - addressCountry?: InputMaybe; - addressLat?: InputMaybe; - addressLng?: InputMaybe; - addressPostcode?: InputMaybe; - addressState?: InputMaybe; - addressStreet1?: InputMaybe; - addressStreet2?: InputMaybe; -}; - -export type AddressOrderByInput = { - addressCity?: InputMaybe; - addressCountry?: InputMaybe; - addressLat?: InputMaybe; - addressLng?: InputMaybe; - addressPostcode?: InputMaybe; - addressState?: InputMaybe; - addressStreet1?: InputMaybe; - addressStreet2?: InputMaybe; -}; - -export type AddressUpdateInput = { - addressCity?: InputMaybe; - addressCountry?: InputMaybe; - addressLat?: InputMaybe; - addressLng?: InputMaybe; - addressPostcode?: InputMaybe; - addressState?: InputMaybe; - addressStreet1?: InputMaybe; - addressStreet2?: InputMaybe; -}; - -export type Analytics = { - /** Boolean that confirms query was dispatched */ - success: Scalars['Boolean']; -}; - -export type ApiConfig = { - mutationMaximumAffectedRecords: Scalars['Float']; -}; - -/** An api key */ -export type ApiKey = { - /** Creation date */ - createdAt?: Maybe; - /** ApiKey expiration date */ - expiresAt?: Maybe; - /** Id */ - id?: Maybe; - /** ApiKey name */ - name?: Maybe; - /** ApiKey revocation date */ - revokedAt?: Maybe; - /** Update date */ - updatedAt?: Maybe; -}; - -/** An api key */ -export type ApiKeyConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** An api key */ -export type ApiKeyCreateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** ApiKey expiration date */ - expiresAt: Scalars['DateTime']; - /** Id */ - id?: InputMaybe; - /** ApiKey name */ - name?: InputMaybe; - /** ApiKey revocation date */ - revokedAt?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** An api key */ -export type ApiKeyEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** An api key */ -export type ApiKeyFilterInput = { - and?: InputMaybe>>; - /** Creation date */ - createdAt?: InputMaybe; - /** ApiKey expiration date */ - expiresAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** ApiKey name */ - name?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** ApiKey revocation date */ - revokedAt?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** An api key */ -export type ApiKeyOrderByInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** ApiKey expiration date */ - expiresAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** ApiKey name */ - name?: InputMaybe; - /** ApiKey revocation date */ - revokedAt?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -export type ApiKeyToken = { - token: Scalars['String']; -}; - -/** An api key */ -export type ApiKeyUpdateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** ApiKey expiration date */ - expiresAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** ApiKey name */ - name?: InputMaybe; - /** ApiKey revocation date */ - revokedAt?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -export type AppToken = { - createdAt: Scalars['DateTime']; - expiresAt: Scalars['DateTime']; - id: Scalars['UUID']; - type: Scalars['String']; - updatedAt: Scalars['DateTime']; -}; - -export type AppTokenEdge = { - /** Cursor for this node. */ - cursor: Scalars['ConnectionCursor']; - /** The node containing the AppToken */ - node: AppToken; -}; - -/** An attachment */ -export type Attachment = { - /** Attachment activity */ - activity?: Maybe; - /** Attachment activity id foreign key */ - activityId?: Maybe; - /** Attachment author */ - author?: Maybe; - /** Attachment author id foreign key */ - authorId?: Maybe; - /** Attachment company */ - company?: Maybe; - /** Attachment company id foreign key */ - companyId?: Maybe; - /** Creation date */ - createdAt?: Maybe; - /** Attachment full path */ - fullPath?: Maybe; - /** Id */ - id?: Maybe; - /** Attachment name */ - name?: Maybe; - /** Attachment opportunity */ - opportunity?: Maybe; - /** Attachment opportunity id foreign key */ - opportunityId?: Maybe; - /** Attachment person */ - person?: Maybe; - /** Attachment person id foreign key */ - personId?: Maybe; - /** Attachment type */ - type?: Maybe; - /** Update date */ - updatedAt?: Maybe; -}; - -/** An attachment */ -export type AttachmentConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** An attachment */ -export type AttachmentCreateInput = { - /** Attachment activity id foreign key */ - activityId?: InputMaybe; - /** Attachment author id foreign key */ - authorId: Scalars['UUID']; - /** Attachment company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Attachment full path */ - fullPath?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Attachment name */ - name?: InputMaybe; - /** Attachment opportunity id foreign key */ - opportunityId?: InputMaybe; - /** Attachment person id foreign key */ - personId?: InputMaybe; - /** Attachment type */ - type?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** An attachment */ -export type AttachmentEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** An attachment */ -export type AttachmentFilterInput = { - /** Attachment activity id foreign key */ - activityId?: InputMaybe; - and?: InputMaybe>>; - /** Attachment author id foreign key */ - authorId?: InputMaybe; - /** Attachment company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Attachment full path */ - fullPath?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Attachment name */ - name?: InputMaybe; - not?: InputMaybe; - /** Attachment opportunity id foreign key */ - opportunityId?: InputMaybe; - or?: InputMaybe>>; - /** Attachment person id foreign key */ - personId?: InputMaybe; - /** Attachment type */ - type?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** An attachment */ -export type AttachmentOrderByInput = { - /** Attachment activity id foreign key */ - activityId?: InputMaybe; - /** Attachment author id foreign key */ - authorId?: InputMaybe; - /** Attachment company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Attachment full path */ - fullPath?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Attachment name */ - name?: InputMaybe; - /** Attachment opportunity id foreign key */ - opportunityId?: InputMaybe; - /** Attachment person id foreign key */ - personId?: InputMaybe; - /** Attachment type */ - type?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** An attachment */ -export type AttachmentUpdateInput = { - /** Attachment activity id foreign key */ - activityId?: InputMaybe; - /** Attachment author id foreign key */ - authorId?: InputMaybe; - /** Attachment company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Attachment full path */ - fullPath?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Attachment name */ - name?: InputMaybe; - /** Attachment opportunity id foreign key */ - opportunityId?: InputMaybe; - /** Attachment person id foreign key */ - personId?: InputMaybe; - /** Attachment type */ - type?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** An audit log of actions performed in the system */ -export type AuditLog = { - /** Json object to provide context (user, device, workspace, etc.) */ - context?: Maybe; - /** Creation date */ - createdAt?: Maybe; - /** Id */ - id?: Maybe; - /** Event name/type */ - name?: Maybe; - /** If the event is related to a particular object */ - objectMetadataId?: Maybe; - /** If the event is related to a particular object */ - objectName?: Maybe; - /** Json value for event details */ - properties?: Maybe; - /** Event name/type */ - recordId?: Maybe; - /** Update date */ - updatedAt?: Maybe; - /** Event workspace member */ - workspaceMember?: Maybe; - /** Event workspace member id foreign key */ - workspaceMemberId?: Maybe; -}; - -/** An audit log of actions performed in the system */ -export type AuditLogConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** An audit log of actions performed in the system */ -export type AuditLogCreateInput = { - /** Json object to provide context (user, device, workspace, etc.) */ - context?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Event name/type */ - name?: InputMaybe; - /** If the event is related to a particular object */ - objectMetadataId?: InputMaybe; - /** If the event is related to a particular object */ - objectName?: InputMaybe; - /** Json value for event details */ - properties?: InputMaybe; - /** Event name/type */ - recordId?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Event workspace member id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -/** An audit log of actions performed in the system */ -export type AuditLogEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** An audit log of actions performed in the system */ -export type AuditLogFilterInput = { - and?: InputMaybe>>; - /** Json object to provide context (user, device, workspace, etc.) */ - context?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Event name/type */ - name?: InputMaybe; - not?: InputMaybe; - /** If the event is related to a particular object */ - objectMetadataId?: InputMaybe; - /** If the event is related to a particular object */ - objectName?: InputMaybe; - or?: InputMaybe>>; - /** Json value for event details */ - properties?: InputMaybe; - /** Event name/type */ - recordId?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Event workspace member id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -/** An audit log of actions performed in the system */ -export type AuditLogOrderByInput = { - /** Json object to provide context (user, device, workspace, etc.) */ - context?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Event name/type */ - name?: InputMaybe; - /** If the event is related to a particular object */ - objectMetadataId?: InputMaybe; - /** If the event is related to a particular object */ - objectName?: InputMaybe; - /** Json value for event details */ - properties?: InputMaybe; - /** Event name/type */ - recordId?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Event workspace member id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -/** An audit log of actions performed in the system */ -export type AuditLogUpdateInput = { - /** Json object to provide context (user, device, workspace, etc.) */ - context?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Event name/type */ - name?: InputMaybe; - /** If the event is related to a particular object */ - objectMetadataId?: InputMaybe; - /** If the event is related to a particular object */ - objectName?: InputMaybe; - /** Json value for event details */ - properties?: InputMaybe; - /** Event name/type */ - recordId?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Event workspace member id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -export type AuthProviders = { - google: Scalars['Boolean']; - magicLink: Scalars['Boolean']; - microsoft: Scalars['Boolean']; - password: Scalars['Boolean']; -}; - -export type AuthToken = { - expiresAt: Scalars['DateTime']; - token: Scalars['String']; -}; - -export type AuthTokenPair = { - accessOrWorkspaceAgnosticToken: AuthToken; - refreshToken: AuthToken; -}; - -export type AuthTokens = { - tokens: AuthTokenPair; -}; - -export type AuthorizeApp = { - redirectUrl: Scalars['String']; -}; - -export type BigFloatFilter = { - eq?: InputMaybe; - gt?: InputMaybe; - gte?: InputMaybe; - in?: InputMaybe>; - is?: InputMaybe; - lt?: InputMaybe; - lte?: InputMaybe; - neq?: InputMaybe; -}; - -export type Billing = { - billingFreeTrialDurationInDays?: Maybe; - billingUrl?: Maybe; - isBillingEnabled: Scalars['Boolean']; -}; - -export type BillingSubscription = { - id: Scalars['UUID']; - interval?: Maybe; - status: SubscriptionStatus; -}; - -export type BillingSubscriptionFilter = { - and?: InputMaybe>; - id?: InputMaybe; - or?: InputMaybe>; -}; - -export type BillingSubscriptionSort = { - direction: SortDirection; - field: BillingSubscriptionSortFields; - nulls?: InputMaybe; -}; - -export enum BillingSubscriptionSortFields { - Id = 'id' -} - -/** Blocklist */ -export type Blocklist = { - /** Creation date */ - createdAt?: Maybe; - /** Handle */ - handle?: Maybe; - /** Id */ - id?: Maybe; - /** Update date */ - updatedAt?: Maybe; - /** WorkspaceMember */ - workspaceMember?: Maybe; - /** WorkspaceMember id foreign key */ - workspaceMemberId?: Maybe; -}; - -/** Blocklist */ -export type BlocklistConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** Blocklist */ -export type BlocklistCreateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** WorkspaceMember id foreign key */ - workspaceMemberId: Scalars['UUID']; -}; - -/** Blocklist */ -export type BlocklistEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** Blocklist */ -export type BlocklistFilterInput = { - and?: InputMaybe>>; - /** Creation date */ - createdAt?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** Update date */ - updatedAt?: InputMaybe; - /** WorkspaceMember id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -/** Blocklist */ -export type BlocklistOrderByInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** WorkspaceMember id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -/** Blocklist */ -export type BlocklistUpdateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** WorkspaceMember id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -export type BooleanFieldComparison = { - is?: InputMaybe; - isNot?: InputMaybe; -}; - -export type BooleanFilter = { - eq?: InputMaybe; - is?: InputMaybe; -}; - -/** Calendar Channels */ -export type CalendarChannel = { - /** Calendar Channel Event Associations */ - calendarChannelEventAssociations?: Maybe; - /** Connected Account */ - connectedAccount?: Maybe; - /** Connected Account id foreign key */ - connectedAccountId?: Maybe; - /** Automatically create records for people you participated with in an event. */ - contactAutoCreationPolicy?: Maybe; - /** Creation date */ - createdAt?: Maybe; - /** Handle */ - handle?: Maybe; - /** Id */ - id?: Maybe; - /** Is Contact Auto Creation Enabled */ - isContactAutoCreationEnabled?: Maybe; - /** Is Sync Enabled */ - isSyncEnabled?: Maybe; - /** Sync Cursor. Used for syncing events from the calendar provider */ - syncCursor?: Maybe; - /** Sync stage */ - syncStage?: Maybe; - /** Sync stage started at */ - syncStageStartedAt?: Maybe; - /** Sync status */ - syncStatus?: Maybe; - /** Throttle Failure Count */ - throttleFailureCount?: Maybe; - /** Update date */ - updatedAt?: Maybe; - /** Visibility */ - visibility?: Maybe; -}; - - -/** Calendar Channels */ -export type CalendarChannelCalendarChannelEventAssociationsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - -/** Calendar Channels */ -export type CalendarChannelConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** Automatically create records for people you participated with in an event. */ -export enum CalendarChannelContactAutoCreationPolicyEnum { - /** As Organizer */ - AsOrganizer = 'AS_ORGANIZER', - /** As Participant */ - AsParticipant = 'AS_PARTICIPANT', - /** As Participant and Organizer */ - AsParticipantAndOrganizer = 'AS_PARTICIPANT_AND_ORGANIZER', - /** None */ - None = 'NONE' -} - -export type CalendarChannelContactAutoCreationPolicyEnumFilter = { - eq?: InputMaybe; - in?: InputMaybe>>; - is?: InputMaybe; - neq?: InputMaybe; -}; - -/** Calendar Channels */ -export type CalendarChannelCreateInput = { - /** Connected Account id foreign key */ - connectedAccountId: Scalars['UUID']; - /** Automatically create records for people you participated with in an event. */ - contactAutoCreationPolicy?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Is Contact Auto Creation Enabled */ - isContactAutoCreationEnabled?: InputMaybe; - /** Is Sync Enabled */ - isSyncEnabled?: InputMaybe; - /** Sync Cursor. Used for syncing events from the calendar provider */ - syncCursor?: InputMaybe; - /** Sync stage */ - syncStage?: InputMaybe; - /** Sync stage started at */ - syncStageStartedAt?: InputMaybe; - /** Sync status */ - syncStatus?: InputMaybe; - /** Throttle Failure Count */ - throttleFailureCount?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Visibility */ - visibility?: InputMaybe; -}; - -/** Calendar Channels */ -export type CalendarChannelEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** Calendar Channel Event Associations */ -export type CalendarChannelEventAssociation = { - /** Channel ID */ - calendarChannel?: Maybe; - /** Channel ID id foreign key */ - calendarChannelId?: Maybe; - /** Event ID */ - calendarEvent?: Maybe; - /** Event ID id foreign key */ - calendarEventId?: Maybe; - /** Creation date */ - createdAt?: Maybe; - /** Event external ID */ - eventExternalId?: Maybe; - /** Id */ - id?: Maybe; - /** Update date */ - updatedAt?: Maybe; -}; - -/** Calendar Channel Event Associations */ -export type CalendarChannelEventAssociationConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** Calendar Channel Event Associations */ -export type CalendarChannelEventAssociationCreateInput = { - /** Channel ID id foreign key */ - calendarChannelId: Scalars['UUID']; - /** Event ID id foreign key */ - calendarEventId: Scalars['UUID']; - /** Creation date */ - createdAt?: InputMaybe; - /** Event external ID */ - eventExternalId?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** Calendar Channel Event Associations */ -export type CalendarChannelEventAssociationEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** Calendar Channel Event Associations */ -export type CalendarChannelEventAssociationFilterInput = { - and?: InputMaybe>>; - /** Channel ID id foreign key */ - calendarChannelId?: InputMaybe; - /** Event ID id foreign key */ - calendarEventId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Event external ID */ - eventExternalId?: InputMaybe; - /** Id */ - id?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** Calendar Channel Event Associations */ -export type CalendarChannelEventAssociationOrderByInput = { - /** Channel ID id foreign key */ - calendarChannelId?: InputMaybe; - /** Event ID id foreign key */ - calendarEventId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Event external ID */ - eventExternalId?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** Calendar Channel Event Associations */ -export type CalendarChannelEventAssociationUpdateInput = { - /** Channel ID id foreign key */ - calendarChannelId?: InputMaybe; - /** Event ID id foreign key */ - calendarEventId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Event external ID */ - eventExternalId?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** Calendar Channels */ -export type CalendarChannelFilterInput = { - and?: InputMaybe>>; - /** Connected Account id foreign key */ - connectedAccountId?: InputMaybe; - /** Automatically create records for people you participated with in an event. */ - contactAutoCreationPolicy?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Is Contact Auto Creation Enabled */ - isContactAutoCreationEnabled?: InputMaybe; - /** Is Sync Enabled */ - isSyncEnabled?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** Sync Cursor. Used for syncing events from the calendar provider */ - syncCursor?: InputMaybe; - /** Sync stage */ - syncStage?: InputMaybe; - /** Sync stage started at */ - syncStageStartedAt?: InputMaybe; - /** Sync status */ - syncStatus?: InputMaybe; - /** Throttle Failure Count */ - throttleFailureCount?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Visibility */ - visibility?: InputMaybe; -}; - -/** Calendar Channels */ -export type CalendarChannelOrderByInput = { - /** Connected Account id foreign key */ - connectedAccountId?: InputMaybe; - /** Automatically create records for people you participated with in an event. */ - contactAutoCreationPolicy?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Is Contact Auto Creation Enabled */ - isContactAutoCreationEnabled?: InputMaybe; - /** Is Sync Enabled */ - isSyncEnabled?: InputMaybe; - /** Sync Cursor. Used for syncing events from the calendar provider */ - syncCursor?: InputMaybe; - /** Sync stage */ - syncStage?: InputMaybe; - /** Sync stage started at */ - syncStageStartedAt?: InputMaybe; - /** Sync status */ - syncStatus?: InputMaybe; - /** Throttle Failure Count */ - throttleFailureCount?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Visibility */ - visibility?: InputMaybe; -}; - -/** Sync stage */ -export enum CalendarChannelSyncStageEnum { - /** Calendar events import ongoing */ - CalendarEventsImportOngoing = 'CALENDAR_EVENTS_IMPORT_ONGOING', - /** Calendar events import pending */ - CalendarEventsImportPending = 'CALENDAR_EVENTS_IMPORT_PENDING', - /** Calendar event list fetch ongoing */ - CalendarEventListFetchOngoing = 'CALENDAR_EVENT_LIST_FETCH_ONGOING', - /** Failed */ - Failed = 'FAILED', - /** Full calendar event list fetch pending */ - FullCalendarEventListFetchPending = 'FULL_CALENDAR_EVENT_LIST_FETCH_PENDING', - /** Partial calendar event list fetch pending */ - PartialCalendarEventListFetchPending = 'PARTIAL_CALENDAR_EVENT_LIST_FETCH_PENDING' -} - -export type CalendarChannelSyncStageEnumFilter = { - eq?: InputMaybe; - in?: InputMaybe>>; - is?: InputMaybe; - neq?: InputMaybe; -}; - -/** Sync status */ -export enum CalendarChannelSyncStatusEnum { - /** Active */ - Active = 'ACTIVE', - /** Failed Insufficient Permissions */ - FailedInsufficientPermissions = 'FAILED_INSUFFICIENT_PERMISSIONS', - /** Failed Unknown */ - FailedUnknown = 'FAILED_UNKNOWN', - /** Not Synced */ - NotSynced = 'NOT_SYNCED', - /** Ongoing */ - Ongoing = 'ONGOING' -} - -export type CalendarChannelSyncStatusEnumFilter = { - eq?: InputMaybe; - in?: InputMaybe>>; - is?: InputMaybe; - neq?: InputMaybe; -}; - -/** Calendar Channels */ -export type CalendarChannelUpdateInput = { - /** Connected Account id foreign key */ - connectedAccountId?: InputMaybe; - /** Automatically create records for people you participated with in an event. */ - contactAutoCreationPolicy?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Is Contact Auto Creation Enabled */ - isContactAutoCreationEnabled?: InputMaybe; - /** Is Sync Enabled */ - isSyncEnabled?: InputMaybe; - /** Sync Cursor. Used for syncing events from the calendar provider */ - syncCursor?: InputMaybe; - /** Sync stage */ - syncStage?: InputMaybe; - /** Sync stage started at */ - syncStageStartedAt?: InputMaybe; - /** Sync status */ - syncStatus?: InputMaybe; - /** Throttle Failure Count */ - throttleFailureCount?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Visibility */ - visibility?: InputMaybe; -}; - -/** Visibility of the calendar channel */ -export enum CalendarChannelVisibility { - Metadata = 'METADATA', - ShareEverything = 'SHARE_EVERYTHING' -} - -/** Visibility */ -export enum CalendarChannelVisibilityEnum { - /** Metadata */ - Metadata = 'METADATA', - /** Share Everything */ - ShareEverything = 'SHARE_EVERYTHING' -} - -export type CalendarChannelVisibilityEnumFilter = { - eq?: InputMaybe; - in?: InputMaybe>>; - is?: InputMaybe; - neq?: InputMaybe; -}; - -/** Calendar events */ -export type CalendarEvent = { - /** Calendar Channel Event Associations */ - calendarChannelEventAssociations?: Maybe; - /** Event Participants */ - calendarEventParticipants?: Maybe; - /** Meet Link */ - conferenceLink?: Maybe; - /** Conference Solution */ - conferenceSolution?: Maybe; - /** Creation date */ - createdAt?: Maybe; - /** Description */ - description?: Maybe; - /** End Date */ - endsAt?: Maybe; - /** Creation DateTime */ - externalCreatedAt?: Maybe; - /** Update DateTime */ - externalUpdatedAt?: Maybe; - /** iCal UID */ - iCalUID?: Maybe; - /** Id */ - id?: Maybe; - /** Is canceled */ - isCanceled?: Maybe; - /** Is Full Day */ - isFullDay?: Maybe; - /** Location */ - location?: Maybe; - /** Recurring Event ID */ - recurringEventExternalId?: Maybe; - /** Start Date */ - startsAt?: Maybe; - /** Title */ - title?: Maybe; - /** Update date */ - updatedAt?: Maybe; -}; - - -/** Calendar events */ -export type CalendarEventCalendarChannelEventAssociationsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** Calendar events */ -export type CalendarEventCalendarEventParticipantsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - -/** Calendar events */ -export type CalendarEventConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** Calendar events */ -export type CalendarEventCreateInput = { - /** Meet Link */ - conferenceLink?: InputMaybe; - /** Conference Solution */ - conferenceSolution?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Description */ - description?: InputMaybe; - /** End Date */ - endsAt?: InputMaybe; - /** Creation DateTime */ - externalCreatedAt?: InputMaybe; - /** Update DateTime */ - externalUpdatedAt?: InputMaybe; - /** iCal UID */ - iCalUID?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Is canceled */ - isCanceled: Scalars['Boolean']; - /** Is Full Day */ - isFullDay: Scalars['Boolean']; - /** Location */ - location?: InputMaybe; - /** Recurring Event ID */ - recurringEventExternalId?: InputMaybe; - /** Start Date */ - startsAt?: InputMaybe; - /** Title */ - title?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** Calendar events */ -export type CalendarEventEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** Calendar events */ -export type CalendarEventFilterInput = { - and?: InputMaybe>>; - /** Meet Link */ - conferenceLink?: InputMaybe; - /** Conference Solution */ - conferenceSolution?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Description */ - description?: InputMaybe; - /** End Date */ - endsAt?: InputMaybe; - /** Creation DateTime */ - externalCreatedAt?: InputMaybe; - /** Update DateTime */ - externalUpdatedAt?: InputMaybe; - /** iCal UID */ - iCalUID?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Is canceled */ - isCanceled?: InputMaybe; - /** Is Full Day */ - isFullDay?: InputMaybe; - /** Location */ - location?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** Recurring Event ID */ - recurringEventExternalId?: InputMaybe; - /** Start Date */ - startsAt?: InputMaybe; - /** Title */ - title?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** Calendar events */ -export type CalendarEventOrderByInput = { - /** Meet Link */ - conferenceLink?: InputMaybe; - /** Conference Solution */ - conferenceSolution?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Description */ - description?: InputMaybe; - /** End Date */ - endsAt?: InputMaybe; - /** Creation DateTime */ - externalCreatedAt?: InputMaybe; - /** Update DateTime */ - externalUpdatedAt?: InputMaybe; - /** iCal UID */ - iCalUID?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Is canceled */ - isCanceled?: InputMaybe; - /** Is Full Day */ - isFullDay?: InputMaybe; - /** Location */ - location?: InputMaybe; - /** Recurring Event ID */ - recurringEventExternalId?: InputMaybe; - /** Start Date */ - startsAt?: InputMaybe; - /** Title */ - title?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** Calendar event participants */ -export type CalendarEventParticipant = { - /** Event ID */ - calendarEvent?: Maybe; - /** Event ID id foreign key */ - calendarEventId?: Maybe; - /** Creation date */ - createdAt?: Maybe; - /** Display Name */ - displayName?: Maybe; - /** Handle */ - handle?: Maybe; - /** Id */ - id?: Maybe; - /** Is Organizer */ - isOrganizer?: Maybe; - /** Person */ - person?: Maybe; - /** Person id foreign key */ - personId?: Maybe; - /** Response Status */ - responseStatus?: Maybe; - /** Update date */ - updatedAt?: Maybe; - /** Workspace Member */ - workspaceMember?: Maybe; - /** Workspace Member id foreign key */ - workspaceMemberId?: Maybe; -}; - -/** Calendar event participants */ -export type CalendarEventParticipantConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** Calendar event participants */ -export type CalendarEventParticipantCreateInput = { - /** Event ID id foreign key */ - calendarEventId: Scalars['UUID']; - /** Creation date */ - createdAt?: InputMaybe; - /** Display Name */ - displayName?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Is Organizer */ - isOrganizer?: InputMaybe; - /** Person id foreign key */ - personId?: InputMaybe; - /** Response Status */ - responseStatus?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Workspace Member id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -/** Calendar event participants */ -export type CalendarEventParticipantEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** Calendar event participants */ -export type CalendarEventParticipantFilterInput = { - and?: InputMaybe>>; - /** Event ID id foreign key */ - calendarEventId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Display Name */ - displayName?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Is Organizer */ - isOrganizer?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** Person id foreign key */ - personId?: InputMaybe; - /** Response Status */ - responseStatus?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Workspace Member id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -/** Calendar event participants */ -export type CalendarEventParticipantOrderByInput = { - /** Event ID id foreign key */ - calendarEventId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Display Name */ - displayName?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Is Organizer */ - isOrganizer?: InputMaybe; - /** Person id foreign key */ - personId?: InputMaybe; - /** Response Status */ - responseStatus?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Workspace Member id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -/** Response Status */ -export enum CalendarEventParticipantResponseStatusEnum { - /** Accepted */ - Accepted = 'ACCEPTED', - /** Declined */ - Declined = 'DECLINED', - /** Needs Action */ - NeedsAction = 'NEEDS_ACTION', - /** Tentative */ - Tentative = 'TENTATIVE' -} - -export type CalendarEventParticipantResponseStatusEnumFilter = { - eq?: InputMaybe; - in?: InputMaybe>>; - is?: InputMaybe; - neq?: InputMaybe; -}; - -/** Calendar event participants */ -export type CalendarEventParticipantUpdateInput = { - /** Event ID id foreign key */ - calendarEventId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Display Name */ - displayName?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Is Organizer */ - isOrganizer?: InputMaybe; - /** Person id foreign key */ - personId?: InputMaybe; - /** Response Status */ - responseStatus?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Workspace Member id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -/** Calendar events */ -export type CalendarEventUpdateInput = { - /** Meet Link */ - conferenceLink?: InputMaybe; - /** Conference Solution */ - conferenceSolution?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Description */ - description?: InputMaybe; - /** End Date */ - endsAt?: InputMaybe; - /** Creation DateTime */ - externalCreatedAt?: InputMaybe; - /** Update DateTime */ - externalUpdatedAt?: InputMaybe; - /** iCal UID */ - iCalUID?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Is canceled */ - isCanceled?: InputMaybe; - /** Is Full Day */ - isFullDay?: InputMaybe; - /** Location */ - location?: InputMaybe; - /** Recurring Event ID */ - recurringEventExternalId?: InputMaybe; - /** Start Date */ - startsAt?: InputMaybe; - /** Title */ - title?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -export type Captcha = { - provider?: Maybe; - siteKey?: Maybe; -}; - -export enum CaptchaDriverType { - GoogleRecaptcha = 'GoogleRecaptcha', - Turnstile = 'Turnstile' -} - -export type ClientConfig = { - api: ApiConfig; - authProviders: AuthProviders; - billing: Billing; - captcha: Captcha; - chromeExtensionId?: Maybe; - debugMode: Scalars['Boolean']; - sentry: Sentry; - signInPrefilled: Scalars['Boolean']; - signUpDisabled: Scalars['Boolean']; - support: Support; - telemetry: Telemetry; -}; - -/** A comment */ -export type Comment = { - /** Comment activity */ - activity?: Maybe; - /** Comment activity id foreign key */ - activityId?: Maybe; - /** Comment author */ - author?: Maybe; - /** Comment author id foreign key */ - authorId?: Maybe; - /** Comment body */ - body?: Maybe; - /** Creation date */ - createdAt?: Maybe; - /** Id */ - id?: Maybe; - /** Update date */ - updatedAt?: Maybe; -}; - -/** A comment */ -export type CommentConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** A comment */ -export type CommentCreateInput = { - /** Comment activity id foreign key */ - activityId: Scalars['UUID']; - /** Comment author id foreign key */ - authorId: Scalars['UUID']; - /** Comment body */ - body?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** A comment */ -export type CommentEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** A comment */ -export type CommentFilterInput = { - /** Comment activity id foreign key */ - activityId?: InputMaybe; - and?: InputMaybe>>; - /** Comment author id foreign key */ - authorId?: InputMaybe; - /** Comment body */ - body?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** A comment */ -export type CommentOrderByInput = { - /** Comment activity id foreign key */ - activityId?: InputMaybe; - /** Comment author id foreign key */ - authorId?: InputMaybe; - /** Comment body */ - body?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** A comment */ -export type CommentUpdateInput = { - /** Comment activity id foreign key */ - activityId?: InputMaybe; - /** Comment author id foreign key */ - authorId?: InputMaybe; - /** Comment body */ - body?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** A company */ -export type Company = { - /** Your team member responsible for managing the company account */ - accountOwner?: Maybe; - /** Your team member responsible for managing the company account id foreign key */ - accountOwnerId?: Maybe; - /** Activities tied to the company */ - activityTargets?: Maybe; - /** The company address */ - address?: Maybe; - /** Annual Recurring Revenue: The actual or estimated annual revenue of the company */ - annualRecurringRevenue?: Maybe; - /** Attachments linked to the company */ - attachments?: Maybe; - /** Creation date */ - createdAt?: Maybe; - /** The company website URL. We use this url to fetch the company icon */ - domainName?: Maybe; - /** Number of employees in the company */ - employees?: Maybe; - /** Favorites linked to the company */ - favorites?: Maybe; - /** Id */ - id?: Maybe; - /** Ideal Customer Profile: Indicates whether the company is the most suitable and valuable customer for you */ - idealCustomerProfile?: Maybe; - /** The company Linkedin account */ - linkedinLink?: Maybe; - /** The company name */ - name?: Maybe; - /** Opportunities linked to the company. */ - opportunities?: Maybe; - /** People linked to the company. */ - people?: Maybe; - /** Company record position */ - position?: Maybe; - /** Timeline Activities linked to the company */ - timelineActivities?: Maybe; - /** Update date */ - updatedAt?: Maybe; - /** The company Twitter/X account */ - xLink?: Maybe; -}; - - -/** A company */ -export type CompanyActivityTargetsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A company */ -export type CompanyAttachmentsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A company */ -export type CompanyFavoritesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A company */ -export type CompanyOpportunitiesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A company */ -export type CompanyPeopleArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A company */ -export type CompanyTimelineActivitiesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - -/** A company */ -export type CompanyConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** A company */ -export type CompanyCreateInput = { - /** Your team member responsible for managing the company account id foreign key */ - accountOwnerId?: InputMaybe; - /** The company address */ - address?: InputMaybe; - /** Annual Recurring Revenue: The actual or estimated annual revenue of the company */ - annualRecurringRevenue?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** The company website URL. We use this url to fetch the company icon */ - domainName?: InputMaybe; - /** Number of employees in the company */ - employees?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Ideal Customer Profile: Indicates whether the company is the most suitable and valuable customer for you */ - idealCustomerProfile?: InputMaybe; - /** The company Linkedin account */ - linkedinLink?: InputMaybe; - /** The company name */ - name?: InputMaybe; - /** Company record position */ - position?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** The company Twitter/X account */ - xLink?: InputMaybe; -}; - -/** A company */ -export type CompanyEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** A company */ -export type CompanyFilterInput = { - /** Your team member responsible for managing the company account id foreign key */ - accountOwnerId?: InputMaybe; - /** The company address */ - address?: InputMaybe; - and?: InputMaybe>>; - /** Annual Recurring Revenue: The actual or estimated annual revenue of the company */ - annualRecurringRevenue?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** The company website URL. We use this url to fetch the company icon */ - domainName?: InputMaybe; - /** Number of employees in the company */ - employees?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Ideal Customer Profile: Indicates whether the company is the most suitable and valuable customer for you */ - idealCustomerProfile?: InputMaybe; - /** The company Linkedin account */ - linkedinLink?: InputMaybe; - /** The company name */ - name?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** Company record position */ - position?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** The company Twitter/X account */ - xLink?: InputMaybe; -}; - -/** A company */ -export type CompanyOrderByInput = { - /** Your team member responsible for managing the company account id foreign key */ - accountOwnerId?: InputMaybe; - /** The company address */ - address?: InputMaybe; - /** Annual Recurring Revenue: The actual or estimated annual revenue of the company */ - annualRecurringRevenue?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** The company website URL. We use this url to fetch the company icon */ - domainName?: InputMaybe; - /** Number of employees in the company */ - employees?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Ideal Customer Profile: Indicates whether the company is the most suitable and valuable customer for you */ - idealCustomerProfile?: InputMaybe; - /** The company Linkedin account */ - linkedinLink?: InputMaybe; - /** The company name */ - name?: InputMaybe; - /** Company record position */ - position?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** The company Twitter/X account */ - xLink?: InputMaybe; -}; - -/** A company */ -export type CompanyUpdateInput = { - /** Your team member responsible for managing the company account id foreign key */ - accountOwnerId?: InputMaybe; - /** The company address */ - address?: InputMaybe; - /** Annual Recurring Revenue: The actual or estimated annual revenue of the company */ - annualRecurringRevenue?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** The company website URL. We use this url to fetch the company icon */ - domainName?: InputMaybe; - /** Number of employees in the company */ - employees?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Ideal Customer Profile: Indicates whether the company is the most suitable and valuable customer for you */ - idealCustomerProfile?: InputMaybe; - /** The company Linkedin account */ - linkedinLink?: InputMaybe; - /** The company name */ - name?: InputMaybe; - /** Company record position */ - position?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** The company Twitter/X account */ - xLink?: InputMaybe; -}; - -/** A connected account */ -export type ConnectedAccount = { - /** Messaging provider access token */ - accessToken?: Maybe; - /** Account Owner */ - accountOwner?: Maybe; - /** Account Owner id foreign key */ - accountOwnerId?: Maybe; - /** Auth failed at */ - authFailedAt?: Maybe; - /** Calendar Channels */ - calendarChannels?: Maybe; - /** Creation date */ - createdAt?: Maybe; - /** The account handle (email, username, phone number, etc.) */ - handle?: Maybe; - /** Id */ - id?: Maybe; - /** Last sync history ID */ - lastSyncHistoryId?: Maybe; - /** Message Channels */ - messageChannels?: Maybe; - /** The account provider */ - provider?: Maybe; - /** Messaging provider refresh token */ - refreshToken?: Maybe; - /** Update date */ - updatedAt?: Maybe; -}; - - -/** A connected account */ -export type ConnectedAccountCalendarChannelsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A connected account */ -export type ConnectedAccountMessageChannelsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - -/** A connected account */ -export type ConnectedAccountConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** A connected account */ -export type ConnectedAccountCreateInput = { - /** Messaging provider access token */ - accessToken?: InputMaybe; - /** Account Owner id foreign key */ - accountOwnerId: Scalars['UUID']; - /** Auth failed at */ - authFailedAt?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** The account handle (email, username, phone number, etc.) */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Last sync history ID */ - lastSyncHistoryId?: InputMaybe; - /** The account provider */ - provider?: InputMaybe; - /** Messaging provider refresh token */ - refreshToken?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** A connected account */ -export type ConnectedAccountEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** A connected account */ -export type ConnectedAccountFilterInput = { - /** Messaging provider access token */ - accessToken?: InputMaybe; - /** Account Owner id foreign key */ - accountOwnerId?: InputMaybe; - and?: InputMaybe>>; - /** Auth failed at */ - authFailedAt?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** The account handle (email, username, phone number, etc.) */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Last sync history ID */ - lastSyncHistoryId?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** The account provider */ - provider?: InputMaybe; - /** Messaging provider refresh token */ - refreshToken?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** A connected account */ -export type ConnectedAccountOrderByInput = { - /** Messaging provider access token */ - accessToken?: InputMaybe; - /** Account Owner id foreign key */ - accountOwnerId?: InputMaybe; - /** Auth failed at */ - authFailedAt?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** The account handle (email, username, phone number, etc.) */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Last sync history ID */ - lastSyncHistoryId?: InputMaybe; - /** The account provider */ - provider?: InputMaybe; - /** Messaging provider refresh token */ - refreshToken?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** A connected account */ -export type ConnectedAccountUpdateInput = { - /** Messaging provider access token */ - accessToken?: InputMaybe; - /** Account Owner id foreign key */ - accountOwnerId?: InputMaybe; - /** Auth failed at */ - authFailedAt?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** The account handle (email, username, phone number, etc.) */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Last sync history ID */ - lastSyncHistoryId?: InputMaybe; - /** The account provider */ - provider?: InputMaybe; - /** Messaging provider refresh token */ - refreshToken?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -export type Currency = { - amountMicros?: Maybe; - currencyCode?: Maybe; -}; - -export type CurrencyCreateInput = { - amountMicros?: InputMaybe; - currencyCode?: InputMaybe; -}; - -export type CurrencyFilterInput = { - amountMicros?: InputMaybe; - currencyCode?: InputMaybe; -}; - -export type CurrencyOrderByInput = { - amountMicros?: InputMaybe; - currencyCode?: InputMaybe; -}; - -export type CurrencyUpdateInput = { - amountMicros?: InputMaybe; - currencyCode?: InputMaybe; -}; - -export type CursorPaging = { - /** Paginate after opaque cursor */ - after?: InputMaybe; - /** Paginate before opaque cursor */ - before?: InputMaybe; - /** Paginate first */ - first?: InputMaybe; - /** Paginate last */ - last?: InputMaybe; -}; - -export type DateFilter = { - eq?: InputMaybe; - gt?: InputMaybe; - gte?: InputMaybe; - in?: InputMaybe>; - is?: InputMaybe; - lt?: InputMaybe; - lte?: InputMaybe; - neq?: InputMaybe; -}; - -export type DeleteOneObjectInput = { - /** The id of the record to delete. */ - id: Scalars['UUID']; -}; - -/** Schema update on a table */ -export enum DistantTableUpdate { - ColumnsAdded = 'COLUMNS_ADDED', - ColumnsDeleted = 'COLUMNS_DELETED', - ColumnsTypeChanged = 'COLUMNS_TYPE_CHANGED', - TableDeleted = 'TABLE_DELETED' -} - -export type EmailPasswordResetLink = { - /** Boolean that confirms query was dispatched */ - success: Scalars['Boolean']; -}; - -export type ExchangeAuthCode = { - accessToken: AuthToken; - loginToken: AuthToken; - refreshToken: AuthToken; -}; - -/** A favorite */ -export type Favorite = { - /** Favorite company */ - company?: Maybe; - /** Favorite company id foreign key */ - companyId?: Maybe; - /** Creation date */ - createdAt?: Maybe; - /** Id */ - id?: Maybe; - /** Favorite opportunity */ - opportunity?: Maybe; - /** Favorite opportunity id foreign key */ - opportunityId?: Maybe; - /** Favorite person */ - person?: Maybe; - /** Favorite person id foreign key */ - personId?: Maybe; - /** Favorite position */ - position?: Maybe; - /** Update date */ - updatedAt?: Maybe; - /** Favorite workspace member */ - workspaceMember?: Maybe; - /** Favorite workspace member id foreign key */ - workspaceMemberId?: Maybe; -}; - -/** A favorite */ -export type FavoriteConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** A favorite */ -export type FavoriteCreateInput = { - /** Favorite company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Favorite opportunity id foreign key */ - opportunityId?: InputMaybe; - /** Favorite person id foreign key */ - personId?: InputMaybe; - /** Favorite position */ - position?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Favorite workspace member id foreign key */ - workspaceMemberId: Scalars['UUID']; -}; - -/** A favorite */ -export type FavoriteEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** A favorite */ -export type FavoriteFilterInput = { - and?: InputMaybe>>; - /** Favorite company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - not?: InputMaybe; - /** Favorite opportunity id foreign key */ - opportunityId?: InputMaybe; - or?: InputMaybe>>; - /** Favorite person id foreign key */ - personId?: InputMaybe; - /** Favorite position */ - position?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Favorite workspace member id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -/** A favorite */ -export type FavoriteOrderByInput = { - /** Favorite company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Favorite opportunity id foreign key */ - opportunityId?: InputMaybe; - /** Favorite person id foreign key */ - personId?: InputMaybe; - /** Favorite position */ - position?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Favorite workspace member id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -/** A favorite */ -export type FavoriteUpdateInput = { - /** Favorite company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Favorite opportunity id foreign key */ - opportunityId?: InputMaybe; - /** Favorite person id foreign key */ - personId?: InputMaybe; - /** Favorite position */ - position?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Favorite workspace member id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -export type FeatureFlag = { - id: Scalars['UUID']; - key: Scalars['String']; - value: Scalars['Boolean']; - workspaceId: Scalars['String']; -}; - -export type FeatureFlagFilter = { - and?: InputMaybe>; - id?: InputMaybe; - or?: InputMaybe>; -}; - -export type FeatureFlagSort = { - direction: SortDirection; - field: FeatureFlagSortFields; - nulls?: InputMaybe; -}; - -export enum FeatureFlagSortFields { - Id = 'id' -} - -export type FieldConnection = { - /** Array of edges. */ - edges: Array; - /** Paging information */ - pageInfo: PageInfo; -}; - -/** Type of the field */ -export enum FieldMetadataType { - Address = 'ADDRESS', - Boolean = 'BOOLEAN', - Currency = 'CURRENCY', - Date = 'DATE', - DateTime = 'DATE_TIME', - Email = 'EMAIL', - FullName = 'FULL_NAME', - Link = 'LINK', - Links = 'LINKS', - MultiSelect = 'MULTI_SELECT', - Number = 'NUMBER', - Numeric = 'NUMERIC', - Phone = 'PHONE', - Phones = 'PHONES', - Position = 'POSITION', - Rating = 'RATING', - RawJson = 'RAW_JSON', - Relation = 'RELATION', - Select = 'SELECT', - Text = 'TEXT', - Uuid = 'UUID' -} - -export enum FileFolder { - Attachment = 'Attachment', - PersonPicture = 'PersonPicture', - ProfilePicture = 'ProfilePicture', - WorkspaceLogo = 'WorkspaceLogo' -} - -/** This enum to filter by nullability */ -export enum FilterIs { - /** Non-nulish values */ - NotNull = 'NOT_NULL', - /** Nulish values */ - Null = 'NULL' -} - -export type FloatFilter = { - eq?: InputMaybe; - gt?: InputMaybe; - gte?: InputMaybe; - in?: InputMaybe>; - is?: InputMaybe; - lt?: InputMaybe; - lte?: InputMaybe; - neq?: InputMaybe; -}; - -export type FullName = { - firstName: Scalars['String']; - lastName: Scalars['String']; -}; - -export type FullNameCreateInput = { - firstName?: InputMaybe; - lastName?: InputMaybe; -}; - -export type FullNameFilterInput = { - firstName?: InputMaybe; - lastName?: InputMaybe; -}; - -export type FullNameOrderByInput = { - firstName?: InputMaybe; - lastName?: InputMaybe; -}; - -export type FullNameUpdateInput = { - firstName?: InputMaybe; - lastName?: InputMaybe; -}; - -export type IdFilter = { - eq?: InputMaybe; - gt?: InputMaybe; - gte?: InputMaybe; - in?: InputMaybe>>; - is?: InputMaybe; - lt?: InputMaybe; - lte?: InputMaybe; - neq?: InputMaybe; -}; - -export type InvalidatePassword = { - /** Boolean that confirms query was dispatched */ - success: Scalars['Boolean']; -}; - -export type Link = { - label?: Maybe; - url?: Maybe; -}; - -export type LinkCreateInput = { - label?: InputMaybe; - url?: InputMaybe; -}; - -export type LinkFilterInput = { - label?: InputMaybe; - url?: InputMaybe; -}; - -export type LinkMetadata = { - label: Scalars['String']; - url: Scalars['String']; -}; - -export type LinkOrderByInput = { - label?: InputMaybe; - url?: InputMaybe; -}; - -export type LinkUpdateInput = { - label?: InputMaybe; - url?: InputMaybe; -}; - -export type Links = { - primaryLinkLabel?: Maybe; - primaryLinkUrl?: Maybe; - secondaryLinks?: Maybe; -}; - -export type LinksCreateInput = { - primaryLinkLabel?: InputMaybe; - primaryLinkUrl?: InputMaybe; - secondaryLinks?: InputMaybe; -}; - -export type LinksFilterInput = { - primaryLinkLabel?: InputMaybe; - primaryLinkUrl?: InputMaybe; - secondaryLinks?: InputMaybe; -}; - -export type LinksOrderByInput = { - primaryLinkLabel?: InputMaybe; - primaryLinkUrl?: InputMaybe; - secondaryLinks?: InputMaybe; -}; - -export type LinksUpdateInput = { - primaryLinkLabel?: InputMaybe; - primaryLinkUrl?: InputMaybe; - secondaryLinks?: InputMaybe; -}; - -export type LoginToken = { - loginToken: AuthToken; -}; - -/** Message */ -export type Message = { - /** Creation date */ - createdAt?: Maybe; - /** Message Direction */ - direction?: Maybe; - /** Message id from the message header */ - headerMessageId?: Maybe; - /** Id */ - id?: Maybe; - /** Messages from the channel. */ - messageChannelMessageAssociations?: Maybe; - /** Message Participants */ - messageParticipants?: Maybe; - /** Message Thread Id */ - messageThread?: Maybe; - /** Message Thread Id id foreign key */ - messageThreadId?: Maybe; - /** The date the message was received */ - receivedAt?: Maybe; - /** Subject */ - subject?: Maybe; - /** Text */ - text?: Maybe; - /** Update date */ - updatedAt?: Maybe; -}; - - -/** Message */ -export type MessageMessageChannelMessageAssociationsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** Message */ -export type MessageMessageParticipantsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - -/** Message Channels */ -export type MessageChannel = { - /** Connected Account */ - connectedAccount?: Maybe; - /** Connected Account id foreign key */ - connectedAccountId?: Maybe; - /** Automatically create People records when receiving or sending emails */ - contactAutoCreationPolicy?: Maybe; - /** Creation date */ - createdAt?: Maybe; - /** Exclude group emails */ - excludeGroupEmails?: Maybe; - /** Exclude non professional emails */ - excludeNonProfessionalEmails?: Maybe; - /** Handle */ - handle?: Maybe; - /** Id */ - id?: Maybe; - /** Is Contact Auto Creation Enabled */ - isContactAutoCreationEnabled?: Maybe; - /** Is Sync Enabled */ - isSyncEnabled?: Maybe; - /** Messages from the channel. */ - messageChannelMessageAssociations?: Maybe; - /** Last sync cursor */ - syncCursor?: Maybe; - /** Sync stage */ - syncStage?: Maybe; - /** Sync stage started at */ - syncStageStartedAt?: Maybe; - /** Sync status */ - syncStatus?: Maybe; - /** Last sync date */ - syncedAt?: Maybe; - /** Throttle Failure Count */ - throttleFailureCount?: Maybe; - /** Channel Type */ - type?: Maybe; - /** Update date */ - updatedAt?: Maybe; - /** Visibility */ - visibility?: Maybe; -}; - - -/** Message Channels */ -export type MessageChannelMessageChannelMessageAssociationsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - -/** Message Channels */ -export type MessageChannelConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** Automatically create People records when receiving or sending emails */ -export enum MessageChannelContactAutoCreationPolicyEnum { - /** None */ - None = 'NONE', - /** Sent */ - Sent = 'SENT', - /** Sent and Received */ - SentAndReceived = 'SENT_AND_RECEIVED' -} - -export type MessageChannelContactAutoCreationPolicyEnumFilter = { - eq?: InputMaybe; - in?: InputMaybe>>; - is?: InputMaybe; - neq?: InputMaybe; -}; - -/** Message Channels */ -export type MessageChannelCreateInput = { - /** Connected Account id foreign key */ - connectedAccountId: Scalars['UUID']; - /** Automatically create People records when receiving or sending emails */ - contactAutoCreationPolicy?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Exclude group emails */ - excludeGroupEmails?: InputMaybe; - /** Exclude non professional emails */ - excludeNonProfessionalEmails?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Is Contact Auto Creation Enabled */ - isContactAutoCreationEnabled?: InputMaybe; - /** Is Sync Enabled */ - isSyncEnabled?: InputMaybe; - /** Last sync cursor */ - syncCursor?: InputMaybe; - /** Sync stage */ - syncStage?: InputMaybe; - /** Sync stage started at */ - syncStageStartedAt?: InputMaybe; - /** Sync status */ - syncStatus?: InputMaybe; - /** Last sync date */ - syncedAt?: InputMaybe; - /** Throttle Failure Count */ - throttleFailureCount?: InputMaybe; - /** Channel Type */ - type?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Visibility */ - visibility?: InputMaybe; -}; - -/** Message Channels */ -export type MessageChannelEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** Message Channels */ -export type MessageChannelFilterInput = { - and?: InputMaybe>>; - /** Connected Account id foreign key */ - connectedAccountId?: InputMaybe; - /** Automatically create People records when receiving or sending emails */ - contactAutoCreationPolicy?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Exclude group emails */ - excludeGroupEmails?: InputMaybe; - /** Exclude non professional emails */ - excludeNonProfessionalEmails?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Is Contact Auto Creation Enabled */ - isContactAutoCreationEnabled?: InputMaybe; - /** Is Sync Enabled */ - isSyncEnabled?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** Last sync cursor */ - syncCursor?: InputMaybe; - /** Sync stage */ - syncStage?: InputMaybe; - /** Sync stage started at */ - syncStageStartedAt?: InputMaybe; - /** Sync status */ - syncStatus?: InputMaybe; - /** Last sync date */ - syncedAt?: InputMaybe; - /** Throttle Failure Count */ - throttleFailureCount?: InputMaybe; - /** Channel Type */ - type?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Visibility */ - visibility?: InputMaybe; -}; - -/** Message Synced with a Message Channel */ -export type MessageChannelMessageAssociation = { - /** Creation date */ - createdAt?: Maybe; - /** Id */ - id?: Maybe; - /** Message Id */ - message?: Maybe; - /** Message Channel Id */ - messageChannel?: Maybe; - /** Message Channel Id id foreign key */ - messageChannelId?: Maybe; - /** Message id from the messaging provider */ - messageExternalId?: Maybe; - /** Message Id id foreign key */ - messageId?: Maybe; - /** Message Thread Id */ - messageThread?: Maybe; - /** Thread id from the messaging provider */ - messageThreadExternalId?: Maybe; - /** Message Thread Id id foreign key */ - messageThreadId?: Maybe; - /** Update date */ - updatedAt?: Maybe; -}; - -/** Message Synced with a Message Channel */ -export type MessageChannelMessageAssociationConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** Message Synced with a Message Channel */ -export type MessageChannelMessageAssociationCreateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Message Channel Id id foreign key */ - messageChannelId?: InputMaybe; - /** Message id from the messaging provider */ - messageExternalId?: InputMaybe; - /** Message Id id foreign key */ - messageId?: InputMaybe; - /** Thread id from the messaging provider */ - messageThreadExternalId?: InputMaybe; - /** Message Thread Id id foreign key */ - messageThreadId?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** Message Synced with a Message Channel */ -export type MessageChannelMessageAssociationEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** Message Synced with a Message Channel */ -export type MessageChannelMessageAssociationFilterInput = { - and?: InputMaybe>>; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Message Channel Id id foreign key */ - messageChannelId?: InputMaybe; - /** Message id from the messaging provider */ - messageExternalId?: InputMaybe; - /** Message Id id foreign key */ - messageId?: InputMaybe; - /** Thread id from the messaging provider */ - messageThreadExternalId?: InputMaybe; - /** Message Thread Id id foreign key */ - messageThreadId?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** Message Synced with a Message Channel */ -export type MessageChannelMessageAssociationOrderByInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Message Channel Id id foreign key */ - messageChannelId?: InputMaybe; - /** Message id from the messaging provider */ - messageExternalId?: InputMaybe; - /** Message Id id foreign key */ - messageId?: InputMaybe; - /** Thread id from the messaging provider */ - messageThreadExternalId?: InputMaybe; - /** Message Thread Id id foreign key */ - messageThreadId?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** Message Synced with a Message Channel */ -export type MessageChannelMessageAssociationUpdateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Message Channel Id id foreign key */ - messageChannelId?: InputMaybe; - /** Message id from the messaging provider */ - messageExternalId?: InputMaybe; - /** Message Id id foreign key */ - messageId?: InputMaybe; - /** Thread id from the messaging provider */ - messageThreadExternalId?: InputMaybe; - /** Message Thread Id id foreign key */ - messageThreadId?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** Message Channels */ -export type MessageChannelOrderByInput = { - /** Connected Account id foreign key */ - connectedAccountId?: InputMaybe; - /** Automatically create People records when receiving or sending emails */ - contactAutoCreationPolicy?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Exclude group emails */ - excludeGroupEmails?: InputMaybe; - /** Exclude non professional emails */ - excludeNonProfessionalEmails?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Is Contact Auto Creation Enabled */ - isContactAutoCreationEnabled?: InputMaybe; - /** Is Sync Enabled */ - isSyncEnabled?: InputMaybe; - /** Last sync cursor */ - syncCursor?: InputMaybe; - /** Sync stage */ - syncStage?: InputMaybe; - /** Sync stage started at */ - syncStageStartedAt?: InputMaybe; - /** Sync status */ - syncStatus?: InputMaybe; - /** Last sync date */ - syncedAt?: InputMaybe; - /** Throttle Failure Count */ - throttleFailureCount?: InputMaybe; - /** Channel Type */ - type?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Visibility */ - visibility?: InputMaybe; -}; - -/** Sync stage */ -export enum MessageChannelSyncStageEnum { - /** Failed */ - Failed = 'FAILED', - /** Full messages list fetch pending */ - FullMessageListFetchPending = 'FULL_MESSAGE_LIST_FETCH_PENDING', - /** Messages import ongoing */ - MessagesImportOngoing = 'MESSAGES_IMPORT_ONGOING', - /** Messages import pending */ - MessagesImportPending = 'MESSAGES_IMPORT_PENDING', - /** Messages list fetch ongoing */ - MessageListFetchOngoing = 'MESSAGE_LIST_FETCH_ONGOING', - /** Partial messages list fetch pending */ - PartialMessageListFetchPending = 'PARTIAL_MESSAGE_LIST_FETCH_PENDING' -} - -export type MessageChannelSyncStageEnumFilter = { - eq?: InputMaybe; - in?: InputMaybe>>; - is?: InputMaybe; - neq?: InputMaybe; -}; - -/** Sync status */ -export enum MessageChannelSyncStatusEnum { - /** Active */ - Active = 'ACTIVE', - /** Failed */ - Failed = 'FAILED', - /** Failed Insufficient Permissions */ - FailedInsufficientPermissions = 'FAILED_INSUFFICIENT_PERMISSIONS', - /** Failed Unknown */ - FailedUnknown = 'FAILED_UNKNOWN', - /** Not Synced */ - NotSynced = 'NOT_SYNCED', - /** Ongoing */ - Ongoing = 'ONGOING', - /** Pending */ - Pending = 'PENDING', - /** Succeeded */ - Succeeded = 'SUCCEEDED' -} - -export type MessageChannelSyncStatusEnumFilter = { - eq?: InputMaybe; - in?: InputMaybe>>; - is?: InputMaybe; - neq?: InputMaybe; -}; - -/** Channel Type */ -export enum MessageChannelTypeEnum { - /** Email */ - Email = 'email', - /** SMS */ - Sms = 'sms' -} - -export type MessageChannelTypeEnumFilter = { - eq?: InputMaybe; - in?: InputMaybe>>; - is?: InputMaybe; - neq?: InputMaybe; -}; - -/** Message Channels */ -export type MessageChannelUpdateInput = { - /** Connected Account id foreign key */ - connectedAccountId?: InputMaybe; - /** Automatically create People records when receiving or sending emails */ - contactAutoCreationPolicy?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Exclude group emails */ - excludeGroupEmails?: InputMaybe; - /** Exclude non professional emails */ - excludeNonProfessionalEmails?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Is Contact Auto Creation Enabled */ - isContactAutoCreationEnabled?: InputMaybe; - /** Is Sync Enabled */ - isSyncEnabled?: InputMaybe; - /** Last sync cursor */ - syncCursor?: InputMaybe; - /** Sync stage */ - syncStage?: InputMaybe; - /** Sync stage started at */ - syncStageStartedAt?: InputMaybe; - /** Sync status */ - syncStatus?: InputMaybe; - /** Last sync date */ - syncedAt?: InputMaybe; - /** Throttle Failure Count */ - throttleFailureCount?: InputMaybe; - /** Channel Type */ - type?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Visibility */ - visibility?: InputMaybe; -}; - -/** Visibility of the message channel */ -export enum MessageChannelVisibility { - Metadata = 'METADATA', - ShareEverything = 'SHARE_EVERYTHING', - Subject = 'SUBJECT' -} - -/** Visibility */ -export enum MessageChannelVisibilityEnum { - /** Metadata */ - Metadata = 'METADATA', - /** Share Everything */ - ShareEverything = 'SHARE_EVERYTHING', - /** Subject */ - Subject = 'SUBJECT' -} - -export type MessageChannelVisibilityEnumFilter = { - eq?: InputMaybe; - in?: InputMaybe>>; - is?: InputMaybe; - neq?: InputMaybe; -}; - -/** Message */ -export type MessageConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** Message */ -export type MessageCreateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** Message Direction */ - direction?: InputMaybe; - /** Message id from the message header */ - headerMessageId?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Message Thread Id id foreign key */ - messageThreadId?: InputMaybe; - /** The date the message was received */ - receivedAt?: InputMaybe; - /** Subject */ - subject?: InputMaybe; - /** Text */ - text?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** Message Direction */ -export enum MessageDirectionEnum { - /** Incoming */ - Incoming = 'incoming', - /** Outgoing */ - Outgoing = 'outgoing' -} - -export type MessageDirectionEnumFilter = { - eq?: InputMaybe; - in?: InputMaybe>>; - is?: InputMaybe; - neq?: InputMaybe; -}; - -/** Message */ -export type MessageEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** Message */ -export type MessageFilterInput = { - and?: InputMaybe>>; - /** Creation date */ - createdAt?: InputMaybe; - /** Message Direction */ - direction?: InputMaybe; - /** Message id from the message header */ - headerMessageId?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Message Thread Id id foreign key */ - messageThreadId?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** The date the message was received */ - receivedAt?: InputMaybe; - /** Subject */ - subject?: InputMaybe; - /** Text */ - text?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** Message */ -export type MessageOrderByInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** Message Direction */ - direction?: InputMaybe; - /** Message id from the message header */ - headerMessageId?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Message Thread Id id foreign key */ - messageThreadId?: InputMaybe; - /** The date the message was received */ - receivedAt?: InputMaybe; - /** Subject */ - subject?: InputMaybe; - /** Text */ - text?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** Message Participants */ -export type MessageParticipant = { - /** Creation date */ - createdAt?: Maybe; - /** Display Name */ - displayName?: Maybe; - /** Handle */ - handle?: Maybe; - /** Id */ - id?: Maybe; - /** Message */ - message?: Maybe; - /** Message id foreign key */ - messageId?: Maybe; - /** Person */ - person?: Maybe; - /** Person id foreign key */ - personId?: Maybe; - /** Role */ - role?: Maybe; - /** Update date */ - updatedAt?: Maybe; - /** Workspace member */ - workspaceMember?: Maybe; - /** Workspace member id foreign key */ - workspaceMemberId?: Maybe; -}; - -/** Message Participants */ -export type MessageParticipantConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** Message Participants */ -export type MessageParticipantCreateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** Display Name */ - displayName?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Message id foreign key */ - messageId: Scalars['UUID']; - /** Person id foreign key */ - personId?: InputMaybe; - /** Role */ - role?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Workspace member id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -/** Message Participants */ -export type MessageParticipantEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** Message Participants */ -export type MessageParticipantFilterInput = { - and?: InputMaybe>>; - /** Creation date */ - createdAt?: InputMaybe; - /** Display Name */ - displayName?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Message id foreign key */ - messageId?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** Person id foreign key */ - personId?: InputMaybe; - /** Role */ - role?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Workspace member id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -/** Message Participants */ -export type MessageParticipantOrderByInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** Display Name */ - displayName?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Message id foreign key */ - messageId?: InputMaybe; - /** Person id foreign key */ - personId?: InputMaybe; - /** Role */ - role?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Workspace member id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -/** Role */ -export enum MessageParticipantRoleEnum { - /** Bcc */ - Bcc = 'bcc', - /** Cc */ - Cc = 'cc', - /** From */ - From = 'from', - /** To */ - To = 'to' -} - -export type MessageParticipantRoleEnumFilter = { - eq?: InputMaybe; - in?: InputMaybe>>; - is?: InputMaybe; - neq?: InputMaybe; -}; - -/** Message Participants */ -export type MessageParticipantUpdateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** Display Name */ - displayName?: InputMaybe; - /** Handle */ - handle?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Message id foreign key */ - messageId?: InputMaybe; - /** Person id foreign key */ - personId?: InputMaybe; - /** Role */ - role?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Workspace member id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -/** Message Thread */ -export type MessageThread = { - /** Creation date */ - createdAt?: Maybe; - /** Id */ - id?: Maybe; - /** Messages from the channel */ - messageChannelMessageAssociations?: Maybe; - /** Messages from the thread. */ - messages?: Maybe; - /** Update date */ - updatedAt?: Maybe; -}; - - -/** Message Thread */ -export type MessageThreadMessageChannelMessageAssociationsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** Message Thread */ -export type MessageThreadMessagesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - -/** Message Thread */ -export type MessageThreadConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** Message Thread */ -export type MessageThreadCreateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** Message Thread */ -export type MessageThreadEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** Message Thread */ -export type MessageThreadFilterInput = { - and?: InputMaybe>>; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** Message Thread */ -export type MessageThreadOrderByInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** Message Thread */ -export type MessageThreadUpdateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** Message */ -export type MessageUpdateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** Message Direction */ - direction?: InputMaybe; - /** Message id from the message header */ - headerMessageId?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Message Thread Id id foreign key */ - messageThreadId?: InputMaybe; - /** The date the message was received */ - receivedAt?: InputMaybe; - /** Subject */ - subject?: InputMaybe; - /** Text */ - text?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -export type Mutation = { - activateWorkspace: Workspace; - addUserToWorkspace: User; - authorizeApp: AuthorizeApp; - challenge: LoginToken; - checkoutSession: SessionEntity; - createActivities?: Maybe>; - createActivity?: Maybe; - createActivityTarget?: Maybe; - createActivityTargets?: Maybe>; - createApiKey?: Maybe; - createApiKeys?: Maybe>; - createAttachment?: Maybe; - createAttachments?: Maybe>; - createAuditLog?: Maybe; - createAuditLogs?: Maybe>; - createBlocklist?: Maybe; - createBlocklists?: Maybe>; - createCalendarChannel?: Maybe; - createCalendarChannelEventAssociation?: Maybe; - createCalendarChannelEventAssociations?: Maybe>; - createCalendarChannels?: Maybe>; - createCalendarEvent?: Maybe; - createCalendarEventParticipant?: Maybe; - createCalendarEventParticipants?: Maybe>; - createCalendarEvents?: Maybe>; - createComment?: Maybe; - createComments?: Maybe>; - createCompanies?: Maybe>; - createCompany?: Maybe; - createConnectedAccount?: Maybe; - createConnectedAccounts?: Maybe>; - createFavorite?: Maybe; - createFavorites?: Maybe>; - createMessage?: Maybe; - createMessageChannel?: Maybe; - createMessageChannelMessageAssociation?: Maybe; - createMessageChannelMessageAssociations?: Maybe>; - createMessageChannels?: Maybe>; - createMessageParticipant?: Maybe; - createMessageParticipants?: Maybe>; - createMessageThread?: Maybe; - createMessageThreads?: Maybe>; - createMessages?: Maybe>; - createOneAppToken: AppToken; - createOneObject: Object; - createOpportunities?: Maybe>; - createOpportunity?: Maybe; - createPeople?: Maybe>; - createPerson?: Maybe; - createTimelineActivities?: Maybe>; - createTimelineActivity?: Maybe; - createView?: Maybe; - createViewField?: Maybe; - createViewFields?: Maybe>; - createViewFilter?: Maybe; - createViewFilters?: Maybe>; - createViewSort?: Maybe; - createViewSorts?: Maybe>; - createViews?: Maybe>; - createWebhook?: Maybe; - createWebhooks?: Maybe>; - createWorkspaceMember?: Maybe; - createWorkspaceMembers?: Maybe>; - deleteActivities?: Maybe>; - deleteActivity?: Maybe; - deleteActivityTarget?: Maybe; - deleteActivityTargets?: Maybe>; - deleteApiKey?: Maybe; - deleteApiKeys?: Maybe>; - deleteAttachment?: Maybe; - deleteAttachments?: Maybe>; - deleteAuditLog?: Maybe; - deleteAuditLogs?: Maybe>; - deleteBlocklist?: Maybe; - deleteBlocklists?: Maybe>; - deleteCalendarChannel?: Maybe; - deleteCalendarChannelEventAssociation?: Maybe; - deleteCalendarChannelEventAssociations?: Maybe>; - deleteCalendarChannels?: Maybe>; - deleteCalendarEvent?: Maybe; - deleteCalendarEventParticipant?: Maybe; - deleteCalendarEventParticipants?: Maybe>; - deleteCalendarEvents?: Maybe>; - deleteComment?: Maybe; - deleteComments?: Maybe>; - deleteCompanies?: Maybe>; - deleteCompany?: Maybe; - deleteConnectedAccount?: Maybe; - deleteConnectedAccounts?: Maybe>; - deleteCurrentWorkspace: Workspace; - deleteFavorite?: Maybe; - deleteFavorites?: Maybe>; - deleteMessage?: Maybe; - deleteMessageChannel?: Maybe; - deleteMessageChannelMessageAssociation?: Maybe; - deleteMessageChannelMessageAssociations?: Maybe>; - deleteMessageChannels?: Maybe>; - deleteMessageParticipant?: Maybe; - deleteMessageParticipants?: Maybe>; - deleteMessageThread?: Maybe; - deleteMessageThreads?: Maybe>; - deleteMessages?: Maybe>; - deleteOneObject: Object; - deleteOpportunities?: Maybe>; - deleteOpportunity?: Maybe; - deletePeople?: Maybe>; - deletePerson?: Maybe; - deleteTimelineActivities?: Maybe>; - deleteTimelineActivity?: Maybe; - deleteUser: User; - deleteView?: Maybe; - deleteViewField?: Maybe; - deleteViewFields?: Maybe>; - deleteViewFilter?: Maybe; - deleteViewFilters?: Maybe>; - deleteViewSort?: Maybe; - deleteViewSorts?: Maybe>; - deleteViews?: Maybe>; - deleteWebhook?: Maybe; - deleteWebhooks?: Maybe>; - deleteWorkspaceMember?: Maybe; - deleteWorkspaceMembers?: Maybe>; - disablePostgresProxy: PostgresCredentials; - emailPasswordResetLink: EmailPasswordResetLink; - enablePostgresProxy: PostgresCredentials; - exchangeAuthorizationCode: ExchangeAuthCode; - executeQuickActionOnActivity?: Maybe; - executeQuickActionOnActivityTarget?: Maybe; - executeQuickActionOnApiKey?: Maybe; - executeQuickActionOnAttachment?: Maybe; - executeQuickActionOnAuditLog?: Maybe; - executeQuickActionOnBlocklist?: Maybe; - executeQuickActionOnCalendarChannel?: Maybe; - executeQuickActionOnCalendarChannelEventAssociation?: Maybe; - executeQuickActionOnCalendarEvent?: Maybe; - executeQuickActionOnCalendarEventParticipant?: Maybe; - executeQuickActionOnComment?: Maybe; - executeQuickActionOnCompany?: Maybe; - executeQuickActionOnConnectedAccount?: Maybe; - executeQuickActionOnFavorite?: Maybe; - executeQuickActionOnMessage?: Maybe; - executeQuickActionOnMessageChannel?: Maybe; - executeQuickActionOnMessageChannelMessageAssociation?: Maybe; - executeQuickActionOnMessageParticipant?: Maybe; - executeQuickActionOnMessageThread?: Maybe; - executeQuickActionOnOpportunity?: Maybe; - executeQuickActionOnPerson?: Maybe; - executeQuickActionOnTimelineActivity?: Maybe; - executeQuickActionOnView?: Maybe; - executeQuickActionOnViewField?: Maybe; - executeQuickActionOnViewFilter?: Maybe; - executeQuickActionOnViewSort?: Maybe; - executeQuickActionOnWebhook?: Maybe; - executeQuickActionOnWorkspaceMember?: Maybe; - generateApiKeyToken: ApiKeyToken; - generateJWT: AuthTokens; - generateTransientToken: TransientToken; - impersonate: Verify; - renewToken: AuthTokens; - sendInviteLink: SendInviteLink; - signUp: LoginToken; - skipSyncEmailOnboardingStep: OnboardingStepSuccess; - track: Analytics; - updateActivities?: Maybe>; - updateActivity?: Maybe; - updateActivityTarget?: Maybe; - updateActivityTargets?: Maybe>; - updateApiKey?: Maybe; - updateApiKeys?: Maybe>; - updateAttachment?: Maybe; - updateAttachments?: Maybe>; - updateAuditLog?: Maybe; - updateAuditLogs?: Maybe>; - updateBillingSubscription: UpdateBillingEntity; - updateBlocklist?: Maybe; - updateBlocklists?: Maybe>; - updateCalendarChannel?: Maybe; - updateCalendarChannelEventAssociation?: Maybe; - updateCalendarChannelEventAssociations?: Maybe>; - updateCalendarChannels?: Maybe>; - updateCalendarEvent?: Maybe; - updateCalendarEventParticipant?: Maybe; - updateCalendarEventParticipants?: Maybe>; - updateCalendarEvents?: Maybe>; - updateComment?: Maybe; - updateComments?: Maybe>; - updateCompanies?: Maybe>; - updateCompany?: Maybe; - updateConnectedAccount?: Maybe; - updateConnectedAccounts?: Maybe>; - updateFavorite?: Maybe; - updateFavorites?: Maybe>; - updateMessage?: Maybe; - updateMessageChannel?: Maybe; - updateMessageChannelMessageAssociation?: Maybe; - updateMessageChannelMessageAssociations?: Maybe>; - updateMessageChannels?: Maybe>; - updateMessageParticipant?: Maybe; - updateMessageParticipants?: Maybe>; - updateMessageThread?: Maybe; - updateMessageThreads?: Maybe>; - updateMessages?: Maybe>; - updateOneObject: Object; - updateOpportunities?: Maybe>; - updateOpportunity?: Maybe; - updatePasswordViaResetToken: InvalidatePassword; - updatePeople?: Maybe>; - updatePerson?: Maybe; - updateTimelineActivities?: Maybe>; - updateTimelineActivity?: Maybe; - updateView?: Maybe; - updateViewField?: Maybe; - updateViewFields?: Maybe>; - updateViewFilter?: Maybe; - updateViewFilters?: Maybe>; - updateViewSort?: Maybe; - updateViewSorts?: Maybe>; - updateViews?: Maybe>; - updateWebhook?: Maybe; - updateWebhooks?: Maybe>; - updateWorkspace: Workspace; - updateWorkspaceMember?: Maybe; - updateWorkspaceMembers?: Maybe>; - uploadFile: Scalars['String']; - uploadImage: Scalars['String']; - uploadProfilePicture: Scalars['String']; - uploadWorkspaceLogo: Scalars['String']; - verify: Verify; -}; - - -export type MutationActivateWorkspaceArgs = { - data: ActivateWorkspaceInput; -}; - - -export type MutationAddUserToWorkspaceArgs = { - inviteHash: Scalars['String']; -}; - - -export type MutationAuthorizeAppArgs = { - clientId: Scalars['String']; - codeChallenge?: InputMaybe; - redirectUrl: Scalars['String']; -}; - - -export type MutationChallengeArgs = { - captchaToken?: InputMaybe; - email: Scalars['String']; - password: Scalars['String']; -}; - - -export type MutationCheckoutSessionArgs = { - recurringInterval: SubscriptionInterval; - successUrlPath?: InputMaybe; -}; - - -export type MutationCreateActivitiesArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateActivityArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateActivityTargetArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateActivityTargetsArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateApiKeyArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateApiKeysArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateAttachmentArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateAttachmentsArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateAuditLogArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateAuditLogsArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateBlocklistArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateBlocklistsArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateCalendarChannelArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateCalendarChannelEventAssociationArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateCalendarChannelEventAssociationsArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateCalendarChannelsArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateCalendarEventArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateCalendarEventParticipantArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateCalendarEventParticipantsArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateCalendarEventsArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateCommentArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateCommentsArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateCompaniesArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateCompanyArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateConnectedAccountArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateConnectedAccountsArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateFavoriteArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateFavoritesArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateMessageArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateMessageChannelArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateMessageChannelMessageAssociationArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateMessageChannelMessageAssociationsArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateMessageChannelsArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateMessageParticipantArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateMessageParticipantsArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateMessageThreadArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateMessageThreadsArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateMessagesArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateOpportunitiesArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateOpportunityArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreatePeopleArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreatePersonArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateTimelineActivitiesArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateTimelineActivityArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateViewArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateViewFieldArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateViewFieldsArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateViewFilterArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateViewFiltersArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateViewSortArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateViewSortsArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateViewsArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateWebhookArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateWebhooksArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationCreateWorkspaceMemberArgs = { - data?: InputMaybe; - upsert?: InputMaybe; -}; - - -export type MutationCreateWorkspaceMembersArgs = { - data?: InputMaybe>; - upsert?: InputMaybe; -}; - - -export type MutationDeleteActivitiesArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteActivityArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteActivityTargetArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteActivityTargetsArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteApiKeyArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteApiKeysArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteAttachmentArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteAttachmentsArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteAuditLogArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteAuditLogsArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteBlocklistArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteBlocklistsArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteCalendarChannelArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteCalendarChannelEventAssociationArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteCalendarChannelEventAssociationsArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteCalendarChannelsArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteCalendarEventArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteCalendarEventParticipantArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteCalendarEventParticipantsArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteCalendarEventsArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteCommentArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteCommentsArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteCompaniesArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteCompanyArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteConnectedAccountArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteConnectedAccountsArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteFavoriteArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteFavoritesArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteMessageArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteMessageChannelArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteMessageChannelMessageAssociationArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteMessageChannelMessageAssociationsArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteMessageChannelsArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteMessageParticipantArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteMessageParticipantsArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteMessageThreadArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteMessageThreadsArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteMessagesArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteOneObjectArgs = { - input: DeleteOneObjectInput; -}; - - -export type MutationDeleteOpportunitiesArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteOpportunityArgs = { - id?: InputMaybe; -}; - - -export type MutationDeletePeopleArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeletePersonArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteTimelineActivitiesArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteTimelineActivityArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteViewArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteViewFieldArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteViewFieldsArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteViewFilterArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteViewFiltersArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteViewSortArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteViewSortsArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteViewsArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteWebhookArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteWebhooksArgs = { - filter?: InputMaybe; -}; - - -export type MutationDeleteWorkspaceMemberArgs = { - id?: InputMaybe; -}; - - -export type MutationDeleteWorkspaceMembersArgs = { - filter?: InputMaybe; -}; - - -export type MutationEmailPasswordResetLinkArgs = { - email: Scalars['String']; -}; - - -export type MutationExchangeAuthorizationCodeArgs = { - authorizationCode: Scalars['String']; - clientSecret?: InputMaybe; - codeVerifier?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnActivityArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnActivityTargetArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnApiKeyArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnAttachmentArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnAuditLogArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnBlocklistArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnCalendarChannelArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnCalendarChannelEventAssociationArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnCalendarEventArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnCalendarEventParticipantArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnCommentArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnCompanyArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnConnectedAccountArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnFavoriteArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnMessageArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnMessageChannelArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnMessageChannelMessageAssociationArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnMessageParticipantArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnMessageThreadArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnOpportunityArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnPersonArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnTimelineActivityArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnViewArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnViewFieldArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnViewFilterArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnViewSortArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnWebhookArgs = { - id?: InputMaybe; -}; - - -export type MutationExecuteQuickActionOnWorkspaceMemberArgs = { - id?: InputMaybe; -}; - - -export type MutationGenerateApiKeyTokenArgs = { - apiKeyId: Scalars['String']; - expiresAt: Scalars['String']; -}; - - -export type MutationGenerateJwtArgs = { - workspaceId: Scalars['String']; -}; - - -export type MutationImpersonateArgs = { - userId: Scalars['String']; -}; - - -export type MutationRenewTokenArgs = { - appToken: Scalars['String']; -}; - - -export type MutationSendInviteLinkArgs = { - emails: Array; -}; - - -export type MutationSignUpArgs = { - captchaToken?: InputMaybe; - email: Scalars['String']; - password: Scalars['String']; - workspaceInviteHash?: InputMaybe; -}; - - -export type MutationTrackArgs = { - data: Scalars['JSON']; - type: Scalars['String']; -}; - - -export type MutationUpdateActivitiesArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateActivityArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateActivityTargetArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateActivityTargetsArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateApiKeyArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateApiKeysArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateAttachmentArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateAttachmentsArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateAuditLogArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateAuditLogsArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateBlocklistArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateBlocklistsArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateCalendarChannelArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateCalendarChannelEventAssociationArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateCalendarChannelEventAssociationsArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateCalendarChannelsArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateCalendarEventArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateCalendarEventParticipantArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateCalendarEventParticipantsArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateCalendarEventsArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateCommentArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateCommentsArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateCompaniesArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateCompanyArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateConnectedAccountArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateConnectedAccountsArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateFavoriteArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateFavoritesArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateMessageArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateMessageChannelArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateMessageChannelMessageAssociationArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateMessageChannelMessageAssociationsArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateMessageChannelsArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateMessageParticipantArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateMessageParticipantsArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateMessageThreadArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateMessageThreadsArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateMessagesArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateOneObjectArgs = { - input: UpdateOneObjectInput; -}; - - -export type MutationUpdateOpportunitiesArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateOpportunityArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdatePasswordViaResetTokenArgs = { - newPassword: Scalars['String']; - passwordResetToken: Scalars['String']; -}; - - -export type MutationUpdatePeopleArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdatePersonArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateTimelineActivitiesArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateTimelineActivityArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateViewArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateViewFieldArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateViewFieldsArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateViewFilterArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateViewFiltersArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateViewSortArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateViewSortsArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateViewsArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateWebhookArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateWebhooksArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUpdateWorkspaceArgs = { - data: UpdateWorkspaceInput; -}; - - -export type MutationUpdateWorkspaceMemberArgs = { - data?: InputMaybe; - id?: InputMaybe; -}; - - -export type MutationUpdateWorkspaceMembersArgs = { - data?: InputMaybe; - filter?: InputMaybe; -}; - - -export type MutationUploadFileArgs = { - file: Scalars['Upload']; - fileFolder?: InputMaybe; -}; - - -export type MutationUploadImageArgs = { - file: Scalars['Upload']; - fileFolder?: InputMaybe; -}; - - -export type MutationUploadProfilePictureArgs = { - file: Scalars['Upload']; -}; - - -export type MutationUploadWorkspaceLogoArgs = { - file: Scalars['Upload']; -}; - - -export type MutationVerifyArgs = { - loginToken: Scalars['String']; -}; - -export type ObjectConnection = { - /** Array of edges. */ - edges: Array; - /** Paging information */ - pageInfo: PageInfo; -}; - -export type ObjectFieldsConnection = { - /** Array of edges. */ - edges: Array; - /** Paging information */ - pageInfo: PageInfo; -}; - -/** Onboarding status */ -export enum OnboardingStatus { - Completed = 'COMPLETED', - InviteTeam = 'INVITE_TEAM', - PlanRequired = 'PLAN_REQUIRED', - ProfileCreation = 'PROFILE_CREATION', - SyncEmail = 'SYNC_EMAIL', - WorkspaceActivation = 'WORKSPACE_ACTIVATION' -} - -export type OnboardingStepSuccess = { - /** Boolean that confirms query was dispatched */ - success: Scalars['Boolean']; -}; - -/** An opportunity */ -export type Opportunity = { - /** Activities tied to the opportunity */ - activityTargets?: Maybe; - /** Opportunity amount */ - amount?: Maybe; - /** Attachments linked to the opportunity */ - attachments?: Maybe; - /** Opportunity close date */ - closeDate?: Maybe; - /** Opportunity company */ - company?: Maybe; - /** Opportunity company id foreign key */ - companyId?: Maybe; - /** Creation date */ - createdAt?: Maybe; - /** Favorites linked to the opportunity */ - favorites?: Maybe; - /** Id */ - id?: Maybe; - /** The opportunity name */ - name?: Maybe; - /** Opportunity point of contact */ - pointOfContact?: Maybe; - /** Opportunity point of contact id foreign key */ - pointOfContactId?: Maybe; - /** Opportunity record position */ - position?: Maybe; - /** Opportunity probability */ - probability?: Maybe; - /** Opportunity stage */ - stage?: Maybe; - /** Timeline Activities linked to the opportunity. */ - timelineActivities?: Maybe; - /** Update date */ - updatedAt?: Maybe; -}; - - -/** An opportunity */ -export type OpportunityActivityTargetsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** An opportunity */ -export type OpportunityAttachmentsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** An opportunity */ -export type OpportunityFavoritesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** An opportunity */ -export type OpportunityTimelineActivitiesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - -/** An opportunity */ -export type OpportunityConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** An opportunity */ -export type OpportunityCreateInput = { - /** Opportunity amount */ - amount?: InputMaybe; - /** Opportunity close date */ - closeDate?: InputMaybe; - /** Opportunity company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** The opportunity name */ - name?: InputMaybe; - /** Opportunity point of contact id foreign key */ - pointOfContactId?: InputMaybe; - /** Opportunity record position */ - position?: InputMaybe; - /** Opportunity probability */ - probability?: InputMaybe; - /** Opportunity stage */ - stage?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** An opportunity */ -export type OpportunityEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** An opportunity */ -export type OpportunityFilterInput = { - /** Opportunity amount */ - amount?: InputMaybe; - and?: InputMaybe>>; - /** Opportunity close date */ - closeDate?: InputMaybe; - /** Opportunity company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** The opportunity name */ - name?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** Opportunity point of contact id foreign key */ - pointOfContactId?: InputMaybe; - /** Opportunity record position */ - position?: InputMaybe; - /** Opportunity probability */ - probability?: InputMaybe; - /** Opportunity stage */ - stage?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** An opportunity */ -export type OpportunityOrderByInput = { - /** Opportunity amount */ - amount?: InputMaybe; - /** Opportunity close date */ - closeDate?: InputMaybe; - /** Opportunity company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** The opportunity name */ - name?: InputMaybe; - /** Opportunity point of contact id foreign key */ - pointOfContactId?: InputMaybe; - /** Opportunity record position */ - position?: InputMaybe; - /** Opportunity probability */ - probability?: InputMaybe; - /** Opportunity stage */ - stage?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** Opportunity stage */ -export enum OpportunityStageEnum { - /** Customer */ - Customer = 'CUSTOMER', - /** Meeting */ - Meeting = 'MEETING', - /** New */ - New = 'NEW', - /** Proposal */ - Proposal = 'PROPOSAL', - /** Screening */ - Screening = 'SCREENING' -} - -export type OpportunityStageEnumFilter = { - eq?: InputMaybe; - in?: InputMaybe>>; - is?: InputMaybe; - neq?: InputMaybe; -}; - -/** An opportunity */ -export type OpportunityUpdateInput = { - /** Opportunity amount */ - amount?: InputMaybe; - /** Opportunity close date */ - closeDate?: InputMaybe; - /** Opportunity company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** The opportunity name */ - name?: InputMaybe; - /** Opportunity point of contact id foreign key */ - pointOfContactId?: InputMaybe; - /** Opportunity record position */ - position?: InputMaybe; - /** Opportunity probability */ - probability?: InputMaybe; - /** Opportunity stage */ - stage?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** This enum is used to specify the order of results */ -export enum OrderByDirection { - /** Ascending order, nulls first */ - AscNullsFirst = 'AscNullsFirst', - /** Ascending order, nulls last */ - AscNullsLast = 'AscNullsLast', - /** Descending order, nulls first */ - DescNullsFirst = 'DescNullsFirst', - /** Descending order, nulls last */ - DescNullsLast = 'DescNullsLast' -} - -export type PageInfo = { - /** The cursor of the last returned record. */ - endCursor?: Maybe; - /** true if paging forward and there are more records. */ - hasNextPage: Scalars['Boolean']; - /** true if paging backwards and there are more records. */ - hasPreviousPage: Scalars['Boolean']; - /** The cursor of the first returned record. */ - startCursor?: Maybe; -}; - -/** A person */ -export type Person = { - /** Activities tied to the contact */ - activityTargets?: Maybe; - /** Attachments linked to the contact. */ - attachments?: Maybe; - /** Contact’s avatar */ - avatarUrl?: Maybe; - /** Calendar Event Participants */ - calendarEventParticipants?: Maybe; - /** Contact’s city */ - city?: Maybe; - /** Contact’s company */ - company?: Maybe; - /** Contact’s company id foreign key */ - companyId?: Maybe; - /** Creation date */ - createdAt?: Maybe; - /** Contact’s Email */ - email?: Maybe; - /** Favorites linked to the contact */ - favorites?: Maybe; - /** Id */ - id?: Maybe; - /** Contact’s job title */ - jobTitle?: Maybe; - /** Contact’s Linkedin account */ - linkedinLink?: Maybe; - /** Message Participants */ - messageParticipants?: Maybe; - /** Contact’s name */ - name?: Maybe; - /** Contact’s phone number */ - phone?: Maybe; - /** Point of Contact for Opportunities */ - pointOfContactForOpportunities?: Maybe; - /** Person record Position */ - position?: Maybe; - /** Events linked to the company */ - timelineActivities?: Maybe; - /** Update date */ - updatedAt?: Maybe; - /** Contact’s X/Twitter account */ - xLink?: Maybe; -}; - - -/** A person */ -export type PersonActivityTargetsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A person */ -export type PersonAttachmentsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A person */ -export type PersonCalendarEventParticipantsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A person */ -export type PersonFavoritesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A person */ -export type PersonMessageParticipantsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A person */ -export type PersonPointOfContactForOpportunitiesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A person */ -export type PersonTimelineActivitiesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - -/** A person */ -export type PersonConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** A person */ -export type PersonCreateInput = { - /** Contact’s avatar */ - avatarUrl?: InputMaybe; - /** Contact’s city */ - city?: InputMaybe; - /** Contact’s company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Contact’s Email */ - email?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Contact’s job title */ - jobTitle?: InputMaybe; - /** Contact’s Linkedin account */ - linkedinLink?: InputMaybe; - /** Contact’s name */ - name?: InputMaybe; - /** Contact’s phone number */ - phone?: InputMaybe; - /** Person record Position */ - position?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Contact’s X/Twitter account */ - xLink?: InputMaybe; -}; - -/** A person */ -export type PersonEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** A person */ -export type PersonFilterInput = { - and?: InputMaybe>>; - /** Contact’s avatar */ - avatarUrl?: InputMaybe; - /** Contact’s city */ - city?: InputMaybe; - /** Contact’s company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Contact’s Email */ - email?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Contact’s job title */ - jobTitle?: InputMaybe; - /** Contact’s Linkedin account */ - linkedinLink?: InputMaybe; - /** Contact’s name */ - name?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** Contact’s phone number */ - phone?: InputMaybe; - /** Person record Position */ - position?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Contact’s X/Twitter account */ - xLink?: InputMaybe; -}; - -/** A person */ -export type PersonOrderByInput = { - /** Contact’s avatar */ - avatarUrl?: InputMaybe; - /** Contact’s city */ - city?: InputMaybe; - /** Contact’s company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Contact’s Email */ - email?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Contact’s job title */ - jobTitle?: InputMaybe; - /** Contact’s Linkedin account */ - linkedinLink?: InputMaybe; - /** Contact’s name */ - name?: InputMaybe; - /** Contact’s phone number */ - phone?: InputMaybe; - /** Person record Position */ - position?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Contact’s X/Twitter account */ - xLink?: InputMaybe; -}; - -/** A person */ -export type PersonUpdateInput = { - /** Contact’s avatar */ - avatarUrl?: InputMaybe; - /** Contact’s city */ - city?: InputMaybe; - /** Contact’s company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Contact’s Email */ - email?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Contact’s job title */ - jobTitle?: InputMaybe; - /** Contact’s Linkedin account */ - linkedinLink?: InputMaybe; - /** Contact’s name */ - name?: InputMaybe; - /** Contact’s phone number */ - phone?: InputMaybe; - /** Person record Position */ - position?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Contact’s X/Twitter account */ - xLink?: InputMaybe; -}; - -export type PostgresCredentials = { - id: Scalars['UUID']; - password: Scalars['String']; - user: Scalars['String']; - workspaceId: Scalars['String']; -}; - -export type ProductPriceEntity = { - created: Scalars['Float']; - recurringInterval: SubscriptionInterval; - stripePriceId: Scalars['String']; - unitAmount: Scalars['Float']; -}; - -export type ProductPricesEntity = { - productPrices: Array; - totalNumberOfPrices: Scalars['Int']; -}; - -export type Query = { - activities?: Maybe; - activity?: Maybe; - activityDuplicates?: Maybe>; - activityTarget?: Maybe; - activityTargetDuplicates?: Maybe>; - activityTargets?: Maybe; - apiKey?: Maybe; - apiKeyDuplicates?: Maybe>; - apiKeys?: Maybe; - attachment?: Maybe; - attachmentDuplicates?: Maybe>; - attachments?: Maybe; - auditLog?: Maybe; - auditLogDuplicates?: Maybe>; - auditLogs?: Maybe; - billingPortalSession: SessionEntity; - blocklist?: Maybe; - blocklistDuplicates?: Maybe>; - blocklists?: Maybe; - calendarChannel?: Maybe; - calendarChannelDuplicates?: Maybe>; - calendarChannelEventAssociation?: Maybe; - calendarChannelEventAssociationDuplicates?: Maybe>; - calendarChannelEventAssociations?: Maybe; - calendarChannels?: Maybe; - calendarEvent?: Maybe; - calendarEventDuplicates?: Maybe>; - calendarEventParticipant?: Maybe; - calendarEventParticipantDuplicates?: Maybe>; - calendarEventParticipants?: Maybe; - calendarEvents?: Maybe; - checkUserExists: UserExists; - checkWorkspaceInviteHashIsValid: WorkspaceInviteHashValid; - clientConfig: ClientConfig; - comment?: Maybe; - commentDuplicates?: Maybe>; - comments?: Maybe; - companies?: Maybe; - company?: Maybe; - companyDuplicates?: Maybe>; - connectedAccount?: Maybe; - connectedAccountDuplicates?: Maybe>; - connectedAccounts?: Maybe; - currentUser: User; - currentWorkspace: Workspace; - favorite?: Maybe; - favoriteDuplicates?: Maybe>; - favorites?: Maybe; - findWorkspaceFromInviteHash: Workspace; - getPostgresCredentials?: Maybe; - getProductPrices: ProductPricesEntity; - getTimelineCalendarEventsFromCompanyId: TimelineCalendarEventsWithTotal; - getTimelineCalendarEventsFromPersonId: TimelineCalendarEventsWithTotal; - getTimelineThreadsFromCompanyId: TimelineThreadsWithTotal; - getTimelineThreadsFromPersonId: TimelineThreadsWithTotal; - message?: Maybe; - messageChannel?: Maybe; - messageChannelDuplicates?: Maybe>; - messageChannelMessageAssociation?: Maybe; - messageChannelMessageAssociationDuplicates?: Maybe>; - messageChannelMessageAssociations?: Maybe; - messageChannels?: Maybe; - messageDuplicates?: Maybe>; - messageParticipant?: Maybe; - messageParticipantDuplicates?: Maybe>; - messageParticipants?: Maybe; - messageThread?: Maybe; - messageThreadDuplicates?: Maybe>; - messageThreads?: Maybe; - messages?: Maybe; - object: Object; - objects: ObjectConnection; - opportunities?: Maybe; - opportunity?: Maybe; - opportunityDuplicates?: Maybe>; - people?: Maybe; - person?: Maybe; - personDuplicates?: Maybe>; - timelineActivities?: Maybe; - timelineActivity?: Maybe; - timelineActivityDuplicates?: Maybe>; - validatePasswordResetToken: ValidatePasswordResetToken; - view?: Maybe; - viewDuplicates?: Maybe>; - viewField?: Maybe; - viewFieldDuplicates?: Maybe>; - viewFields?: Maybe; - viewFilter?: Maybe; - viewFilterDuplicates?: Maybe>; - viewFilters?: Maybe; - viewSort?: Maybe; - viewSortDuplicates?: Maybe>; - viewSorts?: Maybe; - views?: Maybe; - webhook?: Maybe; - webhookDuplicates?: Maybe>; - webhooks?: Maybe; - workspaceMember?: Maybe; - workspaceMemberDuplicates?: Maybe>; - workspaceMembers?: Maybe; -}; - - -export type QueryActivitiesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryActivityArgs = { - filter?: InputMaybe; -}; - - -export type QueryActivityDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryActivityTargetArgs = { - filter?: InputMaybe; -}; - - -export type QueryActivityTargetDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryActivityTargetsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryApiKeyArgs = { - filter?: InputMaybe; -}; - - -export type QueryApiKeyDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryApiKeysArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryAttachmentArgs = { - filter?: InputMaybe; -}; - - -export type QueryAttachmentDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryAttachmentsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryAuditLogArgs = { - filter?: InputMaybe; -}; - - -export type QueryAuditLogDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryAuditLogsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryBillingPortalSessionArgs = { - returnUrlPath?: InputMaybe; -}; - - -export type QueryBlocklistArgs = { - filter?: InputMaybe; -}; - - -export type QueryBlocklistDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryBlocklistsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryCalendarChannelArgs = { - filter?: InputMaybe; -}; - - -export type QueryCalendarChannelDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryCalendarChannelEventAssociationArgs = { - filter?: InputMaybe; -}; - - -export type QueryCalendarChannelEventAssociationDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryCalendarChannelEventAssociationsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryCalendarChannelsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryCalendarEventArgs = { - filter?: InputMaybe; -}; - - -export type QueryCalendarEventDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryCalendarEventParticipantArgs = { - filter?: InputMaybe; -}; - - -export type QueryCalendarEventParticipantDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryCalendarEventParticipantsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryCalendarEventsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryCheckUserExistsArgs = { - captchaToken?: InputMaybe; - email: Scalars['String']; -}; - - -export type QueryCheckWorkspaceInviteHashIsValidArgs = { - inviteHash: Scalars['String']; -}; - - -export type QueryCommentArgs = { - filter?: InputMaybe; -}; - - -export type QueryCommentDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryCommentsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryCompaniesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryCompanyArgs = { - filter?: InputMaybe; -}; - - -export type QueryCompanyDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryConnectedAccountArgs = { - filter?: InputMaybe; -}; - - -export type QueryConnectedAccountDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryConnectedAccountsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryFavoriteArgs = { - filter?: InputMaybe; -}; - - -export type QueryFavoriteDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryFavoritesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryFindWorkspaceFromInviteHashArgs = { - inviteHash: Scalars['String']; -}; - - -export type QueryGetProductPricesArgs = { - product: Scalars['String']; -}; - - -export type QueryGetTimelineCalendarEventsFromCompanyIdArgs = { - companyId: Scalars['UUID']; - page: Scalars['Int']; - pageSize: Scalars['Int']; -}; - - -export type QueryGetTimelineCalendarEventsFromPersonIdArgs = { - page: Scalars['Int']; - pageSize: Scalars['Int']; - personId: Scalars['UUID']; -}; - - -export type QueryGetTimelineThreadsFromCompanyIdArgs = { - companyId: Scalars['UUID']; - page: Scalars['Int']; - pageSize: Scalars['Int']; -}; - - -export type QueryGetTimelineThreadsFromPersonIdArgs = { - page: Scalars['Int']; - pageSize: Scalars['Int']; - personId: Scalars['UUID']; -}; - - -export type QueryMessageArgs = { - filter?: InputMaybe; -}; - - -export type QueryMessageChannelArgs = { - filter?: InputMaybe; -}; - - -export type QueryMessageChannelDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryMessageChannelMessageAssociationArgs = { - filter?: InputMaybe; -}; - - -export type QueryMessageChannelMessageAssociationDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryMessageChannelMessageAssociationsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryMessageChannelsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryMessageDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryMessageParticipantArgs = { - filter?: InputMaybe; -}; - - -export type QueryMessageParticipantDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryMessageParticipantsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryMessageThreadArgs = { - filter?: InputMaybe; -}; - - -export type QueryMessageThreadDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryMessageThreadsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryMessagesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryOpportunitiesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryOpportunityArgs = { - filter?: InputMaybe; -}; - - -export type QueryOpportunityDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryPeopleArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryPersonArgs = { - filter?: InputMaybe; -}; - - -export type QueryPersonDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryTimelineActivitiesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryTimelineActivityArgs = { - filter?: InputMaybe; -}; - - -export type QueryTimelineActivityDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryValidatePasswordResetTokenArgs = { - passwordResetToken: Scalars['String']; -}; - - -export type QueryViewArgs = { - filter?: InputMaybe; -}; - - -export type QueryViewDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryViewFieldArgs = { - filter?: InputMaybe; -}; - - -export type QueryViewFieldDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryViewFieldsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryViewFilterArgs = { - filter?: InputMaybe; -}; - - -export type QueryViewFilterDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryViewFiltersArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryViewSortArgs = { - filter?: InputMaybe; -}; - - -export type QueryViewSortDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryViewSortsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryViewsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryWebhookArgs = { - filter?: InputMaybe; -}; - - -export type QueryWebhookDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryWebhooksArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -export type QueryWorkspaceMemberArgs = { - filter?: InputMaybe; -}; - - -export type QueryWorkspaceMemberDuplicatesArgs = { - data?: InputMaybe>>; - ids?: InputMaybe>>; -}; - - -export type QueryWorkspaceMembersArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - -export type RawJsonFilter = { - is?: InputMaybe; -}; - -export type RelationConnection = { - /** Array of edges. */ - edges: Array; - /** Paging information */ - pageInfo: PageInfo; -}; - -export type RelationDefinition = { - direction: RelationType; - relationId: Scalars['UUID']; - sourceFieldMetadata: Field; - sourceObjectMetadata: Object; - targetFieldMetadata: Field; - targetObjectMetadata: Object; -}; - -/** Relation definition type */ -export enum RelationType { - ManyToMany = 'MANY_TO_MANY', - ManyToOne = 'MANY_TO_ONE', - OneToMany = 'ONE_TO_MANY', - OneToOne = 'ONE_TO_ONE' -} - -/** Type of the relation */ -export enum RelationMetadataType { - ManyToMany = 'MANY_TO_MANY', - ManyToOne = 'MANY_TO_ONE', - OneToMany = 'ONE_TO_MANY', - OneToOne = 'ONE_TO_ONE' -} - -export type RemoteServer = { - createdAt: Scalars['DateTime']; - foreignDataWrapperId: Scalars['ID']; - foreignDataWrapperOptions?: Maybe; - foreignDataWrapperType: Scalars['String']; - id: Scalars['ID']; - label: Scalars['String']; - schema?: Maybe; - updatedAt: Scalars['DateTime']; - userMappingOptions?: Maybe; -}; - -export type RemoteTable = { - id?: Maybe; - name: Scalars['String']; - schema?: Maybe; - schemaPendingUpdates?: Maybe>; - status: RemoteTableStatus; -}; - -/** Status of the table */ -export enum RemoteTableStatus { - NotSynced = 'NOT_SYNCED', - Synced = 'SYNCED' -} - -export type SendInviteLink = { - /** Boolean that confirms query was dispatched */ - success: Scalars['Boolean']; -}; - -export type Sentry = { - dsn?: Maybe; - environment?: Maybe; - release?: Maybe; -}; - -export type SessionEntity = { - url?: Maybe; -}; - -/** Sort Directions */ -export enum SortDirection { - Asc = 'ASC', - Desc = 'DESC' -} - -/** Sort Nulls Options */ -export enum SortNulls { - NullsFirst = 'NULLS_FIRST', - NullsLast = 'NULLS_LAST' -} - -export type StringFilter = { - eq?: InputMaybe; - gt?: InputMaybe; - gte?: InputMaybe; - ilike?: InputMaybe; - in?: InputMaybe>; - iregex?: InputMaybe; - is?: InputMaybe; - like?: InputMaybe; - lt?: InputMaybe; - lte?: InputMaybe; - neq?: InputMaybe; - regex?: InputMaybe; - startsWith?: InputMaybe; -}; - -export enum SubscriptionInterval { - Day = 'Day', - Month = 'Month', - Week = 'Week', - Year = 'Year' -} - -export enum SubscriptionStatus { - Active = 'Active', - Canceled = 'Canceled', - Incomplete = 'Incomplete', - IncompleteExpired = 'IncompleteExpired', - PastDue = 'PastDue', - Paused = 'Paused', - Trialing = 'Trialing', - Unpaid = 'Unpaid' -} - -export type Support = { - supportDriver: Scalars['String']; - supportFrontChatId?: Maybe; -}; - -export type Telemetry = { - enabled: Scalars['Boolean']; -}; - -/** Aggregated / filtered event to be displayed on the timeline */ -export type TimelineActivity = { - /** Event company */ - company?: Maybe; - /** Event company id foreign key */ - companyId?: Maybe; - /** Creation date */ - createdAt?: Maybe; - /** Creation date */ - happensAt?: Maybe; - /** Id */ - id?: Maybe; - /** inked Object Metadata Id */ - linkedObjectMetadataId?: Maybe; - /** Cached record name */ - linkedRecordCachedName?: Maybe; - /** Linked Record id */ - linkedRecordId?: Maybe; - /** Event name */ - name?: Maybe; - /** Event opportunity */ - opportunity?: Maybe; - /** Event opportunity id foreign key */ - opportunityId?: Maybe; - /** Event person */ - person?: Maybe; - /** Event person id foreign key */ - personId?: Maybe; - /** Json value for event details */ - properties?: Maybe; - /** Update date */ - updatedAt?: Maybe; - /** Event workspace member */ - workspaceMember?: Maybe; - /** Event workspace member id foreign key */ - workspaceMemberId?: Maybe; -}; - -/** Aggregated / filtered event to be displayed on the timeline */ -export type TimelineActivityConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** Aggregated / filtered event to be displayed on the timeline */ -export type TimelineActivityCreateInput = { - /** Event company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Creation date */ - happensAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** inked Object Metadata Id */ - linkedObjectMetadataId?: InputMaybe; - /** Cached record name */ - linkedRecordCachedName?: InputMaybe; - /** Linked Record id */ - linkedRecordId?: InputMaybe; - /** Event name */ - name?: InputMaybe; - /** Event opportunity id foreign key */ - opportunityId?: InputMaybe; - /** Event person id foreign key */ - personId?: InputMaybe; - /** Json value for event details */ - properties?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Event workspace member id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -/** Aggregated / filtered event to be displayed on the timeline */ -export type TimelineActivityEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** Aggregated / filtered event to be displayed on the timeline */ -export type TimelineActivityFilterInput = { - and?: InputMaybe>>; - /** Event company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Creation date */ - happensAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** inked Object Metadata Id */ - linkedObjectMetadataId?: InputMaybe; - /** Cached record name */ - linkedRecordCachedName?: InputMaybe; - /** Linked Record id */ - linkedRecordId?: InputMaybe; - /** Event name */ - name?: InputMaybe; - not?: InputMaybe; - /** Event opportunity id foreign key */ - opportunityId?: InputMaybe; - or?: InputMaybe>>; - /** Event person id foreign key */ - personId?: InputMaybe; - /** Json value for event details */ - properties?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Event workspace member id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -/** Aggregated / filtered event to be displayed on the timeline */ -export type TimelineActivityOrderByInput = { - /** Event company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Creation date */ - happensAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** inked Object Metadata Id */ - linkedObjectMetadataId?: InputMaybe; - /** Cached record name */ - linkedRecordCachedName?: InputMaybe; - /** Linked Record id */ - linkedRecordId?: InputMaybe; - /** Event name */ - name?: InputMaybe; - /** Event opportunity id foreign key */ - opportunityId?: InputMaybe; - /** Event person id foreign key */ - personId?: InputMaybe; - /** Json value for event details */ - properties?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Event workspace member id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -/** Aggregated / filtered event to be displayed on the timeline */ -export type TimelineActivityUpdateInput = { - /** Event company id foreign key */ - companyId?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Creation date */ - happensAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** inked Object Metadata Id */ - linkedObjectMetadataId?: InputMaybe; - /** Cached record name */ - linkedRecordCachedName?: InputMaybe; - /** Linked Record id */ - linkedRecordId?: InputMaybe; - /** Event name */ - name?: InputMaybe; - /** Event opportunity id foreign key */ - opportunityId?: InputMaybe; - /** Event person id foreign key */ - personId?: InputMaybe; - /** Json value for event details */ - properties?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Event workspace member id foreign key */ - workspaceMemberId?: InputMaybe; -}; - -export type TimelineCalendarEvent = { - conferenceLink: LinkMetadata; - conferenceSolution: Scalars['String']; - description: Scalars['String']; - endsAt: Scalars['DateTime']; - id: Scalars['UUID']; - isCanceled: Scalars['Boolean']; - isFullDay: Scalars['Boolean']; - location: Scalars['String']; - participants: Array; - startsAt: Scalars['DateTime']; - title: Scalars['String']; - visibility: CalendarChannelVisibility; -}; - -export type TimelineCalendarEventParticipant = { - avatarUrl: Scalars['String']; - displayName: Scalars['String']; - firstName: Scalars['String']; - handle: Scalars['String']; - lastName: Scalars['String']; - personId?: Maybe; - workspaceMemberId?: Maybe; -}; - -export type TimelineCalendarEventsWithTotal = { - timelineCalendarEvents: Array; - totalNumberOfCalendarEvents: Scalars['Int']; -}; - -export type TimelineThread = { - firstParticipant: TimelineThreadParticipant; - id: Scalars['UUID']; - lastMessageBody: Scalars['String']; - lastMessageReceivedAt: Scalars['DateTime']; - lastTwoParticipants: Array; - numberOfMessagesInThread: Scalars['Float']; - participantCount: Scalars['Float']; - read: Scalars['Boolean']; - subject: Scalars['String']; - visibility: MessageChannelVisibility; -}; - -export type TimelineThreadParticipant = { - avatarUrl: Scalars['String']; - displayName: Scalars['String']; - firstName: Scalars['String']; - handle: Scalars['String']; - lastName: Scalars['String']; - personId?: Maybe; - workspaceMemberId?: Maybe; -}; - -export type TimelineThreadsWithTotal = { - timelineThreads: Array; - totalNumberOfThreads: Scalars['Int']; -}; - -export type TransientToken = { - transientToken: AuthToken; -}; - -export type UuidFilterComparison = { - eq?: InputMaybe; - gt?: InputMaybe; - gte?: InputMaybe; - iLike?: InputMaybe; - in?: InputMaybe>; - is?: InputMaybe; - isNot?: InputMaybe; - like?: InputMaybe; - lt?: InputMaybe; - lte?: InputMaybe; - neq?: InputMaybe; - notILike?: InputMaybe; - notIn?: InputMaybe>; - notLike?: InputMaybe; -}; - -export type UpdateBillingEntity = { - /** Boolean that confirms query was successful */ - success: Scalars['Boolean']; -}; - -export type UpdateObjectPayload = { - description?: InputMaybe; - icon?: InputMaybe; - imageIdentifierFieldMetadataId?: InputMaybe; - isActive?: InputMaybe; - labelIdentifierFieldMetadataId?: InputMaybe; - labelPlural?: InputMaybe; - labelSingular?: InputMaybe; - namePlural?: InputMaybe; - nameSingular?: InputMaybe; -}; - -export type UpdateOneObjectInput = { - /** The id of the object to update */ - id: Scalars['UUID']; - update: UpdateObjectPayload; -}; - -export type UpdateWorkspaceInput = { - allowImpersonation?: InputMaybe; - displayName?: InputMaybe; - domainName?: InputMaybe; - inviteHash?: InputMaybe; - logo?: InputMaybe; -}; - -export type User = { - canImpersonate: Scalars['Boolean']; - createdAt: Scalars['DateTime']; - defaultAvatarUrl?: Maybe; - defaultWorkspace: Workspace; - defaultWorkspaceId: Scalars['String']; - deletedAt?: Maybe; - disabled?: Maybe; - email: Scalars['String']; - emailVerified: Scalars['Boolean']; - firstName: Scalars['String']; - id: Scalars['UUID']; - lastName: Scalars['String']; - onboardingStatus?: Maybe; - passwordHash?: Maybe; - /** @deprecated field migrated into the AppTokens Table ref: https://github.com/twentyhq/twenty/issues/5021 */ - passwordResetToken?: Maybe; - /** @deprecated field migrated into the AppTokens Table ref: https://github.com/twentyhq/twenty/issues/5021 */ - passwordResetTokenExpiresAt?: Maybe; - supportUserHash?: Maybe; - updatedAt: Scalars['DateTime']; - workspaceMember?: Maybe; - workspaces: Array; -}; - -export type UserEdge = { - /** Cursor for this node. */ - cursor: Scalars['ConnectionCursor']; - /** The node containing the User */ - node: User; -}; - -export type UserExists = { - exists: Scalars['Boolean']; -}; - -export type UserMappingOptionsUser = { - user?: Maybe; -}; - -export type UserWorkspace = { - createdAt: Scalars['DateTime']; - deletedAt?: Maybe; - id: Scalars['UUID']; - updatedAt: Scalars['DateTime']; - user: User; - userId: Scalars['String']; - workspace?: Maybe; - workspaceId: Scalars['String']; -}; - -export type ValidatePasswordResetToken = { - email: Scalars['String']; - id: Scalars['String']; -}; - -export type Verify = { - tokens: AuthTokenPair; - user: User; -}; - -/** (System) Views */ -export type View = { - /** Creation date */ - createdAt?: Maybe; - /** View icon */ - icon?: Maybe; - /** Id */ - id?: Maybe; - /** Describes if the view is in compact mode */ - isCompact?: Maybe; - /** View Kanban column field */ - kanbanFieldMetadataId?: Maybe; - /** View key */ - key?: Maybe; - /** View name */ - name?: Maybe; - /** View target object */ - objectMetadataId?: Maybe; - /** View position */ - position?: Maybe; - /** View type */ - type?: Maybe; - /** Update date */ - updatedAt?: Maybe; - /** View Fields */ - viewFields?: Maybe; - /** View Filters */ - viewFilters?: Maybe; - /** View Sorts */ - viewSorts?: Maybe; -}; - - -/** (System) Views */ -export type ViewViewFieldsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** (System) Views */ -export type ViewViewFiltersArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** (System) Views */ -export type ViewViewSortsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - -/** (System) Views */ -export type ViewConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** (System) Views */ -export type ViewCreateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** View icon */ - icon?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Describes if the view is in compact mode */ - isCompact?: InputMaybe; - /** View Kanban column field */ - kanbanFieldMetadataId?: InputMaybe; - /** View key */ - key?: InputMaybe; - /** View name */ - name?: InputMaybe; - /** View target object */ - objectMetadataId: Scalars['UUID']; - /** View position */ - position?: InputMaybe; - /** View type */ - type?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** (System) Views */ -export type ViewEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** (System) View Fields */ -export type ViewField = { - /** Creation date */ - createdAt?: Maybe; - /** View Field target field */ - fieldMetadataId?: Maybe; - /** Id */ - id?: Maybe; - /** View Field visibility */ - isVisible?: Maybe; - /** View Field position */ - position?: Maybe; - /** View Field size */ - size?: Maybe; - /** Update date */ - updatedAt?: Maybe; - /** View Field related view */ - view?: Maybe; - /** View Field related view id foreign key */ - viewId?: Maybe; -}; - -/** (System) View Fields */ -export type ViewFieldConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** (System) View Fields */ -export type ViewFieldCreateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** View Field target field */ - fieldMetadataId: Scalars['UUID']; - /** Id */ - id?: InputMaybe; - /** View Field visibility */ - isVisible?: InputMaybe; - /** View Field position */ - position?: InputMaybe; - /** View Field size */ - size?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** View Field related view id foreign key */ - viewId?: InputMaybe; -}; - -/** (System) View Fields */ -export type ViewFieldEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** (System) View Fields */ -export type ViewFieldFilterInput = { - and?: InputMaybe>>; - /** Creation date */ - createdAt?: InputMaybe; - /** View Field target field */ - fieldMetadataId?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** View Field visibility */ - isVisible?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** View Field position */ - position?: InputMaybe; - /** View Field size */ - size?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** View Field related view id foreign key */ - viewId?: InputMaybe; -}; - -/** (System) View Fields */ -export type ViewFieldOrderByInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** View Field target field */ - fieldMetadataId?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** View Field visibility */ - isVisible?: InputMaybe; - /** View Field position */ - position?: InputMaybe; - /** View Field size */ - size?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** View Field related view id foreign key */ - viewId?: InputMaybe; -}; - -/** (System) View Fields */ -export type ViewFieldUpdateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** View Field target field */ - fieldMetadataId?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** View Field visibility */ - isVisible?: InputMaybe; - /** View Field position */ - position?: InputMaybe; - /** View Field size */ - size?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** View Field related view id foreign key */ - viewId?: InputMaybe; -}; - -/** (System) View Filters */ -export type ViewFilter = { - /** Creation date */ - createdAt?: Maybe; - /** View Filter Display Value */ - displayValue?: Maybe; - /** View Filter target field */ - fieldMetadataId?: Maybe; - /** Id */ - id?: Maybe; - /** View Filter operand */ - operand?: Maybe; - /** Update date */ - updatedAt?: Maybe; - /** View Filter value */ - value?: Maybe; - /** View Filter related view */ - view?: Maybe; - /** View Filter related view id foreign key */ - viewId?: Maybe; -}; - -/** (System) View Filters */ -export type ViewFilterConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** (System) View Filters */ -export type ViewFilterCreateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** View Filter Display Value */ - displayValue?: InputMaybe; - /** View Filter target field */ - fieldMetadataId: Scalars['UUID']; - /** Id */ - id?: InputMaybe; - /** View Filter operand */ - operand?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** View Filter value */ - value?: InputMaybe; - /** View Filter related view id foreign key */ - viewId?: InputMaybe; -}; - -/** (System) View Filters */ -export type ViewFilterEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** (System) View Filters */ -export type ViewFilterFilterInput = { - and?: InputMaybe>>; - /** Creation date */ - createdAt?: InputMaybe; - /** View Filter Display Value */ - displayValue?: InputMaybe; - /** View Filter target field */ - fieldMetadataId?: InputMaybe; - /** Id */ - id?: InputMaybe; - not?: InputMaybe; - /** View Filter operand */ - operand?: InputMaybe; - or?: InputMaybe>>; - /** Update date */ - updatedAt?: InputMaybe; - /** View Filter value */ - value?: InputMaybe; - /** View Filter related view id foreign key */ - viewId?: InputMaybe; -}; - -/** (System) Views */ -export type ViewFilterInput = { - and?: InputMaybe>>; - /** Creation date */ - createdAt?: InputMaybe; - /** View icon */ - icon?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Describes if the view is in compact mode */ - isCompact?: InputMaybe; - /** View Kanban column field */ - kanbanFieldMetadataId?: InputMaybe; - /** View key */ - key?: InputMaybe; - /** View name */ - name?: InputMaybe; - not?: InputMaybe; - /** View target object */ - objectMetadataId?: InputMaybe; - or?: InputMaybe>>; - /** View position */ - position?: InputMaybe; - /** View type */ - type?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** (System) View Filters */ -export type ViewFilterOrderByInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** View Filter Display Value */ - displayValue?: InputMaybe; - /** View Filter target field */ - fieldMetadataId?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** View Filter operand */ - operand?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** View Filter value */ - value?: InputMaybe; - /** View Filter related view id foreign key */ - viewId?: InputMaybe; -}; - -/** (System) View Filters */ -export type ViewFilterUpdateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** View Filter Display Value */ - displayValue?: InputMaybe; - /** View Filter target field */ - fieldMetadataId?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** View Filter operand */ - operand?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** View Filter value */ - value?: InputMaybe; - /** View Filter related view id foreign key */ - viewId?: InputMaybe; -}; - -/** View key */ -export enum ViewKeyEnum { - /** Index */ - Index = 'INDEX' -} - -export type ViewKeyEnumFilter = { - eq?: InputMaybe; - in?: InputMaybe>>; - is?: InputMaybe; - neq?: InputMaybe; -}; - -/** (System) Views */ -export type ViewOrderByInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** View icon */ - icon?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Describes if the view is in compact mode */ - isCompact?: InputMaybe; - /** View Kanban column field */ - kanbanFieldMetadataId?: InputMaybe; - /** View key */ - key?: InputMaybe; - /** View name */ - name?: InputMaybe; - /** View target object */ - objectMetadataId?: InputMaybe; - /** View position */ - position?: InputMaybe; - /** View type */ - type?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** (System) View Sorts */ -export type ViewSort = { - /** Creation date */ - createdAt?: Maybe; - /** View Sort direction */ - direction?: Maybe; - /** View Sort target field */ - fieldMetadataId?: Maybe; - /** Id */ - id?: Maybe; - /** Update date */ - updatedAt?: Maybe; - /** View Sort related view */ - view?: Maybe; - /** View Sort related view id foreign key */ - viewId?: Maybe; -}; - -/** (System) View Sorts */ -export type ViewSortConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** (System) View Sorts */ -export type ViewSortCreateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** View Sort direction */ - direction?: InputMaybe; - /** View Sort target field */ - fieldMetadataId: Scalars['UUID']; - /** Id */ - id?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** View Sort related view id foreign key */ - viewId?: InputMaybe; -}; - -/** (System) View Sorts */ -export type ViewSortEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** (System) View Sorts */ -export type ViewSortFilterInput = { - and?: InputMaybe>>; - /** Creation date */ - createdAt?: InputMaybe; - /** View Sort direction */ - direction?: InputMaybe; - /** View Sort target field */ - fieldMetadataId?: InputMaybe; - /** Id */ - id?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** Update date */ - updatedAt?: InputMaybe; - /** View Sort related view id foreign key */ - viewId?: InputMaybe; -}; - -/** (System) View Sorts */ -export type ViewSortOrderByInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** View Sort direction */ - direction?: InputMaybe; - /** View Sort target field */ - fieldMetadataId?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** View Sort related view id foreign key */ - viewId?: InputMaybe; -}; - -/** (System) View Sorts */ -export type ViewSortUpdateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** View Sort direction */ - direction?: InputMaybe; - /** View Sort target field */ - fieldMetadataId?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** View Sort related view id foreign key */ - viewId?: InputMaybe; -}; - -/** (System) Views */ -export type ViewUpdateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** View icon */ - icon?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Describes if the view is in compact mode */ - isCompact?: InputMaybe; - /** View Kanban column field */ - kanbanFieldMetadataId?: InputMaybe; - /** View key */ - key?: InputMaybe; - /** View name */ - name?: InputMaybe; - /** View target object */ - objectMetadataId?: InputMaybe; - /** View position */ - position?: InputMaybe; - /** View type */ - type?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** A webhook */ -export type Webhook = { - /** Creation date */ - createdAt?: Maybe; - /** Id */ - id?: Maybe; - /** Webhook operation */ - operation?: Maybe; - /** Webhook target url */ - targetUrl?: Maybe; - /** Update date */ - updatedAt?: Maybe; -}; - -/** A webhook */ -export type WebhookConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** A webhook */ -export type WebhookCreateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Webhook operation */ - operation?: InputMaybe; - /** Webhook target url */ - targetUrl?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** A webhook */ -export type WebhookEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** A webhook */ -export type WebhookFilterInput = { - and?: InputMaybe>>; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - not?: InputMaybe; - /** Webhook operation */ - operation?: InputMaybe; - or?: InputMaybe>>; - /** Webhook target url */ - targetUrl?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** A webhook */ -export type WebhookOrderByInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Webhook operation */ - operation?: InputMaybe; - /** Webhook target url */ - targetUrl?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -/** A webhook */ -export type WebhookUpdateInput = { - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Webhook operation */ - operation?: InputMaybe; - /** Webhook target url */ - targetUrl?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; -}; - -export type Workspace = { - activationStatus: Scalars['String']; - allowImpersonation: Scalars['Boolean']; - billingSubscriptions?: Maybe>; - createdAt: Scalars['DateTime']; - currentBillingSubscription?: Maybe; - metadataVersion?: Maybe; - deletedAt?: Maybe; - displayName?: Maybe; - domainName?: Maybe; - featureFlags?: Maybe>; - id: Scalars['UUID']; - inviteHash?: Maybe; - logo?: Maybe; - updatedAt: Scalars['DateTime']; - workspaceMembersCount?: Maybe; -}; - - -export type WorkspaceBillingSubscriptionsArgs = { - filter?: BillingSubscriptionFilter; - sorting?: Array; -}; - - -export type WorkspaceFeatureFlagsArgs = { - filter?: FeatureFlagFilter; - sorting?: Array; -}; - -export type WorkspaceEdge = { - /** Cursor for this node. */ - cursor: Scalars['ConnectionCursor']; - /** The node containing the Workspace */ - node: Workspace; -}; - -export type WorkspaceInviteHashValid = { - isValid: Scalars['Boolean']; -}; - -/** A workspace member */ -export type WorkspaceMember = { - /** Account owner for companies */ - accountOwnerForCompanies?: Maybe; - /** Activities assigned to the workspace member */ - assignedActivities?: Maybe; - /** Audit Logs linked to the workspace member */ - auditLogs?: Maybe; - /** Activities created by the workspace member */ - authoredActivities?: Maybe; - /** Attachments created by the workspace member */ - authoredAttachments?: Maybe; - /** Authored comments */ - authoredComments?: Maybe; - /** Workspace member avatar */ - avatarUrl?: Maybe; - /** Blocklisted handles */ - blocklist?: Maybe; - /** Calendar Event Participants */ - calendarEventParticipants?: Maybe; - /** Preferred color scheme */ - colorScheme: Scalars['String']; - /** Connected accounts */ - connectedAccounts?: Maybe; - /** Creation date */ - createdAt?: Maybe; - /** Favorites linked to the workspace member */ - favorites?: Maybe; - /** Id */ - id: Scalars['UUID']; - /** Preferred language */ - locale: Scalars['String']; - /** Message Participants */ - messageParticipants?: Maybe; - /** Workspace member name */ - name: FullName; - /** Events linked to the workspace member */ - timelineActivities?: Maybe; - /** Update date */ - updatedAt?: Maybe; - /** Related user email address */ - userEmail?: Maybe; - /** Associated User Id */ - userId?: Maybe; -}; - - -/** A workspace member */ -export type WorkspaceMemberAccountOwnerForCompaniesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A workspace member */ -export type WorkspaceMemberAssignedActivitiesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A workspace member */ -export type WorkspaceMemberAuditLogsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A workspace member */ -export type WorkspaceMemberAuthoredActivitiesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A workspace member */ -export type WorkspaceMemberAuthoredAttachmentsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A workspace member */ -export type WorkspaceMemberAuthoredCommentsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A workspace member */ -export type WorkspaceMemberBlocklistArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A workspace member */ -export type WorkspaceMemberCalendarEventParticipantsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A workspace member */ -export type WorkspaceMemberConnectedAccountsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A workspace member */ -export type WorkspaceMemberFavoritesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A workspace member */ -export type WorkspaceMemberMessageParticipantsArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - - -/** A workspace member */ -export type WorkspaceMemberTimelineActivitiesArgs = { - after?: InputMaybe; - before?: InputMaybe; - filter?: InputMaybe; - first?: InputMaybe; - last?: InputMaybe; - limit?: InputMaybe; - orderBy?: InputMaybe>>; -}; - -/** A workspace member */ -export type WorkspaceMemberConnection = { - edges?: Maybe>; - pageInfo?: Maybe; - /** Total number of records in the connection */ - totalCount?: Maybe; -}; - -/** A workspace member */ -export type WorkspaceMemberCreateInput = { - /** Workspace member avatar */ - avatarUrl?: InputMaybe; - /** Preferred color scheme */ - colorScheme?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Preferred language */ - locale?: InputMaybe; - /** Workspace member name */ - name?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Related user email address */ - userEmail?: InputMaybe; - /** Associated User Id */ - userId: Scalars['UUID']; -}; - -/** A workspace member */ -export type WorkspaceMemberEdge = { - cursor?: Maybe; - node?: Maybe; -}; - -/** A workspace member */ -export type WorkspaceMemberFilterInput = { - and?: InputMaybe>>; - /** Workspace member avatar */ - avatarUrl?: InputMaybe; - /** Preferred color scheme */ - colorScheme?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Preferred language */ - locale?: InputMaybe; - /** Workspace member name */ - name?: InputMaybe; - not?: InputMaybe; - or?: InputMaybe>>; - /** Update date */ - updatedAt?: InputMaybe; - /** Related user email address */ - userEmail?: InputMaybe; - /** Associated User Id */ - userId?: InputMaybe; -}; - -/** A workspace member */ -export type WorkspaceMemberOrderByInput = { - /** Workspace member avatar */ - avatarUrl?: InputMaybe; - /** Preferred color scheme */ - colorScheme?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Preferred language */ - locale?: InputMaybe; - /** Workspace member name */ - name?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Related user email address */ - userEmail?: InputMaybe; - /** Associated User Id */ - userId?: InputMaybe; -}; - -/** A workspace member */ -export type WorkspaceMemberUpdateInput = { - /** Workspace member avatar */ - avatarUrl?: InputMaybe; - /** Preferred color scheme */ - colorScheme?: InputMaybe; - /** Creation date */ - createdAt?: InputMaybe; - /** Id */ - id?: InputMaybe; - /** Preferred language */ - locale?: InputMaybe; - /** Workspace member name */ - name?: InputMaybe; - /** Update date */ - updatedAt?: InputMaybe; - /** Related user email address */ - userEmail?: InputMaybe; - /** Associated User Id */ - userId?: InputMaybe; -}; - -export type Field = { - createdAt: Scalars['DateTime']; - defaultValue?: Maybe; - description?: Maybe; - fromRelationMetadata?: Maybe; - icon?: Maybe; - id: Scalars['UUID']; - isActive?: Maybe; - isCustom?: Maybe; - isNullable?: Maybe; - isSystem?: Maybe; - label: Scalars['String']; - name: Scalars['String']; - options?: Maybe; - relationDefinition?: Maybe; - settings?: Maybe; - toRelationMetadata?: Maybe; - type: FieldMetadataType; - updatedAt: Scalars['DateTime']; -}; - -export type FieldEdge = { - /** Cursor for this node. */ - cursor: Scalars['ConnectionCursor']; - /** The node containing the field */ - node: Field; -}; - -export type FieldFilter = { - and?: InputMaybe>; - id?: InputMaybe; - isActive?: InputMaybe; - isCustom?: InputMaybe; - isSystem?: InputMaybe; - or?: InputMaybe>; -}; - -export type Object = { - createdAt: Scalars['DateTime']; - dataSourceId: Scalars['String']; - description?: Maybe; - fields: ObjectFieldsConnection; - icon?: Maybe; - id: Scalars['UUID']; - imageIdentifierFieldMetadataId?: Maybe; - isActive: Scalars['Boolean']; - isCustom: Scalars['Boolean']; - isRemote: Scalars['Boolean']; - isSystem: Scalars['Boolean']; - labelIdentifierFieldMetadataId?: Maybe; - labelPlural: Scalars['String']; - labelSingular: Scalars['String']; - namePlural: Scalars['String']; - nameSingular: Scalars['String']; - updatedAt: Scalars['DateTime']; -}; - - -export type ObjectFieldsArgs = { - filter?: FieldFilter; - paging?: CursorPaging; -}; - -export type ObjectEdge = { - /** Cursor for this node. */ - cursor: Scalars['ConnectionCursor']; - /** The node containing the object */ - node: Object; -}; - -export type Relation = { - createdAt: Scalars['DateTime']; - fromFieldMetadataId: Scalars['String']; - fromObjectMetadata: Object; - fromObjectMetadataId: Scalars['String']; - id: Scalars['UUID']; - relationType: RelationMetadataType; - toFieldMetadataId: Scalars['String']; - toObjectMetadata: Object; - toObjectMetadataId: Scalars['String']; - updatedAt: Scalars['DateTime']; -}; - -export type RelationEdge = { - /** Cursor for this node. */ - cursor: Scalars['ConnectionCursor']; - /** The node containing the relation */ - node: Relation; -}; - -export type ExchangeAuthorizationCodeMutationVariables = Exact<{ - authorizationCode: Scalars['String']; - codeVerifier?: InputMaybe; - clientSecret?: InputMaybe; -}>; - - -export type ExchangeAuthorizationCodeMutation = { exchangeAuthorizationCode: { loginToken: { token: string, expiresAt: any }, accessToken: { token: string, expiresAt: any }, refreshToken: { token: string, expiresAt: any } } }; - -export type RenewTokenMutationVariables = Exact<{ - appToken: Scalars['String']; -}>; - - -export type RenewTokenMutation = { renewToken: { tokens: { accessToken: { token: string, expiresAt: any }, refreshToken: { token: string, expiresAt: any } } } }; - -export type CreateOneCompanyMutationVariables = Exact<{ - input: CompanyCreateInput; -}>; - - -export type CreateOneCompanyMutation = { createCompany?: { id?: any | null } | null }; - -export type FindCompanyQueryVariables = Exact<{ - filter: CompanyFilterInput; -}>; - - -export type FindCompanyQuery = { companies?: { edges?: Array<{ node?: { id?: any | null, name?: string | null, linkedinLink?: { url?: string | null, label?: string | null } | null } | null }> | null } | null }; - -export type CreateOnePersonMutationVariables = Exact<{ - input: PersonCreateInput; -}>; - - -export type CreateOnePersonMutation = { createPerson?: { id?: any | null } | null }; - -export type FindPersonQueryVariables = Exact<{ - filter: PersonFilterInput; -}>; - - -export type FindPersonQuery = { people?: { edges?: Array<{ node?: { id?: any | null, name?: { firstName: string, lastName: string } | null, linkedinLink?: { url?: string | null, label?: string | null } | null } | null }> | null } | null }; - - -export const ExchangeAuthorizationCodeDocument = gql` - mutation ExchangeAuthorizationCode($authorizationCode: String!, $codeVerifier: String, $clientSecret: String) { - exchangeAuthorizationCode( - authorizationCode: $authorizationCode - codeVerifier: $codeVerifier - clientSecret: $clientSecret - ) { - loginToken { - token - expiresAt - } - accessToken { - token - expiresAt - } - refreshToken { - token - expiresAt - } - } -} - `; -export type ExchangeAuthorizationCodeMutationFn = Apollo.MutationFunction; - -/** - * __useExchangeAuthorizationCodeMutation__ - * - * To run a mutation, you first call `useExchangeAuthorizationCodeMutation` within a React component and pass it any options that fit your needs. - * When your component renders, `useExchangeAuthorizationCodeMutation` returns a tuple that includes: - * - A mutate function that you can call at any time to execute the mutation - * - An object with fields that represent the current status of the mutation's execution - * - * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; - * - * @example - * const [exchangeAuthorizationCodeMutation, { data, loading, error }] = useExchangeAuthorizationCodeMutation({ - * variables: { - * authorizationCode: // value for 'authorizationCode' - * codeVerifier: // value for 'codeVerifier' - * clientSecret: // value for 'clientSecret' - * }, - * }); - */ -export function useExchangeAuthorizationCodeMutation(baseOptions?: Apollo.MutationHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useMutation(ExchangeAuthorizationCodeDocument, options); - } -export type ExchangeAuthorizationCodeMutationHookResult = ReturnType; -export type ExchangeAuthorizationCodeMutationResult = Apollo.MutationResult; -export type ExchangeAuthorizationCodeMutationOptions = Apollo.BaseMutationOptions; -export const RenewTokenDocument = gql` - mutation RenewToken($appToken: String!) { - renewToken(appToken: $appToken) { - tokens { - accessToken { - token - expiresAt - } - refreshToken { - token - expiresAt - } - } - } -} - `; -export type RenewTokenMutationFn = Apollo.MutationFunction; - -/** - * __useRenewTokenMutation__ - * - * To run a mutation, you first call `useRenewTokenMutation` within a React component and pass it any options that fit your needs. - * When your component renders, `useRenewTokenMutation` returns a tuple that includes: - * - A mutate function that you can call at any time to execute the mutation - * - An object with fields that represent the current status of the mutation's execution - * - * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; - * - * @example - * const [renewTokenMutation, { data, loading, error }] = useRenewTokenMutation({ - * variables: { - * appToken: // value for 'appToken' - * }, - * }); - */ -export function useRenewTokenMutation(baseOptions?: Apollo.MutationHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useMutation(RenewTokenDocument, options); - } -export type RenewTokenMutationHookResult = ReturnType; -export type RenewTokenMutationResult = Apollo.MutationResult; -export type RenewTokenMutationOptions = Apollo.BaseMutationOptions; -export const CreateOneCompanyDocument = gql` - mutation CreateOneCompany($input: CompanyCreateInput!) { - createCompany(data: $input) { - id - } -} - `; -export type CreateOneCompanyMutationFn = Apollo.MutationFunction; - -/** - * __useCreateOneCompanyMutation__ - * - * To run a mutation, you first call `useCreateOneCompanyMutation` within a React component and pass it any options that fit your needs. - * When your component renders, `useCreateOneCompanyMutation` returns a tuple that includes: - * - A mutate function that you can call at any time to execute the mutation - * - An object with fields that represent the current status of the mutation's execution - * - * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; - * - * @example - * const [createOneCompanyMutation, { data, loading, error }] = useCreateOneCompanyMutation({ - * variables: { - * input: // value for 'input' - * }, - * }); - */ -export function useCreateOneCompanyMutation(baseOptions?: Apollo.MutationHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useMutation(CreateOneCompanyDocument, options); - } -export type CreateOneCompanyMutationHookResult = ReturnType; -export type CreateOneCompanyMutationResult = Apollo.MutationResult; -export type CreateOneCompanyMutationOptions = Apollo.BaseMutationOptions; -export const FindCompanyDocument = gql` - query FindCompany($filter: CompanyFilterInput!) { - companies(filter: $filter) { - edges { - node { - id - name - linkedinLink { - url - label - } - } - } - } -} - `; - -/** - * __useFindCompanyQuery__ - * - * To run a query within a React component, call `useFindCompanyQuery` and pass it any options that fit your needs. - * When your component renders, `useFindCompanyQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useFindCompanyQuery({ - * variables: { - * filter: // value for 'filter' - * }, - * }); - */ -export function useFindCompanyQuery(baseOptions: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(FindCompanyDocument, options); - } -export function useFindCompanyLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(FindCompanyDocument, options); - } -export type FindCompanyQueryHookResult = ReturnType; -export type FindCompanyLazyQueryHookResult = ReturnType; -export type FindCompanyQueryResult = Apollo.QueryResult; -export const CreateOnePersonDocument = gql` - mutation CreateOnePerson($input: PersonCreateInput!) { - createPerson(data: $input) { - id - } -} - `; -export type CreateOnePersonMutationFn = Apollo.MutationFunction; - -/** - * __useCreateOnePersonMutation__ - * - * To run a mutation, you first call `useCreateOnePersonMutation` within a React component and pass it any options that fit your needs. - * When your component renders, `useCreateOnePersonMutation` returns a tuple that includes: - * - A mutate function that you can call at any time to execute the mutation - * - An object with fields that represent the current status of the mutation's execution - * - * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; - * - * @example - * const [createOnePersonMutation, { data, loading, error }] = useCreateOnePersonMutation({ - * variables: { - * input: // value for 'input' - * }, - * }); - */ -export function useCreateOnePersonMutation(baseOptions?: Apollo.MutationHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useMutation(CreateOnePersonDocument, options); - } -export type CreateOnePersonMutationHookResult = ReturnType; -export type CreateOnePersonMutationResult = Apollo.MutationResult; -export type CreateOnePersonMutationOptions = Apollo.BaseMutationOptions; -export const FindPersonDocument = gql` - query FindPerson($filter: PersonFilterInput!) { - people(filter: $filter) { - edges { - node { - id - name { - firstName - lastName - } - linkedinLink { - url - label - } - } - } - } -} - `; - -/** - * __useFindPersonQuery__ - * - * To run a query within a React component, call `useFindPersonQuery` and pass it any options that fit your needs. - * When your component renders, `useFindPersonQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useFindPersonQuery({ - * variables: { - * filter: // value for 'filter' - * }, - * }); - */ -export function useFindPersonQuery(baseOptions: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(FindPersonDocument, options); - } -export function useFindPersonLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(FindPersonDocument, options); - } -export type FindPersonQueryHookResult = ReturnType; -export type FindPersonLazyQueryHookResult = ReturnType; -export type FindPersonQueryResult = Apollo.QueryResult; \ No newline at end of file diff --git a/packages/twenty-chrome-extension/src/global.d.ts b/packages/twenty-chrome-extension/src/global.d.ts deleted file mode 100644 index dbb4c627d26..00000000000 --- a/packages/twenty-chrome-extension/src/global.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// - -declare const __APP_VERSION__: string; diff --git a/packages/twenty-chrome-extension/src/graphql/auth/mutations.ts b/packages/twenty-chrome-extension/src/graphql/auth/mutations.ts deleted file mode 100644 index 45804f7069a..00000000000 --- a/packages/twenty-chrome-extension/src/graphql/auth/mutations.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { gql } from '@apollo/client'; - -export const EXCHANGE_AUTHORIZATION_CODE = gql` - mutation ExchangeAuthorizationCode( - $authorizationCode: String! - $codeVerifier: String - $clientSecret: String - ) { - exchangeAuthorizationCode( - authorizationCode: $authorizationCode - codeVerifier: $codeVerifier - clientSecret: $clientSecret - ) { - loginToken { - token - expiresAt - } - accessOrWorkspaceAgnosticToken { - token - expiresAt - } - refreshToken { - token - expiresAt - } - } - } -`; - -export const RENEW_TOKEN = gql` - mutation RenewToken($appToken: String!) { - renewToken(appToken: $appToken) { - tokens { - accessOrWorkspaceAgnosticToken { - token - expiresAt - } - refreshToken { - token - expiresAt - } - } - } - } -`; diff --git a/packages/twenty-chrome-extension/src/graphql/company/mutations.ts b/packages/twenty-chrome-extension/src/graphql/company/mutations.ts deleted file mode 100644 index 36bfabf401a..00000000000 --- a/packages/twenty-chrome-extension/src/graphql/company/mutations.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { gql } from '@apollo/client'; - -export const CREATE_COMPANY = gql` - mutation CreateOneCompany($input: CompanyCreateInput!) { - createCompany(data: $input) { - id - } - } -`; diff --git a/packages/twenty-chrome-extension/src/graphql/company/queries.ts b/packages/twenty-chrome-extension/src/graphql/company/queries.ts deleted file mode 100644 index 7c546855eff..00000000000 --- a/packages/twenty-chrome-extension/src/graphql/company/queries.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { gql } from '@apollo/client'; - -export const FIND_COMPANY = gql` - query FindCompany($filter: CompanyFilterInput!) { - companies(filter: $filter) { - edges { - node { - id - name - linkedinLink { - url - label - } - } - } - } - } -`; diff --git a/packages/twenty-chrome-extension/src/graphql/person/mutations.ts b/packages/twenty-chrome-extension/src/graphql/person/mutations.ts deleted file mode 100644 index 947d3a4e0cd..00000000000 --- a/packages/twenty-chrome-extension/src/graphql/person/mutations.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { gql } from '@apollo/client'; - -export const CREATE_PERSON = gql` - mutation CreateOnePerson($input: PersonCreateInput!) { - createPerson(data: $input) { - id - } - } -`; diff --git a/packages/twenty-chrome-extension/src/graphql/person/queries.ts b/packages/twenty-chrome-extension/src/graphql/person/queries.ts deleted file mode 100644 index efbad921128..00000000000 --- a/packages/twenty-chrome-extension/src/graphql/person/queries.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { gql } from '@apollo/client'; - -export const FIND_PERSON = gql` - query FindPerson($filter: PersonFilterInput!) { - people(filter: $filter) { - edges { - node { - id - name { - firstName - lastName - } - linkedinLink { - url - label - } - } - } - } - } -`; diff --git a/packages/twenty-chrome-extension/src/index.css b/packages/twenty-chrome-extension/src/index.css deleted file mode 100644 index 164e9067cc0..00000000000 --- a/packages/twenty-chrome-extension/src/index.css +++ /dev/null @@ -1,11 +0,0 @@ -* { - margin: 0; - box-sizing: border-box; - font-family: 'Inter', sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -html { - font-size: 13px; -} diff --git a/packages/twenty-chrome-extension/src/manifest.ts b/packages/twenty-chrome-extension/src/manifest.ts deleted file mode 100644 index 797d705aecf..00000000000 --- a/packages/twenty-chrome-extension/src/manifest.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { defineManifest } from '@crxjs/vite-plugin'; - -import packageData from '../package.json'; - -const external_sites = - process.env.VITE_MODE === 'development' - ? [`https://app.twenty.com/*`, `http://localhost:3001/*`] - : [`https://app.twenty.com/*`]; - -export default defineManifest({ - manifest_version: 3, - name: 'Twenty', - description: packageData.description, - version: packageData.version, - - icons: { - 16: 'logo/32-32.png', - 32: 'logo/32-32.png', - 48: 'logo/32-32.png', - }, - - action: {}, - - //TODO: change this to a documenation page - options_page: 'sidepanel.html', - - background: { - service_worker: 'src/background/index.ts', - type: 'module', - }, - - content_scripts: [ - { - matches: ['https://www.linkedin.com/*'], - js: [ - 'src/contentScript/index.ts', - 'src/contentScript/insertSettingsButton.ts', - ], - run_at: 'document_end', - }, - ], - - web_accessible_resources: [ - { - resources: ['sidepanel.html', 'page-inaccessible.html'], - matches: ['https://www.linkedin.com/*'], - }, - ], - - permissions: ['activeTab', 'storage', 'identity', 'sidePanel', 'cookies'], - - // setting host permissions to all http connections will allow - // for people who host on their custom domain to get access to - // extension instead of white listing individual urls - host_permissions: ['https://*/*', 'http://*/*'], - - externally_connectable: { - matches: external_sites, - }, -}); diff --git a/packages/twenty-chrome-extension/src/options/App.tsx b/packages/twenty-chrome-extension/src/options/App.tsx deleted file mode 100644 index 9f41b4caf42..00000000000 --- a/packages/twenty-chrome-extension/src/options/App.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import { useEffect, useState } from 'react'; -import Settings from '~/options/Settings'; -import Sidepanel from '~/options/Sidepanel'; -import { isDefined } from 'twenty-shared/utils'; - -const App = () => { - const [currentScreen, setCurrentScreen] = useState(''); - - useEffect(() => { - const setCurrentScreenState = async () => { - const store = await chrome.storage.local.get(['navigateSidepanel']); - if (isDefined(store.navigateSidepanel)) { - setCurrentScreen(store.navigateSidepanel); - } - }; - - setCurrentScreenState(); - }, []); - - useEffect(() => { - chrome.storage.local.onChanged.addListener((updatedStore) => { - if ( - isDefined(updatedStore.navigateSidepanel) && - isDefined(updatedStore.navigateSidepanel.newValue) - ) { - setCurrentScreen(updatedStore.navigateSidepanel.newValue); - } - }); - }, [setCurrentScreen]); - - switch (currentScreen) { - case 'sidepanel': - return ; - case 'settings': - return ; - default: - return ; - } -}; - -export default App; diff --git a/packages/twenty-chrome-extension/src/options/Loading.tsx b/packages/twenty-chrome-extension/src/options/Loading.tsx deleted file mode 100644 index a0543c9c6da..00000000000 --- a/packages/twenty-chrome-extension/src/options/Loading.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Loader } from '@/ui/display/loader/components/Loader'; -import styled from '@emotion/styled'; - -const StyledContainer = styled.div` - align-items: center; - background: ${({ theme }) => theme.background.noisy}; - display: flex; - flex-direction: column; - height: 100vh; - gap: ${({ theme }) => theme.spacing(2)}; - justify-content: center; -`; - -const Loading = () => { - return ( - - twenty-logo - - - ); -}; - -export default Loading; diff --git a/packages/twenty-chrome-extension/src/options/PageInaccessible.tsx b/packages/twenty-chrome-extension/src/options/PageInaccessible.tsx deleted file mode 100644 index 3f0ade3666d..00000000000 --- a/packages/twenty-chrome-extension/src/options/PageInaccessible.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import styled from '@emotion/styled'; - -import { MainButton } from '@/ui/input/button/MainButton'; - -const StyledWrapper = styled.div` - align-items: center; - background: ${({ theme }) => theme.background.primary}; - display: flex; - height: 100vh; - justify-content: center; -`; - -const StyledContainer = styled.div` - width: 400px; - height: 350px; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - gap: ${({ theme }) => theme.spacing(8)}; -`; - -const StyledTextContainer = styled.div` - align-items: center; - display: flex; - flex-direction: column; - gap: ${({ theme }) => theme.spacing(2)}; - justify-content: center; -`; - -const StyledLargeText = styled.div` - color: ${({ theme }) => theme.font.color.primary}; - font-size: ${({ theme }) => theme.font.size.lg}; - font-weight: ${({ theme }) => theme.font.weight.semiBold}; -`; - -const StyledMediumText = styled.div` - color: ${({ theme }) => theme.font.color.light}; - font-size: ${({ theme }) => theme.font.size.md}; -`; - -const PageInaccessible = () => { - return ( - - - twenty-logo - - - Extension not available on the website - - - Open LinkedIn to use the extension - - - window.open('https://www.linkedin.com/')} - /> - - - ); -}; - -export default PageInaccessible; diff --git a/packages/twenty-chrome-extension/src/options/Settings.tsx b/packages/twenty-chrome-extension/src/options/Settings.tsx deleted file mode 100644 index 6c714faa8f4..00000000000 --- a/packages/twenty-chrome-extension/src/options/Settings.tsx +++ /dev/null @@ -1,123 +0,0 @@ -import styled from '@emotion/styled'; -import { useEffect, useState } from 'react'; - -import { MainButton } from '@/ui/input/button/MainButton'; -import { TextInput } from '@/ui/input/components/TextInput'; -import { clearStore } from '~/utils/apolloClient'; -import { isDefined } from 'twenty-shared/utils'; - -const StyledWrapper = styled.div` - align-items: center; - background: ${({ theme }) => theme.background.primary}; - display: flex; - height: 100vh; - justify-content: center; -`; - -const StyledContainer = styled.div` - width: 400px; - height: 350px; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - gap: ${({ theme }) => theme.spacing(8)}; -`; - -const StyledActionContainer = styled.div` - align-items: center; - display: flex; - flex-direction: column; - gap: 10px; - justify-content: center; - width: 300px; -`; - -const Settings = () => { - const [serverBaseUrl, setServerBaseUrl] = useState(''); - const [clientUrl, setClientUrl] = useState(''); - const [currentClientUrl, setCurrentClientUrl] = useState(''); - const [currentServerUrl, setCurrentServerUrl] = useState(''); - - useEffect(() => { - const getState = async () => { - const store = await chrome.storage.local.get([ - 'serverBaseUrl', - 'clientUrl', - ]); - if (isDefined(store.serverBaseUrl)) { - setServerBaseUrl(store.serverBaseUrl); - setCurrentServerUrl(store.serverBaseUrl); - } else { - setServerBaseUrl(import.meta.env.VITE_SERVER_BASE_URL); - setCurrentServerUrl(import.meta.env.VITE_SERVER_BASE_URL); - } - - if (isDefined(store.clientUrl)) { - setClientUrl(store.clientUrl); - setCurrentClientUrl(store.clientUrl); - } else { - setClientUrl(import.meta.env.VITE_FRONT_BASE_URL); - setCurrentClientUrl(import.meta.env.VITE_FRONT_BASE_URL); - } - }; - void getState(); - }, []); - - const handleSettingsChange = () => { - chrome.storage.local.set({ - serverBaseUrl, - clientUrl, - navigateSidepanel: 'sidepanel', - }); - clearStore(); - }; - - const handleCloseSettings = () => { - chrome.storage.local.set({ - navigateSidepanel: 'sidepanel', - }); - }; - - return ( - - - twenty-logo - - - - - - - - - ); -}; - -export default Settings; diff --git a/packages/twenty-chrome-extension/src/options/Sidepanel.tsx b/packages/twenty-chrome-extension/src/options/Sidepanel.tsx deleted file mode 100644 index 973142f92b7..00000000000 --- a/packages/twenty-chrome-extension/src/options/Sidepanel.tsx +++ /dev/null @@ -1,173 +0,0 @@ -import styled from '@emotion/styled'; -import { useCallback, useEffect, useRef, useState } from 'react'; - -import { MainButton } from '@/ui/input/button/MainButton'; -import { isDefined } from 'twenty-shared/utils'; - -const StyledIframe = styled.iframe` - display: block; - width: 100%; - height: 100vh; - border: none; -`; - -const StyledWrapper = styled.div` - align-items: center; - background: ${({ theme }) => theme.background.primary}; - display: flex; - height: 100vh; - justify-content: center; -`; - -const StyledContainer = styled.div` - width: 400px; - height: 350px; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - gap: ${({ theme }) => theme.spacing(8)}; -`; - -const StyledActionContainer = styled.div` - align-items: center; - display: flex; - flex-direction: column; - gap: 10px; - justify-content: center; - width: 300px; -`; - -const Sidepanel = () => { - const [isAuthenticated, setIsAuthenticated] = useState(false); - const [clientUrl, setClientUrl] = useState( - import.meta.env.VITE_FRONT_BASE_URL, - ); - const iframeRef = useRef(null); - - const setIframeState = useCallback(async () => { - const store = await chrome.storage.local.get([ - 'isAuthenticated', - 'sidepanelUrl', - 'clientUrl', - 'accessToken', - 'refreshToken', - ]); - - if ( - store.isAuthenticated === true && - isDefined(store.accessToken) && - isDefined(store.refreshToken) && - new Date(store.accessToken.expiresAt).getTime() >= Date.now() - ) { - setIsAuthenticated(true); - if (isDefined(store.sidepanelUrl)) { - if (isDefined(store.clientUrl)) { - setClientUrl(`${store.clientUrl}${store.sidepanelUrl}`); - } else { - setClientUrl( - `${import.meta.env.VITE_FRONT_BASE_URL}${store.sidepanelUrl}`, - ); - } - } - } else { - chrome.storage.local.set({ isAuthenticated: false }); - if (isDefined(store.clientUrl)) { - setClientUrl(store.clientUrl); - } - } - }, [setClientUrl]); - - useEffect(() => { - void setIframeState(); - }, [setIframeState]); - - useEffect(() => { - window.addEventListener('message', async (event) => { - const store = await chrome.storage.local.get([ - 'clientUrl', - 'accessToken', - 'refreshToken', - ]); - const clientUrl = isDefined(store.clientUrl) - ? store.clientUrl - : import.meta.env.VITE_FRONT_BASE_URL; - - if ( - isDefined(store.accessToken) && - isDefined(store.refreshToken) && - event.origin === clientUrl && - event.data === 'loaded' - ) { - event.source?.postMessage( - { - type: 'tokens', - value: { - accessToken: { - token: store.accessToken.token, - expiresAt: store.accessToken.expiresAt, - }, - refreshToken: { - token: store.refreshToken.token, - expiresAt: store.refreshToken.expiresAt, - }, - }, - }, - clientUrl, - ); - } - }); - }, []); - - useEffect(() => { - chrome.storage.local.onChanged.addListener(async (updatedStore) => { - if (isDefined(updatedStore.isAuthenticated)) { - if (updatedStore.isAuthenticated.newValue === true) { - setIframeState(); - } - } - - if (isDefined(updatedStore.sidepanelUrl)) { - if (isDefined(updatedStore.sidepanelUrl.newValue)) { - const store = await chrome.storage.local.get(['clientUrl']); - const clientUrl = isDefined(store.clientUrl) - ? store.clientUrl - : import.meta.env.VITE_FRONT_BASE_URL; - - iframeRef.current?.contentWindow?.postMessage( - { - type: 'navigate', - value: updatedStore.sidepanelUrl.newValue, - }, - clientUrl, - ); - } - } - }); - }, [setIframeState]); - - return isAuthenticated ? ( - - ) : ( - - - twenty-logo - - { - window.open(clientUrl, '_blank'); - }} - /> - - - - ); -}; - -export default Sidepanel; diff --git a/packages/twenty-chrome-extension/src/options/index.tsx b/packages/twenty-chrome-extension/src/options/index.tsx deleted file mode 100644 index 01656e4af95..00000000000 --- a/packages/twenty-chrome-extension/src/options/index.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom/client'; - -import { AppThemeProvider } from '@/ui/theme/components/AppThemeProvider'; -import { ThemeType } from '@/ui/theme/constants/ThemeLight'; -import App from '~/options/App'; - -import '~/index.css'; - -ReactDOM.createRoot(document.getElementById('app') as HTMLElement).render( - - - - - , -); - -declare module '@emotion/react' { - export interface Theme extends ThemeType {} -} diff --git a/packages/twenty-chrome-extension/src/options/loading-index.tsx b/packages/twenty-chrome-extension/src/options/loading-index.tsx deleted file mode 100644 index 46f2193fe04..00000000000 --- a/packages/twenty-chrome-extension/src/options/loading-index.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom/client'; - -import { AppThemeProvider } from '@/ui/theme/components/AppThemeProvider'; -import { ThemeType } from '@/ui/theme/constants/ThemeLight'; -import Loading from '~/options/Loading'; - -import '~/index.css'; - -ReactDOM.createRoot(document.getElementById('app') as HTMLElement).render( - - - - - , -); - -declare module '@emotion/react' { - export interface Theme extends ThemeType {} -} diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/display/loader/components/Loader.tsx b/packages/twenty-chrome-extension/src/options/modules/ui/display/loader/components/Loader.tsx deleted file mode 100644 index 15cc0385298..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/display/loader/components/Loader.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import styled from '@emotion/styled'; -import { motion } from 'framer-motion'; - -const StyledLoaderContainer = styled.div` - justify-content: center; - align-items: center; - display: flex; - gap: ${({ theme }) => theme.spacing(2)}; - width: ${({ theme }) => theme.spacing(6)}; - height: ${({ theme }) => theme.spacing(3)}; - border-radius: ${({ theme }) => theme.border.radius.pill}; - border: 1px solid ${({ theme }) => theme.font.color.tertiary}; - overflow: hidden; -`; - -const StyledLoader = styled(motion.div)` - background-color: ${({ theme }) => theme.font.color.tertiary}; - border-radius: ${({ theme }) => theme.border.radius.pill}; - height: 8px; - width: 8px; -`; - -export const Loader = () => ( - - - -); diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/display/typography/components/H2Title.tsx b/packages/twenty-chrome-extension/src/options/modules/ui/display/typography/components/H2Title.tsx deleted file mode 100644 index 3d1dd27060d..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/display/typography/components/H2Title.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import styled from '@emotion/styled'; - -type H2TitleProps = { - title: string; - description?: string; - adornment?: React.ReactNode; -}; - -const StyledContainer = styled.div` - display: flex; - flex-direction: column; - margin-bottom: ${({ theme }) => theme.spacing(4)}; -`; - -const StyledTitleContainer = styled.div` - align-items: center; - display: flex; - justify-content: space-between; -`; - -const StyledTitle = styled.h2` - color: ${({ theme }) => theme.font.color.primary}; - font-size: ${({ theme }) => theme.font.size.md}; - font-weight: ${({ theme }) => theme.font.weight.semiBold}; - margin: 0; -`; - -const StyledDescription = styled.h3` - color: ${({ theme }) => theme.font.color.tertiary}; - font-size: ${({ theme }) => theme.font.size.md}; - font-weight: ${({ theme }) => theme.font.weight.regular}; - margin: 0; - margin-top: ${({ theme }) => theme.spacing(3)}; -`; - -export const H2Title = ({ title, description, adornment }: H2TitleProps) => ( - - - {title} - {adornment} - - {description && {description}} - -); diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/input/button/Button.tsx b/packages/twenty-chrome-extension/src/options/modules/ui/input/button/Button.tsx deleted file mode 100644 index aa54bdf5c92..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/input/button/Button.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import React from 'react'; -import styled from '@emotion/styled'; - -export type ButtonSize = 'medium' | 'small'; -export type ButtonPosition = 'standalone' | 'left' | 'middle' | 'right'; -export type ButtonVariant = 'primary' | 'secondary' | 'tertiary'; -export type ButtonAccent = 'default' | 'blue' | 'danger'; - -export type ButtonProps = { - className?: string; - Icon?: React.ReactNode; - title?: string; - fullWidth?: boolean; - variant?: ButtonVariant; - size?: ButtonSize; - position?: ButtonPosition; - accent?: ButtonAccent; - soon?: boolean; - disabled?: boolean; - onClick?: (event: React.MouseEvent) => void; -}; - -const StyledButton = styled.button` - border: 1px solid transparent; - border-radius: ${({ position, theme }) => { - switch (position) { - case 'left': - return `${theme.border.radius.sm} 0px 0px ${theme.border.radius.sm}`; - case 'right': - return `0px ${theme.border.radius.sm} ${theme.border.radius.sm} 0px`; - case 'middle': - return '0px'; - case 'standalone': - return theme.border.radius.sm; - default: - return theme.border.radius.sm; - } - }}; - cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')}; - display: inline-flex; - align-items: center; - font-family: ${({ theme }) => theme.font.family}; - font-weight: 500; - gap: ${({ theme }) => theme.spacing(1)}; - height: ${({ size }) => (size === 'small' ? '24px' : '32px')}; - padding: 0 ${({ theme }) => theme.spacing(2)}; - white-space: nowrap; - width: ${({ fullWidth }) => (fullWidth ? '100%' : 'auto')}; - - &:hover { - border-color: transparent; - filter: brightness(0.9); - } - - &:focus { - outline: none; - } -`; - -export const Button = ({ - className, - Icon, - title, - fullWidth = false, - variant = 'primary', - size = 'medium', - position = 'standalone', - soon = false, - disabled = false, - onClick, -}: ButtonProps) => ( - - {Icon && Icon} - {title} - {soon && 'Soon'} - -); diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/input/button/MainButton.tsx b/packages/twenty-chrome-extension/src/options/modules/ui/input/button/MainButton.tsx deleted file mode 100644 index b319b8070ec..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/input/button/MainButton.tsx +++ /dev/null @@ -1,116 +0,0 @@ -import React from 'react'; -import styled from '@emotion/styled'; - -type Variant = 'primary' | 'secondary'; - -type MainButtonProps = { - title: string; - fullWidth?: boolean; - width?: number; - variant?: Variant; - soon?: boolean; -} & React.ComponentProps<'button'>; - -const StyledButton = styled.button< - Pick ->` - align-items: center; - background: ${({ theme, variant, disabled }) => { - if (disabled === true) { - return theme.background.secondary; - } - - switch (variant) { - case 'primary': - return theme.background.primaryInverted; - case 'secondary': - return theme.background.primary; - default: - return theme.background.primary; - } - }}; - border: 1px solid; - border-color: ${({ theme, disabled, variant }) => { - if (disabled === true) { - return theme.background.transparent.lighter; - } - - switch (variant) { - case 'primary': - return theme.background.transparent.strong; - case 'secondary': - return theme.border.color.medium; - default: - return theme.background.primary; - } - }}; - border-radius: ${({ theme }) => theme.border.radius.md}; - ${({ theme, disabled }) => { - if (disabled === true) { - return ''; - } - - return `box-shadow: ${theme.boxShadow.light};`; - }} - color: ${({ theme, variant, disabled }) => { - if (disabled === true) { - return theme.font.color.light; - } - - switch (variant) { - case 'primary': - return theme.font.color.inverted; - case 'secondary': - return theme.font.color.primary; - default: - return theme.font.color.primary; - } - }}; - cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')}; - display: flex; - flex-direction: row; - font-family: ${({ theme }) => theme.font.family}; - font-weight: ${({ theme }) => theme.font.weight.semiBold}; - gap: ${({ theme }) => theme.spacing(2)}; - justify-content: center; - outline: none; - padding: ${({ theme }) => theme.spacing(2)} ${({ theme }) => theme.spacing(3)}; - width: ${({ fullWidth, width }) => - fullWidth ? '100%' : width ? `${width}px` : 'auto'}; - ${({ theme, variant }) => { - switch (variant) { - case 'secondary': - return ` - &:hover { - background: ${theme.background.tertiary}; - } - `; - default: - return ` - &:hover { - background: ${theme.background.primaryInvertedHover}}; - } - `; - } - }}; -`; - -export const MainButton = ({ - title, - width, - fullWidth = false, - variant = 'primary', - type, - onClick, - disabled, - className, -}: MainButtonProps) => { - return ( - - {title} - - ); -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/input/components/TextInput.tsx b/packages/twenty-chrome-extension/src/options/modules/ui/input/components/TextInput.tsx deleted file mode 100644 index c6dc189a1a1..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/input/components/TextInput.tsx +++ /dev/null @@ -1,87 +0,0 @@ -import styled from '@emotion/styled'; -import React, { useId } from 'react'; - -interface TextInputProps { - label?: string; - value: string; - onChange: (value: string) => void; - fullWidth?: boolean; - error?: string; - placeholder?: string; - icon?: React.ReactNode; -} - -const StyledContainer = styled.div<{ fullWidth?: boolean }>` - display: flex; - flex-direction: column; - width: ${({ fullWidth }) => (fullWidth ? `100%` : 'auto')}; - margin-bottom: ${({ theme }) => theme.spacing(4)}; -`; - -const StyledLabel = styled.label` - color: ${({ theme }) => theme.font.color.light}; - font-size: ${({ theme }) => theme.font.size.xs}; - font-weight: ${({ theme }) => theme.font.weight.semiBold}; - margin-bottom: ${({ theme }) => theme.spacing(1)}; - text-transform: uppercase; -`; - -const StyledInputContainer = styled.div` - display: flex; - align-items: center; - border: 1px solid ${({ theme }) => theme.color.gray30}; - border-radius: 4px; - padding: 8px; -`; - -const StyledIcon = styled.span` - margin-right: 8px; -`; - -const StyledInput = styled.input` - flex: 1; - border: none; - outline: none; - font-size: 14px; - - &::placeholder { - color: ${({ theme }) => theme.font.color.light}; - } -`; - -const StyledErrorHelper = styled.div` - color: ${({ theme }) => theme.color.red}; - font-size: 12px; - padding: 5px 0; -`; - -const TextInput: React.FC = ({ - label, - value, - onChange, - fullWidth, - error, - placeholder, - icon, -}) => { - const instanceId = useId(); - - return ( - - {label && {label}} - - {icon && {icon}} - onChange(e.target.value)} - placeholder={placeholder} - /> - - {error && {error}} - - ); -}; - -export { TextInput }; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/input/components/Toggle.tsx b/packages/twenty-chrome-extension/src/options/modules/ui/input/components/Toggle.tsx deleted file mode 100644 index 5b07a100531..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/input/components/Toggle.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import styled from '@emotion/styled'; -import { motion } from 'framer-motion'; -import { useEffect, useState } from 'react'; -import { isDefined } from 'twenty-shared/utils'; - -export type ToggleSize = 'small' | 'medium'; - -type ContainerProps = { - isOn: boolean; - color?: string; - toggleSize: ToggleSize; -}; - -const StyledContainer = styled.div` - align-items: center; - background-color: ${({ theme, isOn, color }) => - isOn ? (color ?? theme.color.blue) : theme.background.quaternary}; - border-radius: 10px; - cursor: pointer; - display: flex; - height: ${({ toggleSize }) => (toggleSize === 'small' ? 16 : 20)}px; - transition: background-color 0.3s ease; - width: ${({ toggleSize }) => (toggleSize === 'small' ? 24 : 32)}px; -`; - -const StyledCircle = styled(motion.div)<{ - toggleSize: ToggleSize; -}>` - background-color: ${({ theme }) => theme.background.primary}; - border-radius: 50%; - height: ${({ toggleSize }) => (toggleSize === 'small' ? 12 : 16)}px; - width: ${({ toggleSize }) => (toggleSize === 'small' ? 12 : 16)}px; -`; - -export type ToggleProps = { - value?: boolean; - onChange?: (value: boolean) => void; - color?: string; - toggleSize?: ToggleSize; -}; - -export const Toggle = ({ - value, - onChange, - color, - toggleSize = 'medium', -}: ToggleProps) => { - const [isOn, setIsOn] = useState(value ?? false); - - const circleVariants = { - on: { x: toggleSize === 'small' ? 10 : 14 }, - off: { x: 2 }, - }; - - const handleChange = () => { - setIsOn(!isOn); - - if (isDefined(onChange)) { - onChange(!isOn); - } - }; - - useEffect(() => { - if (value !== isOn) { - setIsOn(value ?? false); - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [value]); - - return ( - - - - ); -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/assets/dark-noise.jpg b/packages/twenty-chrome-extension/src/options/modules/ui/theme/assets/dark-noise.jpg deleted file mode 100644 index 6fc95715e9d..00000000000 Binary files a/packages/twenty-chrome-extension/src/options/modules/ui/theme/assets/dark-noise.jpg and /dev/null differ diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/assets/light-noise.png b/packages/twenty-chrome-extension/src/options/modules/ui/theme/assets/light-noise.png deleted file mode 100644 index d7b3bc2c064..00000000000 Binary files a/packages/twenty-chrome-extension/src/options/modules/ui/theme/assets/light-noise.png and /dev/null differ diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/components/AppThemeProvider.tsx b/packages/twenty-chrome-extension/src/options/modules/ui/theme/components/AppThemeProvider.tsx deleted file mode 100644 index b19507fc085..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/components/AppThemeProvider.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { ThemeProvider } from '@emotion/react'; - -import { THEME_LIGHT } from '@/ui/theme/constants/ThemeLight'; - -type AppThemeProviderProps = { - children: JSX.Element; -}; - -const AppThemeProvider: React.FC = ({ children }) => { - const theme = THEME_LIGHT; - - return {children}; -}; - -export { AppThemeProvider }; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/AccentDark.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/AccentDark.ts deleted file mode 100644 index 55896534fac..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/AccentDark.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { COLOR } from '@/ui/theme/constants/Colors'; - -export const ACCENT_DARK = { - primary: COLOR.blueAccent75, - secondary: COLOR.blueAccent80, - tertiary: COLOR.blueAccent85, - quaternary: COLOR.blueAccent90, - accent3570: COLOR.blueAccent70, - accent4060: COLOR.blueAccent60, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/AccentLight.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/AccentLight.ts deleted file mode 100644 index ea28b4c34f5..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/AccentLight.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { COLOR } from '@/ui/theme/constants/Colors'; - -export const ACCENT_LIGHT = { - primary: COLOR.blueAccent25, - secondary: COLOR.blueAccent20, - tertiary: COLOR.blueAccent15, - quaternary: COLOR.blueAccent10, - accent3570: COLOR.blueAccent35, - accent4060: COLOR.blueAccent40, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Animation.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Animation.ts deleted file mode 100644 index 865d43b2b9a..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Animation.ts +++ /dev/null @@ -1,9 +0,0 @@ -export const ANIMATION = { - duration: { - instant: 0.075, - fast: 0.15, - normal: 0.3, - }, -}; - -export type AnimationDuration = 'instant' | 'fast' | 'normal'; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BackgroundDark.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BackgroundDark.ts deleted file mode 100644 index 631039e7217..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BackgroundDark.ts +++ /dev/null @@ -1,28 +0,0 @@ -/* eslint-disable @nx/workspace-no-hardcoded-colors */ -import DarkNoise from '@/ui/theme/assets/dark-noise.jpg'; -import { COLOR } from '@/ui/theme/constants/Colors'; -import { GRAY_SCALE } from '@/ui/theme/constants/GrayScale'; -import { RGBA } from '@/ui/theme/constants/Rgba'; - -export const BACKGROUND_DARK = { - noisy: `url(${DarkNoise.toString()});`, - primary: GRAY_SCALE.gray85, - secondary: GRAY_SCALE.gray80, - tertiary: GRAY_SCALE.gray75, - quaternary: GRAY_SCALE.gray70, - danger: COLOR.red80, - transparent: { - primary: RGBA(GRAY_SCALE.gray85, 0.5), - secondary: RGBA(GRAY_SCALE.gray80, 0.5), - strong: RGBA(GRAY_SCALE.gray0, 0.14), - medium: RGBA(GRAY_SCALE.gray0, 0.1), - light: RGBA(GRAY_SCALE.gray0, 0.06), - lighter: RGBA(GRAY_SCALE.gray0, 0.03), - danger: RGBA(COLOR.red, 0.08), - }, - overlay: RGBA(GRAY_SCALE.gray80, 0.8), - radialGradient: `radial-gradient(50% 62.62% at 50% 0%, #505050 0%, ${GRAY_SCALE.gray60} 100%)`, - radialGradientHover: `radial-gradient(76.32% 95.59% at 50% 0%, #505050 0%, ${GRAY_SCALE.gray60} 100%)`, - primaryInverted: GRAY_SCALE.gray20, - primaryInvertedHover: GRAY_SCALE.gray15, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BackgroundLight.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BackgroundLight.ts deleted file mode 100644 index 5df07a383dc..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BackgroundLight.ts +++ /dev/null @@ -1,28 +0,0 @@ -/* eslint-disable @nx/workspace-no-hardcoded-colors */ -import LightNoise from '@/ui/theme/assets/light-noise.png'; -import { COLOR } from '@/ui/theme/constants/Colors'; -import { GRAY_SCALE } from '@/ui/theme/constants/GrayScale'; -import { RGBA } from '@/ui/theme/constants/Rgba'; - -export const BACKGROUND_LIGHT = { - noisy: `url(${LightNoise.toString()});`, - primary: GRAY_SCALE.gray0, - secondary: GRAY_SCALE.gray10, - tertiary: GRAY_SCALE.gray15, - quaternary: GRAY_SCALE.gray20, - danger: COLOR.red10, - transparent: { - primary: RGBA(GRAY_SCALE.gray0, 0.5), - secondary: RGBA(GRAY_SCALE.gray10, 0.5), - strong: RGBA(GRAY_SCALE.gray100, 0.16), - medium: RGBA(GRAY_SCALE.gray100, 0.08), - light: RGBA(GRAY_SCALE.gray100, 0.04), - lighter: RGBA(GRAY_SCALE.gray100, 0.02), - danger: RGBA(COLOR.red, 0.08), - }, - overlay: RGBA(GRAY_SCALE.gray80, 0.8), - radialGradient: `radial-gradient(50% 62.62% at 50% 0%, #505050 0%, ${GRAY_SCALE.gray60} 100%)`, - radialGradientHover: `radial-gradient(76.32% 95.59% at 50% 0%, #505050 0%, ${GRAY_SCALE.gray60} 100%)`, - primaryInverted: GRAY_SCALE.gray60, - primaryInvertedHover: GRAY_SCALE.gray55, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Blur.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Blur.ts deleted file mode 100644 index 01f2651473e..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Blur.ts +++ /dev/null @@ -1,4 +0,0 @@ -export const BLUR = { - light: 'blur(6px)', - strong: 'blur(20px)', -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BorderCommon.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BorderCommon.ts deleted file mode 100644 index a68f017bc44..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BorderCommon.ts +++ /dev/null @@ -1,10 +0,0 @@ -export const BORDER_COMMON = { - radius: { - xs: '2px', - sm: '4px', - md: '8px', - xl: '20px', - pill: '999px', - rounded: '100%', - }, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BorderDark.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BorderDark.ts deleted file mode 100644 index 98d7cb80b29..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BorderDark.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { BORDER_COMMON } from '@/ui/theme/constants/BorderCommon'; -import { COLOR } from '@/ui/theme/constants/Colors'; -import { GRAY_SCALE } from '@/ui/theme/constants/GrayScale'; - -export const BORDER_DARK = { - color: { - strong: GRAY_SCALE.gray55, - medium: GRAY_SCALE.gray65, - light: GRAY_SCALE.gray70, - secondaryInverted: GRAY_SCALE.gray35, - inverted: GRAY_SCALE.gray20, - danger: COLOR.red70, - }, - ...BORDER_COMMON, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BorderLight.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BorderLight.ts deleted file mode 100644 index fbc43b13073..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BorderLight.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { BORDER_COMMON } from '@/ui/theme/constants/BorderCommon'; -import { COLOR } from '@/ui/theme/constants/Colors'; -import { GRAY_SCALE } from '@/ui/theme/constants/GrayScale'; - -export const BORDER_LIGHT = { - color: { - strong: GRAY_SCALE.gray25, - medium: GRAY_SCALE.gray20, - light: GRAY_SCALE.gray15, - secondaryInverted: GRAY_SCALE.gray50, - inverted: GRAY_SCALE.gray60, - danger: COLOR.red20, - }, - ...BORDER_COMMON, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BoxShadowDark.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BoxShadowDark.ts deleted file mode 100644 index 3c0ae9c333b..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BoxShadowDark.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { GRAY_SCALE } from '@/ui/theme/constants/GrayScale'; -import { RGBA } from '@/ui/theme/constants/Rgba'; - -export const BOX_SHADOW_DARK = { - light: `0px 2px 4px 0px ${RGBA( - GRAY_SCALE.gray100, - 0.04, - )}, 0px 0px 4px 0px ${RGBA(GRAY_SCALE.gray100, 0.08)}`, - strong: `2px 4px 16px 0px ${RGBA( - GRAY_SCALE.gray100, - 0.16, - )}, 0px 2px 4px 0px ${RGBA(GRAY_SCALE.gray100, 0.08)}`, - underline: `0px 1px 0px 0px ${RGBA(GRAY_SCALE.gray100, 0.32)}`, - superHeavy: `2px 4px 16px 0px ${RGBA( - GRAY_SCALE.gray100, - 0.12, - )}, 0px 2px 4px 0px ${RGBA(GRAY_SCALE.gray100, 0.04)}`, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BoxShadowLight.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BoxShadowLight.ts deleted file mode 100644 index 9ed6fd12383..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/BoxShadowLight.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { GRAY_SCALE } from '@/ui/theme/constants/GrayScale'; -import { RGBA } from '@/ui/theme/constants/Rgba'; - -export const BOX_SHADOW_LIGHT = { - light: `0px 2px 4px 0px ${RGBA( - GRAY_SCALE.gray100, - 0.04, - )}, 0px 0px 4px 0px ${RGBA(GRAY_SCALE.gray100, 0.08)}`, - strong: `2px 4px 16px 0px ${RGBA( - GRAY_SCALE.gray100, - 0.12, - )}, 0px 2px 4px 0px ${RGBA(GRAY_SCALE.gray100, 0.04)}`, - underline: `0px 1px 0px 0px ${RGBA(GRAY_SCALE.gray100, 0.32)}`, - superHeavy: `0px 0px 8px 0px ${RGBA( - GRAY_SCALE.gray100, - 0.16, - )}, 0px 8px 64px -16px ${RGBA( - GRAY_SCALE.gray100, - 0.48, - )}, 0px 24px 56px -16px ${RGBA(GRAY_SCALE.gray100, 0.08)}`, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Colors.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Colors.ts deleted file mode 100644 index 022a67b707a..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Colors.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { MAIN_COLORS } from '@/ui/theme/constants/MainColors'; -import { SECONDARY_COLORS } from '@/ui/theme/constants/SecondaryColors'; - -export const COLOR = { - ...MAIN_COLORS, - ...SECONDARY_COLORS, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/FontCommon.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/FontCommon.ts deleted file mode 100644 index 65556c018d3..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/FontCommon.ts +++ /dev/null @@ -1,17 +0,0 @@ -export const FONT_COMMON = { - size: { - xxs: '0.625rem', - xs: '0.85rem', - sm: '0.92rem', - md: '1rem', - lg: '1.23rem', - xl: '1.54rem', - xxl: '1.85rem', - }, - weight: { - regular: 400, - medium: 500, - semiBold: 600, - }, - family: 'Inter, sans-serif', -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/FontDark.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/FontDark.ts deleted file mode 100644 index 07aac6f97c2..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/FontDark.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { COLOR } from '@/ui/theme/constants/Colors'; -import { FONT_COMMON } from '@/ui/theme/constants/FontCommon'; -import { GRAY_SCALE } from '@/ui/theme/constants/GrayScale'; - -export const FONT_DARK = { - color: { - primary: GRAY_SCALE.gray20, - secondary: GRAY_SCALE.gray35, - tertiary: GRAY_SCALE.gray45, - light: GRAY_SCALE.gray50, - extraLight: GRAY_SCALE.gray55, - inverted: GRAY_SCALE.gray100, - danger: COLOR.red, - }, - ...FONT_COMMON, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/FontLight.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/FontLight.ts deleted file mode 100644 index 9681a650276..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/FontLight.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { COLOR } from '@/ui/theme/constants/Colors'; -import { FONT_COMMON } from '@/ui/theme/constants/FontCommon'; -import { GRAY_SCALE } from '@/ui/theme/constants/GrayScale'; - -export const FONT_LIGHT = { - color: { - primary: GRAY_SCALE.gray60, - secondary: GRAY_SCALE.gray50, - tertiary: GRAY_SCALE.gray40, - light: GRAY_SCALE.gray35, - extraLight: GRAY_SCALE.gray30, - inverted: GRAY_SCALE.gray0, - danger: COLOR.red, - }, - ...FONT_COMMON, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/GrayScale.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/GrayScale.ts deleted file mode 100644 index 90c194d9241..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/GrayScale.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* eslint-disable @nx/workspace-no-hardcoded-colors */ -export const GRAY_SCALE = { - gray100: '#000000', - gray90: '#141414', - gray85: '#171717', - gray80: '#1b1b1b', - gray75: '#1d1d1d', - gray70: '#222222', - gray65: '#292929', - gray60: '#333333', - gray55: '#4c4c4c', - gray50: '#666666', - gray45: '#818181', - gray40: '#999999', - gray35: '#b3b3b3', - gray30: '#cccccc', - gray25: '#d6d6d6', - gray20: '#ebebeb', - gray15: '#f1f1f1', - gray10: '#fcfcfc', - gray0: '#ffffff', -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/HoverBackground.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/HoverBackground.ts deleted file mode 100644 index cbd9b9e0e4a..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/HoverBackground.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { css } from '@emotion/react'; - -export const HOVER_BACKGROUND = (props: any) => css` - transition: background 0.1s ease; - &:hover { - background: ${props.theme.background.transparent.light}; - } -`; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Icon.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Icon.ts deleted file mode 100644 index e103c0b8ec3..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Icon.ts +++ /dev/null @@ -1,13 +0,0 @@ -export const ICON = { - size: { - sm: 14, - md: 16, - lg: 20, - xl: 40, - }, - stroke: { - sm: 1.6, - md: 2, - lg: 2.5, - }, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/MainColorNames.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/MainColorNames.ts deleted file mode 100644 index 648389ee7de..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/MainColorNames.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { MAIN_COLORS } from '@/ui/theme/constants/MainColors'; - -export const MAIN_COLOR_NAMES = Object.keys(MAIN_COLORS) as ThemeColor[]; - -export type ThemeColor = keyof typeof MAIN_COLORS; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/MainColors.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/MainColors.ts deleted file mode 100644 index d9d969a62bc..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/MainColors.ts +++ /dev/null @@ -1,15 +0,0 @@ -/* eslint-disable @nx/workspace-no-hardcoded-colors */ -import { GRAY_SCALE } from '@/ui/theme/constants/GrayScale'; - -export const MAIN_COLORS = { - green: '#55ef3c', - turquoise: '#15de8f', - sky: '#00e0ff', - blue: '#1961ed', - purple: '#915ffd', - pink: '#f54bd0', - red: '#f83e3e', - orange: '#ff7222', - yellow: '#ffd338', - gray: GRAY_SCALE.gray30, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/MobileViewport.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/MobileViewport.ts deleted file mode 100644 index 485d2dacd0f..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/MobileViewport.ts +++ /dev/null @@ -1 +0,0 @@ -export const MOBILE_VIEWPORT = 768; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Modal.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Modal.ts deleted file mode 100644 index 2a53265cc00..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Modal.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const MODAL = { - size: { - sm: '300px', - md: '400px', - lg: '53%', - }, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/OverlayBackground.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/OverlayBackground.ts deleted file mode 100644 index b3e46818261..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/OverlayBackground.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { css } from '@emotion/react'; - -import { ThemeType } from '@/ui/theme/constants/ThemeLight'; - -export const OVERLAY_BACKGROUND = (props: { theme: ThemeType }) => css` - backdrop-filter: blur(12px) saturate(200%) contrast(50%) brightness(130%); - background: ${props.theme.background.transparent.secondary}; - box-shadow: ${props.theme.boxShadow.strong}; -`; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Rgba.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Rgba.ts deleted file mode 100644 index 6b06f2a64e9..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Rgba.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* eslint-disable @nx/workspace-no-hardcoded-colors */ -import hexRgb from 'hex-rgb'; - -export const RGBA = (hex: string, alpha: number) => { - return `rgba(${hexRgb(hex, { format: 'array' }) - .slice(0, -1) - .join(',')},${alpha})`; -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/SecondaryColors.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/SecondaryColors.ts deleted file mode 100644 index 2eb3be248fd..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/SecondaryColors.ts +++ /dev/null @@ -1,106 +0,0 @@ -/* eslint-disable @nx/workspace-no-hardcoded-colors */ -import { GRAY_SCALE } from '@/ui/theme/constants/GrayScale'; - -export const SECONDARY_COLORS = { - yellow80: '#2e2a1a', - yellow70: '#453d1e', - yellow60: '#746224', - yellow50: '#b99b2e', - yellow40: '#ffe074', - yellow30: '#ffedaf', - yellow20: '#fff6d7', - yellow10: '#fffbeb', - - green80: '#1d2d1b', - green70: '#23421e', - green60: '#2a5822', - green50: '#42ae31', - green40: '#88f477', - green30: '#ccfac5', - green20: '#ddfcd8', - green10: '#eefdec', - - turquoise80: '#172b23', - turquoise70: '#173f2f', - turquoise60: '#166747', - turquoise50: '#16a26b', - turquoise40: '#5be8b1', - turquoise30: '#a1f2d2', - turquoise20: '#d0f8e9', - turquoise10: '#e8fcf4', - - sky80: '#152b2e', - sky70: '#123f45', - sky60: '#0e6874', - sky50: '#07a4b9', - sky40: '#4de9ff', - sky30: '#99f3ff', - sky20: '#ccf9ff', - sky10: '#e5fcff', - - blue80: '#171e2c', - blue70: '#172642', - blue60: '#18356d', - blue50: '#184bad', - blue40: '#5e90f2', - blue30: '#a3c0f8', - blue20: '#d1dffb', - blue10: '#e8effd', - - purple80: '#231e2e', - purple70: '#2f2545', - purple60: '#483473', - purple50: '#6c49b8', - purple40: '#b28ffe', - purple30: '#d3bffe', - purple20: '#e9dfff', - purple10: '#f4efff', - - pink80: '#2d1c29', - pink70: '#43213c', - pink60: '#702c61', - pink50: '#b23b98', - pink40: '#f881de', - pink30: '#fbb7ec', - pink20: '#fddbf6', - pink10: '#feedfa', - - red80: '#2d1b1b', - red70: '#441f1f', - red60: '#712727', - red50: '#b43232', - red40: '#fa7878', - red30: '#fcb2b2', - red20: '#fed8d8', - red10: '#feecec', - - orange80: '#2e2018', - orange70: '#452919', - orange60: '#743b1b', - orange50: '#b9571f', - orange40: '#ff9c64', - orange30: '#ffc7a7', - orange20: '#ffe3d3', - orange10: '#fff1e9', - - gray80: GRAY_SCALE.gray70, - gray70: GRAY_SCALE.gray65, - gray60: GRAY_SCALE.gray55, - gray50: GRAY_SCALE.gray40, - gray40: GRAY_SCALE.gray25, - gray30: GRAY_SCALE.gray20, - gray20: GRAY_SCALE.gray15, - gray10: GRAY_SCALE.gray10, - blueAccent90: '#141a25', - blueAccent85: '#151d2e', - blueAccent80: '#152037', - blueAccent75: '#16233f', - blueAccent70: '#17294a', - blueAccent60: '#18356d', - blueAccent40: '#a3c0f8', - blueAccent35: '#c8d9fb', - blueAccent25: '#dae6fc', - blueAccent20: '#e2ecfd', - blueAccent15: '#edf2fe', - blueAccent10: '#f5f9fd', -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/TagDark.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/TagDark.ts deleted file mode 100644 index f146d694b53..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/TagDark.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { COLOR } from '@/ui/theme/constants/Colors'; - -export const TAG_DARK = { - text: { - green: COLOR.green10, - turquoise: COLOR.turquoise10, - sky: COLOR.sky10, - blue: COLOR.blue10, - purple: COLOR.purple10, - pink: COLOR.pink10, - red: COLOR.red10, - orange: COLOR.orange10, - yellow: COLOR.yellow10, - gray: COLOR.gray10, - }, - background: { - green: COLOR.green60, - turquoise: COLOR.turquoise60, - sky: COLOR.sky60, - blue: COLOR.blue60, - purple: COLOR.purple60, - pink: COLOR.pink60, - red: COLOR.red60, - orange: COLOR.orange60, - yellow: COLOR.yellow60, - gray: COLOR.gray60, - }, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/TagLight.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/TagLight.ts deleted file mode 100644 index 5e00c3e2a34..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/TagLight.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { COLOR } from '@/ui/theme/constants/Colors'; - -export const TAG_LIGHT = { - text: { - green: COLOR.green60, - turquoise: COLOR.turquoise60, - sky: COLOR.sky60, - blue: COLOR.blue60, - purple: COLOR.purple60, - pink: COLOR.pink60, - red: COLOR.red60, - orange: COLOR.orange60, - yellow: COLOR.yellow60, - gray: COLOR.gray60, - }, - background: { - green: COLOR.green20, - turquoise: COLOR.turquoise20, - sky: COLOR.sky20, - blue: COLOR.blue20, - purple: COLOR.purple20, - pink: COLOR.pink20, - red: COLOR.red20, - orange: COLOR.orange20, - yellow: COLOR.yellow20, - gray: COLOR.gray20, - }, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Text.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Text.ts deleted file mode 100644 index db9a0786b76..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/Text.ts +++ /dev/null @@ -1,13 +0,0 @@ -export const TEXT = { - lineHeight: { - lg: 1.5, - md: 1.2, - }, - - iconSizeMedium: 16, - iconSizeSmall: 14, - - iconStrikeLight: 1.6, - iconStrikeMedium: 2, - iconStrikeBold: 2.5, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/TextInputStyle.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/TextInputStyle.ts deleted file mode 100644 index 2058dbde3a8..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/TextInputStyle.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { css } from '@emotion/react'; - -import { ThemeType } from '@/ui/theme/constants/ThemeLight'; - -export const TEXT_INPUT_STYLE = (props: { theme: ThemeType }) => css` - background-color: transparent; - border: none; - color: ${props.theme.font.color.primary}; - font-family: ${props.theme.font.family}; - font-size: inherit; - font-weight: inherit; - outline: none; - padding: ${props.theme.spacing(0)} ${props.theme.spacing(2)}; - - &::placeholder, - &::-webkit-input-placeholder { - color: ${props.theme.font.color.light}; - font-family: ${props.theme.font.family}; - font-weight: ${props.theme.font.weight.medium}; - } -`; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/ThemeCommon.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/ThemeCommon.ts deleted file mode 100644 index 1480582a2fb..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/ThemeCommon.ts +++ /dev/null @@ -1,44 +0,0 @@ -/* eslint-disable @nx/workspace-no-hardcoded-colors */ -import { ANIMATION } from '@/ui/theme/constants/Animation'; -import { BLUR } from '@/ui/theme/constants/Blur'; -import { COLOR } from '@/ui/theme/constants/Colors'; -import { GRAY_SCALE } from '@/ui/theme/constants/GrayScale'; -import { ICON } from '@/ui/theme/constants/Icon'; -import { MODAL } from '@/ui/theme/constants/Modal'; -import { TEXT } from '@/ui/theme/constants/Text'; - -export const THEME_COMMON = { - color: COLOR, - grayScale: GRAY_SCALE, - icon: ICON, - modal: MODAL, - text: TEXT, - blur: BLUR, - animation: ANIMATION, - snackBar: { - success: { - background: '#16A26B', - color: '#D0F8E9', - }, - error: { - background: '#B43232', - color: '#FED8D8', - }, - info: { - background: COLOR.gray80, - color: GRAY_SCALE.gray0, - }, - }, - spacingMultiplicator: 4, - spacing: (...args: number[]) => - args.map((multiplicator) => `${multiplicator * 4}px`).join(' '), - betweenSiblingsGap: `2px`, - table: { - horizontalCellMargin: '8px', - checkboxColumnWidth: '32px', - horizontalCellPadding: '8px', - }, - rightDrawerWidth: '500px', - clickableElementBackgroundTransition: 'background 0.1s ease', - lastLayerZIndex: 2147483647, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/ThemeDark.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/ThemeDark.ts deleted file mode 100644 index a80f03071c5..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/ThemeDark.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { ACCENT_DARK } from '@/ui/theme/constants/AccentDark'; -import { BACKGROUND_DARK } from '@/ui/theme/constants/BackgroundDark'; -import { BORDER_DARK } from '@/ui/theme/constants/BorderDark'; -import { BOX_SHADOW_DARK } from '@/ui/theme/constants/BoxShadowDark'; -import { FONT_DARK } from '@/ui/theme/constants/FontDark'; -import { TAG_DARK } from '@/ui/theme/constants/TagDark'; -import { THEME_COMMON } from '@/ui/theme/constants/ThemeCommon'; -import { ThemeType } from '@/ui/theme/constants/ThemeLight'; - -export const THEME_DARK: ThemeType = { - ...THEME_COMMON, - ...{ - accent: ACCENT_DARK, - background: BACKGROUND_DARK, - border: BORDER_DARK, - tag: TAG_DARK, - boxShadow: BOX_SHADOW_DARK, - font: FONT_DARK, - name: 'dark', - }, -}; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/ThemeLight.ts b/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/ThemeLight.ts deleted file mode 100644 index 3f837e48f3c..00000000000 --- a/packages/twenty-chrome-extension/src/options/modules/ui/theme/constants/ThemeLight.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { ACCENT_LIGHT } from '@/ui/theme/constants/AccentLight'; -import { BACKGROUND_LIGHT } from '@/ui/theme/constants/BackgroundLight'; -import { BORDER_LIGHT } from '@/ui/theme/constants/BorderLight'; -import { BOX_SHADOW_LIGHT } from '@/ui/theme/constants/BoxShadowLight'; -import { FONT_LIGHT } from '@/ui/theme/constants/FontLight'; -import { TAG_LIGHT } from '@/ui/theme/constants/TagLight'; -import { THEME_COMMON } from '@/ui/theme/constants/ThemeCommon'; - -export const THEME_LIGHT = { - ...THEME_COMMON, - ...{ - accent: ACCENT_LIGHT, - background: BACKGROUND_LIGHT, - border: BORDER_LIGHT, - tag: TAG_LIGHT, - boxShadow: BOX_SHADOW_LIGHT, - font: FONT_LIGHT, - name: 'light', - }, -}; - -export type ThemeType = typeof THEME_LIGHT; diff --git a/packages/twenty-chrome-extension/src/options/page-inaccessible-index.tsx b/packages/twenty-chrome-extension/src/options/page-inaccessible-index.tsx deleted file mode 100644 index 1584913e23e..00000000000 --- a/packages/twenty-chrome-extension/src/options/page-inaccessible-index.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom/client'; - -import { AppThemeProvider } from '@/ui/theme/components/AppThemeProvider'; -import { ThemeType } from '@/ui/theme/constants/ThemeLight'; -import PageInaccessible from '~/options/PageInaccessible'; - -import '~/index.css'; - -ReactDOM.createRoot(document.getElementById('app') as HTMLElement).render( - - - - - , -); - -declare module '@emotion/react' { - export interface Theme extends ThemeType {} -} diff --git a/packages/twenty-chrome-extension/src/utils/apolloClient.ts b/packages/twenty-chrome-extension/src/utils/apolloClient.ts deleted file mode 100644 index 4b602f481e9..00000000000 --- a/packages/twenty-chrome-extension/src/utils/apolloClient.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { ApolloClient, from, HttpLink, InMemoryCache } from '@apollo/client'; -import { setContext } from '@apollo/client/link/context'; -import { onError } from '@apollo/client/link/error'; -import { isDefined } from 'twenty-shared/utils'; - -export const clearStore = () => { - chrome.storage.local.remove([ - 'loginToken', - 'accessToken', - 'refreshToken', - 'sidepanelUrl', - ]); - chrome.storage.local.set({ isAuthenticated: false }); -}; - -export const getServerUrl = async () => { - const store = await chrome.storage.local.get(); - const serverUrl = `${ - isDefined(store.serverBaseUrl) - ? store.serverBaseUrl - : import.meta.env.VITE_SERVER_BASE_URL - }/graphql`; - return serverUrl; -}; - -const getAuthToken = async () => { - const store = await chrome.storage.local.get(); - if (isDefined(store.accessToken)) return `Bearer ${store.accessToken.token}`; - else return ''; -}; - -const getApolloClient = async () => { - const authLink = setContext(async (_, { headers }) => { - const token = await getAuthToken(); - return { - headers: { - ...headers, - authorization: token, - }, - }; - }); - const errorLink = onError(({ graphQLErrors, networkError }) => { - if (isDefined(graphQLErrors)) { - for (const graphQLError of graphQLErrors) { - if (graphQLError.message === 'Unauthorized') { - clearStore(); - return; - } - switch (graphQLError?.extensions?.code) { - case 'UNAUTHENTICATED': { - clearStore(); - break; - } - default: - // eslint-disable-next-line no-console - console.error( - `[GraphQL error]: Message: ${graphQLError.message}, Location: ${ - graphQLError.locations - ? JSON.stringify(graphQLError.locations) - : graphQLError.locations - }, Path: ${graphQLError.path}`, - ); - break; - } - } - } - - if (isDefined(networkError)) { - // eslint-disable-next-line no-console - console.error(`[Network error]: ${networkError}`); - } - }); - - const httpLink = new HttpLink({ - uri: await getServerUrl(), - }); - - const client = new ApolloClient({ - cache: new InMemoryCache(), - link: from([errorLink, authLink, httpLink]), - }); - - return client; -}; - -export default getApolloClient; diff --git a/packages/twenty-chrome-extension/src/utils/handleQueryParams.ts b/packages/twenty-chrome-extension/src/utils/handleQueryParams.ts deleted file mode 100644 index c0396653feb..00000000000 --- a/packages/twenty-chrome-extension/src/utils/handleQueryParams.ts +++ /dev/null @@ -1,21 +0,0 @@ -// Convert extracted data into a structure that can be sent to the server for storage. -const handleQueryParams = (inputData: { [x: string]: unknown }): string => { - let result = ''; - Object.keys(inputData).forEach((key) => { - let quote = ''; - if (typeof inputData[key] === 'string') quote = '"'; - if (typeof inputData[key] === 'object') { - result = result.concat( - `${key}: {${handleQueryParams( - inputData[key] as { [x: string]: unknown }, - )}}, `, - ); - } else { - result = result.concat(`${key}: ${quote}${inputData[key]}${quote}, `); - } - }); - if (result.length > 0) result = result.slice(0, -2); // Remove the last ', ' - return result; -}; - -export default handleQueryParams; diff --git a/packages/twenty-chrome-extension/src/utils/requestDb.ts b/packages/twenty-chrome-extension/src/utils/requestDb.ts deleted file mode 100644 index 2d6503a652c..00000000000 --- a/packages/twenty-chrome-extension/src/utils/requestDb.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { OperationVariables } from '@apollo/client'; -import { DocumentNode } from 'graphql'; -import getApolloClient from '~/utils/apolloClient'; -import { isDefined } from 'twenty-shared/utils'; - -export const callQuery = async ( - query: DocumentNode, - variables?: OperationVariables, -): Promise => { - try { - const client = await getApolloClient(); - const { data } = await client.query({ query, variables }); - - if (isDefined(data)) return data; - else return null; - } catch (error) { - return null; - } -}; - -export const callMutation = async ( - mutation: DocumentNode, - variables?: OperationVariables, -): Promise => { - try { - const client = await getApolloClient(); - - const { data } = await client.mutate({ mutation, variables }); - - if (isDefined(data)) return data; - else return null; - } catch (error) { - return null; - } -}; diff --git a/packages/twenty-chrome-extension/src/vite-env.d.ts b/packages/twenty-chrome-extension/src/vite-env.d.ts deleted file mode 100644 index dbc3e503f24..00000000000 --- a/packages/twenty-chrome-extension/src/vite-env.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/// - -interface ImportMetaEnv { - readonly VITE_SERVER_BASE_URL: string; - readonly VITE_FRONT_BASE_URL: string; - readonly VITE_MODE: string; - readonly AUTH_TOKEN: string | undefined; -} - -interface ImportMeta { - readonly env: ImportMetaEnv; -} diff --git a/packages/twenty-chrome-extension/tsconfig.app.json b/packages/twenty-chrome-extension/tsconfig.app.json deleted file mode 100644 index ce50a898d1d..00000000000 --- a/packages/twenty-chrome-extension/tsconfig.app.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "./tsconfig.json", - "exclude": [ - "**/*.spec.ts", - "**/*.test.ts", - "**/*.spec.tsx", - "**/*.test.tsx", - "jest.config.ts" - ], - "include": ["src/**/*.js", "src/**/*.jsx", "src/**/*.ts", "src/**/*.tsx"] -} diff --git a/packages/twenty-chrome-extension/tsconfig.json b/packages/twenty-chrome-extension/tsconfig.json deleted file mode 100644 index d9bd2f66b54..00000000000 --- a/packages/twenty-chrome-extension/tsconfig.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "outDir": "../../.cache/tsc", - "target": "ES2022", - "useDefineForClassFields": true, - "lib": ["ES2022", "DOM", "DOM.Iterable"], - "module": "ESNext", - "skipLibCheck": true, - "esModuleInterop": true, - "paths": { - "@/*": ["./src/options/modules/*"], - "~/*": ["./src/*"] - }, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowSyntheticDefaultImports": true, - "allowImportingTsExtensions": true, - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx", - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true, - "forceConsistentCasingInFileNames": true - }, - "files": [], - "include": [], - "references": [ - { - "path": "./tsconfig.app.json" - }, - { - "path": "./tsconfig.spec.json" - } - ] -} diff --git a/packages/twenty-chrome-extension/tsconfig.spec.json b/packages/twenty-chrome-extension/tsconfig.spec.json deleted file mode 100644 index 0436d0542f8..00000000000 --- a/packages/twenty-chrome-extension/tsconfig.spec.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "types": ["jest", "node"] - }, - "include": [ - "codegen.ts", - "vite.config.ts", - "jest.config.ts", - "**/*.test.ts", - "**/*.test.tsx", - "**/*.spec.ts", - "**/*.d.ts", - ".storybook/**/*", - "**/*.stories.tsx" - ] -} diff --git a/packages/twenty-chrome-extension/vite.config.ts b/packages/twenty-chrome-extension/vite.config.ts deleted file mode 100644 index f30851658a9..00000000000 --- a/packages/twenty-chrome-extension/vite.config.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { crx } from '@crxjs/vite-plugin'; -import react from '@vitejs/plugin-react'; -import { defineConfig, Plugin } from 'vite'; -import tsconfigPaths from 'vite-tsconfig-paths'; - -import manifest from './src/manifest'; - -const viteManifestHack: Plugin & { - renderCrxManifest: (manifest: unknown, bundle: unknown) => void; -} = { - // Workaround from https://github.com/crxjs/chrome-extension-tools/issues/846#issuecomment-1861880919. - name: 'manifestHack', - renderCrxManifest: (_manifest, bundle: any) => { - bundle['manifest.json'] = bundle['.vite/manifest.json']; - bundle['manifest.json'].fileName = 'manifest.json'; - delete bundle['.vite/manifest.json']; - }, -}; - -export default defineConfig(() => { - return { - root: __dirname, - cacheDir: '../../node_modules/.vite/packages/twenty-chrome-extension', - - build: { - emptyOutDir: true, - outDir: 'dist', - rollupOptions: { - output: { chunkFileNames: 'assets/chunk-[hash].js' }, - }, - target: 'ES2022', - }, - - // Adding this to fix websocket connection error. - server: { - port: 3002, - strictPort: true, - hmr: { port: 3002 }, - }, - - plugins: [viteManifestHack, crx({ manifest }), react(), tsconfigPaths()], - }; -}); diff --git a/packages/twenty-shared/scripts/migrateFromSingleToMultiBarrelImport.ts b/packages/twenty-shared/scripts/migrateFromSingleToMultiBarrelImport.ts index ddcda5b5814..be0b751e512 100644 --- a/packages/twenty-shared/scripts/migrateFromSingleToMultiBarrelImport.ts +++ b/packages/twenty-shared/scripts/migrateFromSingleToMultiBarrelImport.ts @@ -475,7 +475,6 @@ const main = () => { 'twenty-server', 'twenty-emails', 'twenty-zapier', - 'twenty-chrome-extension', ]; for (const currPackage of packagesToMigrate) { console.log(`About to run over ${currPackage}`); diff --git a/yarn.lock b/yarn.lock index 3e2397caf92..0b30d5450dd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -54683,14 +54683,6 @@ __metadata: languageName: node linkType: hard -"twenty-chrome-extension@workspace:packages/twenty-chrome-extension": - version: 0.0.0-use.local - resolution: "twenty-chrome-extension@workspace:packages/twenty-chrome-extension" - dependencies: - twenty-shared: "workspace:*" - languageName: unknown - linkType: soft - "twenty-e2e-testing@workspace:packages/twenty-e2e-testing": version: 0.0.0-use.local resolution: "twenty-e2e-testing@workspace:packages/twenty-e2e-testing"