@dereekb/calcom 13.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/index.cjs.default.js +1 -0
- package/index.cjs.js +2202 -0
- package/index.cjs.mjs +2 -0
- package/index.d.ts +1 -0
- package/index.esm.js +2141 -0
- package/nestjs/index.cjs.default.js +1 -0
- package/nestjs/index.cjs.js +1970 -0
- package/nestjs/index.cjs.mjs +2 -0
- package/nestjs/index.d.ts +1 -0
- package/nestjs/index.esm.js +1938 -0
- package/nestjs/package.json +28 -0
- package/nestjs/src/index.d.ts +1 -0
- package/nestjs/src/lib/calcom/calcom.api.d.ts +160 -0
- package/nestjs/src/lib/calcom/calcom.config.d.ts +10 -0
- package/nestjs/src/lib/calcom/calcom.module.d.ts +18 -0
- package/nestjs/src/lib/calcom/index.d.ts +3 -0
- package/nestjs/src/lib/index.d.ts +3 -0
- package/nestjs/src/lib/oauth/index.d.ts +4 -0
- package/nestjs/src/lib/oauth/oauth.api.d.ts +25 -0
- package/nestjs/src/lib/oauth/oauth.config.d.ts +22 -0
- package/nestjs/src/lib/oauth/oauth.module.d.ts +24 -0
- package/nestjs/src/lib/oauth/oauth.service.d.ts +66 -0
- package/nestjs/src/lib/webhook/index.d.ts +7 -0
- package/nestjs/src/lib/webhook/webhook.calcom.config.d.ts +11 -0
- package/nestjs/src/lib/webhook/webhook.calcom.controller.d.ts +8 -0
- package/nestjs/src/lib/webhook/webhook.calcom.d.ts +16 -0
- package/nestjs/src/lib/webhook/webhook.calcom.module.d.ts +20 -0
- package/nestjs/src/lib/webhook/webhook.calcom.service.d.ts +21 -0
- package/nestjs/src/lib/webhook/webhook.calcom.type.d.ts +33 -0
- package/nestjs/src/lib/webhook/webhook.calcom.verify.d.ts +16 -0
- package/package.json +34 -0
- package/src/index.d.ts +1 -0
- package/src/lib/calcom/calcom.api.booking.d.ts +86 -0
- package/src/lib/calcom/calcom.api.calendar.d.ts +82 -0
- package/src/lib/calcom/calcom.api.eventtype.d.ts +85 -0
- package/src/lib/calcom/calcom.api.schedule.d.ts +32 -0
- package/src/lib/calcom/calcom.api.slot.d.ts +46 -0
- package/src/lib/calcom/calcom.api.user.d.ts +29 -0
- package/src/lib/calcom/calcom.api.webhook.d.ts +97 -0
- package/src/lib/calcom/calcom.config.d.ts +66 -0
- package/src/lib/calcom/calcom.error.api.d.ts +6 -0
- package/src/lib/calcom/calcom.factory.d.ts +23 -0
- package/src/lib/calcom/index.d.ts +10 -0
- package/src/lib/calcom.config.d.ts +35 -0
- package/src/lib/calcom.error.api.d.ts +86 -0
- package/src/lib/calcom.limit.d.ts +35 -0
- package/src/lib/calcom.type.d.ts +70 -0
- package/src/lib/index.d.ts +7 -0
- package/src/lib/oauth/index.d.ts +5 -0
- package/src/lib/oauth/oauth.api.d.ts +54 -0
- package/src/lib/oauth/oauth.config.d.ts +53 -0
- package/src/lib/oauth/oauth.d.ts +64 -0
- package/src/lib/oauth/oauth.error.api.d.ts +26 -0
- package/src/lib/oauth/oauth.factory.d.ts +31 -0
- package/src/lib/shared/calcom.api-version.d.ts +17 -0
- package/src/lib/shared/index.d.ts +1 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A numeric identifier in Cal.com.
|
|
3
|
+
*/
|
|
4
|
+
export type CalcomId = number;
|
|
5
|
+
/**
|
|
6
|
+
* Cal.com user identifier.
|
|
7
|
+
*/
|
|
8
|
+
export type CalcomUserId = number;
|
|
9
|
+
/**
|
|
10
|
+
* Cal.com event type identifier.
|
|
11
|
+
*/
|
|
12
|
+
export type CalcomEventTypeId = number;
|
|
13
|
+
/**
|
|
14
|
+
* Cal.com booking identifier.
|
|
15
|
+
*/
|
|
16
|
+
export type CalcomBookingId = number;
|
|
17
|
+
/**
|
|
18
|
+
* Cal.com schedule identifier.
|
|
19
|
+
*/
|
|
20
|
+
export type CalcomScheduleId = number;
|
|
21
|
+
/**
|
|
22
|
+
* Cal.com webhook identifier.
|
|
23
|
+
*/
|
|
24
|
+
export type CalcomWebhookId = number;
|
|
25
|
+
/**
|
|
26
|
+
* Cal.com credential identifier, used to reference connected calendar credentials.
|
|
27
|
+
*/
|
|
28
|
+
export type CalcomCredentialId = number;
|
|
29
|
+
/**
|
|
30
|
+
* Cal.com booking UID string. A unique string identifier for a booking,
|
|
31
|
+
* distinct from the numeric booking ID.
|
|
32
|
+
*/
|
|
33
|
+
export type CalcomBookingUid = string;
|
|
34
|
+
/**
|
|
35
|
+
* Cal.com username. Used to identify a user in public-facing URLs
|
|
36
|
+
* (e.g., cal.com/{username}/{event-slug}).
|
|
37
|
+
*/
|
|
38
|
+
export type CalcomUsername = string;
|
|
39
|
+
/**
|
|
40
|
+
* Cal.com event type slug. A URL-safe string identifying an event type
|
|
41
|
+
* (e.g., "30-minute-meeting").
|
|
42
|
+
*/
|
|
43
|
+
export type CalcomEventTypeSlug = string;
|
|
44
|
+
/**
|
|
45
|
+
* Cal.com team slug. A URL-safe string identifying a team
|
|
46
|
+
* (e.g., "engineering-team").
|
|
47
|
+
*/
|
|
48
|
+
export type CalcomTeamSlug = string;
|
|
49
|
+
/**
|
|
50
|
+
* Cal.com organization slug. A URL-safe string identifying an organization.
|
|
51
|
+
*/
|
|
52
|
+
export type CalcomOrganizationSlug = string;
|
|
53
|
+
/**
|
|
54
|
+
* Cal.com calendar integration identifier string
|
|
55
|
+
* (e.g., "google_calendar", "outlook_calendar", "apple_calendar").
|
|
56
|
+
*/
|
|
57
|
+
export type CalcomCalendarIntegration = string;
|
|
58
|
+
/**
|
|
59
|
+
* Cal.com webhook event type string
|
|
60
|
+
* (e.g., "BOOKING_CREATED", "BOOKING_CANCELLED").
|
|
61
|
+
*/
|
|
62
|
+
export type CalcomWebhookEventTypeString = string;
|
|
63
|
+
/**
|
|
64
|
+
* Cal.com API response status string (e.g., "success", "error").
|
|
65
|
+
*/
|
|
66
|
+
export type CalcomResponseStatus = 'success' | 'error';
|
|
67
|
+
/**
|
|
68
|
+
* Cal.com booking status string.
|
|
69
|
+
*/
|
|
70
|
+
export type CalcomBookingStatus = 'accepted' | 'pending' | 'cancelled' | 'rejected';
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { type CalcomOAuthContext } from './oauth.config';
|
|
2
|
+
import { type CalcomRefreshToken } from '../calcom.config';
|
|
3
|
+
import { type CalcomAccessTokenScopesString, type CalcomAccessTokenString } from './oauth';
|
|
4
|
+
import { type Maybe, type Seconds } from '@dereekb/util';
|
|
5
|
+
export interface CalcomOAuthRefreshTokenInput {
|
|
6
|
+
readonly refreshToken?: Maybe<CalcomRefreshToken>;
|
|
7
|
+
}
|
|
8
|
+
export interface CalcomOAuthExchangeAuthorizationCodeInput {
|
|
9
|
+
readonly code: string;
|
|
10
|
+
readonly redirectUri: string;
|
|
11
|
+
}
|
|
12
|
+
export interface CalcomOAuthTokenResponse {
|
|
13
|
+
readonly access_token: CalcomAccessTokenString;
|
|
14
|
+
readonly refresh_token: CalcomRefreshToken;
|
|
15
|
+
readonly token_type: 'Bearer';
|
|
16
|
+
readonly expires_in: Seconds;
|
|
17
|
+
readonly scope?: CalcomAccessTokenScopesString;
|
|
18
|
+
}
|
|
19
|
+
export interface CalcomOAuthAccessTokenErrorResponse {
|
|
20
|
+
readonly error: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Refreshes an access token using a refresh token. Cal.com rotates refresh tokens
|
|
24
|
+
* on every use, so the new `refresh_token` from the response must be persisted.
|
|
25
|
+
*
|
|
26
|
+
* Cal.com uses JSON body (not Basic Auth) for token requests.
|
|
27
|
+
*
|
|
28
|
+
* @see https://cal.com/docs/api-reference/v2/oauth/refresh-an-existing-access-token
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* const response = await refreshAccessToken(context)({ refreshToken: 'existing-refresh-token' });
|
|
33
|
+
* console.log(response.access_token, response.refresh_token);
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare function refreshAccessToken(context: CalcomOAuthContext): (input?: CalcomOAuthRefreshTokenInput) => Promise<CalcomOAuthTokenResponse>;
|
|
37
|
+
/**
|
|
38
|
+
* Exchanges an OAuth authorization code for access and refresh tokens.
|
|
39
|
+
* Used during the initial OAuth flow when a user authorizes your app.
|
|
40
|
+
*
|
|
41
|
+
* Cal.com uses JSON body (not Basic Auth) for token requests.
|
|
42
|
+
*
|
|
43
|
+
* @see https://cal.com/docs/api-reference/v2/oauth/exchange-an-authorization-code-for-access-tokens
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* const response = await exchangeAuthorizationCode(context)({
|
|
48
|
+
* code: 'auth-code-from-redirect',
|
|
49
|
+
* redirectUri: 'https://example.com/callback'
|
|
50
|
+
* });
|
|
51
|
+
* console.log(response.access_token, response.refresh_token);
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export declare function exchangeAuthorizationCode(context: CalcomOAuthContext): (input: CalcomOAuthExchangeAuthorizationCodeInput) => Promise<CalcomOAuthTokenResponse>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type FactoryWithInput, type FactoryWithRequiredInput, type Maybe } from '@dereekb/util';
|
|
2
|
+
import { type ConfiguredFetch, type FetchJsonFunction } from '@dereekb/util/fetch';
|
|
3
|
+
import { type CalcomApiKey, type CalcomAuthClientIdAndSecretPair, type CalcomRefreshToken } from '../calcom.config';
|
|
4
|
+
import { type CalcomAccessTokenCache, type CalcomAccessTokenFactory } from './oauth';
|
|
5
|
+
/**
|
|
6
|
+
* The Cal.com OAuth token endpoint URL.
|
|
7
|
+
*/
|
|
8
|
+
export declare const CALCOM_OAUTH_TOKEN_URL = "https://api.cal.com/v2/oauth/token";
|
|
9
|
+
/**
|
|
10
|
+
* The Cal.com OAuth authorize URL.
|
|
11
|
+
*/
|
|
12
|
+
export declare const CALCOM_OAUTH_AUTHORIZE_URL = "https://app.cal.com/auth/oauth2/authorize";
|
|
13
|
+
/**
|
|
14
|
+
* Configuration for CalcomOAuth.
|
|
15
|
+
*/
|
|
16
|
+
export interface CalcomOAuthConfig extends Partial<CalcomAuthClientIdAndSecretPair> {
|
|
17
|
+
/**
|
|
18
|
+
* Optional CalcomAccessTokenCache for caching access tokens.
|
|
19
|
+
*/
|
|
20
|
+
readonly accessTokenCache?: Maybe<CalcomAccessTokenCache>;
|
|
21
|
+
/**
|
|
22
|
+
* Server-level refresh token for initial authentication.
|
|
23
|
+
*/
|
|
24
|
+
readonly refreshToken?: Maybe<CalcomRefreshToken>;
|
|
25
|
+
/**
|
|
26
|
+
* Optional API key for simple bearer token auth.
|
|
27
|
+
*
|
|
28
|
+
* When provided, OAuth token refresh is skipped and the API key is used directly as the bearer token.
|
|
29
|
+
* Does not expire and requires no refresh.
|
|
30
|
+
*/
|
|
31
|
+
readonly apiKey?: Maybe<CalcomApiKey>;
|
|
32
|
+
}
|
|
33
|
+
export interface CalcomOAuthFetchFactoryInput {
|
|
34
|
+
}
|
|
35
|
+
export type CalcomOAuthFetchFactory = FactoryWithInput<ConfiguredFetch, CalcomOAuthFetchFactoryInput>;
|
|
36
|
+
export type CalcomOAuthMakeUserAccessTokenFactoryInput = {
|
|
37
|
+
readonly refreshToken: CalcomRefreshToken;
|
|
38
|
+
readonly userAccessTokenCache?: Maybe<CalcomAccessTokenCache>;
|
|
39
|
+
};
|
|
40
|
+
export type CalcomOAuthMakeUserAccessTokenFactory = FactoryWithRequiredInput<CalcomAccessTokenFactory, CalcomOAuthMakeUserAccessTokenFactoryInput>;
|
|
41
|
+
/**
|
|
42
|
+
* Context used for performing fetch() and fetchJson() calls with a configured fetch instance.
|
|
43
|
+
*/
|
|
44
|
+
export interface CalcomOAuthContext {
|
|
45
|
+
readonly fetch: ConfiguredFetch;
|
|
46
|
+
readonly fetchJson: FetchJsonFunction;
|
|
47
|
+
readonly loadAccessToken: CalcomAccessTokenFactory;
|
|
48
|
+
readonly makeUserAccessTokenFactory: CalcomOAuthMakeUserAccessTokenFactory;
|
|
49
|
+
readonly config: CalcomOAuthConfig;
|
|
50
|
+
}
|
|
51
|
+
export interface CalcomOAuthContextRef {
|
|
52
|
+
readonly oauthContext: CalcomOAuthContext;
|
|
53
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { type Maybe, type Seconds } from '@dereekb/util';
|
|
2
|
+
import { type CalcomRefreshToken } from '../calcom.config';
|
|
3
|
+
/**
|
|
4
|
+
* Access token authorization string generated from a refresh token.
|
|
5
|
+
*/
|
|
6
|
+
export type CalcomAccessTokenString = string;
|
|
7
|
+
/**
|
|
8
|
+
* Scopes string for a CalcomAccessToken that is space-separated.
|
|
9
|
+
*/
|
|
10
|
+
export type CalcomAccessTokenScopesString = string;
|
|
11
|
+
/**
|
|
12
|
+
* Cal.com account access token.
|
|
13
|
+
*/
|
|
14
|
+
export interface CalcomAccessToken {
|
|
15
|
+
readonly accessToken: CalcomAccessTokenString;
|
|
16
|
+
readonly scope: CalcomAccessTokenScopesString;
|
|
17
|
+
/**
|
|
18
|
+
* The latest refresh token. Cal.com rotates refresh tokens on every use.
|
|
19
|
+
*/
|
|
20
|
+
readonly refreshToken: CalcomRefreshToken;
|
|
21
|
+
/**
|
|
22
|
+
* Length of time the token is valid for.
|
|
23
|
+
*/
|
|
24
|
+
readonly expiresIn: Seconds;
|
|
25
|
+
/**
|
|
26
|
+
* Date the token expires at.
|
|
27
|
+
*/
|
|
28
|
+
readonly expiresAt: Date;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Used for retrieving and storing CalcomAccessToken values.
|
|
32
|
+
*/
|
|
33
|
+
export interface CalcomAccessTokenCache {
|
|
34
|
+
/**
|
|
35
|
+
* Loads the token from the cache, if available.
|
|
36
|
+
*
|
|
37
|
+
* The token may be expired.
|
|
38
|
+
*/
|
|
39
|
+
loadCachedToken(): Promise<Maybe<CalcomAccessToken>>;
|
|
40
|
+
/**
|
|
41
|
+
* Updates the cache with the given access token.
|
|
42
|
+
*/
|
|
43
|
+
updateCachedToken(accessToken: CalcomAccessToken): Promise<void>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Source for retrieving a CalcomAccessToken.
|
|
47
|
+
*
|
|
48
|
+
* Throws a CalcomOAuthAuthFailureError error if the token could not be retrieved.
|
|
49
|
+
*/
|
|
50
|
+
export type CalcomAccessTokenFactory = () => Promise<CalcomAccessToken>;
|
|
51
|
+
/**
|
|
52
|
+
* A CalcomAccessTokenFactory that always generates a new CalcomAccessToken.
|
|
53
|
+
*/
|
|
54
|
+
export type CalcomAccessTokenRefresher = CalcomAccessTokenFactory;
|
|
55
|
+
/**
|
|
56
|
+
* Source for retrieving a CalcomAccessToken string.
|
|
57
|
+
*
|
|
58
|
+
* Throws a CalcomOAuthAuthFailureError error if the token could not be retrieved.
|
|
59
|
+
*/
|
|
60
|
+
export type CalcomAccessTokenStringFactory = () => Promise<CalcomAccessTokenString>;
|
|
61
|
+
/**
|
|
62
|
+
* Generates a new CalcomAccessTokenStringFactory.
|
|
63
|
+
*/
|
|
64
|
+
export declare function calcomAccessTokenStringFactory(calcomAccessTokenFactory: CalcomAccessTokenFactory): CalcomAccessTokenStringFactory;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { FetchRequestFactoryError, type FetchResponseError } from '@dereekb/util/fetch';
|
|
2
|
+
import { type CalcomServerErrorData, type ParsedCalcomServerError } from '../calcom.error.api';
|
|
3
|
+
/**
|
|
4
|
+
* Error in the following cases:
|
|
5
|
+
* - the refresh token string is invalid
|
|
6
|
+
*/
|
|
7
|
+
export declare const CALCOM_OAUTH_INVALID_GRANT_ERROR_CODE = "invalid_grant";
|
|
8
|
+
export type CalcomOAuthAccessTokenErrorCode = typeof CALCOM_OAUTH_INVALID_GRANT_ERROR_CODE;
|
|
9
|
+
/**
|
|
10
|
+
* Thrown if the call to the Cal.com API creating an access token using a refresh token fails.
|
|
11
|
+
*/
|
|
12
|
+
export declare class CalcomOAuthAccessTokenError extends FetchRequestFactoryError {
|
|
13
|
+
readonly errorCode: CalcomOAuthAccessTokenErrorCode;
|
|
14
|
+
constructor(errorCode: CalcomOAuthAccessTokenErrorCode);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Thrown if a valid CalcomAccessToken cannot be retrieved successfully.
|
|
18
|
+
*/
|
|
19
|
+
export declare class CalcomOAuthAuthFailureError extends FetchRequestFactoryError {
|
|
20
|
+
readonly reason?: string | undefined;
|
|
21
|
+
constructor(reason?: string | undefined);
|
|
22
|
+
}
|
|
23
|
+
export declare const logCalcomOAuthErrorToConsole: import("..").LogCalcomServerErrorFunction;
|
|
24
|
+
export declare function parseCalcomOAuthError(responseError: FetchResponseError): Promise<ParsedCalcomServerError>;
|
|
25
|
+
export declare function parseCalcomOAuthServerErrorResponseData(calcomServerError: CalcomServerErrorData, responseError: FetchResponseError): ParsedCalcomServerError;
|
|
26
|
+
export declare const handleCalcomOAuthErrorFetch: import("..").HandleCalcomErrorFetchFactory;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type CalcomOAuthConfig, type CalcomOAuthContextRef, type CalcomOAuthFetchFactory } from './oauth.config';
|
|
2
|
+
import { type LogCalcomServerErrorFunction } from '../calcom.error.api';
|
|
3
|
+
import { type CalcomAccessTokenCache, type CalcomAccessTokenFactory, type CalcomAccessTokenRefresher } from './oauth';
|
|
4
|
+
import { type Maybe, type Milliseconds } from '@dereekb/util';
|
|
5
|
+
export type CalcomOAuth = CalcomOAuthContextRef;
|
|
6
|
+
export interface CalcomOAuthFactoryConfig {
|
|
7
|
+
/**
|
|
8
|
+
* Creates a new fetch instance to use when making calls.
|
|
9
|
+
*/
|
|
10
|
+
fetchFactory?: CalcomOAuthFetchFactory;
|
|
11
|
+
/**
|
|
12
|
+
* Custom log error function.
|
|
13
|
+
*/
|
|
14
|
+
logCalcomServerErrorFunction?: LogCalcomServerErrorFunction;
|
|
15
|
+
}
|
|
16
|
+
export type CalcomOAuthFactory = (config: CalcomOAuthConfig) => CalcomOAuth;
|
|
17
|
+
export declare function calcomOAuthFactory(factoryConfig: CalcomOAuthFactoryConfig): CalcomOAuthFactory;
|
|
18
|
+
export interface CalcomOAuthAccessTokenFactoryConfig {
|
|
19
|
+
/**
|
|
20
|
+
* Number of milliseconds before the expiration time a token should be discarded.
|
|
21
|
+
*
|
|
22
|
+
* Defaults to 1 minute.
|
|
23
|
+
*/
|
|
24
|
+
readonly tokenExpirationBuffer?: Milliseconds;
|
|
25
|
+
readonly tokenRefresher: CalcomAccessTokenRefresher;
|
|
26
|
+
readonly accessTokenCache?: Maybe<CalcomAccessTokenCache>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Creates a CalcomAccessTokenFactory with multi-tier caching.
|
|
30
|
+
*/
|
|
31
|
+
export declare function calcomOAuthAccessTokenFactory(config: CalcomOAuthAccessTokenFactoryConfig): CalcomAccessTokenFactory;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cal.com API version header constants.
|
|
3
|
+
*
|
|
4
|
+
* Each endpoint group requires a specific cal-api-version header value.
|
|
5
|
+
*/
|
|
6
|
+
export declare const CALCOM_API_VERSION_SCHEDULES = "2024-06-11";
|
|
7
|
+
export declare const CALCOM_API_VERSION_SLOTS = "2024-09-04";
|
|
8
|
+
export declare const CALCOM_API_VERSION_BOOKINGS = "2024-08-13";
|
|
9
|
+
export declare const CALCOM_API_VERSION_EVENT_TYPES = "2024-06-14";
|
|
10
|
+
export declare const CALCOM_API_VERSION_CALENDARS = "2024-06-11";
|
|
11
|
+
export declare const CALCOM_API_VERSION_ME = "2024-08-13";
|
|
12
|
+
export type CalcomApiVersionString = string;
|
|
13
|
+
export declare const CALCOM_API_VERSION_HEADER = "cal-api-version";
|
|
14
|
+
/**
|
|
15
|
+
* Returns a headers object with the cal-api-version header set.
|
|
16
|
+
*/
|
|
17
|
+
export declare function calcomApiVersionHeaders(version: CalcomApiVersionString): Record<string, string>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './calcom.api-version';
|