chore: init platform packages (#12603)

* chore: init platform packages

* fixup! chore: init platform packages

* fixup! fixup! chore: init platform packages

* fix: type in package.json

* fixup! fixup! fixup! chore: init platform packages

* fixup! fixup! fixup! fixup! chore: init platform packages

* fixup! fixup! fixup! fixup! fixup! chore: init platform packages

* fixup! fixup! fixup! fixup! fixup! fixup! chore: init platform packages

---------

Co-authored-by: Lauris Skraucis <lauris.skraucis@gmail.com>
This commit is contained in:
Morgan 2023-11-30 11:37:43 +02:00 committed by GitHub
parent 88b3845bb0
commit 67f4756ccb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 99 additions and 6 deletions

View File

@ -19,7 +19,8 @@
"typescript": "^4.9.4",
"vite": "^4.1.2"
},
"main": "./index",
"main": "./index.ts",
"types": "./index.ts",
"dependencies": {
"@calcom/ui": "*",
"@radix-ui/react-slot": "^1.0.2",

View File

@ -0,0 +1 @@
export * from "./permissions";

View File

@ -0,0 +1,6 @@
{
"name": "@calcom/platform-constants",
"version": "0.0.0",
"main": "./index.ts",
"types": "./index.ts"
}

View File

@ -0,0 +1,24 @@
export const EVENT_TYPE_READ = 1; // 2^0
export const EVENT_TYPE_WRITE = 2; // 2^1
export const BOOKING_READ = 4; // 2^2
export const BOOKING_WRITE = 8; // 2^3
export const SCHEDULE_READ = 16; // 2^4
export const SCHEDULE_WRITE = 32; // 2^5
export const PERMISSIONS = [
EVENT_TYPE_READ,
EVENT_TYPE_WRITE,
BOOKING_READ,
BOOKING_WRITE,
SCHEDULE_READ,
SCHEDULE_WRITE,
] as const;
export const PERMISSION_MAP = {
EVENT_TYPE_READ,
EVENT_TYPE_WRITE,
BOOKING_READ,
BOOKING_WRITE,
SCHEDULE_READ,
SCHEDULE_WRITE,
} as const;

View File

@ -0,0 +1,9 @@
{
"extends": "@calcom/tsconfig/base.json",
"compilerOptions": {
"target": "ES6",
"resolveJsonModule": true
},
"include": ["."],
"exclude": ["dist", "build", "node_modules"]
}

View File

@ -0,0 +1 @@
export type * from "./permissions";

View File

@ -1,6 +1,9 @@
{
"name": "@calcom/platform-types",
"version": "0.0.0",
"private": true,
"main": "index.js"
"main": "./index.ts",
"types": "./index.ts",
"dependencies": {
"@calcom/platform-constants": "*"
}
}

View File

@ -0,0 +1,3 @@
import type { PERMISSIONS } from "@calcom/platform-constants";
export type PLATFORM_PERMISSION = (typeof PERMISSIONS)[number];

View File

@ -0,0 +1,9 @@
{
"extends": "@calcom/tsconfig/base.json",
"compilerOptions": {
"target": "ES6",
"resolveJsonModule": true
},
"include": ["."],
"exclude": ["dist", "build", "node_modules"]
}

View File

@ -0,0 +1 @@
export * from "./permissions";

View File

@ -1,6 +1,10 @@
{
"name": "@calcom/platform-utils",
"version": "0.0.0",
"private": true,
"main": "index.js"
"main": "./index.ts",
"types": "./index.ts",
"dependencies": {
"@calcom/platform-constants": "*",
"@calcom/platform-types": "*"
}
}

View File

@ -0,0 +1,11 @@
import type { PLATFORM_PERMISSION } from "@calcom/platform-types";
export const hasPermission = (userPermissions: number, permission: PLATFORM_PERMISSION): boolean => {
// use bitwise AND to check if user has the permission
return (userPermissions & permission) === permission;
};
export const hasPermissions = (userPermissions: number, permissions: PLATFORM_PERMISSION[]): boolean => {
// use bitwise AND to check if each required permission is present
return permissions.every((permission) => hasPermission(userPermissions, permission));
};

View File

@ -0,0 +1,9 @@
{
"extends": "@calcom/tsconfig/base.json",
"compilerOptions": {
"target": "ES6",
"resolveJsonModule": true
},
"include": ["."],
"exclude": ["dist", "build", "node_modules"]
}

View File

@ -4613,15 +4613,26 @@ __metadata:
languageName: unknown
linkType: soft
"@calcom/platform-types@workspace:packages/platform/types":
"@calcom/platform-constants@*, @calcom/platform-constants@workspace:packages/platform/constants":
version: 0.0.0-use.local
resolution: "@calcom/platform-constants@workspace:packages/platform/constants"
languageName: unknown
linkType: soft
"@calcom/platform-types@*, @calcom/platform-types@workspace:packages/platform/types":
version: 0.0.0-use.local
resolution: "@calcom/platform-types@workspace:packages/platform/types"
dependencies:
"@calcom/platform-constants": "*"
languageName: unknown
linkType: soft
"@calcom/platform-utils@workspace:packages/platform/utils":
version: 0.0.0-use.local
resolution: "@calcom/platform-utils@workspace:packages/platform/utils"
dependencies:
"@calcom/platform-constants": "*"
"@calcom/platform-types": "*"
languageName: unknown
linkType: soft