diff --git a/packages/app-store/apps.browser.generated.tsx b/packages/app-store/apps.browser.generated.tsx index f9a0c9d264..a3de74c836 100644 --- a/packages/app-store/apps.browser.generated.tsx +++ b/packages/app-store/apps.browser.generated.tsx @@ -24,6 +24,7 @@ import { metadata as office365calendar_meta } from "./office365calendar/_metadat import { metadata as office365video_meta } from "./office365video/_metadata"; import { metadata as ping_meta } from "./ping/_metadata"; import { metadata as rainbow_meta } from "./rainbow/_metadata"; +import { metadata as raycast_meta } from "./raycast/_metadata"; import { metadata as riverside_meta } from "./riverside/_metadata"; import { metadata as slackmessaging_meta } from "./slackmessaging/_metadata"; import { metadata as stripepayment_meta } from "./stripepayment/_metadata"; @@ -56,6 +57,7 @@ export const appStoreMetadata = { office365video: office365video_meta, ping: ping_meta, rainbow: rainbow_meta, + raycast: raycast_meta, riverside: riverside_meta, slackmessaging: slackmessaging_meta, stripepayment: stripepayment_meta, diff --git a/packages/app-store/apps.server.generated.ts b/packages/app-store/apps.server.generated.ts index ace3a83441..b53953f2f8 100644 --- a/packages/app-store/apps.server.generated.ts +++ b/packages/app-store/apps.server.generated.ts @@ -21,6 +21,7 @@ export const apiHandlers = { office365video: import("./office365video/api"), ping: import("./ping/api"), rainbow: import("./rainbow/api"), + raycast: import("./raycast/api"), riverside: import("./riverside/api"), slackmessaging: import("./slackmessaging/api"), stripepayment: import("./stripepayment/api"), diff --git a/packages/app-store/raycast/README.mdx b/packages/app-store/raycast/README.mdx new file mode 100644 index 0000000000..f3cd261231 --- /dev/null +++ b/packages/app-store/raycast/README.mdx @@ -0,0 +1,11 @@ +--- +items: + - /api/app-store/raycast/1.png + - /api/app-store/raycast/2.png + - /api/app-store/raycast/3.png + - /api/app-store/raycast/4.png +--- + + + +Quickly share your Cal.com meeting links with Raycast. Requires Raycast.com to be installed. You can create an API token in your Developer Cal.com Settings. diff --git a/packages/app-store/raycast/_metadata.ts b/packages/app-store/raycast/_metadata.ts new file mode 100644 index 0000000000..9c7f2aa320 --- /dev/null +++ b/packages/app-store/raycast/_metadata.ts @@ -0,0 +1,10 @@ +import type { AppMeta } from "@calcom/types/App"; + +import config from "./config.json"; + +export const metadata = { + category: "other", + ...config, +} as AppMeta; + +export default metadata; diff --git a/packages/app-store/raycast/api/add.ts b/packages/app-store/raycast/api/add.ts new file mode 100644 index 0000000000..53ca89baec --- /dev/null +++ b/packages/app-store/raycast/api/add.ts @@ -0,0 +1,17 @@ +import { AppDeclarativeHandler } from "@calcom/types/AppHandler"; + +import { createDefaultInstallation } from "../../_utils/installation"; +import appConfig from "../config.json"; + +const handler: AppDeclarativeHandler = { + // Instead of passing appType and slug from here, api/integrations/[..args] should be able to derive and pass these directly to createCredential + appType: appConfig.type, + slug: appConfig.slug, + supportsMultipleInstalls: false, + handlerType: "add", + redirectUrl: "raycast://extensions/eluce2/cal-com-share-meeting-links?source=webstore", + createCredential: ({ appType, user, slug }) => + createDefaultInstallation({ appType, userId: user.id, slug, key: {} }), +}; + +export default handler; diff --git a/packages/app-store/raycast/api/index.ts b/packages/app-store/raycast/api/index.ts new file mode 100644 index 0000000000..4c0d2ead01 --- /dev/null +++ b/packages/app-store/raycast/api/index.ts @@ -0,0 +1 @@ +export { default as add } from "./add"; diff --git a/packages/app-store/raycast/components/.gitkeep b/packages/app-store/raycast/components/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/app-store/raycast/config.json b/packages/app-store/raycast/config.json new file mode 100644 index 0000000000..2a4205df77 --- /dev/null +++ b/packages/app-store/raycast/config.json @@ -0,0 +1,15 @@ +{ + "/*": "Don't modify slug - If required, do it using cli edit command", + "name": "Raycast", + "slug": "raycast", + "type": "raycast_other", + "imageSrc": "/api/app-store/raycast/icon.svg", + "logo": "/api/app-store/raycast/icon.svg", + "url": "https://cal.com/apps/raycast", + "variant": "other", + "categories": ["other"], + "publisher": "eluce2", + "email": "info@restlessmindstech.com", + "description": "Quickly share your Cal.com meeting links with Raycast", + "__createdUsingCli": true +} diff --git a/packages/app-store/raycast/index.ts b/packages/app-store/raycast/index.ts new file mode 100644 index 0000000000..5d372ceda3 --- /dev/null +++ b/packages/app-store/raycast/index.ts @@ -0,0 +1,2 @@ +export * as api from "./api"; +export { metadata } from "./_metadata"; diff --git a/packages/app-store/raycast/package.json b/packages/app-store/raycast/package.json new file mode 100644 index 0000000000..62261964a1 --- /dev/null +++ b/packages/app-store/raycast/package.json @@ -0,0 +1,14 @@ +{ + "$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": "*" + }, + "devDependencies": { + "@calcom/types": "*" + } +} diff --git a/packages/app-store/raycast/static/1.png b/packages/app-store/raycast/static/1.png new file mode 100644 index 0000000000..ed6d9dbc31 Binary files /dev/null and b/packages/app-store/raycast/static/1.png differ diff --git a/packages/app-store/raycast/static/2.png b/packages/app-store/raycast/static/2.png new file mode 100644 index 0000000000..4999fc77f0 Binary files /dev/null and b/packages/app-store/raycast/static/2.png differ diff --git a/packages/app-store/raycast/static/3.png b/packages/app-store/raycast/static/3.png new file mode 100644 index 0000000000..7ce81d7b14 Binary files /dev/null and b/packages/app-store/raycast/static/3.png differ diff --git a/packages/app-store/raycast/static/4.png b/packages/app-store/raycast/static/4.png new file mode 100644 index 0000000000..959889103b Binary files /dev/null and b/packages/app-store/raycast/static/4.png differ diff --git a/packages/app-store/raycast/static/icon.svg b/packages/app-store/raycast/static/icon.svg new file mode 100644 index 0000000000..f1b07924e6 --- /dev/null +++ b/packages/app-store/raycast/static/icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/prisma/seed-app-store.config.json b/packages/prisma/seed-app-store.config.json index b1a7f6fa6e..d3b3431334 100644 --- a/packages/prisma/seed-app-store.config.json +++ b/packages/prisma/seed-app-store.config.json @@ -47,5 +47,11 @@ "categories": ["web3"], "slug": "rainbow", "type": "rainbow_web3" + }, + { + "dirName": "raycast", + "categories": ["other"], + "slug": "raycast", + "type": "raycast_other" } ]