From 56912f6ed18a4f4881854d2f29fa4a55911f4a6b Mon Sep 17 00:00:00 2001
From: Dan Holdsworth
Date: Fri, 24 May 2024 12:27:42 +0100
Subject: [PATCH 1/9] update contribution doc with develop rules
---
contributing.md | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/contributing.md b/contributing.md
index 48475098c..883a5ffc3 100644
--- a/contributing.md
+++ b/contributing.md
@@ -2,11 +2,23 @@
First of all thank you for considering to contribute. Please look at the details below:
+- [Create a New Branch](#create-a-new-branch)
- [New Roadmaps](#new-roadmaps)
- [Existing Roadmaps](#existing-roadmaps)
- [Adding Content](#adding-content)
- [Guidelines](#guidelines)
+## Create A New Branch
+
+To create a new branch against `develop` for your contribution please do the following:
+
+```bash
+git clone https://github.com/kamranahmedse/developer-roadmap.git # Clone Repo
+cd developer-roadmap # Change Directory
+git switch develop && git pull # Switch and pull
+git checkout -b "a-sensible-branch-name" # Create your branch
+```
+
## New Roadmaps
For new roadmaps, you can either:
@@ -46,6 +58,10 @@ Visit the following resources to learn more:
## Guidelines
+- Please open your pull request (PR) against the develop branch.
+
+ To keep caching and deployments under control, please open your PR's against the `develop` branch, which will then be merged into `master` at the end of the day.
+
-
Adding everything available out there is not the goal!
The roadmaps represent the skillset most valuable today, i.e., if you were to enter any of the listed fields today, what would you learn? There might be things that are of-course being used today but prioritize the things that are most in demand today, e.g., agreed that lots of people are using angular.js today but you wouldn't want to learn that instead of React, Angular, or Vue. Use your critical thinking to filter out non-essential stuff. Give honest arguments for why the resource should be included.
From 279aa5c8a7d8917d525657d9bafe8932b85f55ec Mon Sep 17 00:00:00 2001
From: Kamran Ahmed
Date: Fri, 24 May 2024 19:09:02 +0100
Subject: [PATCH 2/9] Fix formatting
---
src/data/roadmaps/api-design/api-design.json | 4763 +++++++++++++++++-
1 file changed, 4762 insertions(+), 1 deletion(-)
diff --git a/src/data/roadmaps/api-design/api-design.json b/src/data/roadmaps/api-design/api-design.json
index a4b9f145d..805510d61 100644
--- a/src/data/roadmaps/api-design/api-design.json
+++ b/src/data/roadmaps/api-design/api-design.json
@@ -1 +1,4762 @@
-{"nodes":[{"id":"SP-d4YngpYXkeIB9SSD-K","type":"section","position":{"x":240.93596412339082,"y":1861.570310981244},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17,"borderColor":"TRANSPARENt","backgroundColor":"TRANSPARENt"},"oldId":"7s60T3OiXeo29-xN6fGjJ"},"zIndex":-999,"width":202,"height":114,"style":{"width":202,"height":114},"positionAbsolute":{"x":240.93596412339082,"y":1861.570310981244},"dragging":false,"resizing":false,"selectable":true,"focusable":true},{"id":"XzXLGjJr2F8Ln7gP0e5N8","type":"paragraph","position":{"x":-151.46804969796983,"y":2375.4716162213053},"selected":true,"data":{"label":"Continue Learning with following relevant tracks","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center","borderColor":"#000000"},"oldId":"jXtqI8k4Abz-vr01IcpWL"},"zIndex":999,"width":436,"height":118,"positionAbsolute":{"x":-151.46804969796983,"y":2375.4716162213053},"dragging":false,"style":{"width":436,"height":118},"resizing":true,"selectable":true,"focusable":true},{"id":"zL4QEM5xZO8XWXXWrdPuj","type":"section","position":{"x":244.19846699906657,"y":1501.3654630729577},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17,"borderColor":"TRANSPARENt","backgroundColor":"TRANSPARENt"}},"zIndex":-999,"width":200,"height":217,"style":{"width":200,"height":217},"positionAbsolute":{"x":244.19846699906657,"y":1501.3654630729577},"dragging":false,"resizing":true,"selectable":true,"focusable":true},{"id":"o3XFXW2HHLBoxlbEnoWdZ","type":"section","position":{"x":-592.469505701316,"y":1567.7437339754388},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17,"backgroundColor":"TRANSPARENt","borderColor":"TRANSPARENt"}},"zIndex":-999,"width":247,"height":381,"style":{"width":247,"height":381},"positionAbsolute":{"x":-592.469505701316,"y":1567.7437339754388},"dragging":false,"resizing":false,"focusable":true,"selectable":true},{"id":"ludceg3fQVkilNTKWznti","type":"section","position":{"x":-210.7109644352177,"y":1239.744561558562},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17,"backgroundColor":"TRANSPARENt","borderColor":"TRANSPARENt"}},"zIndex":-999,"width":252,"height":114,"style":{"width":252,"height":114},"positionAbsolute":{"x":-210.7109644352177,"y":1239.744561558562},"dragging":false,"resizing":false,"selectable":true,"focusable":true},{"id":"RkPVaSF9XnX6uHUns_-oC","type":"section","position":{"x":228.3676576847514,"y":1267.1153073402706},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17,"borderColor":"TRANSPARENt"}},"zIndex":-999,"width":219,"height":235,"style":{"width":219,"height":235},"positionAbsolute":{"x":228.3676576847514,"y":1267.1153073402706},"dragging":false,"resizing":false,"selectable":true,"focusable":true},{"id":"cGWZQjKazJQ0D3nz_AdAX","type":"section","position":{"x":-593.4010478029121,"y":982.3357132591475},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17,"borderColor":"TRANSPARENt","backgroundColor":"TRANSPARENt"}},"zIndex":-999,"width":230,"height":279,"style":{"width":230,"height":279},"resizing":true,"dragging":false,"positionAbsolute":{"x":-593.4010478029121,"y":982.3357132591475},"selectable":true,"focusable":true},{"id":"iHtjFSkQWMoUNdltNttEd","type":"section","position":{"x":219.72110595703134,"y":644.8914213180542},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17,"backgroundColor":"TRANSPARENt","borderColor":"TRANSPARENt"}},"zIndex":-999,"width":268,"height":297,"style":{"width":268,"height":297},"positionAbsolute":{"x":219.72110595703134,"y":644.8914213180542},"dragging":false,"resizing":false,"selectable":true,"focusable":true},{"id":"junprE7dbMyeovApqhSgr","type":"section","position":{"x":219.22110595703134,"y":281.3914213180542},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17,"backgroundColor":"TRANSPARENt","borderColor":"TRANSPARENt"}},"zIndex":-999,"width":269,"height":228,"style":{"width":269,"height":228},"positionAbsolute":{"x":219.22110595703134,"y":281.3914213180542},"dragging":false,"resizing":false,"selectable":true,"focusable":true},{"id":"wTrcPqj0KpoeOvJf7k3iI","type":"section","position":{"x":-206.8881872719935,"y":451.40074822234897},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17,"backgroundColor":"TRANSPARENt","borderColor":"TRANSPARENt"}},"zIndex":-999,"width":266,"height":234,"style":{"width":266,"height":234},"positionAbsolute":{"x":-206.8881872719935,"y":451.40074822234897},"dragging":false,"resizing":false,"focusable":true,"selectable":true},{"id":"IzMY2P54llvbVixWxAl7H","type":"section","position":{"x":-571.1381872719934,"y":123.90074822234897},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17},"oldId":"wOyWgfUDwC3ORsLI8H5A0"},"zIndex":-999,"width":232,"height":437,"style":{"width":232,"height":437},"positionAbsolute":{"x":-571.1381872719934,"y":123.90074822234897},"dragging":false,"resizing":false,"selectable":true,"focusable":true},{"id":"AZoEY2N7PqAQgUl04E3KF","type":"title","position":{"x":-178.6381872719934,"y":-57.599251777651034},"selected":true,"data":{"label":"Building APIs","style":{"fontSize":28,"justifyContent":"flex-start","textAlign":"center"},"oldId":"EhPhMi4v4KT3vEUrInsxF"},"zIndex":999,"width":207,"height":68,"dragging":false,"positionAbsolute":{"x":-178.6381872719934,"y":-57.599251777651034},"selectable":true,"focusable":true},{"id":"duKkpzPjUU_-8kyJGHqRX","type":"topic","position":{"x":-198.1381872719934,"y":123.40074822234897},"selected":true,"data":{"label":"Learn the Basics","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"awdoiCHz7Yc3kYac_iy-a"},"zIndex":999,"width":246,"height":49,"positionAbsolute":{"x":-198.1381872719934,"y":123.40074822234897},"dragging":false,"selectable":true,"focusable":true,"style":{"width":246,"height":49},"resizing":false},{"id":"r8M3quACGO2piu0u_R4hO","type":"subtopic","position":{"x":-570.1381872719934,"y":63.400748222348966},"selected":true,"data":{"label":"What are APIs","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"Wghrrm4Riz2t7F41H5GK-"},"zIndex":999,"width":232,"height":49,"positionAbsolute":{"x":-570.1381872719934,"y":63.400748222348966},"dragging":false,"style":{"width":232,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"2HdKzAIQi15pr3YHHrbPp","type":"subtopic","position":{"x":-571.1381872719934,"y":122.60000000000008},"selected":true,"data":{"label":"HTTP","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"mbDiNvkeYo9v3T_DN5uNl"},"zIndex":999,"width":232,"height":49,"positionAbsolute":{"x":-571.1381872719934,"y":122.60000000000008},"dragging":false,"style":{"width":232,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"ACALE93mL4gnX5ThRIdRp","type":"subtopic","position":{"x":-560.6381872719934,"y":183.90074822234897},"selected":true,"data":{"label":"HTTP Versions","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"p0C6D4Rt2y_U9atm7X_kt"},"zIndex":999,"width":210,"height":49,"positionAbsolute":{"x":-560.6381872719934,"y":183.90074822234897},"selectable":true,"focusable":true,"dragging":false,"style":{"width":210,"height":49},"resizing":true},{"id":"rADHM-6NAxEjzmgiHefDX","type":"subtopic","position":{"x":-560.6381872719934,"y":236.40074822234897},"selected":true,"data":{"label":"HTTP Methods","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"ZGD2Y4TgLOzn-mDEhZGXX"},"zIndex":999,"width":210,"height":49,"positionAbsolute":{"x":-560.6381872719934,"y":236.40074822234897},"selectable":true,"focusable":true,"dragging":false,"style":{"width":210,"height":49}},{"id":"7szYyzLifKsepNU0c2KnN","type":"subtopic","position":{"x":-560.6381872719934,"y":288.90074822234897},"selected":true,"data":{"label":"HTTP Status Codes","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"--pZRMVsKFEAhMIgDpGwC"},"zIndex":999,"width":210,"height":49,"positionAbsolute":{"x":-560.6381872719934,"y":288.90074822234897},"selectable":true,"focusable":true,"dragging":false,"style":{"width":210,"height":49}},{"id":"rE-0yibRH6B2UBKp351cf","type":"subtopic","position":{"x":-560.6381872719934,"y":341.40074822234897},"selected":true,"data":{"label":"HTTP Headers","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"3iwD_eyT4XZRQNIorTF3a"},"zIndex":999,"width":210,"height":49,"positionAbsolute":{"x":-560.6381872719934,"y":341.40074822234897},"selectable":true,"focusable":true,"dragging":false,"style":{"width":210,"height":49}},{"id":"P-rGIk50Bg7nFmWieAW07","type":"subtopic","position":{"x":197.8618127280065,"y":52.100748222348955},"selected":true,"data":{"label":"URL, Query & Path Parameters","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"aBXHVaEfcChnyF4FPlqHp"},"zIndex":999,"width":283,"height":49,"positionAbsolute":{"x":197.8618127280065,"y":52.100748222348955},"dragging":false,"style":{"width":283,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"UFuX8wcxZQ7dvaQF_2Yp8","type":"subtopic","position":{"x":-560.6381872719934,"y":393.90074822234897},"selected":true,"data":{"label":"Cookies","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"2tNyxd-8rFQoOsQIClP4O"},"zIndex":999,"width":210,"height":49,"positionAbsolute":{"x":-560.6381872719934,"y":393.90074822234897},"dragging":false,"style":{"width":210,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"TX_hg7EobNJhmWKsMCaT1","type":"subtopic","position":{"x":197.8618127280065,"y":106.10074822234895},"selected":true,"data":{"label":"Content Negotiation","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"MKVcPM2EzAr2_Ieyp9Fu3"},"zIndex":999,"width":283,"height":49,"positionAbsolute":{"x":197.8618127280065,"y":106.10074822234895},"dragging":false,"style":{"width":283,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"GRlsBogOlOwuqhMMPyHN3","type":"subtopic","position":{"x":-559.6381872719934,"y":446.40074822234897},"selected":true,"data":{"label":"CORS","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"KQAus72RGqx5f-3-YeJby"},"zIndex":999,"width":210,"height":49,"positionAbsolute":{"x":-559.6381872719934,"y":446.40074822234897},"dragging":false,"style":{"width":210,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"KG3wO86F8Of27fU7QRcsn","type":"subtopic","position":{"x":197.8618127280065,"y":160.10074822234895},"selected":true,"data":{"label":"Understand TCP / IP","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"MKVcPM2EzAr2_Ieyp9Fu3"},"zIndex":999,"width":283,"height":49,"positionAbsolute":{"x":197.8618127280065,"y":160.10074822234895},"dragging":false,"style":{"width":283,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"v4nJYD9yiIEUviLPhVTCD","type":"subtopic","position":{"x":197.8618127280065,"y":214.10074822234895},"selected":true,"data":{"label":"Basics of DNS","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5CxU3inGcSHp-TDg3BQiY"},"zIndex":999,"width":283,"height":49,"positionAbsolute":{"x":197.8618127280065,"y":214.10074822234895},"dragging":false,"style":{"width":283,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"o8i093VQv-T5Qf1yGqU0R","type":"topic","position":{"x":-198.1381872719934,"y":330.40074822234897},"selected":true,"data":{"label":"Different API Styles","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5R9yKfN1vItuv__HgCwP7"},"zIndex":999,"width":246,"height":49,"positionAbsolute":{"x":-198.1381872719934,"y":330.40074822234897},"dragging":false,"selectable":true,"focusable":true,"style":{"width":246,"height":49},"resizing":false},{"id":"BvwdASMvuNQ9DNgzdSZ4o","type":"subtopic","position":{"x":-196.3881872719935,"y":453.90074822234897},"selected":true,"data":{"label":"RESTful APIs","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"MKVcPM2EzAr2_Ieyp9Fu3"},"zIndex":999,"width":245,"height":49,"positionAbsolute":{"x":-196.3881872719935,"y":453.90074822234897},"dragging":false,"style":{"width":245,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"TVR-SkErlOHbDKLBGfxep","type":"subtopic","position":{"x":-196.3881872719935,"y":507.90074822234897},"selected":true,"data":{"label":"Simple JSON APIs","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"MKVcPM2EzAr2_Ieyp9Fu3"},"zIndex":999,"width":245,"height":49,"positionAbsolute":{"x":-196.3881872719935,"y":507.90074822234897},"dragging":false,"style":{"width":245,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"Wwd-0PjrtViMFWxRGaQey","type":"subtopic","position":{"x":-196.3881872719935,"y":561.900748222349},"selected":true,"data":{"label":"SOAP APIs","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"MKVcPM2EzAr2_Ieyp9Fu3"},"zIndex":999,"width":245,"height":49,"positionAbsolute":{"x":-196.3881872719935,"y":561.900748222349},"dragging":false,"style":{"width":245,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"MKVcPM2EzAr2_Ieyp9Fu3","type":"subtopic","position":{"x":-196.3881872719935,"y":615.900748222349},"selected":true,"data":{"label":"GraphQL APIs","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"WVSgaWgGJKqJYumpdPTCG"},"zIndex":999,"width":245,"height":49,"positionAbsolute":{"x":-196.3881872719935,"y":615.900748222349},"dragging":false,"style":{"width":245,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"iA0C1mFlM_73GcL9XNJmF","type":"button","position":{"x":-576.1381872719934,"y":615.900748222349},"selected":true,"data":{"label":"Visit GraphQL Roadmap","href":"https://roadmap.sh/graphql","color":"#ffffff","backgroundColor":"#2a79e4","style":{"fontSize":17},"oldId":"MSeNU5cURBInhPlvnhVfO"},"zIndex":999,"width":244,"height":49,"positionAbsolute":{"x":-576.1381872719934,"y":615.900748222349},"dragging":false,"style":{"width":244,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"awdoiCHz7Yc3kYac_iy-a","type":"topic","position":{"x":212.7618127280066,"y":548.400748222349},"selected":true,"data":{"label":"Building JSON / RESTful APIs","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"qHEzyDhqjQSa6vs5UDm_M"},"zIndex":999,"width":282,"height":49,"positionAbsolute":{"x":212.7618127280066,"y":548.400748222349},"dragging":false,"selectable":true,"focusable":true,"style":{"width":282,"height":49},"resizing":false},{"id":"9WI_z34jIFXwoUQuChyRU","type":"subtopic","position":{"x":223.2618127280066,"y":290.40074822234897},"selected":true,"data":{"label":"REST Principles","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5CxU3inGcSHp-TDg3BQiY"},"zIndex":999,"width":261,"height":49,"positionAbsolute":{"x":223.2618127280066,"y":290.40074822234897},"dragging":false,"style":{"width":261,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"b3qRTLwCC_9uDoPGrd9Bu","type":"subtopic","position":{"x":223.2618127280066,"y":344.40074822234897},"selected":true,"data":{"label":"URI Design","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5CxU3inGcSHp-TDg3BQiY"},"zIndex":999,"width":261,"height":49,"positionAbsolute":{"x":223.2618127280066,"y":344.40074822234897},"dragging":false,"style":{"width":261,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"itILK2SXvLvAjk1Kul7EK","type":"subtopic","position":{"x":223.2618127280066,"y":398.40074822234897},"selected":true,"data":{"label":"Versioning Strategies","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"zXxEiM5HeOn7W-Vue0tQf"},"zIndex":999,"width":261,"height":49,"positionAbsolute":{"x":223.2618127280066,"y":398.40074822234897},"dragging":false,"style":{"width":261,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"pgJDzP3pJjhjr5wTRtPJO","type":"subtopic","position":{"x":223.2618127280066,"y":649.400748222349},"selected":true,"data":{"label":"Pagination","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5CxU3inGcSHp-TDg3BQiY"},"zIndex":999,"width":261,"height":49,"positionAbsolute":{"x":223.2618127280066,"y":649.400748222349},"dragging":false,"style":{"width":261,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"O7wjldZ3yTA2s_F-UnJw_","type":"subtopic","position":{"x":223.2618127280066,"y":703.400748222349},"selected":true,"data":{"label":"Rate Limiting","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5CxU3inGcSHp-TDg3BQiY"},"zIndex":999,"width":261,"height":49,"positionAbsolute":{"x":223.2618127280066,"y":703.400748222349},"dragging":false,"style":{"width":261,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"20KEgZH6cu_UokqWpV-9I","type":"subtopic","position":{"x":223.2618127280066,"y":757.400748222349},"selected":true,"data":{"label":"Idempotency","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5CxU3inGcSHp-TDg3BQiY"},"zIndex":999,"width":261,"height":49,"positionAbsolute":{"x":223.2618127280066,"y":757.400748222349},"dragging":false,"style":{"width":261,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"LByD1vhzunhY1uY1YGZHP","type":"subtopic","position":{"x":223.2618127280066,"y":811.400748222349},"selected":true,"data":{"label":"HATEOAS","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5CxU3inGcSHp-TDg3BQiY"},"zIndex":999,"width":261,"height":49,"positionAbsolute":{"x":223.2618127280066,"y":811.400748222349},"dragging":false,"style":{"width":261,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"zXxEiM5HeOn7W-Vue0tQf","type":"subtopic","position":{"x":223.2618127280066,"y":452.40074822234897},"selected":true,"data":{"label":"Handling CRUD Operations","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5CxU3inGcSHp-TDg3BQiY"},"zIndex":999,"width":261,"height":49,"positionAbsolute":{"x":223.2618127280066,"y":452.40074822234897},"dragging":false,"style":{"width":261,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"8tELdagrOaGCf3nMVs8t3","type":"subtopic","position":{"x":223.2618127280066,"y":865.400748222349},"selected":true,"data":{"label":"Error Handling","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5CxU3inGcSHp-TDg3BQiY"},"zIndex":999,"width":261,"height":49,"positionAbsolute":{"x":223.2618127280066,"y":865.400748222349},"dragging":false,"style":{"width":261,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"5CxU3inGcSHp-TDg3BQiY","type":"subtopic","position":{"x":-165.6381872719934,"y":865.400748222349},"selected":true,"data":{"label":"RFC 7807 - Problem Details for APIs","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"MKVcPM2EzAr2_Ieyp9Fu3"},"zIndex":999,"width":326,"height":49,"positionAbsolute":{"x":-165.6381872719934,"y":865.400748222349},"dragging":false,"style":{"width":326,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"eUsorPQ8VRLJs28J8dyk2","type":"paragraph","position":{"x":-318.1381872719934,"y":728.9974788763272},"selected":true,"data":{"label":"API Authentication and Authorization","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"}},"zIndex":999,"width":366,"height":69,"dragging":false,"positionAbsolute":{"x":-318.1381872719934,"y":728.9974788763272},"selectable":true,"focusable":true,"style":{"width":366,"height":69},"resizing":false},{"id":"qAolZHf_jp8hCdtqHZwC8","type":"subtopic","position":{"x":-559.1381872719934,"y":498.90074822234897},"selected":true,"data":{"label":"HTTP Caching","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"KQAus72RGqx5f-3-YeJby"},"zIndex":999,"width":210,"height":49,"positionAbsolute":{"x":-559.1381872719934,"y":498.90074822234897},"dragging":false,"style":{"width":210,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"cQnQ9v3mH27MGNwetz3JW","type":"topic","position":{"x":-601.4010478029121,"y":859.6211541412258},"selected":true,"data":{"label":"Authentication Methods","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5R9yKfN1vItuv__HgCwP7"},"zIndex":999,"width":246,"height":49,"positionAbsolute":{"x":-601.4010478029121,"y":859.6211541412258},"dragging":false,"selectable":true,"focusable":true,"style":{"width":246,"height":49},"resizing":false},{"id":"0FzHERK5AeYL5wv1FBJbH","type":"subtopic","position":{"x":-583.4010478029121,"y":983.7533379465866},"selected":true,"data":{"label":"Basic Auth","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"dZTe_kxIUQsc9N3w920aR"},"zIndex":999,"width":210,"height":49,"positionAbsolute":{"x":-583.4010478029121,"y":983.7533379465866},"dragging":false,"style":{"width":210,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"QTH7sy9uQZWl6ieBz7erY","type":"subtopic","position":{"x":-583.4010478029121,"y":1037.7533379465865},"selected":true,"data":{"label":"Token Based Auth","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"KQAus72RGqx5f-3-YeJby"},"zIndex":999,"width":210,"height":49,"positionAbsolute":{"x":-583.4010478029121,"y":1037.7533379465865},"dragging":false,"style":{"width":210,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"tWg68AHLIr1gIZA1za3jp","type":"subtopic","position":{"x":-583.4010478029121,"y":1091.7533379465865},"selected":true,"data":{"label":"JWT ","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"KQAus72RGqx5f-3-YeJby"},"zIndex":999,"width":210,"height":49,"positionAbsolute":{"x":-583.4010478029121,"y":1091.7533379465865},"dragging":false,"style":{"width":210,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"TLuNtQ6HKYQXmglyVk8-t","type":"subtopic","position":{"x":-583.4010478029121,"y":1145.7533379465865},"selected":true,"data":{"label":"OAuth 2.0","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"KQAus72RGqx5f-3-YeJby"},"zIndex":999,"width":210,"height":49,"positionAbsolute":{"x":-583.4010478029121,"y":1145.7533379465865},"dragging":false,"style":{"width":210,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"eQWoy4CpYP3TJL2bbhPB_","type":"subtopic","position":{"x":-583.4010478029121,"y":1199.8443340956667},"selected":true,"data":{"label":"Session Based Auth","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"boYX1QcJullypfX4sevdy"},"zIndex":999,"width":210,"height":49,"positionAbsolute":{"x":-583.4010478029121,"y":1199.8443340956667},"dragging":false,"style":{"width":210,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"nHbn8_sMY7J8o6ckbD-ER","type":"topic","position":{"x":-210.6381872719934,"y":1033.5329320277096},"selected":true,"data":{"label":"Authorization Methods","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5R9yKfN1vItuv__HgCwP7"},"zIndex":999,"width":246,"height":49,"positionAbsolute":{"x":-210.6381872719934,"y":1033.5329320277096},"dragging":false,"selectable":true,"focusable":true,"style":{"width":246,"height":49},"resizing":false},{"id":"wFsbmMi5Ey9UyDADdbdPW","type":"subtopic","position":{"x":165.00932230336673,"y":1004.0041963907498},"selected":true,"data":{"label":"Role Based Access Control (RBAC)","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"dZTe_kxIUQsc9N3w920aR"},"zIndex":999,"width":352,"height":49,"positionAbsolute":{"x":165.00932230336673,"y":1004.0041963907498},"dragging":false,"style":{"width":352,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"dZTe_kxIUQsc9N3w920aR","type":"subtopic","position":{"x":165.00932230336673,"y":1058.00419639075},"selected":true,"data":{"label":"Attribute Based Access Control (ABAC)","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"KQAus72RGqx5f-3-YeJby"},"zIndex":999,"width":351,"height":49,"positionAbsolute":{"x":165.00932230336673,"y":1058.00419639075},"dragging":false,"style":{"width":351,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"tzUJwXu_scwQHnPPT0oY-","type":"topic","position":{"x":-210.6381872719934,"y":1146.5329320277096},"selected":true,"data":{"label":"API Keys & Management","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"Wpk4TvxcZOJgAoXjrOsZF"},"zIndex":999,"width":246,"height":49,"positionAbsolute":{"x":-210.6381872719934,"y":1146.5329320277096},"dragging":false,"selectable":true,"focusable":true,"style":{"width":246,"height":49},"resizing":false},{"id":"5R9yKfN1vItuv__HgCwP7","type":"topic","position":{"x":214.72110595703134,"y":1146.5329320277096},"selected":true,"data":{"label":"API Documentation Tools","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"awdoiCHz7Yc3kYac_iy-a"},"zIndex":999,"width":246,"height":49,"positionAbsolute":{"x":214.72110595703134,"y":1146.5329320277096},"dragging":false,"selectable":true,"focusable":true,"style":{"width":246,"height":49},"resizing":false},{"id":"5RY7AlfRQydjxWK65Z4cv","type":"subtopic","position":{"x":232.85884761415554,"y":1270.9481617844106},"selected":true,"data":{"label":"Swagger / Open API","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"OpS2NX1lPTOtfjV1wKtC4"},"zIndex":999,"width":210,"height":49,"positionAbsolute":{"x":232.85884761415554,"y":1270.9481617844106},"dragging":false,"style":{"width":210,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"KQAus72RGqx5f-3-YeJby","type":"subtopic","position":{"x":232.85884761415554,"y":1427.5717249610107},"selected":true,"data":{"label":"Postman","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"CDLaORTdB5PWk7VbcU1bz"},"zIndex":999,"width":210,"height":49,"positionAbsolute":{"x":232.85884761415554,"y":1427.5717249610107},"dragging":false,"style":{"width":210,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"LxWHkhlikUaMT2G8YmVDQ","type":"subtopic","position":{"x":232.85884761415554,"y":1323.1560161766106},"selected":true,"data":{"label":"Readme.com","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"OpS2NX1lPTOtfjV1wKtC4"},"zIndex":999,"width":210,"height":49,"positionAbsolute":{"x":232.85884761415554,"y":1323.1560161766106},"dragging":false,"style":{"width":210,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"OpS2NX1lPTOtfjV1wKtC4","type":"subtopic","position":{"x":232.85884761415554,"y":1375.3638705688106},"selected":true,"data":{"label":"Stoplight","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"KQAus72RGqx5f-3-YeJby"},"zIndex":999,"width":210,"height":49,"positionAbsolute":{"x":232.85884761415554,"y":1375.3638705688106},"dragging":false,"style":{"width":210,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"qIJ6dUppjAjOTA8eQbp0n","type":"topic","position":{"x":-207.7109644352177,"y":1398.532340911712},"selected":true,"data":{"label":"API Security","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"Wpk4TvxcZOJgAoXjrOsZF"},"zIndex":999,"width":246,"height":49,"positionAbsolute":{"x":-207.7109644352177,"y":1398.532340911712},"dragging":false,"selectable":true,"focusable":true,"style":{"width":246,"height":49},"resizing":false},{"id":"G70wvcOM1Isrx5ZBvS2xP","type":"subtopic","position":{"x":-205.2109644352177,"y":1251.6104620579213},"selected":true,"data":{"label":"Common Vulnerabilities","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"q1yaf-RbHIQsOqfzjn4k4"},"zIndex":999,"width":241,"height":49,"positionAbsolute":{"x":-205.2109644352177,"y":1251.6104620579213},"dragging":false,"style":{"width":241,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"q1yaf-RbHIQsOqfzjn4k4","type":"subtopic","position":{"x":-205.2109644352177,"y":1303.8183164501213},"selected":true,"data":{"label":"Best Practices","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"KQAus72RGqx5f-3-YeJby"},"zIndex":999,"width":241,"height":49,"positionAbsolute":{"x":-205.2109644352177,"y":1303.8183164501213},"dragging":false,"style":{"width":241,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"92-ebM0EwQ3nLjZKtvCZX","type":"button","position":{"x":-612.1381872719934,"y":1303.8183164501213},"selected":true,"data":{"label":"API Security Best Practices","href":"","color":"#ffffff","backgroundColor":"#2a79e4","style":{"fontSize":17},"oldId":"MSeNU5cURBInhPlvnhVfO"},"zIndex":999,"width":290,"height":49,"positionAbsolute":{"x":-612.1381872719934,"y":1303.8183164501213},"dragging":false,"style":{"width":290,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"d9ZXdU73jiCdeNHQv1_DH","type":"topic","position":{"x":-590.469505701316,"y":1467.491632075372},"selected":true,"data":{"label":"API Performance","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"Wpk4TvxcZOJgAoXjrOsZF"},"zIndex":999,"width":246,"height":49,"positionAbsolute":{"x":-590.469505701316,"y":1467.491632075372},"dragging":false,"selectable":true,"focusable":true,"style":{"width":246,"height":49},"resizing":false},{"id":"nQpczZUcn-TvrfT80dv0Q","type":"subtopic","position":{"x":-585.469505701316,"y":1568.4353183589587},"selected":true,"data":{"label":"Performance Metrics","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"boYX1QcJullypfX4sevdy"},"zIndex":999,"width":236,"height":49,"positionAbsolute":{"x":-585.469505701316,"y":1568.4353183589587},"dragging":false,"style":{"width":236,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"PrvRCR4HCdGar0vcUbG_a","type":"subtopic","position":{"x":-585.469505701316,"y":1619.7437339754388},"selected":true,"data":{"label":"Caching Strategies","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"boYX1QcJullypfX4sevdy"},"zIndex":999,"width":236,"height":49,"positionAbsolute":{"x":-585.469505701316,"y":1619.7437339754388},"dragging":false,"style":{"width":236,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"p5wsniYnOS7cbHd92RxGk","type":"subtopic","position":{"x":-585.469505701316,"y":1671.0521495919188},"selected":true,"data":{"label":"Load Balancing","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"boYX1QcJullypfX4sevdy"},"zIndex":999,"width":236,"height":49,"positionAbsolute":{"x":-585.469505701316,"y":1671.0521495919188},"dragging":false,"style":{"width":236,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"tPVtRV818D8zAAuNbqPNa","type":"subtopic","position":{"x":-585.469505701316,"y":1722.3605652083988},"selected":true,"data":{"label":"Rate Limiting / Throttling","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"boYX1QcJullypfX4sevdy"},"zIndex":999,"width":236,"height":49,"positionAbsolute":{"x":-585.469505701316,"y":1722.3605652083988},"dragging":false,"style":{"width":236,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"-qdwBg7HvwlbLy3IKCRij","type":"subtopic","position":{"x":-585.469505701316,"y":1773.6689808248789},"selected":true,"data":{"label":"Profiling and Monitoring","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"boYX1QcJullypfX4sevdy"},"zIndex":999,"width":236,"height":49,"positionAbsolute":{"x":-585.469505701316,"y":1773.6689808248789},"dragging":false,"style":{"width":236,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"DQcAV59vr1-ZRnMfbLXpu","type":"subtopic","position":{"x":-585.469505701316,"y":1824.977396441359},"selected":true,"data":{"label":"Performance Testing","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"XD1vDtrRQFbLyKJaD1AlA"},"zIndex":999,"width":236,"height":49,"positionAbsolute":{"x":-585.469505701316,"y":1824.977396441359},"dragging":false,"style":{"width":236,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"MSeNU5cURBInhPlvnhVfO","type":"button","position":{"x":-614.469505701316,"y":1367.532340911712},"selected":true,"data":{"label":"API Performance Best Practices","href":"","color":"#ffffff","backgroundColor":"#2a79e4","style":{"fontSize":17}},"zIndex":999,"width":294,"height":49,"positionAbsolute":{"x":-614.469505701316,"y":1367.532340911712},"dragging":false,"style":{"width":294,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"R3aRhqCslwhegMfHtxg5z","type":"topic","position":{"x":-210.2109644352177,"y":1544.4353183589587},"selected":true,"data":{"label":"API Integration Patterns","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"yvdfoly5WHHTq2Puss355"},"zIndex":999,"width":246,"height":49,"positionAbsolute":{"x":-210.2109644352177,"y":1544.4353183589587},"dragging":false,"selectable":true,"focusable":true,"style":{"width":246,"height":49},"resizing":false},{"id":"kJD1K2-ZkoezFCfpmOM0Z","type":"section","position":{"x":-255.7109644352177,"y":1661.7437339754388},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17,"backgroundColor":"TRANSPARENt","borderColor":"TRANSPARENt"},"oldId":"o3XFXW2HHLBoxlbEnoWdZ"},"zIndex":-999,"width":335,"height":370,"style":{"width":335,"height":370},"positionAbsolute":{"x":-255.7109644352177,"y":1661.7437339754388},"dragging":false,"resizing":false,"focusable":true,"selectable":true},{"id":"--mmTKhG58_elbUqyn90G","type":"subtopic","position":{"x":-250.7109644352177,"y":1662.4353183589587},"selected":true,"data":{"label":"Synchronous vs Asynchronous APIs","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"iNsXTtcIHsI_i-mCfjGYn"},"zIndex":999,"width":325,"height":49,"positionAbsolute":{"x":-250.7109644352177,"y":1662.4353183589587},"dragging":false,"style":{"width":325,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"oMfOBkVsgiLvFLicOUdx6","type":"subtopic","position":{"x":-250.7109644352177,"y":1713.7417878080591},"selected":true,"data":{"label":"Event Driven Architecture","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"PrvRCR4HCdGar0vcUbG_a"},"zIndex":999,"width":325,"height":49,"positionAbsolute":{"x":-250.7109644352177,"y":1713.7417878080591},"dragging":false,"style":{"width":325,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"MJeUD4fOHaJu1oxk4uQ-x","type":"subtopic","position":{"x":-250.7109644352177,"y":1765.752205777561},"selected":true,"data":{"label":"API Gateways","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"p5wsniYnOS7cbHd92RxGk"},"zIndex":999,"width":325,"height":49,"positionAbsolute":{"x":-250.7109644352177,"y":1765.752205777561},"dragging":false,"style":{"width":325,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"PPeBbooE121zrgNwpVTiA","type":"subtopic","position":{"x":-250.7109644352177,"y":1817.410649486862},"selected":true,"data":{"label":"Microservices Architecture","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"-qdwBg7HvwlbLy3IKCRij"},"zIndex":999,"width":325,"height":49,"positionAbsolute":{"x":-250.7109644352177,"y":1817.410649486862},"dragging":false,"style":{"width":325,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"IkPZel5zxXWIx90Qx7fZI","type":"subtopic","position":{"x":-250.7109644352177,"y":1972.3859806147652},"selected":true,"data":{"label":"Messaging Queues","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"mXCKtLUvwVJkHrpHzOecq"},"zIndex":999,"width":325,"height":49,"positionAbsolute":{"x":-250.7109644352177,"y":1972.3859806147652},"dragging":false,"style":{"width":325,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"75NVxS0iwoQXxOHCkWQxH","type":"subtopic","position":{"x":-250.7109644352177,"y":1869.069093196163},"selected":true,"data":{"label":"Webhooks vs Polling","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"X68HXAAV-nKo-V4Fu1o72"},"zIndex":999,"width":325,"height":49,"positionAbsolute":{"x":-250.7109644352177,"y":1869.069093196163},"dragging":false,"style":{"width":325,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"X68HXAAV-nKo-V4Fu1o72","type":"subtopic","position":{"x":-250.7109644352177,"y":1920.7275369054641},"selected":true,"data":{"label":"Batch Processing","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"boYX1QcJullypfX4sevdy"},"zIndex":999,"width":325,"height":49,"positionAbsolute":{"x":-250.7109644352177,"y":1920.7275369054641},"dragging":false,"style":{"width":325,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"H22jAI2W5QLL-b1rq-c56","type":"subtopic","position":{"x":-497.66906836651873,"y":1941.8678842718575},"selected":true,"data":{"label":"Rabbit MQ","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"boYX1QcJullypfX4sevdy"},"zIndex":999,"width":145,"height":49,"positionAbsolute":{"x":-497.66906836651873,"y":1941.8678842718575},"dragging":false,"style":{"width":145,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"boYX1QcJullypfX4sevdy","type":"subtopic","position":{"x":-499.16906836651884,"y":1996.867884271857},"selected":true,"data":{"label":"Kafka","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"q1yaf-RbHIQsOqfzjn4k4"},"zIndex":999,"width":148,"height":49,"positionAbsolute":{"x":-499.16906836651884,"y":1996.867884271857},"dragging":false,"style":{"width":148,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"Wpk4TvxcZOJgAoXjrOsZF","type":"topic","position":{"x":221.19846699906657,"y":1758.058993623857},"selected":true,"data":{"label":"API Testing","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5R9yKfN1vItuv__HgCwP7"},"zIndex":999,"width":246,"height":49,"positionAbsolute":{"x":221.19846699906657,"y":1758.058993623857},"dragging":false,"selectable":true,"focusable":true,"style":{"width":246,"height":49},"resizing":false},{"id":"JvmW78cDm84GNhq8VEYZp","type":"subtopic","position":{"x":247.69846699906657,"y":1505.4070461854096},"selected":true,"data":{"label":"Unit Testing","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"iNsXTtcIHsI_i-mCfjGYn"},"zIndex":999,"width":193,"height":49,"positionAbsolute":{"x":247.69846699906657,"y":1505.4070461854096},"dragging":false,"style":{"width":193,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"qZELS5vw2feS7QfyD7spX","type":"subtopic","position":{"x":247.69846699906657,"y":1559.4070461854096},"selected":true,"data":{"label":"Integration Testing","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"iNsXTtcIHsI_i-mCfjGYn"},"zIndex":999,"width":193,"height":49,"positionAbsolute":{"x":247.69846699906657,"y":1559.4070461854096},"dragging":false,"style":{"width":193,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"6lm3wy9WTAERTqXCn6pFt","type":"subtopic","position":{"x":247.69846699906657,"y":1613.4070461854096},"selected":true,"data":{"label":"Functional Testing","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"iNsXTtcIHsI_i-mCfjGYn"},"zIndex":999,"width":193,"height":49,"positionAbsolute":{"x":247.69846699906657,"y":1613.4070461854096},"dragging":false,"style":{"width":193,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"7JNEx_cbqnAx3esvwZMOd","type":"subtopic","position":{"x":247.69846699906657,"y":1667.4070461854096},"selected":true,"data":{"label":"Load Testing","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"iNsXTtcIHsI_i-mCfjGYn"},"zIndex":999,"width":193,"height":49,"positionAbsolute":{"x":247.69846699906657,"y":1667.4070461854096},"dragging":false,"style":{"width":193,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"bEVCT5QGY3uw0kIfAELKh","type":"subtopic","position":{"x":248.4735203536439,"y":1861.446054725657},"selected":true,"data":{"label":"Mocking APIs","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"iNsXTtcIHsI_i-mCfjGYn"},"zIndex":999,"width":193,"height":49,"positionAbsolute":{"x":248.4735203536439,"y":1861.446054725657},"dragging":false,"style":{"width":193,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"NqeBglhzukVMMEF9p2CXc","type":"subtopic","position":{"x":248.4735203536439,"y":1915.446054725657},"selected":true,"data":{"label":"Contract Testing","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"iNsXTtcIHsI_i-mCfjGYn"},"zIndex":999,"width":193,"height":49,"positionAbsolute":{"x":248.4735203536439,"y":1915.446054725657},"dragging":false,"style":{"width":193,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"XD1vDtrRQFbLyKJaD1AlA","type":"subtopic","position":{"x":-585.469505701316,"y":1876.285812057839},"selected":true,"data":{"label":"Error Handling / Retries","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"boYX1QcJullypfX4sevdy"},"zIndex":999,"width":236,"height":49,"positionAbsolute":{"x":-585.469505701316,"y":1876.285812057839},"dragging":false,"style":{"width":236,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"JE12g5cqnwmgeTle14Vxw","type":"topic","position":{"x":35.36181272800661,"y":2095.4915595367556},"selected":true,"data":{"label":"Real-time APIs","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"At5exN7ZAx2IzY3cTCzHm"},"zIndex":999,"width":170,"height":49,"positionAbsolute":{"x":35.36181272800661,"y":2095.4915595367556},"dragging":false,"selectable":true,"focusable":true,"style":{"width":170,"height":49},"resizing":false},{"id":"UQ8N7gcVpRLAYXgUNHBt5","type":"subtopic","position":{"x":267.72110595703134,"y":2069.2728071916526},"selected":true,"data":{"label":"Web Sockets","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"iNsXTtcIHsI_i-mCfjGYn"},"zIndex":999,"width":193,"height":49,"positionAbsolute":{"x":267.72110595703134,"y":2069.2728071916526},"dragging":false,"style":{"width":193,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"iNsXTtcIHsI_i-mCfjGYn","type":"subtopic","position":{"x":267.72110595703134,"y":2123.2728071916526},"selected":true,"data":{"label":"Server Sent Events","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"nQpczZUcn-TvrfT80dv0Q"},"zIndex":999,"width":193,"height":49,"positionAbsolute":{"x":267.72110595703134,"y":2123.2728071916526},"dragging":false,"style":{"width":193,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"yvdfoly5WHHTq2Puss355","type":"topic","position":{"x":-363.31358688509135,"y":2210.5425435400516},"selected":true,"data":{"label":"Standards and Compliance","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"Wpk4TvxcZOJgAoXjrOsZF"},"zIndex":999,"width":271,"height":49,"positionAbsolute":{"x":-363.31358688509135,"y":2210.5425435400516},"dragging":false,"selectable":true,"focusable":true,"style":{"width":271,"height":49},"resizing":false},{"id":"vZxdswGLHCPi5GSuXEcHJ","type":"subtopic","position":{"x":-570.6112846237921,"y":2102.642324872653},"selected":true,"data":{"label":"GDPR","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"mXCKtLUvwVJkHrpHzOecq"},"zIndex":999,"width":123,"height":49,"positionAbsolute":{"x":-570.6112846237921,"y":2102.642324872653},"dragging":false,"style":{"width":123,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"At5exN7ZAx2IzY3cTCzHm","type":"topic","position":{"x":-361.55504561899306,"y":2095.4915595367556},"selected":true,"data":{"label":"API Lifecycle Management","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"yvdfoly5WHHTq2Puss355"},"zIndex":999,"width":267,"height":49,"positionAbsolute":{"x":-361.55504561899306,"y":2095.4915595367556},"dragging":false,"selectable":true,"focusable":true,"style":{"width":267,"height":49},"resizing":false},{"id":"a-_iIE7UdoXzD00fD9MxN","type":"subtopic","position":{"x":-570.6112846237921,"y":2156.642324872653},"selected":true,"data":{"label":"CCPA","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"mXCKtLUvwVJkHrpHzOecq"},"zIndex":999,"width":123,"height":49,"positionAbsolute":{"x":-570.6112846237921,"y":2156.642324872653},"dragging":false,"style":{"width":123,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"J0enF8UTVzY3H4n3pbPIF","type":"subtopic","position":{"x":-570.6112846237921,"y":2210.642324872653},"selected":true,"data":{"label":"PCI DSS","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"mXCKtLUvwVJkHrpHzOecq"},"zIndex":999,"width":123,"height":49,"positionAbsolute":{"x":-570.6112846237921,"y":2210.642324872653},"dragging":false,"style":{"width":123,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"W4WwTmgZGnWmiYsB0ezml","type":"subtopic","position":{"x":-568.8897926825906,"y":2264.642324872653},"selected":true,"data":{"label":"HIPAA","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"mXCKtLUvwVJkHrpHzOecq"},"zIndex":999,"width":123,"height":49,"positionAbsolute":{"x":-568.8897926825906,"y":2264.642324872653},"dragging":false,"style":{"width":123,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"mXCKtLUvwVJkHrpHzOecq","type":"subtopic","position":{"x":-570.6112846237921,"y":2318.642324872653},"selected":true,"data":{"label":"PII","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"X68HXAAV-nKo-V4Fu1o72"},"zIndex":999,"width":123,"height":49,"positionAbsolute":{"x":-570.6112846237921,"y":2318.642324872653},"dragging":false,"style":{"width":123,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"ETSZIZbfsiSgwpAS6HgGp","type":"vertical","position":{"x":-85.13818727199339,"y":-164.08481519539623},"selected":true,"data":{"label":"vertical node","style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2B78E4"}},"zIndex":999,"width":20,"height":94,"positionAbsolute":{"x":-85.13818727199339,"y":-164.08481519539623},"dragging":false,"style":{"width":20,"height":94},"resizing":false,"selectable":true,"focusable":true},{"id":"PstbOGqR_4C2WWV8CWXes","type":"linksgroup","position":{"x":-599.3135868850914,"y":-176.03181769055132},"selected":true,"data":{"label":"Related Roadmaps","links":[{"id":"3uv48fdglShh8YYF3zRWv","label":"Backend Roadmap","href":"","url":"https://roadmap.sh/backend"},{"id":"ZW1PEheVeJJiIPR08jfCr","label":"DevOps Roadmap","url":"https://roadmap.sh/devops"},{"id":"td_Z-sAuf092awd8U-VNG","label":"Full Stack Roadmap","url":"https://roadmap.sh/full-stack"}]},"zIndex":999,"width":303,"height":163,"positionAbsolute":{"x":-599.3135868850914,"y":-176.03181769055132},"dragging":false,"selectable":true,"focusable":true,"style":{"width":303,"height":163},"resizing":false},{"id":"yHmHXymPNWwu8p1vvqD3o","type":"paragraph","position":{"x":158.23571626420664,"y":-175.8282364125966},"selected":true,"data":{"label":"Find the detailed version of this roadmap along with other similar roadmaps","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"left","borderColor":"#000000"}},"zIndex":999,"width":354,"height":143,"positionAbsolute":{"x":158.23571626420664,"y":-175.8282364125966},"dragging":false,"selectable":true,"focusable":true,"style":{"width":354,"height":143},"resizing":false},{"id":"2zqZkyVgigifcRS1H7F_b","type":"button","position":{"x":171.43909067700685,"y":-93.84267299485134},"selected":true,"data":{"label":"roadmap.sh","href":"https://roadmap.sh","color":"#ffffff","backgroundColor":"#2a79e4","style":{"fontSize":17}},"zIndex":999,"width":329,"height":49,"dragging":false,"style":{"width":329,"height":49},"resizing":false,"positionAbsolute":{"x":171.43909067700685,"y":-93.84267299485134},"selectable":true,"focusable":true},{"id":"4fauwiq2CJnzDA7Z9Pmeo","type":"button","position":{"x":-139.18102870413122,"y":2429.279985574316},"selected":true,"data":{"label":"Backend Roadmap","href":"https://roadmap.sh/backend","color":"#ffffff","backgroundColor":"#2a79e4","style":{"fontSize":17},"oldId":"eYziHRN-gsg9qr8Yddu2K"},"zIndex":999,"width":196,"height":49,"positionAbsolute":{"x":-139.18102870413122,"y":2429.279985574316},"dragging":false,"selectable":true,"focusable":true,"style":{"width":196,"height":49},"resizing":false},{"id":"eYziHRN-gsg9qr8Yddu2K","type":"button","position":{"x":68.81897129586875,"y":2429.279985574316},"selected":true,"data":{"label":"DevOps Roadmap","href":"https://roadmap.sh/devops","color":"#ffffff","backgroundColor":"#2a79e4","style":{"fontSize":17}},"zIndex":999,"width":196,"height":49,"positionAbsolute":{"x":68.81897129586875,"y":2429.279985574316},"dragging":false,"selectable":true,"focusable":true,"style":{"width":196,"height":49},"resizing":false},{"id":"cV_O7RiFmpoI4f1o8lF4B","type":"vertical","position":{"x":56.53195030203017,"y":2493.4716162213053},"selected":true,"data":{"label":"vertical node","style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2B78E4"}},"zIndex":999,"width":20,"height":94,"positionAbsolute":{"x":56.53195030203017,"y":2493.4716162213053},"dragging":false,"style":{"width":20,"height":94},"resizing":false,"focusable":true,"selectable":true}],"edges":[{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"x2","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"JOhjYmVo9geZEMeeRPidh","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"z2","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"89g6rzK2JcZhJ1MAQra8R","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"z2","targetHandle":"y2","data":{"edgeStyle":"dashed"},"id":"xMpMq9rxn_DYslWm3_Efz","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"z2","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"-EP79fa9WRfTgvuq5FRaw","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"z2","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"1Qdcf_-7xas-XQldfLRjv","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"x2","targetHandle":"y1","data":{"edgeStyle":"solid"},"id":"CfFazuChYdU7GaJO_TolE","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"z2","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"74bGlBMuedspLPHnGV2LW","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"z2","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"XU7kv1zNr-yC063oqWlz2","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"x2","targetHandle":"w2","data":{"edgeStyle":"dashed"},"id":"swvSmJ6SyUFxK9fHwPJTF","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"w2","targetHandle":"x1","data":{"edgeStyle":"dashed"},"id":"-URcDxULzdZbiMbEx8bBe","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"y2","targetHandle":"w1","data":{"edgeStyle":"solid"},"selected":true,"id":"_k4274GmDVM-MViCSYN6K","focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"y2","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"Tf3d_J21EhC-bcfpqV_o5","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"y2","targetHandle":"z2","data":{"edgeStyle":"dashed"},"id":"gRouAKXdfT8XQV_nzA-wA","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"x2","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"BgmVdQyd7i1SrZj0forT9","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"AZoEY2N7PqAQgUl04E3KF","sourceHandle":"x2","target":"duKkpzPjUU_-8kyJGHqRX","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"1a_QvZPscaIyRxhKH7p-K","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"duKkpzPjUU_-8kyJGHqRX","sourceHandle":"y2","target":"r8M3quACGO2piu0u_R4hO","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"cWesUDXpvCzBEu5BpXefC","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"duKkpzPjUU_-8kyJGHqRX","sourceHandle":"y2","target":"2HdKzAIQi15pr3YHHrbPp","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"CVsFgRPHi9vaQWTqSrbFF","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"duKkpzPjUU_-8kyJGHqRX","sourceHandle":"z2","target":"P-rGIk50Bg7nFmWieAW07","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"AWgpOpfFNBRrSi_K8RPQg","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"duKkpzPjUU_-8kyJGHqRX","sourceHandle":"z2","target":"TX_hg7EobNJhmWKsMCaT1","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"uJadhS5nJBYewb-YSy7zE","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"GRlsBogOlOwuqhMMPyHN3","sourceHandle":"z2","target":"GRlsBogOlOwuqhMMPyHN3","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-KQAus72RGqx5f-3-YeJbyz2-KQAus72RGqx5f-3-YeJbyz1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"duKkpzPjUU_-8kyJGHqRX","sourceHandle":"z2","target":"KG3wO86F8Of27fU7QRcsn","targetHandle":"y2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-awdoiCHz7Yc3kYac_iy-az2-KG3wO86F8Of27fU7QRcsny2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"duKkpzPjUU_-8kyJGHqRX","sourceHandle":"z2","target":"v4nJYD9yiIEUviLPhVTCD","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-awdoiCHz7Yc3kYac_iy-az2-MKVcPM2EzAr2_Ieyp9Fu3y1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"duKkpzPjUU_-8kyJGHqRX","sourceHandle":"x2","target":"o8i093VQv-T5Qf1yGqU0R","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-duKkpzPjUU_-8kyJGHqRXx2-awdoiCHz7Yc3kYac_iy-aw1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"o8i093VQv-T5Qf1yGqU0R","sourceHandle":"x2","target":"wTrcPqj0KpoeOvJf7k3iI","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-awdoiCHz7Yc3kYac_iy-ax2-wTrcPqj0KpoeOvJf7k3iIw1","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"o8i093VQv-T5Qf1yGqU0R","sourceHandle":"z2","target":"awdoiCHz7Yc3kYac_iy-a","targetHandle":"y1","data":{"edgeStyle":"solid"},"selected":true,"selectable":true,"focusable":true,"id":"reactflow__edge-5R9yKfN1vItuv__HgCwP7z2-awdoiCHz7Yc3kYac_iy-ay1"},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"awdoiCHz7Yc3kYac_iy-a","sourceHandle":"w2","target":"junprE7dbMyeovApqhSgr","targetHandle":"x1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-awdoiCHz7Yc3kYac_iy-aw2-junprE7dbMyeovApqhSgrx1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"awdoiCHz7Yc3kYac_iy-a","sourceHandle":"x2","target":"iHtjFSkQWMoUNdltNttEd","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-awdoiCHz7Yc3kYac_iy-ax2-iHtjFSkQWMoUNdltNttEdw1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"8tELdagrOaGCf3nMVs8t3","sourceHandle":"y2","target":"5CxU3inGcSHp-TDg3BQiY","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-8tELdagrOaGCf3nMVs8t3y2-5CxU3inGcSHp-TDg3BQiYz1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"awdoiCHz7Yc3kYac_iy-a","sourceHandle":"y2","target":"eUsorPQ8VRLJs28J8dyk2","targetHandle":"z1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-awdoiCHz7Yc3kYac_iy-ay2-eUsorPQ8VRLJs28J8dyk2z1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"eUsorPQ8VRLJs28J8dyk2","sourceHandle":"y2","target":"cQnQ9v3mH27MGNwetz3JW","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-eUsorPQ8VRLJs28J8dyk2y2-5R9yKfN1vItuv__HgCwP7w1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"cQnQ9v3mH27MGNwetz3JW","sourceHandle":"x2","target":"cGWZQjKazJQ0D3nz_AdAX","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-5R9yKfN1vItuv__HgCwP7x2-cGWZQjKazJQ0D3nz_AdAXw1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"cQnQ9v3mH27MGNwetz3JW","sourceHandle":"z2","target":"nHbn8_sMY7J8o6ckbD-ER","targetHandle":"y1","data":{"edgeStyle":"solid"},"selected":true,"id":"reactflow__edge-cQnQ9v3mH27MGNwetz3JWz2-5R9yKfN1vItuv__HgCwP7y1","selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"nHbn8_sMY7J8o6ckbD-ER","sourceHandle":"z2","target":"wFsbmMi5Ey9UyDADdbdPW","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-5R9yKfN1vItuv__HgCwP7z2-wFsbmMi5Ey9UyDADdbdPWy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"nHbn8_sMY7J8o6ckbD-ER","sourceHandle":"z2","target":"dZTe_kxIUQsc9N3w920aR","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-5R9yKfN1vItuv__HgCwP7z2-dZTe_kxIUQsc9N3w920aRy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"nHbn8_sMY7J8o6ckbD-ER","sourceHandle":"x2","target":"tzUJwXu_scwQHnPPT0oY-","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-nHbn8_sMY7J8o6ckbD-ERx2-5R9yKfN1vItuv__HgCwP7w1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"tzUJwXu_scwQHnPPT0oY-","sourceHandle":"z2","target":"5R9yKfN1vItuv__HgCwP7","targetHandle":"y2","data":{"edgeStyle":"solid"},"id":"reactflow__edge-Wpk4TvxcZOJgAoXjrOsZFz2-5R9yKfN1vItuv__HgCwP7y2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"5R9yKfN1vItuv__HgCwP7","sourceHandle":"x2","target":"RkPVaSF9XnX6uHUns_-oC","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-5R9yKfN1vItuv__HgCwP7x2-RkPVaSF9XnX6uHUns_-oCw1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"5R9yKfN1vItuv__HgCwP7","sourceHandle":"y2","target":"qIJ6dUppjAjOTA8eQbp0n","targetHandle":"z1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-5R9yKfN1vItuv__HgCwP7y2-Wpk4TvxcZOJgAoXjrOsZFz1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"qIJ6dUppjAjOTA8eQbp0n","sourceHandle":"w2","target":"ludceg3fQVkilNTKWznti","targetHandle":"x1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-Wpk4TvxcZOJgAoXjrOsZFw2-ludceg3fQVkilNTKWzntix1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"q1yaf-RbHIQsOqfzjn4k4","sourceHandle":"y2","target":"92-ebM0EwQ3nLjZKtvCZX","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-q1yaf-RbHIQsOqfzjn4k4y2-MSeNU5cURBInhPlvnhVfOz1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"qIJ6dUppjAjOTA8eQbp0n","sourceHandle":"y2","target":"d9ZXdU73jiCdeNHQv1_DH","targetHandle":"z1","data":{"edgeStyle":"solid"},"selected":true,"selectable":true,"focusable":true,"id":"reactflow__edge-qIJ6dUppjAjOTA8eQbp0ny2-Wpk4TvxcZOJgAoXjrOsZFz1"},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"d9ZXdU73jiCdeNHQv1_DH","sourceHandle":"w2","target":"MSeNU5cURBInhPlvnhVfO","targetHandle":"x1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-Wpk4TvxcZOJgAoXjrOsZFw2-MSeNU5cURBInhPlvnhVfOx1","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"d9ZXdU73jiCdeNHQv1_DH","sourceHandle":"x2","target":"o3XFXW2HHLBoxlbEnoWdZ","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-Wpk4TvxcZOJgAoXjrOsZFx2-o3XFXW2HHLBoxlbEnoWdZw1","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"d9ZXdU73jiCdeNHQv1_DH","sourceHandle":"z2","target":"R3aRhqCslwhegMfHtxg5z","targetHandle":"y1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-d9ZXdU73jiCdeNHQv1_DHz2-Wpk4TvxcZOJgAoXjrOsZFy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"x2","target":"kJD1K2-ZkoezFCfpmOM0Z","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"pQSbDAqEripuhCsgK5XMD","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"R3aRhqCslwhegMfHtxg5z","sourceHandle":"x2","target":"kJD1K2-ZkoezFCfpmOM0Z","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-Wpk4TvxcZOJgAoXjrOsZFx2-kJD1K2-ZkoezFCfpmOM0Zw1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"IkPZel5zxXWIx90Qx7fZI","sourceHandle":"y2","target":"H22jAI2W5QLL-b1rq-c56","targetHandle":"z2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-mXCKtLUvwVJkHrpHzOecqy2-H22jAI2W5QLL-b1rq-c56z2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"IkPZel5zxXWIx90Qx7fZI","sourceHandle":"y2","target":"boYX1QcJullypfX4sevdy","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-mXCKtLUvwVJkHrpHzOecqy2-boYX1QcJullypfX4sevdyz1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"Wpk4TvxcZOJgAoXjrOsZF","sourceHandle":"w2","target":"zL4QEM5xZO8XWXXWrdPuj","targetHandle":"x1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-Wpk4TvxcZOJgAoXjrOsZFw2-zL4QEM5xZO8XWXXWrdPujx1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"R3aRhqCslwhegMfHtxg5z","sourceHandle":"z2","target":"Wpk4TvxcZOJgAoXjrOsZF","targetHandle":"y1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-yvdfoly5WHHTq2Puss355z2-Wpk4TvxcZOJgAoXjrOsZFy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"x2","target":"SP-d4YngpYXkeIB9SSD-K","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"glDT_FnQTOOAyIAPLWFZW","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"Wpk4TvxcZOJgAoXjrOsZF","sourceHandle":"x2","target":"bEVCT5QGY3uw0kIfAELKh","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-Wpk4TvxcZOJgAoXjrOsZFx2-bEVCT5QGY3uw0kIfAELKhw1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"Wpk4TvxcZOJgAoXjrOsZF","sourceHandle":"y2","target":"JE12g5cqnwmgeTle14Vxw","targetHandle":"w1","data":{"edgeStyle":"solid"},"selected":true,"id":"reactflow__edge-Wpk4TvxcZOJgAoXjrOsZFy2-yvdfoly5WHHTq2Puss355w1","selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"JE12g5cqnwmgeTle14Vxw","sourceHandle":"z2","target":"UQ8N7gcVpRLAYXgUNHBt5","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-yvdfoly5WHHTq2Puss355z2-UQ8N7gcVpRLAYXgUNHBt5y1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"JE12g5cqnwmgeTle14Vxw","sourceHandle":"z2","target":"iNsXTtcIHsI_i-mCfjGYn","targetHandle":"y2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-yvdfoly5WHHTq2Puss355z2-iNsXTtcIHsI_i-mCfjGYny2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"JE12g5cqnwmgeTle14Vxw","sourceHandle":"y2","target":"At5exN7ZAx2IzY3cTCzHm","targetHandle":"z2","data":{"edgeStyle":"solid"},"id":"reactflow__edge-JE12g5cqnwmgeTle14Vxwy2-At5exN7ZAx2IzY3cTCzHmz2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"At5exN7ZAx2IzY3cTCzHm","sourceHandle":"x2","target":"yvdfoly5WHHTq2Puss355","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-At5exN7ZAx2IzY3cTCzHmx2-yvdfoly5WHHTq2Puss355w1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"yvdfoly5WHHTq2Puss355","sourceHandle":"y2","target":"vZxdswGLHCPi5GSuXEcHJ","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-yvdfoly5WHHTq2Puss355y2-vZxdswGLHCPi5GSuXEcHJz1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"yvdfoly5WHHTq2Puss355","sourceHandle":"y2","target":"a-_iIE7UdoXzD00fD9MxN","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-yvdfoly5WHHTq2Puss355y2-a-_iIE7UdoXzD00fD9MxNz1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"yvdfoly5WHHTq2Puss355","sourceHandle":"y2","target":"J0enF8UTVzY3H4n3pbPIF","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-yvdfoly5WHHTq2Puss355y2-J0enF8UTVzY3H4n3pbPIFz1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"yvdfoly5WHHTq2Puss355","sourceHandle":"y2","target":"W4WwTmgZGnWmiYsB0ezml","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-yvdfoly5WHHTq2Puss355y2-W4WwTmgZGnWmiYsB0ezmlz1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"yvdfoly5WHHTq2Puss355","sourceHandle":"y2","target":"mXCKtLUvwVJkHrpHzOecq","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-yvdfoly5WHHTq2Puss355y2-mXCKtLUvwVJkHrpHzOecqz1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"yvdfoly5WHHTq2Puss355","sourceHandle":"z2","target":"jXtqI8k4Abz-vr01IcpWL","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-yvdfoly5WHHTq2Puss355z2-jXtqI8k4Abz-vr01IcpWLw1","selected":true,"type":"step","selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"yvdfoly5WHHTq2Puss355","sourceHandle":"z2","target":"XzXLGjJr2F8Ln7gP0e5N8","targetHandle":"w2","data":{"edgeStyle":"solid"},"id":"reactflow__edge-yvdfoly5WHHTq2Puss355z2-XzXLGjJr2F8Ln7gP0e5N8w2","selected":true,"type":"step","focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"MKVcPM2EzAr2_Ieyp9Fu3","sourceHandle":"y2","target":"iA0C1mFlM_73GcL9XNJmF","targetHandle":"z1","data":{"edgeStyle":"solid"},"selected":true,"selectable":true,"focusable":true,"id":"reactflow__edge-MKVcPM2EzAr2_Ieyp9Fu3y2-iA0C1mFlM_73GcL9XNJmFz1"}]}
\ No newline at end of file
+{
+ "nodes": [
+ {
+ "id": "SP-d4YngpYXkeIB9SSD-K",
+ "type": "section",
+ "position": {
+ "x": 240.93596412339082,
+ "y": 1861.570310981244
+ },
+ "selected": true,
+ "data": {
+ "label": "",
+ "style": {
+ "width": 150,
+ "height": 100,
+ "fontSize": 17,
+ "borderColor": "TRANSPARENt",
+ "backgroundColor": "TRANSPARENt"
+ },
+ "oldId": "7s60T3OiXeo29-xN6fGjJ"
+ },
+ "zIndex": -999,
+ "width": 202,
+ "height": 114,
+ "style": {
+ "width": 202,
+ "height": 114
+ },
+ "positionAbsolute": {
+ "x": 240.93596412339082,
+ "y": 1861.570310981244
+ },
+ "dragging": false,
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "XzXLGjJr2F8Ln7gP0e5N8",
+ "type": "paragraph",
+ "position": {
+ "x": -151.46804969796983,
+ "y": 2375.4716162213053
+ },
+ "selected": true,
+ "data": {
+ "label": "Continue Learning with following relevant tracks",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center",
+ "borderColor": "#000000"
+ },
+ "oldId": "jXtqI8k4Abz-vr01IcpWL"
+ },
+ "zIndex": 999,
+ "width": 436,
+ "height": 118,
+ "positionAbsolute": {
+ "x": -151.46804969796983,
+ "y": 2375.4716162213053
+ },
+ "dragging": false,
+ "style": {
+ "width": 436,
+ "height": 118
+ },
+ "resizing": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "zL4QEM5xZO8XWXXWrdPuj",
+ "type": "section",
+ "position": {
+ "x": 244.19846699906657,
+ "y": 1501.3654630729577
+ },
+ "selected": true,
+ "data": {
+ "label": "",
+ "style": {
+ "width": 150,
+ "height": 100,
+ "fontSize": 17,
+ "borderColor": "TRANSPARENt",
+ "backgroundColor": "TRANSPARENt"
+ }
+ },
+ "zIndex": -999,
+ "width": 200,
+ "height": 217,
+ "style": {
+ "width": 200,
+ "height": 217
+ },
+ "positionAbsolute": {
+ "x": 244.19846699906657,
+ "y": 1501.3654630729577
+ },
+ "dragging": false,
+ "resizing": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "o3XFXW2HHLBoxlbEnoWdZ",
+ "type": "section",
+ "position": {
+ "x": -592.469505701316,
+ "y": 1567.7437339754388
+ },
+ "selected": true,
+ "data": {
+ "label": "",
+ "style": {
+ "width": 150,
+ "height": 100,
+ "fontSize": 17,
+ "backgroundColor": "TRANSPARENt",
+ "borderColor": "TRANSPARENt"
+ }
+ },
+ "zIndex": -999,
+ "width": 247,
+ "height": 381,
+ "style": {
+ "width": 247,
+ "height": 381
+ },
+ "positionAbsolute": {
+ "x": -592.469505701316,
+ "y": 1567.7437339754388
+ },
+ "dragging": false,
+ "resizing": false,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "id": "ludceg3fQVkilNTKWznti",
+ "type": "section",
+ "position": {
+ "x": -210.7109644352177,
+ "y": 1239.744561558562
+ },
+ "selected": true,
+ "data": {
+ "label": "",
+ "style": {
+ "width": 150,
+ "height": 100,
+ "fontSize": 17,
+ "backgroundColor": "TRANSPARENt",
+ "borderColor": "TRANSPARENt"
+ }
+ },
+ "zIndex": -999,
+ "width": 252,
+ "height": 114,
+ "style": {
+ "width": 252,
+ "height": 114
+ },
+ "positionAbsolute": {
+ "x": -210.7109644352177,
+ "y": 1239.744561558562
+ },
+ "dragging": false,
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "RkPVaSF9XnX6uHUns_-oC",
+ "type": "section",
+ "position": {
+ "x": 228.3676576847514,
+ "y": 1267.1153073402706
+ },
+ "selected": true,
+ "data": {
+ "label": "",
+ "style": {
+ "width": 150,
+ "height": 100,
+ "fontSize": 17,
+ "borderColor": "TRANSPARENt"
+ }
+ },
+ "zIndex": -999,
+ "width": 219,
+ "height": 235,
+ "style": {
+ "width": 219,
+ "height": 235
+ },
+ "positionAbsolute": {
+ "x": 228.3676576847514,
+ "y": 1267.1153073402706
+ },
+ "dragging": false,
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "cGWZQjKazJQ0D3nz_AdAX",
+ "type": "section",
+ "position": {
+ "x": -593.4010478029121,
+ "y": 982.3357132591475
+ },
+ "selected": true,
+ "data": {
+ "label": "",
+ "style": {
+ "width": 150,
+ "height": 100,
+ "fontSize": 17,
+ "borderColor": "TRANSPARENt",
+ "backgroundColor": "TRANSPARENt"
+ }
+ },
+ "zIndex": -999,
+ "width": 230,
+ "height": 279,
+ "style": {
+ "width": 230,
+ "height": 279
+ },
+ "resizing": true,
+ "dragging": false,
+ "positionAbsolute": {
+ "x": -593.4010478029121,
+ "y": 982.3357132591475
+ },
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "iHtjFSkQWMoUNdltNttEd",
+ "type": "section",
+ "position": {
+ "x": 219.72110595703134,
+ "y": 644.8914213180542
+ },
+ "selected": true,
+ "data": {
+ "label": "",
+ "style": {
+ "width": 150,
+ "height": 100,
+ "fontSize": 17,
+ "backgroundColor": "TRANSPARENt",
+ "borderColor": "TRANSPARENt"
+ }
+ },
+ "zIndex": -999,
+ "width": 268,
+ "height": 297,
+ "style": {
+ "width": 268,
+ "height": 297
+ },
+ "positionAbsolute": {
+ "x": 219.72110595703134,
+ "y": 644.8914213180542
+ },
+ "dragging": false,
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "junprE7dbMyeovApqhSgr",
+ "type": "section",
+ "position": {
+ "x": 219.22110595703134,
+ "y": 281.3914213180542
+ },
+ "selected": true,
+ "data": {
+ "label": "",
+ "style": {
+ "width": 150,
+ "height": 100,
+ "fontSize": 17,
+ "backgroundColor": "TRANSPARENt",
+ "borderColor": "TRANSPARENt"
+ }
+ },
+ "zIndex": -999,
+ "width": 269,
+ "height": 228,
+ "style": {
+ "width": 269,
+ "height": 228
+ },
+ "positionAbsolute": {
+ "x": 219.22110595703134,
+ "y": 281.3914213180542
+ },
+ "dragging": false,
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "wTrcPqj0KpoeOvJf7k3iI",
+ "type": "section",
+ "position": {
+ "x": -206.8881872719935,
+ "y": 451.40074822234897
+ },
+ "selected": true,
+ "data": {
+ "label": "",
+ "style": {
+ "width": 150,
+ "height": 100,
+ "fontSize": 17,
+ "backgroundColor": "TRANSPARENt",
+ "borderColor": "TRANSPARENt"
+ }
+ },
+ "zIndex": -999,
+ "width": 266,
+ "height": 234,
+ "style": {
+ "width": 266,
+ "height": 234
+ },
+ "positionAbsolute": {
+ "x": -206.8881872719935,
+ "y": 451.40074822234897
+ },
+ "dragging": false,
+ "resizing": false,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "id": "IzMY2P54llvbVixWxAl7H",
+ "type": "section",
+ "position": {
+ "x": -571.1381872719934,
+ "y": 123.90074822234897
+ },
+ "selected": true,
+ "data": {
+ "label": "",
+ "style": {
+ "width": 150,
+ "height": 100,
+ "fontSize": 17
+ },
+ "oldId": "wOyWgfUDwC3ORsLI8H5A0"
+ },
+ "zIndex": -999,
+ "width": 232,
+ "height": 437,
+ "style": {
+ "width": 232,
+ "height": 437
+ },
+ "positionAbsolute": {
+ "x": -571.1381872719934,
+ "y": 123.90074822234897
+ },
+ "dragging": false,
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "AZoEY2N7PqAQgUl04E3KF",
+ "type": "title",
+ "position": {
+ "x": -178.6381872719934,
+ "y": -57.599251777651034
+ },
+ "selected": true,
+ "data": {
+ "label": "Building APIs",
+ "style": {
+ "fontSize": 28,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "EhPhMi4v4KT3vEUrInsxF"
+ },
+ "zIndex": 999,
+ "width": 207,
+ "height": 68,
+ "dragging": false,
+ "positionAbsolute": {
+ "x": -178.6381872719934,
+ "y": -57.599251777651034
+ },
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "duKkpzPjUU_-8kyJGHqRX",
+ "type": "topic",
+ "position": {
+ "x": -198.1381872719934,
+ "y": 123.40074822234897
+ },
+ "selected": true,
+ "data": {
+ "label": "Learn the Basics",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "awdoiCHz7Yc3kYac_iy-a"
+ },
+ "zIndex": 999,
+ "width": 246,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -198.1381872719934,
+ "y": 123.40074822234897
+ },
+ "dragging": false,
+ "selectable": true,
+ "focusable": true,
+ "style": {
+ "width": 246,
+ "height": 49
+ },
+ "resizing": false
+ },
+ {
+ "id": "r8M3quACGO2piu0u_R4hO",
+ "type": "subtopic",
+ "position": {
+ "x": -570.1381872719934,
+ "y": 63.400748222348966
+ },
+ "selected": true,
+ "data": {
+ "label": "What are APIs",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "Wghrrm4Riz2t7F41H5GK-"
+ },
+ "zIndex": 999,
+ "width": 232,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -570.1381872719934,
+ "y": 63.400748222348966
+ },
+ "dragging": false,
+ "style": {
+ "width": 232,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "2HdKzAIQi15pr3YHHrbPp",
+ "type": "subtopic",
+ "position": {
+ "x": -571.1381872719934,
+ "y": 122.60000000000008
+ },
+ "selected": true,
+ "data": {
+ "label": "HTTP",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "mbDiNvkeYo9v3T_DN5uNl"
+ },
+ "zIndex": 999,
+ "width": 232,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -571.1381872719934,
+ "y": 122.60000000000008
+ },
+ "dragging": false,
+ "style": {
+ "width": 232,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "ACALE93mL4gnX5ThRIdRp",
+ "type": "subtopic",
+ "position": {
+ "x": -560.6381872719934,
+ "y": 183.90074822234897
+ },
+ "selected": true,
+ "data": {
+ "label": "HTTP Versions",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "p0C6D4Rt2y_U9atm7X_kt"
+ },
+ "zIndex": 999,
+ "width": 210,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -560.6381872719934,
+ "y": 183.90074822234897
+ },
+ "selectable": true,
+ "focusable": true,
+ "dragging": false,
+ "style": {
+ "width": 210,
+ "height": 49
+ },
+ "resizing": true
+ },
+ {
+ "id": "rADHM-6NAxEjzmgiHefDX",
+ "type": "subtopic",
+ "position": {
+ "x": -560.6381872719934,
+ "y": 236.40074822234897
+ },
+ "selected": true,
+ "data": {
+ "label": "HTTP Methods",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "ZGD2Y4TgLOzn-mDEhZGXX"
+ },
+ "zIndex": 999,
+ "width": 210,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -560.6381872719934,
+ "y": 236.40074822234897
+ },
+ "selectable": true,
+ "focusable": true,
+ "dragging": false,
+ "style": {
+ "width": 210,
+ "height": 49
+ }
+ },
+ {
+ "id": "7szYyzLifKsepNU0c2KnN",
+ "type": "subtopic",
+ "position": {
+ "x": -560.6381872719934,
+ "y": 288.90074822234897
+ },
+ "selected": true,
+ "data": {
+ "label": "HTTP Status Codes",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "--pZRMVsKFEAhMIgDpGwC"
+ },
+ "zIndex": 999,
+ "width": 210,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -560.6381872719934,
+ "y": 288.90074822234897
+ },
+ "selectable": true,
+ "focusable": true,
+ "dragging": false,
+ "style": {
+ "width": 210,
+ "height": 49
+ }
+ },
+ {
+ "id": "rE-0yibRH6B2UBKp351cf",
+ "type": "subtopic",
+ "position": {
+ "x": -560.6381872719934,
+ "y": 341.40074822234897
+ },
+ "selected": true,
+ "data": {
+ "label": "HTTP Headers",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "3iwD_eyT4XZRQNIorTF3a"
+ },
+ "zIndex": 999,
+ "width": 210,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -560.6381872719934,
+ "y": 341.40074822234897
+ },
+ "selectable": true,
+ "focusable": true,
+ "dragging": false,
+ "style": {
+ "width": 210,
+ "height": 49
+ }
+ },
+ {
+ "id": "P-rGIk50Bg7nFmWieAW07",
+ "type": "subtopic",
+ "position": {
+ "x": 197.8618127280065,
+ "y": 52.100748222348955
+ },
+ "selected": true,
+ "data": {
+ "label": "URL, Query & Path Parameters",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "aBXHVaEfcChnyF4FPlqHp"
+ },
+ "zIndex": 999,
+ "width": 283,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 197.8618127280065,
+ "y": 52.100748222348955
+ },
+ "dragging": false,
+ "style": {
+ "width": 283,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "UFuX8wcxZQ7dvaQF_2Yp8",
+ "type": "subtopic",
+ "position": {
+ "x": -560.6381872719934,
+ "y": 393.90074822234897
+ },
+ "selected": true,
+ "data": {
+ "label": "Cookies",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "2tNyxd-8rFQoOsQIClP4O"
+ },
+ "zIndex": 999,
+ "width": 210,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -560.6381872719934,
+ "y": 393.90074822234897
+ },
+ "dragging": false,
+ "style": {
+ "width": 210,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "TX_hg7EobNJhmWKsMCaT1",
+ "type": "subtopic",
+ "position": {
+ "x": 197.8618127280065,
+ "y": 106.10074822234895
+ },
+ "selected": true,
+ "data": {
+ "label": "Content Negotiation",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "MKVcPM2EzAr2_Ieyp9Fu3"
+ },
+ "zIndex": 999,
+ "width": 283,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 197.8618127280065,
+ "y": 106.10074822234895
+ },
+ "dragging": false,
+ "style": {
+ "width": 283,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "GRlsBogOlOwuqhMMPyHN3",
+ "type": "subtopic",
+ "position": {
+ "x": -559.6381872719934,
+ "y": 446.40074822234897
+ },
+ "selected": true,
+ "data": {
+ "label": "CORS",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "KQAus72RGqx5f-3-YeJby"
+ },
+ "zIndex": 999,
+ "width": 210,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -559.6381872719934,
+ "y": 446.40074822234897
+ },
+ "dragging": false,
+ "style": {
+ "width": 210,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "KG3wO86F8Of27fU7QRcsn",
+ "type": "subtopic",
+ "position": {
+ "x": 197.8618127280065,
+ "y": 160.10074822234895
+ },
+ "selected": true,
+ "data": {
+ "label": "Understand TCP / IP",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "MKVcPM2EzAr2_Ieyp9Fu3"
+ },
+ "zIndex": 999,
+ "width": 283,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 197.8618127280065,
+ "y": 160.10074822234895
+ },
+ "dragging": false,
+ "style": {
+ "width": 283,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "v4nJYD9yiIEUviLPhVTCD",
+ "type": "subtopic",
+ "position": {
+ "x": 197.8618127280065,
+ "y": 214.10074822234895
+ },
+ "selected": true,
+ "data": {
+ "label": "Basics of DNS",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "5CxU3inGcSHp-TDg3BQiY"
+ },
+ "zIndex": 999,
+ "width": 283,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 197.8618127280065,
+ "y": 214.10074822234895
+ },
+ "dragging": false,
+ "style": {
+ "width": 283,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "o8i093VQv-T5Qf1yGqU0R",
+ "type": "topic",
+ "position": {
+ "x": -198.1381872719934,
+ "y": 330.40074822234897
+ },
+ "selected": true,
+ "data": {
+ "label": "Different API Styles",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "5R9yKfN1vItuv__HgCwP7"
+ },
+ "zIndex": 999,
+ "width": 246,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -198.1381872719934,
+ "y": 330.40074822234897
+ },
+ "dragging": false,
+ "selectable": true,
+ "focusable": true,
+ "style": {
+ "width": 246,
+ "height": 49
+ },
+ "resizing": false
+ },
+ {
+ "id": "BvwdASMvuNQ9DNgzdSZ4o",
+ "type": "subtopic",
+ "position": {
+ "x": -196.3881872719935,
+ "y": 453.90074822234897
+ },
+ "selected": true,
+ "data": {
+ "label": "RESTful APIs",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "MKVcPM2EzAr2_Ieyp9Fu3"
+ },
+ "zIndex": 999,
+ "width": 245,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -196.3881872719935,
+ "y": 453.90074822234897
+ },
+ "dragging": false,
+ "style": {
+ "width": 245,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "TVR-SkErlOHbDKLBGfxep",
+ "type": "subtopic",
+ "position": {
+ "x": -196.3881872719935,
+ "y": 507.90074822234897
+ },
+ "selected": true,
+ "data": {
+ "label": "Simple JSON APIs",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "MKVcPM2EzAr2_Ieyp9Fu3"
+ },
+ "zIndex": 999,
+ "width": 245,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -196.3881872719935,
+ "y": 507.90074822234897
+ },
+ "dragging": false,
+ "style": {
+ "width": 245,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "Wwd-0PjrtViMFWxRGaQey",
+ "type": "subtopic",
+ "position": {
+ "x": -196.3881872719935,
+ "y": 561.900748222349
+ },
+ "selected": true,
+ "data": {
+ "label": "SOAP APIs",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "MKVcPM2EzAr2_Ieyp9Fu3"
+ },
+ "zIndex": 999,
+ "width": 245,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -196.3881872719935,
+ "y": 561.900748222349
+ },
+ "dragging": false,
+ "style": {
+ "width": 245,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "MKVcPM2EzAr2_Ieyp9Fu3",
+ "type": "subtopic",
+ "position": {
+ "x": -196.3881872719935,
+ "y": 615.900748222349
+ },
+ "selected": true,
+ "data": {
+ "label": "GraphQL APIs",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "WVSgaWgGJKqJYumpdPTCG"
+ },
+ "zIndex": 999,
+ "width": 245,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -196.3881872719935,
+ "y": 615.900748222349
+ },
+ "dragging": false,
+ "style": {
+ "width": 245,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "iA0C1mFlM_73GcL9XNJmF",
+ "type": "button",
+ "position": {
+ "x": -576.1381872719934,
+ "y": 615.900748222349
+ },
+ "selected": true,
+ "data": {
+ "label": "Visit GraphQL Roadmap",
+ "href": "https://roadmap.sh/graphql",
+ "color": "#ffffff",
+ "backgroundColor": "#2a79e4",
+ "style": {
+ "fontSize": 17
+ },
+ "oldId": "MSeNU5cURBInhPlvnhVfO"
+ },
+ "zIndex": 999,
+ "width": 244,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -576.1381872719934,
+ "y": 615.900748222349
+ },
+ "dragging": false,
+ "style": {
+ "width": 244,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "awdoiCHz7Yc3kYac_iy-a",
+ "type": "topic",
+ "position": {
+ "x": 212.7618127280066,
+ "y": 548.400748222349
+ },
+ "selected": true,
+ "data": {
+ "label": "Building JSON / RESTful APIs",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "qHEzyDhqjQSa6vs5UDm_M"
+ },
+ "zIndex": 999,
+ "width": 282,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 212.7618127280066,
+ "y": 548.400748222349
+ },
+ "dragging": false,
+ "selectable": true,
+ "focusable": true,
+ "style": {
+ "width": 282,
+ "height": 49
+ },
+ "resizing": false
+ },
+ {
+ "id": "9WI_z34jIFXwoUQuChyRU",
+ "type": "subtopic",
+ "position": {
+ "x": 223.2618127280066,
+ "y": 290.40074822234897
+ },
+ "selected": true,
+ "data": {
+ "label": "REST Principles",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "5CxU3inGcSHp-TDg3BQiY"
+ },
+ "zIndex": 999,
+ "width": 261,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 223.2618127280066,
+ "y": 290.40074822234897
+ },
+ "dragging": false,
+ "style": {
+ "width": 261,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "b3qRTLwCC_9uDoPGrd9Bu",
+ "type": "subtopic",
+ "position": {
+ "x": 223.2618127280066,
+ "y": 344.40074822234897
+ },
+ "selected": true,
+ "data": {
+ "label": "URI Design",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "5CxU3inGcSHp-TDg3BQiY"
+ },
+ "zIndex": 999,
+ "width": 261,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 223.2618127280066,
+ "y": 344.40074822234897
+ },
+ "dragging": false,
+ "style": {
+ "width": 261,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "itILK2SXvLvAjk1Kul7EK",
+ "type": "subtopic",
+ "position": {
+ "x": 223.2618127280066,
+ "y": 398.40074822234897
+ },
+ "selected": true,
+ "data": {
+ "label": "Versioning Strategies",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "zXxEiM5HeOn7W-Vue0tQf"
+ },
+ "zIndex": 999,
+ "width": 261,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 223.2618127280066,
+ "y": 398.40074822234897
+ },
+ "dragging": false,
+ "style": {
+ "width": 261,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "pgJDzP3pJjhjr5wTRtPJO",
+ "type": "subtopic",
+ "position": {
+ "x": 223.2618127280066,
+ "y": 649.400748222349
+ },
+ "selected": true,
+ "data": {
+ "label": "Pagination",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "5CxU3inGcSHp-TDg3BQiY"
+ },
+ "zIndex": 999,
+ "width": 261,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 223.2618127280066,
+ "y": 649.400748222349
+ },
+ "dragging": false,
+ "style": {
+ "width": 261,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "O7wjldZ3yTA2s_F-UnJw_",
+ "type": "subtopic",
+ "position": {
+ "x": 223.2618127280066,
+ "y": 703.400748222349
+ },
+ "selected": true,
+ "data": {
+ "label": "Rate Limiting",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "5CxU3inGcSHp-TDg3BQiY"
+ },
+ "zIndex": 999,
+ "width": 261,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 223.2618127280066,
+ "y": 703.400748222349
+ },
+ "dragging": false,
+ "style": {
+ "width": 261,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "20KEgZH6cu_UokqWpV-9I",
+ "type": "subtopic",
+ "position": {
+ "x": 223.2618127280066,
+ "y": 757.400748222349
+ },
+ "selected": true,
+ "data": {
+ "label": "Idempotency",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "5CxU3inGcSHp-TDg3BQiY"
+ },
+ "zIndex": 999,
+ "width": 261,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 223.2618127280066,
+ "y": 757.400748222349
+ },
+ "dragging": false,
+ "style": {
+ "width": 261,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "LByD1vhzunhY1uY1YGZHP",
+ "type": "subtopic",
+ "position": {
+ "x": 223.2618127280066,
+ "y": 811.400748222349
+ },
+ "selected": true,
+ "data": {
+ "label": "HATEOAS",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "5CxU3inGcSHp-TDg3BQiY"
+ },
+ "zIndex": 999,
+ "width": 261,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 223.2618127280066,
+ "y": 811.400748222349
+ },
+ "dragging": false,
+ "style": {
+ "width": 261,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "zXxEiM5HeOn7W-Vue0tQf",
+ "type": "subtopic",
+ "position": {
+ "x": 223.2618127280066,
+ "y": 452.40074822234897
+ },
+ "selected": true,
+ "data": {
+ "label": "Handling CRUD Operations",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "5CxU3inGcSHp-TDg3BQiY"
+ },
+ "zIndex": 999,
+ "width": 261,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 223.2618127280066,
+ "y": 452.40074822234897
+ },
+ "dragging": false,
+ "style": {
+ "width": 261,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "8tELdagrOaGCf3nMVs8t3",
+ "type": "subtopic",
+ "position": {
+ "x": 223.2618127280066,
+ "y": 865.400748222349
+ },
+ "selected": true,
+ "data": {
+ "label": "Error Handling",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "5CxU3inGcSHp-TDg3BQiY"
+ },
+ "zIndex": 999,
+ "width": 261,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 223.2618127280066,
+ "y": 865.400748222349
+ },
+ "dragging": false,
+ "style": {
+ "width": 261,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "5CxU3inGcSHp-TDg3BQiY",
+ "type": "subtopic",
+ "position": {
+ "x": -165.6381872719934,
+ "y": 865.400748222349
+ },
+ "selected": true,
+ "data": {
+ "label": "RFC 7807 - Problem Details for APIs",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "MKVcPM2EzAr2_Ieyp9Fu3"
+ },
+ "zIndex": 999,
+ "width": 326,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -165.6381872719934,
+ "y": 865.400748222349
+ },
+ "dragging": false,
+ "style": {
+ "width": 326,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "eUsorPQ8VRLJs28J8dyk2",
+ "type": "paragraph",
+ "position": {
+ "x": -318.1381872719934,
+ "y": 728.9974788763272
+ },
+ "selected": true,
+ "data": {
+ "label": "API Authentication and Authorization",
+ "style": {
+ "fontSize": 20,
+ "justifyContent": "flex-start",
+ "textAlign": "left"
+ }
+ },
+ "zIndex": 999,
+ "width": 366,
+ "height": 69,
+ "dragging": false,
+ "positionAbsolute": {
+ "x": -318.1381872719934,
+ "y": 728.9974788763272
+ },
+ "selectable": true,
+ "focusable": true,
+ "style": {
+ "width": 366,
+ "height": 69
+ },
+ "resizing": false
+ },
+ {
+ "id": "qAolZHf_jp8hCdtqHZwC8",
+ "type": "subtopic",
+ "position": {
+ "x": -559.1381872719934,
+ "y": 498.90074822234897
+ },
+ "selected": true,
+ "data": {
+ "label": "HTTP Caching",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "KQAus72RGqx5f-3-YeJby"
+ },
+ "zIndex": 999,
+ "width": 210,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -559.1381872719934,
+ "y": 498.90074822234897
+ },
+ "dragging": false,
+ "style": {
+ "width": 210,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "cQnQ9v3mH27MGNwetz3JW",
+ "type": "topic",
+ "position": {
+ "x": -601.4010478029121,
+ "y": 859.6211541412258
+ },
+ "selected": true,
+ "data": {
+ "label": "Authentication Methods",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "5R9yKfN1vItuv__HgCwP7"
+ },
+ "zIndex": 999,
+ "width": 246,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -601.4010478029121,
+ "y": 859.6211541412258
+ },
+ "dragging": false,
+ "selectable": true,
+ "focusable": true,
+ "style": {
+ "width": 246,
+ "height": 49
+ },
+ "resizing": false
+ },
+ {
+ "id": "0FzHERK5AeYL5wv1FBJbH",
+ "type": "subtopic",
+ "position": {
+ "x": -583.4010478029121,
+ "y": 983.7533379465866
+ },
+ "selected": true,
+ "data": {
+ "label": "Basic Auth",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "dZTe_kxIUQsc9N3w920aR"
+ },
+ "zIndex": 999,
+ "width": 210,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -583.4010478029121,
+ "y": 983.7533379465866
+ },
+ "dragging": false,
+ "style": {
+ "width": 210,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "QTH7sy9uQZWl6ieBz7erY",
+ "type": "subtopic",
+ "position": {
+ "x": -583.4010478029121,
+ "y": 1037.7533379465865
+ },
+ "selected": true,
+ "data": {
+ "label": "Token Based Auth",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "KQAus72RGqx5f-3-YeJby"
+ },
+ "zIndex": 999,
+ "width": 210,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -583.4010478029121,
+ "y": 1037.7533379465865
+ },
+ "dragging": false,
+ "style": {
+ "width": 210,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "tWg68AHLIr1gIZA1za3jp",
+ "type": "subtopic",
+ "position": {
+ "x": -583.4010478029121,
+ "y": 1091.7533379465865
+ },
+ "selected": true,
+ "data": {
+ "label": "JWT ",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "KQAus72RGqx5f-3-YeJby"
+ },
+ "zIndex": 999,
+ "width": 210,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -583.4010478029121,
+ "y": 1091.7533379465865
+ },
+ "dragging": false,
+ "style": {
+ "width": 210,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "TLuNtQ6HKYQXmglyVk8-t",
+ "type": "subtopic",
+ "position": {
+ "x": -583.4010478029121,
+ "y": 1145.7533379465865
+ },
+ "selected": true,
+ "data": {
+ "label": "OAuth 2.0",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "KQAus72RGqx5f-3-YeJby"
+ },
+ "zIndex": 999,
+ "width": 210,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -583.4010478029121,
+ "y": 1145.7533379465865
+ },
+ "dragging": false,
+ "style": {
+ "width": 210,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "eQWoy4CpYP3TJL2bbhPB_",
+ "type": "subtopic",
+ "position": {
+ "x": -583.4010478029121,
+ "y": 1199.8443340956667
+ },
+ "selected": true,
+ "data": {
+ "label": "Session Based Auth",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "boYX1QcJullypfX4sevdy"
+ },
+ "zIndex": 999,
+ "width": 210,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -583.4010478029121,
+ "y": 1199.8443340956667
+ },
+ "dragging": false,
+ "style": {
+ "width": 210,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "nHbn8_sMY7J8o6ckbD-ER",
+ "type": "topic",
+ "position": {
+ "x": -210.6381872719934,
+ "y": 1033.5329320277096
+ },
+ "selected": true,
+ "data": {
+ "label": "Authorization Methods",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "5R9yKfN1vItuv__HgCwP7"
+ },
+ "zIndex": 999,
+ "width": 246,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -210.6381872719934,
+ "y": 1033.5329320277096
+ },
+ "dragging": false,
+ "selectable": true,
+ "focusable": true,
+ "style": {
+ "width": 246,
+ "height": 49
+ },
+ "resizing": false
+ },
+ {
+ "id": "wFsbmMi5Ey9UyDADdbdPW",
+ "type": "subtopic",
+ "position": {
+ "x": 165.00932230336673,
+ "y": 1004.0041963907498
+ },
+ "selected": true,
+ "data": {
+ "label": "Role Based Access Control (RBAC)",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "dZTe_kxIUQsc9N3w920aR"
+ },
+ "zIndex": 999,
+ "width": 352,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 165.00932230336673,
+ "y": 1004.0041963907498
+ },
+ "dragging": false,
+ "style": {
+ "width": 352,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "dZTe_kxIUQsc9N3w920aR",
+ "type": "subtopic",
+ "position": {
+ "x": 165.00932230336673,
+ "y": 1058.00419639075
+ },
+ "selected": true,
+ "data": {
+ "label": "Attribute Based Access Control (ABAC)",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "KQAus72RGqx5f-3-YeJby"
+ },
+ "zIndex": 999,
+ "width": 351,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 165.00932230336673,
+ "y": 1058.00419639075
+ },
+ "dragging": false,
+ "style": {
+ "width": 351,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "tzUJwXu_scwQHnPPT0oY-",
+ "type": "topic",
+ "position": {
+ "x": -210.6381872719934,
+ "y": 1146.5329320277096
+ },
+ "selected": true,
+ "data": {
+ "label": "API Keys & Management",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "Wpk4TvxcZOJgAoXjrOsZF"
+ },
+ "zIndex": 999,
+ "width": 246,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -210.6381872719934,
+ "y": 1146.5329320277096
+ },
+ "dragging": false,
+ "selectable": true,
+ "focusable": true,
+ "style": {
+ "width": 246,
+ "height": 49
+ },
+ "resizing": false
+ },
+ {
+ "id": "5R9yKfN1vItuv__HgCwP7",
+ "type": "topic",
+ "position": {
+ "x": 214.72110595703134,
+ "y": 1146.5329320277096
+ },
+ "selected": true,
+ "data": {
+ "label": "API Documentation Tools",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "awdoiCHz7Yc3kYac_iy-a"
+ },
+ "zIndex": 999,
+ "width": 246,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 214.72110595703134,
+ "y": 1146.5329320277096
+ },
+ "dragging": false,
+ "selectable": true,
+ "focusable": true,
+ "style": {
+ "width": 246,
+ "height": 49
+ },
+ "resizing": false
+ },
+ {
+ "id": "5RY7AlfRQydjxWK65Z4cv",
+ "type": "subtopic",
+ "position": {
+ "x": 232.85884761415554,
+ "y": 1270.9481617844106
+ },
+ "selected": true,
+ "data": {
+ "label": "Swagger / Open API",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "OpS2NX1lPTOtfjV1wKtC4"
+ },
+ "zIndex": 999,
+ "width": 210,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 232.85884761415554,
+ "y": 1270.9481617844106
+ },
+ "dragging": false,
+ "style": {
+ "width": 210,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "KQAus72RGqx5f-3-YeJby",
+ "type": "subtopic",
+ "position": {
+ "x": 232.85884761415554,
+ "y": 1427.5717249610107
+ },
+ "selected": true,
+ "data": {
+ "label": "Postman",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "CDLaORTdB5PWk7VbcU1bz"
+ },
+ "zIndex": 999,
+ "width": 210,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 232.85884761415554,
+ "y": 1427.5717249610107
+ },
+ "dragging": false,
+ "style": {
+ "width": 210,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "LxWHkhlikUaMT2G8YmVDQ",
+ "type": "subtopic",
+ "position": {
+ "x": 232.85884761415554,
+ "y": 1323.1560161766106
+ },
+ "selected": true,
+ "data": {
+ "label": "Readme.com",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "OpS2NX1lPTOtfjV1wKtC4"
+ },
+ "zIndex": 999,
+ "width": 210,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 232.85884761415554,
+ "y": 1323.1560161766106
+ },
+ "dragging": false,
+ "style": {
+ "width": 210,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "OpS2NX1lPTOtfjV1wKtC4",
+ "type": "subtopic",
+ "position": {
+ "x": 232.85884761415554,
+ "y": 1375.3638705688106
+ },
+ "selected": true,
+ "data": {
+ "label": "Stoplight",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "KQAus72RGqx5f-3-YeJby"
+ },
+ "zIndex": 999,
+ "width": 210,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 232.85884761415554,
+ "y": 1375.3638705688106
+ },
+ "dragging": false,
+ "style": {
+ "width": 210,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "qIJ6dUppjAjOTA8eQbp0n",
+ "type": "topic",
+ "position": {
+ "x": -207.7109644352177,
+ "y": 1398.532340911712
+ },
+ "selected": true,
+ "data": {
+ "label": "API Security",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "Wpk4TvxcZOJgAoXjrOsZF"
+ },
+ "zIndex": 999,
+ "width": 246,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -207.7109644352177,
+ "y": 1398.532340911712
+ },
+ "dragging": false,
+ "selectable": true,
+ "focusable": true,
+ "style": {
+ "width": 246,
+ "height": 49
+ },
+ "resizing": false
+ },
+ {
+ "id": "G70wvcOM1Isrx5ZBvS2xP",
+ "type": "subtopic",
+ "position": {
+ "x": -205.2109644352177,
+ "y": 1251.6104620579213
+ },
+ "selected": true,
+ "data": {
+ "label": "Common Vulnerabilities",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "q1yaf-RbHIQsOqfzjn4k4"
+ },
+ "zIndex": 999,
+ "width": 241,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -205.2109644352177,
+ "y": 1251.6104620579213
+ },
+ "dragging": false,
+ "style": {
+ "width": 241,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "q1yaf-RbHIQsOqfzjn4k4",
+ "type": "subtopic",
+ "position": {
+ "x": -205.2109644352177,
+ "y": 1303.8183164501213
+ },
+ "selected": true,
+ "data": {
+ "label": "Best Practices",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "KQAus72RGqx5f-3-YeJby"
+ },
+ "zIndex": 999,
+ "width": 241,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -205.2109644352177,
+ "y": 1303.8183164501213
+ },
+ "dragging": false,
+ "style": {
+ "width": 241,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "92-ebM0EwQ3nLjZKtvCZX",
+ "type": "button",
+ "position": {
+ "x": -612.1381872719934,
+ "y": 1303.8183164501213
+ },
+ "selected": true,
+ "data": {
+ "label": "API Security Best Practices",
+ "href": "",
+ "color": "#ffffff",
+ "backgroundColor": "#2a79e4",
+ "style": {
+ "fontSize": 17
+ },
+ "oldId": "MSeNU5cURBInhPlvnhVfO"
+ },
+ "zIndex": 999,
+ "width": 290,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -612.1381872719934,
+ "y": 1303.8183164501213
+ },
+ "dragging": false,
+ "style": {
+ "width": 290,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "d9ZXdU73jiCdeNHQv1_DH",
+ "type": "topic",
+ "position": {
+ "x": -590.469505701316,
+ "y": 1467.491632075372
+ },
+ "selected": true,
+ "data": {
+ "label": "API Performance",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "Wpk4TvxcZOJgAoXjrOsZF"
+ },
+ "zIndex": 999,
+ "width": 246,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -590.469505701316,
+ "y": 1467.491632075372
+ },
+ "dragging": false,
+ "selectable": true,
+ "focusable": true,
+ "style": {
+ "width": 246,
+ "height": 49
+ },
+ "resizing": false
+ },
+ {
+ "id": "nQpczZUcn-TvrfT80dv0Q",
+ "type": "subtopic",
+ "position": {
+ "x": -585.469505701316,
+ "y": 1568.4353183589587
+ },
+ "selected": true,
+ "data": {
+ "label": "Performance Metrics",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "boYX1QcJullypfX4sevdy"
+ },
+ "zIndex": 999,
+ "width": 236,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -585.469505701316,
+ "y": 1568.4353183589587
+ },
+ "dragging": false,
+ "style": {
+ "width": 236,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "PrvRCR4HCdGar0vcUbG_a",
+ "type": "subtopic",
+ "position": {
+ "x": -585.469505701316,
+ "y": 1619.7437339754388
+ },
+ "selected": true,
+ "data": {
+ "label": "Caching Strategies",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "boYX1QcJullypfX4sevdy"
+ },
+ "zIndex": 999,
+ "width": 236,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -585.469505701316,
+ "y": 1619.7437339754388
+ },
+ "dragging": false,
+ "style": {
+ "width": 236,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "p5wsniYnOS7cbHd92RxGk",
+ "type": "subtopic",
+ "position": {
+ "x": -585.469505701316,
+ "y": 1671.0521495919188
+ },
+ "selected": true,
+ "data": {
+ "label": "Load Balancing",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "boYX1QcJullypfX4sevdy"
+ },
+ "zIndex": 999,
+ "width": 236,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -585.469505701316,
+ "y": 1671.0521495919188
+ },
+ "dragging": false,
+ "style": {
+ "width": 236,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "tPVtRV818D8zAAuNbqPNa",
+ "type": "subtopic",
+ "position": {
+ "x": -585.469505701316,
+ "y": 1722.3605652083988
+ },
+ "selected": true,
+ "data": {
+ "label": "Rate Limiting / Throttling",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "boYX1QcJullypfX4sevdy"
+ },
+ "zIndex": 999,
+ "width": 236,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -585.469505701316,
+ "y": 1722.3605652083988
+ },
+ "dragging": false,
+ "style": {
+ "width": 236,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "-qdwBg7HvwlbLy3IKCRij",
+ "type": "subtopic",
+ "position": {
+ "x": -585.469505701316,
+ "y": 1773.6689808248789
+ },
+ "selected": true,
+ "data": {
+ "label": "Profiling and Monitoring",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "boYX1QcJullypfX4sevdy"
+ },
+ "zIndex": 999,
+ "width": 236,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -585.469505701316,
+ "y": 1773.6689808248789
+ },
+ "dragging": false,
+ "style": {
+ "width": 236,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "DQcAV59vr1-ZRnMfbLXpu",
+ "type": "subtopic",
+ "position": {
+ "x": -585.469505701316,
+ "y": 1824.977396441359
+ },
+ "selected": true,
+ "data": {
+ "label": "Performance Testing",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "XD1vDtrRQFbLyKJaD1AlA"
+ },
+ "zIndex": 999,
+ "width": 236,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -585.469505701316,
+ "y": 1824.977396441359
+ },
+ "dragging": false,
+ "style": {
+ "width": 236,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "MSeNU5cURBInhPlvnhVfO",
+ "type": "button",
+ "position": {
+ "x": -614.469505701316,
+ "y": 1367.532340911712
+ },
+ "selected": true,
+ "data": {
+ "label": "API Performance Best Practices",
+ "href": "",
+ "color": "#ffffff",
+ "backgroundColor": "#2a79e4",
+ "style": {
+ "fontSize": 17
+ }
+ },
+ "zIndex": 999,
+ "width": 294,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -614.469505701316,
+ "y": 1367.532340911712
+ },
+ "dragging": false,
+ "style": {
+ "width": 294,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "R3aRhqCslwhegMfHtxg5z",
+ "type": "topic",
+ "position": {
+ "x": -210.2109644352177,
+ "y": 1544.4353183589587
+ },
+ "selected": true,
+ "data": {
+ "label": "API Integration Patterns",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "yvdfoly5WHHTq2Puss355"
+ },
+ "zIndex": 999,
+ "width": 246,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -210.2109644352177,
+ "y": 1544.4353183589587
+ },
+ "dragging": false,
+ "selectable": true,
+ "focusable": true,
+ "style": {
+ "width": 246,
+ "height": 49
+ },
+ "resizing": false
+ },
+ {
+ "id": "kJD1K2-ZkoezFCfpmOM0Z",
+ "type": "section",
+ "position": {
+ "x": -255.7109644352177,
+ "y": 1661.7437339754388
+ },
+ "selected": true,
+ "data": {
+ "label": "",
+ "style": {
+ "width": 150,
+ "height": 100,
+ "fontSize": 17,
+ "backgroundColor": "TRANSPARENt",
+ "borderColor": "TRANSPARENt"
+ },
+ "oldId": "o3XFXW2HHLBoxlbEnoWdZ"
+ },
+ "zIndex": -999,
+ "width": 335,
+ "height": 370,
+ "style": {
+ "width": 335,
+ "height": 370
+ },
+ "positionAbsolute": {
+ "x": -255.7109644352177,
+ "y": 1661.7437339754388
+ },
+ "dragging": false,
+ "resizing": false,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "id": "--mmTKhG58_elbUqyn90G",
+ "type": "subtopic",
+ "position": {
+ "x": -250.7109644352177,
+ "y": 1662.4353183589587
+ },
+ "selected": true,
+ "data": {
+ "label": "Synchronous vs Asynchronous APIs",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "iNsXTtcIHsI_i-mCfjGYn"
+ },
+ "zIndex": 999,
+ "width": 325,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -250.7109644352177,
+ "y": 1662.4353183589587
+ },
+ "dragging": false,
+ "style": {
+ "width": 325,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "oMfOBkVsgiLvFLicOUdx6",
+ "type": "subtopic",
+ "position": {
+ "x": -250.7109644352177,
+ "y": 1713.7417878080591
+ },
+ "selected": true,
+ "data": {
+ "label": "Event Driven Architecture",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "PrvRCR4HCdGar0vcUbG_a"
+ },
+ "zIndex": 999,
+ "width": 325,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -250.7109644352177,
+ "y": 1713.7417878080591
+ },
+ "dragging": false,
+ "style": {
+ "width": 325,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "MJeUD4fOHaJu1oxk4uQ-x",
+ "type": "subtopic",
+ "position": {
+ "x": -250.7109644352177,
+ "y": 1765.752205777561
+ },
+ "selected": true,
+ "data": {
+ "label": "API Gateways",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "p5wsniYnOS7cbHd92RxGk"
+ },
+ "zIndex": 999,
+ "width": 325,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -250.7109644352177,
+ "y": 1765.752205777561
+ },
+ "dragging": false,
+ "style": {
+ "width": 325,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "PPeBbooE121zrgNwpVTiA",
+ "type": "subtopic",
+ "position": {
+ "x": -250.7109644352177,
+ "y": 1817.410649486862
+ },
+ "selected": true,
+ "data": {
+ "label": "Microservices Architecture",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "-qdwBg7HvwlbLy3IKCRij"
+ },
+ "zIndex": 999,
+ "width": 325,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -250.7109644352177,
+ "y": 1817.410649486862
+ },
+ "dragging": false,
+ "style": {
+ "width": 325,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "IkPZel5zxXWIx90Qx7fZI",
+ "type": "subtopic",
+ "position": {
+ "x": -250.7109644352177,
+ "y": 1972.3859806147652
+ },
+ "selected": true,
+ "data": {
+ "label": "Messaging Queues",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "mXCKtLUvwVJkHrpHzOecq"
+ },
+ "zIndex": 999,
+ "width": 325,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -250.7109644352177,
+ "y": 1972.3859806147652
+ },
+ "dragging": false,
+ "style": {
+ "width": 325,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "75NVxS0iwoQXxOHCkWQxH",
+ "type": "subtopic",
+ "position": {
+ "x": -250.7109644352177,
+ "y": 1869.069093196163
+ },
+ "selected": true,
+ "data": {
+ "label": "Webhooks vs Polling",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "X68HXAAV-nKo-V4Fu1o72"
+ },
+ "zIndex": 999,
+ "width": 325,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -250.7109644352177,
+ "y": 1869.069093196163
+ },
+ "dragging": false,
+ "style": {
+ "width": 325,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "X68HXAAV-nKo-V4Fu1o72",
+ "type": "subtopic",
+ "position": {
+ "x": -250.7109644352177,
+ "y": 1920.7275369054641
+ },
+ "selected": true,
+ "data": {
+ "label": "Batch Processing",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "boYX1QcJullypfX4sevdy"
+ },
+ "zIndex": 999,
+ "width": 325,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -250.7109644352177,
+ "y": 1920.7275369054641
+ },
+ "dragging": false,
+ "style": {
+ "width": 325,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "H22jAI2W5QLL-b1rq-c56",
+ "type": "subtopic",
+ "position": {
+ "x": -497.66906836651873,
+ "y": 1941.8678842718575
+ },
+ "selected": true,
+ "data": {
+ "label": "Rabbit MQ",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "boYX1QcJullypfX4sevdy"
+ },
+ "zIndex": 999,
+ "width": 145,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -497.66906836651873,
+ "y": 1941.8678842718575
+ },
+ "dragging": false,
+ "style": {
+ "width": 145,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "boYX1QcJullypfX4sevdy",
+ "type": "subtopic",
+ "position": {
+ "x": -499.16906836651884,
+ "y": 1996.867884271857
+ },
+ "selected": true,
+ "data": {
+ "label": "Kafka",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "q1yaf-RbHIQsOqfzjn4k4"
+ },
+ "zIndex": 999,
+ "width": 148,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -499.16906836651884,
+ "y": 1996.867884271857
+ },
+ "dragging": false,
+ "style": {
+ "width": 148,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "Wpk4TvxcZOJgAoXjrOsZF",
+ "type": "topic",
+ "position": {
+ "x": 221.19846699906657,
+ "y": 1758.058993623857
+ },
+ "selected": true,
+ "data": {
+ "label": "API Testing",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "5R9yKfN1vItuv__HgCwP7"
+ },
+ "zIndex": 999,
+ "width": 246,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 221.19846699906657,
+ "y": 1758.058993623857
+ },
+ "dragging": false,
+ "selectable": true,
+ "focusable": true,
+ "style": {
+ "width": 246,
+ "height": 49
+ },
+ "resizing": false
+ },
+ {
+ "id": "JvmW78cDm84GNhq8VEYZp",
+ "type": "subtopic",
+ "position": {
+ "x": 247.69846699906657,
+ "y": 1505.4070461854096
+ },
+ "selected": true,
+ "data": {
+ "label": "Unit Testing",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "iNsXTtcIHsI_i-mCfjGYn"
+ },
+ "zIndex": 999,
+ "width": 193,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 247.69846699906657,
+ "y": 1505.4070461854096
+ },
+ "dragging": false,
+ "style": {
+ "width": 193,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "qZELS5vw2feS7QfyD7spX",
+ "type": "subtopic",
+ "position": {
+ "x": 247.69846699906657,
+ "y": 1559.4070461854096
+ },
+ "selected": true,
+ "data": {
+ "label": "Integration Testing",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "iNsXTtcIHsI_i-mCfjGYn"
+ },
+ "zIndex": 999,
+ "width": 193,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 247.69846699906657,
+ "y": 1559.4070461854096
+ },
+ "dragging": false,
+ "style": {
+ "width": 193,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "6lm3wy9WTAERTqXCn6pFt",
+ "type": "subtopic",
+ "position": {
+ "x": 247.69846699906657,
+ "y": 1613.4070461854096
+ },
+ "selected": true,
+ "data": {
+ "label": "Functional Testing",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "iNsXTtcIHsI_i-mCfjGYn"
+ },
+ "zIndex": 999,
+ "width": 193,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 247.69846699906657,
+ "y": 1613.4070461854096
+ },
+ "dragging": false,
+ "style": {
+ "width": 193,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "7JNEx_cbqnAx3esvwZMOd",
+ "type": "subtopic",
+ "position": {
+ "x": 247.69846699906657,
+ "y": 1667.4070461854096
+ },
+ "selected": true,
+ "data": {
+ "label": "Load Testing",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "iNsXTtcIHsI_i-mCfjGYn"
+ },
+ "zIndex": 999,
+ "width": 193,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 247.69846699906657,
+ "y": 1667.4070461854096
+ },
+ "dragging": false,
+ "style": {
+ "width": 193,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "bEVCT5QGY3uw0kIfAELKh",
+ "type": "subtopic",
+ "position": {
+ "x": 248.4735203536439,
+ "y": 1861.446054725657
+ },
+ "selected": true,
+ "data": {
+ "label": "Mocking APIs",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "iNsXTtcIHsI_i-mCfjGYn"
+ },
+ "zIndex": 999,
+ "width": 193,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 248.4735203536439,
+ "y": 1861.446054725657
+ },
+ "dragging": false,
+ "style": {
+ "width": 193,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "NqeBglhzukVMMEF9p2CXc",
+ "type": "subtopic",
+ "position": {
+ "x": 248.4735203536439,
+ "y": 1915.446054725657
+ },
+ "selected": true,
+ "data": {
+ "label": "Contract Testing",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "iNsXTtcIHsI_i-mCfjGYn"
+ },
+ "zIndex": 999,
+ "width": 193,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 248.4735203536439,
+ "y": 1915.446054725657
+ },
+ "dragging": false,
+ "style": {
+ "width": 193,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "XD1vDtrRQFbLyKJaD1AlA",
+ "type": "subtopic",
+ "position": {
+ "x": -585.469505701316,
+ "y": 1876.285812057839
+ },
+ "selected": true,
+ "data": {
+ "label": "Error Handling / Retries",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "boYX1QcJullypfX4sevdy"
+ },
+ "zIndex": 999,
+ "width": 236,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -585.469505701316,
+ "y": 1876.285812057839
+ },
+ "dragging": false,
+ "style": {
+ "width": 236,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "JE12g5cqnwmgeTle14Vxw",
+ "type": "topic",
+ "position": {
+ "x": 35.36181272800661,
+ "y": 2095.4915595367556
+ },
+ "selected": true,
+ "data": {
+ "label": "Real-time APIs",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "At5exN7ZAx2IzY3cTCzHm"
+ },
+ "zIndex": 999,
+ "width": 170,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 35.36181272800661,
+ "y": 2095.4915595367556
+ },
+ "dragging": false,
+ "selectable": true,
+ "focusable": true,
+ "style": {
+ "width": 170,
+ "height": 49
+ },
+ "resizing": false
+ },
+ {
+ "id": "UQ8N7gcVpRLAYXgUNHBt5",
+ "type": "subtopic",
+ "position": {
+ "x": 267.72110595703134,
+ "y": 2069.2728071916526
+ },
+ "selected": true,
+ "data": {
+ "label": "Web Sockets",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "iNsXTtcIHsI_i-mCfjGYn"
+ },
+ "zIndex": 999,
+ "width": 193,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 267.72110595703134,
+ "y": 2069.2728071916526
+ },
+ "dragging": false,
+ "style": {
+ "width": 193,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "iNsXTtcIHsI_i-mCfjGYn",
+ "type": "subtopic",
+ "position": {
+ "x": 267.72110595703134,
+ "y": 2123.2728071916526
+ },
+ "selected": true,
+ "data": {
+ "label": "Server Sent Events",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "nQpczZUcn-TvrfT80dv0Q"
+ },
+ "zIndex": 999,
+ "width": 193,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 267.72110595703134,
+ "y": 2123.2728071916526
+ },
+ "dragging": false,
+ "style": {
+ "width": 193,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "yvdfoly5WHHTq2Puss355",
+ "type": "topic",
+ "position": {
+ "x": -363.31358688509135,
+ "y": 2210.5425435400516
+ },
+ "selected": true,
+ "data": {
+ "label": "Standards and Compliance",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "Wpk4TvxcZOJgAoXjrOsZF"
+ },
+ "zIndex": 999,
+ "width": 271,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -363.31358688509135,
+ "y": 2210.5425435400516
+ },
+ "dragging": false,
+ "selectable": true,
+ "focusable": true,
+ "style": {
+ "width": 271,
+ "height": 49
+ },
+ "resizing": false
+ },
+ {
+ "id": "vZxdswGLHCPi5GSuXEcHJ",
+ "type": "subtopic",
+ "position": {
+ "x": -570.6112846237921,
+ "y": 2102.642324872653
+ },
+ "selected": true,
+ "data": {
+ "label": "GDPR",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "mXCKtLUvwVJkHrpHzOecq"
+ },
+ "zIndex": 999,
+ "width": 123,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -570.6112846237921,
+ "y": 2102.642324872653
+ },
+ "dragging": false,
+ "style": {
+ "width": 123,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "At5exN7ZAx2IzY3cTCzHm",
+ "type": "topic",
+ "position": {
+ "x": -361.55504561899306,
+ "y": 2095.4915595367556
+ },
+ "selected": true,
+ "data": {
+ "label": "API Lifecycle Management",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "yvdfoly5WHHTq2Puss355"
+ },
+ "zIndex": 999,
+ "width": 267,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -361.55504561899306,
+ "y": 2095.4915595367556
+ },
+ "dragging": false,
+ "selectable": true,
+ "focusable": true,
+ "style": {
+ "width": 267,
+ "height": 49
+ },
+ "resizing": false
+ },
+ {
+ "id": "a-_iIE7UdoXzD00fD9MxN",
+ "type": "subtopic",
+ "position": {
+ "x": -570.6112846237921,
+ "y": 2156.642324872653
+ },
+ "selected": true,
+ "data": {
+ "label": "CCPA",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "mXCKtLUvwVJkHrpHzOecq"
+ },
+ "zIndex": 999,
+ "width": 123,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -570.6112846237921,
+ "y": 2156.642324872653
+ },
+ "dragging": false,
+ "style": {
+ "width": 123,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "J0enF8UTVzY3H4n3pbPIF",
+ "type": "subtopic",
+ "position": {
+ "x": -570.6112846237921,
+ "y": 2210.642324872653
+ },
+ "selected": true,
+ "data": {
+ "label": "PCI DSS",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "mXCKtLUvwVJkHrpHzOecq"
+ },
+ "zIndex": 999,
+ "width": 123,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -570.6112846237921,
+ "y": 2210.642324872653
+ },
+ "dragging": false,
+ "style": {
+ "width": 123,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "W4WwTmgZGnWmiYsB0ezml",
+ "type": "subtopic",
+ "position": {
+ "x": -568.8897926825906,
+ "y": 2264.642324872653
+ },
+ "selected": true,
+ "data": {
+ "label": "HIPAA",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "mXCKtLUvwVJkHrpHzOecq"
+ },
+ "zIndex": 999,
+ "width": 123,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -568.8897926825906,
+ "y": 2264.642324872653
+ },
+ "dragging": false,
+ "style": {
+ "width": 123,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "mXCKtLUvwVJkHrpHzOecq",
+ "type": "subtopic",
+ "position": {
+ "x": -570.6112846237921,
+ "y": 2318.642324872653
+ },
+ "selected": true,
+ "data": {
+ "label": "PII",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "center"
+ },
+ "oldId": "X68HXAAV-nKo-V4Fu1o72"
+ },
+ "zIndex": 999,
+ "width": 123,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -570.6112846237921,
+ "y": 2318.642324872653
+ },
+ "dragging": false,
+ "style": {
+ "width": 123,
+ "height": 49
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "ETSZIZbfsiSgwpAS6HgGp",
+ "type": "vertical",
+ "position": {
+ "x": -85.13818727199339,
+ "y": -164.08481519539623
+ },
+ "selected": true,
+ "data": {
+ "label": "vertical node",
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2B78E4"
+ }
+ },
+ "zIndex": 999,
+ "width": 20,
+ "height": 94,
+ "positionAbsolute": {
+ "x": -85.13818727199339,
+ "y": -164.08481519539623
+ },
+ "dragging": false,
+ "style": {
+ "width": 20,
+ "height": 94
+ },
+ "resizing": false,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "PstbOGqR_4C2WWV8CWXes",
+ "type": "linksgroup",
+ "position": {
+ "x": -599.3135868850914,
+ "y": -176.03181769055132
+ },
+ "selected": true,
+ "data": {
+ "label": "Related Roadmaps",
+ "links": [
+ {
+ "id": "3uv48fdglShh8YYF3zRWv",
+ "label": "Backend Roadmap",
+ "href": "",
+ "url": "https://roadmap.sh/backend"
+ },
+ {
+ "id": "ZW1PEheVeJJiIPR08jfCr",
+ "label": "DevOps Roadmap",
+ "url": "https://roadmap.sh/devops"
+ },
+ {
+ "id": "td_Z-sAuf092awd8U-VNG",
+ "label": "Full Stack Roadmap",
+ "url": "https://roadmap.sh/full-stack"
+ }
+ ]
+ },
+ "zIndex": 999,
+ "width": 303,
+ "height": 163,
+ "positionAbsolute": {
+ "x": -599.3135868850914,
+ "y": -176.03181769055132
+ },
+ "dragging": false,
+ "selectable": true,
+ "focusable": true,
+ "style": {
+ "width": 303,
+ "height": 163
+ },
+ "resizing": false
+ },
+ {
+ "id": "yHmHXymPNWwu8p1vvqD3o",
+ "type": "paragraph",
+ "position": {
+ "x": 158.23571626420664,
+ "y": -175.8282364125966
+ },
+ "selected": true,
+ "data": {
+ "label": "Find the detailed version of this roadmap along with other similar roadmaps",
+ "style": {
+ "fontSize": 17,
+ "justifyContent": "flex-start",
+ "textAlign": "left",
+ "borderColor": "#000000"
+ }
+ },
+ "zIndex": 999,
+ "width": 354,
+ "height": 143,
+ "positionAbsolute": {
+ "x": 158.23571626420664,
+ "y": -175.8282364125966
+ },
+ "dragging": false,
+ "selectable": true,
+ "focusable": true,
+ "style": {
+ "width": 354,
+ "height": 143
+ },
+ "resizing": false
+ },
+ {
+ "id": "2zqZkyVgigifcRS1H7F_b",
+ "type": "button",
+ "position": {
+ "x": 171.43909067700685,
+ "y": -93.84267299485134
+ },
+ "selected": true,
+ "data": {
+ "label": "roadmap.sh",
+ "href": "https://roadmap.sh",
+ "color": "#ffffff",
+ "backgroundColor": "#2a79e4",
+ "style": {
+ "fontSize": 17
+ }
+ },
+ "zIndex": 999,
+ "width": 329,
+ "height": 49,
+ "dragging": false,
+ "style": {
+ "width": 329,
+ "height": 49
+ },
+ "resizing": false,
+ "positionAbsolute": {
+ "x": 171.43909067700685,
+ "y": -93.84267299485134
+ },
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "id": "4fauwiq2CJnzDA7Z9Pmeo",
+ "type": "button",
+ "position": {
+ "x": -139.18102870413122,
+ "y": 2429.279985574316
+ },
+ "selected": true,
+ "data": {
+ "label": "Backend Roadmap",
+ "href": "https://roadmap.sh/backend",
+ "color": "#ffffff",
+ "backgroundColor": "#2a79e4",
+ "style": {
+ "fontSize": 17
+ },
+ "oldId": "eYziHRN-gsg9qr8Yddu2K"
+ },
+ "zIndex": 999,
+ "width": 196,
+ "height": 49,
+ "positionAbsolute": {
+ "x": -139.18102870413122,
+ "y": 2429.279985574316
+ },
+ "dragging": false,
+ "selectable": true,
+ "focusable": true,
+ "style": {
+ "width": 196,
+ "height": 49
+ },
+ "resizing": false
+ },
+ {
+ "id": "eYziHRN-gsg9qr8Yddu2K",
+ "type": "button",
+ "position": {
+ "x": 68.81897129586875,
+ "y": 2429.279985574316
+ },
+ "selected": true,
+ "data": {
+ "label": "DevOps Roadmap",
+ "href": "https://roadmap.sh/devops",
+ "color": "#ffffff",
+ "backgroundColor": "#2a79e4",
+ "style": {
+ "fontSize": 17
+ }
+ },
+ "zIndex": 999,
+ "width": 196,
+ "height": 49,
+ "positionAbsolute": {
+ "x": 68.81897129586875,
+ "y": 2429.279985574316
+ },
+ "dragging": false,
+ "selectable": true,
+ "focusable": true,
+ "style": {
+ "width": 196,
+ "height": 49
+ },
+ "resizing": false
+ },
+ {
+ "id": "cV_O7RiFmpoI4f1o8lF4B",
+ "type": "vertical",
+ "position": {
+ "x": 56.53195030203017,
+ "y": 2493.4716162213053
+ },
+ "selected": true,
+ "data": {
+ "label": "vertical node",
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2B78E4"
+ }
+ },
+ "zIndex": 999,
+ "width": 20,
+ "height": 94,
+ "positionAbsolute": {
+ "x": 56.53195030203017,
+ "y": 2493.4716162213053
+ },
+ "dragging": false,
+ "style": {
+ "width": 20,
+ "height": 94
+ },
+ "resizing": false,
+ "focusable": true,
+ "selectable": true
+ }
+ ],
+ "edges": [
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "sourceHandle": "x2",
+ "targetHandle": "w1",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "id": "JOhjYmVo9geZEMeeRPidh",
+ "selected": true,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "sourceHandle": "z2",
+ "targetHandle": "y1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "89g6rzK2JcZhJ1MAQra8R",
+ "selected": true,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "sourceHandle": "z2",
+ "targetHandle": "y2",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "xMpMq9rxn_DYslWm3_Efz",
+ "selected": true,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "sourceHandle": "z2",
+ "targetHandle": "y1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "-EP79fa9WRfTgvuq5FRaw",
+ "selected": true,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "sourceHandle": "z2",
+ "targetHandle": "y1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "1Qdcf_-7xas-XQldfLRjv",
+ "selected": true,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "sourceHandle": "x2",
+ "targetHandle": "y1",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "id": "CfFazuChYdU7GaJO_TolE",
+ "selected": true,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "sourceHandle": "z2",
+ "targetHandle": "y1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "74bGlBMuedspLPHnGV2LW",
+ "selected": true,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "sourceHandle": "z2",
+ "targetHandle": "y1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "XU7kv1zNr-yC063oqWlz2",
+ "selected": true,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "sourceHandle": "x2",
+ "targetHandle": "w2",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "swvSmJ6SyUFxK9fHwPJTF",
+ "selected": true,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "sourceHandle": "w2",
+ "targetHandle": "x1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "-URcDxULzdZbiMbEx8bBe",
+ "selected": true,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "sourceHandle": "y2",
+ "targetHandle": "w1",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "selected": true,
+ "id": "_k4274GmDVM-MViCSYN6K",
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "sourceHandle": "y2",
+ "targetHandle": "z1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "Tf3d_J21EhC-bcfpqV_o5",
+ "selected": true,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "sourceHandle": "y2",
+ "targetHandle": "z2",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "gRouAKXdfT8XQV_nzA-wA",
+ "selected": true,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "sourceHandle": "x2",
+ "targetHandle": "w1",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "id": "BgmVdQyd7i1SrZj0forT9",
+ "selected": true,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "AZoEY2N7PqAQgUl04E3KF",
+ "sourceHandle": "x2",
+ "target": "duKkpzPjUU_-8kyJGHqRX",
+ "targetHandle": "w1",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "id": "1a_QvZPscaIyRxhKH7p-K",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "duKkpzPjUU_-8kyJGHqRX",
+ "sourceHandle": "y2",
+ "target": "r8M3quACGO2piu0u_R4hO",
+ "targetHandle": "z1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "cWesUDXpvCzBEu5BpXefC",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "duKkpzPjUU_-8kyJGHqRX",
+ "sourceHandle": "y2",
+ "target": "2HdKzAIQi15pr3YHHrbPp",
+ "targetHandle": "z1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "CVsFgRPHi9vaQWTqSrbFF",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "duKkpzPjUU_-8kyJGHqRX",
+ "sourceHandle": "z2",
+ "target": "P-rGIk50Bg7nFmWieAW07",
+ "targetHandle": "y1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "AWgpOpfFNBRrSi_K8RPQg",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "duKkpzPjUU_-8kyJGHqRX",
+ "sourceHandle": "z2",
+ "target": "TX_hg7EobNJhmWKsMCaT1",
+ "targetHandle": "y1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "uJadhS5nJBYewb-YSy7zE",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "GRlsBogOlOwuqhMMPyHN3",
+ "sourceHandle": "z2",
+ "target": "GRlsBogOlOwuqhMMPyHN3",
+ "targetHandle": "z1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-KQAus72RGqx5f-3-YeJbyz2-KQAus72RGqx5f-3-YeJbyz1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "duKkpzPjUU_-8kyJGHqRX",
+ "sourceHandle": "z2",
+ "target": "KG3wO86F8Of27fU7QRcsn",
+ "targetHandle": "y2",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-awdoiCHz7Yc3kYac_iy-az2-KG3wO86F8Of27fU7QRcsny2",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "duKkpzPjUU_-8kyJGHqRX",
+ "sourceHandle": "z2",
+ "target": "v4nJYD9yiIEUviLPhVTCD",
+ "targetHandle": "y1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-awdoiCHz7Yc3kYac_iy-az2-MKVcPM2EzAr2_Ieyp9Fu3y1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "duKkpzPjUU_-8kyJGHqRX",
+ "sourceHandle": "x2",
+ "target": "o8i093VQv-T5Qf1yGqU0R",
+ "targetHandle": "w1",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "id": "reactflow__edge-duKkpzPjUU_-8kyJGHqRXx2-awdoiCHz7Yc3kYac_iy-aw1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "o8i093VQv-T5Qf1yGqU0R",
+ "sourceHandle": "x2",
+ "target": "wTrcPqj0KpoeOvJf7k3iI",
+ "targetHandle": "w1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-awdoiCHz7Yc3kYac_iy-ax2-wTrcPqj0KpoeOvJf7k3iIw1",
+ "selected": true,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "o8i093VQv-T5Qf1yGqU0R",
+ "sourceHandle": "z2",
+ "target": "awdoiCHz7Yc3kYac_iy-a",
+ "targetHandle": "y1",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "selected": true,
+ "selectable": true,
+ "focusable": true,
+ "id": "reactflow__edge-5R9yKfN1vItuv__HgCwP7z2-awdoiCHz7Yc3kYac_iy-ay1"
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "awdoiCHz7Yc3kYac_iy-a",
+ "sourceHandle": "w2",
+ "target": "junprE7dbMyeovApqhSgr",
+ "targetHandle": "x1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-awdoiCHz7Yc3kYac_iy-aw2-junprE7dbMyeovApqhSgrx1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "awdoiCHz7Yc3kYac_iy-a",
+ "sourceHandle": "x2",
+ "target": "iHtjFSkQWMoUNdltNttEd",
+ "targetHandle": "w1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-awdoiCHz7Yc3kYac_iy-ax2-iHtjFSkQWMoUNdltNttEdw1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "8tELdagrOaGCf3nMVs8t3",
+ "sourceHandle": "y2",
+ "target": "5CxU3inGcSHp-TDg3BQiY",
+ "targetHandle": "z1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-8tELdagrOaGCf3nMVs8t3y2-5CxU3inGcSHp-TDg3BQiYz1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "awdoiCHz7Yc3kYac_iy-a",
+ "sourceHandle": "y2",
+ "target": "eUsorPQ8VRLJs28J8dyk2",
+ "targetHandle": "z1",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "id": "reactflow__edge-awdoiCHz7Yc3kYac_iy-ay2-eUsorPQ8VRLJs28J8dyk2z1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "eUsorPQ8VRLJs28J8dyk2",
+ "sourceHandle": "y2",
+ "target": "cQnQ9v3mH27MGNwetz3JW",
+ "targetHandle": "w1",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "id": "reactflow__edge-eUsorPQ8VRLJs28J8dyk2y2-5R9yKfN1vItuv__HgCwP7w1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "cQnQ9v3mH27MGNwetz3JW",
+ "sourceHandle": "x2",
+ "target": "cGWZQjKazJQ0D3nz_AdAX",
+ "targetHandle": "w1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-5R9yKfN1vItuv__HgCwP7x2-cGWZQjKazJQ0D3nz_AdAXw1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "cQnQ9v3mH27MGNwetz3JW",
+ "sourceHandle": "z2",
+ "target": "nHbn8_sMY7J8o6ckbD-ER",
+ "targetHandle": "y1",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "selected": true,
+ "id": "reactflow__edge-cQnQ9v3mH27MGNwetz3JWz2-5R9yKfN1vItuv__HgCwP7y1",
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "nHbn8_sMY7J8o6ckbD-ER",
+ "sourceHandle": "z2",
+ "target": "wFsbmMi5Ey9UyDADdbdPW",
+ "targetHandle": "y1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-5R9yKfN1vItuv__HgCwP7z2-wFsbmMi5Ey9UyDADdbdPWy1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "nHbn8_sMY7J8o6ckbD-ER",
+ "sourceHandle": "z2",
+ "target": "dZTe_kxIUQsc9N3w920aR",
+ "targetHandle": "y1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-5R9yKfN1vItuv__HgCwP7z2-dZTe_kxIUQsc9N3w920aRy1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "nHbn8_sMY7J8o6ckbD-ER",
+ "sourceHandle": "x2",
+ "target": "tzUJwXu_scwQHnPPT0oY-",
+ "targetHandle": "w1",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "id": "reactflow__edge-nHbn8_sMY7J8o6ckbD-ERx2-5R9yKfN1vItuv__HgCwP7w1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "tzUJwXu_scwQHnPPT0oY-",
+ "sourceHandle": "z2",
+ "target": "5R9yKfN1vItuv__HgCwP7",
+ "targetHandle": "y2",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "id": "reactflow__edge-Wpk4TvxcZOJgAoXjrOsZFz2-5R9yKfN1vItuv__HgCwP7y2",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "5R9yKfN1vItuv__HgCwP7",
+ "sourceHandle": "x2",
+ "target": "RkPVaSF9XnX6uHUns_-oC",
+ "targetHandle": "w1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-5R9yKfN1vItuv__HgCwP7x2-RkPVaSF9XnX6uHUns_-oCw1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "5R9yKfN1vItuv__HgCwP7",
+ "sourceHandle": "y2",
+ "target": "qIJ6dUppjAjOTA8eQbp0n",
+ "targetHandle": "z1",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "id": "reactflow__edge-5R9yKfN1vItuv__HgCwP7y2-Wpk4TvxcZOJgAoXjrOsZFz1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "qIJ6dUppjAjOTA8eQbp0n",
+ "sourceHandle": "w2",
+ "target": "ludceg3fQVkilNTKWznti",
+ "targetHandle": "x1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-Wpk4TvxcZOJgAoXjrOsZFw2-ludceg3fQVkilNTKWzntix1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "q1yaf-RbHIQsOqfzjn4k4",
+ "sourceHandle": "y2",
+ "target": "92-ebM0EwQ3nLjZKtvCZX",
+ "targetHandle": "z1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-q1yaf-RbHIQsOqfzjn4k4y2-MSeNU5cURBInhPlvnhVfOz1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "qIJ6dUppjAjOTA8eQbp0n",
+ "sourceHandle": "y2",
+ "target": "d9ZXdU73jiCdeNHQv1_DH",
+ "targetHandle": "z1",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "selected": true,
+ "selectable": true,
+ "focusable": true,
+ "id": "reactflow__edge-qIJ6dUppjAjOTA8eQbp0ny2-Wpk4TvxcZOJgAoXjrOsZFz1"
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "d9ZXdU73jiCdeNHQv1_DH",
+ "sourceHandle": "w2",
+ "target": "MSeNU5cURBInhPlvnhVfO",
+ "targetHandle": "x1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-Wpk4TvxcZOJgAoXjrOsZFw2-MSeNU5cURBInhPlvnhVfOx1",
+ "selected": true,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "d9ZXdU73jiCdeNHQv1_DH",
+ "sourceHandle": "x2",
+ "target": "o3XFXW2HHLBoxlbEnoWdZ",
+ "targetHandle": "w1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-Wpk4TvxcZOJgAoXjrOsZFx2-o3XFXW2HHLBoxlbEnoWdZw1",
+ "selected": true,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "d9ZXdU73jiCdeNHQv1_DH",
+ "sourceHandle": "z2",
+ "target": "R3aRhqCslwhegMfHtxg5z",
+ "targetHandle": "y1",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "id": "reactflow__edge-d9ZXdU73jiCdeNHQv1_DHz2-Wpk4TvxcZOJgAoXjrOsZFy1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "sourceHandle": "x2",
+ "target": "kJD1K2-ZkoezFCfpmOM0Z",
+ "targetHandle": "w1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "pQSbDAqEripuhCsgK5XMD",
+ "selected": true,
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "R3aRhqCslwhegMfHtxg5z",
+ "sourceHandle": "x2",
+ "target": "kJD1K2-ZkoezFCfpmOM0Z",
+ "targetHandle": "w1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-Wpk4TvxcZOJgAoXjrOsZFx2-kJD1K2-ZkoezFCfpmOM0Zw1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "IkPZel5zxXWIx90Qx7fZI",
+ "sourceHandle": "y2",
+ "target": "H22jAI2W5QLL-b1rq-c56",
+ "targetHandle": "z2",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-mXCKtLUvwVJkHrpHzOecqy2-H22jAI2W5QLL-b1rq-c56z2",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "IkPZel5zxXWIx90Qx7fZI",
+ "sourceHandle": "y2",
+ "target": "boYX1QcJullypfX4sevdy",
+ "targetHandle": "z1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-mXCKtLUvwVJkHrpHzOecqy2-boYX1QcJullypfX4sevdyz1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "Wpk4TvxcZOJgAoXjrOsZF",
+ "sourceHandle": "w2",
+ "target": "zL4QEM5xZO8XWXXWrdPuj",
+ "targetHandle": "x1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-Wpk4TvxcZOJgAoXjrOsZFw2-zL4QEM5xZO8XWXXWrdPujx1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "R3aRhqCslwhegMfHtxg5z",
+ "sourceHandle": "z2",
+ "target": "Wpk4TvxcZOJgAoXjrOsZF",
+ "targetHandle": "y1",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "id": "reactflow__edge-yvdfoly5WHHTq2Puss355z2-Wpk4TvxcZOJgAoXjrOsZFy1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "sourceHandle": "x2",
+ "target": "SP-d4YngpYXkeIB9SSD-K",
+ "targetHandle": "w1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "glDT_FnQTOOAyIAPLWFZW",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "Wpk4TvxcZOJgAoXjrOsZF",
+ "sourceHandle": "x2",
+ "target": "bEVCT5QGY3uw0kIfAELKh",
+ "targetHandle": "w1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-Wpk4TvxcZOJgAoXjrOsZFx2-bEVCT5QGY3uw0kIfAELKhw1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "Wpk4TvxcZOJgAoXjrOsZF",
+ "sourceHandle": "y2",
+ "target": "JE12g5cqnwmgeTle14Vxw",
+ "targetHandle": "w1",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "selected": true,
+ "id": "reactflow__edge-Wpk4TvxcZOJgAoXjrOsZFy2-yvdfoly5WHHTq2Puss355w1",
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "JE12g5cqnwmgeTle14Vxw",
+ "sourceHandle": "z2",
+ "target": "UQ8N7gcVpRLAYXgUNHBt5",
+ "targetHandle": "y1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-yvdfoly5WHHTq2Puss355z2-UQ8N7gcVpRLAYXgUNHBt5y1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "JE12g5cqnwmgeTle14Vxw",
+ "sourceHandle": "z2",
+ "target": "iNsXTtcIHsI_i-mCfjGYn",
+ "targetHandle": "y2",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-yvdfoly5WHHTq2Puss355z2-iNsXTtcIHsI_i-mCfjGYny2",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "JE12g5cqnwmgeTle14Vxw",
+ "sourceHandle": "y2",
+ "target": "At5exN7ZAx2IzY3cTCzHm",
+ "targetHandle": "z2",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "id": "reactflow__edge-JE12g5cqnwmgeTle14Vxwy2-At5exN7ZAx2IzY3cTCzHmz2",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "At5exN7ZAx2IzY3cTCzHm",
+ "sourceHandle": "x2",
+ "target": "yvdfoly5WHHTq2Puss355",
+ "targetHandle": "w1",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "id": "reactflow__edge-At5exN7ZAx2IzY3cTCzHmx2-yvdfoly5WHHTq2Puss355w1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "yvdfoly5WHHTq2Puss355",
+ "sourceHandle": "y2",
+ "target": "vZxdswGLHCPi5GSuXEcHJ",
+ "targetHandle": "z1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-yvdfoly5WHHTq2Puss355y2-vZxdswGLHCPi5GSuXEcHJz1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "yvdfoly5WHHTq2Puss355",
+ "sourceHandle": "y2",
+ "target": "a-_iIE7UdoXzD00fD9MxN",
+ "targetHandle": "z1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-yvdfoly5WHHTq2Puss355y2-a-_iIE7UdoXzD00fD9MxNz1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "yvdfoly5WHHTq2Puss355",
+ "sourceHandle": "y2",
+ "target": "J0enF8UTVzY3H4n3pbPIF",
+ "targetHandle": "z1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-yvdfoly5WHHTq2Puss355y2-J0enF8UTVzY3H4n3pbPIFz1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "yvdfoly5WHHTq2Puss355",
+ "sourceHandle": "y2",
+ "target": "W4WwTmgZGnWmiYsB0ezml",
+ "targetHandle": "z1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-yvdfoly5WHHTq2Puss355y2-W4WwTmgZGnWmiYsB0ezmlz1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0.8 8",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "yvdfoly5WHHTq2Puss355",
+ "sourceHandle": "y2",
+ "target": "mXCKtLUvwVJkHrpHzOecq",
+ "targetHandle": "z1",
+ "data": {
+ "edgeStyle": "dashed"
+ },
+ "id": "reactflow__edge-yvdfoly5WHHTq2Puss355y2-mXCKtLUvwVJkHrpHzOecqz1",
+ "selected": true,
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "yvdfoly5WHHTq2Puss355",
+ "sourceHandle": "z2",
+ "target": "jXtqI8k4Abz-vr01IcpWL",
+ "targetHandle": "w1",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "id": "reactflow__edge-yvdfoly5WHHTq2Puss355z2-jXtqI8k4Abz-vr01IcpWLw1",
+ "selected": true,
+ "type": "step",
+ "selectable": true,
+ "focusable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "yvdfoly5WHHTq2Puss355",
+ "sourceHandle": "z2",
+ "target": "XzXLGjJr2F8Ln7gP0e5N8",
+ "targetHandle": "w2",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "id": "reactflow__edge-yvdfoly5WHHTq2Puss355z2-XzXLGjJr2F8Ln7gP0e5N8w2",
+ "selected": true,
+ "type": "step",
+ "focusable": true,
+ "selectable": true
+ },
+ {
+ "style": {
+ "strokeDasharray": "0",
+ "strokeLinecap": "round",
+ "strokeWidth": 3.5,
+ "stroke": "#2b78e4"
+ },
+ "source": "MKVcPM2EzAr2_Ieyp9Fu3",
+ "sourceHandle": "y2",
+ "target": "iA0C1mFlM_73GcL9XNJmF",
+ "targetHandle": "z1",
+ "data": {
+ "edgeStyle": "solid"
+ },
+ "selected": true,
+ "selectable": true,
+ "focusable": true,
+ "id": "reactflow__edge-MKVcPM2EzAr2_Ieyp9Fu3y2-iA0C1mFlM_73GcL9XNJmFz1"
+ }
+ ]
+}
\ No newline at end of file
From f14c945ff9c31186205df57f1071541db06f205a Mon Sep 17 00:00:00 2001
From: Kamran Ahmed
Date: Mon, 27 May 2024 10:38:41 +0100
Subject: [PATCH 3/9] Fix canonical url
---
src/data/guides/torrent-client.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/data/guides/torrent-client.md b/src/data/guides/torrent-client.md
index e4585287f..b81adb3cc 100644
--- a/src/data/guides/torrent-client.md
+++ b/src/data/guides/torrent-client.md
@@ -6,6 +6,7 @@ seo:
title: 'Building a BitTorrent Client - roadmap.sh'
description: 'Learn everything you need to know about BitTorrent by writing a client in Go'
isNew: false
+canonicalUrl: 'https://blog.jse.li/posts/torrent/'
type: 'textual'
date: 2021-01-17
sitemap:
From b2c4bcad349536e6c9e9008e9847232b330f87c1 Mon Sep 17 00:00:00 2001
From: Kablys <1136529+Kablys@users.noreply.github.com>
Date: Sat, 25 May 2024 13:22:49 +0300
Subject: [PATCH 4/9] Fix broken link (#5728)
---
.../111-javascript-this-keyword/100-function-borrowing.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/data/roadmaps/javascript/content/111-javascript-this-keyword/100-function-borrowing.md b/src/data/roadmaps/javascript/content/111-javascript-this-keyword/100-function-borrowing.md
index 7cd210125..e2ec0dafc 100644
--- a/src/data/roadmaps/javascript/content/111-javascript-this-keyword/100-function-borrowing.md
+++ b/src/data/roadmaps/javascript/content/111-javascript-this-keyword/100-function-borrowing.md
@@ -5,4 +5,4 @@ Function borrowing allows us to use the methods of one object on a different obj
Visit the following resources to learn more:
- [Function borrowing](https://medium.com/@ensallee/function-borrowing-in-javascript-4bd671e9d7b4)
-- [When would I use function borrowing] (https://stackoverflow.com/questions/69892281/when-would-i-use-function-borrowing)
+- [When would I use function borrowing](https://stackoverflow.com/questions/69892281/when-would-i-use-function-borrowing)
From 8d3c6f946ebd64f3d97911bf43fd700b6057f4b2 Mon Sep 17 00:00:00 2001
From: Kamran Ahmed
Date: Mon, 27 May 2024 10:58:05 +0100
Subject: [PATCH 5/9] Update dependencies and fix bug in overlay
---
.astro/settings.json | 14 +-
package.json | 6 +-
pnpm-lock.yaml | 197 +++++-------------------
src/components/RoadmapTitleQuestion.tsx | 2 +-
4 files changed, 46 insertions(+), 173 deletions(-)
diff --git a/.astro/settings.json b/.astro/settings.json
index 6d6b62b77..b48bfebbc 100644
--- a/.astro/settings.json
+++ b/.astro/settings.json
@@ -1,8 +1,8 @@
{
- "devToolbar": {
- "enabled": false
- },
- "_variables": {
- "lastUpdateCheck": 1715513047752
- }
-}
+ "devToolbar": {
+ "enabled": false
+ },
+ "_variables": {
+ "lastUpdateCheck": 1716803392287
+ }
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index 901ee2725..712917153 100644
--- a/package.json
+++ b/package.json
@@ -29,8 +29,8 @@
},
"dependencies": {
"@astrojs/node": "^8.2.5",
- "@astrojs/react": "^3.3.4",
- "@astrojs/sitemap": "^3.1.4",
+ "@astrojs/react": "^3.4.0",
+ "@astrojs/sitemap": "^3.1.5",
"@astrojs/tailwind": "^5.1.0",
"@fingerprintjs/fingerprintjs": "^4.3.0",
"@nanostores/react": "^0.7.2",
@@ -38,7 +38,7 @@
"@resvg/resvg-js": "^2.6.2",
"@types/react": "^18.3.2",
"@types/react-dom": "^18.3.0",
- "astro": "^4.8.6",
+ "astro": "^4.9.1",
"clsx": "^2.1.1",
"dayjs": "^1.11.11",
"dom-to-image": "^2.6.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a3ab38e89..98fb35963 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -10,16 +10,16 @@ importers:
dependencies:
'@astrojs/node':
specifier: ^8.2.5
- version: 8.2.5(astro@4.8.6(@types/node@18.19.31))
+ version: 8.2.5(astro@4.9.1(@types/node@18.19.31))
'@astrojs/react':
- specifier: ^3.3.4
- version: 3.3.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.2.11(@types/node@18.19.31))
+ specifier: ^3.4.0
+ version: 3.4.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.2.11(@types/node@18.19.31))
'@astrojs/sitemap':
- specifier: ^3.1.4
- version: 3.1.4
+ specifier: ^3.1.5
+ version: 3.1.5
'@astrojs/tailwind':
specifier: ^5.1.0
- version: 5.1.0(astro@4.8.6(@types/node@18.19.31))(tailwindcss@3.4.3)
+ version: 5.1.0(astro@4.9.1(@types/node@18.19.31))(tailwindcss@3.4.3)
'@fingerprintjs/fingerprintjs':
specifier: ^4.3.0
version: 4.3.0
@@ -39,8 +39,8 @@ importers:
specifier: ^18.3.0
version: 18.3.0
astro:
- specifier: ^4.8.6
- version: 4.8.6(@types/node@18.19.31)
+ specifier: ^4.9.1
+ version: 4.9.1(@types/node@18.19.31)
clsx:
specifier: ^2.1.1
version: 2.1.1
@@ -218,8 +218,8 @@ packages:
resolution: {integrity: sha512-Z9IYjuXSArkAUx3N6xj6+Bnvx8OdUSHA8YoOgyepp3+zJmtVYJIl/I18GozdJVW1p5u/CNpl3Km7/gwTJK85cw==}
engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0}
- '@astrojs/react@3.3.4':
- resolution: {integrity: sha512-azFYckxcMnHcc5kfXW38oNXR3Na+OMFnzimXVBxRJ906tHkO/sBOBXhsmgQ8JGr/4WEjyaz8zKZj76TWjNMCdw==}
+ '@astrojs/react@3.4.0':
+ resolution: {integrity: sha512-5MpU+1WVqirEIoEmF1r6HkxqjOWEMjni/qCzPX/oaSyumOZNdCGfDN9GoGJhgSxiZOVfob+MNy46H4d3AgrYpQ==}
engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0}
peerDependencies:
'@types/react': ^17.0.50 || ^18.0.21
@@ -227,8 +227,8 @@ packages:
react: ^17.0.2 || ^18.0.0 || ^19.0.0-beta
react-dom: ^17.0.2 || ^18.0.0 || ^19.0.0-beta
- '@astrojs/sitemap@3.1.4':
- resolution: {integrity: sha512-po8CqDCK14O6phU1mB5C8SyVLyQEa+7pJM8oXxs1mVh8DgvxxaA5E7lak1vzOmBcyyyHBW32jakGqNYc66sBRw==}
+ '@astrojs/sitemap@3.1.5':
+ resolution: {integrity: sha512-GLdzJ01387Uzb8RKYpsYLlg/GzoPnGbmDeQNkarSE11i2+l9Qp8Nj/WoTEy9nkTS25fxxy0kxDfJmreeVleCqg==}
'@astrojs/tailwind@5.1.0':
resolution: {integrity: sha512-BJoCDKuWhU9FT2qYg+fr6Nfb3qP4ShtyjXGHKA/4mHN94z7BGcmauQK23iy+YH5qWvTnhqkd6mQPQ1yTZTe9Ig==}
@@ -248,18 +248,10 @@ packages:
resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==}
engines: {node: '>=6.9.0'}
- '@babel/core@7.24.4':
- resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==}
- engines: {node: '>=6.9.0'}
-
'@babel/core@7.24.5':
resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==}
engines: {node: '>=6.9.0'}
- '@babel/generator@7.24.4':
- resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==}
- engines: {node: '>=6.9.0'}
-
'@babel/generator@7.24.5':
resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==}
engines: {node: '>=6.9.0'}
@@ -288,12 +280,6 @@ packages:
resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==}
engines: {node: '>=6.9.0'}
- '@babel/helper-module-transforms@7.23.3':
- resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0
-
'@babel/helper-module-transforms@7.24.5':
resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==}
engines: {node: '>=6.9.0'}
@@ -304,18 +290,10 @@ packages:
resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==}
engines: {node: '>=6.9.0'}
- '@babel/helper-simple-access@7.22.5':
- resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
- engines: {node: '>=6.9.0'}
-
'@babel/helper-simple-access@7.24.5':
resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==}
engines: {node: '>=6.9.0'}
- '@babel/helper-split-export-declaration@7.22.6':
- resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
- engines: {node: '>=6.9.0'}
-
'@babel/helper-split-export-declaration@7.24.5':
resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==}
engines: {node: '>=6.9.0'}
@@ -324,10 +302,6 @@ packages:
resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==}
engines: {node: '>=6.9.0'}
- '@babel/helper-validator-identifier@7.22.20':
- resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
- engines: {node: '>=6.9.0'}
-
'@babel/helper-validator-identifier@7.24.5':
resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==}
engines: {node: '>=6.9.0'}
@@ -336,10 +310,6 @@ packages:
resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
engines: {node: '>=6.9.0'}
- '@babel/helpers@7.24.4':
- resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==}
- engines: {node: '>=6.9.0'}
-
'@babel/helpers@7.24.5':
resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==}
engines: {node: '>=6.9.0'}
@@ -348,11 +318,6 @@ packages:
resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==}
engines: {node: '>=6.9.0'}
- '@babel/parser@7.24.4':
- resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==}
- engines: {node: '>=6.0.0'}
- hasBin: true
-
'@babel/parser@7.24.5':
resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==}
engines: {node: '>=6.0.0'}
@@ -390,18 +355,10 @@ packages:
resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
engines: {node: '>=6.9.0'}
- '@babel/traverse@7.24.1':
- resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==}
- engines: {node: '>=6.9.0'}
-
'@babel/traverse@7.24.5':
resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==}
engines: {node: '>=6.9.0'}
- '@babel/types@7.24.0':
- resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==}
- engines: {node: '>=6.9.0'}
-
'@babel/types@7.24.5':
resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==}
engines: {node: '>=6.9.0'}
@@ -1509,8 +1466,8 @@ packages:
resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==}
engines: {node: '>=0.10.0'}
- astro@4.8.6:
- resolution: {integrity: sha512-psHIfK+e+bMPhRwghV9yCGH/uc1jvY4DHmDZdoEepax9yA7kzYH0wt3dpkqlcrO2zxl5jzSC3DmqZfkD6wnW9A==}
+ astro@4.9.1:
+ resolution: {integrity: sha512-9TsoAu0WBPiqyAIj9H0JW7R+tIjPjFsPKo70Nja6WL3imTTuUJQmnCre4ZVmoNV3oicTTlb+N4zjRYANW0Ty9A==}
engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'}
hasBin: true
@@ -4116,9 +4073,6 @@ packages:
peerDependencies:
zod: ^3.23.3
- zod@3.23.4:
- resolution: {integrity: sha512-/AtWOKbBgjzEYYQRNfoGKHObgfAZag6qUJX1VbHo2PRBgS+wfWagEY2mizjfyAPcGesrJOcx/wcl0L9WnVrHFw==}
-
zod@3.23.8:
resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
@@ -4178,9 +4132,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@astrojs/node@8.2.5(astro@4.8.6(@types/node@18.19.31))':
+ '@astrojs/node@8.2.5(astro@4.9.1(@types/node@18.19.31))':
dependencies:
- astro: 4.8.6(@types/node@18.19.31)
+ astro: 4.9.1(@types/node@18.19.31)
send: 0.18.0
server-destroy: 1.0.1
transitivePeerDependencies:
@@ -4190,7 +4144,7 @@ snapshots:
dependencies:
prismjs: 1.29.0
- '@astrojs/react@3.3.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.2.11(@types/node@18.19.31))':
+ '@astrojs/react@3.4.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.2.11(@types/node@18.19.31))':
dependencies:
'@types/react': 18.3.2
'@types/react-dom': 18.3.0
@@ -4202,15 +4156,15 @@ snapshots:
- supports-color
- vite
- '@astrojs/sitemap@3.1.4':
+ '@astrojs/sitemap@3.1.5':
dependencies:
sitemap: 7.1.1
stream-replace-string: 2.0.0
- zod: 3.23.4
+ zod: 3.23.8
- '@astrojs/tailwind@5.1.0(astro@4.8.6(@types/node@18.19.31))(tailwindcss@3.4.3)':
+ '@astrojs/tailwind@5.1.0(astro@4.9.1(@types/node@18.19.31))(tailwindcss@3.4.3)':
dependencies:
- astro: 4.8.6(@types/node@18.19.31)
+ astro: 4.9.1(@types/node@18.19.31)
autoprefixer: 10.4.19(postcss@8.4.38)
postcss: 8.4.38
postcss-load-config: 4.0.2(postcss@8.4.38)
@@ -4237,26 +4191,6 @@ snapshots:
'@babel/compat-data@7.24.4': {}
- '@babel/core@7.24.4':
- dependencies:
- '@ampproject/remapping': 2.3.0
- '@babel/code-frame': 7.24.2
- '@babel/generator': 7.24.4
- '@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4)
- '@babel/helpers': 7.24.4
- '@babel/parser': 7.24.4
- '@babel/template': 7.24.0
- '@babel/traverse': 7.24.1
- '@babel/types': 7.24.0
- convert-source-map: 2.0.0
- debug: 4.3.4
- gensync: 1.0.0-beta.2
- json5: 2.2.3
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
-
'@babel/core@7.24.5':
dependencies:
'@ampproject/remapping': 2.3.0
@@ -4277,13 +4211,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/generator@7.24.4':
- dependencies:
- '@babel/types': 7.24.0
- '@jridgewell/gen-mapping': 0.3.5
- '@jridgewell/trace-mapping': 0.3.25
- jsesc: 2.5.2
-
'@babel/generator@7.24.5':
dependencies:
'@babel/types': 7.24.5
@@ -4308,24 +4235,15 @@ snapshots:
'@babel/helper-function-name@7.23.0':
dependencies:
'@babel/template': 7.24.0
- '@babel/types': 7.24.0
+ '@babel/types': 7.24.5
'@babel/helper-hoist-variables@7.22.5':
dependencies:
- '@babel/types': 7.24.0
+ '@babel/types': 7.24.5
'@babel/helper-module-imports@7.24.3':
dependencies:
- '@babel/types': 7.24.0
-
- '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4)':
- dependencies:
- '@babel/core': 7.24.4
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-module-imports': 7.24.3
- '@babel/helper-simple-access': 7.22.5
- '@babel/helper-split-export-declaration': 7.22.6
- '@babel/helper-validator-identifier': 7.22.20
+ '@babel/types': 7.24.5
'@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5)':
dependencies:
@@ -4338,38 +4256,20 @@ snapshots:
'@babel/helper-plugin-utils@7.24.0': {}
- '@babel/helper-simple-access@7.22.5':
- dependencies:
- '@babel/types': 7.24.0
-
'@babel/helper-simple-access@7.24.5':
dependencies:
'@babel/types': 7.24.5
- '@babel/helper-split-export-declaration@7.22.6':
- dependencies:
- '@babel/types': 7.24.0
-
'@babel/helper-split-export-declaration@7.24.5':
dependencies:
'@babel/types': 7.24.5
'@babel/helper-string-parser@7.24.1': {}
- '@babel/helper-validator-identifier@7.22.20': {}
-
'@babel/helper-validator-identifier@7.24.5': {}
'@babel/helper-validator-option@7.23.5': {}
- '@babel/helpers@7.24.4':
- dependencies:
- '@babel/template': 7.24.0
- '@babel/traverse': 7.24.1
- '@babel/types': 7.24.0
- transitivePeerDependencies:
- - supports-color
-
'@babel/helpers@7.24.5':
dependencies:
'@babel/template': 7.24.0
@@ -4380,15 +4280,11 @@ snapshots:
'@babel/highlight@7.24.2':
dependencies:
- '@babel/helper-validator-identifier': 7.22.20
+ '@babel/helper-validator-identifier': 7.24.5
chalk: 2.4.2
js-tokens: 4.0.0
picocolors: 1.0.0
- '@babel/parser@7.24.4':
- dependencies:
- '@babel/types': 7.24.0
-
'@babel/parser@7.24.5':
dependencies:
'@babel/types': 7.24.5
@@ -4398,14 +4294,14 @@ snapshots:
'@babel/core': 7.24.5
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.4)':
+ '@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.5)':
dependencies:
- '@babel/core': 7.24.4
+ '@babel/core': 7.24.5
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.4)':
+ '@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.5)':
dependencies:
- '@babel/core': 7.24.4
+ '@babel/core': 7.24.5
'@babel/helper-plugin-utils': 7.24.0
'@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.5)':
@@ -4424,23 +4320,8 @@ snapshots:
'@babel/template@7.24.0':
dependencies:
'@babel/code-frame': 7.24.2
- '@babel/parser': 7.24.4
- '@babel/types': 7.24.0
-
- '@babel/traverse@7.24.1':
- dependencies:
- '@babel/code-frame': 7.24.2
- '@babel/generator': 7.24.4
- '@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-function-name': 7.23.0
- '@babel/helper-hoist-variables': 7.22.5
- '@babel/helper-split-export-declaration': 7.22.6
- '@babel/parser': 7.24.4
- '@babel/types': 7.24.0
- debug: 4.3.4
- globals: 11.12.0
- transitivePeerDependencies:
- - supports-color
+ '@babel/parser': 7.24.5
+ '@babel/types': 7.24.5
'@babel/traverse@7.24.5':
dependencies:
@@ -4457,12 +4338,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/types@7.24.0':
- dependencies:
- '@babel/helper-string-parser': 7.24.1
- '@babel/helper-validator-identifier': 7.22.20
- to-fast-properties: 2.0.0
-
'@babel/types@7.24.5':
dependencies:
'@babel/helper-string-parser': 7.24.1
@@ -5326,9 +5201,9 @@ snapshots:
'@vitejs/plugin-react@4.2.1(vite@5.2.11(@types/node@18.19.31))':
dependencies:
- '@babel/core': 7.24.4
- '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.4)
- '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.4)
+ '@babel/core': 7.24.5
+ '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.5)
'@types/babel__core': 7.20.5
react-refresh: 0.14.2
vite: 5.2.11(@types/node@18.19.31)
@@ -5412,7 +5287,7 @@ snapshots:
array-uniq@1.0.3: {}
- astro@4.8.6(@types/node@18.19.31):
+ astro@4.9.1(@types/node@18.19.31):
dependencies:
'@astrojs/compiler': 2.8.0
'@astrojs/internal-helpers': 0.4.0
@@ -8467,8 +8342,6 @@ snapshots:
dependencies:
zod: 3.23.8
- zod@3.23.4: {}
-
zod@3.23.8: {}
zustand@4.5.2(@types/react@18.3.2)(react@18.3.1):
diff --git a/src/components/RoadmapTitleQuestion.tsx b/src/components/RoadmapTitleQuestion.tsx
index 2b8a26a81..4188ed2d5 100644
--- a/src/components/RoadmapTitleQuestion.tsx
+++ b/src/components/RoadmapTitleQuestion.tsx
@@ -41,7 +41,7 @@ export function RoadmapTitleQuestion(props: RoadmapTitleQuestionProps) {
Date: Mon, 27 May 2024 12:31:17 +0200
Subject: [PATCH 6/9] Update built-in modules text (#5737)
The paragraph was about built-in functions, not modules
---
.../105-modules/100-builtin-modules.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/data/roadmaps/python/content/102-python-advanced-topics/105-modules/100-builtin-modules.md b/src/data/roadmaps/python/content/102-python-advanced-topics/105-modules/100-builtin-modules.md
index 6f74ef78f..8ddeb5a37 100644
--- a/src/data/roadmaps/python/content/102-python-advanced-topics/105-modules/100-builtin-modules.md
+++ b/src/data/roadmaps/python/content/102-python-advanced-topics/105-modules/100-builtin-modules.md
@@ -1,6 +1,6 @@
# Builtin Modules
-Python interpreter has a number of built-in functions. They are always available for use in every interpreter session. Many of them have been discussed previously. For example `print()` and `input()` for I/O, number conversion functions (`int()`, `float()`, `complex()`), data type conversions (`list()`, `tuple()`, `set()`) etc.
+Python has a rich standard library of built-in modules that provide a wide range of functionality. Some of the most commonly used built-in modules include: sys, os, math, datetime, random, re, itertools, etc.
Visit the following resources to learn more:
From 268acda75b2b6172503b177f153287102cd30b51 Mon Sep 17 00:00:00 2001
From: Kamran Ahmed
Date: Mon, 27 May 2024 12:36:26 +0100
Subject: [PATCH 7/9] Add progress nudge on roadmap
---
src/components/Navigation/AccountDropdown.tsx | 127 ++++++++++--------
.../Navigation/AccountDropdownList.tsx | 2 +-
src/components/OnboardingNudge.tsx | 69 ++++++++++
src/hooks/use-scroll-position.ts | 22 +++
src/styles/global.css | 2 +-
5 files changed, 164 insertions(+), 58 deletions(-)
create mode 100644 src/components/OnboardingNudge.tsx
create mode 100644 src/hooks/use-scroll-position.ts
diff --git a/src/components/Navigation/AccountDropdown.tsx b/src/components/Navigation/AccountDropdown.tsx
index 07119ea99..7e24b0587 100644
--- a/src/components/Navigation/AccountDropdown.tsx
+++ b/src/components/Navigation/AccountDropdown.tsx
@@ -10,6 +10,7 @@ import { httpGet } from '../../lib/http.ts';
import { useToast } from '../../hooks/use-toast.ts';
import type { UserDocument } from '../../api/user.ts';
import { NotificationIndicator } from './NotificationIndicator.tsx';
+import { OnboardingNudge } from '../OnboardingNudge.tsx';
export type OnboardingConfig = Pick<
UserDocument,
@@ -24,7 +25,7 @@ export function AccountDropdown() {
const [isTeamsOpen, setIsTeamsOpen] = useState(false);
const [isCreatingRoadmap, setIsCreatingRoadmap] = useState(false);
- const [isConfigLoading, setIsConfigLoading] = useState(true);
+ const [isConfigLoading, setIsConfigLoading] = useState(false);
const [isOnboardingModalOpen, setIsOnboardingModalOpen] = useState(false);
const [onboardingConfig, setOnboardingConfig] = useState<
OnboardingConfig | undefined
@@ -93,66 +94,80 @@ export function AccountDropdown() {
).length;
return (
-
- {isOnboardingModalOpen && onboardingConfig && (
-
{
- setIsOnboardingModalOpen(false);
- }}
- onIgnoreTask={(taskId, status) => {
- loadOnboardingConfig().finally(() => {});
- }}
- />
- )}
- {isCreatingRoadmap && (
- {
- setIsCreatingRoadmap(false);
+ <>
+ {shouldShowOnboardingStatus && !isOnboardingModalOpen && (
+ {
+ loadOnboardingConfig().then(() => {
+ setIsOnboardingModalOpen(true);
+ });
}}
/>
)}
- {
- setIsTeamsOpen(false);
- setShowDropdown(!showDropdown);
- }}
- >
-
- Account / Teams
-
-
- {shouldShowOnboardingStatus && !showDropdown && }
-
-
- {showDropdown && (
-
+ {isOnboardingModalOpen && onboardingConfig && (
+
{
+ setIsOnboardingModalOpen(false);
+ }}
+ onIgnoreTask={(taskId, status) => {
+ loadOnboardingConfig().finally(() => {});
+ }}
+ />
+ )}
+ {isCreatingRoadmap && (
+ {
+ setIsCreatingRoadmap(false);
+ }}
+ />
+ )}
+
+ {
+ setIsTeamsOpen(false);
+ setShowDropdown(!showDropdown);
+ }}
>
- {isTeamsOpen ? (
-
- ) : (
- {
- setIsCreatingRoadmap(true);
- setShowDropdown(false);
- }}
- setIsTeamsOpen={setIsTeamsOpen}
- onOnboardingClick={() => {
- setIsOnboardingModalOpen(true);
- setShowDropdown(false);
- }}
- shouldShowOnboardingStatus={shouldShowOnboardingStatus}
- isConfigLoading={isConfigLoading}
- onboardingConfigCount={onboardingCount}
- doneConfigCount={onboardingDoneCount}
- />
+
+ Account / Teams
+
+
+ {shouldShowOnboardingStatus && !showDropdown && (
+
)}
-
- )}
-
+
+
+ {showDropdown && (
+
+ {isTeamsOpen ? (
+
+ ) : (
+
{
+ setIsCreatingRoadmap(true);
+ setShowDropdown(false);
+ }}
+ setIsTeamsOpen={setIsTeamsOpen}
+ onOnboardingClick={() => {
+ setIsOnboardingModalOpen(true);
+ setShowDropdown(false);
+ }}
+ shouldShowOnboardingStatus={shouldShowOnboardingStatus}
+ isConfigLoading={isConfigLoading}
+ onboardingConfigCount={onboardingCount}
+ doneConfigCount={onboardingDoneCount}
+ />
+ )}
+
+ )}
+
+ >
);
}
diff --git a/src/components/Navigation/AccountDropdownList.tsx b/src/components/Navigation/AccountDropdownList.tsx
index 79deae41d..8b3dbe1c9 100644
--- a/src/components/Navigation/AccountDropdownList.tsx
+++ b/src/components/Navigation/AccountDropdownList.tsx
@@ -45,7 +45,7 @@ export function AccountDropdownList(props: AccountDropdownListProps) {
className={cn(
'flex h-9 w-full items-center rounded py-1 pl-3 pr-2 text-sm font-medium text-slate-100 hover:opacity-80',
isConfigLoading
- ? 'striped-loader-lighter flex border-slate-800 opacity-70'
+ ? 'striped-loader-darker flex border-slate-800 opacity-70'
: 'border-slate-600 bg-slate-700',
)}
onClick={onOnboardingClick}
diff --git a/src/components/OnboardingNudge.tsx b/src/components/OnboardingNudge.tsx
new file mode 100644
index 000000000..bb2710a82
--- /dev/null
+++ b/src/components/OnboardingNudge.tsx
@@ -0,0 +1,69 @@
+import { cn } from '../lib/classname.ts';
+import { memo, useEffect, useState } from 'react';
+import { useScrollPosition } from '../hooks/use-scroll-position.ts';
+import { X } from 'lucide-react';
+
+type OnboardingNudgeProps = {
+ onStartOnboarding: () => void;
+};
+
+const NUDGE_ONBOARDING_KEY = 'should_nudge_onboarding';
+
+export function OnboardingNudge(props: OnboardingNudgeProps) {
+ const { onStartOnboarding } = props;
+
+ const [isLoading, setIsLoading] = useState(false);
+
+ const { y: scrollY } = useScrollPosition();
+
+ useEffect(() => {
+ if (localStorage.getItem(NUDGE_ONBOARDING_KEY) === null) {
+ localStorage.setItem(NUDGE_ONBOARDING_KEY, 'true');
+ }
+ }, []);
+
+ if (localStorage.getItem(NUDGE_ONBOARDING_KEY) !== 'true') {
+ return null;
+ }
+
+ if (scrollY < 100) {
+ return null;
+ }
+
+ return (
+
+
+ Welcome! Please take a moment to{' '}
+ {
+ setIsLoading(true);
+ localStorage.setItem(NUDGE_ONBOARDING_KEY, 'false');
+ onStartOnboarding();
+ }}
+ className="underline"
+ >
+ complete onboarding
+
+ {
+ e.stopPropagation();
+ localStorage.setItem(NUDGE_ONBOARDING_KEY, 'false');
+ setIsLoading(true);
+ }}
+ >
+
+
+
+
+ );
+}
diff --git a/src/hooks/use-scroll-position.ts b/src/hooks/use-scroll-position.ts
new file mode 100644
index 000000000..861e28c3c
--- /dev/null
+++ b/src/hooks/use-scroll-position.ts
@@ -0,0 +1,22 @@
+import { useEffect, useState } from 'react';
+
+export function useScrollPosition() {
+ const [scrollPosition, setScrollPosition] = useState<{
+ x: number;
+ y: number;
+ }>({
+ x: 0,
+ y: 0,
+ });
+
+ useEffect(() => {
+ const handleScroll = () => {
+ setScrollPosition({ x: window.scrollX, y: window.scrollY });
+ };
+
+ window.addEventListener('scroll', handleScroll);
+ return () => window.removeEventListener('scroll', handleScroll);
+ }, []);
+
+ return scrollPosition;
+}
diff --git a/src/styles/global.css b/src/styles/global.css
index 7f84672c5..7f5977e73 100644
--- a/src/styles/global.css
+++ b/src/styles/global.css
@@ -84,7 +84,7 @@ a > code:before {
animation: barberpole 15s linear infinite;
}
-.striped-loader-lighter {
+.striped-loader-darker {
background-image: repeating-linear-gradient(
-45deg,
transparent,
From 13744a486a2b2fd343ecff8ace1bcdfee541656f Mon Sep 17 00:00:00 2001
From: Kamran Ahmed
Date: Mon, 27 May 2024 12:51:21 +0100
Subject: [PATCH 8/9] Nudge users to onboard
---
src/components/Navigation/OnboardingModal.tsx | 17 +++++++++++------
src/components/OnboardingNudge.tsx | 2 +-
2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/src/components/Navigation/OnboardingModal.tsx b/src/components/Navigation/OnboardingModal.tsx
index 6a9e95987..53e39e3b3 100644
--- a/src/components/Navigation/OnboardingModal.tsx
+++ b/src/components/Navigation/OnboardingModal.tsx
@@ -8,6 +8,7 @@ import { httpPatch } from '../../lib/http';
import { useToast } from '../../hooks/use-toast';
import type { OnboardingConfig } from './AccountDropdown';
import { setAuthToken } from '../../lib/jwt';
+import { NUDGE_ONBOARDING_KEY } from '../OnboardingNudge.tsx';
type Task = {
id: string;
@@ -157,9 +158,11 @@ export function OnboardingModal(props: OnboardingModalProps) {
-
+
{/*sort to put completed tasks at the end */}
{tasks.map((task, taskCounter) => {
const isDone = task.status === 'done';
@@ -175,9 +178,11 @@ export function OnboardingModal(props: OnboardingModalProps) {
'border-t': taskCounter === 0 && isDone,
})}
>
-
+
{isDone ? (
diff --git a/src/components/OnboardingNudge.tsx b/src/components/OnboardingNudge.tsx
index bb2710a82..c4c30e0d7 100644
--- a/src/components/OnboardingNudge.tsx
+++ b/src/components/OnboardingNudge.tsx
@@ -7,7 +7,7 @@ type OnboardingNudgeProps = {
onStartOnboarding: () => void;
};
-const NUDGE_ONBOARDING_KEY = 'should_nudge_onboarding';
+export const NUDGE_ONBOARDING_KEY = 'should_nudge_onboarding';
export function OnboardingNudge(props: OnboardingNudgeProps) {
const { onStartOnboarding } = props;
From 073ba617edfff68d87e77fc54a320f875c94b511 Mon Sep 17 00:00:00 2001
From: Kamran Ahmed
Date: Mon, 27 May 2024 14:02:18 +0100
Subject: [PATCH 9/9] Add gRPC to api design roadmap
---
src/components/OnboardingNudge.tsx | 2 +-
src/data/roadmaps/api-design/api-design.json | 73 ++++++++++++++-----
.../grpc-apis@Wwd-0PjrtViMFWxRGaQey.md | 14 ++++
3 files changed, 68 insertions(+), 21 deletions(-)
create mode 100644 src/data/roadmaps/api-design/content/grpc-apis@Wwd-0PjrtViMFWxRGaQey.md
diff --git a/src/components/OnboardingNudge.tsx b/src/components/OnboardingNudge.tsx
index c4c30e0d7..734118804 100644
--- a/src/components/OnboardingNudge.tsx
+++ b/src/components/OnboardingNudge.tsx
@@ -33,7 +33,7 @@ export function OnboardingNudge(props: OnboardingNudgeProps) {
return (