diff --git a/packages/app-store/apps.metadata.generated.ts b/packages/app-store/apps.metadata.generated.ts index 093ab0365f..a6e5818882 100644 --- a/packages/app-store/apps.metadata.generated.ts +++ b/packages/app-store/apps.metadata.generated.ts @@ -27,6 +27,7 @@ import { metadata as huddle01video__metadata_ts } from "./huddle01video/_metadat import { metadata as jitsivideo__metadata_ts } from "./jitsivideo/_metadata"; import { metadata as larkcalendar__metadata_ts } from "./larkcalendar/_metadata"; import metapixel_config_json from "./metapixel/config.json"; +import mirotalk_config_json from "./mirotalk/config.json"; import n8n_config_json from "./n8n/config.json"; import { metadata as office365calendar__metadata_ts } from "./office365calendar/_metadata"; import office365video_config_json from "./office365video/config.json"; @@ -92,6 +93,7 @@ export const appStoreMetadata = { jitsivideo: jitsivideo__metadata_ts, larkcalendar: larkcalendar__metadata_ts, metapixel: metapixel_config_json, + mirotalk: mirotalk_config_json, n8n: n8n_config_json, office365calendar: office365calendar__metadata_ts, office365video: office365video_config_json, diff --git a/packages/app-store/apps.server.generated.ts b/packages/app-store/apps.server.generated.ts index b9f0998801..9b9bf80f9a 100644 --- a/packages/app-store/apps.server.generated.ts +++ b/packages/app-store/apps.server.generated.ts @@ -27,6 +27,7 @@ export const apiHandlers = { jitsivideo: import("./jitsivideo/api"), larkcalendar: import("./larkcalendar/api"), metapixel: import("./metapixel/api"), + mirotalk: import("./mirotalk/api"), n8n: import("./n8n/api"), office365calendar: import("./office365calendar/api"), office365video: import("./office365video/api"), diff --git a/packages/app-store/mirotalk/DESCRIPTION.md b/packages/app-store/mirotalk/DESCRIPTION.md new file mode 100644 index 0000000000..40c651cd18 --- /dev/null +++ b/packages/app-store/mirotalk/DESCRIPTION.md @@ -0,0 +1,9 @@ +--- +items: + - 1.jpeg + - 2.jpeg +--- + +{DESCRIPTION} +- Copy your room link and start scheduling calls in Mirotalk. +- Both SFU and P2P are supported. \ No newline at end of file diff --git a/packages/app-store/mirotalk/api/add.ts b/packages/app-store/mirotalk/api/add.ts new file mode 100644 index 0000000000..9a4afb9b2c --- /dev/null +++ b/packages/app-store/mirotalk/api/add.ts @@ -0,0 +1,16 @@ +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", + createCredential: ({ appType, user, slug }) => + createDefaultInstallation({ appType, userId: user.id, slug, key: {} }), +}; + +export default handler; diff --git a/packages/app-store/mirotalk/api/index.ts b/packages/app-store/mirotalk/api/index.ts new file mode 100644 index 0000000000..4c0d2ead01 --- /dev/null +++ b/packages/app-store/mirotalk/api/index.ts @@ -0,0 +1 @@ +export { default as add } from "./add"; diff --git a/packages/app-store/mirotalk/config.json b/packages/app-store/mirotalk/config.json new file mode 100644 index 0000000000..5732aa6408 --- /dev/null +++ b/packages/app-store/mirotalk/config.json @@ -0,0 +1,28 @@ +{ + "/*": "Don't modify slug - If required, do it using cli edit command", + "name": "Mirotalk", + "slug": "mirotalk", + "type": "mirotalk_video", + "logo": "icon.svg", + "url": "https://cal.com/apps/mirotalk", + "variant": "conferencing", + "categories": [ + "video" + ], + "publisher": "Cal.com, Inc.", + "email": "support@cal.com", + "appData": { + "location": { + "type": "integrations:{SLUG}_video", + "label": "{TITLE}", + "linkType": "static", + "organizerInputPlaceholder": "https://p2p.mirotalk.com/join/80085ShinyPhone", + "urlRegExp": "^(http|https):\\/\\/(p2p|sfu)\\.mirotalk\\.com\\/join\\/[a-zA-Z0-9]+$" + } + }, + "description": "Peer to peer real-time video conferences, optimized for small groups. Unlimited time, unlimited rooms each having 5-8 participants.", + "isTemplate": false, + "__createdUsingCli": true, + "__template": "event-type-location-video-static", + "dirName": "mirotalk" +} \ No newline at end of file diff --git a/packages/app-store/mirotalk/index.ts b/packages/app-store/mirotalk/index.ts new file mode 100644 index 0000000000..d7f3602204 --- /dev/null +++ b/packages/app-store/mirotalk/index.ts @@ -0,0 +1 @@ +export * as api from "./api"; diff --git a/packages/app-store/mirotalk/package.json b/packages/app-store/mirotalk/package.json new file mode 100644 index 0000000000..6419245e95 --- /dev/null +++ b/packages/app-store/mirotalk/package.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://json.schemastore.org/package.json", + "private": true, + "name": "@calcom/mirotalk", + "version": "0.0.0", + "main": "./index.ts", + "dependencies": { + "@calcom/lib": "*" + }, + "devDependencies": { + "@calcom/types": "*" + }, + "description": "Free WebRTC - P2P - Simple, Secure, Fast Real-Time Video Conferences Up to 4k and 60fps, compatible with all browsers and platforms." +} diff --git a/packages/app-store/mirotalk/static/1.jpeg b/packages/app-store/mirotalk/static/1.jpeg new file mode 100644 index 0000000000..221a4e6412 Binary files /dev/null and b/packages/app-store/mirotalk/static/1.jpeg differ diff --git a/packages/app-store/mirotalk/static/2.jpeg b/packages/app-store/mirotalk/static/2.jpeg new file mode 100644 index 0000000000..9d669824e7 Binary files /dev/null and b/packages/app-store/mirotalk/static/2.jpeg differ diff --git a/packages/app-store/mirotalk/static/icon.svg b/packages/app-store/mirotalk/static/icon.svg new file mode 100644 index 0000000000..e2e655cb9d --- /dev/null +++ b/packages/app-store/mirotalk/static/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file