diff --git a/.github/workflows/e2e-embed.yml b/.github/workflows/e2e-embed.yml index 1b4ca8e10f..d6dcea625a 100644 --- a/.github/workflows/e2e-embed.yml +++ b/.github/workflows/e2e-embed.yml @@ -1,4 +1,4 @@ -name: E2E test +name: E2E tests Embed on: pull_request_target: # So we can test on forks branches: @@ -89,7 +89,7 @@ jobs: - name: Install playwright deps # if: steps.playwright-cache.outputs.cache-hit != 'true' run: yarn playwright install --with-deps - - name: yarn embed-tests-prepare + - name: Run Tests run: yarn turbo run embed-tests-update-snapshots:ci --scope=@calcom/embed-react --concurrency=1 - name: Upload embed-core results diff --git a/.husky/pre-commit b/.husky/pre-commit index d2ae35e84b..c6a7938b7c 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -2,3 +2,5 @@ . "$(dirname "$0")/_/husky.sh" yarn lint-staged + +yarn app-store:build && git add packages/app-store/*.generated.* diff --git a/apps/web/package.json b/apps/web/package.json index 4804d52886..95353cae7f 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -19,8 +19,7 @@ "lint": "next lint", "lint:report": "eslint . --format json --output-file ../../lint-results/web.json", "lint:fix": "next lint . --ext .ts,.js,.tsx,.jsx --fix", - "check-changed-files": "ts-node scripts/ts-check-changed-files.ts", - "app-store:watch": "yarn workspace @calcom/app-store-cli watch --watch" + "check-changed-files": "ts-node scripts/ts-check-changed-files.ts" }, "engines": { "node": ">=14.x <17", diff --git a/package.json b/package.json index 480bf894f5..1c0c1f8046 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,9 @@ "embed-tests": "turbo run embed-tests", "test-e2e": "turbo run test-e2e --scope=\"@calcom/web\" --concurrency=1", "type-check": "turbo run type-check", - "app-store": "yarn workspace @calcom/app-store-cli cli" + "app-store": "yarn workspace @calcom/app-store-cli cli", + "app-store:build": "yarn workspace @calcom/app-store-cli build", + "turbo-w": "node turbo-wrapper.js" }, "devDependencies": { "dotenv-checker": "^1.1.5", diff --git a/packages/app-store-cli/src/app-store.ts b/packages/app-store-cli/src/app-store.ts index 3562e74a44..4c1de20081 100644 --- a/packages/app-store-cli/src/app-store.ts +++ b/packages/app-store-cli/src/app-store.ts @@ -88,7 +88,7 @@ function generateFiles() { }) ); const banner = `/** - This file is autogenerated using the command \`yarn app-store --watch\`. It automatically runs when using \`yarn dx\` + This file is autogenerated using the command \`yarn app-store:build --watch\`. Don't modify this file manually. **/ `; diff --git a/packages/app-store/.gitignore b/packages/app-store/.gitignore index 29e1d4862b..e69de29bb2 100644 --- a/packages/app-store/.gitignore +++ b/packages/app-store/.gitignore @@ -1 +0,0 @@ -*.generated.* diff --git a/packages/app-store/.prettierignore b/packages/app-store/.prettierignore new file mode 100644 index 0000000000..90d705ae1c --- /dev/null +++ b/packages/app-store/.prettierignore @@ -0,0 +1 @@ +*.generated.* \ No newline at end of file diff --git a/packages/app-store/apps.browser.generated.tsx b/packages/app-store/apps.browser.generated.tsx new file mode 100644 index 0000000000..88dd94760d --- /dev/null +++ b/packages/app-store/apps.browser.generated.tsx @@ -0,0 +1,89 @@ +/** + This file is autogenerated using the command `yarn app-store:build --watch`. + Don't modify this file manually. +**/ +import dynamic from "next/dynamic" +import { metadata as applecalendar_meta } from "./applecalendar/_metadata"; +import { metadata as caldavcalendar_meta } from "./caldavcalendar/_metadata"; +import { metadata as dailyvideo_meta } from "./dailyvideo/_metadata"; +import { metadata as exchange2013calendar_meta } from "./exchange2013calendar/_metadata"; +import { metadata as exchange2016calendar_meta } from "./exchange2016calendar/_metadata"; +import { metadata as giphy_meta } from "./giphy/_metadata"; +import { metadata as googlecalendar_meta } from "./googlecalendar/_metadata"; +import { metadata as googlevideo_meta } from "./googlevideo/_metadata"; +import { metadata as hubspotothercalendar_meta } from "./hubspotothercalendar/_metadata"; +import { metadata as huddle01video_meta } from "./huddle01video/_metadata"; +import { metadata as jitsivideo_meta } from "./jitsivideo/_metadata"; +import { metadata as metamask_meta } from "./metamask/_metadata"; +import { metadata as office365calendar_meta } from "./office365calendar/_metadata"; +import { metadata as office365video_meta } from "./office365video/_metadata"; +import { metadata as slackmessaging_meta } from "./slackmessaging/_metadata"; +import { metadata as stripepayment_meta } from "./stripepayment/_metadata"; +import { metadata as tandemvideo_meta } from "./tandemvideo/_metadata"; +import { metadata as vital_meta } from "./vital/_metadata"; +import { metadata as wipemycalother_meta } from "./wipemycalother/_metadata"; +import { metadata as zapier_meta } from "./zapier/_metadata"; +import { metadata as zoomvideo_meta } from "./zoomvideo/_metadata"; +export const appStoreMetadata = { +applecalendar:applecalendar_meta, +caldavcalendar:caldavcalendar_meta, +dailyvideo:dailyvideo_meta, +exchange2013calendar:exchange2013calendar_meta, +exchange2016calendar:exchange2016calendar_meta, +giphy:giphy_meta, +googlecalendar:googlecalendar_meta, +googlevideo:googlevideo_meta, +hubspotothercalendar:hubspotothercalendar_meta, +huddle01video:huddle01video_meta, +jitsivideo:jitsivideo_meta, +metamask:metamask_meta, +office365calendar:office365calendar_meta, +office365video:office365video_meta, +slackmessaging:slackmessaging_meta, +stripepayment:stripepayment_meta, +tandemvideo:tandemvideo_meta, +vital:vital_meta, +wipemycalother:wipemycalother_meta, +zapier:zapier_meta, +zoomvideo:zoomvideo_meta, +}; +const applecalendar_installAppButton = dynamic(() =>import("./applecalendar/components/InstallAppButton")); +const caldavcalendar_installAppButton = dynamic(() =>import("./caldavcalendar/components/InstallAppButton")); +const exchange2013calendar_installAppButton = dynamic(() =>import("./exchange2013calendar/components/InstallAppButton")); +const exchange2016calendar_installAppButton = dynamic(() =>import("./exchange2016calendar/components/InstallAppButton")); +const giphy_installAppButton = dynamic(() =>import("./giphy/components/InstallAppButton")); +const googlecalendar_installAppButton = dynamic(() =>import("./googlecalendar/components/InstallAppButton")); +const hubspotothercalendar_installAppButton = dynamic(() =>import("./hubspotothercalendar/components/InstallAppButton")); +const huddle01video_installAppButton = dynamic(() =>import("./huddle01video/components/InstallAppButton")); +const jitsivideo_installAppButton = dynamic(() =>import("./jitsivideo/components/InstallAppButton")); +const metamask_installAppButton = dynamic(() =>import("./metamask/components/InstallAppButton")); +const office365calendar_installAppButton = dynamic(() =>import("./office365calendar/components/InstallAppButton")); +const office365video_installAppButton = dynamic(() =>import("./office365video/components/InstallAppButton")); +const slackmessaging_installAppButton = dynamic(() =>import("./slackmessaging/components/InstallAppButton")); +const stripepayment_installAppButton = dynamic(() =>import("./stripepayment/components/InstallAppButton")); +const tandemvideo_installAppButton = dynamic(() =>import("./tandemvideo/components/InstallAppButton")); +const vital_installAppButton = dynamic(() =>import("./vital/components/InstallAppButton")); +const wipemycalother_installAppButton = dynamic(() =>import("./wipemycalother/components/InstallAppButton")); +const zapier_installAppButton = dynamic(() =>import("./zapier/components/InstallAppButton")); +const zoomvideo_installAppButton = dynamic(() =>import("./zoomvideo/components/InstallAppButton")); +export const InstallAppButtonMap = { +applecalendar:applecalendar_installAppButton, +caldavcalendar:caldavcalendar_installAppButton, +exchange2013calendar:exchange2013calendar_installAppButton, +exchange2016calendar:exchange2016calendar_installAppButton, +giphy:giphy_installAppButton, +googlecalendar:googlecalendar_installAppButton, +hubspotothercalendar:hubspotothercalendar_installAppButton, +huddle01video:huddle01video_installAppButton, +jitsivideo:jitsivideo_installAppButton, +metamask:metamask_installAppButton, +office365calendar:office365calendar_installAppButton, +office365video:office365video_installAppButton, +slackmessaging:slackmessaging_installAppButton, +stripepayment:stripepayment_installAppButton, +tandemvideo:tandemvideo_installAppButton, +vital:vital_installAppButton, +wipemycalother:wipemycalother_installAppButton, +zapier:zapier_installAppButton, +zoomvideo:zoomvideo_installAppButton, +}; \ No newline at end of file diff --git a/packages/app-store/apps.server.generated.ts b/packages/app-store/apps.server.generated.ts new file mode 100644 index 0000000000..1e56665306 --- /dev/null +++ b/packages/app-store/apps.server.generated.ts @@ -0,0 +1,44 @@ +/** + This file is autogenerated using the command `yarn app-store:build --watch`. + Don't modify this file manually. +**/ +const applecalendar_api = import("./applecalendar/api"); +const caldavcalendar_api = import("./caldavcalendar/api"); +const exchange2013calendar_api = import("./exchange2013calendar/api"); +const exchange2016calendar_api = import("./exchange2016calendar/api"); +const giphy_api = import("./giphy/api"); +const googlecalendar_api = import("./googlecalendar/api"); +const hubspotothercalendar_api = import("./hubspotothercalendar/api"); +const huddle01video_api = import("./huddle01video/api"); +const jitsivideo_api = import("./jitsivideo/api"); +const metamask_api = import("./metamask/api"); +const office365calendar_api = import("./office365calendar/api"); +const office365video_api = import("./office365video/api"); +const slackmessaging_api = import("./slackmessaging/api"); +const stripepayment_api = import("./stripepayment/api"); +const tandemvideo_api = import("./tandemvideo/api"); +const vital_api = import("./vital/api"); +const wipemycalother_api = import("./wipemycalother/api"); +const zapier_api = import("./zapier/api"); +const zoomvideo_api = import("./zoomvideo/api"); +export const apiHandlers = { +applecalendar:applecalendar_api, +caldavcalendar:caldavcalendar_api, +exchange2013calendar:exchange2013calendar_api, +exchange2016calendar:exchange2016calendar_api, +giphy:giphy_api, +googlecalendar:googlecalendar_api, +hubspotothercalendar:hubspotothercalendar_api, +huddle01video:huddle01video_api, +jitsivideo:jitsivideo_api, +metamask:metamask_api, +office365calendar:office365calendar_api, +office365video:office365video_api, +slackmessaging:slackmessaging_api, +stripepayment:stripepayment_api, +tandemvideo:tandemvideo_api, +vital:vital_api, +wipemycalother:wipemycalother_api, +zapier:zapier_api, +zoomvideo:zoomvideo_api, +}; \ No newline at end of file diff --git a/turbo.json b/turbo.json index 62b16ab7d2..c840d829fa 100644 --- a/turbo.json +++ b/turbo.json @@ -23,7 +23,7 @@ }, "@calcom/prisma#dx": { "cache": false, - "dependsOn": ["@calcom/prisma#db-migrate"], + "dependsOn": ["@calcom/prisma#db-deploy"], "outputs": [] }, "@calcom/web#build": { @@ -120,20 +120,26 @@ "cache": false, "outputs": [] }, - "@calcom/embed-core#embed-tests-update-snapshots:ci": { - "dependsOn": ["@calcom/web#build"] + "@calcom/app-store-cli#build": { + "cache": false, + "inputs": ["../../app-store/**/**"], + "outputs": ["../../app-store/apps.server.generated.ts", "../../app-store/apps.browser.generated.tsx"] + }, + "@calcom/embed-react#type-check": { + "dependsOn": ["@calcom/embed-core#build", "@calcom/embed-snippet#build"] }, "@calcom/embed-core#build": { "cache": false, "outputs": ["../../../apps/web/public/embed/**"] }, "embed-tests-update-snapshots:ci": { - "dependsOn": ["^embed-tests-update-snapshots:ci"] - }, - "@calcom/app-store-cli#build": { - "cache": false, - "inputs": ["../../app-store/**/**"], - "outputs": ["../../app-store/apps.server.generated.ts", "../../app-store/apps.browser.generated.tsx"] + "dependsOn": [ + "@calcom/prisma#db-seed", + "@calcom/web#build", + "@calcom/embed-core#build", + "@calcom/embed-react#build", + "^embed-tests-update-snapshots:ci" + ] }, "//#env-check:common": { "inputs": ["./.env.example", "./.env"],