diff --git a/packages/app-store/apps.metadata.generated.ts b/packages/app-store/apps.metadata.generated.ts index e2163cb2ed..2068d0210d 100644 --- a/packages/app-store/apps.metadata.generated.ts +++ b/packages/app-store/apps.metadata.generated.ts @@ -24,6 +24,7 @@ import { metadata as n8n_meta } from "./n8n/_metadata"; import { metadata as office365calendar_meta } from "./office365calendar/_metadata"; import { metadata as office365video_meta } from "./office365video/_metadata"; import { metadata as ping_meta } from "./ping/_metadata"; +import { metadata as pipedream_meta } from "./pipedream/_metadata"; import { metadata as qr_code_meta } from "./qr_code/_metadata"; import { metadata as rainbow_meta } from "./rainbow/_metadata"; import { metadata as raycast_meta } from "./raycast/_metadata"; @@ -62,6 +63,7 @@ export const appStoreMetadata = { office365calendar: office365calendar_meta, office365video: office365video_meta, ping: ping_meta, + pipedream: pipedream_meta, qr_code: qr_code_meta, rainbow: rainbow_meta, raycast: raycast_meta, diff --git a/packages/app-store/apps.server.generated.ts b/packages/app-store/apps.server.generated.ts index 519c8884d0..6f26fcc999 100644 --- a/packages/app-store/apps.server.generated.ts +++ b/packages/app-store/apps.server.generated.ts @@ -23,6 +23,7 @@ export const apiHandlers = { office365calendar: import("./office365calendar/api"), office365video: import("./office365video/api"), ping: import("./ping/api"), + pipedream: import("./pipedream/api"), qr_code: import("./qr_code/api"), rainbow: import("./rainbow/api"), raycast: import("./raycast/api"), diff --git a/packages/app-store/pipedream/README.mdx b/packages/app-store/pipedream/README.mdx new file mode 100644 index 0000000000..f5b4266197 --- /dev/null +++ b/packages/app-store/pipedream/README.mdx @@ -0,0 +1,20 @@ +--- +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 +items: + - /api/app-store/pipedream/1.png + - /api/app-store/pipedream/2.png + - /api/app-store/pipedream/3.png + - /api/app-store/pipedream/4.png + - /api/app-store/pipedream/5.png +--- + + + + +{description} + +
+
+ + + diff --git a/packages/app-store/pipedream/_metadata.ts b/packages/app-store/pipedream/_metadata.ts new file mode 100644 index 0000000000..9c7f2aa320 --- /dev/null +++ b/packages/app-store/pipedream/_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/pipedream/api/add.ts b/packages/app-store/pipedream/api/add.ts new file mode 100644 index 0000000000..dfcce1fa5e --- /dev/null +++ b/packages/app-store/pipedream/api/add.ts @@ -0,0 +1,18 @@ +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, + variant: appConfig.variant, + slug: appConfig.slug, + supportsMultipleInstalls: false, + handlerType: "add", + redirectUrl: "https://pipedream.com/apps/cal-com", + createCredential: ({ appType, user, slug }) => + createDefaultInstallation({ appType, userId: user.id, slug, key: {} }), +}; + +export default handler; diff --git a/packages/app-store/pipedream/api/index.ts b/packages/app-store/pipedream/api/index.ts new file mode 100644 index 0000000000..4c0d2ead01 --- /dev/null +++ b/packages/app-store/pipedream/api/index.ts @@ -0,0 +1 @@ +export { default as add } from "./add"; diff --git a/packages/app-store/pipedream/components/.gitkeep b/packages/app-store/pipedream/components/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/app-store/pipedream/config.json b/packages/app-store/pipedream/config.json new file mode 100644 index 0000000000..77205a2951 --- /dev/null +++ b/packages/app-store/pipedream/config.json @@ -0,0 +1,16 @@ +{ + "/*": "Don't modify slug - If required, do it using cli edit command", + "name": "Pipedream", + "slug": "pipedream", + "type": "pipedream_automation", + "imageSrc": "/api/app-store/pipedream/icon.svg", + "logo": "/api/app-store/pipedream/icon.svg", + "url": "https://pipedream.com/apps/cal-com", + "variant": "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", + "extendsFeature": "User", + "__createdUsingCli": true +} diff --git a/packages/app-store/pipedream/index.ts b/packages/app-store/pipedream/index.ts new file mode 100644 index 0000000000..5d372ceda3 --- /dev/null +++ b/packages/app-store/pipedream/index.ts @@ -0,0 +1,2 @@ +export * as api from "./api"; +export { metadata } from "./_metadata"; diff --git a/packages/app-store/pipedream/package.json b/packages/app-store/pipedream/package.json new file mode 100644 index 0000000000..77db0d05da --- /dev/null +++ b/packages/app-store/pipedream/package.json @@ -0,0 +1,14 @@ +{ + "$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": "*" + }, + "devDependencies": { + "@calcom/types": "*" + } +} diff --git a/packages/app-store/pipedream/static/1.png b/packages/app-store/pipedream/static/1.png new file mode 100644 index 0000000000..2361b23556 Binary files /dev/null and b/packages/app-store/pipedream/static/1.png differ diff --git a/packages/app-store/pipedream/static/2.png b/packages/app-store/pipedream/static/2.png new file mode 100644 index 0000000000..dfc596ad97 Binary files /dev/null and b/packages/app-store/pipedream/static/2.png differ diff --git a/packages/app-store/pipedream/static/3.png b/packages/app-store/pipedream/static/3.png new file mode 100644 index 0000000000..85b08551ce Binary files /dev/null and b/packages/app-store/pipedream/static/3.png differ diff --git a/packages/app-store/pipedream/static/4.png b/packages/app-store/pipedream/static/4.png new file mode 100644 index 0000000000..5868e0b240 Binary files /dev/null and b/packages/app-store/pipedream/static/4.png differ diff --git a/packages/app-store/pipedream/static/5.png b/packages/app-store/pipedream/static/5.png new file mode 100644 index 0000000000..b69d3b008c Binary files /dev/null and b/packages/app-store/pipedream/static/5.png differ diff --git a/packages/app-store/pipedream/static/icon.svg b/packages/app-store/pipedream/static/icon.svg new file mode 100644 index 0000000000..aebdc2cd3d --- /dev/null +++ b/packages/app-store/pipedream/static/icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/prisma/seed-app-store.config.json b/packages/prisma/seed-app-store.config.json index 6a382ac020..f0aae7ec48 100644 --- a/packages/prisma/seed-app-store.config.json +++ b/packages/prisma/seed-app-store.config.json @@ -83,5 +83,11 @@ "categories": ["analytics"], "slug": "fathom", "type": "fathom_analytics" + }, + { + "dirName": "pipedream", + "categories": ["automation"], + "slug": "pipedream", + "type": "pipedream_automation" } ]