diff --git a/packages/app-store-cli/src/build.ts b/packages/app-store-cli/src/build.ts index 6a619fe987..d25dafa6b8 100644 --- a/packages/app-store-cli/src/build.ts +++ b/packages/app-store-cli/src/build.ts @@ -487,6 +487,18 @@ function generateFiles() { videoOutput.push(...videoAdapters); } + // Generate redirect apps list (apps with externalLink in their config, excluding templates) + const redirectAppsOutput: string[] = []; + const redirectAppSlugs: string[] = []; + forEachAppDir((app) => { + // Exclude templates - they are not actual apps + if (app.externalLink && !app.path.startsWith("templates/")) { + redirectAppSlugs.push(app.name); + } + }); + redirectAppsOutput.push(`export const REDIRECT_APPS = ${JSON.stringify(redirectAppSlugs)} as const;`); + redirectAppsOutput.push(`export type RedirectApp = typeof REDIRECT_APPS[number];`); + const banner = `/** This file is autogenerated using the command \`yarn app-store:build --watch\`. Don't modify this file manually. @@ -504,6 +516,7 @@ function generateFiles() { ["calendar.services.generated.ts", calendarOutput], ["payment.services.generated.ts", paymentOutput], ["video.adapters.generated.ts", videoOutput], + ["redirect-apps.generated.ts", redirectAppsOutput], ]; filesToGenerate.forEach(([fileName, output]) => { const filePath = path.join(APP_STORE_PATH, fileName); diff --git a/packages/app-store-cli/src/components/AppCreateUpdateForm.tsx b/packages/app-store-cli/src/components/AppCreateUpdateForm.tsx index e5f573061a..5bf2912992 100644 --- a/packages/app-store-cli/src/components/AppCreateUpdateForm.tsx +++ b/packages/app-store-cli/src/components/AppCreateUpdateForm.tsx @@ -30,6 +30,7 @@ export const AppForm = ({ category: "", publisher: "", email: "", + externalLinkUrl: "", }; const [app] = useState(() => getApp(givenSlug, isTemplate)); @@ -43,8 +44,9 @@ export const AppForm = ({ ...config, category: config.categories[0], template: config.__template, + externalLinkUrl: config.externalLink?.url || "", }; - } catch (_e) {} + } catch (_e) { } const fields = [ { @@ -68,13 +70,13 @@ export const AppForm = ({ cliTemplate || isEditAction ? null : { - label: "Choose a base Template", - name: "template", - type: "select", - options: Templates, - optional: false, - defaultValue: "", - }, + label: "Choose a base Template", + name: "template", + type: "select", + options: Templates, + optional: false, + defaultValue: "", + }, { optional: false, label: "Category of App", @@ -113,16 +115,35 @@ export const AppForm = ({ defaultValue: "email@example.com", }, ].filter((f) => f); + const [appInputData, setAppInputData] = useState(initialConfig); const [inputIndex, setInputIndex] = useState(0); const [slugFinalized, setSlugFinalized] = useState(false); + // Add external link URL field for link-as-an-app template + // Must use appInputData.template (not initialConfig.template) to react to user's interactive selection + const templateForFields = appInputData.template || cliTemplate; + if (templateForFields === "link-as-an-app") { + const categoryIndex = fields.findIndex((f) => f?.name === "category"); + const hasExternalLinkField = fields.some((f) => f?.name === "externalLinkUrl"); + if (categoryIndex !== -1 && !hasExternalLinkField) { + fields.splice(categoryIndex + 1, 0, { + optional: false, + label: "External Link URL", + name: "externalLinkUrl", + type: "text", + explainer: "The URL users will be redirected to when they install this app (e.g., https://example.com/signup)", + defaultValue: "https://example.com", + }); + } + } + const field = fields[inputIndex]; const fieldLabel = field?.label || ""; const fieldName = field?.name || ""; let fieldValue = appInputData[fieldName as keyof typeof appInputData] || ""; let validationResult: Parameters[0]["message"] | null = null; - const { name, category, description, publisher, email, template } = appInputData; + const { name, category, description, publisher, email, template, externalLinkUrl } = appInputData; const [status, setStatus] = useState<"inProgress" | "done">("inProgress"); const formCompleted = inputIndex === fields.length; @@ -147,6 +168,7 @@ export const AppForm = ({ editMode: isEditAction, isTemplate, oldSlug: givenSlug, + externalLinkUrl, }); await generateAppFiles(); @@ -168,6 +190,7 @@ export const AppForm = ({ publisher, slug, template, + externalLinkUrl, ]); if (action === "edit" || action === "edit-template") { @@ -202,9 +225,8 @@ export const AppForm = ({ message={{ text: isEditAction ? `Editing app with slug ${slug}` - : `Creating ${ - action === "create-template" ? "template" : "app" - } with name '${name}' categorized in '${category}' using template '${template}'`, + : `Creating ${action === "create-template" ? "template" : "app" + } with name '${name}' categorized in '${category}' using template '${template}'`, type: "info", showInProgressIndicator: true, }} @@ -269,9 +291,8 @@ export const AppForm = ({ } if (slug && slug !== givenSlug && fs.existsSync(getAppDirPath(slug, isTemplate))) { validationResult = { - text: `${ - action === "create" ? "App" : "Template" - } with slug ${slug} already exists. If you want to edit it, use edit command`, + text: `${action === "create" ? "App" : "Template" + } with slug ${slug} already exists. If you want to edit it, use edit command`, type: "error", }; @@ -293,9 +314,8 @@ export const AppForm = ({ ) : ( )} diff --git a/packages/app-store-cli/src/core.ts b/packages/app-store-cli/src/core.ts index 781885f1d5..429314f294 100644 --- a/packages/app-store-cli/src/core.ts +++ b/packages/app-store-cli/src/core.ts @@ -33,11 +33,16 @@ const updatePackageJson = ({ appDescription: string; appDirPath: string; }) => { - const packageJsonConfig = JSON.parse(fs.readFileSync(`${appDirPath}/package.json`).toString()); + const packageJsonPath = `${appDirPath}/package.json`; + // Skip if package.json doesn't exist (e.g., for simplified link-as-an-app template) + if (!fs.existsSync(packageJsonPath)) { + return; + } + const packageJsonConfig = JSON.parse(fs.readFileSync(packageJsonPath).toString()); packageJsonConfig.name = `@calcom/${slug}`; packageJsonConfig.description = appDescription; // packageJsonConfig.description = `@calcom/${appName}`; - fs.writeFileSync(`${appDirPath}/package.json`, JSON.stringify(packageJsonConfig, null, 2)); + fs.writeFileSync(packageJsonPath, JSON.stringify(packageJsonConfig, null, 2)); }; const _workspaceDir = path.resolve(__dirname, "..", "..", ".."); @@ -54,6 +59,7 @@ export const BaseAppFork = { template, isTemplate, oldSlug, + externalLinkUrl, }: { category: string; editMode?: boolean; @@ -65,6 +71,7 @@ export const BaseAppFork = { template: string; isTemplate: boolean; oldSlug?: string; + externalLinkUrl?: string; }) => { const appDirPath = getAppDirPath(slug, isTemplate); if (!editMode) { @@ -93,7 +100,7 @@ export const BaseAppFork = { video: "conferencing", }; - let config = { + let config: Record = { name: name, // Plan to remove it. DB already has it and name of dir is also the same. slug: slug, @@ -115,6 +122,17 @@ export const BaseAppFork = { ...currentConfig, ...config, }; + + // For link-as-an-app template, update the externalLink URL + if (template === "link-as-an-app" && externalLinkUrl) { + config.externalLink = { + url: externalLinkUrl, + newTab: true, + }; + // Also update the legacy url field for backwards compatibility + config.url = externalLinkUrl; + } + fs.writeFileSync(`${appDirPath}/config.json`, JSON.stringify(config, null, 2)); fs.writeFileSync( `${appDirPath}/DESCRIPTION.md`, diff --git a/packages/app-store-cli/tsconfig.json b/packages/app-store-cli/tsconfig.json index 5e2711b276..6fffe5dbd1 100644 --- a/packages/app-store-cli/tsconfig.json +++ b/packages/app-store-cli/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "strict": true, "module": "commonjs", - "jsx": "react", + "jsx": "react-jsx", "esModuleInterop": true, "outDir": "dist", "noEmitOnError": false, diff --git a/packages/app-store/_utils/redirectApps.ts b/packages/app-store/_utils/redirectApps.ts index 8be4d1d7df..6e3f9e74ff 100644 --- a/packages/app-store/_utils/redirectApps.ts +++ b/packages/app-store/_utils/redirectApps.ts @@ -1,25 +1,7 @@ -export const REDIRECT_APPS = [ - "amie", - "autocheckin", - "bolna", - "chatbase", - "clic", - "deel", - "elevenlabs", - "granola", - "greetmate-ai", - "lindy", - "linear", - "millis-ai", - "monobot", - "retell-ai", - "synthflow", - "telli", - "vimcal", - "wordpress", - "zapier", -]; +import { REDIRECT_APPS } from "../redirect-apps.generated"; + +export { REDIRECT_APPS }; export const isRedirectApp = (slug: string): boolean => { - return REDIRECT_APPS.includes(slug); + return (REDIRECT_APPS as readonly string[]).includes(slug); }; diff --git a/packages/app-store/amie/api/add.ts b/packages/app-store/amie/api/add.ts deleted file mode 100644 index af651081c2..0000000000 --- a/packages/app-store/amie/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import { createDefaultInstallation } from "../../_utils/installation"; -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://amie.so/signup", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/amie/api/index.ts b/packages/app-store/amie/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/amie/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/amie/components/.gitkeep b/packages/app-store/amie/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/amie/config.json b/packages/app-store/amie/config.json index ac87eed277..5c0694b09c 100644 --- a/packages/app-store/amie/config.json +++ b/packages/app-store/amie/config.json @@ -6,12 +6,20 @@ "logo": "icon.svg", "url": "https://cal.com", "variant": "other", - "categories": ["calendar"], + "categories": [ + "calendar" + ], "publisher": "Cal.com, Inc.", "email": "support@cal.com", "description": "The joyful productivity app\r\r", "__createdUsingCli": true, - "dependencies": ["google-calendar"], + "dependencies": [ + "google-calendar" + ], "dirName": "amie", - "isOAuth": false + "isOAuth": false, + "externalLink": { + "url": "https://amie.so/signup", + "newTab": true + } } diff --git a/packages/app-store/amie/index.ts b/packages/app-store/amie/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/amie/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/amie/package.json b/packages/app-store/amie/package.json deleted file mode 100644 index cfb04538c9..0000000000 --- a/packages/app-store/amie/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/amie", - "version": "0.0.0", - "main": "./index.ts", - "description": "The joyful productivity app\r\r", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - } -} diff --git a/packages/app-store/apps.server.generated.ts b/packages/app-store/apps.server.generated.ts index 2383fba643..61349f361c 100644 --- a/packages/app-store/apps.server.generated.ts +++ b/packages/app-store/apps.server.generated.ts @@ -4,43 +4,30 @@ **/ export const apiHandlers = { alby: import("./alby/api"), - amie: import("./amie/api"), applecalendar: import("./applecalendar/api"), attio: import("./attio/api"), - autocheckin: import("./autocheckin/api"), - "baa-for-hipaa": import("./baa-for-hipaa/api"), basecamp3: import("./basecamp3/api"), - bolna: import("./bolna/api"), btcpayserver: import("./btcpayserver/api"), caldavcalendar: import("./caldavcalendar/api"), campfire: import("./campfire/api"), - chatbase: import("./chatbase/api"), - clic: import("./clic/api"), closecom: import("./closecom/api"), - cron: import("./cron/api"), databuddy: import("./databuddy/api"), - deel: import("./deel/api"), demodesk: import("./demodesk/api"), dialpad: import("./dialpad/api"), discord: import("./discord/api"), dub: import("./dub/api"), eightxeight: import("./eightxeight/api"), "element-call": import("./element-call/api"), - elevenlabs: import("./elevenlabs/api"), exchange2013calendar: import("./exchange2013calendar/api"), exchange2016calendar: import("./exchange2016calendar/api"), exchangecalendar: import("./exchangecalendar/api"), facetime: import("./facetime/api"), fathom: import("./fathom/api"), feishucalendar: import("./feishucalendar/api"), - "fonio-ai": import("./fonio-ai/api"), - framer: import("./framer/api"), ga4: import("./ga4/api"), giphy: import("./giphy/api"), googlecalendar: import("./googlecalendar/api"), googlevideo: import("./googlevideo/api"), - granola: import("./granola/api"), - "greetmate-ai": import("./greetmate-ai/api"), gtm: import("./gtm/api"), hitpay: import("./hitpay/api"), "horizon-workrooms": import("./horizon-workrooms/api"), @@ -52,28 +39,21 @@ export const apiHandlers = { jelly: import("./jelly/api"), jitsivideo: import("./jitsivideo/api"), larkcalendar: import("./larkcalendar/api"), - lindy: import("./lindy/api"), linear: import("./linear/api"), make: import("./make/api"), matomo: import("./matomo/api"), metapixel: import("./metapixel/api"), - "millis-ai": import("./millis-ai/api"), mirotalk: import("./mirotalk/api"), "mock-payment-app": import("./mock-payment-app/api"), - monobot: import("./monobot/api"), - n8n: import("./n8n/api"), nextcloudtalk: import("./nextcloudtalk/api"), office365calendar: import("./office365calendar/api"), office365video: import("./office365video/api"), paypal: import("./paypal/api"), ping: import("./ping/api"), - pipedream: import("./pipedream/api"), "pipedrive-crm": import("./pipedrive-crm/api"), plausible: import("./plausible/api"), posthog: import("./posthog/api"), qr_code: import("./qr_code/api"), - raycast: import("./raycast/api"), - "retell-ai": import("./retell-ai/api"), riverside: import("./riverside/api"), roam: import("./roam/api"), "routing-forms": import("./routing-forms/api"), @@ -86,26 +66,21 @@ export const apiHandlers = { skype: import("./skype/api"), stripepayment: import("./stripepayment/api"), sylapsvideo: import("./sylapsvideo/api"), - synthflow: import("./synthflow/api"), tandemvideo: import("./tandemvideo/api"), telegram: import("./telegram/api"), - telli: import("./telli/api"), basic: import("./templates/basic/api"), "booking-pages-tag": import("./templates/booking-pages-tag/api"), "event-type-app-card": import("./templates/event-type-app-card/api"), "event-type-location-video-static": import("./templates/event-type-location-video-static/api"), "general-app-settings": import("./templates/general-app-settings/api"), - "link-as-an-app": import("./templates/link-as-an-app/api"), twipla: import("./twipla/api"), umami: import("./umami/api"), - vimcal: import("./vimcal/api"), vital: import("./vital/api"), weather_in_your_calendar: import("./weather_in_your_calendar/api"), webex: import("./webex/api"), whatsapp: import("./whatsapp/api"), whereby: import("./whereby/api"), wipemycalother: import("./wipemycalother/api"), - wordpress: import("./wordpress/api"), zapier: import("./zapier/api"), "zoho-bigin": import("./zoho-bigin/api"), zohocalendar: import("./zohocalendar/api"), diff --git a/packages/app-store/autocheckin/api/add.ts b/packages/app-store/autocheckin/api/add.ts deleted file mode 100644 index 5d647aa841..0000000000 --- a/packages/app-store/autocheckin/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://autocheckin.app", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/autocheckin/api/index.ts b/packages/app-store/autocheckin/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/autocheckin/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/autocheckin/components/.gitkeep b/packages/app-store/autocheckin/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/autocheckin/config.json b/packages/app-store/autocheckin/config.json index 94c86b66a8..9b4d54dcbf 100644 --- a/packages/app-store/autocheckin/config.json +++ b/packages/app-store/autocheckin/config.json @@ -6,11 +6,17 @@ "logo": "icon.svg", "url": "https://autocheckin.app", "variant": "automation", - "categories": ["automation"], + "categories": [ + "automation" + ], "publisher": "Patrick Goeler von Ravensburg", "email": "patrickvongoeler@gmail.com", "description": "You simply paste a [Cal.com](https://cal.com) link of someone, select a frequency and we will take care of the scheduling for you.\r\r", "isTemplate": false, "__createdUsingCli": true, - "__template": "link-as-an-app" + "__template": "link-as-an-app", + "externalLink": { + "url": "https://autocheckin.app", + "newTab": true + } } diff --git a/packages/app-store/autocheckin/index.ts b/packages/app-store/autocheckin/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/autocheckin/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/autocheckin/package.json b/packages/app-store/autocheckin/package.json deleted file mode 100644 index 4f1d4bd498..0000000000 --- a/packages/app-store/autocheckin/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/autocheckin", - "version": "0.0.0", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - }, - "description": "You simply paste a Cal.com link of someone, select a frequency and we will take care of the scheduling for you.\r\r" -} diff --git a/packages/app-store/baa-for-hipaa/api/add.ts b/packages/app-store/baa-for-hipaa/api/add.ts deleted file mode 100644 index 8cff63dd29..0000000000 --- a/packages/app-store/baa-for-hipaa/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://cal.com/BAA", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/baa-for-hipaa/api/index.ts b/packages/app-store/baa-for-hipaa/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/baa-for-hipaa/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/baa-for-hipaa/components/.gitkeep b/packages/app-store/baa-for-hipaa/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/baa-for-hipaa/config.json b/packages/app-store/baa-for-hipaa/config.json index 2919a6565c..fd2aa756c9 100644 --- a/packages/app-store/baa-for-hipaa/config.json +++ b/packages/app-store/baa-for-hipaa/config.json @@ -6,7 +6,9 @@ "logo": "icon.svg", "url": "https://cal.com/BAA", "variant": "other", - "categories": ["other"], + "categories": [ + "other" + ], "publisher": "Cal.com, Inc.", "email": "support@cal.com", "description": "Request a signed Business Associate Agreement for your HIPAA compliance records", @@ -16,5 +18,9 @@ "paid": { "priceInUsd": 300, "mode": "subscription" + }, + "externalLink": { + "url": "https://cal.com/BAA", + "newTab": true } } diff --git a/packages/app-store/baa-for-hipaa/index.ts b/packages/app-store/baa-for-hipaa/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/baa-for-hipaa/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/baa-for-hipaa/package.json b/packages/app-store/baa-for-hipaa/package.json deleted file mode 100644 index ffa9042196..0000000000 --- a/packages/app-store/baa-for-hipaa/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/baa-for-hipaa", - "version": "0.0.0", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - }, - "description": "Request a signed Business Associate Agreement for your HIPAA compliance records" -} diff --git a/packages/app-store/bolna/api/add.ts b/packages/app-store/bolna/api/add.ts deleted file mode 100644 index 0ca4ffca22..0000000000 --- a/packages/app-store/bolna/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://playground.bolna.dev/auth/calcom", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/bolna/api/index.ts b/packages/app-store/bolna/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/bolna/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/bolna/components/.gitkeep b/packages/app-store/bolna/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/bolna/config.json b/packages/app-store/bolna/config.json index a03f42ff52..ee8ac7a2da 100644 --- a/packages/app-store/bolna/config.json +++ b/packages/app-store/bolna/config.json @@ -6,11 +6,17 @@ "logo": "icon-primary.svg", "url": "https://playground.bolna.dev/auth/calcom", "variant": "automation", - "categories": ["automation"], + "categories": [ + "automation" + ], "publisher": "Bolna", "email": "founders@bolna.dev", "description": "24x7 AI receptionists to answer all inbound calls", "isTemplate": false, "__createdUsingCli": true, - "__template": "link-as-an-app" + "__template": "link-as-an-app", + "externalLink": { + "url": "https://playground.bolna.dev/auth/calcom", + "newTab": true + } } diff --git a/packages/app-store/bolna/index.ts b/packages/app-store/bolna/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/bolna/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/bolna/package.json b/packages/app-store/bolna/package.json deleted file mode 100644 index b35237a2b4..0000000000 --- a/packages/app-store/bolna/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/bolna", - "version": "0.0.1", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - }, - "description": "24x7 AI receptionists to answer all inbound calls" -} diff --git a/packages/app-store/chatbase/api/add.ts b/packages/app-store/chatbase/api/add.ts deleted file mode 100644 index d094fe4243..0000000000 --- a/packages/app-store/chatbase/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://www.chatbase.co/guide/cal", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/chatbase/api/index.ts b/packages/app-store/chatbase/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/chatbase/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/chatbase/components/.gitkeep b/packages/app-store/chatbase/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/chatbase/config.json b/packages/app-store/chatbase/config.json index f974735951..deec22e8b3 100644 --- a/packages/app-store/chatbase/config.json +++ b/packages/app-store/chatbase/config.json @@ -6,11 +6,17 @@ "logo": "icon-dark.svg", "url": "https://www.chatbase.co/guide/cal", "variant": "other", - "categories": ["other"], + "categories": [ + "other" + ], "publisher": "Chatbase", "email": "sandra@chatbase.co", "description": "Add [Cal.com](https://cal.com/) to your Chatbase AI Chatbot and accept bookings right inside chat.", "isTemplate": false, "__createdUsingCli": true, - "__template": "link-as-an-app" + "__template": "link-as-an-app", + "externalLink": { + "url": "https://www.chatbase.co/guide/cal", + "newTab": true + } } diff --git a/packages/app-store/chatbase/index.ts b/packages/app-store/chatbase/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/chatbase/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/chatbase/package.json b/packages/app-store/chatbase/package.json deleted file mode 100644 index 45edacfec6..0000000000 --- a/packages/app-store/chatbase/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/chatbase", - "version": "0.0.0", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - }, - "description": "Add Cal.com to your Chatbase AI Chatbot and accept bookings right inside chat." -} diff --git a/packages/app-store/clic/api/add.ts b/packages/app-store/clic/api/add.ts deleted file mode 100644 index 9132b970d4..0000000000 --- a/packages/app-store/clic/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://clicis.vercel.app", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/clic/api/index.ts b/packages/app-store/clic/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/clic/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/clic/config.json b/packages/app-store/clic/config.json index 800c117818..3c206df326 100644 --- a/packages/app-store/clic/config.json +++ b/packages/app-store/clic/config.json @@ -6,11 +6,17 @@ "logo": "icon.svg", "url": "https://clicis.vercel.app", "variant": "automation", - "categories": ["automation"], + "categories": [ + "automation" + ], "publisher": "Chris Pacheco", "email": "chrispacheco430@gmail.com", "description": "Create, List and Interact with Your Cal.com links and connections easily.\r\r", "isTemplate": false, "__createdUsingCli": true, - "__template": "link-as-an-app" + "__template": "link-as-an-app", + "externalLink": { + "url": "https://clicis.vercel.app", + "newTab": true + } } diff --git a/packages/app-store/clic/index.ts b/packages/app-store/clic/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/clic/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/clic/package.json b/packages/app-store/clic/package.json deleted file mode 100644 index 33ef6e02df..0000000000 --- a/packages/app-store/clic/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/clic", - "version": "0.1.0", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - }, - "description": "Create, List and Interact with Your Cal.com links and connections easily." -} diff --git a/packages/app-store/cron/api/add.ts b/packages/app-store/cron/api/add.ts deleted file mode 100644 index 57a7442cd6..0000000000 --- a/packages/app-store/cron/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://cron.com", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/cron/api/index.ts b/packages/app-store/cron/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/cron/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/cron/components/.gitkeep b/packages/app-store/cron/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/cron/config.json b/packages/app-store/cron/config.json index d5c8dae388..dadeb1b8f9 100644 --- a/packages/app-store/cron/config.json +++ b/packages/app-store/cron/config.json @@ -6,13 +6,21 @@ "logo": "logo.png", "url": "https://github.com/miguelnietoa", "variant": "calendar", - "categories": ["calendar"], + "categories": [ + "calendar" + ], "publisher": "Miguel Nieto", "email": "support@cal.com", "description": "All of your commitments, now in one place.", "isTemplate": false, "__createdUsingCli": true, "__template": "link-as-an-app", - "dependencies": ["google-calendar"], - "isOAuth": false + "dependencies": [ + "google-calendar" + ], + "isOAuth": false, + "externalLink": { + "url": "https://cron.com", + "newTab": true + } } diff --git a/packages/app-store/cron/index.ts b/packages/app-store/cron/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/cron/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/cron/package.json b/packages/app-store/cron/package.json deleted file mode 100644 index af155e5863..0000000000 --- a/packages/app-store/cron/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/cron", - "version": "0.0.0", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - }, - "description": "All of your commitments, now in one place." -} diff --git a/packages/app-store/deel/api/add.ts b/packages/app-store/deel/api/add.ts deleted file mode 100644 index 8330e4bde7..0000000000 --- a/packages/app-store/deel/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://go.cal.com/deel", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/deel/api/index.ts b/packages/app-store/deel/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/deel/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/deel/components/.gitkeep b/packages/app-store/deel/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/deel/config.json b/packages/app-store/deel/config.json index bd9daea83b..8df118c020 100644 --- a/packages/app-store/deel/config.json +++ b/packages/app-store/deel/config.json @@ -6,12 +6,18 @@ "logo": "icon.svg", "url": "https://go.cal.com/deel", "variant": "other", - "categories": ["other"], + "categories": [ + "other" + ], "publisher": "Deel.com", "email": "support@deel.com", "description": "Integrate Deel with your Calendar and get automatic updates on key employee dates like PTO, start days, public holidays, and birthdays. No manual entry. No errors. Just a calendar that's always in sync with your team.", "isTemplate": false, "__createdUsingCli": true, "__template": "link-as-an-app", - "dirName": "deel" + "dirName": "deel", + "externalLink": { + "url": "https://go.cal.com/deel", + "newTab": true + } } diff --git a/packages/app-store/deel/index.ts b/packages/app-store/deel/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/deel/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/deel/package.json b/packages/app-store/deel/package.json deleted file mode 100644 index e20b34b67b..0000000000 --- a/packages/app-store/deel/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/deel", - "version": "0.0.0", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - }, - "description": "Integrate Deel with your Calendar and get automatic updates on key employee dates like PTO, start days, public holidays, and birthdays. No manual entry. No errors. Just a calendar that's always in sync with your team." -} diff --git a/packages/app-store/elevenlabs/api/add.ts b/packages/app-store/elevenlabs/api/add.ts deleted file mode 100644 index 35a141f4ce..0000000000 --- a/packages/app-store/elevenlabs/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://elevenlabs.io/docs/conversational-ai/guides/integrations/cal-com", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/elevenlabs/api/index.ts b/packages/app-store/elevenlabs/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/elevenlabs/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/elevenlabs/components/.gitkeep b/packages/app-store/elevenlabs/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/elevenlabs/config.json b/packages/app-store/elevenlabs/config.json index 8e9e1feca3..1df2ec714a 100644 --- a/packages/app-store/elevenlabs/config.json +++ b/packages/app-store/elevenlabs/config.json @@ -6,11 +6,17 @@ "logo": "icon-dark.svg", "url": "https://elevenlabs.io/docs/conversational-ai/guides/integrations/cal-com", "variant": "automation", - "categories": ["automation"], + "categories": [ + "automation" + ], "publisher": "ElevenLabs", "email": "support@elevenlabs.io", "description": "Create the most realistic speech with our AI audio platform", "isTemplate": false, "__createdUsingCli": true, - "__template": "link-as-an-app" + "__template": "link-as-an-app", + "externalLink": { + "url": "https://elevenlabs.io/docs/conversational-ai/guides/integrations/cal-com", + "newTab": true + } } diff --git a/packages/app-store/elevenlabs/index.ts b/packages/app-store/elevenlabs/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/elevenlabs/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/elevenlabs/package.json b/packages/app-store/elevenlabs/package.json deleted file mode 100644 index dc8bdef7ae..0000000000 --- a/packages/app-store/elevenlabs/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/elevenlabs", - "version": "0.0.0", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - }, - "description": "Create the most realistic speech with our AI audio platform" -} diff --git a/packages/app-store/fonio-ai/api/add.ts b/packages/app-store/fonio-ai/api/add.ts deleted file mode 100644 index a46f2a6a24..0000000000 --- a/packages/app-store/fonio-ai/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://docs.fonio.ai/Tools/Terminbuchung", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/fonio-ai/api/index.ts b/packages/app-store/fonio-ai/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/fonio-ai/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/fonio-ai/components/.gitkeep b/packages/app-store/fonio-ai/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/fonio-ai/config.json b/packages/app-store/fonio-ai/config.json index 9713c0f444..a68110335b 100644 --- a/packages/app-store/fonio-ai/config.json +++ b/packages/app-store/fonio-ai/config.json @@ -6,11 +6,17 @@ "logo": "icon.png", "url": "https://docs.fonio.ai/Tools/Terminbuchung", "variant": "automation", - "categories": ["automation"], + "categories": [ + "automation" + ], "publisher": "fonio GmbH", "email": "info@fonio.ai", "description": "Der KI-Telefonassistent auf Deutsch\r", "isTemplate": false, "__createdUsingCli": true, - "__template": "link-as-an-app" + "__template": "link-as-an-app", + "externalLink": { + "url": "https://docs.fonio.ai/Tools/Terminbuchung", + "newTab": true + } } diff --git a/packages/app-store/fonio-ai/index.ts b/packages/app-store/fonio-ai/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/fonio-ai/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/fonio-ai/package.json b/packages/app-store/fonio-ai/package.json deleted file mode 100644 index 004359e5dd..0000000000 --- a/packages/app-store/fonio-ai/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/fonio-ai", - "version": "0.0.0", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "*" - }, - "devDependencies": { - "@calcom/types": "*" - }, - "description": "Der KI-Telefonassistent auf Deutsch\r" -} diff --git a/packages/app-store/framer/api/add.ts b/packages/app-store/framer/api/add.ts deleted file mode 100644 index bb69f9d583..0000000000 --- a/packages/app-store/framer/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://www.framer.com/updates/cal-com", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/framer/api/index.ts b/packages/app-store/framer/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/framer/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/framer/components/.gitkeep b/packages/app-store/framer/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/framer/config.json b/packages/app-store/framer/config.json index 676eaafbb7..794cf91238 100644 --- a/packages/app-store/framer/config.json +++ b/packages/app-store/framer/config.json @@ -6,11 +6,17 @@ "logo": "icon-dark.svg", "url": "https://www.framer.com/updates/cal-com", "variant": "other", - "categories": ["other"], + "categories": [ + "other" + ], "publisher": "Framer B.V.", "email": "benjamin@framer.com", "description": "Add Cal.com to Framer, the design tool for websites. Design freely, publish fast, and scale with CMS, SEO, analytics, and more.", "isTemplate": false, "__createdUsingCli": true, - "__template": "link-as-an-app" + "__template": "link-as-an-app", + "externalLink": { + "url": "https://www.framer.com/updates/cal-com", + "newTab": true + } } diff --git a/packages/app-store/framer/index.ts b/packages/app-store/framer/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/framer/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/framer/package.json b/packages/app-store/framer/package.json deleted file mode 100644 index c26b5e75d8..0000000000 --- a/packages/app-store/framer/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/framer", - "version": "0.0.0", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - }, - "description": "Add Cal.com to Framer, the design tool for websites. Design freely, publish fast, and scale with CMS, SEO, analytics, and more.\r\r\r\r" -} diff --git a/packages/app-store/granola/api/add.ts b/packages/app-store/granola/api/add.ts deleted file mode 100644 index 2921426ffb..0000000000 --- a/packages/app-store/granola/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://go.cal.com/granola", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/granola/api/index.ts b/packages/app-store/granola/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/granola/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/granola/components/.gitkeep b/packages/app-store/granola/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/granola/config.json b/packages/app-store/granola/config.json index 98a918d7df..d4845f6f64 100644 --- a/packages/app-store/granola/config.json +++ b/packages/app-store/granola/config.json @@ -6,11 +6,17 @@ "logo": "icon.svg", "url": "https://go.cal.com/granola", "variant": "other", - "categories": ["other"], + "categories": [ + "other" + ], "publisher": "Granola inc", "email": "hey@granola.so", "description": "The AI notepad for people in back-to-back meetings for MacOS", "isTemplate": false, "__createdUsingCli": true, - "__template": "link-as-an-app" + "__template": "link-as-an-app", + "externalLink": { + "url": "https://go.cal.com/granola", + "newTab": true + } } diff --git a/packages/app-store/granola/index.ts b/packages/app-store/granola/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/granola/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/granola/package.json b/packages/app-store/granola/package.json deleted file mode 100644 index 9527ddd676..0000000000 --- a/packages/app-store/granola/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/granola", - "version": "0.0.0", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - }, - "description": "The AI notepad for people in back-to-back meetings for MacOS" -} diff --git a/packages/app-store/greetmate-ai/api/add.ts b/packages/app-store/greetmate-ai/api/add.ts deleted file mode 100644 index 42b25206f3..0000000000 --- a/packages/app-store/greetmate-ai/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://www.greetmate.com/dashboard", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/greetmate-ai/api/index.ts b/packages/app-store/greetmate-ai/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/greetmate-ai/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/greetmate-ai/components/.gitkeep b/packages/app-store/greetmate-ai/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/greetmate-ai/config.json b/packages/app-store/greetmate-ai/config.json index bf4e1572b9..1bf3228757 100644 --- a/packages/app-store/greetmate-ai/config.json +++ b/packages/app-store/greetmate-ai/config.json @@ -6,11 +6,17 @@ "logo": "icon-dark.svg", "url": "https://www.greetmate.ai", "variant": "automation", - "categories": ["automation"], + "categories": [ + "automation" + ], "publisher": "Greetmate Inc.", "email": "support@greetmate.ai", "description": "Connect [Cal.com](https://cal.com/) to [Greetmate.ai](https://www.greetmate.ai/) and enable appointment scheduling for your AI agents.", "isTemplate": false, "__createdUsingCli": true, - "__template": "link-as-an-app" + "__template": "link-as-an-app", + "externalLink": { + "url": "https://www.greetmate.com/dashboard", + "newTab": true + } } diff --git a/packages/app-store/greetmate-ai/index.ts b/packages/app-store/greetmate-ai/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/greetmate-ai/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/greetmate-ai/package.json b/packages/app-store/greetmate-ai/package.json deleted file mode 100644 index 9f77c9b516..0000000000 --- a/packages/app-store/greetmate-ai/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/greetmate-ai", - "version": "0.0.0", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - }, - "description": "Connect Cal.com to Greetmate.ai and enable appointment scheduling for your AI agents." -} diff --git a/packages/app-store/lindy/api/add.ts b/packages/app-store/lindy/api/add.ts deleted file mode 100644 index e136fc3457..0000000000 --- a/packages/app-store/lindy/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://www.lindy.ai/integrations/cal-com", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/lindy/api/index.ts b/packages/app-store/lindy/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/lindy/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/lindy/components/.gitkeep b/packages/app-store/lindy/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/lindy/config.json b/packages/app-store/lindy/config.json index ab014dcf77..0234b6836a 100644 --- a/packages/app-store/lindy/config.json +++ b/packages/app-store/lindy/config.json @@ -6,11 +6,17 @@ "logo": "icon-dark.svg", "url": "https://www.lindy.ai/integrations/cal-com", "variant": "automation", - "categories": ["automation"], + "categories": [ + "automation" + ], "publisher": "Lindy", "email": "flo@lindy.ai", "description": "Build AI agents in minutes to automate workflows, save time and grow your business", "isTemplate": false, "__createdUsingCli": true, - "__template": "link-as-an-app" + "__template": "link-as-an-app", + "externalLink": { + "url": "https://www.lindy.ai/integrations/cal-com", + "newTab": true + } } diff --git a/packages/app-store/lindy/index.ts b/packages/app-store/lindy/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/lindy/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/lindy/package.json b/packages/app-store/lindy/package.json deleted file mode 100644 index 5253b34a64..0000000000 --- a/packages/app-store/lindy/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/lindy", - "version": "0.0.0", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - }, - "description": "Build AI agents in minutes to automate workflows, save time and grow your business" -} diff --git a/packages/app-store/linear/config.json b/packages/app-store/linear/config.json index 4f0bbe72e3..d01cbfb774 100644 --- a/packages/app-store/linear/config.json +++ b/packages/app-store/linear/config.json @@ -13,5 +13,9 @@ "isTemplate": false, "__createdUsingCli": true, "dependencies": ["google-calendar"], - "__template": "link-as-an-app" + "__template": "link-as-an-app", + "externalLink": { + "url": "https://linear.app/settings/integrations/google-calendar", + "newTab": true + } } diff --git a/packages/app-store/millis-ai/api/add.ts b/packages/app-store/millis-ai/api/add.ts deleted file mode 100644 index 12c2d6dc00..0000000000 --- a/packages/app-store/millis-ai/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://www.millis.ai/integrations/cal-com", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/millis-ai/api/index.ts b/packages/app-store/millis-ai/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/millis-ai/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/millis-ai/components/.gitkeep b/packages/app-store/millis-ai/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/millis-ai/config.json b/packages/app-store/millis-ai/config.json index 0a1e40c0a1..798218ce83 100644 --- a/packages/app-store/millis-ai/config.json +++ b/packages/app-store/millis-ai/config.json @@ -6,11 +6,17 @@ "logo": "icon.png", "url": "https://docs.millis.ai/tutorials/create-voice-agent-for-appointment-scheduling", "variant": "automation", - "categories": ["automation"], + "categories": [ + "automation" + ], "publisher": "Millis AI", "email": "thach@millis.ai", "description": "Build next-gen voice agents with 500ms latency\r", "isTemplate": false, "__createdUsingCli": true, - "__template": "link-as-an-app" + "__template": "link-as-an-app", + "externalLink": { + "url": "https://www.millis.ai/integrations/cal-com", + "newTab": true + } } diff --git a/packages/app-store/millis-ai/index.ts b/packages/app-store/millis-ai/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/millis-ai/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/millis-ai/package.json b/packages/app-store/millis-ai/package.json deleted file mode 100644 index 141961438f..0000000000 --- a/packages/app-store/millis-ai/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/millis-ai", - "version": "0.0.0", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - }, - "description": "Build next-gen voice agents with 500ms latency\r" -} diff --git a/packages/app-store/monobot/api/add.ts b/packages/app-store/monobot/api/add.ts deleted file mode 100644 index 1ecc4e2913..0000000000 --- a/packages/app-store/monobot/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://monobot.ai/?ref=cal.com", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/monobot/api/index.ts b/packages/app-store/monobot/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/monobot/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/monobot/components/.gitkeep b/packages/app-store/monobot/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/monobot/config.json b/packages/app-store/monobot/config.json index 886f7f3ecd..3d706fd2de 100644 --- a/packages/app-store/monobot/config.json +++ b/packages/app-store/monobot/config.json @@ -6,11 +6,17 @@ "logo": "icon.svg", "url": "https://monobot.ai/?ref=cal.com", "variant": "automation", - "categories": ["automation"], + "categories": [ + "automation" + ], "publisher": "Monobot CX", "email": "contact@monobot.ai", "description": "Crafting your personalized AI-driven assistant is easy and fast.", "isTemplate": false, "__createdUsingCli": true, - "__template": "link-as-an-app" + "__template": "link-as-an-app", + "externalLink": { + "url": "https://monobot.ai/?ref=cal.com", + "newTab": true + } } diff --git a/packages/app-store/monobot/index.ts b/packages/app-store/monobot/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/monobot/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/monobot/package.json b/packages/app-store/monobot/package.json deleted file mode 100644 index a047926d63..0000000000 --- a/packages/app-store/monobot/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/monobot", - "version": "0.0.0", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - }, - "description": "Crafting your personalized AI-driven assistant is easy and fast." -} diff --git a/packages/app-store/n8n/api/add.ts b/packages/app-store/n8n/api/add.ts deleted file mode 100644 index 02ba726e46..0000000000 --- a/packages/app-store/n8n/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import { createDefaultInstallation } from "../../_utils/installation"; -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - url: "https://n8n.io/integrations/cal-trigger/", - newTab: true, - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/n8n/api/index.ts b/packages/app-store/n8n/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/n8n/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/n8n/components/.gitkeep b/packages/app-store/n8n/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/n8n/config.json b/packages/app-store/n8n/config.json index 2770acacc5..3a427d4d2c 100644 --- a/packages/app-store/n8n/config.json +++ b/packages/app-store/n8n/config.json @@ -6,10 +6,16 @@ "logo": "icon.svg", "url": "https://cal.com/", "variant": "automation", - "categories": ["automation"], + "categories": [ + "automation" + ], "publisher": "Cal.com, Inc.", "email": "help@cal.com", "description": "Automate without limits. The workflow automation platform that doesn't box you in, that you never outgrow", "__createdUsingCli": true, - "isOAuth": false + "isOAuth": false, + "externalLink": { + "url": "https://n8n.io/integrations/cal-trigger/", + "newTab": true + } } diff --git a/packages/app-store/n8n/index.ts b/packages/app-store/n8n/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/n8n/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/n8n/package.json b/packages/app-store/n8n/package.json deleted file mode 100644 index ee64d590b1..0000000000 --- a/packages/app-store/n8n/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/n8n", - "version": "0.0.0", - "main": "./index.ts", - "description": "Automate without limits. The workflow automation platform that doesn't box you in, that you never outgrow", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - } -} diff --git a/packages/app-store/pipedream/api/add.ts b/packages/app-store/pipedream/api/add.ts deleted file mode 100644 index e2a8b001f9..0000000000 --- a/packages/app-store/pipedream/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import { createDefaultInstallation } from "../../_utils/installation"; -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://pipedream.com/apps/cal-com", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/pipedream/api/index.ts b/packages/app-store/pipedream/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/pipedream/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/pipedream/components/.gitkeep b/packages/app-store/pipedream/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/pipedream/config.json b/packages/app-store/pipedream/config.json index 7812bad8df..79b5076637 100644 --- a/packages/app-store/pipedream/config.json +++ b/packages/app-store/pipedream/config.json @@ -6,10 +6,16 @@ "logo": "icon.svg", "url": "https://pipedream.com/apps/cal-com", "variant": "automation", - "categories": ["automation"], + "categories": [ + "automation" + ], "publisher": "Pipedream, Inc.", "email": "support@pipedream.com", "description": "Connect APIs, remarkably fast. Stop writing boilerplate code, struggling with authentication and managing infrastructure. Start connecting APIs with code-level control when you need it — and no code when you don't", "__createdUsingCli": true, - "isOAuth": false + "isOAuth": false, + "externalLink": { + "url": "https://pipedream.com/apps/cal-com", + "newTab": true + } } diff --git a/packages/app-store/pipedream/index.ts b/packages/app-store/pipedream/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/pipedream/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/pipedream/package.json b/packages/app-store/pipedream/package.json deleted file mode 100644 index 6a9d2480d9..0000000000 --- a/packages/app-store/pipedream/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/pipedream", - "version": "0.0.0", - "main": "./index.ts", - "description": "Connect APIs, remarkably fast. Stop writing boilerplate code, struggling with authentication and managing infrastructure. Start connecting APIs with code-level control when you need it — and no code when you don't", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - } -} diff --git a/packages/app-store/raycast/api/add.ts b/packages/app-store/raycast/api/add.ts deleted file mode 100644 index 474e159c13..0000000000 --- a/packages/app-store/raycast/api/add.ts +++ /dev/null @@ -1,19 +0,0 @@ -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import { createDefaultInstallation } from "../../_utils/installation"; -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - slug: appConfig.slug, - variant: appConfig.variant, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - url: "raycast://extensions/eluce2/cal-com-share-meeting-links?source=webstore", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/raycast/api/index.ts b/packages/app-store/raycast/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/raycast/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/raycast/components/.gitkeep b/packages/app-store/raycast/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/raycast/config.json b/packages/app-store/raycast/config.json index 3cc1c5be8d..783fe80709 100644 --- a/packages/app-store/raycast/config.json +++ b/packages/app-store/raycast/config.json @@ -6,10 +6,16 @@ "logo": "icon.svg", "url": "https://github.com/eluce2", "variant": "other", - "categories": ["automation"], + "categories": [ + "automation" + ], "publisher": "Eric Luce", "email": "info@restlessmindstech.com", "description": "Quickly share your [Cal.com](https://cal.com) meeting links with Raycast", "__createdUsingCli": true, - "isOAuth": false + "isOAuth": false, + "externalLink": { + "url": "raycast://extensions/eluce2/cal-com-share-meeting-links?source=webstore", + "newTab": true + } } diff --git a/packages/app-store/raycast/index.ts b/packages/app-store/raycast/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/raycast/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/raycast/package.json b/packages/app-store/raycast/package.json deleted file mode 100644 index 335ffb6d45..0000000000 --- a/packages/app-store/raycast/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/raycast", - "version": "0.0.0", - "main": "./index.ts", - "description": "Quickly share your Cal.com meeting links with Raycast", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - } -} diff --git a/packages/app-store/redirect-apps.generated.ts b/packages/app-store/redirect-apps.generated.ts new file mode 100644 index 0000000000..3e9009189f --- /dev/null +++ b/packages/app-store/redirect-apps.generated.ts @@ -0,0 +1,33 @@ +/** + This file is autogenerated using the command `yarn app-store:build --watch`. + Don't modify this file manually. +**/ +export const REDIRECT_APPS = [ + "amie", + "autocheckin", + "baa-for-hipaa", + "bolna", + "chatbase", + "clic", + "cron", + "deel", + "elevenlabs", + "fonio-ai", + "framer", + "granola", + "greetmate-ai", + "lindy", + "linear", + "millis-ai", + "monobot", + "n8n", + "pipedream", + "raycast", + "retell-ai", + "synthflow", + "telli", + "vimcal", + "wordpress", + "zapier", +] as const; +export type RedirectApp = (typeof REDIRECT_APPS)[number]; diff --git a/packages/app-store/retell-ai/api/add.ts b/packages/app-store/retell-ai/api/add.ts deleted file mode 100644 index 6babf0df01..0000000000 --- a/packages/app-store/retell-ai/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://go.cal.com/retellai", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/retell-ai/api/index.ts b/packages/app-store/retell-ai/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/retell-ai/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/retell-ai/components/.gitkeep b/packages/app-store/retell-ai/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/retell-ai/config.json b/packages/app-store/retell-ai/config.json index 1f9300e1a7..5aabbcfebc 100644 --- a/packages/app-store/retell-ai/config.json +++ b/packages/app-store/retell-ai/config.json @@ -6,11 +6,17 @@ "logo": "icon-dark.svg", "url": "https://go.cal.com/retellai", "variant": "automation", - "categories": ["automation"], + "categories": [ + "automation" + ], "publisher": "Retell AI", "email": "founders@retellai.com", "description": "Supercharge your Call Operations with AI \r", "isTemplate": false, "__createdUsingCli": true, - "__template": "link-as-an-app" + "__template": "link-as-an-app", + "externalLink": { + "url": "https://go.cal.com/retellai", + "newTab": true + } } diff --git a/packages/app-store/retell-ai/index.ts b/packages/app-store/retell-ai/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/retell-ai/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/retell-ai/package.json b/packages/app-store/retell-ai/package.json deleted file mode 100644 index 841847b8e5..0000000000 --- a/packages/app-store/retell-ai/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/retell-ai", - "version": "0.0.0", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - }, - "description": "Supercharge your Call Operations with AI \r" -} diff --git a/packages/app-store/synthflow/api/add.ts b/packages/app-store/synthflow/api/add.ts deleted file mode 100644 index 5e0e7a40a9..0000000000 --- a/packages/app-store/synthflow/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://fine-tuner.ai/auth/calcom", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/synthflow/api/index.ts b/packages/app-store/synthflow/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/synthflow/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/synthflow/components/.gitkeep b/packages/app-store/synthflow/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/synthflow/config.json b/packages/app-store/synthflow/config.json index 9fd01685d4..e8d74aad28 100644 --- a/packages/app-store/synthflow/config.json +++ b/packages/app-store/synthflow/config.json @@ -6,11 +6,17 @@ "logo": "icon.svg", "url": "https://synthflow.ai/integrations/calcom", "variant": "automation", - "categories": ["automation"], + "categories": [ + "automation" + ], "publisher": "Synthflow.ai", "email": "albert@synthflow.ai", "description": "Effortless Human-Like AI Phone Calls and Scheduling", "isTemplate": false, "__createdUsingCli": true, - "__template": "link-as-an-app" + "__template": "link-as-an-app", + "externalLink": { + "url": "https://fine-tuner.ai/auth/calcom", + "newTab": true + } } diff --git a/packages/app-store/synthflow/index.ts b/packages/app-store/synthflow/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/synthflow/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/synthflow/package.json b/packages/app-store/synthflow/package.json deleted file mode 100644 index 1e77412f1f..0000000000 --- a/packages/app-store/synthflow/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/synthflow", - "version": "0.0.0", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - }, - "description": "Effortless Human-Like AI Phone Calls and Scheduling" -} diff --git a/packages/app-store/telli/api/add.ts b/packages/app-store/telli/api/add.ts deleted file mode 100644 index 49492d81f1..0000000000 --- a/packages/app-store/telli/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://www.telli.com/en/caldotcom", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/telli/api/index.ts b/packages/app-store/telli/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/telli/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/telli/components/.gitkeep b/packages/app-store/telli/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/telli/config.json b/packages/app-store/telli/config.json index 6bd98e4c45..8b733ceaa0 100644 --- a/packages/app-store/telli/config.json +++ b/packages/app-store/telli/config.json @@ -4,7 +4,7 @@ "slug": "telli", "type": "telli_automation", "logo": "icon-dark.svg", - "url": "https://www.telli.com/en/caldotcom", + "url": "https://app.telli.com/", "variant": "automation", "categories": ["automation"], "publisher": "telli technologies GmbH", @@ -12,5 +12,9 @@ "description": "telli AI agents reach your customers, make calls independently & enhance your customer experience - fully integrated into [Cal.com](https://cal.com).", "isTemplate": false, "__createdUsingCli": true, - "__template": "link-as-an-app" + "__template": "link-as-an-app", + "externalLink": { + "url": "https://app.telli.com/", + "newTab": true + } } diff --git a/packages/app-store/telli/index.ts b/packages/app-store/telli/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/telli/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/telli/package.json b/packages/app-store/telli/package.json deleted file mode 100644 index 89dd6be56c..0000000000 --- a/packages/app-store/telli/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/telli", - "version": "0.0.0", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - }, - "description": "telli AI agents reach your customers, make calls independently & enhance your customer experience - fully integrated into Cal.com." -} diff --git a/packages/app-store/templates/link-as-an-app/api/add.ts b/packages/app-store/templates/link-as-an-app/api/add.ts deleted file mode 100644 index 54d3b8c0c5..0000000000 --- a/packages/app-store/templates/link-as-an-app/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://example.com/link", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/templates/link-as-an-app/api/index.ts b/packages/app-store/templates/link-as-an-app/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/templates/link-as-an-app/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/templates/link-as-an-app/components/.gitkeep b/packages/app-store/templates/link-as-an-app/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/templates/link-as-an-app/config.json b/packages/app-store/templates/link-as-an-app/config.json index 86472367b8..86dd3841c6 100644 --- a/packages/app-store/templates/link-as-an-app/config.json +++ b/packages/app-store/templates/link-as-an-app/config.json @@ -11,5 +11,9 @@ "email": "support@cal.com", "description": "It's a template showing how an app, that is just a link to some webpage, can be made e.g. Pipedream, Amie, Vimcal.", "isTemplate": true, - "__createdUsingCli": true + "__createdUsingCli": true, + "externalLink": { + "url": "https://example.com/link", + "newTab": true + } } diff --git a/packages/app-store/templates/link-as-an-app/index.ts b/packages/app-store/templates/link-as-an-app/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/templates/link-as-an-app/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/templates/link-as-an-app/package.json b/packages/app-store/templates/link-as-an-app/package.json deleted file mode 100644 index da6c946e60..0000000000 --- a/packages/app-store/templates/link-as-an-app/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/link-as-an-app", - "version": "0.0.0", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - } -} diff --git a/packages/app-store/vimcal/api/add.ts b/packages/app-store/vimcal/api/add.ts deleted file mode 100644 index 7d5363dcab..0000000000 --- a/packages/app-store/vimcal/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import { createDefaultInstallation } from "../../_utils/installation"; -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://cal.com/blog/cal-plus-vimcal", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/vimcal/api/index.ts b/packages/app-store/vimcal/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/vimcal/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/vimcal/components/.gitkeep b/packages/app-store/vimcal/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/vimcal/config.json b/packages/app-store/vimcal/config.json index 4baeb62de9..a8ded44c59 100644 --- a/packages/app-store/vimcal/config.json +++ b/packages/app-store/vimcal/config.json @@ -6,11 +6,19 @@ "logo": "icon.svg", "url": "https://cal.com/", "variant": "other", - "categories": ["calendar"], + "categories": [ + "calendar" + ], "publisher": "Cal.com, Inc.", "email": "support@cal.com", "description": "The world's fastest calendar, beautifully designed for a remote world\r", "__createdUsingCli": true, - "dependencies": ["google-calendar"], - "isOAuth": false + "dependencies": [ + "google-calendar" + ], + "isOAuth": false, + "externalLink": { + "url": "https://cal.com/blog/cal-plus-vimcal", + "newTab": true + } } diff --git a/packages/app-store/vimcal/index.ts b/packages/app-store/vimcal/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/vimcal/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/vimcal/package.json b/packages/app-store/vimcal/package.json deleted file mode 100644 index 10c69e2c5e..0000000000 --- a/packages/app-store/vimcal/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/vimcal", - "version": "0.0.0", - "main": "./index.ts", - "description": "The world's fastest calendar, beautifully designed for a remote world\r", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - } -} diff --git a/packages/app-store/wordpress/api/add.ts b/packages/app-store/wordpress/api/add.ts deleted file mode 100644 index cafd9e577e..0000000000 --- a/packages/app-store/wordpress/api/add.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; - -import { createDefaultInstallation } from "../../_utils/installation"; -import appConfig from "../config.json"; - -const handler: AppDeclarativeHandler = { - appType: appConfig.type, - variant: appConfig.variant, - slug: appConfig.slug, - supportsMultipleInstalls: false, - handlerType: "add", - redirect: { - newTab: true, - url: "https://wordpress.org/plugins/cal-com/", - }, - createCredential: ({ appType, user, slug, teamId }) => - createDefaultInstallation({ appType, user: user, slug, key: {}, teamId }), -}; - -export default handler; diff --git a/packages/app-store/wordpress/api/index.ts b/packages/app-store/wordpress/api/index.ts deleted file mode 100644 index 4c0d2ead01..0000000000 --- a/packages/app-store/wordpress/api/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as add } from "./add"; diff --git a/packages/app-store/wordpress/components/.gitkeep b/packages/app-store/wordpress/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/app-store/wordpress/config.json b/packages/app-store/wordpress/config.json index c29179fedf..aacfa927c1 100644 --- a/packages/app-store/wordpress/config.json +++ b/packages/app-store/wordpress/config.json @@ -4,12 +4,16 @@ "slug": "wordpress", "type": "wordpress_other", "logo": "icon-dark.svg", - "url": "https://github.com/calcom/wp-plugin", + "url": "https://wordpress.org/plugins/cal-com/", "variant": "other", "categories": ["other"], "publisher": "Cal.com, Inc.", "email": "support@cal.com", "description": "Embedded booking pages right into your wordpress page", "__createdUsingCli": true, - "isAuth": false + "isAuth": false, + "externalLink": { + "url": "https://wordpress.org/plugins/cal-com/", + "newTab": true + } } diff --git a/packages/app-store/wordpress/index.ts b/packages/app-store/wordpress/index.ts deleted file mode 100644 index d7f3602204..0000000000 --- a/packages/app-store/wordpress/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as api from "./api"; diff --git a/packages/app-store/wordpress/package.json b/packages/app-store/wordpress/package.json deleted file mode 100644 index 283756194c..0000000000 --- a/packages/app-store/wordpress/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/wordpress", - "version": "0.0.0", - "main": "./index.ts", - "description": "Embedded booking pages right into your wordpress page", - "dependencies": { - "@calcom/lib": "workspace:*" - }, - "devDependencies": { - "@calcom/types": "workspace:*" - } -} diff --git a/packages/app-store/zapier/config.json b/packages/app-store/zapier/config.json index aa971b02d9..783b328edd 100644 --- a/packages/app-store/zapier/config.json +++ b/packages/app-store/zapier/config.json @@ -12,5 +12,9 @@ "description": "Workflow automation for everyone. Use the Cal.com Zapier app to automate your workflows when a booking is created, rescheduled, cancelled or when a meeting ends.", "isTemplate": false, "__createdUsingCli": true, - "__template": "link-as-an-app" + "__template": "link-as-an-app", + "externalLink": { + "url": "https://zapier.com/apps/calcom/integrations", + "newTab": true + } } diff --git a/packages/types/AppMetaSchema.ts b/packages/types/AppMetaSchema.ts index f6d391e8f3..00628b3229 100644 --- a/packages/types/AppMetaSchema.ts +++ b/packages/types/AppMetaSchema.ts @@ -112,6 +112,12 @@ export const AppMetaSchema = z imageSrc: z.string().optional(), label: z.string().optional(), linkType: z.string().optional(), + externalLink: z + .object({ + url: z.string(), + newTab: z.boolean().optional(), + }) + .optional(), }) .passthrough();