* query params from router as computed
* chore: setup workspace store and sub-stores
* chore: update router query store
* chore: update store types
* fix: pages store changes
* change observables and retain object reference
* fix build errors
* chore: changed the structure of workspace, project, cycle, module and pages
* fix: pages fixes
* fix: merge conflicts resolved
* chore: fixed workspace list
* chore: update workspace store accroding to the new response
* fix: adding page details to store
* fix: adding new contexts and providers
* dev: issues store and filters in new store
* dev: optimised the issue fetching in issue base store
* chore: project views id mapped
* update lodash set to directly run inside runInaction since it mutates the object
* fix: context changes
* code refactor kanban for better mainatinability
* optimize Kanban for performance
* chore: implemented hooks for all the created stores
* chore: removed bridge id
* css change and refactor
* chore: update cycle store structure
* chore: implement the new label root store
* chore: removed object structure
* chore: implement project view hook
* Kanban new store implementation for project issues
* fix project root for kanban
* feat: workspace and project members endpoint (#3092)
* fix: merge conflicts resolved
* issue properties optimization
* chore: user stores
* chore: create new store context and update hooks
* chore: setup inbox store and implement router store
* chore: initialize and implement project estimate store
* chore: initialize global view store
* kanban and list view optimization
* chore: use new cycle and module store. (#3172)
* chore: use new cycle and module store.
* chore: minor improvements.
* Revert "chore: merge develop"
This reverts commit 9d2e0e29e7370b55b48fc2fee4fd126093a6cc48, reversing
changes made to 9595493c42be3ea0ddd17b23a0b124555075c062.
* chore: implement useGlobalView hook
* refactor: projects & inbox store instances (#3179)
* refactor: projects & inbox store instances
* fix: formatting
* fix: action usage
* chore: implement useProjectState hook. (#3185)
* dev: issue, cycle store optimiation
* fix build for code
* dev: removed dummy variables
* dev: issue store
* fix: adding todos
* chore: removing legacy store
* dev: issues store types and typos
* chore: cycle module user properties
* fix legacy store deletion issues
* chore: change POST to PATCH
* fix issues rendering for project root
* chore: removed workspace details in workpsaceinvite
* chore: created models for display properties
* chore: setup member store and implement it everywhere
* refactor: module store (#3202)
* refactor: cycle store (#3192)
* refator: cycle store
* some more improvements.
* chore: implement useLabel hook. (#3190)
* refactor: inbox & project related stores. (#3193)
* refactor: inbox -> filter, issues, inoxes & project -> publish, projects store
* refactor: workspace-project-id name
* fix kanban dropdown overlapping issue
* fix kanban layout minor re rendering
* chore: implement useMember store everywhere
* chore: create and implement editor mention store
* chore: removed the issue view user property
* chore: created at id changed
* dev: segway intgegration (#3132)
* feat: implemented rabbitmq
* dev: initialize segway with queue setup
* dev: import refactors
* dev: create communication with the segway server
* dev: create new workers
* dev: create celery node queue for consuming messages from django
* dev: node to celery connection
* dev: setup segway and django connection
* dev: refactor the structure and add database integration to the app
* dev: add external id and source added
---------
Co-authored-by: NarayanBavisetti <narayan3119@gmail.com>
* dev: github importer (#3205)
* dev: initiate github import
* dev: github importer all issues import
* dev: github comments and links for the imported issues
* dev: update controller to use logger and spread the resultData in getAllEntities
* dev: removed console log
* dev: update code structure and sync functions
* dev: updated retry logic when exception
* dev: add imported data as well
* dev: update logger and repo fetch
* dev: update jira integration to new structure
* dev: update migrations
* dev: update the reason field
* chore: workspace object id removed
* chore: view's creation fixed
* refactor: mobx store improvements. (#3213)
* fix: state and label errors
* chore: remove legacy code
* fix: branch build fix (#3214)
* branch build fix for release-* in case of space,backend,proxy
* fixes
* chore: update store names and types
* fix - file size limit not work on plane.settings.production (#3160)
* fix - file size limit not work on plane.settings.production
* fix - file size limit not work on plane.settings.production
* fix - file size limit not work on plane.settings.production, move to common.py
---------
Co-authored-by: luanduongtel4vn <hoangluan@tel4vn.com>
Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>
* style: instance admin email settings ui & ux update. (#3186)
* refactor: use-user-auth hook (#3215)
* refactor: use-user-auth hook
* fix: user store currentUserLoader
* refactor: project-view & application related stores (#3207)
* refactor: project-view & application related stores
* rename: projectViews -> projectViewIds
* fix: project-view favourite state in store
* chore: remove unnecessary hooks and contexts (#3217)
* chore: update issue assignee property component
* chore: bug fixes & improvement (#3218)
* chore: draft issue validation added to prevent saving empty or whitespace title
* chore: resolve scrolling issue in page empty state
* chore: kanban layout quick add issue improvement
* fix: bugs & improvements (#3189)
* fix: workspace invitation modal form values reset
* fix: profile sidebar avatar letter
* [refactor] Editor code refactoring (#3194)
* removed relative imports from editor core
* Update issue widget file paths and imports to use kebab case instead of camel case, to align with coding conventions and improve consistency.
* Update Tiptap core and extensions versions to 2.1.13 and Tiptap React version to 2.1.13. Update Tiptap table imports to use the new location in package @tiptap/pm/tables. Update AlertLabel component to use the new type definition for LucideIcon.
* updated lock file
* removed default exports from editor/core
* fixed injecting css into the core package itself
* seperated css code to have single source of origin wrt to the package
* removed default imports from document editor
* all instances using index as key while mapping fixed
* Update Lite Text Editor package.json to remove @plane/editor-types as a dependency.
Update Lite Text Editor index.ts to update the import of IMentionSuggestion and IMentionHighlight from @plane/editor-types to @plane/editor-core.
Update Lite Text Editor ui/index.tsx to update the import of UploadImage, DeleteImage, IMentionSuggestion, and RestoreImage from @plane/editor-types to @plane/editor-core.
Update Lite Text Editor ui/menus/fixed-menu/index.tsx to update the import of UploadImage from @plane/editor-types to @plane/editor-core.
Update turbo.json to remove @plane/editor-types#build as a dependency for @plane/lite-text-editor#build, @plane/rich-text-editor#build, and @plane/document-editor#build.
* Remove deprecated import and adjust tippy.js usage in the slash-commands.tsx file of the editor extensions package.
* Update dependencies in `rich-text-editor/package.json`, remove `@plane/editor-types` and add `@plane/editor-core` in `rich-text-editor/src/index.ts`, and update imports in `rich-text-editor/src/ui/extensions/index.tsx` and `rich-text-editor/src/ui/index.tsx` to use `@plane/editor-core` instead of `@plane/editor-types`.
* Update package.json dependencies and add new types for image deletion, upload, restore, mention highlight, mention suggestion, and slash command item.
* Update import statements in various files to use the new package "@plane/editor-core" instead of "@plane/editor-types".
* fixed document editor to follow conventions
* Refactor imports in the Rich Text Editor package to use relative paths instead of absolute paths.
- Updated imports in `index.ts`, `ui/index.tsx`, and `ui/menus/bubble-menu/index.tsx` to use relative paths.
- Updated `tsconfig.json` to include the `baseUrl` compiler option and adjust the `include` and `exclude` paths.
* Refactor Lite Text Editor code to use relative import paths instead of absolute import paths.
* Added LucideIconType to the exports in index.ts for use in other files.
Created a new file lucide-icon.ts which contains the type LucideIconType.
Updated the icon type in HeadingOneItem in menu-items/index.tsx to use LucideIconType.
Updated the Icon type in AlertLabel in alert-label.tsx to use LucideIconType.
Updated the Icon type in VerticalDropdownItemProps in vertical-dropdown-menu.tsx to use LucideIconType.
Updated the Icon type in BubbleMenuItem in fixed-menu/index.tsx to use LucideIconType.
Deleted the file tooltip.tsx since it is no longer used.
Updated the Icon type in BubbleMenuItem in bubble-menu/index.tsx to use LucideIconType.
* ♻️ refactor: simplify rendering logic in slash-commands.tsx
The rendering logic in the file "slash-commands.tsx" has been simplified. Previously, the code used inline positioning for the popup, but it has now been removed. Instead of appending the popup to the document body, it is now appended to the element with the ID "tiptap-container". The "flip" option has also been removed. These changes have improved the readability and maintainability of the code.
* fixed build errors caused due to core's internal imports
* regression: fixed pages not saving issue and not duplicating with proper content issue
* build: Update @tiptap dependencies
Updated the @tiptap dependencies in the package.json files of `document-editor`, `extensions`, and `rich-text-editor` packages to version 2.1.13.
* 🚑 fix: Correct appendTo selector in slash-commands.tsx
Update the `appendTo` function call in `slash-commands.tsx` to use the correct selector `#editor-container` instead of `#tiptap-container`. This ensures that the component is appended to the appropriate container in the editor extension.
Note: The commit message assumes that the change is a fix for an issue or error. If it's not a fix, please provide more context so that an appropriate commit type can be determined.
* style: email placeholder changed across the platform (#3206)
* style: email placeholder changed across the platform
* fix: placeholder text
* dev: updated new filter endpoints and restructured issue and issue filters store
* implement issues and replace useMobxStore
* remove all store legacy references
* dev: updated the orderby and subgroupby filters data
* dev:added projectId in issue filters for consistency
* fix more build errors
* dev: updated profile issues
* dev: removed store legacy
* dev: active cycle issues in the cycle issue store
* fix additional build errors and memoize issueActions in each layout component
* change store enums
* remove all useMobxStore references
* fix more build errors
* dev: reverted workspace invitation
* fix: build errors and warnings
* fix: optimistic update for instant operations (#3221)
* fix: update functions failed case
* fix: typo
* chore: revert back to optimistic update approach for all `update related actions` (#3219)
* fix: merge conflicts resolved
* chore: update memberMap logic in components
* add assignees to kanban groups and properties
* dev: migration fixes
* final bit of optimization on list view
* change all TODOs that are to be done before this release to FIXME
* change base Kanban TODOs that are to be done before this release to FIXME
* dev: add fields and expand for app serializers
* dev: issue detail store
* dev: update issue serializer to return object ids
* fix: Instance key added in settings and converted issues list api to arry instead of dict
* fix: removing segway files
* dev: control expand through query parameters
* revert: github importer
* Revert "dev: segway intgegration (#3132)"
This reverts commit 1cc18a09156d1790d114061dbac8c901e0f2754c.
* dev: remove migrations for segway
* dev: issue structure change and created workspacebasemodel
* dev: issue detail serializer
* fix: changed workspace dict
* dev: updated new issue structure
* chore: build fix
* dev: issue detail store refactor
* dev: created list endpoint for issue-relation
* dev: added issue attachments in issue detail store
* dev: added issue activity computed
* fix: build error
* chore: peek overview modal context added
* chore: build error fix
* dev: added sub_issues in issue details store
* dev: added complete issue serializer for sub issues
* dev: resolved type errors in issue root store
* dev: changed the issue relation structure
* chore: new global dropdowns
* chore: build error fix
* chore: cycle and module selection if disabled
* dev: removed unnecessary code from the workspace root
* chore: build error fix
* chore: issue relation remove endpoint
* fix: build error
* dev: typos and implemented issue relation store
* fix: yarn lock updated
* style: update the UI of all the dropdowns
* fix: state store fixes
* fix: key issue
* fix: state store console logs removed
* refactor: member dropdowns
* fix: moving types to packages
* fix: dropdown arrow positioning
* dev: removed logs
* style: label dropdown
* chore: restrict description notifications
* chore: description changes
* chore: update spreadsheet layout dropdowns
* fix: build errors
* chore: duplicate key change
* fix: ui bugs
* chore: relation activity change
* chore: comment activity changes
* chore: blocking issue removal
* chore: added project_id for relation
* chore: issue relation store and component
* chore: issue redirection issue in the issue realtion in detail page
* chore: created activity changed
* chore: issue links new store implementation on the issue detail
* chore: issue relation deletion acitivity changed
* chore: issue attachments new store implementation on the issue detail
* chore: workspace level issues
* fix: build errors
---------
Co-authored-by: rahulramesha <rahulramesham@gmail.com>
Co-authored-by: gurusainath <gurusainath007@gmail.com>
Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>
Co-authored-by: NarayanBavisetti <narayan3119@gmail.com>
Co-authored-by: Bavisetti Narayan <72156168+NarayanBavisetti@users.noreply.github.com>
Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com>
Co-authored-by: Lakhan Baheti <94619783+1akhanBaheti@users.noreply.github.com>
Co-authored-by: Nikhil <118773738+pablohashescobar@users.noreply.github.com>
Co-authored-by: Manish Gupta <59428681+mguptahub@users.noreply.github.com>
Co-authored-by: Hoang Luan <luandnh98@gmail.com>
Co-authored-by: luanduongtel4vn <hoangluan@tel4vn.com>
Co-authored-by: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com>
Co-authored-by: M. Palanikannan <73993394+Palanikannan1437@users.noreply.github.com>
Co-authored-by: pablohashescobar <nikhilschacko@gmail.com>
Co-authored-by: Anmol Singh Bhatia <anmolsinghbhatia@plane.so>
* chore: date and time standardization all across the platform.
* chore: update `renderFormattedTime` function.
* remove unwanted code.
* fix: build errors
* chore: update `renderFormattedTime` function params.
* style: fix `background-color` inconsistency in issue layout when custom theme is applied.
* fix: theme dropdown overlapping with input color picker icons (z-index issue).
* style: create webhook page to modal
* fix: create page removed
* fix: auto modal close on empty state
* fix: secret key heading removed from generated modal
* fix: issue with peek view properties not editable and options not being shown in `all workspace issues`..
* refactor: use projectId from props instead of router query.
fix: issue in add to module/ cycle not working properly.
* chore: remove `add link` button for guests & viewer in modules sidebar.
* chore: remove `+` (add view) icon for guests & viewer in `All Issues`.
* chore: remove `Start Project` button from Dashboard & Projects empty state for guests & viewers.
* chore: project level user role validation for empty states.
* fix: disable api calls if user doesn't have access
* chore: remove permissions from component level
* chore: rmeove console log and organize import statements
* chore: format all files in the project
* fix: removing @types/react from dependencies
* fix: adding prettier and eslint config
* chore: format files
* fix: upgrading turbo version
* chore: ignoring warnings and adding todos
* fix: updated the type of bubble menu item in the document editor
* chore: format files
---------
Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>
* chore: format all files in the project
* fix: removing @types/react from dependencies
* fix: adding prettier and eslint config
* chore: format files
* fix: upgrading turbo version
* chore: ignoring warnings and adding todos
* fix: updated the type of bubble menu item in the document editor
* chore: format files
---------
Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>
* chore: workspace project roles for the current user
* dev: workspace and project member
* chore: store implementation for workspace user projects role
* view changes for the project roles
* connect workspace member's project roles to assigned
---------
Co-authored-by: gurusainath <gurusainath007@gmail.com>
Co-authored-by: rahulramesha <rahulramesham@gmail.com>
Co-authored-by: rahulramesha <71900764+rahulramesha@users.noreply.github.com>
* feat: added heading 3 in the editor summary markings
* feat: fixed editor and summary bar sizing
* feat: added `issue-embed` extension
* feat: exposed issue embed extension
* feat: added main embed config configuration to document editor body
* feat: added peek overview and issue embed fetch function
* feat: enabled slash commands to take additonal suggestions from editors
* chore: replaced `IssueEmbedWidget` into widget extension
* chore: removed issue embed from previous places
* feat: added issue embed suggestion extension
* feat: added issue embed suggestion renderer
* feat: added issue embed suggestions into extensions module
* feat: added issues in issueEmbedConfiguration in document editor
* chore: package fixes
* chore: removed log statements
* feat: added title updation logic into document editor
* fix: issue suggestion items, not rendering issue widget on enter
* feat: added error card for issue widget
* feat: improved focus logic for issue search and navigate
* feat: appended transactionid for issueWidgetTransaction
* chore: packages update
* feat: disabled editing of title in readonly mode
* feat: added issueEmbedConfig in readonly editor
* fix: issue suggestions not loading after structure changed to object
* feat: added toast messages for success/error messages from doc editor
* fix: issue suggestions sorting issue
* fix: formatting errors resolved
* fix: infinite reloading of the readonly document editor
* fix: css in avatar of issue widget card
* feat: added show alert on pages reload
* feat: added saving state for the pages editor
* fix: issue with heading 3 in side bar view
* style: updated issue suggestions dropdown ui
* fix: Pages intiliazation and mutation with updated MobX store
* fixed image uploads being cancelled on refocus due to swr
* fix: issue with same description rerendering empty content fixed
* fix: scroll in issue suggestion view
* fix: added submission prop
* fix: Updated the comment update to take issue id in inbox issues
* feat:changed date representation in IssueEmbedCard
* fix: page details mutation with optimistic updates using swr
* fix: menu options in read only editor with auth fixed
* fix: add error handling for title and page desc
* fixed yarn.lock
* fix: read-only editor title wrapping
* fix: build error with rich text editor
---------
Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>
Co-authored-by: Palanikannan1437 <73993394+Palanikannan1437@users.noreply.github.com>
* fix: initial issue creation issue in the list layout
* fix kanban drag n drop and updating properties
* reduce z index of spreadsheet bottom row to not overlap with other elements
* fix state update by using state id instead of state detail's id
* fix add default use state for description
* add create issue button for project views to be at par with production
* save draft issues from modal
* chore: added save view button in all layouts applied filters
* use useEffect instead of swr for fetching issue details for peek overview
* fix: resolved kanban dnd
---------
Co-authored-by: rahulramesha <rahulramesham@gmail.com>
* fix: kanban board block menu click
* fix: menu active/disable
* fix: drag n drop delete modal
* fix: quick action button in all the layouts
* chore: toast for drag & drop api
* added image min width and height programatically
* fixed editor initialization for peek view and inbox issues
* fixed ts issues with issue id in inbox
* hide properties in list and kanban with 0 or nil values
* module and cycle mutation from peek overlay
* fix peek over view title change while switching
* fix create issue fetching
* fix build errors by mutating the values as well
* fix: empty state flickering on accepting only invitation
* fix: redirection from workspace-invitaion to onboarding
* chore: onboarding step 1 skip on accepting invite from email
* fix: dashboard redirection path
* fix add subgroup issue FED-1101
* fix subgroup by None assignee FED-1100
* fix grouping by asignee or labels FED-1096
* fix create view popup FED-1093
* fix subgroup exception in swimlanes
* fix show sub issue filter FED-1102
* use Enums instead of numbers
* fix Estimates setting permission for admin
* disable access to project settings for viewers and guests
* fix project unautorized flicker
* add observer to estimates
* add permissions to member list
* style: updated the UI of the signin and instance setups
* fix: form validations and mutations
* fix: updated Link tags in accordance to next v14
* chore: latest features image, reset password redirection
* fix drag n drop exception error
* fix peek overlay close buttons
* fix project empty state view
* fix cycle and module empty state view
* add ai options to inbox issue creation
* fix inbox filters for viewers
* fix inbox filters for viewers for project
* disable editing permission for members and viewers
* define accurate types for drag and drop
* fix: spredsheet layout state column state name & tootltip
* fix: label select dropdown first item auto active state
* fix: priority column padding & tooltip position
* fix profile issue filters and kanban
* chore: calendar drag and drop
* chore: kanban drag and drop
* dev: remove issue from the kanban layout and resolved build errors
---------
Co-authored-by: rahulramesha <rahulramesham@gmail.com>
* fix: workspace settings pages authorization
* chore: user cannot add a member with a higher role than theirs
* chore: update workspace general settings auth
* image restoration fixed (marks an image to be deleted after a week)
* removed clgs
* added image constraints
* formatted editor-core package using yarn format
* lite-text-editor nothing to format
* rich-text-editor nothing to format
* formatted document-editor with prettier
* modified file service to follow api change
* fixed more formatting in document editor
* fixed all instances of types with that from the package
* fixed delete to work consistently (minor optimizations turned off)
* stop duplicate images inside editor
* restore image on editor creation
say if user A deletes image number 2, user B was also in the same issue and in their screen the image was there, if user B makes certain changes and that gets saved in backend, according to user B image 2 should exist but since user A deleted it, it'll not get restored and get deleted in 7 days, hence I've added a check such that whenever a issue loads we restore all images by default
* added restore image function with types
* replaced all instances to have restore image logic
* fixed issue detail for peek view
* disabled option to insert table inside a table
* Fix: issue with project publish modal data not updating immediately.
* fix: issue with workspace list not scrollable in profile settings.
* fix: update redirect workspace slug logic to redirect to prev workspace instead of `/`.
* style: update API tokens and webhooks empty state designs.
* dev: draft and archived issue store
* connect draft and archived issues
* kanban for draft issues
* fix filter store for calendar and kanban
* dev: profile issues store and draft issues filters in header
* disble issue creation for draft issues
* dev: profile issues store filters
* disable kanban properties in draft issues
* dev: profile issues store filters
* dev: seperated adding issues to the cycle and module as seperate methds in cycle and module store
* dev: workspace profile issues store
* dev: sub group issues in the swimlanes
* profile issues and create issue connection
* fix profile issues
* fix spreadsheet issues
* fix dissapearing project from create issue modal
* page level modifications
* fix additional bugs
* dev: issues profile and global iisues and filters update
* fix issue related bugs
* fix project views for list and kanban
* fix build errors
---------
Co-authored-by: rahulramesha <rahulramesham@gmail.com>
* fix: user state after logout
* chore: user state handle with mobx
* chore: signout update for profile setting
* fix: minor fixes
---------
Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>
* fix: workspace & user avatar tooltip
* chore: user name update while typing on top right avatar
* chore: imports placement
* fix: rendering condition
* chore: component re-arrangement
* fix: imports
* feat: Images in Plane config screen.
* feat: Enable/ Disable Magic Login config toggle.
* style: UX copy and design updates across all screens.
* style: SSO and OAuth Screen revamp.
* style: Enter God Mode button for Profile Settings sidebar.
* fix: update input type to password for password fields.
* fix: removing logs
* fix: adding slack notification when build is failed to upload to docker
* minor changes
---------
Co-authored-by: Manish Gupta <59428681+manishg3@users.noreply.github.com>
* fix: Implemented new workflow in the issue store and updated the quick add workflow in list layout
* fix: initial load and mutaion of issues in list layout
* dev: implemented the new project issues store with grouped, subGrouped and unGrouped issue computed functions
* dev: default display properties data made as a function
* conflict: merge conflict resolved
* dev: implemented quick add logic in kanban
* chore: implemented quick add logic in calendar and spreadsheet layout
* fix: spreadsheet layout quick add fix
* dev: optimised the issues workflow and handled the issues order_by filter
* dev: project issue CRUD operations in new issue store architecture
* dev: issues filtering in calendar layout
* fix: build error
* dev/issue_filters_store
* chore: updated filters computed structure
* conflict: merge conflicts resolved in project issues
* dev: implemented gantt chart for project issues using the new mobx store
* dev: initialized cycle and module issue filters store
* dev: issue store and list layout store updates
* dev: quick add and update, delete issue in the list
* refactor list root changes
* dev: store new structure
* refactor spreadsheet and gnatt project roots
* fix errors for base gantt and spreadsheet roots
* connect Calendar project view
* minor house keeping
* connect Kanban View to th enew store
* generalise base calendar issue actions
* dev: store project issues and issue filters
* dev: store project issues and filters
* dev: updated undefined with displayFilters in project issue store
* Add Quick add to all the layouts
* connect module views to store
* dev: Rendering list issues in project issues
* dev: removed console log
* dev: module filters store
* fix errors and connect modules list and quick add for list
* dev: module issue store
* dev: modle filter store issue fixed and updates cycle issue filters
* minor house keeping changes
* dev: cycle issues and cycle filters
* connecty cycles to teh store
* dev: project view issues and issue filtrs
* connect project views
* dev: updated applied filters in layouts
* dev: replaced project id with view id in project views
* dev: in cycle and module store made cycledId and moduleId as optional
* fix minor issues and build errots
* dev: project draft and archived issues store and filters
---------
Co-authored-by: Anmol Singh Bhatia <anmolsinghbhatia@plane.so>
Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>
Co-authored-by: rahulramesha <rahulramesham@gmail.com>