Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
e3602d7
Update all Yarn dependencies (2022-07-29)
depfu[bot] Jul 29, 2022
b456690
Merge branch 'main' into depfu/batch_all/yarn/2022-07-29
zomars Aug 12, 2022
b62ae77
Adds syncpack config
zomars Aug 12, 2022
3b4fb53
Fixes mismatches
zomars Aug 12, 2022
d594203
Update yarn.lock
zomars Aug 12, 2022
6010228
RRule fixes
zomars Aug 12, 2022
2f36228
Locking dayjs to fix build
zomars Aug 12, 2022
8761df3
Type fixes
zomars Aug 12, 2022
68393ea
Merge branch 'main' into depfu/batch_all/yarn/2022-07-29
zomars Aug 15, 2022
1cfb743
Fixes mismatches
zomars Aug 15, 2022
12c4d09
Submodule sync
zomars Aug 15, 2022
e186a22
Update yarn.lock
zomars Aug 15, 2022
fa02b60
Update event.ts
zomars Aug 15, 2022
957c73d
Conflict fixes
zomars Aug 15, 2022
3ad311e
Merge branch 'main' into depfu/batch_all/yarn/2022-07-29
zomars Aug 15, 2022
845b1e7
Fixes prisma warnings
zomars Aug 15, 2022
2f05685
Liting
zomars Aug 15, 2022
2ca5b96
Upgrade next, zod
zomars Aug 16, 2022
7c05ad3
Prevents articfact overwriting
zomars Aug 16, 2022
8201d81
Yarn fixes
zomars Aug 16, 2022
512feda
Jest fixes
zomars Aug 16, 2022
0cf00ab
Submodule sync
zomars Aug 16, 2022
3459b55
Formatting
zomars Aug 16, 2022
e443611
Submodule sync
zomars Aug 16, 2022
836f3d6
Merge branch 'main' into depfu/batch_all/yarn/2022-07-29
zomars Aug 16, 2022
788eefa
Adds provider for react-tooltip
zomars Aug 16, 2022
34dc1d5
Removed dotenv-cli
zomars Aug 16, 2022
012c793
Merge branch 'main' into depfu/batch_all/yarn/2022-07-29
zomars Aug 16, 2022
213fcbe
Readds dotenv-cli
zomars Aug 16, 2022
72af7e0
Skips getSchedule tests
zomars Aug 16, 2022
7e2ee59
Fixes
zomars Aug 17, 2022
ba87b04
Revert prisma seed script
zomars Aug 17, 2022
aca4152
E2E fixes
zomars Aug 17, 2022
ee97079
Merge branch 'main' into depfu/batch_all/yarn/2022-07-29
zomars Aug 17, 2022
f36fdd9
test
zomars Aug 17, 2022
a66e489
Merge branch 'depfu/batch_all/yarn/2022-07-29' of https://github.com/…
zomars Aug 17, 2022
e30af2d
Removed deprecated req.page in middleware
zomars Aug 17, 2022
abf3430
Make tests stable
hariombalhara Aug 17, 2022
fe32a87
Merge remote-tracking branch 'origin/depfu/batch_all/yarn/2022-07-29'…
hariombalhara Aug 17, 2022
5b266db
Unskip getSchedule tests
hariombalhara Aug 17, 2022
5b88e57
Merge branch 'main' into depfu/batch_all/yarn/2022-07-29
emrysal Aug 17, 2022
34b4b85
fixed 404 logo on cal video (#3885)
PeerRich Aug 17, 2022
6947122
Merge branch 'main' into depfu/batch_all/yarn/2022-07-29
zomars Aug 17, 2022
fa7d88b
Removed PW aliases as aren't needed anymore
zomars Aug 17, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 4 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,6 @@ That's where Cal.com comes in. Self-hosted or hosted by us. White-label by desig

<a href="https://www.producthunt.com/posts/calendso?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-calendso" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=291910&theme=light&period=monthly" alt="Cal.com - The open source Calendly alternative | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a> <a href="https://www.producthunt.com/posts/calendso?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-calendso" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=291910&theme=light" alt="Cal.com - The open source Calendly alternative | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a> <a href="https://www.producthunt.com/stories/how-this-open-source-calendly-alternative-rocketed-to-product-of-the-day" target="_blank"><img src="https://cal.com/maker-grant.svg" alt="Cal.com - The open source Calendly alternative | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a>




### Built With

- [Next.js](https://nextjs.org/)
Expand Down Expand Up @@ -266,13 +263,13 @@ yarn workspace @calcom/web playwright-report

### Docker

The Docker configuration for Cal is an effort powered by people within the community.
The Docker configuration for Cal is an effort powered by people within the community.

If you want to contribute to the Docker repository, [reply here](https://github.com/calcom/docker/discussions/32).

The Docker configuration can be found [in our docker repository](https://github.com/calcom/docker).

Issues with Docker? Find your answer or open a new discussion [here](https://github.com/calcom/docker/discussions) to ask the community.
Issues with Docker? Find your answer or open a new discussion [here](https://github.com/calcom/docker/discussions) to ask the community.

Cal.com, Inc. does not provide official support for Docker, but we will accept fixes and documentation. Use at your own risk.

Expand Down Expand Up @@ -328,7 +325,7 @@ We have a list of [help wanted](https://github.com/orgs/calcom/projects/1/views/
10. The key will be created and you will be redirected back to the Credentials page. Select the newly generated client ID under OAuth 2.0 Client IDs.
11. Select Download JSON. Copy the contents of this file and paste the entire JSON string in the .env file as the value for GOOGLE_API_CREDENTIALS key.

#### *Adding google calendar to Cal.com App Store*
#### _Adding google calendar to Cal.com App Store_

After adding Google credentials, you can now Google Calendar App to the app store.
You can repopulate the App store by running
Expand All @@ -344,6 +341,7 @@ following

1. Add extra redirect URL `<Cal.com URL>/api/auth/callback/google`
1. Under 'OAuth concent screen', click "PUBLISH APP"

### Obtaining Microsoft Graph Client ID and Secret

1. Open [Azure App Registration](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps) and select New registration
Expand Down
2 changes: 1 addition & 1 deletion apps/api
Submodule api updated from 7560fd to 1de91a
2 changes: 1 addition & 1 deletion apps/console
8 changes: 4 additions & 4 deletions apps/docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@
"license": "MIT",
"dependencies": {
"iframe-resizer-react": "^1.1.0",
"next": "^12.2.0",
"next": "^12.2.5",
"nextra": "^1.1.0",
"nextra-theme-docs": "^1.2.2",
"react": "^18.1.0",
"react-dom": "^18.1.0"
"react": "^18.2.0",
"react-dom": "^18.2.0"
},
"devDependencies": {
"@calcom/config": "*",
"eslint": "^8.15.0"
"eslint": "^8.20.0"
}
}
24 changes: 12 additions & 12 deletions apps/storybook/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,16 @@
"@radix-ui/react-radio-group": "^0.1.1",
"@radix-ui/react-slider": "^0.1.1",
"@radix-ui/react-switch": "^0.1.1",
"@radix-ui/react-tooltip": "^0.1.0",
"next": "^12.2.0",
"@radix-ui/react-tooltip": "^1.0.0",
"next": "^12.2.5",
"next-transpile-modules": "^9.0.0",
"react": "18.1.0",
"react-dom": "18.1.0",
"react-feather": "^2.0.9",
"react-hot-toast": "^2.2.0"
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-feather": "^2.0.10",
"react-hot-toast": "^2.3.0"
},
"devDependencies": {
"@babel/core": "^7.18.6",
"@babel/core": "^7.18.9",
"@calcom/config": "*",
"@storybook/addon-a11y": "^6.5.9",
"@storybook/addon-actions": "^6.5.9",
Expand All @@ -44,19 +44,19 @@
"@storybook/manager-webpack5": "^6.5.9",
"@storybook/react": "^6.5.9",
"@types/node": "16.9.1",
"@types/react": "18.0.9",
"@types/react": "^18.0.9",
"@types/react-dom": "18.0.4",
"autoprefixer": "^10.4.7",
"babel-loader": "^8.2.5",
"chromatic": "^6.6.4",
"eslint": "^8.15.0",
"chromatic": "^6.7.1",
"eslint": "^8.20.0",
"postcss": "^8.4.13",
"postcss-loader": "^7.0.0",
"storybook-addon-designs": "^6.3.1",
"storybook-addon-next": "^1.6.7",
"tailwindcss": "^3.1.3",
"tailwindcss": "^3.1.6",
"tsconfig-paths-webpack-plugin": "^3.5.2",
"typescript": "^4.6.4"
"typescript": "^4.7.4"
},
"readme": "ERROR: No README data found!",
"_id": "@calcom/[email protected]"
Expand Down
12 changes: 6 additions & 6 deletions apps/swagger/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,18 @@
"start": "PORT=4200 next start"
},
"dependencies": {
"highlight.js": "^11.5.1",
"highlight.js": "^11.6.0",
"isarray": "2.0.5",
"next": "12.2.0",
"next": "^12.2.5",
"openapi-snippet": "^0.13.0",
"react": "18.1.0",
"react-dom": "18.1.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"swagger-ui-react": "4.11.1"
},
"devDependencies": {
"@types/node": "16.9.1",
"@types/react": "18.0.9",
"@types/react": "^18.0.9",
"@types/react-dom": "18.0.4",
"typescript": "4.6.4"
"typescript": "^4.7.4"
}
}
2 changes: 2 additions & 0 deletions apps/web/jest.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@ import type { Config } from "@jest/types";
const config: Config.InitialOptions = {
verbose: true,
roots: ["<rootDir>"],
setupFiles: ["<rootDir>/test/jest-setup.js"],
testMatch: ["**/test/lib/**/*.(spec|test).(ts|tsx|js)"],
testPathIgnorePatterns: ["<rootDir>/.next", "<rootDir>/playwright/"],
transform: {
"^.+\\.(js|jsx|ts|tsx)$": ["babel-jest", { presets: ["next/babel"] }],
},
transformIgnorePatterns: ["/node_modules/", "^.+\\.module\\.(css|sass|scss)$"],
testEnvironment: "jsdom",
resolver: `<rootDir>/test/jest-resolver.js`,
moduleNameMapper: {
"^@components(.*)$": "<rootDir>/components$1",
"^@lib(.*)$": "<rootDir>/lib$1",
Expand Down
19 changes: 11 additions & 8 deletions apps/web/lib/app-providers.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { TooltipProvider } from "@radix-ui/react-tooltip";
import { SessionProvider } from "next-auth/react";
import { EventCollectionProvider } from "next-collect/client";
import { appWithTranslation } from "next-i18next";
Expand Down Expand Up @@ -72,14 +73,16 @@ const AppProviders = (props: AppPropsWithChildren) => {
<ContractsProvider>
<SessionProvider session={session || undefined}>
<CustomI18nextProvider {...props}>
{/* color-scheme makes background:transparent not work which is required by embed. We need to ensure next-theme adds color-scheme to `body` instead of `html`(https://github.com/pacocoursey/next-themes/blob/main/src/index.tsx#L74). Once that's done we can enable color-scheme support */}
<ThemeProvider
enableColorScheme={false}
storageKey={storageKey}
forcedTheme={forcedTheme}
attribute="class">
{props.children}
</ThemeProvider>
<TooltipProvider>
{/* color-scheme makes background:transparent not work which is required by embed. We need to ensure next-theme adds color-scheme to `body` instead of `html`(https://github.com/pacocoursey/next-themes/blob/main/src/index.tsx#L74). Once that's done we can enable color-scheme support */}
<ThemeProvider
enableColorScheme={false}
storageKey={storageKey}
forcedTheme={forcedTheme}
attribute="class">
{props.children}
</ThemeProvider>
</TooltipProvider>
</CustomI18nextProvider>
</SessionProvider>
</ContractsProvider>
Expand Down
1 change: 0 additions & 1 deletion apps/web/middleware.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { collectEvents } from "next-collect/server";
// eslint-disable-next-line @next/next/no-server-import-in-page
import { NextMiddleware, NextResponse } from "next/server";

import { extendEventData, nextCollectBasicSettings } from "@calcom/lib/telemetry";
Expand Down
86 changes: 44 additions & 42 deletions apps/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,9 @@
"@hookform/error-message": "^2.0.0",
"@hookform/resolvers": "^2.9.7",
"@metamask/providers": "^8.1.1",
"@next-auth/prisma-adapter": "^1.0.3",
"@next-auth/prisma-adapter": "^1.0.4",
"@next/bundle-analyzer": "12.1.6",
"@radix-ui/react-avatar": "^0.1.0",
"@radix-ui/react-avatar": "^0.1.4",
"@radix-ui/react-collapsible": "^0.1.0",
"@radix-ui/react-dialog": "^0.1.0",
"@radix-ui/react-dropdown-menu": "^0.1.1",
Expand All @@ -58,106 +58,108 @@
"@radix-ui/react-slider": "^0.1.1",
"@radix-ui/react-switch": "^0.1.1",
"@radix-ui/react-toggle-group": "^0.1.5",
"@radix-ui/react-tooltip": "^0.1.0",
"@stripe/react-stripe-js": "^1.8.0",
"@stripe/stripe-js": "^1.29.0",
"@radix-ui/react-tooltip": "^1.0.0",
"@stripe/react-stripe-js": "^1.9.0",
"@stripe/stripe-js": "^1.34.0",
"@vercel/edge-functions-ui": "^0.2.1",
"@wojtekmaj/react-daterange-picker": "^3.3.1",
"accept-language-parser": "^1.5.0",
"async": "^3.2.1",
"async": "^3.2.4",
"bcryptjs": "^2.4.3",
"classnames": "^2.3.1",
"dotenv-cli": "^6.0.0",
"googleapis": "^84.0.0",
"gray-matter": "^4.0.3",
"handlebars": "^4.7.7",
"ical.js": "^1.4.0",
"ics": "^2.31.0",
"ics": "^2.37.0",
"jimp": "^0.16.1",
"kbar": "^0.1.0-beta.36",
"libphonenumber-js": "^1.9.53",
"libphonenumber-js": "^1.10.10",
"lodash": "^4.17.21",
"markdown-it": "^13.0.1",
"memory-cache": "^0.2.0",
"micro": "^9.3.4",
"micro": "^9.4.0",
"mime-types": "^2.1.35",
"next": "^12.2.0",
"next": "^12.2.5",
"next-auth": "^4.10.3",
"next-axiom": "^0.10.0",
"next-collect": "^0.2.0",
"next-i18next": "^11.0.0",
"next-mdx-remote": "^4.0.3",
"next-collect": "^0.2.1",
"next-i18next": "^11.3.0",
"next-mdx-remote": "^4.1.0",
"next-seo": "^4.26.0",
"next-themes": "^0.2.0",
"next-transpile-modules": "^9.0.0",
"nock": "^13.2.8",
"nodemailer": "^6.7.5",
"nodemailer": "^6.7.7",
"otplib": "^12.0.1",
"qrcode": "^1.5.0",
"react": "^18.1.0",
"qrcode": "^1.5.1",
"react": "^18.2.0",
"react-colorful": "^5.5.1",
"react-date-picker": "^8.3.6",
"react-digit-input": "^2.1.0",
"react-dom": "^18.1.0",
"react-dom": "^18.2.0",
"react-easy-crop": "^3.5.2",
"react-feather": "^2.0.10",
"react-hook-form": "^7.31.1",
"react-hot-toast": "^2.1.0",
"react-hook-form": "^7.33.1",
"react-hot-toast": "^2.3.0",
"react-intl": "^5.25.1",
"react-live-chat-loader": "^2.7.3",
"react-multi-email": "^0.5.3",
"react-phone-number-input": "^3.1.52",
"react-query": "^3.39.0",
"react-select": "^5.3.2",
"react-timezone-select": "^1.3.1",
"react-phone-number-input": "^3.2.6",
"react-query": "^3.39.2",
"react-select": "^5.4.0",
"react-timezone-select": "^1.3.2",
"react-use-intercom": "1.5.1",
"react-virtualized-auto-sizer": "^1.0.6",
"react-window": "^1.8.7",
"rrule": "^2.6.9",
"rrule": "^2.7.1",
"short-uuid": "^4.2.0",
"stripe": "^9.1.0",
"stripe": "^9.16.0",
"superjson": "1.9.1",
"uuid": "^8.3.2",
"web3": "^1.7.3",
"zod": "^3.16.0"
"web3": "^1.7.4",
"zod": "^3.18.0"
},
"devDependencies": {
"@babel/core": "^7.17.10",
"@babel/core": "^7.18.9",
"@calcom/config": "*",
"@calcom/types": "*",
"@microsoft/microsoft-graph-types-beta": "0.15.0-preview",
"@playwright/test": "^1.22.1",
"@playwright/test": "^1.25.0",
"@types/accept-language-parser": "1.5.2",
"@types/async": "^3.2.13",
"@types/async": "^3.2.15",
"@types/bcryptjs": "^2.4.2",
"@types/glidejs__glide": "^3.4.2",
"@types/jest": "^27.5.1",
"@types/jest": "^28.1.7",
"@types/lodash": "^4.14.182",
"@types/markdown-it": "^12.2.3",
"@types/memory-cache": "^0.2.2",
"@types/micro": "7.3.6",
"@types/micro": "7.3.7",
"@types/mime-types": "^2.1.1",
"@types/module-alias": "^2.0.1",
"@types/node": "16.9.1",
"@types/nodemailer": "^6.4.4",
"@types/qrcode": "^1.4.1",
"@types/react": "18.0.9",
"@types/react-phone-number-input": "^3.0.13",
"@types/react": "^18.0.9",
"@types/react-phone-number-input": "^3.0.14",
"@types/react-virtualized-auto-sizer": "^1.0.1",
"@types/react-window": "^1.8.5",
"@types/stripe": "^8.0.417",
"@types/uuid": "8.3.1",
"autoprefixer": "^10.4.7",
"babel-jest": "^27.3.1",
"env-cmd": "10.1.0",
"eslint": "^8.16.0",
"jest": "^26.0.0",
"babel-jest": "^28.1.0",
"env-cmd": "^10.1.0",
"eslint": "^8.20.0",
"jest": "^28.1.0",
"jest-environment-jsdom": "^28.1.3",
"jest-mock-extended": "^2.0.7",
"mockdate": "^3.0.5",
"module-alias": "^2.2.2",
"postcss": "^8.4.13",
"tailwindcss": "^3.1.3",
"ts-jest": "^26.0.0",
"ts-node": "^10.6.0",
"typescript": "^4.6.4"
"tailwindcss": "^3.1.6",
"ts-jest": "^28.0.8",
"ts-node": "^10.9.1",
"typescript": "^4.7.4"
}
}
4 changes: 2 additions & 2 deletions apps/web/pages/api/book/event.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { BookingStatus, Credential, Prisma, SchedulingType, WebhookTriggerEvents } from "@prisma/client";
import async from "async";
import type { NextApiRequest } from "next";
import rrule from "rrule";
import { RRule } from "rrule";
import short from "short-uuid";
import { v5 as uuidv5 } from "uuid";

Expand Down Expand Up @@ -201,7 +201,7 @@ async function ensureAvailableUsers(
try {
if (eventType.recurringEvent) {
const recurringEvent = parseRecurringEvent(eventType.recurringEvent);
const allBookingDates = new rrule({ dtstart: new Date(input.dateFrom), ...recurringEvent }).all();
const allBookingDates = new RRule({ dtstart: new Date(input.dateFrom), ...recurringEvent }).all();
// Go through each date for the recurring event and check if each one's availability
// DONE: Decreased computational complexity from O(2^n) to O(n) by refactoring this loop to stop
// running at the first unavailable time.
Expand Down
2 changes: 1 addition & 1 deletion apps/web/pages/auth/sso/[provider].tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { signIn } from "next-auth/react";
import { useRouter } from "next/router";
import { useEffect } from "react";

import stripe from "@calcom/app-store/stripepayment/lib/server";
import { getPremiumPlanPrice } from "@calcom/app-store/stripepayment/lib/utils";
import stripe from "@calcom/features/ee/payments/server/stripe";
import { checkUsername } from "@calcom/lib/server/checkUsername";
import prisma from "@calcom/prisma";

Expand Down
2 changes: 1 addition & 1 deletion apps/web/pages/success.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { useSession } from "next-auth/react";
import Link from "next/link";
import { useRouter } from "next/router";
import { useEffect, useRef, useState } from "react";
import RRule from "rrule";
import { RRule } from "rrule";
import { z } from "zod";

import dayjs from "@calcom/dayjs";
Expand Down
Loading